程图是表达算法思想最为有效的图形工具。作为计算机专业的学生,我们经常需要在文档中使用流程图来描述算法。在 LaTeX 中使用流程图可以通过 TikZ 或 flowchart 宏包来实现,但从本质上来说 flowchart 宏包也是使用 TikZ 宏包来实现的。下面分别通过一个简单的例子来对这两种方法进行说明。
使用 flowchart 宏包绘制流程图flowchart 宏包根据 IBM 提出的流程图标准,定义了流程图中最常用的五种标准形状,包括:
- PROCESS: 一切函数过程
- DECESION: 条件判断
- PREDEFINED PROCESS:预定义过程
- STORAGE: 数据存储
- TERMINAL: 开始,结束
下面,我们通过一个简单的示例代码来说明,请注意看代码中的注释

直接使用 TikZ 宏包绘制流程图。flowchart 定义的形状数量比较少,可能满足不了绘制复杂流程图的需要,我们还可以直接使用 TikZ 强大的绘图功能来实现流程图的绘制。还是先看示例代码,配合注释,再进行讲解吧。

方法比较比较两个方法的代码可知,相比使用 flowchart 宏包,直接使用 TikZ 绘制流程图多了定义基本形状一步。但通过 TikZ 自己定义基本形状,流程图的可定制性更好,可以根据具体需要,定义多种流程图形状。另外一个使用 flowchart 宏包来绘制,最终还是需要用到 TikZ 语法,也不见得有多简单。因此,推荐使用 TikZ 直接绘制流程图。另外,在很久之间,还有一个名为 nassflow 的宏包也可以实现流程图的绘制,但在目前的几个留下的 LaTeX 的发行版中,都没有预装该宏包,因此,在这里也就不做说明了。
选自:http://wangmurong.org.cn/2015/06/14/how-to-draw-flow-chart-in-latex/