Короткий ответ:
Отдельного правила для листингов в ГОСТ 7.32 нет: код оформляют по аналогии с другими объектами — нумеруют, подписывают, ссылаются в тексте. На практике листинг набирают моноширинным шрифтом меньшего кегля (обычно 10–12 pt) с одинарным интервалом, подпись «Листинг 1 – Название» ставят над или под кодом по единому образцу. Длинный код выносят в приложения.
Коротко:
- ГОСТ 7.32 листинги прямо не регулирует — единообразие и методичка важнее.
- Код набирают моноширинным шрифтом, кегль меньше основного, интервал одинарный.
- Подпись — «Листинг 1 – Название», ссылка в тексте до листинга.
- Скриншоты кода не заменяют листинг: код должен быть текстом.
- Длинные листинги выносят в приложения (например, «Листинг А.1»).
- В Markdown-диалекте «Оформителя»: огороженный блок с
caption=даёт нумеруемый листинг.
Примечание: ГОСТ 7.32-2017 не описывает листинги как отдельный объект. Приведённая практика опирается на общие требования ГОСТ 2.105-95, ЕСПД и методички кафедр — уточняйте конкретный формат подписи и шрифта у своего нормоконтроля.
Быстрый ответ: как оформить листинг
| Что | Как обычно правильно | Что ломается чаще всего |
|---|---|---|
| Шрифт | моноширинный (Courier New, Consolas) | обычный пропорциональный шрифт |
| Кегль | меньше основного: 10–12 pt | тот же, что в тексте |
| Интервал | одинарный | полуторный, как в тексте |
| Подпись | «Листинг 1 – Название» | без подписи или «Код программы» |
| Ссылка | «в листинге 1» до кода | листинг без ссылки |
| Скриншот | набор текстом | картинка из редактора |
| Длинный код | перенос или приложение | код «уезжает» за поля |
| Оформление | единый способ на всю работу | где сверху, где снизу, где без номера |
Нужно ли вообще оформлять листинги по ГОСТ
Строгого «листингового» раздела в ГОСТ 7.32-2017 нет. Листинг — это фрагмент исходного кода, и в работах по программированию его оформляют, опираясь на общую логику оформления объектов: у листинга есть номер, подпись и отсылка в тексте — как у рисунка или таблицы. Требования к программным документам задаёт ЕСПД (например, ГОСТ 19.401-78 «Текст программы»), но для ВКР чаще действует методичка кафедры.
Отсюда главный принцип: единообразие. Не так важно, поставите вы подпись сверху или снизу, важно, чтобы во всей работе было одинаково. Если методичка задаёт конкретный формат — приоритет у неё.
Оформление кода
Что обычно требуется:
- моноширинный шрифт — Courier New, Consolas, Lucida Console;
- кегль меньше основного — обычно 10–12 pt, чтобы код не «съедал» страницы и не выходил за поля;
- одинарный межстрочный интервал;
- без переносов слов внутри кода — переносы в коде недопустимы, они меняют смысл;
- сохранённые отступы — отступы значимы в коде, их нельзя «схлопывать»;
- цветовую подсветку — по желанию; в печати чаще достаточно чёрно-белого текста.
Длинные строки либо переносят вручную по правилам языка, либо размещают листинг на странице в альбомной ориентации. Если код длинный, его целиком выносят в приложение, а в основной части оставляют ключевой фрагмент.
Подпись и нумерация листинга
Распространённый формат подписи — «Листинг 1 – Название». Нумерация может быть:
- сквозной — «Листинг 1, 2, 3…» по всему документу;
- по разделам — «Листинг 1.1, 2.3»;
- с литерой приложения — «Листинг А.1», если код в приложении.
Как и у других объектов, в тексте должна быть ссылка до листинга: «Пример обработчика приведён в листинге 1». Листинг без отсылки и без номера нормоконтроль считает незавершённым оформлением.
Чего не делать
- вставлять код скриншотом — его нельзя выделить, текст размывается, качество зависит от масштаба; код должен быть настоящим текстом;
- набирать код основным шрифтом — теряется моноширинность и выравнивание;
- оставлять код без подписи и номера — на него невозможно сослаться;
- писать несколько листингов с одним названием;
- объединять в один листинг несвязанные фрагменты;
- забывать про приложения — длинные исходники место именно там — см. «Оформление приложений по ГОСТ».
Как листинги оформляются в «Оформителе»
«Оформитель» (оформитель.com) собирает DOCX и PDF по ГОСТ 7.32. Листинг задаётся огороженным блоком с языком и атрибутом caption=:
Пример обработчика приведён в листинге {ref:lst_endpoint}.
```python {#lst_endpoint caption="Обработчик создания задачи"}
def create_task(payload: dict) -> Task:
task = Task(**payload)
db.session.add(task)
db.session.commit()
return task
```
Что делает сервис:
- нумерует листинг — строка с
caption=превращается в подпись «Листинг N – Название»; нумерация пересчитывается при правках; - без
caption=— это простой блок кода без номера и подписи; - моноширинный шрифт и кегль задаёт стиль: код набирается тем же движком, что и остальной документ;
- ссылки
{ref:...}— в тексте{ref:lst_endpoint}подставляет актуальный номер листинга; - диаграммы не путаются с кодом — языки
mermaid,plantumlи другие рендерятся как рисунки, а не как листинги; - альбомная ориентация — блок
::: landscape … :::разворачивает страницу для широкого кода или большой таблицы; - вынос в приложения — листинг в приложении нумеруется с литерой («Листинг А.1»);
- проверка — валидатор отмечает листинги без отсылок в тексте.
Часто задаваемые вопросы (FAQ)
Есть ли в ГОСТ требование, как оформлять листинги?
В ГОСТ 7.32-2017 отдельного раздела про листинги нет. К ним применяют общую логику оформления объектов: номер, подпись, ссылка в тексте. Для программных документов существует ЕСПД (например, ГОСТ 19.401-78 «Текст программы»), но в ВКР обычно ориентируются на методичку кафедры.
Каким шрифтом набирать код в дипломе?
Моноширинным: Courier New, Consolas, Lucida Console. Кегль меньше основного текста — обычно 10–12 pt, интервал одинарный. Так код занимает меньше места и не выезжает за поля.
Как подписывать листинг — «Листинг 1» или «Рисунок 1»?
Листинг подписывают как листинг: «Листинг 1 – Название». Подписывать код как рисунок или таблицу неверно — это отдельный тип объекта. Если ваш нормоконтроль требует иначе, следуйте методичке.
Подпись к листингу ставится сверху или снизу?
Единого стандарта нет. Часто подпись ставят над листингом по аналогии с таблицей, но встречается и подпись снизу. Главное — единообразие во всей работе. В «Оформителе» подпись листинга выводится над кодом.
Можно ли вставить код картинкой?
Не рекомендуется. Скриншот нельзя выделить и скопировать, он размывается при печати и «плывёт» при масштабировании. Код должен быть настоящим текстом — тогда он корректно переносится, нумеруется и подсвечивается.
Куда девать длинный исходный код?
В приложения. В основной части оставляют ключевой фрагмент или ссылку, а полный текст программы выносят в приложение и нумеруют с литерой: «Листинг А.1». Подробнее — в статье об оформлении приложений.
Нужна ли ссылка на листинг в тексте?
Да. Как и любой объект, листинг должен быть упомянут в тексте до своего появления: «в листинге 1 приведён…», «(листинг 2)». В «Оформителе» для этого служит {ref:lst_id}, а валидатор ловит листинги без ссылок.
Можно ли выделять листинг рамкой?
Обычно код отделяют от текста отбивками и моноширинным шрифтом; рамка — по желанию и по методичке. Главное — чтобы листинг визуально читался как код и был одинаково оформлен по всей работе.
Как нумеровать листинги — сквозной нумерацией или по разделам?
Оба способа допустимы: сквозной («Листинг 1, 2») или по разделам («Листинг 1.1»). В приложении добавляется литера («Листинг А.1»). Способ должен быть единым — конкретный вариант уточните у нормоконтроля.
Как «Оформитель» оформляет листинги автоматически?
Сервис превращает огороженный блок с caption= в нумеруемый листинг «Листинг N – Название», подставляет номера в {ref:...}, рендерит диаграммы-как-код как рисунки (не как код), поддерживает альбомную ориентацию через ::: landscape и вынос листингов в приложения.
Источники
- ГОСТ 7.32-2017 «СИБИД. Отчёт о научно-исследовательской работе. Структура и правила оформления»
- ГОСТ 2.105-95 «ЕСКД. Общие требования к текстовым документам»
Читайте также
- Оформление приложений по ГОСТ: буквы, нумерация и ссылки
- Оформление рисунков по ГОСТ: подпись, нумерация и ссылки
- Формулы и таблицы в дипломе по ГОСТ: правила оформления
- Как писать диплом в Markdown и конвертировать в Word по ГОСТ
- Оформление лабораторной работы по ГОСТ: как написать с ChatGPT
- Открытые исходники: диалект Markdown и примеры работ — GitHub