3.3 宏包
3.3.1 宏包简介
为了排版需要,把多个TEX和LATEX的基础命令有机地组合到一起而形成功能强大的命令或环境,这些新的命令或环境称为宏(macro)或宏命令,存储这些宏命令的文件称为宏包。
关于宏包,下面以纸张大小的设置为例来展开讲解。通常排版使用的纸张大小是常规尺寸(如A4、A3等),但如果想使用非常规尺寸的纸张大小,LATEX也是可以做到的。在LATEX中,用户能够任意设置纸张大小。如某个用户想排版一张试卷,卷面宽51.9cm、高26cm,版心宽47.9cm、高22cm,那么在导言区中添加如下命令就可以实现:
以上命令中的\setlength用于设置长度或为长度赋值,命令\paperwidth表示纸张宽度,合起来\setlength{\paperwidth}{51.9cm}用于设置纸张的宽度为51.9cm,后面三条命令分别设置了纸张高度和版心的宽度、高度。
对于页面设置,LATEX提供了很多命令去完成精细、复杂的排版要求,但是用户使用起来很不方便,因为这要求用户熟悉很多长度数据命令才能控制好页面尺寸。为了让用户更方便地设置页面尺寸,有人在LATEX已有命令的基础上定义了一系列新的命令,把这些命令集合在一起组合成宏包。宏包geometry就是专为页面设置而制作的。对于前述的四条页面设置命令,只需在导言区中添加一条命令:
即可实现。
宏包的作用是扩展或新增某种排版功能。前面说的文类其实也就是一种用于规范全文排版格式的宏包。如果说LATEX系统是一幢精美雅致的住宅,那么各种宏包就是为建造这幢住宅而准备的规划图纸、建筑材料和建筑工具,使用它们可以让住宅修建得更快、更漂亮。
在已有的宏包中,若觉得符合自己的需要,可以拿来就用,也可以另起炉灶自己在已有宏定义的基础上编写一个宏包。为了让LATEX排出更好的版面,不断地有人编写宏包,为LATEX这座大厦添砖加瓦,在源代码的导言区中调用宏包已成为常态。针对各种排版需求的宏包将在后续的章节中逐步介绍。
3.3.2 查看宏包
在3.3.1节中简单地介绍了宏包,知道了宏包在排版中的重要性,那么数以千计的宏包是如何查看的?一般有下面两种方式。
1. 在TeXstudio中查看宏包
在TeXstudio中编辑源代码时,导言区中常常调用宏包,把光标移到某个宏包名处,单击右键出现右键菜单。菜单的第一行是“打开宏包文件”选项,单击该选项,在编辑器右侧会出现这个宏包的说明文档,里面介绍了该宏包中命令的使用示例,不过遗憾的是,很多文档都是英文的。
2. 在CTAN上查看宏包
TEX综合资源网(Comprehensive TeX Archive Network,CTAN)集中存放了全球关于TEX和LATEX的资料。登录http://ctan.org/texarchive/help/Catalogue/brief.html,可以查看CTAN中所有的宏包。CTAN是TEX和LATEX用户的宝库,当你在编辑源代码时需要某些功能就可以去这个网站浏览,说不定真能够找到相应的宏包。
[1]em是相对长度单位,1 em是当前字号下大写字母M的宽度。
[2]放在段首无效的水平空白命令均可使用添加命令\mbox{}的方法,使段首产生对应宽度的空白。