手册第 127 页luatex
有示例
before\directlua{tex.sprint("\\relax")tex.sprint(" inbetween")}after
但双斜线会引发错误。同样,单斜线也存在同样的问题。
显然,tex
或者luatex
不是\\
按照我期望的方式处理。(我认为tex
是试图将其解析为宏。)
那么,还需要什么才能使样本运行呢?
答案1
这只是为了演示目的。参考手册在编写时没有考虑任何特定的格式/宏包。因此它不知道是否\\
已定义。您可以通过将代码放入lua代码*环境来自lua代码包裹:
\documentclass{article}
\usepackage{luacode}
\begin{document}
before\begin{luacode*}
tex.sprint("\\relax")tex.sprint(" inbetween")
\end{luacode*}
after
\end{document}
但是(我一直强调这一点)你应该把所有的 Lua 代码放在一个单独的文件中。这样你就不会惹上麻烦了。