hrule en el nodo del círculo tikz

hrule en el nodo del círculo tikz

Estoy luchando con el diseño del nodo interno con Tikz. Básicamente, quiero agregar una línea debajo de la primera línea de texto dentro de un nodo, dividiéndola de manera desigual. Aquí hay un intento:

Dos nodos tikz, uno con un espacio en blanco estúpidamente enorme en su primera parte y otro no dividido

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes}

\begin{document}
    \begin{tikzpicture}[auto, node distance=3cm,
        style1/.style={ellipse split, draw, align=center},
        style2/.style={ellipse, draw, , align=center},
    ]

        \node[style1] (1) {NODE1 \nodepart{lower} long name \\ foo \\ bar \\ baz};

        \node[style2] (2) [right of=1] {NODE2 \\ long name \\ foo \\ bar \\ baz};

    \end{tikzpicture}
\end{document}

La splitopción parece poder dividir los puntos suspensivos por la mitad, dejando un enorme espacio en blanco encima de la primera línea de texto (ver NODO1). Deseo representar algo como NODE2, pero con una línea que separa la primera línea de las demás. A continuación se muestra un ejemplo del resultado deseado:

La salida deseada

Intenté agregar \hruleun comando justo después del NODE2texto " ", pero no parece posible. ¿Tienes alguna idea sobre cómo hacer esto?

Por cierto, tenga en cuenta que viesta pregunta relacionaday su respuesta aceptada, pero creo que no aborda mi problema.

Respuesta1

¿Algo por el estilo?

\documentclass{standalone}

\usepackage{tikz}
\usetikzlibrary{shapes,fit,positioning}

\begin{document}
    \begin{tikzpicture}[auto, node distance=3cm,
        style1/.style={ellipse split, draw, align=center},
        style2/.style={ellipse, draw, , align=center},
        lower elli/.style={align=center},
        fit elli/.style={ellipse,draw,inner sep=0pt,
        path picture={\draw ([xshift=-1cm]#1.south west)-- 
        ([xshift=1cm]#1.south east);}}
    ]

        \node[style1] (1) {NODE1 \nodepart{lower} long name \\ foo \\ bar \\ baz};

        \node[style2] (2) [right=1cm of 1] {NODE2 \\ long name \\ foo \\ bar \\ baz};

        \node (3a) [right=3.5cm of 2.north,anchor=north] {NODE3};
        \node[lower elli] (3b)[below=0pt of 3a] {long name \\ foo \\ bar \\ baz};
        \node[fit elli=3a,fit=(3a) (3b)]{};
    \end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Podrías simplemente dibujar una regla [h] más larga y recortar el nodo:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes}
\def\clap#1{\hbox to 0pt{\hss#1\hss}}
\begin{document}
\begin{tikzpicture}[auto, node distance=3cm,
    styleshess/.style={ellipse, draw, align=center,clip},
]
    \node[styleshess] (2) {NODE2\\\clap{\rule{\linewidth}{.4pt}}\\ long name \\ foo \\ bar \\ baz};
\end{tikzpicture}
\end{document}

ingrese la descripción de la imagen aquí

Puedes jugar con esa línea como con cualquier otra \rulepara modificar la posición o el ancho. Se \clapasegura de que la longitud (imaginaria) de esa línea no aumente el tamaño del nodo. La clipdefinición de estilo garantiza que solo se dibuje realmente la parte de la línea que cae dentro del nodo.

información relacionada