使用 \edef 定义宏并将给定节点的 x 分量分配给它

使用 \edef 定义宏并将给定节点的 x 分量分配给它

假设我们在 Tikz 中有一个节点,并且我们希望有一个名为 \myx 的宏,使用 \edef 将节点的 x 分量分配给 \myx。以下是我的代码:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\draw [help lines] (0,0) grid (3,4);
\node  at (1,1) (A){$A$};
\node  at (2,3) (B){$B$};
\node  at ($(A)+(B)$) (C){$C$};
\fill[red] let \p1 = (C),
in
(\x1,\y1) circle [radius=0pt]
;
\edef \myx{\x1}
\node at (0,0) {\myx};
\end{tikzpicture}

\end{document}

我知道变量 \x1 在 \fill 之外不可知。但是我们如何使用 \edef 将 \x1 分配给 \myx?

答案1

使用mathtikz 库:

\documentclass{standalone}
  \usepackage{tikz}
  \usetikzlibrary{calc}
  \usetikzlibrary{math}
  \begin{document}
     \begin{tikzpicture}
        \draw [help lines] (0,0) grid (3,4);
        \node  at (1,1) (A){$A$};
        \node  at (2,3) (B){$B$};
        \node  at ($(A)+(B)$) (C){$C$};
        \fill[red] (C) circle [radius=0pt] ;

       \tikzmath{
          coordinate \c;
          \c=(C);
          \x1=\cx;
       }

      \edef \myx{\x1}
      \node at (0,0) {\myx}; % or \node at(0,0) {\x1};
  \end{tikzpicture}

\end{document}

相关内容