「late options」を使用して座標にエイリアスを指定できないのはなぜですか?

「late options」を使用して座標にエイリアスを指定できないのはなぜですか?

ここに小さな文書があります:

\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}
  1. 行 A と ABC のコメントを解除すると、「パッケージ pgf エラー: AA という名前の図形が認識されません。」というメッセージが表示されます。
  2. 行 A を再度コメント化し、行 B のコメントを解除すると、同じ結果が得られます。
  3. 行 B を再度コメント化し、行 C のコメントを解除すると、ドキュメントは正常にコンパイルされます。
  4. 行 C と ABC を再度コメント化し、行 D のコメントを解除すると、ドキュメントは正常にコンパイルされます。
  5. 行 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 に感謝します。

関連情報