![Почему я не могу присвоить координате псевдоним, используя «поздние опции»?](https://rvso.com/image/281511/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20%D1%8F%20%D0%BD%D0%B5%20%D0%BC%D0%BE%D0%B3%D1%83%20%D0%BF%D1%80%D0%B8%D1%81%D0%B2%D0%BE%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D0%B5%20%D0%BF%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%BD%D0%B8%D0%BC%2C%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8F%20%C2%AB%D0%BF%D0%BE%D0%B7%D0%B4%D0%BD%D0%B8%D0%B5%20%D0%BE%D0%BF%D1%86%D0%B8%D0%B8%C2%BB%3F.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 правильно идентифицирует узел, к которому должны применяться «поздние опции», — это указать свойство «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 автоматически определит правильный узел из контекста, было исключено.
Спасибо Эндрю Суонну и ударным.