# Обзор (/docs) ## Typst Gost **Typst Gost** — это экосистема шаблонов и справочных материалов для оформления документов по ГОСТ в [Typst](https://typst.app/). **modern-g7-32** — автоматизированный шаблон для оформления отчётов о научно-исследовательских работах в соответствии с [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf). Идея проекта простая: вы пишете содержание, а шаблон забирает на себя ту часть оформления, где обычно теряются вечера — титульные поля, отступы, заголовки, подписи и нумерацию. Дальше проект может расширяться новыми пакетами, но `modern-g7-32` остаётся базовым шаблоном. ## Когда это полезно Typst удобен, когда документ меняется: содержание, ссылки, подписи, список источников и нумерация приложений пересобираются из кода. В отличие от ручной правки Word-файла, структура отчёта хранится в `.typ`, поэтому её проще проверять, версионировать и переиспользовать. Это особенно заметно ближе к сдаче работы: добавили рисунок, перенесли раздел, дописали приложение — содержание, ссылки и счётчики подтянулись сами, никакой ручной работы. ## Принцип работы шаблона Работа с **modern-g7-32** в Typst строится на декларативном подходе, вы описываете содержание в `.typ` файле и получаете готовый к печати документ. Ниже представлен минимальный пример с использованием шаблона. Следуя документации, вы постепенно познакомитесь со всем функционалом. ## Возможности автоматизации Шаблон берет на себя выполнение большинства требований стандарта: * Формирование [титульного листа](/docs/reference/title) и подключение [встроенных шаблонов](/docs/advanced_usage/custom_title_templates); * Создание [списка исполнителей](/docs/reference/performers); * Генерация [реферата](/docs/reference/abstract) со статистикой документа; * Сборка [содержания](/docs/reference/outline); * Оформление [рисунков, таблиц, формул, листингов и списков](/docs/reference/elements); * Настройка [пользовательских титульных шаблонов](/docs/advanced_usage/custom_title_templates); * Оформление [списка источников](/docs/reference/references) и [приложений](/docs/reference/appendixes). ## Особенности работы с документацией Документация **Typst Gost** — это интерактивная среда: примеры можно менять прямо на странице, а также доступен просмотр цитат из [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf). Вы можете воспользоваться формой обратной связи в конце страницы документации, чтобы помочь нам улучшить её. ### Интерактивные примеры кода Все примеры на страницах документации редактируемые. Меняйте код слева и смотрите, как пересобирается результат справа. Попробуйте изменить что-нибудь в примере ниже. ### Быстрый просмотр пунктов ГОСТ 7.32-2017 При наведении на номер пункта ГОСТ появляется окно с текстом требования. Это удобно во время работы, так как не нужно держать PDF стандарта открытым в соседнем окне. Попробуйте навести курсор на ссылку **[6.2.1](#6.2.1)**, чтобы увидеть пример всплывающего окна с цитатой из ГОСТа. ### Форма обратной связи Форма обратной связи Вы можете писать что вам понравилось или не понравилось в документации, старайтесь указывать к какому разделу относится ваше мнение. Не стесняйтесь писать об ошибках или предложениях, это поможет улучшить документацию. ## Разделы документации Для первого документа начните с раздела [Быстрый старт](/docs/quick-start). # Быстрый старт (/docs/quick-start) Если вам нужно быстро перейти от пустого файла к отчёту, начните здесь. За несколько минут соберём рабочий `main.typ`: титульный лист, исполнители, реферат, содержание, основные разделы, источники и приложения. Пример можно использовать как каркас для лабораторной, курсовой или отчёта о НИР. ## Где писать код Оба варианта поддерживают Live Preview (предпросмотр в реальном времени): вы меняете `.typ`, а окно просмотра обновляется рядом. Будет сразу видно, что именно изменилось в документе. * [Typst App](https://typst.app/) работает в браузере и не требует установки. * VS Code с [Tinymist](https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist) удобен для локальной работы, Git и проектов с внешними файлами. ## Быстрый старт Создайте файл `main.typ`. Первым делом нам нужно импортировать сам шаблон и его основные функции. Будет использоваться актуальная версия из Typst Universe. ```typst #import "@preview/modern-g7-32:0.2.0": gost, abstract, appendixes ``` ## Титульный лист и параметры Шаблон активируется командой `#show: gost.with(...)`. Она применяет правила оформления ко всему документу и создаёт титульный лист из переданных полей. Добавьте этот блок сразу после импортов: Как вы можете заметить, у странички появилась нумерация по ГОСТ. Если вам нужен полный титульный лист, то можно использовать стандартный шаблон для оформления титульного листа: [Титульный лист и его настройки](./reference/title) Если у вас есть PDF с готовым титульным листом, то за пару строк кода можно импортировать его в качестве титульника Typst документа: ## Исполнители работы Внутри той же функции `gost.with` есть параметр `performers`. Именно он отображает тех, кто выполнил работу. * Если исполнитель один — он автоматически появится прямо на титульном листе. * Если их несколько — шаблон создаст отдельную страницу "СПИСОК ИСПОЛНИТЕЛЕЙ". Добавьте его в вызов `gost.with` (и уберите `hide-title: true`): Страница с подробностями: [Список исполнителей и соисполнители](./reference/performers) ## Реферат Следующий по ГОСТу структурный элемент — Реферат. В Typst вам не нужно вручную считать количество страниц, рисунков, таблиц и источников — функция `#abstract` сделает это за вас. Страница с подробностями: [Реферат](./reference/abstract) ## Содержание и введение Тут всё максимально просто. Вызываем встроенную функцию `#outline()` для сборки оглавления, а затем начинаем писать текст введения. Шаблон уже знает, что `ВВЕДЕНИЕ` не нумеруется и должно быть оформлено заглавными буквами. Страницы с подробностями: [Содержание](./reference/outline) и [Введение](./reference/introduction) ## Основная часть Для создания разделов и подразделов используйте стандартный синтаксис Typst (`=`, `==`). Шаблон сам расставит правильные абзацные отступы, нумерацию (1.1, 1.2) и начнет новые главы с новой страницы. Чтобы добавить рисунок -- положите его рядом с `main.typ` и внесите в код с помощью функции: `#figure(image("filename.png"), caption: "Заголовок рисунка")`. Typst поддерживает PNG, JPEG, SVG и PDF форматы для `image`. `} assets={["scheme.png"]} image="quick-start-body.png" /> Внутри разделов вы можете использовать любые элементы: формулы, код, списки или таблицы. Шаблон автоматически приведет их к ГОСТу (отцентрирует, подпишет и пронумерует). Страницы с подробностями: * [Правила основной части](./reference/body) * [Оформление рисунков, таблиц, формул, листингов и перечислений](./reference/elements) ## Заключение и список источников Заключение, как и Введение, не нумеруется. Сразу после него добавьте список литературы. Файл `references.bib` положите рядом с `main.typ`. // TODO: Добавить вкладки как pitch.typst-gost.ru Страницы с подробностями: * Как создать `references.bib` файл смотрите в [Список использованных источников](./reference/references). * [Заключение](./reference/conclusion). ## Приложения По ГОСТу приложения нумеруются буквами русского алфавита. У них свои, независимые счётчики для рисунков и таблиц (Рисунок А.1). Чтобы перевести документ в режим приложений, используйте `#show: appendixes`, все последующие заголовки будут считаться приложениями. // Попробуйте добавить ещё одно приложение `} image="quick-start-appendix.png" /> Страница с подробностями: [Оформление приложений](./reference/appendixes) # Справка (/docs/reference) Справка устроена в том же порядке, в котором обычно собирается отчёт по [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf): титульный лист, исполнители, реферат, содержание, введение, основная часть, элементы (рисунки, таблицы, листинги и т.д.), заключение, источники и приложения. # Содержание (/docs/reference/outline) Содержание — это путеводитель по вашему отчёту. Оно включает введение, все разделы основной части, заключение, список источников и приложения с указанием соответствующих номеров страниц. В шаблоне `modern-g7-32` вам **не нужно** вручную заполнять этот раздел. Функция `#outline()` сама собирает заголовки, расставляет точки-заполнители («отточия») и выравнивает номера страниц согласно [6.13](#6.13). ## Быстрый старт Разместите функцию `#outline()` после [реферата](./abstract.mdx). Все последующие заголовки (`=`, `==`) будут автоматически добавлены в список. Заголовки `Введение`, `Заключение`, `Список использованных источников` и другие структурные элементы распознаются по своему тексту и остаются без номера. ## Автоматизация и стили Шаблон полностью берет на себя оформление содержания по требованиям [5.4.1](#5.4.1) и [6.13](#6.13): 1. **Заголовок**: Слово «СОДЕРЖАНИЕ» оформляется прописными буквами по центру страницы согласно [6.2.2](#6.2.2). 2. **Структурные элементы**: Введение, заключение и список источников отображаются без номеров, как того требует [6.3.2](#6.3.2). 3. **Иерархия**: Подразделы и пункты автоматически получают абзацные отступы. Это настраивается через глобальный параметр `indent` в `gost.with`. 4. **Отточие**: Между названием раздела и номером страницы автоматически вставляется ряд точек. 5. **Приложения**: Если вы используете [appendixes](./appendixes.mdx), шаблон добавит в содержание слово «Приложение», его литеру и заголовок. ## Параметры функции Шаблон использует стандартную функцию Typst `outline`, адаптированную под ГОСТ. Вы можете настраивать её поведение: ## Продвинутое использование ### Структурные заголовки `modern-g7-32` отдельно обрабатывает структурные заголовки ГОСТ: `Список исполнителей`, `Реферат`, `Содержание`, `Термины и определения`, `Перечень сокращений и обозначений`, `Введение`, `Заключение`, `Список использованных источников` и `Приложение`. Такие заголовки не получают номер вида `1`, `2`, `3`, но попадают в содержание. Поэтому для введения и заключения используйте именно стандартные названия: ```typst = Введение Текст вводной части. = 1 Введение // Так писать не нужно: номер станет частью текста заголовка. ``` ### Ограничение глубины Если в отчёте много мелких пунктов, которые не нужно выносить в содержание, используйте параметр `depth`. По умолчанию он равен 3 (Раздел.Подраздел.Пункт). ### Отчёт в нескольких книгах Если ваш труд разбит на части, обратите внимание на пункт [5.4.2](#5.4.2). В первой книге должно быть содержание всего отчёта, а в последующих — только текущей книги. В шаблоне это реализуется через параметр `part` в `gost.with`. ## Требования ГОСТ 7.32-2017 ### Состав и структура 5.4.1 Содержание включает введение, наименование всех разделов и подразделов, пунктов (если они имеют наименование), заключение, список использованных источников и наименования приложений с указанием номеров страниц, с которых начинаются эти элементы отчета о НИР. В элементе «СОДЕРЖАНИЕ» приводят наименования структурных элементов работы, порядковые номера и заголовки разделов, подразделов (при необходимости — пунктов) основной части работы, обозначения и заголовки ее приложений (при наличии приложений). После заголовка каждого элемента ставят отточие и приводят номер страницы работы, на которой начинается данный структурный элемент. Обозначения подразделов приводят после абзацного отступа, равного двум знакам, относительно обозначения разделов. Обозначения пунктов приводят после абзацного отступа, равного четырем знакам относительно обозначения разделов. При необходимости продолжение записи заголовка раздела, подраздела или пункта на второй (последующей) строке выполняют, начиная от уровня начала этого заголовка на первой строке, а продолжение записи заголовка приложения — от уровня записи обозначения этого приложения. 5.4.2 При составлении отчета, состоящего из двух и более книг, в каждой из них должно быть приведено свое содержание. При этом в первой книге помещают содержание всего отчета с указанием номеров книг, в последующих — только содержание соответствующей книги. Допускается в первой книге вместо содержания последующих книг указывать только их наименования. 5.4.3 Для отчета о НИР объемом не более 10 страниц содержание допускается не составлять. ### Правила оформления 6.13 Каждую запись содержания оформляют как отдельный абзац, выровненный влево. Номера страниц указывают выровненными по правому краю поля и соединяют с наименованием структурного элемента или раздела отчета посредством отточия. (из 6.2.1 и 6.2.2) Заголовки структурных элементов \[СОДЕРЖАНИЕ] следует располагать в середине строки без точки в конце, прописными буквами, не подчеркивая. # Основная часть (/docs/reference/body) Основная часть начинается после введения и состоит из обычных заголовков Typst: `=`, `==`, `===`. `modern-g7-32` превращает их в разделы, подразделы и пункты с ГОСТ-оформлением: абзацный отступ, нумерация без точки в конце, полужирное начертание и разрыв страницы перед разделом первого уровня. Вам **не нужно** вручную следить за нумерацией разделов (1, 1.1, 1.2) или вставлять разрывы страниц перед новыми главами. Шаблон делает это сам. ## Быстрый старт Используйте стандартный синтаксис заголовков Typst (`=`, `==`, `===`). Шаблон автоматически превратит их в нумерованные разделы, оформленные по ГОСТ. ## Автоматизация и стили Шаблон задаёт страницу А4 с полями 30/15/20/20 мм, включает выравнивание текста по ширине, одинаковый абзацный отступ 1.25 см и межстрочный интервал `1.5em - 0.75em`. Разделы первого уровня по умолчанию начинаются с новой страницы, а структурные заголовки вроде «Введение» и «Заключение» центруются и не нумеруются. Если методичка требует другой интервал, поля или разрывы страниц, переопределите только нужный параметр в `gost.with`, не переписывая стили каждого абзаца вручную. ## Настройка поведения Хотя основные стили «зашиты» в шаблон, вы можете управлять некоторыми глобальными параметрами через функцию `gost.with`: ### Пример отключения разрывов страниц Если вы пишете короткий документ (например, лабораторную работу), где каждый раздел не должен быть на новой странице: ```typst #show: gost.with( add-pagebreaks: false, // ... остальные настройки ) ``` ### Жёсткая настройка интервалов Для вузовских методичек, которые требуют визуально более «вордовский» полуторный интервал, можно переопределить Typst-параметры после подключения шаблона: ```typst #show: gost.with(...) // Ближе к полуторному интервалу Word, если стандартной настройки недостаточно. #set par(leading: 1.5em - 0.35em) ``` Такое переопределение остаётся вашей локальной настройкой документа: в самом пакете значение `leading` равно `1.5em - 0.75em`. ## Элементы основной части Основная часть может содержать различные элементы. Подробные руководства по ним находятся в соответствующих разделах: * [Рисунки и иллюстрации](./elements/image.mdx) * [Таблицы](./elements/table.mdx) * [Формулы и уравнения](./elements/equations.mdx) * [Перечисления (списки)](./elements/enum.mdx) * [Ссылки на источники](./references.mdx) ## Требования ГОСТ 7.32-2017 ### Структура и нумерация 5.8.1 В основной части отчета о НИР приводят данные, отражающие сущность, методику и основные результаты выполненной НИР. 5.8.2 Основная часть должна содержать: * выбор направления исследований, включающий обоснование направления исследования, методы решения задач и их сравнительную оценку, описание выбранной общей методики проведения НИР; * процесс теоретических и (или) экспериментальных исследований, включая определение характера и содержания теоретических исследований, методы исследований, методы расчета, обоснование необходимости проведения экспериментальных работ, принципы действия разработанных объектов, их характеристики; * обобщение и оценку результатов исследований, включающих оценку полноты решения поставленной задачи и предложения по дальнейшим направлениям работ, оценку достоверности полученных результатов и технико-экономической эффективности их внедрения и их сравнение с аналогичными результатами отечественных и зарубежных работ, обоснование необходимости проведения дополнительных исследований, отрицательные результаты, приводящие к необходимости прекращения дальнейших исследований. 5.8.3 Единицы физических величин в отчете о НИР приводят по [ГОСТ 8.417](/documents/gost-8.417-2024.pdf). 6.1.5 Сокращения слов и словосочетаний на русском, белорусском и иностранных европейских языках оформляют в соответствии с требованиями [ГОСТ 7.11](/documents/gost-7.11-2004.pdf), [ГОСТ 7.12](/documents/gost-7.12-93.pdf). 6.4.1 Разделы должны иметь порядковые номера в пределах всего отчета, обозначенные арабскими цифрами без точки и расположенные с абзацного отступа. Подразделы должны иметь нумерацию в пределах каждого раздела. Номер подраздела состоит из номеров раздела и подраздела, разделенных точкой. В конце номера подраздела точка не ставится. Разделы, как и подразделы, могут состоять из одного или нескольких пунктов. 6.2.2 Основную часть отчета следует делить на разделы, подразделы и пункты. Пункты при необходимости могут делиться на подпункты. Разделы и подразделы отчета должны иметь заголовки. Пункты и подпункты, как правило, заголовков не имеют. ### Оформление заголовков 6.2.3 Заголовки разделов и подразделов основной части отчета следует начинать с абзацного отступа и размещать после порядкового номера, печатать с прописной буквы, полужирным шрифтом, не подчеркивать, без точки в конце. Пункты и подпункты могут иметь только порядковый номер без заголовка, начинающийся с абзацного отступа. 6.2.4 Если заголовок включает несколько предложений, их разделяют точками. Переносы слов в заголовках не допускаются. 6.4.2 Если отчет не имеет подразделов, то нумерация пунктов в нем должна быть в пределах каждого раздела и номер пункта должен состоять из номеров раздела и пункта, разделенных точкой. В конце номера пункта точка не ставится. Если отчет имеет подразделы, то нумерация пунктов должна быть в пределах подраздела и номер пункта должен состоять из номеров раздела, подраздела и пункта, разделенных точками. 6.4.3 Если раздел или подраздел состоит из одного пункта, то пункт не нумеруется. 6.4.4 Если текст отчета подразделяется только на пункты, они нумеруются порядковыми номерами в пределах отчета. 6.4.5 Пункты при необходимости могут быть разбиты на подпункты, которые должны иметь порядковую нумерацию в пределах каждого пункта: 4.2.1.1, 4.2.1.2, 4.2.1.3 и т. д. 6.4.7 Заголовки должны четко и кратко отражать содержание разделов, подразделов. Если заголовок состоит из двух предложений, их разделяют точкой. 6.4.8 Если отчет состоит из двух и более книг, каждая книга должна иметь свой порядковый номер. Номер каждой книги следует проставлять арабскими цифрами на титульном листе под указанием вида отчета: «Книга 2». 6.9.1 В отчете о НИР рекомендуется приводить ссылки на использованные источники. При нумерации ссылок на документы, использованные при составлении отчета, приводится сплошная нумерация для всего текста отчета в целом или для отдельных разделов. Порядковый номер ссылки (отсылки) приводят арабскими цифрами в квадратных скобках в конце текста ссылки. Порядковый номер библиографического описания источника в списке использованных источников соответствует номеру ссылки. 6.9.2 Ссылаться следует на документ в целом или на его разделы и приложения. 6.9.3 При ссылках на стандарты и технические условия указывают их обозначение, при этом допускается не указывать год их утверждения при условии полного описания стандарта и технических условий в списке использованных источников в соответствии с [ГОСТ 7.1](/documents/gost-7.1-2003.pdf). ### Параметры страницы и текста (из 6.1.1) Текст отчета следует печатать, соблюдая следующие размеры полей: левое — 30 мм, правое — 15 мм, верхнее и нижнее — 20 мм. Абзацный отступ должен быть одинаковым по всему тексту отчета и равен 1,25 см. (из 6.1.1) Отчет о НИР должен быть выполнен... через полтора интервала. # Приложения (/docs/reference/appendixes) Приложения — это дополнительные материалы, которые дополняют текст отчёта, но не включаются в основную часть из-за большого объёма или вспомогательного характера. В шаблоне `modern-g7-32` реализована мощная система автоматизации приложений: они получают буквенную нумерацию, собственные счётчики рисунков и таблиц, а также корректно отображаются в [содержании](./outline.mdx). Шаблон автоматически пропускает буквы **Ё, З, Й, О, Ч, Ъ, Ы, Ь** при именовании приложений, как того требует пункт [6.17.4](#6.17.4). ## Быстрый старт Чтобы переключить отчёт в режим приложений, используйте команду `#show: appendixes`. После неё все заголовки первого уровня (`=`) станут приложениями. // Будет пронумеровано как: Рисунок Б.1 `} image="appendix-example-simple.png" /> ## Автоматизация и логика шаблона При включении режима `#show: appendixes` шаблон выполняет следующие действия: 1. **Смена нумерации**: Заголовки получают формат «ПРИЛОЖЕНИЕ А», «ПРИЛОЖЕНИЕ Б» и т. д. согласно [6.17.3](#6.17.3). 2. **Сброс счётчиков**: Для каждого приложения (заголовка 1 уровня) счётчики рисунков, таблиц и формул обнуляются ([6.17.6](#6.17.6)). 3. **Формат элементов**: Рисунки и таблицы нумеруются с префиксом приложения, например: `Рисунок А.1`, `Таблица В.12`. 4. **Сквозная нумерация страниц**: Сохраняется общая нумерация страниц отчёта. 5. **Содержание**: В [содержание](./outline.mdx) автоматически добавляется слово «Приложение» перед заголовком. ## Функции и параметры ### appendixes Функция-обертка, которая переключает контекст документа. Обычно вызывается через `#show: appendixes`. ### appendix-heading Специальная функция для создания заголовков приложений с указанием их статуса (обязательное, информационное и т. д.) согласно [6.17.7](#6.17.7). ## Продвинутое использование ### Вложенные разделы в приложениях Внутри приложения можно создавать подразделы. Они будут нумероваться с учётом литеры приложения: `А.1`, `А.1.1` и так далее ([6.17.6](#6.17.6)). ### Формулы в приложениях Формулы также автоматически получают нумерацию с буквенным префиксом в круглых скобках, например: `(Б.1)`. ### Нумерация страниц Приложения продолжают общую нумерацию страниц отчёта. Буквенная нумерация относится к самим приложениям и их внутренним элементам, но не запускает новый счётчик страниц. Например, если основная часть закончилась на странице 42, первое приложение начнётся со следующей страницы общей последовательности. ## Требования ГОСТ 7.32-2017 5.11.1 В приложения рекомендуется включать материалы, дополняющие текст отчета, связанные с выполненной НИР, если они не могут быть включены в основную часть. В приложения могут быть включены: * дополнительные материалы к отчету; * промежуточные математические доказательства и расчеты; * таблицы вспомогательных цифровых данных; * протоколы испытаний; * заключение метрологической экспертизы; * инструкции, методики, описания алгоритмов и программ, разработанных в процессе выполнения НИР; * иллюстрации вспомогательного характера; * копии технического задания на НИР, программы работ или другие исходные документы для выполнения НИР; * протокол рассмотрения результатов выполненной НИР на научно-техническом совете; * акты внедрения результатов НИР или их копии; * копии охранных документов. 5.11.2 Приложения к отчету о НИР, в составе которых предусмотрено проведение патентных исследований, могут быть включены в отчет о патентных исследованиях, оформленный по [ГОСТ 15.011](/documents/gost-15.011-2024.pdf), библиографический список публикаций и патентных документов, полученных в результате выполнения НИР, который должен быть оформлен по [ГОСТ 7.1](/documents/gost-7.1-2003.pdf), [ГОСТ 7.80](/documents/gost-7.80-2000.pdf), [ГОСТ 7.82](/documents/gost-7.82-2001.pdf). 6.17.1 Приложения могут включать: графический материал, таблицы не более формата А3, расчеты, описания алгоритмов и программ. Приложение оформляют одним из следующих способов: 1. как продолжение данного отчета на последующих его листах; 2. в виде самостоятельного документа (отдельной книги). 6.17.2 В тексте отчета на все приложения должны быть даны ссылки. Приложения располагают в порядке ссылок на них в тексте отчета. ### Оформление заголовков 6.17.3 Каждое приложение следует размещать с новой страницы с указанием в центре верхней части страницы слова «ПРИЛОЖЕНИЕ». Приложение должно иметь заголовок, который записывают с прописной буквы, полужирным шрифтом, отдельной строкой по центру без точки в конце. 6.17.4 Приложения обозначают прописными буквами кириллического алфавита, начиная с А, за исключением букв Ё, З, Й, О, Ч, Ъ, Ы, Ь. После слова «ПРИЛОЖЕНИЕ» следует буква, обозначающая его последовательность. Допускается обозначение приложений буквами латинского алфавита, за исключением букв I и O. В случае полного использования букв кириллического или латинского алфавита допускается обозначать приложения арабскими цифрами. Если в отчете одно приложение, оно обозначается «ПРИЛОЖЕНИЕ А». 6.17.5 Приложения, как правило, выполняют на листах формата А4. Допускается оформление приложения на листах формата А3. ### Нумерация элементов 6.17.6 Текст каждого приложения при необходимости может быть разделен на разделы, подразделы, пункты, подпункты, которые нумеруют в пределах каждого приложения. Перед номером ставится обозначение этого приложения. Приложения должны иметь общую с остальной частью отчета сквозную нумерацию страниц. ### Отображение в содержании 6.17.7 Все приложения должны быть перечислены в содержании отчета (при наличии) с указанием их обозначений, статуса и наименования. # Введение (/docs/reference/introduction) Введение — это обязательный структурный элемент отчёта, в котором обосновывается актуальность работы, ставятся цели и задачи исследования. В хорошем введении читатель быстро понимает, зачем выполнялась работа, какая проблема решалась, какие исходные данные использовались и какой результат ожидается от основной части отчёта. В шаблоне `modern-g7-32` введение классифицируется как структурный заголовок, что накладывает на него особые правила оформления согласно [6.2.1](#6.2.1). ## Быстрый старт Просто используйте заголовок первого уровня с текстом «Введение». Шаблон автоматически распознает это ключевое слово. ## Автоматизация и логика шаблона Шаблон избавляет вас от необходимости вручную настраивать стили для этого раздела: 1. **Новая страница**: В соответствии с [6.2.1](#6.2.1), каждый структурный элемент начинается с нового листа. 2. **Центрирование и регистр**: Заголовок автоматически переводится в верхний регистр («ВВЕДЕНИЕ») и выравнивается по центру строки. 3. **Отключение нумерации**: Структурные заголовки не нумеруются арабскими цифрами, в отличие от основных разделов отчёта. 4. **Стилистика текста**: Шаблон применяет полужирное начертание, требуемое пунктом [6.1.1-font](#6.1.1-font). ## Содержание раздела Согласно требованиям [5.7.1](#5.7.1), введение должно включать: * Оценку текущего состояния решаемой проблемы. * Обоснование актуальности и новизны темы. * Исходные данные и основание для разработки. * Сведения о планируемом научно-техническом уровне. Если вы готовите промежуточный отчёт, обратите внимание на пункт [5.7.2](#5.7.2), который требует указания места конкретного этапа в общем плане НИР. Для заключительного отчёта необходимо перечислить все предыдущие промежуточные отчёты согласно [5.7.3](#5.7.3). ## Продвинутое использование Если вам необходимо создать структурный заголовок с другим названием (например, для специфических требований вуза), используйте функцию `#structure-heading`. Она применит все свойства «Введения» (разрыв страницы, центрирование, отсутствие номера) к вашему тексту. ## Требования ГОСТ 7.32-2017 ### Сущность элемента 5.7.1 Введение должно содержать оценку современного состояния решаемой научно-технической проблемы, основание и исходные данные для разработки темы, обоснование необходимости проведения НИР, сведения о планируемом научно-техническом уровне разработки, о патентных исследованиях и выводы из них, сведения о метрологическом обеспечении НИР. Во введении должны быть отражены актуальность и новизна темы, связь данной работы с другими научно-исследовательскими работами. 5.7.2 Во введении промежуточного отчета по этапу НИР должны быть указаны цели и задачи исследований, выполненных на данном этапе, их место в выполнении отчета о НИР в целом. 5.7.3 Во введении заключительного отчета о НИР приводят перечень наименований всех подготовленных промежуточных отчетов по этапам и их регистрационные номера, если они были представлены в соответствующий орган для регистрации. ### Оформление 6.2.1 Наименования структурных элементов отчета... «ВВЕДЕНИЕ»... служат заголовками структурных элементов отчета. Заголовки структурных элементов следует располагать в середине строки без точки в конце, прописными буквами, не подчеркивая. Каждый структурный элемент... начинают с новой страницы. (из 6.1.1) Полужирный шрифт применяют только для заголовков разделов и подразделов, заголовков структурных элементов. # Титульный лист (/docs/reference/title) Титульный лист в `modern-g7-32` собирается из параметров `gost.with`: реквизиты организации, грифы, тема, руководитель, город и год попадают в готовую страницу без ручной вёрстки. Титульный лист включается в общую нумерацию страниц, но номер на нём не проставляется согласно [6.3.2](#6.3.2). ## Быстрый старт Данные для титульного листа передаются в основную функцию `gost.with`. Если какое-то поле не указано, соответствующий блок на странице будет автоматически скрыт. ## Варианты использования ### Если титульный лист уже есть в PDF Иногда кафедра выдаёт готовую первую страницу в PDF. В этом случае можно скрыть титульный лист пакета и добавить внешний файл средствами Typst: Обернуть вызов `#image` приходится для того, чтобы остальной документ имел правильные отступы. Такой вариант отключает автоматическую вёрстку реквизитов. Дальше документ всё равно получает стили `modern-g7-32`: поля, основной текст, структурные заголовки, содержание и приложения. ### Встроенные титульные листы шаблона Встроенные титульные листы позволяют использовать реквизиты для заполнения подготовленного командой Typst Gost титульного листа. На данный момент доступен только один шаблон: `mai-university-lab`. С развитием проекта их станет больше. ## Автоматизация и логика шаблона Шаблон соблюдает строгие правила оформления, описанные в пункте [6.10.1](#6.10.1): 1. **Регистр**: Наименование министерства, организации, вид документа и тема автоматически переводятся в верхний регистр (Caps Lock), как того требует [6.1.3](#6.1.3). 2. **Грифы**: Грифы «СОГЛАСОВАНО» (слева) и «УТВЕРЖДАЮ» (справа) выравниваются автоматически. Дата может быть указана как `auto` для подстановки текущего дня. 3. **Связующие фразы**: Перед наименованием отчёта шаблон автоматически добавляет слова «по теме:». Если наименование НИР и отчёта совпадают, используйте параметр `bare-subject: true`, чтобы убрать лишнюю фразу. 4. **Единственный исполнитель**: Если в [списке исполнителей](./performers.mdx) указан только один человек, шаблон автоматически перенесёт его сведения на титульный лист. 5. **Нумерация книг**: Если отчёт состоит из нескольких книг ([5.1.3](#5.1.3)), используйте параметр `part`, и на титульном листе появится надпись «Книга X» под видом отчёта. ## Параметры функции Ниже перечислены аргументы `gost.with`, которые влияют на титульный лист. Параметр `performers` описан отдельно в разделе [Список исполнителей](./performers.mdx), потому что он одновременно управляет титульным листом и отдельным структурным элементом отчёта. ### Основные реквизиты ### Грифы согласования и утверждения Поля `approved-by` и `agreed-by` принимают словари: `name`, `position`, `year`. ### Руководитель и этап работы Поля `manager` и `stage` также передаются словарями. У руководителя используются `name`, `position` и необязательный `title`. У этапа используются `type` и необязательный `num`. ## Требования ГОСТ 7.32-2017 5.1.1 Титульный лист является первой страницей отчета о НИР и служит источником информации, необходимой для обработки и поиска отчета в информационной среде. 5.1.2 На титульном листе приводят следующие сведения: а) наименование министерства (ведомства) или другого структурного образования, в систему которого входит организация-исполнитель; б) наименование (полное и сокращенное) организации — исполнителя НИР; в) индекс Универсальной десятичной классификации (УДК) по [ГОСТ 7.90](/documents/gost-7.90-2007.pdf); г) номера, идентифицирующие отчет: 1. регистрационный номер НИР; 2. регистрационный номер отчета; д) грифы согласования и утверждения отчета, включая подпись руководителя организации с расшифровкой, печать организации и даты согласования и утверждения отчета (дату указывают в интервале выполнения работы — для промежуточных отчетов и дату окончания — для заключительных отчетов); е) вид документа (отчет о НИР); ж) наименование НИР; и) наименование отчета; к) вид отчета (заключительный, промежуточный); л) номер (шифр) научно-технической программы, темы; м) номер книги отчета (при наличии нескольких книг отчета); н) должность, ученую степень, ученое звание, подпись, инициалы и фамилию научного руководителя/руководителей НИР; п) место и год составления отчета. 5.1.3 Если отчет о НИР состоит из двух и более книг, каждая книга должна иметь свой титульный лист, соответствующий титульному листу первой книги и содержащий сведения, относящиеся к данной книге. 6.10.1 Титульный лист содержит реквизиты: * наименование министерства (ведомства) или другого структурного образования, в систему которого входит организация — исполнитель, следует помещать в верхней части титульного листа одно под другим по центру страницы. Наименование министерства (ведомства) приводят в полном виде с прописной буквы; * полное наименование организации — исполнителя НИР. Наименование организации — исполнителя НИР приводят прописными буквами, по центру страницы, через один межстрочный интервал; * сокращенное наименование организации — исполнителя НИР. Сокращенное наименование организации приводят в круглых скобках, на отдельной строке, по центру страницы, прописными буквами, через один межстрочный интервал; * индекс УДК, регистрационный номер НИР, регистрационный номер отчета. Эти данные размещаются одно под другим на титульном листе слева, через один межстрочный интервал. От наименования организации — исполнителя НИР индекс УДК отделяют два межстрочных интервала; * грифы согласования и утверждения. Гриф согласования и утверждения состоит из слов: «СОГЛАСОВАНО» и «УТВЕРЖДАЮ» (без кавычек), наименования должности, ученой степени, ученого звания лица, согласовавшего и утвердившего отчет, личной подписи (для подписи применяется синий цвет чернил), расшифровки подписи (инициалы и фамилия), даты согласования и утверждения отчета. Здесь же проставляется печать организации, согласовавшей и утвердившей отчет. Гриф СОГЛАСОВАНО размещается на титульном листе слева, а УТВЕРЖДАЮ — справа. Грифы согласования и утверждения располагаются ниже номеров, идентифицирующих отчет (через два межстрочных интервала). Дата согласования и утверждения оформляется арабскими цифрами в следующей последовательности: день, месяц, год. День и месяц оформляются двумя парами арабских цифр, разделенных точкой, год — четырьмя арабскими цифрами. Допускается словесно-цифровой способ оформления даты. Данные под грифами согласования и утверждения приводят через один межстрочный интервал; * вид документа (отчет о НИР). Вид документа «ОТЧЕТ О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ» приводят прописными буквами по центру страницы: на первой строке по центру слово «ОТЧЕТ», на следующей строке — слова «О НАУЧНО-ИССЛЕДОВАТЕЛЬСКОЙ РАБОТЕ», через один межстрочный интервал, отступив от грифов согласования и утверждения два межстрочных интервала; * наименование НИР. Наименование НИР приводят строчными буквами с первой прописной по центру строки, через один межстрочный интервал; * наименование отчета. Наименование отчета приводят прописными буквами, по центру строки, через один межстрочный интервал перед наименованием отчета на верхней строке по центру приводят строчными буквами слова «по теме:». Если наименование НИР совпадает с наименованием отчета, то приводится только одно наименование прописными буквами, не приводя слова «по теме»; * вид отчета (промежуточный, заключительный). Вид отчета приводят в круглых скобках строчными буквами. Для промежуточных отчетов в тех же круглых скобках, через запятую, после вида отчета указывают номер этапа; * номер (шифр) научно-технической программы, темы. Шифр программы, темы печатают по центру страницы с прописной буквы, через один межстрочный интервал; * номер книги отчета. Если отчет состоит из нескольких книг, то на титульном листе приводится слово «Книга» строчными буквами с первой прописной и через пробел номер текущей книги; * должность, ученая степень, ученое звание, подпись, инициалы и фамилия научного руководителя/руководителей НИР. Слева указывают должности, ученые степени, ученые звания руководителя/руководителей НИР, затем оставляют свободное поле для подписей, справа указывают инициалы и фамилии. Если на титульном листе не размещаются все необходимые подписи, то их переносят на дополнительную страницу титульного листа. В правом верхнем углу дополнительной страницы указывают «Продолжение титульного листа», а в нижней части первой страницы справа указывают «Продолжение на следующем листе»; * место и год составления отчета. Место (город или другое место выполнения отчета) и год составления отчета приводят по центру в нижней части титульного листа, отделяя друг от друга пробелом. Если титульный лист имеет продолжение на следующем листе, то место и год составления отчета приводятся только на первом листе. # Заключение (/docs/reference/conclusion) Заключение — обязательный структурный элемент отчёта, содержащий краткие выводы по результатам работы, оценку полноты решения задач и рекомендации по использованию результатов НИР. В шаблоне `modern-g7-32` «Заключение» оформляется как структурный заголовок: оно всегда начинается с новой страницы и не имеет порядкового номера. ## Быстрый старт Для создания раздела просто используйте заголовок первого уровня с текстом «Заключение». Шаблон автоматически применит к нему правила оформления структурных элементов. ## Автоматизация и логика шаблона Шаблон обрабатывает заголовок «Заключение» согласно правилам [6.3.1](#6.3.1) и [6.3.2](#6.3.2): 1. **Отсутствие номера**: Заголовок не нумеруется арабскими цифрами, даже если разделы основной части имеют нумерацию. 2. **Регистр и выравнивание**: Текст переводится в верхний регистр («ЗАКЛЮЧЕНИЕ») и центрируется по ширине страницы согласно [6.2.1](#6.2.1). 3. **Разрыв страницы**: Раздел всегда начинается с чистого листа. 4. **Шрифт**: К заголовку применяется полужирное начертание, как указано в [6.1.1-font](#6.1.1-font). ## Содержание раздела Согласно пункту [5.9](#5.9), в заключении рекомендуется отразить: * Выводы по результатам НИР или её этапов. * Оценку того, насколько полно решены поставленные задачи. * Рекомендации по конкретному внедрению или использованию результатов. * Оценку научно-технического уровня работы в сравнении с аналогами. ## Требования ГОСТ 7.32-2017 ### Сущность элемента 5.9 Заключение должно содержать: * краткие выводы по результатам выполненной НИР или отдельных ее этапов; * оценку полноты решений поставленных задач; * разработку рекомендаций и исходных данных по конкретному использованию результатов НИР; * результаты оценки технико-экономической эффективности внедрения; * результаты оценки научно-технического уровня выполненной НИР в сравнении с лучшими достижениями в этой области. ### Правила оформления 6.2.1 Наименования структурных элементов отчета: ... «ЗАКЛЮЧЕНИЕ» ... служат заголовками структурных элементов отчета. Заголовки структурных элементов следует располагать в середине строки без точки в конце, прописными буквами, не подчеркивая. Каждый структурный элемент ... начинают с новой страницы. 6.3.2 Заголовки «ВВЕДЕНИЕ», «ЗАКЛЮЧЕНИЕ», «СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ» не нумеруют. (из 6.1.1) Полужирный шрифт применяют только для заголовков разделов и подразделов, заголовков структурных элементов. # Список источников (/docs/reference/references) Список использованных источников — обязательный структурный элемент отчёта: здесь оказываются книги, статьи, сайты, стандарты и репозитории, на которые вы ссылаетесь в тексте. В `modern-g7-32` этот раздел строится на стандартной функции Typst `#bibliography()`. Пакет заранее выбирает стиль `gost-r-705-2008-numeric`, печатает заголовок «СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ» как структурный и оставляет вам главное: аккуратно заполнить библиографическую базу. Оформление библиографии происходит согласно с [ГОСТ 7.1](/documents/gost-7.1-2003.pdf) ## Быстрый старт Для вставки списка используйте стандартную функцию Typst `#bibliography()`. ## Автоматизация и логика шаблона Шаблон управляет библиографией в соответствии с пунктами [6.16](#6.16) и [6.9.1](#6.9.1): 1. **Порядок следования**: источники располагаются в порядке появления ссылок в тексте отчёта (numeric style). 2. **Нумерация**: ссылки в тексте оформляются арабскими цифрами в квадратных скобках, например `[1]`. 3. **Заголовок**: название раздела «СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ» оформляется прописными буквами по центру страницы и не нумеруется согласно [6.3.2](#6.3.2). 4. **Стиль ГОСТ**: `gost-r-705-2008-numeric` задаётся в пакете через `set bibliography(...)`. ## Параметры функции Функция `#bibliography` принимает путь к файлу с источниками и необязательные параметры. ## Работа с источниками Чтобы сослаться на источник, используйте символ `@` и ключ записи из вашего `.bib` файла: * `@label` — стандартная ссылка: `[1]`. * `@label1 @label2` — группа ссылок: `[1, 2]`. Согласно [6.9.2](#6.9.2), вы можете ссылаться на документ в целом или на его конкретные разделы. Если нормоконтроль требует конкретный набор полей, заполните их в `.bib`: автор, название, год, издательство или URL. Пакет отвечает за оформление вывода, но не может восстановить отсутствующие библиографические данные. Для ручной подготовки BibTeX-записей можно использовать справочник и генератор [bibtex.eu на русском языке](https://bibtex.eu/ru/). После генерации всё равно проверьте поля: ГОСТ-стиль в Typst красиво оформит запись, но не исправит неверного автора, год или URL. ## Требования ГОСТ 7.32-2017 ### Состав сведений 5.10.1 Список должен содержать сведения об источниках, использованных при составлении отчета. Сведения об источниках приводятся в соответствии с требованиями [ГОСТ 7.1](/documents/gost-7.1-2003.pdf), [ГОСТ 7.80](/documents/gost-7.80-2000.pdf), [ГОСТ 7.82](/documents/gost-7.82-2001.pdf). 5.10.2 Список использованных источников должен включать библиографические записи на документы, использованные при составлении отчета, ссылки на которые оформляют арабскими цифрами в квадратных скобках. ### Оформление и ссылки 6.16 Сведения об источниках следует располагать в порядке появления ссылок на источники в тексте отчета и нумеровать арабскими цифрами с точкой и печатать с абзацного отступа. 6.9.1 В отчете о НИР рекомендуется приводить ссылки на использованные источники. При нумерации ссылок на документы, использованные при составлении отчета, приводится сплошная нумерация для всего текста отчета в целом или для отдельных разделов. Порядковый номер ссылки (отсылки) приводят арабскими цифрами в квадратных скобках в конце текста ссылки. Порядковый номер библиографического описания источника в списке использованных источников соответствует номеру ссылки. 6.9.2 Ссылаться следует на документ в целом или на его разделы и приложения. 6.9.3 При ссылках на стандарты и технические условия указывают их обозначение, при этом допускается не указывать год их утверждения при условии полного описания стандарта и технических условий в списке использованных источников в соответствии с [ГОСТ 7.1](/documents/gost-7.1-2003.pdf). # Список исполнителей (/docs/reference/performers) Список исполнителей содержит сведения обо всех участниках работы, включая руководителей, ответственных исполнителей, соисполнителей и нормоконтролеров. Шаблон реализует требование пункта [5.2.2](#5.2.2): если в списке указан только один исполнитель, отдельная страница не создается, а подпись переносится на [титульный лист](./title.mdx). ## Быстрый старт Данные об исполнителях передаются в функцию `gost.with` через параметр `performers`. Это массив, элементами которого могут быть словари (для людей) или строки (для названий организаций). ## Автоматизация и логика шаблона Шаблон `modern-g7-32` автоматизирует сложную верстку этой страницы согласно [6.11](#6.11): 1. **Формирование столбцов**: Сведения располагаются столбцом: слева — должность и регалии, справа — инициалы и фамилия. 2. **Поля для подписей**: Между должностью и фамилией автоматически создается пустое поле для подписи и место для даты согласно [6.11](#6.11). 3. **Разделы ответственности**: Если указан параметр `part`, он будет автоматически добавлен в скобках возле фамилии, как того требует стандарт. 4. **Организации**: Если в массив передана строка, она оформляется как наименование организации-соисполнителя. 5. **Принудительный вывод**: Параметр `force-performers: true` заставляет шаблон напечатать эту страницу, даже если исполнитель всего один. 6. **Сортировка соисполнителей**: Шаблон автоматически разделяет основных исполнителей и соисполнителей (`co-performer: true`), выстраивая их в правильном порядке независимо от того, как они расположены в исходном массиве. ## Параметры элемента списка Каждый исполнитель описывается словарем со следующими ключами: ## Продвинутое использование ### Работа с несколькими организациями Согласно [6.11](#6.11), для соисполнителей из других организаций нужно указывать их наименование. В шаблоне это делается вставкой строки перед блоком сотрудников этой организации. ### Автоматическая сортировка соисполнителей Параметр `co-performer: true` дает полную свободу в составлении списка: вы можете использовать любые комбинации и назначать соисполнителем любого участника. Вам не нужно вручную следить за строгим порядком элементов в массиве `performers`. Шаблон берет рутину на себя и автоматически отсортирует участников: основные исполнители (без флага) всегда будут сгруппированы и выведены первыми, а соисполнители сформируют отдельный логический блок ниже. Шаблон сам «подтянет» текстовые строки с названиями организаций к нужным сотрудникам, выстроив итоговую иерархию в строгом соответствии с требованиями ГОСТ. ### Нормоконтроль По пункту [5.2.3](#5.2.3), отчет подлежит обязательному нормоконтролю. Добавьте ответственное лицо в конец списка `performers`. ## Требования ГОСТ 7.32-2017 ### Состав сведений 5.2.1 В список исполнителей должны быть включены фамилии и инициалы, должности, ученые степени, ученые звания и подписи руководителей НИР, ответственных исполнителей, исполнителей и соисполнителей, принимавших непосредственное участие в выполнении работы, с указанием их роли в подготовке отчета. 5.2.2 Если отчет выполнен одним исполнителем, его должность, ученую степень, ученое звание, фамилию и инициалы следует указывать на титульном листе отчета. В этом случае структурный элемент отчета «СПИСОК ИСПОЛНИТЕЛЕЙ» не оформляют. 5.2.3 Основная задача нормоконтролера — проверка соблюдения норм и требований, установленных настоящим стандартом, соблюдение всех нормативных требований, соблюдения единообразия в оформлении структурных элементов и правил оформления отчета о НИР. 6.11 Сведения об исполнителях следует располагать столбцом. Слева указывают должности, ученые степени, ученые звания руководителя НИР, ответственных исполнителей, исполнителей, соисполнителей, затем оставляют свободное поле для подлинных подписей, справа указывают инициалы и фамилии. Возле каждой фамилии в скобках следует указывать номер раздела (подраздела), в подготовке которого участвовал конкретный исполнитель. Для соисполнителей из других организаций следует указывать наименование организации-соисполнителя. Список исполнителей формируют в порядке должностей исполнителей. # Реферат (/docs/reference/abstract) Реферат — это короткая витрина отчёта: по нему должно быть понятно, о чём работа, что в ней сделано и по каким словам её потом искать. В `modern-g7-32` для этого есть функция `#abstract`: она печатает структурный заголовок, собирает статистику документа и оформляет ключевые слова прописными буквами. Вам **не нужно** вручную считать количество страниц, иллюстраций, таблиц и источников. Шаблон автоматически соберет эту статистику со всего документа и вставит в первую строку реферата. Оформление реферата происходит согласно с [ГОСТ 7.9](/documents/gost-7.9-95.pdf) ## Быстрый старт Функция `#abstract` принимает ключевые слова (через запятую) и текст реферата (в блоке контента). ## Автоматизация Шаблон автоматически формирует структуру реферата согласно разделу [6.12](#6.12.1,6.12.2,6.12.3) [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf): * Статистика отчёта (объём, количество таблиц, источников) генерируется автоматически * Ключевые слова оформляются прописными буквами через запятую * Текст реферата размещается с абзацными отступами для структурных частей От пользователя требуется: * Указать от 5 до 15 ключевых слов согласно [5.3.2.1](#5.3.2.1) * Написать текст реферата объёмом до 850 знаков, отражающий требования [5.3.2.2](#5.3.2.2) ## Продвинутое использование ### Отключение статистики Пример с отключением автоматизированной статистики . ## Параметры функции ## Требования ГОСТ 7.32-2017 ### Требования к структурным элементам отчета 5.3.1 Общие требования к реферату отчета о НИР — по [ГОСТ 7.9](/documents/gost-7.9-95.pdf). 5.3.2 Реферат должен содержать: * сведения об общем объеме отчета, количестве книг отчета, иллюстраций, таблиц, использованных источников, приложений; * перечень ключевых слов; * текст реферата. 5.3.2.1 Перечень ключевых слов должен включать от 5 до 15 слов или словосочетаний из текста отчета, которые в наибольшей мере характеризуют его содержание и обеспечивают возможность информационного поиска. 5.3.2.2 Текст реферата должен отражать: * объект исследования или разработки; * цель работы; * методы или методологию проведения работы; * результаты работы и их новизну; * область применения результатов; * рекомендации по внедрению или итоги внедрения результатов НИР; * экономическую эффективность или значимость работы; * прогнозные предположения о развитии объекта исследования. Если отчет не содержит сведений по какой-либо из перечисленных структурных частей реферата, то в тексте реферата она опускается, при этом последовательность изложения сохраняется. Оптимальный объем текста реферата — 850 печатных знаков, но не более одной страницы машинописного текста. Реферат следует оформлять в соответствии с [6.12](#6.12.1,6.12.2,6.12.3). ### Правила оформления отчёта 6.12.1 Сведения об общем объеме отчета, количестве книг отчета, иллюстраций, таблиц, использованных источников, приложений являются первой компонентой реферата и располагаются с абзацного отступа, в строку, через запятые. 6.12.2 Ключевые слова являются второй компонентой реферата. Они приводятся в именительном падеже и печатаются прописными буквами, в строку, через запятые, без абзацного отступа и переноса слов, без точки в конце перечня. 6.12.3 Текст реферата помещается с абзацного отступа после ключевых слов. Для выделения структурных частей реферата в соответствии с [5.3.2.2](#5.3.2.2) используются абзацные отступы. # Настройка и экспорт (/docs/advanced_usage) Этот раздел нужен, когда базового каркаса уже недостаточно: кафедра просит другой шрифт, организация выдаёт собственный титульный лист, нормоконтроль хочет DOCX или в отчёте нужна нестандартная нумерация элементов. * [Детальная настройка](./customization) — поля, шрифты, интервалы, номера страниц и локальные переопределения Typst. * [Пользовательские титульные листы](./custom_title_templates) — встроенный шаблон МАИ и собственные функции титульной страницы. * [Альтернативная нумерация фигур](./figure_numbering) — примеры для нумерации рисунков по разделам. * [Экспорт в DOCX](./export) — честный маршрут, если проверяющий просит Word. # Пользовательские титульные листы (/docs/advanced_usage/custom_title_templates) Хотя [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf) задаёт общую структуру титульного листа, вузы и организации часто требуют собственный порядок блоков, логотип, подписи или формулировки. `modern-g7-32` позволяет заменить только титульный лист и оставить всю остальную логику отчёта: поля, содержание, структурные заголовки, список исполнителей, источники и приложения. В текущей версии пакета встроены `title-templates.default` и `title-templates.mai-university-lab`. Примеры ГУАП и МИРЭА ниже показывают минимальные пользовательские шаблоны с той же сигнатурой аргументов. ## Готовый шаблон МАИ Встроенный пресет МАИ подключается через параметр `title-template`. Остальные аргументы остаются обычными аргументами `gost.with`: `subject`, `manager`, `approved-by`, `agreed-by`, `city`, `year` и так далее. ## Одинаковые аргументы Пользовательский титульный шаблон обычно состоит из двух функций: * `arguments(..args, year: auto)` нормализует данные, задаёт значения по умолчанию и проверяет вложенные словари. * `template(..args)` получает уже подготовленные аргументы и верстает страницу. Эта схема работает как наследование: можно взять аргументы базового шаблона, добавить несколько полей для конкретного вуза и оставить общие поля прежними. Благодаря этому в `gost.with` не нужно менять названия стандартных аргументов при переходе между титульниками. ```typst // local-title.typ #import "@preview/modern-g7-32:0.2.0": custom-title-template #import custom-title-template: * #let arguments(..args, year: auto) = { let args = args.named() args.organization = fetch-field( args.at("organization", default: none), ("*full", "short"), hint: "организации", ) args.manager = fetch-field( args.at("manager", default: none), ("position*", "name*"), hint: "руководителя", ) return args } #let template( organization: (full: none, short: none), department: none, group: none, subject: none, manager: (position: none, name: none), city: none, year: auto, ..rest, ) = { align(center)[ #upper(organization.full) \ #if organization.short != none { upper(organization.short) } #v(1fr) #strong[ОТЧЁТ] #v(0.4fr) #subject #v(1fr) ] sign-field(manager.name, manager.position) v(0.5fr) } ``` Подключается такой файл через `custom-title-template.from-module(...)`: ```typst #import "@preview/modern-g7-32:0.2.0": gost, custom-title-template #import "local-title.typ" as local-title #show: gost.with( title-template: custom-title-template.from-module(local-title), subject: "Собственный титульный лист", organization: (full: "Моя организация"), manager: (name: "Иванов И.И.", position: "Руководитель"), city: "Москва", ) ``` ## Минимальные примеры ### ГУАП ```typst #let template( organization: (full: "Санкт-Петербургский государственный университет аэрокосмического приборостроения"), faculty: none, department: none, group: none, subject: none, manager: (position: none, name: none), city: "Санкт-Петербург", year: auto, ..rest, ) = [ #align(center)[ #upper(organization.full) \ #if faculty != none [Факультет #faculty \] #if department != none [Кафедра #department \] #v(1fr) #strong[ОТЧЁТ] \ #subject ] #v(1fr) #if group != none [Группа: #group \] #sign-field(manager.name, manager.position) ] ``` ### МИРЭА ```typst #let template( organization: (full: "МИРЭА -- Российский технологический университет"), institute: none, department: none, subject: none, manager: (position: none, name: none), city: "Москва", year: auto, ..rest, ) = [ #align(center)[ #upper(organization.full) \ #if institute != none [Институт #institute \] #if department != none [Кафедра #department \] #v(1fr) #strong[ОТЧЁТ ПО ПРАКТИЧЕСКОЙ РАБОТЕ] \ #subject ] #v(1fr) #sign-field(manager.name, manager.position) ] ``` ### Скрыть стандартный титульник Если титульный лист верстается отдельно или вставляется из PDF, отключите его в `gost.with`. ```typst #show: gost.with( hide-title: true, ) ``` ## Доступные утилиты Для упрощения вёрстки в модуле `custom-title-template` доступны те же утилиты, которые использует встроенный титульный лист. ## Параметры настройки Пользовательский шаблон получает все именованные аргументы `gost.with`, поэтому можно добавлять локальные поля вроде `faculty`, `group`, `variant`, `teacher` или `practice-kind`. Общие поля лучше оставлять с теми же именами, что и у стандартного титульника. ## Требования ГОСТ 7.32-2017 6.1.1 На титульном листе приводят сведения, предусмотренные [5.2](#5.2) в соответствии с формами, приведенными в приложениях А и Б. 6.10.1 Титульный лист содержит реквизиты: наименование министерства... полное наименование организации... грифы согласования и утверждения... # Экспорт в DOCX (/docs/advanced_usage/export) PDF — основной результат сборки Typst, но нормоконтроль иногда просит файл Word. У `modern-g7-32` нет встроенного экспорта в DOCX: пакет отвечает за Typst-вёрстку по [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf), а конвертация в Word остаётся отдельным шагом с компромиссами. DOCX после конвертации почти всегда нужно просмотреть вручную: проверить титульный лист, подписи рисунков и таблиц, формулы, список источников и переносы страниц. ## Быстрый старт 1. Соберите финальный PDF из Typst. 2. Откройте PDF в Microsoft Word или Adobe Acrobat и сохраните как `.docx`. 3. Проверьте места, где конвертеры чаще всего ошибаются: формулы, таблицы на несколько страниц, подписи элементов, библиографию и приложения. 4. Если правки нужны только для нормоконтроля, вносите их в отдельную копию `.docx`, а исходник `.typ` оставляйте главным источником правды. ## Варианты конвертации ### Microsoft Word Новые версии Word умеют открывать PDF напрямую. Это самый доступный путь, если проверяющему нужен именно редактируемый файл. Минус: Word восстанавливает структуру документа эвристически, поэтому может разбить подписи, таблицы и колонтитулы на неожиданные блоки. ### Adobe Acrobat Acrobat обычно лучше сохраняет визуальную структуру PDF, но результат всё равно не становится «родным» Word-документом. Проверьте списки, формулы и переносы таблиц перед отправкой. ### typ2docx [`typ2docx`](https://github.com/Enter-tainer/typ2docx) конвертирует Typst в DOCX напрямую. Это перспективный путь для автоматизации, но поддержку конкретных элементов `modern-g7-32` нужно проверять на вашем документе: титульные шаблоны, ГОСТ-библиография, приложения и подписи могут потребовать ручной доводки. ### Pandoc Pandoc хорошо работает для текстовой структуры Markdown/LaTeX, но для Typst-документа с кастомными show-правилами и пакетной вёрсткой это не прямой экспорт. Обычно приходится сначала переводить документ в промежуточный формат, теряя часть оформления, а потом восстанавливать ГОСТ-детали в Word. ## Что проверить после экспорта * Титульный лист: грифы, город и год, скрытый номер первой страницы. * Содержание: отточия и номера страниц после правок в Word. * Рисунки, таблицы и листинги: подписи, ссылки в тексте и порядок нумерации. * Формулы: выравнивание, номера справа и качество символов. * Список источников: квадратные скобки, порядок появления ссылок, переносы записей. * Приложения: литеры, собственная нумерация элементов и попадание в содержание. ## Рабочая стратегия Держите основной документ в Typst и экспортируйте DOCX только в конце. Если после проверки в Word появились правки по содержанию, перенесите их обратно в `.typ`; иначе следующая сборка PDF и DOCX разойдутся. # Альтернативная нумерация фигур (/docs/advanced_usage/figure_numbering) По умолчанию `modern-g7-32` нумерует рисунки и таблицы сквозным счётчиком, а в приложениях переключается на формат `А.1`, `А.2`. Если методичка требует нумерацию внутри раздела (`Рисунок 1.1`, `Рисунок 1.2`, `Рисунок 2.1`), это можно сделать локальным переопределением Typst. ```typst #show: gost.with(...) #show figure.where(kind: image): set figure( numbering: n => { let section = counter(heading).get().first() numbering("1.1", section, n) } ) #show heading.where(level: 1): it => { counter(figure.where(kind: image)).update(0) it } ``` Для таблиц используйте отдельный селектор, чтобы не смешивать счётчики рисунков и таблиц: ```typst #show figure.where(kind: table): set figure( numbering: n => { let section = counter(heading).get().first() numbering("1.1", section, n) } ) #show heading.where(level: 1): it => { counter(figure.where(kind: table)).update(0) it } ``` Это переопределение меняет стандартное поведение пакета. Если вы используете `#show: appendixes`, сначала проверьте нумерацию рисунков и таблиц в приложениях на финальном PDF. # Детальная настройка (/docs/advanced_usage/customization) Шаблон `modern-g7-32` по умолчанию настроен на строгое соответствие [ГОСТ 7.32-2017](/documents/gost-7.32-2017.pdf). Однако образовательные организации часто вводят дополнительные требования к оформлению: другой размер шрифта, локальные поля, номер страницы справа или более плотный межстрочный интервал. Большинство этих параметров можно изменить в функции `gost.with`. ## Быстрый старт Минимальный пример изменения базовых визуальных параметров: ## Основные параметры настройки Функция `gost.with` принимает ряд параметров, которые глобально меняют стиль документа. ## Геометрия страницы и текст ### Поля (Margins) По умолчанию установлены поля: левое — 30 мм, правое — 15 мм, верхнее и нижнее — 20 мм согласно [6.1.1-margins](#6.1.1-margins). Вы можете передать в `margin` как одно значение (для всех сторон), так и словарь для детальной настройки. ### Интервалы и отступы ГОСТ требует полуторный межстрочный интервал [6.1.1-paper-spacing](#6.1.1-paper-spacing). В Typst это настраивается через параметр `leading`. В шаблоне установлено значение `1.5em - 0.75em`, что обеспечивает визуальное соответствие «машинописному» полуторному интервалу. Абзацный отступ по умолчанию равен 1.25 см [6.1.1-margins](#6.1.1-margins). Если ваш ВУЗ требует другое значение, просто измените параметр `indent`. Полезные страницы Typst: [`set par`](https://typst.app/docs/reference/model/par/#parameters-leading) для `leading` и [`set page`](https://typst.app/docs/reference/layout/page/#parameters-margin) для полей страницы. ## Управление разрывами страниц В больших отчётах каждый крупный раздел должен начинаться с новой страницы. Однако для коротких работ (статьи, пояснительные записки к ЛР) это может быть неэффективно. Используйте параметр `add-pagebreaks: false`, чтобы заголовки первого уровня (`=`) следовали сразу за предыдущим текстом. ```typst #show: gost.with(add-pagebreaks: false) = Раздел 1 Текст... = Раздел 2 Этот раздел начнется сразу под текстом Раздела 1. ``` В текущей версии опубликованного пакета этот параметр уже описан в справке, но живой пример здесь не рендерится автоматически, чтобы не ломать сборку документации. ## Кастомные правила (Overrides) Поскольку `modern-g7-32` — это стандартный пакет Typst, вы можете переопределять любые стили после вызова `show: gost.with`. ### Пример: Изменение цвета ссылок или темы кода Если вам нужно добавить подсветку синтаксиса или изменить цвет гиперссылок (что выходит за рамки строгого ГОСТ, но удобно для электронных версий): ```typst #show: gost.with(...) // Сделать ссылки синими и подчеркнутыми #show link: set text(fill: blue) #show link: underline // Сменить тему блоков кода #set raw(theme: "halcyon") ``` ### Пример: Times New Roman ГОСТ рекомендует Times New Roman, но пакет не может гарантировать наличие этого шрифта в вашей системе. Если шрифт установлен локально, задайте его после подключения шаблона: ```typst #show: gost.with(...) #set text(font: "Times New Roman") ``` Если документ собирается в Typst App или на CI, где Times New Roman недоступен, используйте метрически близкий свободный шрифт вроде `Tinos` или подключите нужный `.ttf` к окружению сборки. Подробности: [`set text`](https://typst.app/docs/reference/text/text/#parameters-font). ### Пример: жёсткий межстрочный интервал В пакете значение `leading` задано как `1.5em - 0.75em`. Для методичек, которые сравнивают PDF с Word, иногда нужен более широкий интервал: ```typst #show: gost.with(...) #set par(leading: 1.5em - 0.35em) ``` Сначала попробуйте стандартное значение. Переопределяйте `leading` только если это действительно требует нормоконтроль. ## Требования ГОСТ 7.32-2017 ### Формат и бумага 6.1.1 Изложение текста и оформление отчета выполняют в соответствии с требованиями настоящего стандарта. Страницы текста отчета о НИР и включенные в отчет иллюстрации и таблицы должны соответствовать формату А4 по [ГОСТ 9327](/documents/gost-9327-60.pdf). Допускается применение формата А3 при наличии большого количества таблиц и иллюстраций данного формата. ### Шрифт и интервал (из 6.1.1) Отчет о НИР должен быть выполнен любым печатным способом на одной стороне листа белой бумаги формата А4 через полтора интервала. Допускается при подготовке заключительного отчета о НИР печатать через один интервал, если отчет имеет значительный объем (500 и более страниц). (из 6.1.1) Цвет шрифта должен быть черным, размер шрифта — не менее 12 пт. Рекомендуемый тип шрифта для основного текста отчета — Times New Roman. Полужирный шрифт применяют только для заголовков разделов и подразделов, заголовков структурных элементов. Использование курсива допускается для обозначения объектов (биология, геология, медицина, нанотехнологии, генная инженерия и др.) и написания терминов (например, in vivo, in vitro) и иных объектов и терминов на латыни. (из 6.1.1) Для акцентирования внимания может применяться выделение текста с помощью шрифта иного начертания, чем шрифт основного текста, но того же кегля и гарнитуры. Разрешается для написания определенных терминов, формул, теорем применять шрифты разной гарнитуры. ### Поля и абзацы (из 6.1.1) Текст отчета следует печатать, соблюдая следующие размеры полей: левое — 30 мм, правое — 15 мм, верхнее и нижнее — 20 мм. Абзацный отступ должен быть одинаковым по всему тексту отчета и равен 1,25 см. 6.1.2 Вне зависимости от способа выполнения отчета качество напечатанного текста и оформления иллюстраций, таблиц, распечаток программ должно удовлетворять требованию их четкого воспроизведения. 6.1.3 При выполнении отчета о НИР необходимо соблюдать равномерную плотность и четкость изображения по всему отчету. Все линии, буквы, цифры и знаки должны иметь одинаковую контрастность по всему тексту отчета. 6.1.4 Фамилии, наименования учреждений, организаций, фирм, наименования изделий и другие имена собственные в отчете приводят на языке оригинала. Допускается транслитерировать имена собственные и приводить наименования организаций в переводе на язык отчета с добавлением (при первом упоминании) оригинального названия по [ГОСТ 7.79](/documents/gost-7.79-2000.pdf). 6.2.1 Наименования структурных элементов отчета: «СПИСОК ИСПОЛНИТЕЛЕЙ», «РЕФЕРАТ», «СОДЕРЖАНИЕ», «ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ», «ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ», «ВВЕДЕНИЕ», «ЗАКЛЮЧЕНИЕ», «СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ», «ПРИЛОЖЕНИЕ» служат заголовками структурных элементов отчета. Заголовки структурных элементов следует располагать в середине строки без точки в конце, прописными буквами, не подчеркивая. Каждый структурный элемент и каждый раздел основной части отчета начинают с новой страницы. 6.3.1 Страницы отчета следует нумеровать арабскими цифрами, соблюдая сквозную нумерацию по всему тексту отчета, включая приложения. Номер страницы проставляется в центре нижней части страницы без точки. Приложения, которые приведены в отчете о НИР и имеющие собственную нумерацию, допускается не перенумеровать. 6.3.2 Титульный лист включают в общую нумерацию страниц отчета. Номер страницы на титульном листе не проставляют. 6.3.3 Иллюстрации и таблицы, расположенные на отдельных листах, включают в общую нумерацию страниц отчета. Иллюстрации и таблицы на листе формата А3 учитывают как одну страницу. # Примечания и сноски (/docs/reference/elements/footnote) Примечания и сноски используются для размещения пояснительных или справочных данных, которые дополняют основной текст, таблицы или иллюстрации, не перегружая их. Примечания можно оформлять обычным текстом, а подстрочные сноски — встроенной функцией Typst `footnote`. Сноски не приведены к ГОСТ в текущей версии `modern-g7-32`: пакет не переопределяет стандартное оформление `footnote`. Перед сдачей проверьте линию-разделитель, отступ и размер текста по требованиям вашей организации. ## Быстрый старт ### Подстрочные сноски Для создания сноски в конце страницы используйте встроенную функцию Typst `footnote`. ### Примечания в тексте Примечания оформляются как обычный текст с абзацным отступом, начинающийся со слова «Примечание». ## Автоматизация и логика шаблона Текущая логика выглядит так: 1. **Сноски (Footnotes)**: создаются стандартной функцией Typst и выводятся внизу страницы. 2. **Примечания (Notes)**: набираются как обычный текст документа. Слово «Примечание» и пунктуацию нужно написать самостоятельно по правилам [6.7.2](#6.7.2) и [6.7.3-style](#6.7.3-style). 3. **Примечания к таблицам**: размещайте сразу после таблицы или внутри того же смыслового блока, чтобы они не оторвались от материала, к которому относятся. ## Параметры функции footnote Функция `footnote` является системной в Typst, шаблон автоматически стилизует её вывод. ## Продвинутое использование ### Сноски-звёздочки Если в документе всего одна-две сноски, ГОСТ допускает использование знака «звёздочка» (`*`) вместо цифр согласно [6.7.4](#6.7.4). В Typst это можно сделать, передав символ в `numbering`: ```typst Важное слово#footnote(numbering: "*")[Текст сноски со звездочкой] ``` ### Примечания к таблицам Согласно [6.7.3](#6.7.3), примечания к таблице должны располагаться непосредственно после неё (внутри блока `#figure` или сразу под ним). Если таблица переносится на новую страницу, примечание должно оставаться на той же странице, где закончилась таблица. ## Требования ГОСТ 7.32-2017 ### Сущность и место 6.7.1 Примечания приводят в отчете, если необходимы пояснения или справочные данные к содержанию текста, таблиц или графического материала. 6.7.2 Слово «Примечание» следует печатать с прописной буквы с абзацного отступа, не подчеркивая. 6.7.3 Примечания следует помещать непосредственно после текстового, графического материала или таблицы, к которым относятся эти примечания. Если примечание одно, то после слова «Примечание» ставится тире и текст примечания печатают с прописной буквы. Одно примечание не нумеруется. Несколько примечаний нумеруют по порядку арабскими цифрами без точки. ### Оформление сносок 6.7.4 При необходимости дополнительного пояснения в отчете допускается использовать примечание, оформленное в виде сноски. Знак сноски ставят без пробела непосредственно после того слова, числа, символа, предложения, к которому дается пояснение. Знак сноски указывается надстрочно арабскими цифрами. Допускается вместо цифр использовать знак звездочка — \*. Сноску располагают с абзацного отступа в конце страницы, на которой приведено поясняемое слово (словосочетание или данные). Сноску отделяют от текста короткой сплошной тонкой горизонтальной линией с левой стороны страницы. # Элементы отчёта (/docs/reference/elements) Элементы внутри основной части оформляются стандартными средствами Typst, а `modern-g7-32` задаёт для них ГОСТ-ориентированные подписи, отступы, нумерацию и поведение в приложениях. Главная общая конструкция для подписываемых объектов — `#figure(...)`. Несмотря на название, это не только рисунок: в `figure` можно положить изображение, таблицу, листинг, формулу, блок кода, диаграмму или другой контент. Ссылка `@label` затем будет ссылаться именно на этот объект, а шаблон правильно отформатирует номер ссылки. # Рисунки и иллюстрации (/docs/reference/elements/image) Иллюстрации (чертежи, графики, схемы, диаграммы, фотоснимки) используются для пояснения излагаемого текста. В шаблоне `modern-g7-32` все изображения автоматически центрируются, нумеруются и получают правильно оформленные подписи. ## Быстрый старт Для вставки изображения используйте стандартную функцию `image()`, обёрнутую в макрос `#figure`. Это позволит добавить подпись и автоматически включить рисунок в нумерацию. Как показано на рисунке @architecture, система состоит из... `} image="image-example-simple.png" assets={["scheme.png"]} /> ## Автоматизация и логика шаблона Шаблон берёт на себя выполнение технических требований раздела [6.5](#6.5.1): 1. **Выравнивание**: Все изображения автоматически выравниваются по центру страницы. 2. **Нумерация**: Рисунки нумеруются сквозной нумерацией арабскими цифрами ([6.5.4](#6.5.4)). В [приложениях](../appendixes.mdx) нумерация заменяется на буквенно-цифровую (Рисунок А.1) согласно [6.5.5](#6.5.5). 3. **Подписи (Caption)**: * Перед номером всегда ставится слово «Рисунок». * Разделитель между номером и названием — длинное тире (« — »), как требует [6.5.7](#6.5.7). * Точка в конце подписи не ставится. 4. **Ссылки**: При использовании `@label` в тексте автоматически подставляется слово «рисунок» и его номер. ## Параметры функций ### image Встроенная функция Typst для загрузки файла изображения. ### figure Контейнер для элементов с подписями. `figure` — это общая конструкция Typst: внутри может быть изображение, таблица, листинг кода, формула, диаграмма или любой другой контент. В `modern-g7-32` оформление ссылки и подписи зависит от `kind`: для `image` это «рисунок», для `table` — «таблица», для `raw` — «листинг». ## Продвинутое использование ### Ссылки в тексте Согласно [6.5.1](#6.5.1), на все иллюстрации в отчёте должны быть даны ссылки. Используйте формат `@label` для создания активных ссылок. В тексте такая ссылка может превратиться в ссылку на рисунок, таблицу, листинг, формулу или другой объект — Typst смотрит на элемент, к которому прикреплена метка. ### Перетаскивание файлов В [Typst App](https://typst.app/) можно перетащить изображение в дерево файлов проекта, затем вставить его через относительный путь: `image("assets/scheme.png")`. В VS Code с [Tinymist](https://marketplace.visualstudio.com/items?itemName=myriad-dreamin.tinymist) работает та же схема: положите файл рядом с `main.typ` или в папку `assets`, а в коде укажите этот путь. После перетаскивания проверьте регистр букв в имени файла. `Scheme.png` и `scheme.png` для Typst разные пути, особенно при сборке на Linux. ### Группировка рисунков Если нужно расположить несколько рисунков рядом, используйте стандартные средства Typst (например, сетку `grid` внутри `#figure`), но помните, что по ГОСТ [6.5.3](#6.5.3) рекомендуется избегать избыточности и слишком сложных композиций. ### Рисунки в приложениях При переходе в режим `#show: appendixes`, счётчик рисунков обнуляется для каждого нового приложения. Название будет выглядеть как `Рисунок А.1`, `Рисунок Б.1` и так далее. ## Требования ГОСТ 7.32-2017 ### Размещение 6.5.1 Иллюстрации (чертежи, графики, схемы, компьютерные распечатки, диаграммы, фотоснимки) следует располагать в отчете непосредственно после текста отчета, где они упоминаются впервые, или на следующей странице (по возможности ближе к соответствующим частям текста отчета). На все иллюстрации в отчете должны быть даны ссылки. При ссылке необходимо писать слово «рисунок» и его номер, например: «в соответствии с рисунком 2» и т. д. 6.5.2 Чертежи, графики, диаграммы, схемы, помещаемые в отчете, должны соответствовать требованиям стандартов Единой системы конструкторской документации (ЕСКД). 6.5.3 Количество иллюстраций должно быть достаточным для пояснения излагаемого текста отчета. Не рекомендуется в отчете о НИР приводить объемные рисунки. ### Нумерация 6.5.4 Иллюстрации, за исключением иллюстраций, приведенных в приложениях, следует нумеровать арабскими цифрами сквозной нумерацией. Если рисунок один, то он обозначается: Рисунок 1. 6.5.5 Иллюстрации каждого приложения обозначают отдельной нумерацией арабскими цифрами с добавлением перед цифрой обозначения приложения: Рисунок А.3. 6.5.6 Допускается нумеровать иллюстрации в пределах раздела отчета. В этом случае номер иллюстрации состоит из номера раздела и порядкового номера иллюстрации, разделенных точкой: Рисунок 2.1. ### Оформление подписи 6.5.7 Иллюстрации при необходимости могут иметь наименование и пояснительные данные (подрисуночный текст). Слово «Рисунок», его номер и через тире наименование помещают после пояснительных данных и располагают в центре под рисунком без точки в конце. 6.5.8 Если наименование рисунка состоит из нескольких строк, то его следует записывать через один межстрочный интервал. Наименование рисунка приводят с прописной буквы без точки в конце. Перенос слов в наименовании графического материала не допускается. # Таблицы (/docs/reference/elements/table) Цифровой материал и сравнительные показатели в отчёте оформляются в виде таблиц. Шаблон `modern-g7-32` автоматизирует нумерацию, выравнивание заголовков и обеспечивает корректный перенос таблиц на стыке страниц. Вам **не нужно** вручную считать количество таблиц для [реферата](../abstract.mdx) — шаблон сделает это автоматически. ## Быстрый старт Для создания таблицы используйте функцию `table()`, обёрнутую в макрос `#figure`. Это обеспечит правильное положение заголовка и включение в список таблиц. Данные приведены в таблице @specs-table. `} image="table-example-simple.png" /> ## Автоматизация и логика шаблона Шаблон настраивает таблицы в соответствии с разделом [6.6](#6.6.1): 1. **Положение заголовка**: Согласно [6.6.3](#6.6.3), наименование таблицы всегда размещается **над** ней, слева, без абзацного отступа. 2. **Формат подписи**: Шаблон автоматически добавляет слово «Таблица», номер и длинное тире («Таблица 1 — Название»). 3. **Перенос (Multipage)**: Таблицы по умолчанию являются «разбиваемыми» (`breakable: true`). При переносе на новую страницу шапка таблицы (`table.header`) может автоматически повторяться. 4. **Стили текста**: Внутри таблиц разрешается использовать шрифт меньшего размера, чем в основном тексте ([6.6.7](#6.6.7)). Для этого используйте функцию `#set text(size: 10pt)` внутри блока таблицы. 5. **Нумерация в приложениях**: В [приложениях](../appendixes.mdx) таблицы нумеруются по правилу «Буква.Номер» (например, Таблица Б.2). ## Параметры функций ### figure (Контейнер) ### table (Сетка данных) Аргументы ниже соответствуют стандартной функции Typst [`table`](https://typst.app/docs/reference/model/table/). Для повторяемой шапки используйте `table.header(...)` как один из позиционных элементов таблицы. Это не именованный аргумент `table`, а вложенный элемент. ## Продвинутое использование ### Перенос длинных таблиц Если таблица занимает несколько страниц, ГОСТ [6.6.3](#6.6.3) требует писать «Продолжение таблицы X» над последующими частями. `modern-g7-32` делает таблицы разбиваемыми и позволяет `table.header` повторяться, но подпись «Продолжение таблицы» остаётся ручной ответственностью. Практичный вариант — разбить очень длинную таблицу на несколько `#figure` и явно подписать продолжение. Это особенно полезно, если нормоконтроль требует отдельную строку «Продолжение таблицы ...» на каждой странице: ```typst #figure( table( columns: 3, table.header([Показатель], [Спринт 1], [Спринт 2]), [Ошибки], [12], [7], ), caption: [Метрики тестирования] ) #figure( table( columns: 3, table.header([Показатель], [Спринт 3], [Спринт 4]), [Ошибки], [4], [2], ), caption: [Продолжение таблицы @qa-metrics] ) ``` ### Лайфхаки для переносов * Если таблица упорно не переносится, проверьте, что она находится внутри `#figure(...)`, а не внутри неразбиваемого `block`, `box`, `grid` или вложенной фигуры. * Длинные текстовые ячейки лучше делать `auto`-шириной только там, где это действительно нужно. Для основной текстовой колонки часто удобнее `1fr`, а числовые колонки оставить `auto`. * Если одна ячейка занимает несколько строк через `table.cell(rowspan: ...)`, задайте ей `breakable: true` или разбейте строку вручную: многострочные объединённые ячейки сложнее переносить корректно. * Перед финальной сдачей проверьте PDF постранично: автоматический перенос таблицы не заменяет редакторское решение о том, где лучше разделить очень крупный материал. ### Выравнивание в ячейках По стандарту [6.6.6](#6.6.6) заголовки граф выравниваются по центру, а заголовки строк (боковик) — по левому краю. Шаблон устанавливает левое выравнивание по умолчанию для всех ячеек. Для центрирования используйте `align(center)[...]`. ## Требования ГОСТ 7.32-2017 6.6.1 Цифровой материал должен оформляться в виде таблиц. Таблицы применяют для наглядности и удобства сравнения показателей. ### Размещение и ссылки 6.6.2 Таблицу следует располагать непосредственно после текста, в котором она упоминается впервые, или на следующей странице. На все таблицы в отчете должны быть ссылки. При ссылке следует печатать слово «таблица» с указанием ее номера. ### Оформление наименования 6.6.3 Наименование таблицы, при ее наличии, должно отражать ее содержание, быть точным, кратким. Наименование следует помещать над таблицей слева, без абзацного отступа в следующем формате: Таблица Номер таблицы — Наименование таблицы. Наименование таблицы приводят с прописной буквы без точки в конце. Если наименование таблицы занимает две строки и более, то его следует записывать через один межстрочный интервал. Таблицу с большим количеством строк допускается переносить на другую страницу. При переносе части таблицы на другую страницу слово «Таблица», ее номер и наименование указывают один раз слева над первой частью таблицы, а над другими частями также слева пишут слова «Продолжение таблицы» и указывают номер таблицы. При делении таблицы на части допускается ее головку или боковик заменять соответственно номерами граф и строк. При этом нумеруют арабскими цифрами графы и (или) строки первой части таблицы. 6.6.4 Таблицы, за исключением таблиц приложений, следует нумеровать арабскими цифрами сквозной нумерацией. Таблицы каждого приложения обозначаются отдельной нумерацией арабскими цифрами с добавлением перед цифрой обозначения приложения. Если в отчете одна таблица, она должна быть обозначена «Таблица 1» или «Таблица А.1» (если она приведена в приложении А). Допускается нумеровать таблицы в пределах раздела при большом объеме отчета. В этом случае номер таблицы состоит из номера раздела и порядкового номера таблицы, разделенных точкой: Таблица 2.3. ### Шапка и ячейки 6.6.5 Заголовки граф и строк таблицы следует печатать с прописной буквы, а подзаголовки граф — со строчной буквы, если они составляют одно предложение с заголовком, или с прописной буквы, если они имеют самостоятельное значение. В конце заголовков и подзаголовков таблиц точки не ставятся. Названия заголовков и подзаголовков таблиц указывают в единственном числе. 6.6.6 Таблицы слева, справа, сверху и снизу ограничивают линиями. Разделять заголовки и подзаголовки боковика и граф диагональными линиями не допускается. Заголовки граф выравнивают по центру, а заголовки строк — по левому краю. Горизонтальные и вертикальные линии, разграничивающие строки таблицы, допускается не проводить, если их отсутствие не затрудняет пользование таблицей. 6.6.7 Текст, повторяющийся в строках одной и той же графы и состоящий из одиночных слов, заменяют кавычками. Ставить кавычки вместо повторяющихся цифр, буквенно-цифровых обозначений, знаков и символов не допускается. Если текст повторяется, то при первом повторении его заменяют словами «то же», а далее кавычками. В таблице допускается применять размер шрифта меньше, чем в тексте отчета. # Формулы и уравнения (/docs/reference/elements/equation) Формулы и уравнения в отчёте выделяются из текста в отдельную строку. Шаблон `modern-g7-32` автоматически обеспечивает правильное выравнивание выражений и их нумерацию в круглых скобках. ## Быстрый старт Для вставки формулы используйте синтаксис Typst с символами `$`. Чтобы формула была пронумерована и выделена в отдельный блок, ставьте пробелы вокруг знаков доллара. Подробный синтаксис математических выражений описан в официальном [разделе Math документации Typst](https://typst.app/docs/reference/math/). `} image="equations-example-simple.png" /> ## Автоматизация и логика шаблона Шаблон настраивает математические блоки согласно пунктам раздела [6.8](#6.8.1): 1. **Выравнивание**: Формулы располагаются по центру строки. 2. **Нумерация**: Порядковый номер (арабские цифры) автоматически проставляется в крайнем правом положении в круглых скобках согласно [6.8.3](#6.8.3). 3. **Связи в тексте**: Ссылки на формулы через `@label` автоматически оформляются в круглых скобках (например, «в формуле (1)»), как требует [6.8.4](#6.8.4). 4. **Нумерация в приложениях**: Если формула находится в [приложении](../appendixes.mdx), она автоматически получает буквенно-цифровой индекс, например: `(Б.1)`. ## Оформление пояснений («Где...») Согласно [6.8.2](#6.8.2), пояснения символов приводятся непосредственно под формулой. Каждое значение пишется с новой строки. Первая строка начинается со слова «где» без двоеточия. где $E$ — энергия объекта; \ $m$ — его масса; \ $c$ — скорость света в вакууме. `} image="equations-explanation.png" /> ## Продвинутое использование ### Перенос длинных формул Если уравнение не умещается в одну строку, его следует переносить после математических знаков (`=`, `+`, `-`, `*`, `/`). На новой строке знак повторяется согласно [6.8.1](#6.8.1). ### Нумерация в пределах раздела Если вы пишете очень большой отчёт, вы можете включить нумерацию формул в пределах раздела (например, `(3.1)`). Это допускается пунктом [6.8.5](#6.8.5). Для этого в `main.typ` добавьте: ```typst #set math.equation(numbering: "1.1") ``` ### Кастомизация выравнивания Если стандарты вашей организации требуют выравнивания формул по левому краю (с отступом 1.25 см), вы можете изменить это в начале документа: ```typst #show math.equation.where(block: true): set align(left) #show math.equation.where(block: true): pad.with(left: 1.25cm) ``` ## Требования ГОСТ 7.32-2017 ### Размещение и перенос 6.8.1 Уравнения и формулы следует выделять из текста в отдельную строку. Выше и ниже каждой формулы или уравнения должно быть оставлено не менее одной свободной строки. Если уравнение не умещается в одну строку, оно должно быть перенесено после знака равенства (=) или после знаков плюс (+), минус (–), умножения (х), деления (:) или других математических знаков. На новой строке знак повторяется. При переносе формулы на знаке, символизирующем операцию умножения, применяют знак «Х». ### Расшифровка символов 6.8.2 Пояснение значений символов и числовых коэффициентов следует приводить непосредственно под формулой в той же последовательности, в которой они представлены в формуле. Значение каждого символа и числового коэффициента необходимо приводить с новой строки. Первую строку пояснения начинают со слова «где» без двоеточия с абзаца. ### Порядок нумерации 6.8.3 Формулы в отчете следует располагать посередине строки и обозначать порядковой нумерацией в пределах всего отчета арабскими цифрами в круглых скобках в крайнем правом положении на строке. Одну формулу обозначают (1). 6.8.4 Ссылки в отчете на порядковые номера формул приводятся в скобках: в формуле (1). 6.8.5 Формулы, помещаемые в приложениях, нумеруются арабскими цифрами в пределах каждого приложения с добавлением перед каждой цифрой обозначения приложения: (В.1). Допускается нумерация формул в пределах раздела. В этом случае номер формулы состоит из номера раздела и порядкового номера формулы, разделенных точкой: (3.1). # Листинги кода (/docs/reference/elements/code) Листинги программного кода в отчёте по ГОСТ относятся к компьютерным распечаткам. В `modern-g7-32` они оформляются как отдельные фигуры с подписью «Листинг N — ...» и могут переноситься на следующую страницу. В шаблоне `modern-g7-32` блоки кода автоматически оформляются моноширинным шрифтом и, что важно, **поддерживают перенос на следующую страницу**, если код слишком длинный. ## Быстрый старт Для вставки кода используйте стандартные блоки Typst (три обратных апострофа), обёрнутые в функцию `#figure`. Это обеспечит нумерацию и добавит подпись. `} image="code-example-simple.png" /> ## Автоматизация и логика шаблона Шаблон настраивает блоки кода следующим образом: 1. **Многостраничность**: В отличие от обычных рисунков, блоки кода (`kind: raw`) по умолчанию сделаны «разбиваемыми» (`breakable: true`). Если листинг не помещается на одной странице, он корректно перенесётся на следующую. 2. **Нумерация**: Блок `raw` внутри `#figure` получает тип `raw`, поэтому Typst печатает подпись «Листинг 1 — ...». Это отдельная нумерация листингов, а не ряд рисунков. 3. **Подписи**: Разделитель в подписи заменяется на длинное тире («Рисунок 1 — Наименование»), согласно [6.5.7](#6.5.7). ## Чтение из внешних файлов Для больших проектов удобнее хранить код в отдельных файлах и подключать их в отчёт автоматически. Это гарантирует, что в документе всегда будет актуальная версия кода. Дополнительно сделаем так, чтобы длинный код переносился на следующую страницу. `} assets={["snake.py"]} image="code-example-read.png" /> ## Параметры функции raw Функция `raw` отвечает за отрисовку кода. Основные параметры: ## Продвинутое использование ### Подсветка синтаксиса Typst поддерживает подсветку для сотен языков. Просто укажите название языка после первых трёх апострофов. Чтобы изменить тему подсветки, вы можете использовать стандартную команду Typst: `#set raw(theme: "название-темы")`. Если нормоконтроль требует полностью чёрные распечатки без подсветки синтаксиса, добавьте после `gost.with` строку `#set raw(theme: none)` или не указывайте язык у конкретного блока кода. `} image="code-example-simple.png" /> ### Перенос длинных листингов Листинги в `modern-g7-32` настроены как разбиваемые блоки, но итоговый перенос всё равно зависит от содержимого. Чтобы длинный код не выходил за поля: * включайте перенос строк в редакторе перед вставкой особенно длинных строк; * выносите большие листинги в файл и подключайте через `raw(read("file.py"), lang: "python", block: true)`; * для фрагментов с длинными URL, JSON или SQL лучше переносить строки вручную в исходном файле; * если листинг важен целиком, переносите его в приложение, чтобы не разрывать основное изложение. ### Код в приложениях Если вы выносите листинги в [приложение](../appendixes.mdx), их нумерация автоматически изменится на буквенно-цифровую (например, «Рисунок А.5»), как требует [6.5.5](#6.5.5). ## Требования ГОСТ 7.32-2017 ### Качество и вид 6.1.2 Вне зависимости от способа выполнения отчета качество напечатанного текста и оформления... распечаток программ должно удовлетворять требованию их четкого воспроизведения. ### Место в отчёте 6.5.1 Иллюстрации (чертежи, графики, схемы, компьютерные распечатки... фотоснимки) следует располагать в отчете непосредственно после текста отчета, где они упоминаются впервые, или на следующей странице. ### Нумерация и подписи 6.5.4 Иллюстрации... следует нумеровать арабскими цифрами сквозной нумерацией. 6.5.7 Слово «Рисунок», его номер и через тире наименование помещают... в центре под рисунком без точки в конце. # Перечисления (/docs/reference/elements/enum) Перечисления используются для структурирования однотипных данных внутри пунктов или подпунктов. Согласно ГОСТ, списки могут быть маркированными (с тире) или нумерованными (с буквами или цифрами). В шаблоне `modern-g7-32` все отступы и маркеры списков настроены так, чтобы они соответствовали основному тексту и требованиям стандарта. ## Быстрый старт Используйте стандартный синтаксис списков Typst. Маркеры и отступы будут применены автоматически. ## Автоматизация и логика шаблона Шаблон управляет списками следующим образом: 1. **Маркер по умолчанию**: Для обычных списков (`list`) автоматически устанавливается среднее тире (`–`), как того требует пункт [6.4.6](#6.4.6). 2. **Отступы**: Списки имеют тот же абзацный отступ, что и основной текст (1.25 см), и не выходят за границы текстового поля. 3. **Интервалы**: Расстояние между элементами списка (`spacing`) согласовано с межстрочным интервалом документа. 4. **Нумерация со скобкой**: Для нумерованных списков по умолчанию используется формат `1)`, предусмотренный стандартом. ## Специальная нумерация (Кириллица) ГОСТ рекомендует использовать строчные буквы русского алфавита со скобкой для обозначения элементов перечисления. В шаблоне для этого предусмотрена функция `enum-numbering`. Чтобы включить кириллическую нумерацию для всего документа или конкретного блока: При использовании букв исключаются: **ё, з, й, о, ч, ъ, ы, ь** согласно [6.4.6](#6.4.6). Функция шаблона учитывает это правило автоматически. ## Параметры функций ### list (Маркированный список) ### enum (Нумерованный список) ## Правила пунктуации в списках * Если элементы списка короткие (фразы), они пишутся со строчной буквы и разделяются запятой. * Если элементы сложные (внутри есть свои запятые), используется точка с запятой. * После последнего элемента ставится точка. ## Требования ГОСТ 7.32-2017 ### Оформление перечислений 6.4.6 Внутри пунктов или подпунктов могут быть приведены перечисления. Перед каждым элементом перечисления следует ставить тире. При необходимости ссылки в тексте отчета на один из элементов перечисления вместо тире ставят строчные буквы русского алфавита со скобкой, начиная с буквы «а» (за исключением букв ё, з, й, о, ч, ъ, ы, ь). Простые перечисления отделяются запятой, сложные — точкой с запятой. При наличии конкретного числа перечислений допускается перед каждым элементом перечисления ставить арабские цифры, после которых ставится скобка. Перечисления приводятся с абзацного отступа в столбик. (из 6.1.1) Абзацный отступ должен быть одинаковым по всему тексту отчета и равен 1,25 см.