以下操作正常:
\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};
) 来使您的方法奏效。这将确保输出是一个整数。