Новость

Релиз Typst 0.15 подчинил верстке оси вариативных шрифтов и чистый MathML

The image shows a code snippet that defines a variable named "f_faunces" with a value of 100. The code also includes a comment indicating that the variable is a float. The code is set to the font "Frakuces" in a bold, sans-serif font.
Фото: Typst

Хвост буквы «р» больше не должен пробивать нижнюю границу ячейки в плотной таблице. В коде достаточно выставить одно значение для оси YTDE, и выносной элемент аккуратно поджимается ровно на столько пунктов, сколько требует сетка. Июньский релиз Typst 0.15 превратил работу с вариативной типографикой в штатную инженерную операцию: система верстки, написанная на Rust под лицензией Apache-2.0, научилась напрямую управлять скрытыми параметрами шрифтовых файлов.

До сих пор верстальщики в кодовых средах смотрели на вариативные гарнитуры с завистью к веб-разработчикам. Теперь вариативность стала частью базового синтаксиса через параметр variations внутри функции text(). Typst берет один файл и позволяет вытягивать из него любые промежуточные состояния без подгрузки десятка отдельных начертаний. Разработчики проверили механику на двух показательных примерах с непрерывными и дискретными осями. Первый — тяжеловес Roboto Flex с его 13 осями, где наряду со стандартными оптическими размерами можно регулировать длину нисходящих элементов под табличные сетки. Второй — экспериментальный Zycon: гарнитура из 17 графических символов с шестью осями, меняющими фазы луны и параметры графических анимаций. По сути, иконки и микроиллюстрации теперь трансформируются прямо в строке набора.

The image presents a playful arrangement of text and images. The text, written in a sans-serif font, reads "A penguin jumped quietly. A penguin jumped quietly. A penguin jumped quietly." The text is arranged in three lines, with the first line being the longest and the third line being the shortest. The text is black a
Фото: Typst

Формулы без скриптов и пакетный экспорт

Второй тектонический сдвиг версии 0.15 произошел в веб-выводе. Typst давно заглядывается на территорию браузеров, но раньше математический рендеринг упирался либо в растровые картинки, либо в подключение тяжелых скриптов. В свежей сборке экспериментальный генератор HTML научился собирать формулы на чистом MathML. Браузер рисует математику нативно, без костылей вроде MathJax и без задержек отрисовки. Функция пока спрятана за флагом командной строки --features html, но вектор понятен: верстка научных и технических лонгридов уходит от громоздкого стека.

С этим обновлением тесно связана функция пакетного вывода, получившая название Bundle. Она активируется связкой флагов --features html,bundle --format bundle и снимает головную боль синхронизации форматов. Из единого исходника проект компилирует сразу целую экосистему документов:

  • многостраничный веб-сайт с перекрестной навигацией;
  • сопутствующий сверстанный PDF-документ с общими текстовыми фрагментами;
  • комплект из слайдов для публичного доклада и академического препринта с едиными переменными.

При этом внутри связки корректно работают как ссылки между разными документами пакета, так и внутренняя навигация по разделам. Исправили опечатку в исходном файле — правка разошлась и по сайту, и по презентации, и по печатному буклету.

Академическая структура и полиграфический контроль

Для сложных многостраничных изданий появилась поддержка нескольких библиографических списков внутри одного издания. Функция bibliography() принимает файлы баз данных вроде .bib и теперь позволяет закреплять отдельный список литературы за каждой главой. Если в вызове указать параметр group: none, нумерация цитирований внутри каждого нового раздела обнулится и начнется с единицы. Авторам академических сборников больше не придется вручную делить базу на куски через скрипты автоматизации.

Требования к качеству финального файла тоже ужесточили. Движок получил механизм одновременной валидации нескольких стандартов PDF — как архивных, так и стандартов доступности для людей с ограничениями восприятия. Компилятор отслеживает несовместимые связки и сразу выдает предупреждения либо блокирует сборку. К примеру, если верстальщик затребует спецификацию PDF 1.7 для архива PDF/A-1b, система напомнит, что этот архивный стандарт жестко привязан к версии 1.4. При включении стандарта доступности UA-1 движок откажется компилировать макет, пока в коде явно не пропишут метаданные документа через директиву set document(title: [...]).

The image shows a screenshot of a PDF file with a page range of All pages. The PDF version is set to Automatic (PDF 1.7). The PDF standard is set to PDF/A-1b. The page range is set to All pages. The tagged PDF is set to Pretty-print. The project archive is set to Preview. The page range is set to All pages. The PDF ver
Фото: Typst

В число менее громких, но практичных дополнений вошли:

  • прямая поддержка плашечных цветов (spot colors), необходимая для точной полиграфии и шелкографии;
  • встроенные методы map и filter в собственном языке сценариев, упрощающие обработку данных;
  • подробные диагностические отчеты о сбоях сходимости верстки (convergence diagnostics), когда взаимное расположение блоков зацикливает расчет страницы.

Масштаб проделанной работы подчеркивает документация: официальный PDF-мануал к версии 0.15 разросся до 26 МБ. Вокруг проекта сложилось живое сообщество — на GitHub зафиксировано 460 контрибьюторов, а центральный каталог Typst Universe перевалил за 1500 пользовательских пакетов и шаблонов. При этом авторы сохраняют жесткую политику контрибьютинга: код, сгенерированный языковыми моделями, принципиально отклоняют при ревью пулл-реквестов. Развитием системы руководит коммерческая компания, поэтому баланс между опенсорсной гибкостью и коммерческой стабильностью выдерживается строго.

Видео: Typst

Для арт-директора или дизайнера изданий Typst 0.15 выглядит как серьезный повод перестать воспринимать кодовую верстку как удел сугубо математических препринтов. Возможность крутить оси вариативного гротеска из скрипта и тут же генерировать согласованный сайт и печатный релиз возвращает типографике ту пластичность, которую мы привыкли видеть только в графических редакторах. Программируемая верстка наконец заговорила на языке современной формы.

Ещё новости

Все новости →