我正在尝试进一步了解 LuaLaTeX,然后遇到了这个介绍。作者声称以下代码不起作用:
% this code will not work
\directlua{
tex.print("\\begin{tabular}{lll}")
tex.print("1 & a & Test A \\\\")
tex.print("2 & b & Test B \\\\")
tex.print("\\end{tabular}")
}
不过,我已经在本地机器上尝试过了,使用编译latexmk -pdflatex test.tex
工作正常。此外,LaTeX 生成的表格看起来与通过 Lua 生成的表格完全相同。这是我的代码:
\documentclass{article}
\begin{document}
Table generated by Lua:
\directlua{
tex.print("\\begin{tabular}{lll}")
tex.print("1 & a & Test A \\\\")
tex.print("2 & b & Test B \\\\")
tex.print("\\end{tabular}")
}
Table generated by \LaTeX
\begin{tabular}{lll}
1 & a & Test A \\
2 & b & Test B \\
\end{tabular}
\end{document}
我做错了什么吗?为什么我的代码不是产生错误?
答案1
您引用的页面在编写时是正确的,但近年来,更多的乳胶命令已经变得更加强大,在这种情况下,它\\
是用 e-tex \protected
(而不是 LaTeX \DeclareRobustCommand
机制)完成的,因此它保持\\
原样\directlua
具体来说,这一变化是在 2020 年 1 月做出的