在LuaLaTeX中将整数值传递给TikZ

在LuaLaTeX中将整数值传递给TikZ

我想用 绘制一个矩形\luacode。对于矩形点,坐标值将从代码中获取。

我尝试了以下代码。对于矩形,点定义为'(0,0) and (1,1)。但我想将xmin, xmax, ymin, ymax值传递到\tikzpicture代码中。当我将相关行更改为时tp("\\draw [ultra thick] (xmin,ymin) rectangle (xmax,ymax);"),错误显示

Package PGF Math Error: Unknown function `xmin' (in 'xmin').

如何传递值?欢迎提出任何建议。

\documentclass{article}
\usepackage[utf8x]{inputenc}
\usepackage{luacode}
\usepackage{amsmath,tikz}

    \begin{document}
    \luaexec{
    tp = tex.print
    local xmin = 0
    local xmax = 1
    local ymin = 0
    local ymax = 1
    tp(xmin.." "..xmax.." "..ymin.." "..ymax)
    tp("\\\\")
    tp("\\begin{center}")
    tp("\\begin{tikzpicture}")
    tp("\\draw [ultra thick] (0,0) rectangle (1,1);")
    tp("\\end{tikzpicture}")
    tp("\\end{center}")
    }

    \end{document}

答案1

\luadirect&\luaexec命令和luacode&环境之间的行为有所不同luacode*,请参阅luacode手册。这是您利用了解这一​​点的示例。

%! lualatex mal-lua-to-tikz.tex
\documentclass{article}
%\usepackage[utf8x]{inputenc}
%\usepackage{amsmath}
\pagestyle{empty}
\usepackage{luacode}
\usepackage{tikz}
\begin{document}
\begin{luacode*}
tp = tex.print
local xmin = 0.5
local xmax = 3.5
local ymin = 0.5
local ymax = 1.5
local printme="The xmin, xmax, ymin and ymax are: "..xmin..", "..xmax..", "..ymin..", and "..ymax.."."
print("\n"..printme)
tp(printme)
tp("\\par\\medskip")
--tp("\\begin{center}")
tp("\\begin{tikzpicture}")
--tp("\\draw [ultra thick] (0,0) rectangle (1,1);")% An old version...
tp("\\draw [ultra thick, draw] ("..xmin..","..ymin..") rectangle ("..xmax..","..ymax..");")
tp("\\end{tikzpicture}")
--tp("\\end{center}")
\end{luacode*}
\end{document}

姆韦

相关内容