다음은 작은 문서입니다.
\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가 "지연 옵션"이 적용될 노드를 올바르게 식별하는지 확인하는 가장 확실한 방법은 "지연 옵션" 옵션 목록 내에 "이름" 속성(노드의 기존 이름 사용)을 제공하는 것입니다.
\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페이지의 내용을 수정하여 "name" 속성이오직"지연 옵션"이 적용될 노드를 나타내는 올바른 방법입니다. TikZ가 컨텍스트에서 올바른 노드를 자동으로 식별한다는 제안이 제거되었습니다.
Andrew Swann과 타악기에게 감사드립니다.