tikz-3dplot 如何解析键?

tikz-3dplot 如何解析键?

我正在尝试使用球面极坐标进行绘制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}

相关内容