我正在尝试使用球面极坐标进行绘制tikz-3dplot
,但我不明白某些\td...
命令如何解析它们的参数。我所做的是定义一个图片,它接受 2 个参数(使用/.style
参数)并根据它们定义一个坐标。然后我想将一个宏作为参数之一传递,这就是有趣的事情发生的地方。
如果我将宏包装在 {} 周围(我猜这是将其与以下参数分开的首选方式),那么一切都很好,但如果我写 \{}(在正常的 TeX 中也应该将其与以下文本分开并且不会引发错误),那么 tikz-3dplot 命令会失败,而 \node 等命令可以工作。如果这不清楚,我希望 MWE 有所帮助:
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-3dplot}
\begin{document}
\def\aj{-4} % gives an error Undefined control sequence if I use \aj{}
\pgfmathsetmacro{\aj}{1} % same as above
%\def\aj#1{-40} % works
\tdplotsetmaincoords{70}{110}
\begin{tikzpicture}[tdplot_main_coords,
pics/state/.style args={#1 #2}{code={
\node at (#1,#2) {}; % this works
% this line also gives an error if I use \aj{}
% \tdplotsetcoord{psi}{1}{#1}{#2}
}},
]
\pic[red] {state=\aj{} 2};
\end{tikzpicture}
\end{document}