Gribouille 0.3.0: точный контроль осей и автоматическое наложение площадей в Typst

Gribouille 0.3.0: точный контроль осей и автоматическое наложение площадей в Typst

Gribouille это библиотека для создания грамматических графиков в Typst, языке профессиональной типографии. Версия 0.3.0 сфокусирована на трёх изменениях: команда guides() позволяет показывать или скрывать отдельные части осей независимо от темы, функция compose() теперь может иметь собственную тему для общих элементов, а geom-area() по умолчанию автоматически составляет группы с разными значениями X. Завершает релиз десятка исправлений в отображении легенд и аннотаций.

Ключевые факты

  • Новая команда guides(x: none) скрывает тики и метки без изменения темы. Ось и сетка остаются видимы
  • Параметр theme: в compose() применяет стиль ко всей композиции и к отдельным панелям, которые не определили свою тему
  • geom-area() теперь по умолчанию складывает группы и перерезает их на общую сетку (вместо требования явных аргументов)
  • Аннотации могут выходить за границы графика с помощью clip: false
  • Исправлены горизонтальные легенды с выравниванием влево/вправо, поддержка легенд для непрерывных шкал и ошибки в масштабировании

Ред. Relase notes читаются как список частных случаев, а не глобальное переосмысление; понимание требует примеров. Автор их предусмотрел, хорошо.

Почему это важно

Typst становится популярен в среде учёных и инженеров как альтернатива LaTeX. Но без удобных встроенных инструментов для графиков приходится встраивать картинки или писать сложный код. Gribouille предоставляет декларативный синтаксис для строения графиков, похожий на ggplot2 в R. Лучшее управление осями и легендами означает, что исследователи тратят меньше времени на форматирование и больше на данные.

Ред. Типичная боль: вытащить легенду с графика в документе, и вот уже полчаса меняешь CSS вместо работы.

Кому это важно

В первую очередь разработчикам, которые пишут отчёты в Typst: инженерам, учёным, аналитикам, авторам книг с формулами. Также всем, кто готовит презентации или статьи с графиками в Typst и устал вручную подгонять размеры, цвета и расположение легенд. Косвенно важно тем, кто выбирает инструмент для своего конвейера документов: если вы колеблетесь между LaTeX и Typst, это свидетельство того, что Typst уже готов для серьёзных данных.

Ред. Внезапно: проект development без финансирования (spare-time), но инженерия качественная; идея берётся из заметок, доказывается примерами.

Как это применить

Если вы уже пишете в Typst, обновитесь: синтаксис новых функций прост, обратной совместимости нет только для plot(..., defer: true)defer(plot...), но это легко менять автоматически или вручную. Для тех, кто начинает с нуля: установите gribouille:0.3.0 через Typst Universe, посмотрите примеры в посте (все графики скомпилены свежее, не картинки), начните с простых сюжетов. Если в вашем документе много графиков с близкими темами, перейдите с повторения theme: в каждой панели на передачу theme: в compose() один раз.

Ред. Инструкция конкретна (версия, синтакс, путь обновления), но ничего не говорит про цену: библиотека бесплатна.

Можно ли доверять

Автор: Микаэль Канусь (Michaël Canouil), инженер с публичной историей в R-сообществе и открытыми проектами. Gribouille публикуется в Typst Universe (официальный реестр пакетов), но это не значит, что Typst Inc. её поддерживает: это муниципальный реестр. Версионирование ясно: 0.3 говорит, что API может менять, и релиз-ноты честны про breaking change. Документация включает функциональную справку в редакторе (docstring для Tinymist). Минус: проект финансируется за счёт автора, а не компании, так что в случае срочной ошибки ответ будет не в 4 часа.

Ред. Open source на выживание: благодарность и issue tracker вместо SLA; логика.

Риски и подводные камни

Breaking change в plot()defer(): если у вас большой проект с plot(..., defer: true), нужно переписать. Можно скриптом, но это требует теста.

Панели в compose() больше не имеют width/height: ваш код с явным размером панели внутри compose() сломается. Размер теперь задаёт сама композиция.

API нестабилен: версия 0.x означает, что в 0.4 или 0.5 синтаксис может измениться снова. Мерж обновления в проекты, которые меняют редко, может быть рискован.

Производительность: на больших наборах данных и полусотне панелей в одной композиции нужно проверить память и время компиляции в Typst.

Ред. Гроздь мелких ограничений, но ни одного скрытого: документация честна.

«Гробиль это проект на авторской тягле, и API до сих пор стабилизируется. Баг-репорты и идеи очень приветствуются на issue tracker.»

— Michaël Canouil, Gribouille launch post