ГОСТ 7.32-2017

Оновогодняя шляпкаформляйте документы автоматически

Автоматизированный Typst шаблон для оформления работ в соответствии с ГОСТ 7.32-2017.
Сосредоточьтесь на содержании, не думайте о форматировании.

Пример

typst
#import "@preview/modern-g7-32:0.2.0": abstract, appendix-heading, appendixes, enum-numbering, gost

// Нумерация с использованием кириллицы
#set enum(numbering: enum-numbering)

#show: gost.with(
  ministry: "Наименование министерства (ведомства) или другого структурного образования, в систему которого входит организация-исполнитель",
  organization: (
    full: "Полное наименование организации — исполнителя НИР",
    short: "Сокращённое наименование организации",
  ),
  udk: "индекс УДК",
  research-number: "регистрационный номер НИР",
  report-number: "регистрационный номер отчета",
  approved-by: (
    name: "Фамилия И.О.",
    position: "Должность, наимен. орг.",
    year: 2017,
  ), // Гриф согласования
  agreed-by: (
    name: "Фамилия И.О.",
    position: "Должность, наимен. орг.",
    year: auto,
  ), // Гриф утверждения, год подставляется из аргумента year
  report-type: "отчёт",
  about: "О научно-исследовательской работе",
  research: "Наименование НИР",
  bare-subject: false, // Можно убрать "по теме"
  subject: "Наименование отчёта",
  manager: (
    name: "Фамилия И.О.",
    position: "Должность",
    title: "Руководитель НИР,",
  ), // Руководитель отчёта
  year: 2022,
  stage: (type: "вид отчёта", num: 1), // Этап отчёта
  federal: "Наименование федеральной программы",
  part: 2, // Номер книги отчёта
  city: "Город",
  text-size: (default: 14pt, small: 10pt), // Можно указать размеры текста
  indent: 1.25cm, // Можно указать отступ
  hide-title: false, // Убрать ли титульный лист
  title-footer-align: center, // Выравнивание города и года на титульном листе
  pagination-align: center, // Выравнивание номера страницы
  margin: (
    left: 30mm,
    right: 15mm,
    top: 20mm,
    bottom: 20mm,
  ), // Отступы страницы
  add-pagebreaks: true, // Убрать ли разрывы страниц
  performers: (
    "Всероссийский институт научной и технической информации " + "Российской академии наук (ВИНИТИ РАН)",
    // Можно указать организацию, к которой относятся следующие исполнители
    (
      name: "И.О. Фамилия",
      position: "Должность",
      part: "введение, раздел 1",
    ), // Можно добавить выполненную часть
    (name: "И.О. Фамилия", position: "Должность"),
    "Другая организация",
    (name: "И.О. Фамилия", position: "Должность"),
    (
      name: "И.О. Фамилия",
      position: "Должность",
      co-performer: true,
    ), // Поддерживаются соисполнители
  ), // Если исполнитель один - он будет перенесён на титульный лист
)

#abstract(
  "шаблон",
  "typst",
  "государственные стандарты",
  "оформление документов",
  "система вёрстки",
  "автоматизация",
)[
  Настоящий документ представляет собой описание шаблона modern-g7-32, разработанного для системы вёрстки #link(
    "https://typst.app/",
  )[typst] с целью автоматизации создания документов, соответствующих государственным стандартам. Шаблон упрощает
  процесс оформления, в частности, титульного листа, благодаря функции `gost.with`, которая позволяет гибко настраивать
  отображение информации и автоматически подставлять текущий год.

  В документе рассмотрены основные элементы шаблона, включая оформление таблиц, блоков кода и изображений, а также
  детально описана работа с аргументами функции `gost.with` для кастомизации титульной страницы. Представленный шаблон
  предназначен для пользователей системы typst, стремящихся к созданию стандартизированных документов с минимальными
  усилиями.
]

#outline()

= Введение

Шаблон modern-g7-32 предназначен для создания документов в строгом соответствии с ГОСТ. Он упрощает оформление
титульного листа, автоматизирует подстановку даты и позволяет легко управлять отображением информации.


= Документация шаблона Typst

Этот документ описывает особенности использования шаблона modern-g7-32 для системы вёрстки #link(
  "https://typst.app/",
)[typst]. Ниже приведены примеры оформления элементов, таких как таблицы, блоки кода и изображения, а также подробное
описание работы с аргументами шаблона через функцию `gost.with` @examplewebsite.

