LaTeX даёт огромный контроль над вёрсткой, но обычно требует TeX Live, долгой сборки и терпимости к сообщениям об ошибках. Typst — компактный компилятор с собственным языком разметки: один бинарник, мгновенный предпросмотр, понятные правила стилей и нормальная работа с таблицами. Для отчётов, статей, резюме и методичек он уже вполне пригоден; для журналов с обязательным LaTeX-классом — не всегда.
Установка и шрифты
cargo install typst-cli
typst --version
typst fonts | grep -i "PT Serif"
Помимо cargo есть готовые сборки на GitHub Releases, brew install typst, winget install Typst.Typst и пакеты дистрибутивов. Компилятор не требует root и не тянет гигабайты пакетов: библиотеки скачиваются при первом импорте и кэшируются. Версия 0.15.x уже умеет переменные шрифты, HTML-экспорт и несколько PDF-стандартов, но синтаксис базовых документов остаётся стабильным.
Если нужного шрифта нет в системном каталоге, укажите папку явно: typst compile --font-path ./fonts report.typ. Для русского текста проверьте наличие шрифта с кириллицей, например PT Serif, Liberation Serif или DejaVu Serif.
Минимальный документ
#set document(title: "Отчёт", author: "Иван Петров")
#set page(paper: "a4", margin: 2.5cm, numbering: "1")
#set text(font: ("PT Serif", "Liberation Serif"), size: 11pt, lang: "ru")
#set par(justify: true, leading: 0.65em)
#set heading(numbering: "1.1")
= Введение
Это первый абзац. Пустая строка разделяет абзацы, а разметка похожа на Markdown.
== Подраздел
Формула записывается как $E = m c^2$, а ссылки на разделы разберём ниже.
Строки с #set задают значения по умолчанию для всего документа. lang: "ru" включает русские правила переносов и кавычек, justify выравнивает текст по ширине, а numbering нумерует страницы. Заголовки начинаются с =, как в Markdown, но их уровень задаётся количеством знаков.
Файл сохраняется с расширением .typ, сборка — typst compile report.typ report.pdf. Если имя выходного файла не указать, PDF появится рядом с исходником.
Стили, шаблоны и повторное использование
#show heading.where(level: 1): it => block(
above: 1.5em,
below: 0.8em,
text(weight: "bold", size: 14pt)[#it],
)
#show link: underline
#show raw.where(block: true): block.with(
fill: luma(245),
inset: 8pt,
radius: 4pt,
)
Правила #show меняют оформление элементов без правки каждой таблицы или заголовка. where сужает выборку, block.with создаёт функцию с предустановленными параметрами, а it — это сам элемент. Такой подход заменяет десятки макросов LaTeX и легче читается.
Готовые шаблоны ставятся командой typst init @preview/charged-ieee my-paper: она создаёт каталог с примером, библиографией и файлом typst.toml. Свой шаблон — это обычный .typ с функцией, которую применяют через #show: template.with(...). Для диссертаций и ГОСТ-оформления шаблон часто приходится адаптировать под требования кафедры.
Таблицы, рисунки и формулы
#figure(
table(
columns: (1fr, 1fr, auto),
table.header([Метрика], [Значение], [Ед.]),
[Время сборки], [0,8], [с],
[Размер PDF], [240], [КБ],
),
caption: [Результаты теста],
) <fig:results>
$ sum_(i=1)^n i = (n(n+1))/2 $
Таблицы в Typst — это полноценные ячейки с содержимым, а не текст с амперсандами. table.header помечает заголовок и повторяет его на новой странице; 1fr задаёт гибкую ширину колонки. figure добавляет подпись и позволяет ссылаться на объект через @fig:results.
Математика включается долларами. Режим $ ... $ с пробелами даёт выключную формулу, а $x$ — строчную. Поддерживаются дроби, суммы, матрицы, греческие буквы и функции вроде cases. Для рисунков используйте image("plot.png", width: 80%); путь указывается относительно исходного файла.
Библиография и ссылки
#bibliography("refs.bib", style: "ieee")
// или для ГОСТ:
#bibliography("refs.bib", style: "styles/gost-r-7-0-5-2008-numeric.csl")
Typst читает обычный BibTeX и собственный формат Hayagriva. Ссылка @key одновременно создаёт цитату и запись в списке литературы; #cite(<key>, form: "prose") даёт вариант «Автор (год)». Встроенных CSL-стилей больше восьмидесяти, включая IEEE, APA и Vancouver. Для ГОСТ скачайте подходящий CSL-файл из репозитория Citation Style Language и укажите путь к нему.
Ссылки на разделы работают через метки: = Введение <intro>, затем @intro. Это удобнее ручной нумерации: при вставке раздела номера пересчитываются автоматически.
Сборка, предпросмотр и экспорт
typst compile report.typ report.pdf
typst watch report.typ
typst compile --pdf-standard a-2b report.typ archive.pdf
typst compile --format png --ppi 200 --pages 1 report.typ cover.png
typst watch пересобирает PDF при изменении файла и показывает ошибки с номерами строк. Для архивных документов используйте PDF/A: --pdf-standard a-2b; для доступности — ua-1, но тогда нужны осмысленные подписи и корректная структура заголовков. Несколько стандартов можно перечислить через запятую, если они совместимы.
PNG и SVG пригодятся для вставки в презентации и веб-страницы. Флаг --root ограничивает доступ к файлам проектом, что полезно при сборке шаблонов из чужого каталога. Для проверки доступных шрифтов и версии есть typst fonts и typst --version.
Переход с LaTeX и ограничения
Pandoc умеет преобразовать простой .tex в .typ: pandoc report.tex -o report.typ. Формулы и таблицы переносятся не идеально, поэтому результат придётся просмотреть. Пакеты LaTeX вроде graphicx или amsmath в Typst не нужны — соответствующие возможности встроены.
Ограничения стоит знать заранее. Экосистема Typst моложе: меньше готовых шаблонов для конкретных журналов и меньше библиотек для сложной графики, хотя CeTZ активно развивается. Смена полей страницы вызывает разрыв страницы, а не плавную подстройку. Некоторые издатели до сих пор принимают только LaTeX-исходники.
- Проверьте, принимает ли журнал PDF, собранный не в LaTeX.
- Сложные схемы и графики сначала оцените в CeTZ или встройте SVG.
- Для библиографии заранее подготовьте CSL под нужный ГОСТ или стиль.
- Шрифты с кириллицей лучше положить в проект и указать
--font-path.
Итог
Typst — практичная альтернатива LaTeX для повседневных документов: он быстро собирается, не требует огромной установки и даёт понятные ошибки. Начните с одного .typ, настройте шрифт и поля, затем добавьте таблицы, формулы и библиографию. Если издатель требует LaTeX-класс, используйте Typst для черновиков, отчётов и внутренних документов, а финальную вёрстку оставьте в LaTeX.