Initial commit
This commit is contained in:
commit
c534d5ce80
163 files changed
+11500
No files matched your search
@@ -0,0 +1,247 @@
|
||||
# Рисунки, таблицы, формулы и ссылки
|
||||
|
||||
Полный компилируемый каталог находится в [examples/formatting/main.typ](examples/formatting/main.typ). Его можно открыть рядом с предпросмотром, изменить параметры и скопировать готовый блок в свою главу.
|
||||
|
||||
Собрать каталог отдельно:
|
||||
|
||||
```powershell
|
||||
typst compile --root . docs/examples/formatting/main.typ example.pdf
|
||||
```
|
||||
|
||||
Или выполните задачу VS Code **Scientia: собрать учебный пример** и выберите пример оформления.
|
||||
|
||||
## Метки и автоматическая нумерация
|
||||
|
||||
После рисунка, таблицы или формулы ставится уникальная метка:
|
||||
|
||||
```typst
|
||||
#figure(
|
||||
image("../assets/images/scheme.png", width: 80%),
|
||||
caption: [Расчётная схема],
|
||||
) <calculation-scheme>
|
||||
```
|
||||
|
||||
Ссылка `@calculation-scheme` получает номер автоматически. Функция `vref` добавляет правильное слово. По умолчанию используется предложный падеж — самый частый вариант после слов «в» и «на»:
|
||||
|
||||
```typst
|
||||
на #vref(<calculation-scheme>)
|
||||
```
|
||||
|
||||
Если нужен другой падеж, укажите его второй позицией одной буквой:
|
||||
|
||||
```typst
|
||||
#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». При добавлении новой главы не копируйте уже существующую метку.
|
||||
|
||||
Для приложения метка ставится на первом заголовке его файла: `= Исходные данные <appendix-source-data>`. Запись `в #vref(<appendix-source-data>)` даст «в Приложении А», а `в #vrefs((<appendix-a>, <appendix-b>))` — «в Приложениях А и Б». Подключение файлов описано в [руководстве по документам](documents.md#приложения-отчёта).
|
||||
|
||||
## Информационные плашки
|
||||
|
||||
Компонент `info-block` выделяет замечание или важное пояснение большим цветным блоком:
|
||||
|
||||
```typst
|
||||
#info-block(title: [ЗАМЕЧАНИЕ])[
|
||||
Перед выпуском отчёта нужно согласовать исходные данные расчёта.
|
||||
]
|
||||
```
|
||||
|
||||
Цвета можно переопределить через `fill`, `accent` и `text-fill`; `title: none` убирает заголовок. В Typst Typewriter готовый блок вставляется кнопкой **Плашка-замечание**.
|
||||
|
||||
## Рисунки
|
||||
|
||||
В примере показаны:
|
||||
|
||||
- обычное изображение с шириной в процентах;
|
||||
- фиксированная ширина в сантиметрах и выравнивание;
|
||||
- несколько панелей под одной подписью;
|
||||
- одиночные и групповые ссылки.
|
||||
|
||||
Изображение храните в `assets/images/`. Для фотографий обычно подходит PNG или JPEG, для схем — SVG.
|
||||
|
||||
## Таблицы
|
||||
|
||||
Компонент `corp-table` добавляет фирменную шапку и поддерживает:
|
||||
|
||||
- равные, относительные и фиксированные ширины столбцов;
|
||||
- отдельные `header` и `body`;
|
||||
- размер текста, интервалы и поля ячеек;
|
||||
- обычные, компактные и нулевые отступы списков;
|
||||
- выравнивание по столбцам;
|
||||
- `rowspan` и `colspan`;
|
||||
- повторение шапки и надпись «Продолжение таблицы»;
|
||||
- импорт данных из CSV и TSV.
|
||||
|
||||
Минимальный вариант:
|
||||
|
||||
```typst
|
||||
#figure(
|
||||
corp-table(
|
||||
columns: (2fr, 1fr),
|
||||
header: ([Параметр], [Значение]),
|
||||
body: ([Высота уступа], [15 м], [Угол откоса], [70°]),
|
||||
),
|
||||
caption: [Исходные параметры],
|
||||
) <source-parameters>
|
||||
```
|
||||
|
||||
Красная строка внутри ячеек и в подписи таблицы отключается автоматически. Это правило действует и для `corp-table`, и для обычной встроенной `table`.
|
||||
|
||||
### Списки внутри таблицы
|
||||
|
||||
По умолчанию списки наследуют обычное оформление документа. Для узкой таблицы достаточно добавить один параметр:
|
||||
|
||||
```typst
|
||||
#corp-table(
|
||||
list-layout: "compact",
|
||||
columns: (1fr, 2fr),
|
||||
header: ([Раздел], [Содержание]),
|
||||
body: (
|
||||
[Материалы], [
|
||||
- исходные данные;
|
||||
- результаты расчётов.
|
||||
],
|
||||
),
|
||||
)
|
||||
```
|
||||
|
||||
Доступны три явных режима:
|
||||
|
||||
| Значение | Результат |
|
||||
|----------|-----------|
|
||||
| `"normal"` | обычные отступы основного текста |
|
||||
| `"compact"` | небольшой отступ для большинства таблиц |
|
||||
| `"flush"` | маркер или номер начинается у левого поля ячейки |
|
||||
|
||||
Если `list-layout` не задан, существующее оформление не изменяется. Точные значения для всей таблицы можно задать параметрами `list-indent` и `list-body-indent`:
|
||||
|
||||
```typst
|
||||
#corp-table(
|
||||
list-indent: 0.2cm,
|
||||
list-body-indent: 0.25em,
|
||||
// остальные параметры таблицы
|
||||
)
|
||||
```
|
||||
|
||||
Эта настройка действует и на обычные списки `-`, и на нумерованные списки `+`, включая `numbered-list`. Для отдельной ячейки используйте локальные оболочки из раздела ниже. В обычной встроенной `table` параметра `list-layout` нет — применяйте `bullet-list` или `numbered-list` непосредственно внутри нужной ячейки.
|
||||
|
||||
## Формулы
|
||||
|
||||
Встроенная формула пишется внутри строки: `$K >= 1.3$`.
|
||||
|
||||
Отдельная формула с номером:
|
||||
|
||||
```typst
|
||||
#formula(
|
||||
$K = (sum F_("уд"))/(sum F_("сдв"))$,
|
||||
) <safety-factor>
|
||||
```
|
||||
|
||||
Ссылка: `#eqref(<safety-factor>)`.
|
||||
|
||||
## Настраиваемые списки
|
||||
|
||||
`bullet-list` настраивает маркированный список, а `numbered-list` — нумерованный. Обе оболочки сохраняют встроенные механизмы [`list`](https://typst.app/docs/reference/model/list/) и [`enum`](https://typst.app/docs/reference/model/enum/), поэтому продолжают работать штатные переносы страниц, вложенные и многоабзацные пункты. Правила шаблонов номеров описаны в документации [`numbering`](https://typst.app/docs/reference/model/numbering/).
|
||||
|
||||
Для маркированного списка можно быстро выбрать геометрию:
|
||||
|
||||
```typst
|
||||
#bullet-list(layout: "compact")[
|
||||
- Первый пункт.
|
||||
- Второй пункт.
|
||||
]
|
||||
```
|
||||
|
||||
Параметр `layout` принимает `"normal"`, `"compact"` или `"flush"`. Без него список наследует настройки документа или окружающей таблицы.
|
||||
|
||||
Для обычной схемы ГОСТ достаточно обернуть стандартный список:
|
||||
|
||||
```typst
|
||||
#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"`, `"А"`, `"а"`, произвольный символ или функция:
|
||||
|
||||
```typst
|
||||
#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` | расстояние между абзацами внутри одного пункта |
|
||||
|
||||
Эти параметры доступны и в `bullet-list`, и в `numbered-list`. Явно заданное значение конкретного списка имеет приоритет над режимом всей таблицы:
|
||||
|
||||
```typst
|
||||
#bullet-list(level-indent: 0.15cm, body-indent: 0.2em)[
|
||||
- Точно настроенный пункт.
|
||||
]
|
||||
```
|
||||
|
||||
Чтобы продолжить с нужного номера, первый пункт задают числом, а следующие снова пишут через `+`:
|
||||
|
||||
```typst
|
||||
#numbered-list(levels: ("01",), suffixes: ".")[
|
||||
8. Восьмой пункт будет показан как 08.
|
||||
+ Следующий пункт будет показан как 09.
|
||||
]
|
||||
```
|
||||
|
||||
Полный компилируемый каталог содержит примеры всех типов счётчиков, разделителей, маркеров и интервалов.
|
||||
|
||||
## Где смотреть допустимые варианты
|
||||
|
||||
| Элемент | Раздел исходника |
|
||||
|---------|------------------|
|
||||
| Обычный рисунок | `РИСУНКИ → Обычное изображение` |
|
||||
| Сетка изображений | `РИСУНКИ → Несколько панелей` |
|
||||
| Простая таблица | `ТАБЛИЦЫ → Простая таблица` |
|
||||
| Настраиваемая таблица | `ТАБЛИЦЫ → Управление шириной` |
|
||||
| Объединённые ячейки | `ТАБЛИЦЫ → Многострочная шапка` |
|
||||
| CSV / TSV | `ТАБЛИЦЫ → Таблица из CSV` |
|
||||
| Формулы | `ФОРМУЛЫ` |
|
||||
| Списки и текст | `СПИСКИ И ТЕКСТ` → все подразделы |
|
||||
|
||||
Каталог является частью автоматических тестов шаблона: примеры должны продолжать компилироваться после изменений библиотеки.
|
||||
Reference in new issue
Block a user