= Основные элементы шаблона

Шаблон modern-g7-32 позволяет создавать документы, оформленные в строгом соответствии с государственными стандартами.

== Таблицы

Для создания таблиц используется функция `table()`, обёрнутая в макрос `#figure` для добавления подписи. Пример показан
на таблице @example-table.

#figure(
  table(
    columns: 4,
    table.header([Заголовок 1], [Заголовок 2], [Т], [Заголовок 4]),
    [Проверка], [Проверка], [Проверка], [Проверка],
    [Проверка], [Проверка], [Проверка], [Проверка],
  ),
  caption: [Пример таблицы с данными],
) <example-table>

== Блоки кода

Чтобы оформить блоки кода в документе, можно использовать синтаксис, похожий на Markdown. Пример указан на листинге
@example-code:

#figure(
  ```typst
  // Пример кода на Typst:
  #import "package.typ"

  // Функция вывода сообщения
  print("Hello, world!")
  ```,
  caption: [Пример кода на Typst],
) <example-code>

Этот блок кода демонстрирует базовую структуру программы на Typst.

#pagebreak()

== Формулы

Чтобы оформить формулы в документе, можно использовать синтаксис typst-math. Примеры демонстрируют использование формул
в шаблоне:

Формула @example-formula-first показывает как применять сложные функции, формула @example-formula-second демонстрирует
как можно оформить матрицы, а формула @example-formula-third – использование типов и обозначений @ivanov2020osnovy.


$ sum_(k=0)^n k = 1 + ... + n = (n(n+1)) / 2 $
<example-formula-first>


$ mat(1, 2, 3; 4, 5, 6; 7, 8, 9) * x = pi * psi(aleph/x) $
<example-formula-second>

$ cal(A) := { x in RR | x "натуральное" } $
<example-formula-third>

== Изображения

Изображения добавляются с помощью функции `image()` внутри макроса `#figure`. Пример вставки изображения указан на
рисунке @example-image.

#figure(
  image("images/home.jpg", width: 40%),
  caption: "Пример изображения",
) <example-image>

= Работа с аргументами шаблона в gost.with

Функция `gost.with` принимает множество аргументов, позволяющих настраивать титульную страницу и другие элементы
документа.

Рассмотрим основные возможности:

- Обязательные и необязательные аргументы. Многие параметры могут быть опущены, если вы не хотите, чтобы соответствующая
  информация отображалась на титульном листе.
- Параметр auto (автоматический год). В аргументах, таких как `approved-by.year` или `year`, можно использовать значение
  `auto`.

- Примеры аргументов: В заголовке шаблона задаются такие параметры, как:
  + `ministry-name` – название министерства.
  + `organization` – информация об учреждении (полное и сокращённое наименования).
  + `performers` – список исполнителей с указанием их позиций.

== Работа с аргументами шаблона <with-numbering>

Как уже отмечалось, функция `gost.with` позволяет детально настраивать титульную страницу. Рассмотрим ключевые моменты:

- При передаче параметра `year: auto` текущий год будет вычисляться автоматически.
- Если не требуется выводить определённый элемент (например, номер инвентаризации), соответствующий аргумент можно не
  указывать.
- Все аргументы передаются в виде именованных параметров, что обеспечивает гибкость конфигурации.

= Заключение <conclusion>

Шаблон modern-g7-32 для Typst значительно упрощает подготовку документов, соответствующих государственным стандартам. Он
обеспечивает удобное создание таблиц, блоков кода и изображений, а гибкая настройка через функцию `gost.with` позволяет
автоматически подставлять дату и исключать ненужные элементы с титульной страницы. Используйте данный шаблон для
создания качественных и стандартизированных документов @petrov2021analiz.

#bibliography("references.bib")

#show: appendixes

= Изображения в приложениях
Пример вставки изображения в приложение указан на рисунке @appendix-image.

#figure(
  image("images/nature.jpg", width: 40%),
  caption: "Пример изображения",
) <appendix-image>

== Изображения в под-приложениях
Пример вставки изображения в под-приложение указан на рисунке @appendix-image-3. #figure(
  image("images/abstract.jpg", width: 40%),
  caption: "Пример изображения",
) <appendix-image-3>

= Блоки кода
Чтобы оформить блоки кода в документе, можно использовать синтаксис, похожий на Markdown. Пример указан на листинге
@appendix-code:

