动态坐标名称

动态坐标名称

以下操作正常:

\documentclass[a4paper]{memoir}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\coordinate (fs-1-2-ne) at (7,8);
\node at (fs-1-2-ne) {Hello};

\end{tikzpicture}
\end{document}

但是,这个没有(它说“包 pgf 错误:没有已知的名为 fs-1-2 的形状”):

\documentclass[a4paper]{memoir}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}

\coordinate (fs-1-2-ne) at (7,8);

\pgfmathsetmacro{\prevcoordinate}{3-1};

\node at (fs-1-\prevcoordinate-ne) {Hello};

\end{tikzpicture}
\end{document}

我的用例是通过名称获取另一个现有坐标,该名称是从数学表达式中获得的。

答案1

您可以使用\pgfmathparse然后分配\pgfmathresult给宏。

\documentclass[a4paper]{memoir}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\pgfmathparse{int(3-1)}
\let\prevcoordinate\pgfmathresult
\coordinate (fs-1-2-ne) at (7,8);

\node at (fs-1-\prevcoordinate-ne) {Hello};

\end{tikzpicture}
\end{document}

正如 percusse 所指出的,您可以使用\pgfmathtruncatemacro(like \pgfmathtruncatemacro{\prevcoordinate}{3-1};) 来使您的方法奏效。这将确保输出是一个整数。

相关内容