Почему я не могу присвоить координате псевдоним, используя «поздние опции»?

Почему я не могу присвоить координате псевдоним, используя «поздние опции»?

Вот небольшой документ:

\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 правильно идентифицирует узел, к которому должны применяться «поздние опции», — это указать свойство «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) содержимое страницы 201 руководства 2.10, чтобы указать, что свойство "name" являетсятолькоправильный способ указания узла, к которому следует применить «поздние опции»; предположение о том, что TikZ автоматически определит правильный узел из контекста, было исключено.

Спасибо Эндрю Суонну и ударным.

Связанный контент