#figure(
  ```typst
  // Пример кода на Typst:
  #import "package.typ"

  // Функция вывода сообщения
  print("Hello, world!")
  ```,
  caption: [Пример кода на Typst],
) <appendix-code>

= Формулы
Чтобы оформить формулы в документе, можно использовать синтаксис typst-math. Примеры демонстрируют использование формул
в шаблоне:

$ sum_(k=0)^n k = 1 + ... + n = (n(n+1)) / 2 $ <appendix-formula>

как оформлять таблицы сказано в приложении @appendix-tables, а также в разделе с нумерацией @with-numbering.

== Таблицы <appendix-tables>
Для создания таблиц используется функция `table()`, обёрнутая в макрос `#figure` для добавления подписи. Пример показан
на таблице @appendix-table.

#figure(
  table(
    columns: 4,
    table.header([Заголовок 1], [Заголовок 2], [Заголовок 3], [Заголовок 4]),
    [Проверка], [Проверка], [Проверка], [Проверка],
    [Проверка], [Проверка], [Проверка], [Проверка],
  ),
  caption: [Пример таблицы с данными],
) <appendix-table>

#appendix-heading("справочное", level: 1)[Приложение с указанием статуса]
#lorem(100)

#appendix-heading("справочное", level: 2)[Приложение второго уровня со статусом]
#lorem(100)

Сравнение

Код вместо визуального редактора

Это может пугать, но, используя код, вы получаете надёжность, качество и одинаковый результат независимо от среды исполнения.

Никаких потерянных файлов
Краш программы при работе с дипломом

Никакого ручного форматирования

Для создания отличного документа не потребуется вручную настраивать шрифты и стили — за вас этим займётся шаблон.

Никакого ручного форматирования
Часы на настройку стилей и отступов

Автоматические ссылки

В Typst можно крайне просто описать ссылку на изображение, таблицу, листинг или источник. Поддерживается BibTeX для библиографии.

Ссылки обновляются автоматически
Сломанные перекрёстные ссылки

Мгновенная компиляция

Больше не нужно ждать сборки по несколько минут. Ввели символ — документ мгновенно перестроился благодаря инкрементальной компиляции.

Инкрементальная сборка за миллисекунды
Полная пересборка при каждом изменении

Современный синтаксис

Не нужно учить сложные макросы TeX. Typst — понятный язык, похожий на Python. Создавайте документы без боли.

Понятный синтаксис, как в Python
Закрученные макросы TeX

Легковесность

Typst - это один бинарный файл весом менее 60 МБ, он сразу готов к работе. Также есть официальный веб-интерфейс typst.app (аналог Overleaf).

Работает из коробки
Дистрибутив в несколько гигабайт

* Выражаю благодарность авторам и контрибьюторам latex-g7-32. Ваш труд стал вдохновением для modern-g7-32.

Богатая экосистема

Вокруг Typst построена обширная инфраструктура: веб-редактор, пакетный менеджер Universe, расширение для VSCode, активное сообщество.

Десятки готовых пакетов на Universe
Нет экосистемы

Единая технология

Typst — полноценный язык программирования. Не понадобятся внешние инструменты вроде Python или Lua для автоматизации.

Самодостаточная экосистема
Цепочка: Python -> Markdown → Pandoc → PDF

Нативная генерация PDF

Typst не полагается на промежуточные форматы — создаёт PDF напрямую. Документ всегда выглядит одинаково.

Прямой рендеринг в PDF
Конвертация через несколько форматов

Важная информация

Всё, что нужно знать для работы с проектом и его поддержки

Документация

Документация шаблона в разработке, обратитесь за помощью напрямую

Поддержка проекта

Ваша помощь очень важна для развития проекта

1
Поставьте звёздочку в репозитории
2
Попробуйте шаблон и вернитесь с обратной связью
3
Присоединяйтесь к сообществу

Готовы начать?

Используйте шаблон для автоматизированного оформления документов по ГОСТ 7.32-2017

Остались вопросы? Напишите!

Мы всегда открыты для сотрудничества и готовы ответить на ваши вопросы

Свяжитесь с нами
Заполните форму, и мы свяжемся с вами в ближайшее время
Контакты
Свяжитесь любым удобным способом

Телеграм беседа

t.me/typst_gost

Телеграм

t.me/forgenet

Email

forgenet@inbox.ru

Дополнительная информация
Полезная информация о наших услугах

Задавайте вопросы

Мы готовы помочь вам с любыми вопросами по Typst или шаблону modern-g7-32