Полный компилируемый каталог находится в examples/formatting/main.typ. Его можно открыть рядом с предпросмотром, изменить параметры и скопировать готовый блок в свою главу.
Собрать каталог отдельно:
typst compile --root . docs/examples/formatting/main.typ example.pdf
Или выполните задачу VS Code Scientia: собрать учебный пример и выберите пример оформления.
После рисунка, таблицы или формулы ставится уникальная метка:
#figure(
image("../assets/images/scheme.png", width: 80%),
caption: [Расчётная схема],
) <calculation-scheme>
Ссылка @calculation-scheme получает номер автоматически. Функция vref добавляет правильное слово. По умолчанию используется предложный падеж — самый частый вариант после слов «в» и «на»:
на #vref(<calculation-scheme>)
Если нужен другой падеж, укажите его второй позицией одной буквой:
#vref(<calculation-scheme>, "и") // Рисунок 1 — именительный
без #vref(<calculation-scheme>, "р") // без Рисунка 1 — родительный
к #vref(<calculation-scheme>, "д") // к Рисунку 1 — дательный
вижу #vref(<calculation-scheme>, "в") // вижу Рисунок 1 — винительный
перед #vref(<calculation-scheme>, "т") // перед Рисунком 1 — творительный
на #vref(<calculation-scheme>, "п") // на Рисунке 1 — предложный
Названия объектов ссылки всегда начинаются с прописной буквы: «Рисунок», «Таблица», «Формула», «Раздел». Если в исключительном месте нужна строчная буква, добавьте capitalized: false.
Можно писать и прежние сокращения ("имен", "род", "дат", "вин", "тв", "предл"), и полные названия ("именительный", "предложный" и т. д.). Для нескольких однородных ссылок действуют те же правила: #vrefs((<figure-a>, <figure-b>)) даст «Рисунках 1 и 2». При добавлении новой главы не копируйте уже существующую метку.
В примере показаны:
Изображение храните в assets/images/. Для фотографий обычно подходит PNG или JPEG, для схем — SVG.
Компонент corp-table добавляет фирменную шапку и поддерживает:
header и body;rowspan и colspan;Минимальный вариант:
#figure(
corp-table(
columns: (2fr, 1fr),
header: ([Параметр], [Значение]),
body: ([Высота уступа], [15 м], [Угол откоса], [70°]),
),
caption: [Исходные параметры],
) <source-parameters>
Красная строка внутри ячеек и в подписи таблицы отключается автоматически. Это правило действует и для corp-table, и для обычной встроенной table.
Обычные таблицы в отчёте по умолчанию выравниваются по правому краю с вертикальным центрированием (align: right + horizon, задаётся в шаблоне). Таблица может переопределить выравнивание локальным параметром align:.
Встроенная формула пишется внутри строки: $K >= 1.3$.
Отдельная формула с номером:
#formula(
$K = (sum F_("уд"))/(sum F_("сдв"))$,
) <safety-factor>
Ссылка: #eqref(<safety-factor>).
Пояснения «где …» после формулы оформляются хелпером где: без красной строки, с висячим отступом, чтобы обозначения величин выстраивались в столбец:
#formula(
$K = (sum F_("уд"))/(sum F_("сдв"))$,
) <safety-factor>
#где[
где $K$ — коэффициент запаса устойчивости;\
$F_"уд"$ — удерживающие силы;
]
numbered-list настраивает форматирование, но сохраняет встроенный механизм enum. Поэтому продолжают работать штатные переносы страниц, вложенные и многоабзацные пункты. Правила шаблонов номеров описаны в документации numbering.
Для обычной схемы ГОСТ достаточно обернуть стандартный список:
#numbered-list[
+ Первый уровень
+ Второй уровень
+ Третий уровень
]
По умолчанию получится 1. → а) → 1). Частые готовые схемы:
| Схема | Результат по уровням |
|---|---|
"gost" |
1. → а) → 1) |
"decimal" |
1. → 1.1. → 1.1.1. |
"decimal-plain" |
1 → 1.1 → 1.1.1 |
"local-mixed" |
1. → а. → ‣ |
"full-mixed" |
1. → 1.а. → 1.а.‣ |
"legal" |
A) → A)1. |
"bullets" |
• → ∙ → ‣ → ⁃ → ◦ |
Тип каждого уровня вложенности задаётся через levels. Это именно форматы уровней, а не готовые номера: levels: ("1", "а", "A") означает цифровой первый уровень, кириллический второй и латинский третий. Соседние пункты увеличиваются автоматически. Поддерживаются "1", "01", "I", "i", "A", "a", "А", "а", произвольный символ или функция:
#numbered-list(
levels: ("1", "а", "A"),
full: true,
separators: (".", ")"),
suffixes: (".", ")", "."),
)[
+ Первый уровень
+ Второй уровень
+ Третий уровень
]
Этот пример даёт 1., 1.а) и 1.а)A.. Параметр full включает или скрывает номера родительских уровней.
Геометрия списка настраивается независимо:
| Параметр | Что изменяет |
|---|---|
outer-indent |
общий отступ всего списка |
level-indent |
дополнительный отступ каждого вложенного уровня |
body-indent |
расстояние от номера или маркера до текста |
line-leading |
расстояние между строками внутри одного пункта |
item-spacing |
расстояние между соседними пунктами |
paragraph-spacing |
расстояние между абзацами внутри одного пункта |
Чтобы продолжить с нужного номера, первый пункт задают числом, а следующие снова пишут через +:
#numbered-list(levels: ("01",), suffixes: ".")[
8. Восьмой пункт будет показан как 08.
+ Следующий пункт будет показан как 09.
]
Полный компилируемый каталог содержит примеры всех типов счётчиков, разделителей, маркеров и интервалов.
| Элемент | Раздел исходника |
|---|---|
| Обычный рисунок | РИСУНКИ → Обычное изображение |
| Сетка изображений | РИСУНКИ → Несколько панелей |
| Простая таблица | ТАБЛИЦЫ → Простая таблица |
| Настраиваемая таблица | ТАБЛИЦЫ → Управление шириной |
| Объединённые ячейки | ТАБЛИЦЫ → Многострочная шапка |
| CSV / TSV | ТАБЛИЦЫ → Таблица из CSV |
| Формулы | ФОРМУЛЫ |
| Списки и текст | СПИСКИ И ТЕКСТ → все подразделы |
Каталог является частью автоматических тестов шаблона: примеры должны продолжать компилироваться после изменений библиотеки.