Перейти к содержанию

Бэкенды: Typst и LaTeX

snowcite поддерживает два бэкенда для генерации документов. Выбор фиксируется при init_project. Смена бэкенда в середине проекта требует явного вызова set_backend(new_backend, confirm_wipe_sections=True), поскольку уже написанные разделы хранятся в синтаксисе конкретного бэкенда и не переносятся автоматически.

Краткое руководство

Случай Рекомендация
Текст на кириллице Typst
Строгое соответствие ГОСТ 7.32-2017 LaTeX (standard="gost")
Предоставленный вузом шаблон .tex LaTeX
Быстрая итерация Typst (инкрементальная компиляция)
Медицина, Vancouver Любой (CSL и biblatex-vancouver поддерживаются)
IEEE, ACM Любой (шаблоны доступны для обоих)

Typst

Выбор по умолчанию.

Сильные стороны:

  • Поддержка кириллицы работает без дополнительных настроек — ни \babelfont, ни T2A, ни подбор шрифтов не требуются.
  • Распространяется одним статическим исполняемым файлом (brew install typst), без дистрибутивов TeXLive.
  • Инкрементальная компиляция занимает секунды даже для документов на 200 страниц.
  • Современные сообщения об ошибках позволяют локализовать проблему без анализа .log.
  • Нативная поддержка CSL для стилей библиографии через встроенный Hayagriva.

Ограничения:

  • Экосистема моложе, чем у LaTeX. Нишевые шаблоны (юридическая типографика, экзотические требования к набору) могут отсутствовать.
  • Поддержка ГОСТ 7.32-2017 реализуется через пакет modern-g7-32, который активно развивается. При строгих требованиях к ГОСТу рекомендуется LaTeX.

Библиография. snowcite генерирует файл в формате Hayagriva. Конструкция #bibliography("references.yml", style: "<csl>") принимает любое имя CSL-стиля.

LaTeX

Подходит, если у вас есть вузовский .tex-шаблон, если требуется строгое соответствие ГОСТу или если проект ведётся в biblatex-центричном процессе.

Компилятор. Используется только tectonic. Системный TeXLive не поддерживается: пути шрифтов и набор пакетов отличаются. Tectonic работает автономно и подгружает пакеты по требованию.

Кириллица в tectonic. Шаблоны plain.tex.j2 и gost.tex.j2 используют fontspec и \babelfont:

\usepackage{fontspec}
\usepackage[russian,english]{babel}
\babelfont{rm}[Ligatures=TeX]{CMU Serif}
\babelfont{sf}[Ligatures=TeX]{CMU Sans Serif}
\babelfont{tt}{CMU Typewriter Text}

Шрифты семейства CMU включены в бандл tectonic. Классическая схема с \usepackage[T2A]{fontenc} и 8-битным Computer Modern для XeTeX tectonic не подходит.

Библиография. Бэкенд зафиксирован на bibtex: утилита biber в бандл tectonic не входит.

Смена бэкенда

Если при онбординге выбран не тот бэкенд, set_backend(new_backend, confirm_wipe_sections=True) удаляет содержимое section_content (синтаксис уже написанных разделов привязан к конкретному бэкенду) и сохраняет outline и skeleton. После этого разделы генерируются заново под новым бэкендом.

Доступные стандарты

Для обоих бэкендов доступны plain и gost. Шаблоны IEEE, ACM, APA, Vancouver, MLA и Chicago планируются; они появятся в snowcite/templates/. Pull requests приветствуются.