带有“卷曲”分隔符的表格

带有“卷曲”分隔符的表格

我搜索了很多,但还是没能找到真正符合我需求的包。我想实现类似下图中的“页表”的功能:

https://i.stack.imgur.com/wBTQm.gif

这是一个普通的表格,但有一些“弯曲的断线”,让人觉得它有一种延续的感觉,而且可能在第一个表格下面有一个带有镜面断线的表格,可以继续扩展我的列表。

我还在寻找另外两种技术:我想描述一些单元格的内容(可能带有箭头或其他参考),并且我想突出显示整个表格块(可能带有颜色或一些背景纹理,如植物或房子)让我能够编写一些图例。

答案1

看一下 bytefield 包,http://www.ctan.org/tex-archive/macros/latex/contrib/bytefield。它有很多用于像你这样的图表的东西。特别是,我会使用它的\skippedwords宏而不是你的卷曲底部:它似乎是显示无限量数据的更常用的方式

答案2

以下是使用PGF/TikZ

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,shapes.multipart}

% Command to draw a colored square
\newcommand\Cbox[1]{\color{#1}\rule{6pt}{6pt}}

\begin{document}

\begin{tikzpicture}[
  drect/.style={rectangle split, rectangle split parts=#1, draw},
  ndrect/.style={rectangle split, rectangle split parts=#1}
]

% the nodes
\node[draw] (a) {02FE};
\node[drect=2, rectangle split horizontal,right=of a] (b) {02\nodepart{two}FE};
\node[drect=2, rectangle split horizontal,right=of b] (c) {01A0\nodepart{two}FE};
\node[drect=4,rectangle split part fill={red!60,blue!60,olive!60,magenta!60},below right=of a] (d)
  {0020\nodepart{two}001A\nodepart{three}01A0\nodepart{four}0320};
\node[ndrect=4,left=0 of d] (e)
  {0\nodepart{two}1\nodepart{three}2\nodepart{four}3};

% the curly part
\draw (d.south west) -- ++(0,-0.2) -- ($(d.south west)+(0,-0.2)$) .. controls ($(d.south)+(-0.3,-0.05)$) .. ($(d.south)+(0,-0.2)$) .. controls ($(d.south)+(0.3,-0.4)$) .. ($(d.south east)+(0,-0.3)$) -- (d.south east);

% the arrows
\draw[->] (a) -- (b);
\draw[->] (b.two north) -- ++(0,0.3) -|  (c.two north);
\draw[->] (b.one south) -- ++(0,-0.5) -- ++(-1.5,0) |- ($(d.three)+(-0.6,0.1)$);
\draw[->] (d.three east) -| (c.one south);

% text nodes
\node[align=center,above= 0.5pt of a, font=\footnotesize] {logical \\address};
\node[align=center,below= 3pt of c.two,xshift=6pt, font=\footnotesize] {physical \\address};
\node[align=center,below= 13pt of d, font=\footnotesize] {Page Table};

% the legend
\node[right=of c,yshift=-1cm] {
  \fbox{\begin{tabular}{cp{2.7cm}}
    \Cbox{red!60} & Some description \\
    \Cbox{blue!60} & Some description \\
    \Cbox{olive!60} & Some description \\
    \Cbox{magenta!60} & Some description \\
  \end{tabular}}
};

\end{tikzpicture}

\end{document}

在此处输入图片描述

使用特征绘制卷线.. controls ..(参见第节14.3 曲线至操作pgfmanual 的)。节点是使用shapes.multipart库构建的(请参阅第节48.6 具有多个文本部分的形状请参阅 pgfmanual)。

相关内容