tikz 서클 노드로 이동

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에서는 노드 내에 속하는 선 부분만 실제로 그려지도록 합니다.

관련 정보