我搜索了很多,但还是没能找到真正符合我需求的包。我想实现类似下图中的“页表”的功能:
这是一个普通的表格,但有一些“弯曲的断线”,让人觉得它有一种延续的感觉,而且可能在第一个表格下面有一个带有镜面断线的表格,可以继续扩展我的列表。
我还在寻找另外两种技术:我想描述一些单元格的内容(可能带有箭头或其他参考),并且我想突出显示整个表格块(可能带有颜色或一些背景纹理,如植物或房子)让我能够编写一些图例。
答案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)。