Typst GOSTTypst Gost

Листинги кода

Оформление исходного кода и распечаток программ.

Листинги программного кода в отчёте по ГОСТ относятся к компьютерным распечаткам. В modern-g7-32 они оформляются как отдельные фигуры с подписью «Листинг N — ...» и могут переноситься на следующую страницу.

В шаблоне modern-g7-32 блоки кода автоматически оформляются моноширинным шрифтом и, что важно, поддерживают перенос на следующую страницу, если код слишком длинный.

Быстрый старт

Для вставки кода используйте стандартные блоки Typst (три обратных апострофа), обёрнутые в функцию #figure. Это обеспечит нумерацию и добавит подпись.

#figure(```rustfn main() {    println!("Hello, World!");}```,caption: [Листинг программы на языке Rust]) <listing-example>
Preview

Автоматизация и логика шаблона

Шаблон настраивает блоки кода следующим образом:

  1. Многостраничность: В отличие от обычных рисунков, блоки кода (kind: raw) по умолчанию сделаны «разбиваемыми» (breakable: true). Если листинг не помещается на одной странице, он корректно перенесётся на следующую.
  2. Нумерация: Блок raw внутри #figure получает тип raw, поэтому Typst печатает подпись «Листинг 1 — ...». Это отдельная нумерация листингов, а не ряд рисунков.
  3. Подписи: Разделитель в подписи заменяется на длинное тире («Рисунок 1 — Наименование»), согласно 6.5.7.

Чтение из внешних файлов

Для больших проектов удобнее хранить код в отдельных файлах и подключать их в отчёт автоматически. Это гарантирует, что в документе всегда будет актуальная версия кода. Дополнительно сделаем так, чтобы длинный код переносился на следующую страницу.

#show figure.where(kind: raw): set block(breakable: true)#figure(raw(read("snake.py"), lang: "python", block: true),caption: [Исходный код змейки на Python],) <listing-file>
Preview

Параметры функции raw

Функция raw отвечает за отрисовку кода. Основные параметры:

Параметр

Продвинутое использование

Подсветка синтаксиса

Typst поддерживает подсветку для сотен языков. Просто укажите название языка после первых трёх апострофов. Чтобы изменить тему подсветки, вы можете использовать стандартную команду Typst: #set raw(theme: "название-темы").

Если нормоконтроль требует полностью чёрные распечатки без подсветки синтаксиса, добавьте после gost.with строку #set raw(theme: none) или не указывайте язык у конкретного блока кода.

#set raw(theme: none)#figure(```rustfn main() {    println!("Hello, World!");}```,caption: [Листинг программы на языке Rust]) <listing-example>
Preview

Перенос длинных листингов

Листинги в modern-g7-32 настроены как разбиваемые блоки, но итоговый перенос всё равно зависит от содержимого. Чтобы длинный код не выходил за поля:

  • включайте перенос строк в редакторе перед вставкой особенно длинных строк;
  • выносите большие листинги в файл и подключайте через raw(read("file.py"), lang: "python", block: true);
  • для фрагментов с длинными URL, JSON или SQL лучше переносить строки вручную в исходном файле;
  • если листинг важен целиком, переносите его в приложение, чтобы не разрывать основное изложение.

Код в приложениях

Если вы выносите листинги в приложение, их нумерация автоматически изменится на буквенно-цифровую (например, «Рисунок А.5»), как требует 6.5.5.

Требования ГОСТ 7.32-2017

Качество и вид

6.1.2 Вне зависимости от способа выполнения отчета качество напечатанного текста и оформления... распечаток программ должно удовлетворять требованию их четкого воспроизведения.

Место в отчёте

6.5.1 Иллюстрации (чертежи, графики, схемы, компьютерные распечатки... фотоснимки) следует располагать в отчете непосредственно после текста отчета, где они упоминаются впервые, или на следующей странице.

Нумерация и подписи

6.5.4 Иллюстрации... следует нумеровать арабскими цифрами сквозной нумерацией.

6.5.7 Слово «Рисунок», его номер и через тире наименование помещают... в центре под рисунком без точки в конце.

Поделитесь своим мнением об этой странице

На этой странице