핀을 기준으로 라벨 위치를 설정하는 방법은 무엇입니까?

핀을 기준으로 라벨 위치를 설정하는 방법은 무엇입니까?

고정된 레이블이 부착된 빈 노드의 TikZ 그림이 포함된 다음 LaTeX 원고를 고려하세요.

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
  \node [draw,pin=x] {};
\end{tikzpicture}
\end{document}

결과 이미지는

                                                                고정된 레이블이 있는 노드

(이것은 위 코드에서 얻을 수 있는 이미지와 완전히 다릅니다. 독자의 편의를 위해 핀의 가시성을 약간 높였습니다.)

핀의 각도와 길이를 조정하는 방법을 알고 있지만(241페이지 버전 3.0.1a용 TikZ & PGF 설명서의 17.10.3 '핀 옵션' 섹션에 설명되어 있음) 위치를 어떻게 조정할 수 있나요? 핀 헤드에 대한 라벨(각도, 거리, 라벨 앵커)의 위치는 어떻게 됩니까?

답변1

다음 코드에서 볼 수 있듯이 원하는 앵커( south이 기본 경우)는 레이블 위치에 배치되고 그 후 노드 중심에서 레이블 중심까지 핀 선이 그려집니다.

여기에 이미지 설명을 입력하세요

\documentclass[tikz,border=2mm]{standalone} 
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}
\node [draw, pin={[draw]x}, pin={[draw, anchor=west, red]x}, pin={[draw, anchor=south east, blue]x}] {};
\end{tikzpicture}
\end{document}

업데이트:

다시 해보자.

pin={[pin distance=1.2cm, draw, red]0:x},

앵커 에서 1.2cm 떨어진 곳에 레이블 노드를 그립니다 main node.0. 레이블 노드의 앵커는 입니다 west. 이 기본 앵커는 기본 노드에 대한 레이블 위치에 따라 결정됩니다.

pin={[pin distance=1.2cm, draw, blue]74:x}

이것은 south west기본 노드 .74 앵커에서 시작하는 74도 선을 따라 1.2cm 거리에 기본 라벨의 앵커( )를 배치합니다. 노드가 배치되면 노드 중심 사이에 핀 라인이 그려집니다. 이 선은 74도를 따르지 않으며 길이도 1.2cm가 아닙니다.

pin={[name=pin, pin distance=1.2cm, draw, red, anchor=-37]74:\phantom{x}},

마지막 것과 동일하지만 .-37 라벨 노드 앵커가 메인 노드 .74 앵커에서 1.2cm 떨어진 곳에 배치됩니다.

여기에 이미지 설명을 입력하세요

\documentclass[tikz,border=2mm]{standalone} 
\usetikzlibrary{positioning}

\begin{document}
\begin{tikzpicture}

\draw[help lines] (-1,-1) grid (4,2);
\node [draw, 
    pin={[pin distance=1.2cm, draw, red]0:x},
    pin={[pin distance=1.2cm, draw, blue]74:x}] (a) {};

\draw[<->] (a.0)-- node[above]{1.2 cm} ++(0:1.2);
\draw[<->] (a.74)-- node[above]{1.2 cm} ++(74:1.2);

\begin{scope}[xshift = 3cm]
\node [draw, 
    pin={[name=pin, pin distance=1.2cm, draw, red, anchor=-37]74:\phantom{x}},
    pin={[pin distance=1.2cm, draw, blue]74:x}] (a) {};

    \draw[red] (pin.center)--(pin.-37);
\end{scope}
\end{tikzpicture}
\end{document}

답변2

귀하의 질문이 중복되었지만 지금은 (아직) 찾을 수 없으므로 내 답변에 투표하지 마십시오. 하지만 나는 LaTeX 예제 컬렉션에 이에 대한 답변을 저장합니다.

%%%% aligned-pin
\documentclass[tikz, border=5mm]{standalone}

\tikzset{aligned pin/.style args={[#1]#2:#3}% new sort of pin
    {pin={[%
           inner sep=0pt,%
           label={[%
                append after command={%
                node[%
                     inner sep=0pt,%
                     at=(\tikzlastnode.#2),% 
                     anchor=#1,%
                    ]{#3}%
                }%
            ]center:{}}%
         ]#2:{}}%
    }
        }

    \begin{document}
\begin{tikzpicture}
\draw[thick] (0,0) -- node[pos=0.8,% position of node
                           coordinate,                 % node is behavior as coordinate
                           aligned pin={[east]         % anchor of pin label
                                        120:           % direction of pin
                                        g factor=1.96} % text in pin label
                                  ] {} (3,2);
\end{tikzpicture}
    \end{document}

여기에 이미지 설명을 입력하세요

편집하다:원본을 찾았어요Qrrbrbirlbel의 답변

관련 정보