4 ms·
Pandoc does know how to expand LaTeX macros. For example, given the LaTeX \newcommand{\pair}[2]{\langle #1, #2\rangle} $$\pair{a^2}{\frac{\pi}{2}}$$ pando
by fiddlosopher 8mo ago
Pandoc does know how to expand LaTeX macros. For example, given the LaTeX
\newcommand{\pair}[2]{\langle #1, #2\rangle}
$$\pair{a^2}{\frac{\pi}{2}}$$
pandoc will give you the Typst
$ chevron.l a^2 \, pi / 2 chevron.r $
which is correct. Tylax, on the other hand, seems to have problems with this example, producing
$ angle.l^()frac(pi,)angle.r $
which does not compile with typst. Going the other direction, pandoc also understands typst scripting. For example, from
#let count = 8
#let nums = range(1, count + 1)
#let fib(n) = (
if n <= 2 { 1 }
else { fib(n - 1) + fib(n - 2) }
)
The first #count numbers of the sequence are:
#align(center, table(
columns: count,
..nums.map(n => $F_#n$),
..nums.map(n => str(fib(n))),
))
pandoc produces this LaTeX:
The first 8 numbers of the sequence are:
{\def\LTcaptype{none} % do not increment counter
\begin{longtable}[]{@{}llllllll@{}}
\toprule\noalign{}
\endhead
\bottomrule\noalign{}
\endlastfoot
\(F_{1}\) & \(F_{2}\) & \(F_{3}\) & \(F_{4}\) & \(F_{5}\) & \(F_{6}\) &
\(F_{7}\) & \(F_{8}\) \\
1 & 1 & 2 & 3 & 5 & 8 & 13 & 21 \\
\end{longtable}
}
With the same input, Tylax produces:
The first 8 numbers of the sequence are:
\begin{center}
\begin{tabular}{|c|}
\hline
\hline
\end{tabular}\end{center}
which is just an empty table.
- democat 8mo agoYou are absolutely right. Thank you for pointing this out! Regarding your questions: 1. The `\pair` issue: This is definitely a bug. My macro expander is based on text replacement and obviously cannot handle nested parameters. I will fix the recursive logic. 2. The `fib` loop: Pandoc seems to use `typst-hs`, which contains a complete Typst evaluator. Tylax is strictly designed as a static AST transformer. We haven't implemented the Typst virtual machine, so loops or recursive functions cannot be executed. This will be gradually improved later to make it more usable; my claim of "better macro support" was clearly premature. This was a big mistake on my part, and we will strive to achieve this goal in future updates! Thank you very much for your feedback and for pointing out the bug!