![為什麼我不能使用“延遲選項”為座標指定別名?](https://rvso.com/image/281511/%E7%82%BA%E4%BB%80%E9%BA%BC%E6%88%91%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%E2%80%9C%E5%BB%B6%E9%81%B2%E9%81%B8%E9%A0%85%E2%80%9D%E7%82%BA%E5%BA%A7%E6%A8%99%E6%8C%87%E5%AE%9A%E5%88%A5%E5%90%8D%EF%BC%9F.png)
這是一個小文檔:
\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 將自動從上下文中識別正確節點的建議已被刪除。
感謝安德魯·斯旺和打擊樂。