hrule 进入 tikz 圆节点

hrule 进入 tikz 圆节点

我在 Tikz 的内部节点布局方面遇到了困难。基本上,我想在节点内的第一个文本行下添加一行,将其不均匀地分割。以下是一次尝试:

两个 tikz 节点,其中一个节点的第一部分有一个非常大的空白,另一个节点没有拆分

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

split选项似乎能够将省略号一分为二,在第一行文本上方留下一个巨大的空白(参见 NODE1)。我希望呈现类似 NODE2 的内容,但用一条线将第一行与其他行分开。以下是所需输出的示例:

期望的输出

我尝试\hrule在“”文本后添加命令NODE2,但似乎不可行。您知道如何操作吗?

顺便说一句,请注意,我看到了这个相关问题及其被接受的答案,但我认为它没有解决我的问题。

答案1

类似这样的事吗?

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

在此处输入图片描述

答案2

您可以绘制更长的 [h] 规则并剪切节点:

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

在此处输入图片描述

您可以像处理其他线条一样处理该线条,\rule以修改定位或宽度。确保\clap该线条的(假想)长度不会扩大节点的大小。clip样式定义中的确保仅实际绘制位于节点内的线条部分。

相关内容