TikZ:如何绘制链式表格材料

TikZ:如何绘制链式表格材料

我是 TikZ 的新手,这可能被视为替我做功课的问题。我想绘制这样的图表:

在此处输入图片描述

首先,我需要有关段本身的最基本帮助。我尝试了具有表格环境的节点:

\documentclass{standalone}
\usepackage{tikz,tabularx}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node {
  \begin{tabularx}{4cm}{|X|X|}
  \hline
   \multicolumn{2}{|c|}{foo} \\
  \hline
    prev \hfill & \hfill next \\
    \hline
   \multicolumn{2}{|c|}{type: local\_par} \\
   \multicolumn{2}{|c|}{width: 20pt} \\
  \hline
  \end{tabularx}
};
\end{tikzpicture}
\end{document}

在此处输入图片描述

虽然很接近,但是有一个缺点:

  • 我觉得这不是正确的做法
  • 我不知道如何让行从“下一个”字段转到下一个表。(或上一个表的上一个字段),因为我不知道位置
  • 表格的宽度应为“最少 n 个点,但可以根据需要拉伸”。

最终我希望箭头开始字段(在条目“prev”、“next”和“list”旁边),类似于此示例:

在此处输入图片描述

答案1

\documentclass[11pt]{scrartcl}
\usepackage{tikz}
\usetikzlibrary{shapes.multipart}

\begin{document}
\begin{tikzpicture}
  \node[rectangle split, rectangle split parts=5, 
       draw, minimum width=4cm,font=\small,
       rectangle split part align={center}] (t1)
    {             \textbf{Name : glyph}
     \nodepart{two}
                  prev \hspace*{4ex} next
     \nodepart{three}
                  width: 15pt  
     \nodepart{four}
                  height: 15pt 
     \nodepart{five}
                  list};
  \draw (t1.text split) -- (t1.two split);

  \begin{scope}[xshift=7cm]
    \node[rectangle split, rectangle split parts=5,
          draw, minimum width=4cm,font=\small,
         rectangle split part align={center}] (t2)
     {                \textbf{Name : glyph}
       \nodepart{two}
                      prev \hspace*{4ex} next
       \nodepart{three}
                      width: 15pt  
       \nodepart{four}
                      height: 15pt 
       \nodepart{five}
                      list}; 
    \draw (t2.text split) -- (t2.two split);
  \end{scope}

  \draw[->] (t1.two east) to [out=0, in=180](t2.text west);      
\end{tikzpicture}
\end{document}   

在此处输入图片描述

相关内容