# Листинги и программный код в дипломе по ГОСТ: правила оформления

**Короткий ответ:**

Отдельного правила для листингов в ГОСТ 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». Листинг без отсылки и без номера нормоконтроль считает незавершённым оформлением.

## Чего не делать

* **вставлять код скриншотом** — его нельзя выделить, текст размывается, качество зависит от масштаба; код должен быть настоящим текстом;
* **набирать код основным шрифтом** — теряется моноширинность и выравнивание;
* **оставлять код без подписи и номера** — на него невозможно сослаться;
* **писать несколько листингов с одним названием**;
* **объединять в один листинг несвязанные фрагменты**;
* **забывать про приложения** — длинные исходники место именно там — см. [«Оформление приложений по ГОСТ»](/blog/oformlenie-prilozheniy-po-gostu).

## Как листинги оформляются в «Оформителе»

**«Оформитель»** ([оформитель.com](https://оформитель.com)) собирает DOCX и PDF по ГОСТ 7.32. Листинг задаётся огороженным блоком с языком и атрибутом `caption=`:

````markdown
Пример обработчика приведён в листинге {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». Подробнее — в статье об [оформлении приложений](/blog/oformlenie-prilozheniy-po-gostu).

### Нужна ли ссылка на листинг в тексте?

Да. Как и любой объект, листинг должен быть упомянут в тексте до своего появления: «в листинге 1 приведён…», «(листинг 2)». В «Оформителе» для этого служит `{ref:lst_id}`, а валидатор ловит листинги без ссылок.

### Можно ли выделять листинг рамкой?

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

### Как нумеровать листинги — сквозной нумерацией или по разделам?

Оба способа допустимы: сквозной («Листинг 1, 2») или по разделам («Листинг 1.1»). В приложении добавляется литера («Листинг А.1»). Способ должен быть единым — конкретный вариант уточните у нормоконтроля.

### Как «Оформитель» оформляет листинги автоматически?

Сервис превращает огороженный блок с `caption=` в нумеруемый листинг «Листинг N – Название», подставляет номера в `{ref:...}`, рендерит диаграммы-как-код как рисунки (не как код), поддерживает альбомную ориентацию через `::: landscape` и вынос листингов в приложения.

---

## Источники

1. [ГОСТ 7.32-2017 «СИБИД. Отчёт о научно-исследовательской работе. Структура и правила оформления»](https://docs.cntd.ru/document/1200157208)
2. [ГОСТ 2.105-95 «ЕСКД. Общие требования к текстовым документам»](https://docs.cntd.ru/document/1200001260)

---

## Читайте также

- [Оформление приложений по ГОСТ: буквы, нумерация и ссылки](/blog/oformlenie-prilozheniy-po-gostu)
- [Оформление рисунков по ГОСТ: подпись, нумерация и ссылки](/blog/oformlenie-risunkov-po-gostu)
- [Формулы и таблицы в дипломе по ГОСТ: правила оформления](/blog/formuly-i-tablicy-v-diplome-po-gostu)
- [Как писать диплом в Markdown и конвертировать в Word по ГОСТ](/blog/kak-pisat-diplom-v-markdown)
- [Оформление лабораторной работы по ГОСТ: как написать с ChatGPT](/blog/kak-napisat-laboratornuyu-s-chatgpt)
- [Открытые исходники: диалект Markdown и примеры работ — GitHub](https://github.com/Artem891372/oformitel)
