LaTeX 的附加功能称为“宏包”。其中许多宏包已经预安装在 LaTeX 中,并可以立即在文档中使用。它们通常存储在 texmf/tex/latex 子目录中,每个宏包都有一个与其同名的子目录。texmf 目录名代表 "TEX 和 METAFONT"。要了解其他可用的宏包及其功能,可以使用 CTAN 搜索页面,其中包含 Graham Williams 的宏包目录链接。

一个宏包是一个文件或多个文件的集合,包含额外的 LaTeX 命令和编程,旨在为文档添加新的样式功能或修改已有的样式功能。主要有两种文件类型:扩展名为 .cls 的类文件和扩展名为 .sty 的样式文件。也可能存在附带的其他文件。当你尝试排版需要某个尚未安装的宏包的文档时,LaTeX 会用错误消息提醒你缺少该宏包。你可以下载已安装宏包的更新(包括与你的 LaTeX 版本一起安装的宏包,以及你自己添加的宏包)。你可以安装的宏包数量没有限制(除了磁盘空间!),但在任何 LaTeX 文档中同时使用的宏包数量有配置限制,尽管这个限制取决于每个宏包的大小。实际上,使用几十个宏包是没有问题的。

大多数 LaTeX 安装都会预安装大量样式宏包,因此你可以使用 TeX 发行版的包管理器或系统上的包管理器来管理它们。参见自动安装。但是,互联网上还有更多的宏包。查找样式宏包的主要地方是 CTAN。一旦你确定需要的宏包不在你的发行版中,可以使用任何 CTAN 服务器上的索引来找到你需要的宏包及其下载目录。参见手动安装


自动安装

如果你的操作系统支持包管理器或 portage 树,通常可以在仓库中找到宏包。

在 MikTeX 中,有一个包管理器,允许你单独选择需要的宏包。作为便捷功能,当你编译需要未安装宏包的文件时,MikTeX 会自动提示安装缺失的宏包。

在 TeX Live 中,通常会将发行版打包成几个大软件包。例如,要安装国际化相关的内容,你可能需要安装texlive-lang 这样的包。对于手动安装的 TeX Live,可以使用 tlmgr 来单独管理宏包。

tlmgr install <package1> <package2> ...
tlmgr remove <package1> <package2> ...

tlmgr 的使用在安装章节中有详细介绍。

如果通过上述方法找不到所需的宏包,请参见手动安装


特定操作系统的安装说明

在 Ubuntu 等版本(如 Trusty)上,你可以使用 texlivetexlive-extra 软件包,例如 texlive-fulltexlive-latex-extratexlive-math-extratexlive-plain-extratexlive-bibtex-extratexlive-generic-extra 以及语言包,这些都可以在 Ubuntu 的包网站上找到。你可以使用以下命令安装这些包:

sudo apt-get install <package-name>

手动安装

下载宏包

通常你需要查找两个文件,一个以 .dtx 结尾,另一个以 .ins 结尾。第一个文件是 DOCTeX 文件,它将宏包程序和文档结合成一个文件。第二个文件是安装例程(通常较小)。你必须始终下载这两个文件。如果没有这两个文件,可能有两种情况:

  • 宏包是一个更大的捆绑包的一部分,通常你不应该更新,除非你更换了 LaTeX 版本;

  • 它是一个较老或相对简单的宏包,作者没有使用 .dtx 文件。

将宏包文件下载到临时目录。通常会有一个 readme.txt 文件,简要描述宏包。你应当首先阅读这个文件。

安装宏包

安装 LaTeX 宏包有五个步骤。如果你没有 .dtx.ins 文件,而是直接获取了宏包文件,则可以跳过步骤 3,直接进行安装

  1. 解压文件
    运行 LaTeX 处理 .ins 文件。也就是说,在编辑器中打开该文件并像处理 LaTeX 文档一样处理它,或者你也可以在命令窗口中输入 latex 后跟 .ins 文件名来处理文件。这将从 .dtx 文件中提取所需的所有文件(因此你必须确保临时目录中有这两个文件)。如果有很多文件,记下或打印文件名(如果你想再次查看它们,可以查看日志文件)。

  2. 创建文档
    运行 LaTeX 处理 .dtx 文件。你可能需要运行两次或更多次,以确保交叉引用正确(就像其他 LaTeX 文档一样)。这将创建一个文档的 .dvi 文件,解释宏包的用途以及如何使用它。如果你更倾向于创建 PDF,可以使用 pdfLaTeX 替代。如果你还创建了 .idx 文件,则说明文档中包含了索引。要正确生成索引,遵循索引部分的步骤。有时你还会看到生成了 .glo(术语表)文件。这时,可以运行以下命令:

makeindex -s gglo.ist -o name.gls name.glo
  1. 安装文件
    当文档正在打印时,将宏包文件从临时目录移动或复制到 TeX 本地安装目录树中的正确位置。手动安装的宏包应始终放在“本地”目录树中,而不是包含所有预安装宏包的目录树中。这样做的目的是:
    a) 防止新安装的宏包覆盖 TeX 主要目录中的文件;
    b) 避免在下一次更新 LaTeX 时覆盖新安装的文件。

