LaTeX/安装额外包
LaTeX 的附加功能称为包。数十种这样的包预先安装在 LaTeX 中,可以立即在您的文档中使用。它们应该都存储在以下目录的子目录中texmf/tex/latex以每个包的名称命名。目录名“texmf”代表“TEX 和 METAFONT”。要了解哪些其他包可用以及它们的功能,您应该使用CTAN 搜索页面,其中包含指向 Graham Williams 的综合包目录的链接。
一个包是一个文件或一组文件,包含额外的 LaTeX 命令和编程,这些命令和编程添加了新的样式功能或修改了已有的样式功能。主要有两种文件类型:以.cls为扩展名的类文件和以.sty为扩展名的样式文件。还可能存在辅助文件。当您尝试排版需要系统中未安装的包的文档时,LaTeX 会向您发出错误消息,警告您缺少包。您可以下载您已拥有包的更新(包括与您的 LaTeX 版本一起安装的包以及您添加的包)。您的计算机上可以安装的包数量没有限制(除了磁盘空间!),但是对于任何一个 LaTeX 文档中同时使用的包数量,存在一个可配置的限制,尽管这取决于每个包的大小。实际上,即使有几十个包处于活动状态,也没有问题。
大多数 LaTeX 安装都附带大量预先安装的样式包,因此您可以使用 TeX 发行版的包管理器或系统上的包管理器来管理它们。请参见自动安装。但是,网上还有更多可用。在互联网上查找样式包的主要地方是CTAN。一旦您确定了发行版中没有的需要的包,请使用任何 CTAN 服务器上的索引找到您需要的包以及可以从中下载它的目录。请参见手动安装。
自动安装
[edit | edit source]如果在具有包管理器或 Portage 树的操作系统上,您通常可以在存储库中找到包。
使用 MikTeX,有一个包管理器允许您单独选择您想要的包。作为一项方便的功能,在编译需要未安装包的文件时,MikTeX 会自动提示您安装缺少的包。
使用 TeX Live,通常将发行版打包成几个大型包。例如,要安装与国际化相关的某些内容,您可能需要安装一个名为texlive-lang的包。使用手动安装的 TeX Live,请使用tlmgr单独管理包。
tlmgr install <package1> <package2> ... tlmgr remove <package1> <package2> ...
使用tlmgr在安装章节中介绍。
如果您无法使用任何上述方法找到所需的包,请参见手动安装。
特定操作系统的说明
[edit | edit source]在 Ubuntu 上,使用 Trusty 等发行版,您可以使用 texlive 和 texlive-extra 包,例如 texlive-full、texlive-latex-extra、texlive-math-extra、texlive-plain-extra、texlive-bibtex-extra、texlive-generic-extra 和语言包,这些包都可以在这里的 Ubuntu 包站点以及这里的 Trusty 更新中找到。您可以使用 sudo apt-get install <在 此处插入包名称>
安装这些包。
手动安装
[edit | edit source]下载包
[edit | edit source]您通常需要查找两个文件,一个以.dtx结尾,另一个以.ins结尾。第一个是 DOCTeX 文件,它将包程序及其文档合并到一个文件中。第二个是安装例程(非常小)。您必须始终下载这两个文件。如果这两个文件不存在,则表示以下两种情况之一
- 或者该包是大型捆绑包的一部分,除非您更改 LaTeX 版本,否则您通常不应该更新它;
- 或者它是一个较旧的或相对简单的包,由没有使用.dtx文件的作者编写。
将包文件下载到临时目录。通常会有一个readme.txt文件,其中包含该包的简要描述。您当然应该先阅读此文件。
安装包
[edit | edit source]安装 LaTeX 包有五个步骤。(这些步骤也可以应用于您自己编写的复杂包的各个部分;在这种情况下,请直接跳到步骤 3。)
1. 提取文件 在.ins文件上运行 LaTeX。也就是说,在您的编辑器中打开该文件,并像处理 LaTeX 文档一样处理它(它本身就是一个 LaTeX 文档),或者如果您愿意,在您的临时目录中的命令窗口中键入 latex,后跟.ins文件名。这将从.dtx文件中提取所有必需的文件(这就是为什么您必须在临时目录中同时拥有这两个文件的原因)。如果创建的文件很多,请记下或打印创建的文件名(如果您想再次查看文件名,请阅读日志文件)。
2. 创建文档 在.dtx文件上运行 LaTeX。您可能需要运行它两次或更多次才能使交叉引用正确(就像任何其他 LaTeX 文档一样)。这将创建一个.dvi文档文件,解释该包的用途以及如何使用它。如果您愿意创建 PDF,请运行 pdfLaTeX。如果您创建了一个.idx文件,则意味着该文档也包含索引。如果您想正确创建索引,请按照索引部分中的步骤操作。有时您会看到已生成.glo(词汇表)文件。请改用以下命令
makeindex -s gglo.ist -o name.gls name.glo
3. 安装文件 在文档打印时,将包文件从您的临时目录移动或复制到 TeX 本地安装目录树中的正确位置。手动安装的包应始终放置在您的“本地”目录树中,而不是包含所有预安装包的目录树中。这样做是为了a)防止您的新包意外覆盖主 TeX 目录中的文件;以及b)避免在您下次更新 TeX 版本时,您新安装的文件被覆盖。
对于符合 TDS(TeX 目录结构)的系统,您的“本地安装目录树”是一个文件夹及其子文件夹。最外层的文件夹可能应该称为texmf-local/或texmf/。它的位置取决于您的系统
- MacTeXUsers/用户名/Library/texmf/.
- Unix 类系统:通常~/texmf/. 如果你在 Ubuntu 18 上使用 TexMaker,它可能位于
/usr/share/texmf/
- MikTeX:你的本地目录树可以是任何你喜欢的文件夹,只要你将其注册为用户管理的 texmf 目录(参见 http://docs.miktex.org/manual/localadditions.html#id573803)
“正确位置”有时会导致混淆,尤其是在你的 TeX 安装很旧或不符合 TeX 目录结构 (TDS) 的情况下。对于符合 TDS 的系统,“正确位置”用于 LaTeX.sty文件是texmf/tex/latex/的适当命名的子目录。 “适当命名”是指有意义且合理的(并且可能很短)。例如,对于像 paralist 这样的包,我会将目录称为texmf/tex/latex/paralist.
通常只有一个.sty文件需要移动,但在复杂的包的情况下,可能会有多个文件,并且它们可能位于不同的位置。例如,新的 BibTeX 包或字体包通常会有几个文件需要安装。这就是为什么为包创建一个子目录而不是将文件与其他无关的东西一起放到 misc 中是一个好主意。如果存在配置或其他文件,请阅读文档以了解是否有特殊或首选的位置可以将它们移动到。
类型 | 目录(在texmf/或texmf-local/) | 描述 |
---|---|---|
.afm | fonts/afm/foundry/typeface | Type 1 字体的 Adobe 字体度量 |
.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 轮廓 |
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是public.
4. 更新索引 最后,运行你的 TeX 索引程序以更新包数据库。该程序包含在每个现代版本的 TeX 中,并且根据你使用的 LaTeX 发行版具有不同的名称。(阅读随安装提供的文档以了解它是哪个,或者咨询 http://www.tug.org/fonts/fontinstall.html#fndb)
- teTeX,TeX Live,fpTeXtexhash
- web2cmktexlsr
- MacTeX:MacTeX 似乎会为你完成此操作。
- MikTeXinitexmf --update-fndb(或使用 GUI)
- 在 Windows XP 到 Windows 7 上安装的 MiKTeX 2.7 或更高版本:开始 -> 所有程序 -> MiKTex -> 设置。在 Windows 8 中使用关键字 设置并选择带有 MiKTex 徽标的 设置选项。在 设置菜单中选择第一个选项卡并单击 刷新 FNDB 按钮(MiKTex 然后将检查 Program Files 目录并更新文件名称数据库列表)。之后只需单击“确定”即可验证。
此步骤绝对是必要的,否则什么都不会起作用。 |
5. 更新字体映射 如果你的包安装了任何 TrueType 或 Type 1 字体,你需要更新字体映射文件,除了更新索引之外。你的包作者应该已经包含了一个.map用于字体的文件。映射更新程序通常是updmap的某些变体,具体取决于你的发行版
- TeX Live 和 MacTeXupdmap --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。
这个过程没有被广泛自动化的原因是,仍然有数千个不符合 TDS 的安装,例如旧的共享 Unix 系统和一些 Microsoft Windows 系统,因此安装程序无法猜测将文件放在哪里:你必须知道这一点。还有一些系统,其中所有者、用户或安装程序选择不遵循推荐的 TDS 目录结构,或者由于政治或安全原因无法这样做(例如,共享系统,其中用户无法写入受保护的目录)。存在texmf-local目录(在某些系统上称为texmf.local)的原因是为本地修改或个人更新提供一个位置,尤其是在你是在共享或管理的系统(Unix、Linux、VMS、Windows NT/2000/XP 等)上的用户时,你可能没有写访问权限到主 TeX 安装目录树。你也可以在自己的登录目录中拥有一个个人texmf子目录。但是,你的安装必须配置为首先查看这些目录,以便对标准包的任何更新将在主texmf树中的替代副本之前找到。所有现代 TeX 安装都应该这样做,但如果没有,你可以编辑texmf/web2c/texmf.cnf自己。
检查包状态
[edit | edit source]检查文件是否可用于 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
包文档
[edit | edit source]要了解包提供了哪些命令(以及如何使用它),你需要阅读文档。在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等)。文档通常与包的名称相同,但也有例外(例如,amsmath的文档位于latex/amsmath/amsdoc.dvi)。如果你的安装过程没有安装文档,可以从 CTAN 下载所有 DVI 文件。在使用包之前,你应该仔细阅读文档,尤其是通常称为“用户界面”的小节,其中描述了该包提供的命令。你不能只是猜测并希望它能起作用:你必须阅读并找出答案。
你通常可以使用 texdoc 命令自动打开任何已安装的包文档
texdoc <package-name>
外部资源
[edit | edit source]查找 LaTeX 包的最佳方法是前面提到的 CTAN:搜索。来自 TeX 目录在线 的其他资源
另请参见
[edit | edit source]