\(\LaTeX{}\) 之宏包安装
安装和更新宏包
\(\textrm{TeX Live}\) 和 \(\textrm{MiKTeX}\) 分别提供了图形界面的宏包管理器 \(\textrm{TEX Live Manager}\) 和 \(\textrm{MiKTeX Package Manager}\),用于安装、管理和更新宏包。一般情况下,直接在图形界面的工具下按提示操作即可(\(\textrm{MiKTeX Package Manager}\) 有普通权限和管理员权限的版本,建议总是使用管理员权限的版本)。
两者也可以通过各自的命令行工具安装和更新宏包:
% TeX Live 命令行工具 tlmgr 的使用示例
% 安装/卸载宏包
tlmgr install <package-name>
tlmgr remove <package-name>
% 更新所有宏包(包括 tlmgr 本身)
tlmgr update --all --self
% 列出所有可更新的宏包
tlmgr update --list
% 指定更新源地址
% <CTAN mirrors> 形如 https://mirrors.tuna.tsinghua.edu.cn/CTAN
tlmgr repository set <CTAN mirrors>/systems/texlive/tlnet
% 查看宏包信息,加 --list 参数可列出宏包的所有文件
tlmgr info <package-name>
% MiKTeX 命令行工具 mpm 的使用示例
% 建议始终加 --admin 参数使用
% 安装/卸载宏包
mpm --admin --install <package-name>
mpm --admin --uninstall <package-name>
% 更新所有宏包
mpm --admin --update
% 列出所有可更新的宏包
mpm --admin --find-updates
% 指定更新源地址
mpm --admin --set-repository=<CTAN mirrors>/systems/win32/miktex/tm/packages
% 查看宏包信息
mpm --admin --print-package-info <package-name>
\(\textrm{TeX Live}\) 默认安装所有宏包, \(\textrm{MiKTeX}\) 的安装程序只包含了 \(\LaTeX{}\) 的一些基本宏包。从 \(\textrm{TeX Live}\) 的光盘镜像和 \(\textrm{MiKTeX}\) 的安装包体积可见一斑。
默认情况下,编译过程中如果遇到宏包未安装而报错的情况下,\(\textrm{MiKTeX}\) 会弹出一个对话框,让用户可以选择临时安装宏包,安装成功后继续编译。
手动安装宏包
\(\textcolor{red}{如非万不得已,尽量不要手动安装宏包}\)。绝大多数宏包都已打包到 \(\textrm{TeX Live}\) 和 \(\textrm{MiKTeX}\) 两大发行版的安装源,可用宏包管理器安装。如果用户知道某个宏包的名称,但不确定是否在发行版中已打包,可在 \(\textrm{CTAN}\) 中搜索,网址是https://www.ctan.org/。
在手动安装之前,有必要了解一下 \(\TeX{}\) 目录结构(\(\TeX{}\) Directory Structure, TDS)。它是 \(\TeX{}\) 发行版中宏包、字体、帮助文档等文件的组织结构。TDS 有时也称为 \(\textrm{TEXMF}\) 树,取 \(\TeX+\textrm{METAFONT}\) 之意。
以 \(\textrm{TeX Live}\) 为例,假设系统的 \(\textrm{TEXMF}\) 树根目录为 \(\textrm{C:\\texlive\\2020\\texmf-dist}\),其下有很多子目录,仅举几例:
\(\texttt{tex/latex}\) | \(\LaTeX{}\) 宏包 |
---|---|
\(\texttt{doc/latex}\) | \(\LaTeX{}\) 宏包的帮助文档 |
\(\texttt{source/latex}\) | \(\LaTeX{}\) 宏包的源代码 |
\(\texttt{bibtex}\) | \(\textrm{BibTeX}\) 工具相关文件,许多宏包配套的 \(\textrm{BibTeX}\) 格式文件位于子目录 \(\texttt{bst}\) 中 |
\(\texttt{fonts/tfm}\) | $ \TeX{}$ 使用的字体文件,\(\textrm{TFM}\) 格式 |
\(\texttt{fonts/type1}\) | \(\textrm{PostScript}\) 字体文件(\(\textrm{Type1}\)),\(\textrm{PFB}\) 格式 |
\(\texttt{fonts/opentype}\) | \(\textrm{OpenType}\) 格式的字体文件 |
需要手动安装的宏包,一般已经按照上述目录结构打包完成。手动安装时,尽量不要拷贝到系统的 \(\textrm{TEXMF}\) 树,而是拷贝到发行版提供的用户 \(\textrm{TEXMF}\) 树,如 \(\textrm{TeX Live}\) 的 \(\textrm{C:\\texlive\\texmf-local}\)。安装完成后,还需刷新 \(\TeX{}\) 发行版的文件名数据库,令新安装的宏包文件能够被系统找到。\(\textrm{TeX Live}\) 用户须在 Windows 命令行或者 Linux 终端执行命令:
mktexlsr
\(\textrm{MiKTeX}\) 用户的命令为:
initexmf --update-fndb
下载下来的宏包,有的直接包含\(\texttt{.sty}\) 文件(\(\texttt{.sty}\)文件就是package的最终形式);有的下载下来只包含了\(\texttt{.ins}\),\(\texttt{.dtx}\),以及一个 \(\textrm{readme}\) 文件,这时需要自己编译生成 \(\texttt{.sty}\) 文件,以及生成相应的 \(\textrm{manual}\) 。下面详细介绍生成 \(\texttt{.sty}\) 文件以及帮助文档的步骤。
第一步:下载宏包,解压,下载地址https://www.ctan.org/pkg;
第二步:找到你的解压后安装包地址,打开电脑的命令提示符界面,切换路径到这个package所在文件夹;
第三步:生成
*.sty
,在命令提示符界面输入latex *.ins
;生成帮助文档manual, 在命令提示符界面输入latex *.dtx
,编译完成以后,会生成一个叫做*.dvi
的文件,这个文件也可以用ctex自带的yap程序打开,不过不是很方便,所以最好还是把它转为pdf格式,分为两步,先输入dvips *.dvi
,生成*.ps
文件,再输入ps2pdf *.ps
,最终就生成了第四步:生成
*.sty
文件以后还需要把这个文件放到LaTeX能够识别的路径下,在CTEX下,可以是~\CTEX\MiKTeX\tex\latex
,\(\textrm{TeX Live}\) 下,可以选择~\texlive\texmf-local\tex\latex\local
, 你可以在这个路径下建立一个文件夹,文件夹的名字即是宏包的名字,把*.sty
放到这里,接着找到MikTeX的Console,以管理员方式打开,点击“任务”——“刷新文件名数据库”。
下面的表格中给出了文件存放的规则:
Type | Directory (under texmf/ or texmf-local/ ) |
Description |
---|---|---|
.afm | fonts/afm/foundry/typeface | Adobe Font Metrics for Type 1 fonts |
.bst | bibtex/bst/packagename | BibTeX style |
.cls | tex/latex/base | Document class file |
.dvi | doc | package documentation |
.enc | fonts/enc | Font encoding |
.fd | tex/latex/mfnfss | Font Definition files for METAFONT fonts |
.fd | tex/latex/psnfss | Font Definition files for PostScript Type 1 fonts |
.map | fonts/map/ | Font mapping files |
.mf | fonts/source/public/typeface | METAFONT outline |
doc | package documentation | |
.pfb | fonts/type1/foundry/typeface | PostScript Type 1 outline |
.sty | tex/latex/packagename | Style file: the normal package content |
.tex | doc | TeX source for package documentation |
.tex | tex/plain/packagename | Plain TeX macro files |
.tfm | fonts/tfm/foundry/typeface | TeX Font Metrics for METAFONT and Type 1 fonts |
.ttf | fonts/truetype/foundry/typeface | TrueType font |
.vf | fonts/vf/foundry/typeface | TeX virtual fonts |
others | tex/latex/packagename | other types of file unless instructed otherwise |
如果一个宏包还顺带安装了一些字体,还应该更新字体的映射。详细方法参详这里。
参考博文
[1] Partl H, Hyna I, Schlegl E. 一份 (不太) 简短的 LATEX2ε 介绍[J]. 2024. https://github.com/CTeX-org/lshort-zh-cn
[2] https://www.cnblogs.com/csucat/p/5142459.html
[3] https://blog.csdn.net/memray/article/details/45248259