我想创建一系列水平链接的“文本框”,每个框之间都有箭头。每个框将包含一些文本(可能是带有标题的列表)。我希望它看起来像这样:
实现这一目标的最佳方案/方法是什么?
理想情况下,三个框的整体宽度将自动调整大小以填充它们所在列的整个宽度,但这只是一个次要要求。
(我意识到这实际上是一个流程图——然而,我遇到的所有流程图包似乎都更适合自由形式、蜘蛛状的流程图,而且对于这个目的来说似乎有些过度了。如果它们合适,请随意推荐它们。)
答案1
一个快速而肮脏的解决方案(无需任何额外的包):
\fbox{\parbox[t]{6em}{Title \#1\\Item\\Item\\Item\\Item}}%
\raisebox{-4ex}{$\to$}%
\fbox{\parbox[t]{6em}{Title \#2\\Item\\Item\\Item\\Item\\Item}}%
\raisebox{-4ex}{$\to$}%
\fbox{\parbox[t]{6em}{Title \#3\\Item\\Item\\Item}}
并且您可以定义一些命令以方便使用。
\newcommand\mybox[2][6em]{%
\raisebox{4ex}{\fbox{\parbox[t]{#1}{#2}}}}
\newcommand\Rarrow{$\rightarrow$}
\mybox{Title \#1\\Item\\Item\\Item\\Item}%
\Rarrow
\mybox{Title \#2\\Item\\Item\\Item\\Item\\Item}%
\Rarrow
\mybox{Title \#3\\Item\\Item\\Item}
如果所要求的图表非常简单,这就足够了。但是,对于更复杂的图表(在任意位置,带有曲线、阴影框等),最好使用更强大的工具,例如tikz
和pstricks
。
答案2
也许 tikz 框图可以帮助您?
答案3
这并不完全符合示例输出,但我想尝试一下,因为给定的图片看起来就像一堆堆叠在一起的盒子:
\def\repeating#1{\vcenter{\offinterlineskip
\halign{\vrule\strut\enspace##\hfil\quad\vrule\cr
\noalign{\hrule}#1\noalign{\hrule}}}}
\def\title#1{\vphantom{$\Big($}\bf#1}
$ \repeating{\title{Title \#1}\cr Item\cr Item\cr Item\cr Item\cr}
\mathord{\longrightarrow}
\repeating{\title{Title \#2}\cr Item\cr Item\cr Item\cr Item\cr Item\cr Item\cr}
\mathord{\longrightarrow}
\repeating{\title{Title \#3}\cr Item\cr Item\cr Item\cr} $
\bye
我仍在想是否可以以某种方式将\halign
's改为\vcenter
a \vtop
,并将\longrightarrow
s 改为 a 里面的\vcenter
,但我还没能让它发挥作用。