对于符合 TDS(TeX 目录结构)标准的系统,你的“本地安装目录树”是一个文件夹及其子文件夹。最外层的文件夹应命名为 texmf-local/texmf/。其具体位置取决于你的系统:

  • MacTeX: Users/username/Library/texmf/

  • Unix 系统: 通常是 ~/texmf/。例如在 Ubuntu 18 上使用 TexMaker 时,可能位于 /usr/share/texmf/

  • MiKTeX: 你的本地目录树可以是任何文件夹,只要你将其注册为用户管理的 texmf 目录(参见 MiKTeX 文档)。

"正确的位置" 有时会引起混淆,尤其是当你的 TeX 安装较旧或不符合 TeX 目录结构(TDS)时。对于符合 TDS 标准的系统,LaTeX .sty 文件的正确位置是 texmf/tex/latex/ 子目录中一个合适命名的子文件夹。这个子文件夹的命名应简洁且有意义(且最好较短)。例如,对于像 paralist 这样的包,可以将目录命名为 texmf/tex/latex/paralist

宏包文件的存放位置

通常,安装的宏包只有一个 .sty 文件需要移动,但对于复杂的宏包来说,可能会有多个文件,并且它们可能需要存放在不同的位置。例如,新的 BibTeX 宏包或字体宏包通常会有多个文件需要安装。这就是为什么创建一个子目录来存放宏包,而不是把文件直接放入杂项文件夹中的原因。如果宏包包含配置文件或其他文件,阅读文档以了解是否有特殊或推荐的位置存放这些文件。

宏包文件的存放位置

