Пользовательские титульные листы
Создание и использование альтернативных шаблонов титульных страниц.
Хотя ГОСТ 7.32-2017 задаёт общую структуру титульного листа,
вузы и организации часто требуют собственный порядок блоков, логотип, подписи или формулировки.
modern-g7-32 позволяет заменить только титульный лист и оставить всю остальную логику отчёта:
поля, содержание, структурные заголовки, список исполнителей, источники и приложения.
В текущей версии пакета встроены title-templates.default и
title-templates.mai-university-lab. Примеры ГУАП и МИРЭА ниже показывают минимальные
пользовательские шаблоны с той же сигнатурой аргументов.
Готовый шаблон МАИ
Встроенный пресет МАИ подключается через параметр title-template. Остальные аргументы остаются
обычными аргументами gost.with: subject, manager, approved-by, agreed-by, city,
year и так далее.
#import "@preview/modern-g7-32:0.2.0": gost, title-templates#show: gost.with(title-template: title-templates.mai-university-lab,organization: ( full: "Московский авиационный институт", short: "Национальный исследовательский университет",),institute: (number: 3, name: "Системы управления, информатика и электроэнергетика"),department: (number: 307, name: "Цифровые технологии"),report-type: "Отчёт",about: "о лабораторной работе",subject: "Разработка программного модуля",manager: (name: "Иванов И.И.", position: "доцент"),city: "Москва",year: 2024,)
Одинаковые аргументы
Пользовательский титульный шаблон обычно состоит из двух функций:
arguments(..args, year: auto)нормализует данные, задаёт значения по умолчанию и проверяет вложенные словари.template(..args)получает уже подготовленные аргументы и верстает страницу.
Эта схема работает как наследование: можно взять аргументы базового шаблона, добавить несколько
полей для конкретного вуза и оставить общие поля прежними. Благодаря этому в gost.with не нужно
менять названия стандартных аргументов при переходе между титульниками.
// 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(...):
#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: "Москва",
)Минимальные примеры
ГУАП
#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)
]МИРЭА
#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.
#show: gost.with(
hide-title: true,
)Доступные утилиты
Для упрощения вёрстки в модуле custom-title-template доступны те же утилиты, которые использует
встроенный титульный лист.
Параметр
Тип
Описание
sign-field?per-line?detailed-sign-field?if-present?fetch-field?Параметры настройки
Параметр
Тип
Описание
title-template?hide-title?Пользовательский шаблон получает все именованные аргументы gost.with, поэтому можно добавлять
локальные поля вроде faculty, group, variant, teacher или practice-kind. Общие поля
лучше оставлять с теми же именами, что и у стандартного титульника.
Требования ГОСТ 7.32-2017
6.1.1 На титульном листе приводят сведения, предусмотренные 5.2 в соответствии с формами, приведенными в приложениях А и Б.
6.10.1 Титульный лист содержит реквизиты: наименование министерства... полное наименование организации... грифы согласования и утверждения...
Поделитесь своим мнением об этой странице