将 pgfmathifthenelse 的结果设置为变量

将 pgfmathifthenelse 的结果设置为变量

因此,我尝试使用另一个变量的值来设置一个变量。基本上如下所示:

\pgfmathsetmacro{\newVar}{\pgfmathifthenelse{\oldVar==0}{(\x/2)}{\x}}

但无论我做什么,我似乎都无法正确理解语法。我假设它与扩展内容有关,但无法弄清楚什么是需要扩展的,什么是不需要扩展的。我找不到任何有意义的东西。我见过的所有人都使用 if/then 来实际输出内容,而不是将它们设置为变量。有什么想法吗?

答案1

\pgfmathifthenelse是将结果写入的独立版本\pgfmathresult,设置宏需要评估内联数学函数,例如

 \pgfmathsetmacro{\newVar}{ifthenelse(\oldVar==0,(\x/2),\x)}

或更短

 \pgfmathsetmacro{\newVar}{(\oldVar==0?(\x/2):\x)}.

相关内容