3.6 KiB
3.6 KiB
Модуль: Настраиваемые списки
Ответственность: формирует многоуровневые номера и маркеры, сохраняя нативную вёрстку enum.
Расположение: .template/lib/presentation/lists.typ
Публичный интерфейс
| Символ | Тип | Описание |
|---|---|---|
bullet-list() |
function | Локально применяет геометрию к стандартному маркированному списку |
numbered-list() |
function | Локально применяет схему и геометрию к стандартному нумерованному списку |
list-scheme() |
constructor | Создаёт проверенную конфигурацию уровней, разделителей и окончаний |
list-level() |
constructor | Описывает нестандартный уровень, включая prefix, suffix и width |
list-numbering() |
function factory | Возвращает функцию нумерации для прямого использования в enum |
list-schemes |
dictionary | Хранит публичные готовые схемы |
Инварианты
- Модуль не заменяет
enum: переносы страниц, вложенность и многоабзацные элементы остаются ответственностью Typst. - Внутренне
enum.fullвсегда включён, чтобы форматтер знал глубину; показ родительских уровней определяетscheme.full. - Если массив levels, separators или suffixes короче глубины, повторяется его последнее значение.
- Неизвестная именованная схема вызывает понятную ошибку и не подменяется схемой по умолчанию.
- Режимы
normal,compactиflushменяют только геометрию;autoнаследует окружающий стиль. - Локальные параметры
bullet-listиnumbered-listне должны менять списки за пределами переданного body.
Поддерживаемые обозначения
- арабские числа:
1; - арабские числа с ведущим нулём:
01илиlist-level("1", width: N); - римские числа:
I,i; - латинские буквы:
A,a; - кириллица по ГОСТ:
А,а; - любой строковый или content-маркер;
- пользовательская функция
value => content.
Намеренно НЕ обрабатывает
- собственную раскладку строк и переносы страниц;
- скрытое глобальное продолжение счётчика между несвязанными списками;
- автоматический выбор схемы по содержимому текста.
Заметки для агента
Не заменяйте нативный
enumручной сеткой или таблицей. Это ухудшит переносы, семантику документа и поддержку многоабзацных пунктов. Новые возможности добавляйте через форматирование массива родительских номеров и локальные set/show rules.