Tikz: 너비가 다른 두 노드 중 가장 왼쪽에 노드 배치

Tikz: 너비가 다른 두 노드 중 가장 왼쪽에 노드 배치

다음 tikz 사진이 있습니다.

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
    \begin{tikzpicture}
        \coordinate (origin) at (0,0) ;
        \node[above=10pt of origin,anchor=east] (topnode) {Short};
        \node[below=10pt of origin,anchor=east] (bottomnode) {Longer Node};
    \end{tikzpicture}
\end{document}

내 목표는 y=0인 (x,y) 위치에 노드를 배치하는 것입니다. 그러나 x는 두 노드(상위 노드) 및 (하위 노드) 중 가장 왼쪽과 동일합니다. 위치를 하드 코딩하지 않고 이 작업을 수행하고 싶습니다. 따라서 두 노드의 내용을 변경해도 위치는 여전히 정확합니다.

답변1

local bounding box내부에 있는 모든 것의 왼쪽/오른쪽/상단/최하위 좌표가 알려져 있습니다 .

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
    \begin{tikzpicture}
        \coordinate (origin) at (0,0) ;
        \begin{scope}[local bounding box=nodes]
          \node[above=10pt of origin,anchor=east] (topnode) {Short};
          \node[below=10pt of origin,anchor=east] (bottomnode) {Longer Node};
        \end{scope}
        \node[anchor=west] at (origin-|nodes.west) {here I am};
    \end{tikzpicture}
\end{document}

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

답변2

다른 방법: 다음을 사용하세요 \pgfgetlastxy.

\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\newdimen\xone
\newdimen\y
\newdimen\xtwo
\begin{document}
\begin{tikzpicture}
\coordinate (origin) at (0,0) ;
\node[above=10pt of origin,anchor=east,inner sep=0pt] (topnode) {Short};
\node[below=10pt of origin,anchor=east,inner sep=0pt] (bottomnode) {Longer Node};
\path (topnode.west);
\pgfgetlastxy{\xone}{\y};
\path (bottomnode.west);
\pgfgetlastxy{\xtwo}{\y};
\draw ({min(\xone,\xtwo)},0) circle (1pt);
\end{tikzpicture}
\end{document}

원하는 곳에 원을 그어 놓았습니다. 원하는 대로 변경할 수 있으며 이를 좌표로 사용할 수도 있습니다.

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

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

관련 정보