tikz: 직사각형 분할에 고정되나요?

tikz: 직사각형 분할에 고정되나요?

직사각형 분할 노드의 두 번째 부분 중앙에 고정할 수 있는 쉬운 방법이 있습니까? 제가 현재 작업하고 있는 작업은 다음과 같습니다.

\documentclass[letterpaper,oneside]{report}
\usepackage{tikz}
\usetikzlibrary{shapes,shapes.multipart}
\begin{document}
\begin{tikzpicture}[node distance=5mm,>=stealth',auto]
    \tikzstyle{bucket}=      [rectangle,draw=black!50,fill=black!20,
                              minimum size=5mm,inner sep=0mm]
    \tikzstyle{listitem}=    [rectangle split,rectangle split horizontal,
                              rectangle split parts=2,
                              draw=black!50,fill=black!20,
                              inner sep=0mm,text width=5mm,
                              minimum height=4mm,rectangle split part align=center,
                              rectangle split empty part width=2mm]
    \tikzstyle{every label}= [font=\footnotesize]  

    \node[bucket] (B0) [label=above:$B$,label=left:0] {};
        \draw (B0.south west) -- (B0.north east);
    \node[bucket] (B1) [below of=B0,label=left:1] {};
    \node[listitem] (B1') [right of=B1,node distance=1.5cm] {.13 \nodepart{two}}
        edge [<-] (B1.center);
    \node[listitem](B1'') [right of=B1',node distance=1.5cm] {.16 \nodepart{two}}
        edge [<-] (B1'.two);
        \draw (B1''.two split south) -- (B1''.north east);
\end{tikzpicture}
\end{document} 

결론은 다음과 같습니다. (글쎄, 이미지가 있지만 여기에 게시할 수는 없습니다...)

B1'에서 B1''까지의 화살표를 "B1'.two center"에서 시작하고 싶지만 해당 앵커가 존재하지 않습니까? 어떻게 정의할 수 있습니까? 아니면 적어도 화살표의 시작점으로 사용할 수 있는 방법은 무엇입니까? (내가 어떻게 보길 원하는지는 B1에서 B1'까지의 화살표를 참조하십시오).

도움을 주신 모든 분들께 감사드립니다!

답변1

해당 앵커는 실제로 존재하지 않지만 동쪽과 남쪽의 교차점을 취하여 약간 속일 수 있지만 선폭이 무시할 수 없는 경우 를 사용하여 조금 더 밀어야 합니다 [xshift=-\pgflinewidth].

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart,arrows}
\begin{document}
\begin{tikzpicture}[node distance=5mm,>=stealth',auto]
    \tikzstyle{bucket}=      [rectangle,draw=black!50,fill=black!20,
                              minimum size=5mm,inner sep=0mm]
    \tikzstyle{listitem}=    [rectangle split,rectangle split horizontal,
                              rectangle split parts=2,
                              draw=black!50,fill=black!20,
                              inner sep=0mm,text width=5mm,
                              minimum height=4mm,rectangle split part align=center,
                              rectangle split empty part width=2mm]
    \tikzstyle{every label}= [font=\footnotesize]  

    \node[bucket] (B0) [label=above:$B$,label=left:0] {};
        \draw (B0.south west) -- (B0.north east);
    \node[bucket] (B1) [below of=B0,label=left:1] {};
    \node[listitem] (B1') [right of=B1,node distance=1.5cm] {.13 \nodepart{two}} 
        edge [<-] (B1.center);
    \node[listitem](B1'') [right of=B1',node distance=1.5cm] {.16 \nodepart{two}}
        edge [<-] (B1'.two south |- B1'.two east);
        \draw (B1''.two split south) -- (B1''.north east);
\end{tikzpicture}
\end{document} 

여기에 이미지 설명을 입력하세요

관련 정보