如何使用 LuaLaTeX 在位置逐字插入 Lua 脚本的输出?

如何使用 LuaLaTeX 在位置逐字插入 Lua 脚本的输出?

我正在使用 TikZ 的图形布局引擎,我很困惑为什么

\graph {1, 2, 3, 2--3};

绘制所需的图形,同时

\graph {\directlua{dofile("foo.lua")}};

当 foo.lua 仅包含

tex.print("1, 2, 3, 2--3")

我显然对\directlua……感到非常困惑。

编辑:在后一种情况下,我只得到文本“1、2、3、2-3”,就好像我的图包含带有该标签的单个节点一样。

编辑2:这是一个接近最小的工作示例。抱歉没有早点发布。

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{graphs, graphdrawing}

\begin{document}

This works as expected:\\
\begin{tikzpicture}
  \graph {1,2,3, 2--3};
\end{tikzpicture}

\vspace{1cm}

This does not:\\
\begin{tikzpicture}
  \graph {\directlua{dofile("foo.lua")}};
\end{tikzpicture}

\end{document}

文件 foo.lua 由单行组成tex.print("1,2,3, 2--3")

使用 lualatex 编译 TeX 文件会产生以下内容:

编译结果

答案1

您无法隐藏扩展后面的 tikz 语法,无论是 lua 还是 tex 宏。这有效:

\begin{tikzpicture}
  \expandafter\graph\expandafter {\directlua{dofile("foo.lua")}};
\end{tikzpicture}

相关内容