ここに小さな文書があります:
\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ページ)は、2.10マニュアルの201ページの内容を修正し(251ページ)、"name"プロパティがのみ「後続オプション」が適用されるノードを示す正しい方法。TikZ がコンテキストから正しいノードを自動的に識別するという提案は削除されました。
Andrew Swann と percusse に感謝します。