Files
2026-10-09 04:24:38 +00:00

137 lines
5.6 KiB
Typst
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#import "/.template/lib/index.typ": document, profiles, corp-table, formula, vref, vrefs, eqref
#let stress-rows = range(1, 73).map(index => (
[#index],
[
#if index == 3 {
[Составной параметр:
- первый вложенный пункт;
- второй вложенный пункт с длинным пояснением внутри ячейки.]
} else {
[Параметр #index с достаточно длинным наименованием для проверки переноса строк]
}
],
[
#if index == 4 {
[Значение #index. #link("https://example.invalid/table-cell")[Ссылка внутри ячейки] сохраняет кликабельность и не меняет отступы.]
} else {
[Значение #index. Текст ячейки переносится, но сохраняет одинаковые внутренние поля и межстрочный интервал.]
}
],
)).flatten()
#show: document.with(
company: "test-company",
profile: profiles.report(
title: "Стресс-тест типографики",
theme: "Таблицы, списки, формулы и грамматические ссылки",
year: 2026,
executors: (),
),
)
= КОНТЕКСТНЫЕ ИНТЕРВАЛЫ
== Заголовок перед абзацем
Обычный абзац после заголовка должен иметь устойчивую красную строку, нормативный межстрочный интервал и не зависеть от элемента, который находился перед заголовком.
== Заголовок перед маркированным списком
- Первый уровень маркированного списка;
- второй уровень с длинным текстом, который переносится на новую строку без смещения маркера;
- третий уровень.
- Возврат на первый уровень.
== Заголовок перед нумерованным списком
+ Основной пункт
+ Второй уровень
+ Третий уровень
+ Следующий основной пункт
== Соседние заголовки
=== Заголовок третьего уровня
==== Заголовок четвёртого уровня
Текст после цепочки заголовков.
= ССЫЛКИ С ПАДЕЖАМИ <stress-section>
#figure(
rect(width: 3cm, height: 1.3cm, fill: rgb("fbb20d")),
caption: [Первый контрольный рисунок],
) <stress-figure-a>
#figure(
circle(radius: 0.65cm, fill: rgb("e39f49")),
caption: [Второй контрольный рисунок],
) <stress-figure-b>
#formula($a^2 + b^2 = c^2$) <stress-equation>
Именительный: #vref(<stress-figure-a>, grammatical-case: "имен").
Родительный: без #vref(<stress-figure-a>, grammatical-case: "род").
Дательный: к #vref(<stress-figure-a>, grammatical-case: "дат").
Винительный: см. #vref(<stress-figure-a>, grammatical-case: "вин").
Творительный: перед #vref(<stress-figure-a>, grammatical-case: "тв").
Предложный: на #vref(<stress-figure-a>, grammatical-case: "предл").
Групповая ссылка: на #vrefs(
(<stress-figure-a>, <stress-figure-b>),
grammatical-case: "предл",
).
Формула в дательном падеже: к #vref(<stress-equation>, grammatical-case: "дат"); короткая ссылка #eqref(<stress-equation>).
Ссылка на раздел: в #vref(<stress-section>, grammatical-case: "предл").
Внешняя ссылка: #link("https://example.invalid/specification")[контрольная спецификация].
= МНОГОСТРАНИЧНАЯ ТАБЛИЦА
#figure(
corp-table(
columns: (1.2cm, 1.7fr, 2.3fr),
header: (
table.cell(rowspan: 2, align: center + horizon)[№],
table.cell(colspan: 2, align: center + horizon)[Контрольные данные],
[Параметр],
[Описание и значение],
),
body: stress-rows,
repeat_header: true,
continuation: true,
continuation_text: "Продолжение таблицы",
body-leading: 0.65em,
body-inset: (x: 4pt, y: 3pt),
justify: false,
hyphenate: false,
),
caption: [Таблица, переходящая через несколько страниц],
) <stress-table>
= ПРОВЕРКА ПОСЛЕ ТАБЛИЦЫ
Текст после таблицы не должен прилипать к последней строке. Ссылка на #vref(<stress-table>, grammatical-case: "вин") остаётся рабочей.
#pagebreak()
= ВЫСОКАЯ СТРОКА ТАБЛИЦЫ
#let tall-cell = range(1, 66).map(index => [Строка высокой ячейки #index. Содержимое одной строки таблицы продолжается без потери границ.]).join(linebreak())
#figure(
corp-table(
columns: (3cm, 1fr),
header: ([Идентификатор], [Высокая ячейка]),
body: ([ROW-ONE], tall-cell),
row_breakable: true,
page_break: "fit",
repeat_header: true,
continuation: true,
continuation_text: "Продолжение высокой таблицы",
justify: false,
),
caption: [Одна высокая строка, переходящая через страницы],
) <tall-row-table>