From 28eff61fa673adfd68b1e8178c8a6652b13d1556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Mon, 28 Oct 2024 16:53:05 +0300 Subject: [PATCH 1/8] Fix git conflicts, redo docs/README.md --- docs/README.md | 161 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..0560bb1 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,161 @@ +# BMSTU IU8 + +Британские учёные выяснили, что НИРС и ВКР -- слова женского рода. :) + +## Документация к полям на титульных листах + +В пакете существует 3 класса документов: `diploma` (ВКР), `research` (НИРС) и `ordinary` (простой отчёт a la ГОСТ). Каждый из них помимо общих имеет специфичные поля титульного листа. +Ниже приводятся все доступные поля с описанием (поля обязательно должны быть заполнены, если не указано иное). + +##### Общие поля + +* Обязательные: + * `\student{...}` -- И.О. Фамилия студента; + * `\theme{...}` -- тема ВКР/НИРС, у класса `ordinary` -- тип/наименование работы; + * `\group{...}` -- группа студента. +* Опциональные: + * `\faculty{Название факультета}{Код}` -- задаёт название факультета на титульном листе, по умолчанию `\faculty{Информатика и системы управления}{ИУ}`; + * `\department{Название кафедры}{Код}` -- аналогично для кафедры, по умолчанию `\department{Информационная безопасность}{ИУ8}`. + +##### Поля ВКР + +* Особенность `\theme{...}`: для ВКРов текст, куда вставляется тема работы выглядит так `РАСЧЁТНО-ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЕ НА ТЕМУ: <тема работы>` +* `\supervisor{...}` -- И.О. Фамилия руководителя ВКР; +* `\researchConsultant{...}` -- И.О. Фамилия консультанта по исследовательской части; +* `\designConsultant{...}` -- И.О. Фамилия консультанта по конструкторской части; +* `\technologicalConsultant{...}` -- И.О. Фамилия консультанта по технологической части; +* `\economicsConsultant{...}` -- И.О. Фамилия консультанта по организационно-экономической части; +* `\lawsConsultant{...}` -- И.О. Фамилия консультанта по организационно-правовому обеспечению ИБ; +* `\normController{...}` -- И.О. Фамилия нормоконтролера. + +##### Поля НИР + +* Особенность `\theme{...}`: для НИРов текст, куда вставляется тема работы выглядит так `Отчёт по научно-исследовательской работе студента на тему <тема работы>` +* `\studentFullName{...}` -- полные фамилия имя и отчество студента; +* `\profile{...}` -- номер зачётки; +* `\speciality{...}` -- код специальности (например, 10.05.01) и его расшифровка "в ёлочках"; +* `\specialization{...}` -- код и расшифровка профиля/специализации (пример: `10.05.01\_01 <<Математические методы защиты информации>>`); +* `\supervisorWithDegree{...}` -- должность, ~~регалии~~ и Фамилия И.О. научного руководителя НИРС (пример: `доцент, к.т.н. Иванов И. И.`); +* `\supervisor{...}` -- И.О. Фамилия руководителя, который допускает к защите. + +##### Поля титульника класса ordinary + +* Особенность `\theme{...}`: это тип (заглавие) работы, например "Отчёт о выполнении лабораторной работы", "Домашняя работа" и т.п., после заглавия следует фраза "по дисциплине"; +* Обязательные: + * `\discipline{...}` -- дисциплина в именительном падеже; + * `\student{...}` -- И.О. Фамилия студента; + * `\group{...}` -- группа; + * `\supervisor{...}` -- И.О. Фамилия преподавателя; +* Опциональные: + * `\version{...}` -- вариант работы, по умолчанию является пустым и не вставляется в документ; + * `\noscorefield` -- отключение поля для оценки, которое выглядит, как в классе `research` (по умолчанию включено). + +## Математика + +В пакете определены следующие окружения: +* `definition` -- определение +* `theorem` -- теорема +* `corollary` -- следствие +* `lemma` -- лемма +* `example` -- пример + +Соответственно, использование таково: +```latex +\begin{example} + М-м-м... пример примера, фантазия закончилась XD + $$ + 3 + 4 = 2 + $$ +\end{example} +``` + +## Команды структурных элементов + +Из ГОСТа 7.32-2017: +``` +6.2.1 Наименования структурных элементов отчета: +"СПИСОК ИСПОЛНИТЕЛЕЙ", % У нас (на ИУ8) не используется, один студент -- одна НИРС/ВКР +"РЕФЕРАТ", % У нас не используется +"СОДЕРЖАНИЕ", +"ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ", +"ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ", +"ВВЕДЕНИЕ", +"ЗАКЛЮЧЕНИЕ", +"СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ", +"ПРИЛОЖЕНИЕ" +служат заголовками структурных элементов отчета. +``` + +Внутренней командой для таких заголовков является `\structure{ЗАГОЛОВОК}`. Она просто вставляет заголовок структурного элемента. Если очень-очень надо, то можно использовать для определения загловков в "ручном режиме". Например, иногда требуют заголовок "ОСНОВНАЯ ЧАСТЬ", хотя в ГОСТ 7.32-2017 это никак не определено, но как говорится кодекс -- это просто свод указаний, а не жёстких законов (с). + +#### "Неинтерактивные" команды + +`\introduction` -- вставляет заголовок "ВВЕДЕНИЕ". + +`\conclusion` -- вставляет заголовок "ЗАКЛЮЧЕНИЕ". + +`\tableofcontents` -- вставляет структурный элемент "СОДЕРЖАНИЕ" целиком. + +`\abstract` -- вставляет заголовок элемента "РЕФЕРАТ" и абзац содержащий количество рисунков, таблиц, источников и приложений. + +#### Перечни сокращений и терминов + +`\listofabbreviations` -- вставляет перечень сокращений и обозначений (структурный элемент целиком). +Чтобы добавить аббревиатуру/акроним в этот перечень, необходимо до `\begin{document}` вставить команды +```latex +\newacronym{идентификатор}{АББРЕВИАТУРА}{расшифровка аббревиатуры} +``` +Идентификатор должен быть уникальным, и в теории отражать смысл сокращения. Например: +```latex +\newacronym{cd}{CD}{compact disk} % пример +``` + +`\termsanddefenitions` -- вставляет термины и определения. +В целом всё аналогично сокращениям, следующую команду надо использовать перед `\begin{document}`: +```latex +\newglossaryentry{идентификатор}{ + name={термин}, + description={определение термина} +} +``` +Пример: +```latex +\newglossaryentry{latex}{ + name={\LaTeX}, + description={система компьютерной вёрстки} +} +``` + +В тексте можно ссылаться на сокращение или термин командой, которая вставит само сокращение/термин и гиперссылку на него в перечне: +```latex +\gls{идентификатор} % текст с кликабельной гиперссылкой +\gls*{идентификатор} % только текст, без ссылки +\Gls{идентификатор} % то же самое, но с заглавной буквы +``` + +#### Приложения + +Начало секции приложений к отчёту ознаменовывается командой `\appendix`. Она выставляет счётчики в 0 и переопределяет команды `\thefigure`, `\thetable`, `\theequation` и `\thelstlisting` так, чтобы оформление нумерации соответствовало ГОСТу. + +Каждое приложение должно начинаться с команды `\appendixsection{...}`, которая принимает один аргумент -- название приложения. Например, если в первое приложение помещена большая принципиальная схема: +```latex +\appendixsection{Схема принципиальная} +``` + +Латех породит заголовок **ПРИЛОЖЕНИЕ А Схема принципиальная** (и ещё вставит его в содержание). Для второго приложения согласно ГОСТу индекс будет Б, третьему --- В и так далее. + +Использовать `\section{...}` здесь НЕ СЛЕДУЕТ. + +## Список источников + +Для формирования списка источников используется пакет `biblatex-gost`. Поэтому смотрим документацию на него и на `biblatex`. Здесь же приводится краткое изложение работы с библиографией. + +#### Поля записей + +#### Записи + + +``` +Файлик написал Fe-Ti (aka Tim Kravchenko) в 2024 году. +По всем вопросам обращаться в исходный код. +``` \ No newline at end of file From b8422cbfdcc51b82caec88031907b0933b4eb849 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Wed, 30 Oct 2024 22:14:01 +0300 Subject: [PATCH 2/8] Added short info about bibliography --- docs/README.md | 102 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 81 insertions(+), 21 deletions(-) diff --git a/docs/README.md b/docs/README.md index 0560bb1..1dca7b4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -50,25 +50,6 @@ * `\version{...}` -- вариант работы, по умолчанию является пустым и не вставляется в документ; * `\noscorefield` -- отключение поля для оценки, которое выглядит, как в классе `research` (по умолчанию включено). -## Математика - -В пакете определены следующие окружения: -* `definition` -- определение -* `theorem` -- теорема -* `corollary` -- следствие -* `lemma` -- лемма -* `example` -- пример - -Соответственно, использование таково: -```latex -\begin{example} - М-м-м... пример примера, фантазия закончилась XD - $$ - 3 + 4 = 2 - $$ -\end{example} -``` - ## Команды структурных элементов Из ГОСТа 7.32-2017: @@ -150,11 +131,90 @@ Для формирования списка источников используется пакет `biblatex-gost`. Поэтому смотрим документацию на него и на `biblatex`. Здесь же приводится краткое изложение работы с библиографией. -#### Поля записей +[Документация](https://mirrors.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost.pdf) и [примеры](https://mirrors.ctan.org/macros/latex/contrib/biblatex-contrib/biblatex-gost/doc/biblatex-gost-examples.pdf) к `biblatex-gost` (дата обращения 28.10.2024) + +[Документация к `biblatex`](https://mirrors.ctan.org/macros/latex/contrib/biblatex/doc/biblatex.pdf) (дата обращения 28.10.2024) + +#### Общие моменты + +*One does not simply get a reference list. (c) Боромир* + +Будучи новоиспечённым пользователем латеха, автор сего манускрипта столкнулся со следующими нюансами в работе с библиографией, о которых прежде и не помышлял: + +* Сборка с библиографией состоит из трёх этапов: + 1. компиляция `.tex` ("сборка ссылок"); + 2. запуск утилиты для формирования библиографии из файла `.bib` и `.aux` латеха; + 3. повторная компиляция `.tex` в окончательный документ. +* Если ставили неполный дистрибутив латеха, то лучше проверить установлен ли `biber`, так как этот бэкенд используется нашим пакетом (команда `biber --version` в терминале должна выдвать версию утилиты). +* Поля содержащие дату заполняются в формате "dd-mm-yyyy". + + +Также в `biblatex-gost` желательно использовать поле `media`, которое отвечает за плашки [Электронный ресурс], [Видеозапись] и другие. Его возможные значения: + * videorecording --- видеозапись, + * soundrecording --- звукозапись, + * graphic --- изоматериал, + * cartographic --- карты, + * kit --- комплект, + * motionpicture --- кинофильм, + * microform --- микроформа, + * multimedia --- мультимедиа, + * music --- ноты, + * object --- предмет, + * manuscript --- рукопись, + * text --- текст, + * braille --- шрифт Брайля, + * eresource --- электронный ресурс. + +#### Книги -#### Записи +`book`/`mvbook` --- книги однотомные/многотомные. Обязательными полями с точки зрения пакета являются `author`, `title` и `year/date`. +`collection`/`mvcollection` --- сборники однотомные/многотомные. Обязательные поля: editor, title, year/date. + +#### Статьи +`article` --- ссылка на статью из журнала и др. сборников статей. Обязательные поля: author, title, journaltitle, year/date. + +`periodical` --- ссылка на журнал целиком (правда, зачем оно надо, не очень ясно). Обязательные поля: editor, title, year/date. + +#### Стандарты (нормативные документы по стандартизации) + +Руководство `biblatex-gost` рекомендует использовать тип записи `@reference` для ГОСТов и других нормативных документов по стандартизации. Пример из документации: +```latex +@reference{standard3, + heading = {ГОСТ 19790-74}, + title = {Селитра калиевая техническая. Технические условия}, + media = {eresource}, + specdata = {Взамен ГОСТ 1949-65 и ГОСТ 5.1138-71 ; введ. 01.07.05}, + location = {М.}, + publisher = {Стандартинформ}, + year = {2006}, + pagetotal = {18}, + series = {Межгосударственный стандарт}, + langid = {russian}, +} +``` + +## Математика + +В пакете определены следующие окружения: + +* `definition` -- определение +* `theorem` -- теорема +* `corollary` -- следствие +* `lemma` -- лемма +* `example` -- пример + +Соответственно, использование таково: +```latex +\begin{example} +М-м-м... пример примера, фантазия закончилась XD +$$ +3 + 4 = 2 +$$ +\end{example} +``` +**** ``` Файлик написал Fe-Ti (aka Tim Kravchenko) в 2024 году. По всем вопросам обращаться в исходный код. From 201d7103e8dd7c1b27e1cf01127c1a2fefc02b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Wed, 30 Oct 2024 22:35:21 +0300 Subject: [PATCH 3/8] Added short info about listings --- docs/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/README.md b/docs/README.md index 1dca7b4..1441901 100644 --- a/docs/README.md +++ b/docs/README.md @@ -150,6 +150,7 @@ Также в `biblatex-gost` желательно использовать поле `media`, которое отвечает за плашки [Электронный ресурс], [Видеозапись] и другие. Его возможные значения: + * videorecording --- видеозапись, * soundrecording --- звукозапись, * graphic --- изоматериал, @@ -214,6 +215,25 @@ $$ \end{example} ``` +## Листинги +Для оформления листингов используется пакет `listings`. При этом нашим пакетом добавлено окружение `codelisting`, которое в теории не должно провоцировать машинный нормоконтроль. Пример использования с кодом для SageMath: +```latex +\begin{codelisting}[language=Python] + upper_limit = 30 # генерируем~элементы~до~30 + d = 1 + n = 5 + dist_arr = [] + for i in range (0, upper_limit): + x = i + dist_arr.append(x^(n-1)*exp(-x/d)/(gamma(n)*d^n)) + gammaD = GeneralDiscreteDistribution(dist_arr) + dataset_gamma = [gammaD.get_random_element() for _ in range(1000)] + dist_fun_points_gamma = [0] * (max(dataset_gamma) + 1) + for i in dataset_gamma: + dist_fun_points_gamma[i] += 1 +\end{codelisting} +``` + **** ``` Файлик написал Fe-Ti (aka Tim Kravchenko) в 2024 году. From d250851801ff88aa744b7e75815e9731838b7e26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Wed, 30 Oct 2024 23:08:43 +0300 Subject: [PATCH 4/8] Fixed list of media types --- docs/README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/README.md b/docs/README.md index 1441901..78c5a8e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -147,24 +147,24 @@ 3. повторная компиляция `.tex` в окончательный документ. * Если ставили неполный дистрибутив латеха, то лучше проверить установлен ли `biber`, так как этот бэкенд используется нашим пакетом (команда `biber --version` в терминале должна выдвать версию утилиты). * Поля содержащие дату заполняются в формате "dd-mm-yyyy". - +* Если у статьи/книги несколько авторов, то поле `author = {П.П. Первый and В.В. Второй and Т.Т. Тритий and Д.Д. Дейтерий ...}` Также в `biblatex-gost` желательно использовать поле `media`, которое отвечает за плашки [Электронный ресурс], [Видеозапись] и другие. Его возможные значения: - * videorecording --- видеозапись, - * soundrecording --- звукозапись, - * graphic --- изоматериал, - * cartographic --- карты, - * kit --- комплект, - * motionpicture --- кинофильм, - * microform --- микроформа, - * multimedia --- мультимедиа, - * music --- ноты, - * object --- предмет, - * manuscript --- рукопись, - * text --- текст, - * braille --- шрифт Брайля, - * eresource --- электронный ресурс. +* videorecording --- видеозапись, +* soundrecording --- звукозапись, +* graphic --- изоматериал, +* cartographic --- карты, +* kit --- комплект, +* motionpicture --- кинофильм, +* microform --- микроформа, +* multimedia --- мультимедиа, +* music --- ноты, +* object --- предмет, +* manuscript --- рукопись, +* text --- текст, +* braille --- шрифт Брайля, +* eresource --- электронный ресурс. #### Книги From 4c47bbc881914c5a767e7b12208564e4f9ba720d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Fri, 1 Nov 2024 21:01:18 +0300 Subject: [PATCH 5/8] Added note about author field format. --- docs/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 78c5a8e..745c231 100644 --- a/docs/README.md +++ b/docs/README.md @@ -147,7 +147,8 @@ 3. повторная компиляция `.tex` в окончательный документ. * Если ставили неполный дистрибутив латеха, то лучше проверить установлен ли `biber`, так как этот бэкенд используется нашим пакетом (команда `biber --version` в терминале должна выдвать версию утилиты). * Поля содержащие дату заполняются в формате "dd-mm-yyyy". -* Если у статьи/книги несколько авторов, то поле `author = {П.П. Первый and В.В. Второй and Т.Т. Тритий and Д.Д. Дейтерий ...}` +* Если у статьи/книги несколько авторов, то поле `author = {П. П. Первый and В. В. Второй and Т. Т. Тритий and Д. Д. Дейтерий ...}`. +* ФИО автора записываются в формате "Имя Отчество Фамилия", причём пробелы между именем и отчеством (или их инициалами) обязательны. Также в `biblatex-gost` желательно использовать поле `media`, которое отвечает за плашки [Электронный ресурс], [Видеозапись] и другие. Его возможные значения: From e27f4d085f40195c61db8a250bc0af072b6db6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Wed, 13 Nov 2024 12:48:03 +0300 Subject: [PATCH 6/8] Added info about changing page geometry and font size --- docs/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/README.md b/docs/README.md index 745c231..577c5bf 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,6 +2,17 @@ Британские учёные выяснили, что НИРС и ВКР -- слова женского рода. :) +## Поля, шрифты... короче база +В пакете установлены поля (в мм): 30, 20, 20, 10. Строго говоря размер правого поля не соответствует ГОСТ 7.32-2017, поэтому для выставления переопределения полей в ГОСТовый вариант "30,20,20,15" или в какой-либо другой можно использовать команду: +```latex +\newgeometry{a4paper, left=30mm, right=20mm, top=20mm, bottom=15mm} +``` + +По умолчанию кегль шрифта установлен в 12 пунктов, но иногда требуют 14. Для выставления этого параметра можно воспользоваться командой: +```latex +\KOMAoptions{fontsize=14pt} +``` + ## Документация к полям на титульных листах В пакете существует 3 класса документов: `diploma` (ВКР), `research` (НИРС) и `ordinary` (простой отчёт a la ГОСТ). Каждый из них помимо общих имеет специфичные поля титульного листа. From e81c1532b63f5cb5e45a1fd51094a4fe52ebb5ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Wed, 13 Nov 2024 13:00:10 +0300 Subject: [PATCH 7/8] Added link to docs --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 012d719..a6282cd 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ export TEXINPUTS=/home/user/latex-template/tex//::. ### Опции и примеры Титульный лист зависит от опции пакета (класса документа): - + * `diploma` - ВКР * `research` - НИРС * `ordinary` - иные документы, например, отчёты по лабораторным, домашним и т.п. @@ -56,6 +56,8 @@ export TEXINPUTS=/home/user/latex-template/tex//::. Его не нужно скачивать. И этот пример проходит `TestVKR`, исключая замечание по количеству страниц. +**Подробнее в [документации](./docs/README.md)** + ### Чего тут нет Чего тут нет (и не будет, потому что это отдельные сущности): From 28bc255d33ba9ff1a834ffb51d8652bc7a7c1011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=D1=91dor=20T?= Date: Fri, 15 Nov 2024 16:39:58 +0300 Subject: [PATCH 8/8] Fix: date order yyyy-mm-dd instead of dd-mm-yyyy --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 577c5bf..a11f7d4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -157,7 +157,7 @@ 2. запуск утилиты для формирования библиографии из файла `.bib` и `.aux` латеха; 3. повторная компиляция `.tex` в окончательный документ. * Если ставили неполный дистрибутив латеха, то лучше проверить установлен ли `biber`, так как этот бэкенд используется нашим пакетом (команда `biber --version` в терминале должна выдвать версию утилиты). -* Поля содержащие дату заполняются в формате "dd-mm-yyyy". +* Поля содержащие дату заполняются в формате `yyyy-mm-dd`, например, дата обращения к электронному ресурсу `urldate = {2024-11-15}`. * Если у статьи/книги несколько авторов, то поле `author = {П. П. Первый and В. В. Второй and Т. Т. Тритий and Д. Д. Дейтерий ...}`. * ФИО автора записываются в формате "Имя Отчество Фамилия", причём пробелы между именем и отчеством (или их инициалами) обязательны.