next up previous contents index
Next: 2. LATEX术语 Up: I. 背景知识 Previous: I. 背景知识

1. 简介

当 Knuth 编写 TEX 的时候,还没有 PostScript/EPS,JPEG,GIF 等图像格式,因此 DVI 并不直接支持这些格式的图形。不过,TEX允许 DVI 文件中包含 \special 命令来向 DVI 处理程序传递命令,这就使得 TEX 和 LATEX 能够使用 DVI 处理程序所支持的图像格式。 由于 DVI 文件经常被转为 PostScript 文件,所以支持最好的是对 EPS 格式 (Encapsulated PostScript, 是 PostScript 语言的子集) 的图像。在 LATEX 中插入 EPS 图像最初通过低层命令 \special 来完成。为方便起见,专门为 LATEX2.09 设计 了两个高层的宏包 epsf 和 psfigepsf 提供了 \epsfbox 命令来插入图片,另有三个命令来控制所插入的图片的缩放。而 psfig 中的 \psfig 命令除了用来插入图片,还可以缩小、放大、旋转它们。但是,尽管 psfig 的语法比较新颖,它的代码却没有 epsf 的健壮。于是作为这两个宏包的结合的产物,epsfig 宏包使用 psfig 的语法和大部分 epsf 的健壮代码。不过,epsfig 仍然使用了一些不健壮的 psfig 的代码。 随着 1994 年 LATEX2e 的发布,LATEX3 小组认识到在 LATEX2e 中插入图形时的一些普遍问题,并且致力于开发出一个由全新命令组成的,比其它插图命令更加有效、更加健壮、更加方便的图形宏包套件 ``LATEX graphics bundle1.1''。 LATEX 图形宏包套件包括“标准”的 graphics 宏包和“扩展”的 graphicx 宏包。这两个宏包都有一个 \includegraphics 命令,不过版本不同。 graphicx 版的 \includegraphics 采用“命名机制”(类似 psfig 的语法),使用起来比较简单方便,却违犯了 LATEX 可选参数的语法规则。作为一种妥协,就有了两种版本的 \includegraphics 。graphics 版本遵从 LATEX 的语法规则,而 graphicx 版本则使用更为简便的命名机制。graphicx 版本的 \includegraphics 支持图形的缩放和旋转,而相应的 graphics 版本则要被置于 \scalebox 或 \rotatebox 才能达到同样的效果。 本书使用 graphicx 宏包是因为它比 graphics 宏包简便易用。尽管会使生成书中的图例的命令有些笨拙和缺少一点效率,这些例图同样可以用 graphics 宏包来完成。对这两个宏包详细的说明可参见 LATEX 图形宏包套件的文档 [5]。 为保证对旧版本的兼容性,图形宏包套件中也提供了一个 epsfig 宏包, 用以替代旧版本 epsfig。这一新版的 epsfig 中的命令 如 \epsfbox\psfig\epsfig 只是 做为 \includegraphics 的一个简单的封装,效率不高,只适合用 来编译旧的文档。在编写新文档时要用 \includegraphics。 LATEX 图形宏包套件 还试图解决插入非 EPS 格式的图像如 GIF 和 JPEG 等 的问题。由于 DVI 转换程序一般不支持直接插入大多数非 EPS 格式 的图形,因此这些图形在加入到 LATEX 文件前必须先转为 EPS 格式。在一些情 况下,这一格式转换可由 DVI 到 PS 的转换程序自动完成。第  6 章介绍了一部分常用的图像格式 转换工具,第 13 章则介绍了怎样在 LATEX 中 使用非 EPS 格式的图形。


Wang Lei
2000-04-15