Tikz: coloque el nodo más a la izquierda de dos nodos de diferentes anchos

Tikz: coloque el nodo más a la izquierda de dos nodos de diferentes anchos

Tengo la siguiente imagen 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}

Mi objetivo es colocar un nodo en la posición (x,y), con y=0, pero con x igual al extremo izquierdo de los dos nodos (nodo superior) y (nodo inferior). Me gustaría hacer esto sin codificar la posición. De modo que la posición seguiría siendo correcta si cambiara el contenido de esos dos nodos.

Respuesta1

Se local bounding boxconoce la coordenada más izquierda/derecha/superior/inferior de todo lo que hay dentro.

\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}

ingrese la descripción de la imagen aquí

Respuesta2

Una forma diferente: use el \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}

Puse un círculo en el lugar deseado. Puedes cambiarlo a lo que quieras, incluso puedes usar esto como coordenada:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

información relacionada