長方形分割ノードの 2 番目の部分の中心にアンカーする簡単な方法はありますか? 現在取り組んでいるのは次のとおりです。
\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}