Tikz \def 算术除法

Tikz \def 算术除法

我希望这是一个微不足道的问题,但却花费了我很多时间。我正在画一个简单的TikZ图。我定义了一些变量来指定coordinates线条nodes等等。

\def \Xa {4};
and then I can do
\def \Wdth {6};
\def \Xb (\Xa+\Wdth};

但以下不起作用,它运行但使用了错误的值。

\def \Xmid {\Xa+\Wdth/2};

第二个问题是为什么我不能使用\X1诸如\Xa

答案1

如果不了解你正在尝试做什么,很难说,但我怀疑你正在以错误的方式进行操作。如果你想要一种简单的方法来访问或重用坐标 蒂克兹那么您应该使用命名节点或坐标:

\coordinate (O) at (0,0);
\coordinate (A) at (2,3);
\draw (O)--(A);
\node (B) at (3,2){B here};
\draw(A)--(B);

如果你想设置节点的宽度等,或者任何蒂克兹对象,那么\tikzset就是你的朋友:

\tikzset{
  mynode/.style = {
     draw = blue,
     fill = yellow!10,
     minimum width = 20mm
  }
}

\begin{tikzpicture}
  \node[mynode] at (3,3){stuff}
\end{tikzpicture}

重要的是,您可以在里面包含参数\tikzset,也可以定义pics,这是重用 tikz 代码的非常强大的方法。

最后,如果您确实想使用这样的变量进行计算,那么对于整数计算,您可以使用:

\numexpr\Xa+\Wdth\relax

对于非整数计算

 \pgfmathparse{\Xa+\Wdth/2}\pgfmathresult

或者,如果您需要将结果保存在宏中,

\pgfmathsetmacro\Xmid{\Xa+\Wdth/2}

当然,您\pgfmathparse也可以使用它进行整数计算,但如果您想要一个诚实的整数,那么建议明确声明这一点:

\pgfmathparse{int(\Xa+\Xb)}\pgfmathresult

相关内容