我正在使用非常棒的 TikZ 数学库。
然而,我无法理解这一点(参见 MWE)。
我遗漏了文档中的一些内容(https://tikz.dev/library-math)?
\documentclass[tikz]{standalone}
\usetikzlibrary{math}
\begin{document}
\begin{tikzpicture}
\tikzmath{
\a = 2;
\b = 1;
}
\draw[step=1cm,gray,very thin] (0,0) grid (3,2); % just for orientation
\draw (\a, \b) circle (2pt); % no problem here, so \a and \b are fine
\draw [->] (2, 0) arc (0:360:2 and 1); % no problem here
%\draw [->] (2, 0) arc (0:360:\a and \b); % gives me an error after removing comment - why?
\end{tikzpicture}
\end{document}
答案1
您可能没有错过手册中的任何内容,但您应该注意到 Ti钾Z 解析器需要理解许多不同的语法用法,因此通常需要通过将宏或即时计算括在花括号中来帮助它。在这种情况下,宏后面的空格会被\a
吞噬(因此严格来说,这不是解析器的问题,但将宏括在花括号中仍然会有所帮助):
在这种情况下,以下方法可以解决问题:
\draw [->] (2, 0) arc (0:360:{\a} and {\b});
但是,请注意,该函数有一个较新的语法arc
,它还允许您省略花括号。上面的代码可以写成:
\draw [->] (2, 0) arc[start angle=0, end angle=360, x radius=\a, y radius=\b];