# Перечисления (/docs/reference/elements/enum)

Перечисления используются для структурирования однотипных данных внутри пунктов или подпунктов.
Согласно ГОСТ, списки могут быть маркированными (с тире) или нумерованными (с буквами или цифрами).

В шаблоне `modern-g7-32` все отступы и маркеры списков настроены так, чтобы они соответствовали
основному тексту и требованиям стандарта.

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

Используйте стандартный синтаксис списков Typst. Маркеры и отступы будут применены автоматически.

<TypstRender
  code={`
// Маркированный список (по умолчанию — тире)
- первый элемент;
- второй элемент;
- третий элемент.

// Нумерованный список (арабские цифры со скобкой)
+ этап подготовки;
+ этап реализации;
+ этап тестирования.
`}
  image="enum-example-simple.png"
/>

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

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

1. **Маркер по умолчанию**: Для обычных списков (`list`) автоматически устанавливается среднее
   тире (`–`), как того требует пункт [6.4.6](#6.4.6).
2. **Отступы**: Списки имеют тот же абзацный отступ, что и основной текст (1.25 см), и не выходят
   за границы текстового поля.
3. **Интервалы**: Расстояние между элементами списка (`spacing`) согласовано с межстрочным
   интервалом документа.
4. **Нумерация со скобкой**: Для нумерованных списков по умолчанию используется формат `1)`,
   предусмотренный стандартом.

## Специальная нумерация (Кириллица)

ГОСТ рекомендует использовать строчные буквы русского алфавита со скобкой для обозначения
элементов перечисления. В шаблоне для этого предусмотрена функция `enum-numbering`.

Чтобы включить кириллическую нумерацию для всего документа или конкретного блока:

<TypstRender
  code={`
#import "@preview/modern-g7-32:0.2.0": enum-numbering
#set enum(numbering: enum-numbering)

+ первый вариант;
+ второй вариант;
+ третий вариант.
// Оформится как: а), б), в)
`}
  image="enum-cyrillic-example.png"
/>

<Callout type="warning">
  При использовании букв исключаются: **ё, з, й, о, ч, ъ, ы, ь** согласно [6.4.6](#6.4.6).
  Функция шаблона учитывает это правило автоматически.
</Callout>

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

### list (Маркированный список)

<TypeTable
  type={{
  marker: {
    description: "Символ маркера",
    type: "content | array | function",
    default: "–"
  },
  indent: {
    description: "Отступ списка от левого края",
    type: "length",
    default: "1.25cm"
  }
}}
/>

### enum (Нумерованный список)

<TypeTable
  type={{
  numbering: {
    description: "Шаблон нумерации (например, '1.' или функция)",
    type: "string | function",
    default: "1)"
  },
  start: {
    description: "С какого числа начинать список",
    type: "integer",
    default: "1"
  }
}}
/>

## Правила пунктуации в списках

* Если элементы списка короткие (фразы), они пишутся со строчной буквы и разделяются запятой.
* Если элементы сложные (внутри есть свои запятые), используется точка с запятой.
* После последнего элемента ставится точка.

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

### Оформление перечислений

<GostQuote page={12} id="6.4.6">
  6.4.6 Внутри пунктов или подпунктов могут быть приведены перечисления. Перед каждым элементом перечисления следует ставить тире. При необходимости ссылки в тексте отчета на один из элементов перечисления вместо тире ставят строчные буквы русского алфавита со скобкой, начиная с буквы «а» (за исключением букв ё, з, й, о, ч, ъ, ы, ь). Простые перечисления отделяются запятой, сложные — точкой с запятой.
  При наличии конкретного числа перечислений допускается перед каждым элементом перечисления ставить арабские цифры, после которых ставится скобка.
  Перечисления приводятся с абзацного отступа в столбик.
</GostQuote>

<GostQuote page={10} id="6.1.1-margins">
  (из 6.1.1) Абзацный отступ должен быть одинаковым по всему тексту отчета и равен 1,25 см.
</GostQuote>
