"늦은 옵션"을 사용하여 좌표에 별칭을 지정할 수 없는 이유는 무엇입니까?

"늦은 옵션"을 사용하여 좌표에 별칭을 지정할 수 없는 이유는 무엇입니까?

다음은 작은 문서입니다.

\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가 "지연 옵션"이 적용될 노드를 올바르게 식별하는지 확인하는 가장 확실한 방법은 "지연 옵션" 옵션 목록 내에 "이름" 속성(노드의 기존 이름 사용)을 제공하는 것입니다.

\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과 타악기에게 감사드립니다.

관련 정보