我正在使用 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}