Tectonic и SVG
2025-10-03 12:17Как нарисовать дерево Штерна—Броко? Задействуем TeX для прикола. Вот такой малопонятный код мне Грок насоветовал.шашки ТеХ. Когда-то по молодости много ним занимался, и всегда с ТеХом было сложно. Но давеча появился новый инструмент: Tectonic. Народ упёрся и наваял (на Rust!) поверх старого доброго кнутовского ТеХа удобную обёртку. Ставится командой brew install tectonic на маке, или sudo snap install tectonic в Линуксе. Превращаем .tex в .pdf:

Если в теховском исходнике в третьей строчке с конца заменить {5} на {8}, получим восемь уровней. Кликайте на картинку, зумьте и проворачивайте вправо-влево:

\documentclass{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
Stern Brocot/.style n args={5}{%
content=$\frac{\number\numexpr#1+#3\relax}{\number\numexpr#2+#4\relax}$,
if={#5>0}{% true
append={[,Stern Brocot={#1}{#2}{#1+#3}{#2+#4}{#5-1}]},
append={[,Stern Brocot={#1+#3}{#2+#4}{#3}{#4}{#5-1}]}
}{}}% false (empty)
[,Stern Brocot={0}{1}{1}{0}{5}]
\end{forest}
\end{document}
Давно не брал я в руки Полученный файл PDF можно для удобства превратить в векторный рисунок SVG. Его можно смотреть любым браузером или вставлять в документы:tectonic tree.tex
Здесь pdftocairo создаёт SVG, а svgcleaner его оптимизирует, уменьшая размер. Вот такое пятиуровневое дерево получается:pdftocairo -svg tree.pdf tree1.svg svgcleaner tree1.svg tree2.svg
Если в теховском исходнике в третьей строчке с конца заменить {5} на {8}, получим восемь уровней. Кликайте на картинку, зумьте и проворачивайте вправо-влево:
