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中的 可確保僅實際繪製位於節點內的線條部分。

相關內容