-
LaTeX 复杂图形绘制教程:从基础到进阶
2026-01-10 10:09:27 2014德国世界杯
系列文章目录
第一章:深入了解 LaTeX:科技文档排版的利器 第二章:LaTeX 下载安装保姆级教程 第三章:LaTeX 创建工程并生成完整文档指南 第四章:LaTeX 表格制作全面指南
文章目录
系列文章目录
前言
一、LaTeX 绘图工具概览
二、深入 TikZ 绘图语言
1.调用 TikZ 宏包
1.1 TikZ 坐标与路径
2. 在图形中添加元素
3. 绘制复杂图形示例
绘制流程图
绘制数学图形(如函数图像组合)
绘制复杂几何图形(如立体几何图形)
4. 学习资源与技巧
官方文档与教程
在线图形编辑器
相关书籍与开源示例
总结
前言
在学术写作和专业文档排版中,精美的图形往往能更直观地传达信息,增强内容的表现力。LaTeX 作为一款强大的排版系统,虽以其出色的文字和公式排版能力闻名,但在图形绘制方面同样不容小觑。本文将深入探讨如何利用 LaTeX 绘制各种复杂图形,为您的文档增添光彩。
一、LaTeX 绘图工具概览
LaTeX 自身提供了原始的picture环境,可用于绘制一些基本图形,如点、线、矩形、圆和 Bezier 曲线等。然而,由于 LaTeX 本身的限制,其绘图功能较为有限,效果也不尽如人意。随着需求的不断增加,众多功能强大的绘图宏包应运而生,极大地丰富了 LaTeX 的绘图能力。以下是当前较为流行的几种绘图宏包和程序:
PSTricks:基于 PostScript 语法的绘图宏包,绘图能力出色。它对老式的latex+dvips编译命令支持最佳,但在现代的几种编译命令下使用不太方便。
TikZ & pgf:德国的 Till Tantau 教授在开发著名的 LaTeX 幻灯片文档类beamer时,一并开发了绘图宏包pgf,旨在使其能在pdflatex或xelatex等不同编译命令下使用。TikZ是在pgf基础上封装的宏包,采用类似 METAPOST 的语法,提供了便捷的绘图命令,绘图能力不逊于 PSTricks。
METAPOST & Asymptote:METAPOST 脱胎于高纳德为 TEX 配套开发的字体生成程序 METAFONT,绘图能力卓越,且能调用 TEX 引擎向图片中插入文字和公式。Asymptote 在 METAFONT 的基础上更进一步,具备一定类似 C 语言的编程能力,支持三维图像的绘制。
这些工具通常既可以作为独立程序,将代码写在单独文件中编译生成图片供 LaTeX 引用,也能借助特殊宏包在 LaTeX 代码中直接使用。接下来,我们将重点介绍功能强大且应用广泛的 TikZ 宏包的使用方法。
二、深入 TikZ 绘图语言
1.调用 TikZ 宏包
在 LaTeX 文档的导言区加载 TikZ 宏包,只需加入\usepackage{tikz}语句,即可开启 TikZ 强大的绘图功能。
1.1 TikZ 坐标与路径
坐标系统:TikZ 支持直角坐标系和极坐标系描述点的位置。在直角坐标下,点的位置表示为(x,y),其中x和y坐标可以使用 LaTeX 支持的任意单位,默认单位为cm。例如,(2,3)表示横坐标为 2cm,纵坐标为 3cm 的点。极坐标下,点的位置写作(θ:r),其中θ为极角,单位是度,r为极径。比如,(30:5)表示极角为 30 度,极径为 5cm 的点。我们还可以为点命名,方便后续使用,如\coordinate (A) at (2,3);,之后就可以用(A)来表示该点位置。
基本路径:TikZ 最基本的路径是两点之间的连线,通过(x1,y1) – (x2,y2)表示,可连续使用表示折线。例如,(0,0) – (1,1) – (2,0)将绘制一条从(0,0)到(1,1)再到(2,0)的折线。若要绘制闭合路径,可在路径末尾使用cycle关键字,如(0,0) – (1,1) – (2,0) cycle将绘制一个三角形。
其他常用路径
矩形、圆和椭圆:绘制矩形使用(x1,y1) rectangle (x2,y2),其中(x1,y1)和(x2,y2)分别为矩形对角顶点的坐标。绘制圆使用(x,y) circle (radius=r),(x,y)为圆心坐标,r为半径。绘制椭圆使用(x,y) ellipse (x radius=rx, y radius=ry),(x,y)为椭圆中心坐标,rx和ry分别为椭圆在 x 轴和 y 轴方向上的半径。 例如:
直角、圆弧、椭圆弧:直角可通过特殊的坐标表示和路径绘制实现。绘制圆弧使用(x,y) arc (start angle:end angle:radius),(x,y)为圆心坐标,start angle和end angle分别为圆弧的起始角度和结束角度,radius为半径。椭圆弧的绘制类似,需指定椭圆的 x 半径和 y 半径。例如: -
正弦、余弦曲线(1/4 周期):可通过\draw plot[domain=x1:x2,samples=n] function来绘制,其中domain指定函数定义域,samples指定采样点数,function为具体的函数表达式。例如,绘制 1/4 周期的正弦曲线:
抛物线:使用(x1,y1) parabola (x2,y2)绘制抛物线,也可通过bend关键字控制顶点位置,如(x1,y1) parabola bend (x_mid,y_mid) (x2,y2)。例如:
二次和三次 Bezier 曲线:二次 Bezier 曲线使用\draw (x1,y1)… controls (x_ctrl,y_ctrl)… (x2,y2),其中(x_ctrl,y_ctrl)为控制点坐标。三次 Bezier 曲线则需要两个控制点,语法为\draw (x1,y1)… controls (x_ctrl1,y_ctrl1) and (x_ctrl2,y_ctrl2)… (x2,y2)。例如:
网格、函数图像:绘制网格可使用\draw[step=step_size] (x1,y1) grid (x2,y2),step_size为网格间距。绘制函数图像同样使用\draw plot命令,通过domain参数精确控制定义域。例如: -
2. 在图形中添加元素
绘制线条与形状:使用\draw命令绘制各种线条和形状,可通过在命令中添加选项来设置线条颜色、粗细、样式(如实线、虚线、点线等)。例如,绘制一条红色粗虚线:\draw[red, thick, dashed] (0,0) – (2,2);。
添加节点(文字和符号):节点用于在图形中添加文字、符号或其他元素。使用\node[options] {text} at (x,y);命令,options可设置节点的位置(如above、below、left、right等)、颜色、字体等属性。例如,在点(1,1)处添加一个蓝色、位于上方的节点:\node[blue, above] {示例} at (1,1);。
填充形状:对于封闭形状,可使用\fill[color] path;命令进行填充。例如,填充一个绿色的矩形:\fill[green] (0,0) rectangle (1,1);。
3. 绘制复杂图形示例
绘制流程图
流程图在学术和工作中广泛应用,用于展示流程、步骤和逻辑关系。使用 TikZ 绘制流程图时,可通过定义不同形状的节点(如矩形表示步骤,菱形表示判断等),并使用带箭头的线条连接节点来实现。
\begin{
tikzpicture}[node distance=2cm,
startstop/.style={
rectangle, rounded corners, minimum width=3cm, minimum height=1cm,text centered, draw=black, fill=red!30},
process/.style={
rectangle, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=blue!30},
decision/.style={
diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=green