文件类型 目录(在 texmf/texmf-local/ 下) 描述
.afm fonts/afm/foundry/typeface Adobe 字体度量文件(Type 1 字体
.bib bibtex/bib/bibliography BibTeX 参考文献
.bst bibtex/bst/packagename BibTeX 样式
.cls tex/latex/base 文档类文件
.dvi doc 宏包文档
.enc fonts/enc 字体编码
.fd tex/latex/mfnfss METAFONT 字体定义文件
.fd tex/latex/psnfss PostScript Type 1 字体定义文件
.map fonts/map 字体映射文件
.mf fonts/source/public/typeface METAFONT 外轮廓
.pdf doc 宏包文档
.pfb fonts/type1/foundry/typeface PostScript Type 1 外轮廓
.sty tex/latex/packagename 样式文件:正常的宏包内容
.tex doc 宏包文档的 TeX 源文件
.tex tex/plain/packagename Plain TeX 宏文件
.tfm fonts/tfm/foundry/typeface METAFONT 和 Type 1 字体的 TeX 字体度量
.ttf fonts/truetype/foundry/typeface TrueType 字体
.vf fonts/vf/foundry/typeface TeX 虚拟字体
其他 tex/latex/packagename 除非另有指示,否则其他类型的文件

对于大多数 CTAN 上的字体,foundry(字体厂)是公共的。


更新你的索引

最后,运行你的 TeX 索引程序以更新宏包数据库。这个程序在每个现代版本的 TeX 中都有,根据你使用的 LaTeX 发行版,它的名字可能有所不同。(阅读随安装提供的文档以了解具体名称,或者查阅 http://www.tug.org/fonts/fontinstall.html#fndb):

  • teTeX, TeX Live, fpTeX: texhash

  • web2c: mktexlsr

  • MacTeX: MacTeX 会为你自动执行此操作。

  • MiKTeX: initexmf --update-fndb(或使用 GUI)

对于 MiKTeX 2.7 或更高版本,安装在 Windows XP 至 Windows 7 上:通过 开始 -> 所有程序 -> MiKTeX -> 设置,在 Windows 8 中,使用“设置”关键字并选择带有 MiKTeX 图标的选项。在“设置”菜单中,选择第一个选项卡,然后点击“刷新 FNDB”按钮(MiKTeX 将检查程序文件目录并更新文件名数据库)。之后只需点击“确定”进行验证。

这个步骤非常重要,否则一切都无法正常工作。


更新字体映射

如果你的宏包安装了任何 TrueType 或 Type 1 字体,除了更新索引外,你还需要更新字体映射文件。宏包作者应该已经为字体包含了一个 .map 文件。字体映射更新程序通常是 updmap 的某种变体,具体取决于你的发行版:

  • TeX Live 和 MacTeX: updmap --enable Map=mapfile.map(如果你将文件安装在个人目录树中),或者 updmap-sys --enable Map=mapfile.map(如果你将文件安装在系统目录中)。

  • MiKTeX: 运行 initexmf --edit-config-file updmap,将 "Map mapfile.map" 添加到打开的文件中,然后运行 initexmf --mkmaps

详见 http://www.tug.org/fonts/fontinstall.html


手动安装

下载宏包

你通常需要查找两个文件,一个以 .dtx 结尾,另一个以 .ins 结尾。第一个是 DOCTeX 文件,它将宏包程序和文档合并为一个文件。第二个是安装例程(通常较小)。你必须始终下载这两个文件。如果没有这两个文件,可能有两种情况:

  • 宏包是一个更大捆绑包的一部分,通常你不应该更新,除非更换 LaTeX 版本;

  • 它是一个较旧或简单的宏包,作者没有使用 .dtx 文件。

将宏包文件下载到临时目录。通常会有一个 readme.txt 文件,简要描述宏包。你应该首先阅读这个文件。


安装宏包

安装 LaTeX 宏包有五个步骤。如果你没有 .dtx.ins 文件,而是直接获得了宏包文件,则可以跳过步骤 3,直接开始安装

  1. 解压文件
    运行 LaTeX 处理 .ins 文件。也就是说,在编辑器中打开该文件并像处理 LaTeX 文档一样处理它,或者在命令窗口中输入 latex 后跟 .ins 文件名。这样可以从 .dtx 文件中提取所有所需文件(因此必须确保两个文件都在临时目录中)。记下或打印文件名(如果文件太多,可以查看日志文件)。

  2. 创建文档
    运行 LaTeX 处理 .dtx 文件。你可能需要运行多次,以确保交叉引用正确(就像其他 LaTeX 文档一样)。这将生成一个 .dvi 文件,解释宏包的用途和使用方法。如果你更喜欢创建 PDF,可以使用 pdfLaTeX 代替。如果你还创建了 .idx 文件,说明文档包含索引。要正确生成索引,按照索引部分的步骤操作。有时你还会看到生成了 .glo(术语表)文件。这时可以运行以下命令:

makeindex -s gglo.ist -o name.gls name.glo
  1. 安装文件
    在文档生成的同时,将宏包文件从临时目录移动或复制到 TeX 本地安装目录树中的正确位置。手动安装的宏包应始终放入“本地”目录树中,而不是包含所有预安装宏包的目录树中。这样做可以防止新宏包覆盖 TeX 主要目录中的文件,并确保新安装的文件在下次更新 LaTeX 时不会被覆盖。

对于符合 TDS(TeX 目录结构)标准的系统,"本地安装目录树" 是一个文件夹及其子文件夹。最外层的文件夹通常应命名为 texmf-local/texmf/。其具体位置取决于你的系统:

  • MacTeX: Users/username/Library/texmf/

  • Unix 系统: 通常是 ~/texmf/,例如在 Ubuntu 18 上使用 TexMaker 时,可能位于 /usr/share/texmf/

  • MiKTeX: 本地目录树可以是任何文件夹,只要你将其注册为用户管理的 texmf 目录。


检查宏包状态

检查文件是否可供 TeX 编译器使用的通用方法是使用命令行工具 kpsewhich

$ kpsewhich tikz
/usr/local/texlive/2012/texmf-dist/tex/plain/pgf/frontendlayer/tikz.tex

kpsewhich 只会搜索文件,而不是宏包,它返回文件的路径。若要查看特定宏包的详细息,可以使用命令行工具 tlmgr(仅适用于 TeX Live):

tlmgr info <package>

tlmgr 工具有更多选项,详细息可以通过以下命令查阅:

tlmgr help

宏包文档

要了解一个宏包提供了哪些命令(以及如何使用它们),你需要阅读宏包的文档。在你的安装目录中的 texmf/doc 子目录下,应该有一个包含 .dvi 文件的目录,每个已安装的宏包都有一个相关的文档。此位置是特定于发行版的,但通常可以在以下路径中找到:

发行版 路径
MacTeX /Library/TeX/Documentation/texmf-doc/latex
MiKTeX %MIKTEX_DIR%\doc\latex
TeX Live $TEXMFDIST/doc/latex

通常,大部分宏包的文档都在 latex 子目录中,尽管其他宏包(如 BibTeX 和字体宏包)会存放在 doc 中的其他子目录下。文档目录的名称通常与宏包名称相同(例如 amsmath),通常包含一个或多个相关的文档文件,格式可以是 .dvi.txt.pdf 等。如果安装过程中没有安装文档,你可以从 CTAN 下载这些 .dvi 文件。在使用宏包之前,你应该仔细阅读文档,尤其是通常称为“用户接口”的子部分,这部分描述了宏包提供的命令。

你通常可以通过 texdoc 命令自动打开任何已安装宏包的文档:

texdoc <package-name>

外部资源

查找 LaTeX 宏包的最佳方法是访问之前提到的 CTAN 搜索页面。CTAN 还提供了其他资源,形成了 TeX 在线目录:

  • 字母目录:带有简短描述

  • 主题目录:系统地按主题分类的宏包

  • 层次目录:镜像 CTAN 文件夹结构



Last modified: Friday, 18 April 2025, 11:00 AM