
這是一個小文檔:
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
%\coordinate (A) at (0, 0); % Line A
%\node [coordinate] (A) at (0, 0) {}; % Line B
%\node (A) at (0, 0) {}; % Line C
%\coordinate [alias=AA] (A) at (0, 0); % Line D
%\node [coordinate, alias=AA] (A) at (0, 0) {}; % Line E
%\path (A) [late options = {alias=AA}]; % Line ABC
\coordinate (B) at (1, 0);
\draw (AA) -- (B);
\end{tikzpicture}
\end{document}
- 取消註解行 A 和 ABC,您會得到「套件 pgf 錯誤:沒有名為 AA 的形狀已知」。
- 重新註解 A 行並取消註解 B 行,您會得到相同的結果。
- 重新註記 B 行並取消註解 C 行,文件編譯成功。
- 重新註解 C 行和 ABC 行並取消註解 D 行,文件編譯成功。
- 重新註解 D 行並取消註解 E 行,文件編譯成功。
似乎如果一個節點是形狀座標的,你可以給它一個別名,但不能使用後期選項機制。如果您嘗試使用較晚的選項來執行此操作,TikZ 不會報告錯誤,但它不會執行任何操作。
我正在使用 PGF/TikZ 版本 2.10。
答案1
確保 TikZ 正確識別要套用「late options」的節點的最簡單方法是在「late options」選項清單中提供「name」屬性(使用節點的現有名稱):
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0, 0);
\path [late options = {name=A,alias=AA}];
\coordinate (B) at (1, 0);
\draw (AA) -- (B);
\end{tikzpicture}
\end{document}
如問題中的範例所示,TikZ 隱式辨識節點的能力(如 2.10 手冊所建議的)有點容易出錯。 3.00版本手冊(可透過下載TikZ/PGF 3.00版本取得)該專案的 Sourceforge 頁面)修改(第 251 頁)2.10 手冊第 201 頁的內容,建議「name」屬性是僅有的指示要套用「後期選項」的節點的正確方法; TikZ 將自動從上下文中識別正確節點的建議已被刪除。
感謝安德魯·斯旺和打擊樂。