Files
Wallenc/Report/Пример работы с Typst.typ

267 lines
14 KiB
Typst
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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)