我想用 绘制一个矩形\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}