# Модуль: Нумерация **Ответственность**: предоставляет чистые стратегии арабской, многоуровневой и кириллической нумерации без управления counters конкретного профиля. **Расположение**: `.template/lib/shared/numbering.typ` ## Публичный интерфейс | Символ | Тип | Описание | |--------|-----|----------| | `cyrillic-numbering()` | чистая функция | Преобразует положительный номер в допустимую заглавную кириллическую букву | | `cyrillic-lower-numbering()` | чистая функция | Формирует строчную кириллическую часть списка | | `num-11()` | чистая функция | Формирует многоуровневый формат `1.1.` | | `num-1a()` | чистая функция | Чередует цифровые и кириллические уровни с наследованием | | `num-1-a()` | чистая функция | Чередует уровни без полного наследования родителей | | `attachment-numbering()` | чистая функция | Выбирает арабское или кириллическое обозначение из policy | ## Зависимости | Модуль | Что использует | |--------|----------------| | Нет | Модуль состоит из чистых функций и неизменяемых массивов символов | ## Инварианты - Исключённые ГОСТ-буквы не используются в кириллической последовательности. - Ноль и отрицательные значения не маскируются неявным fallback, несовместимым с будущими версиями Typst. - Функции не читают counters самостоятельно и форматируют только переданные числа. - Один и тот же вход всегда возвращает одинаковую строку. - Profile renderer управляет reset и scope counters, а не shared-модуль. ## Намеренно НЕ обрабатывает - Сброс counters при новой главе. - Выбор numbering policy конкретного документа. - Формат заголовка приложения и supplement. - Локализацию на другие языки. ## Заметки для агента > Typst 0.15 предупреждает о fallback для numbering systems, которые не умеют отображать ноль. Добавьте явные негативные unit tests. Сохраните существующие варианты `num_11`, `num_1a`, `num_1_a` семантически, но публичные имена можно унифицировать, поскольку обратная совместимость не требуется.