TeX Live/FAQ
技巧与提示
参考文献 / 引用
包含在 texlive-bibtexextra 中的 Biblatex 就是你正在寻找的东西。针对特定出版商(例如 IEEE、某些大学等)的一些模板包含在 texlive-publishers 软件包中。
ConTeXt
(英文) ConTeXt 应该会自动启用。请记住,用于 ConTeXt 的 ruby wrapper 是
texexec
如果 ConTeXt 未启用(或你想使用本地化版本),请使用
texconfig
来编辑包含格式的配置文件,并取消相应行的注释。要设置 ConTeXt 的新 MarkIV 实现,请参阅 https://wiki.contextgarden.net/Running_Mark_IV
故障排除
更新后 texlive 停止工作
- 最常见的原因是你在 TEXMFCONFIG 中的配置或 TEXMFVAR 中的格式与新版本冲突。
- 升级后,TeX 出现以下错误消息并“停止工作”
Fatal format file error; I'm stymied.
需要理解的是,TeX 系统会“预编译”格式(也就是说,它获取构成 LaTeX 格式的宏,并创建一个二进制文件 (latex.fmt),当你调用 "latex <somefile>" 时就会使用该文件)。现在,当 tex 二进制文件本身更新时,所有预编译的格式也需要重新编译。虽然 pacman 为你处理了系统范围的格式,但上述信息意味着如果用户(或像 LyX 这样的程序)曾自行编译过格式,那么该用户需要手动重新编译格式。相应的命令是fmtutil --all。(顺便说一下,*.fmt文件的位置是<texmfroot>/texmf-var/web2c。)另一个选择是从本地树 (~/.texlive/texmf-var/web2c/*.fmt) 中删除*.fmt文件,并使用系统生成的格式,可以使用以下命令重新生成:# fmtutil-sys --all
- 升级后,某些字体无法正常使用;或者出现 TeX 找不到某些字体的错误。这与下面的问题有关——你很可能有一个本地的
updmap.cfg文件(通过kpsewhich updmap.cfg检查),它没有反映出升级后*.map文件和字体的变化。在这种情况下,请采用 #pdftex 和/或 dvips 使用位图字体而非 Type 1 PostScript 字体 中的方法。
pdftex 和/或 dvips 使用位图字体而非 Type 1 PostScript 字体
症状:输入/输出错误。
- 放大 PDF/ps 文件时,字体出现严重的像素化
- 运行 tex 时,耗时很长,因为它在使用 metafont 生成字体
- pdftex 生成的日志文件末尾显示包含 *.pk 字体而非 *.pfb 字体
告诉 pdftex/dvips 哪些字体应作为 Type 1 字体(而非传统的 位图字体)包含的文件具有 .map 后缀,并位于 <texmfroot>/fonts/map/{pdftex,dvips}/updmap/{pdftex.map,psfonts.map} 某处。首先,你需要找到你想要的 map 文件名称。我的 TeX 编译日志给出了错误 "Font rtxr at 540 not found",于是我输入 locate rtxr,得到了 /usr/share/texmf-dist/fonts/afm/public/txfonts/rtxr.afm 等结果。这告诉我该字体包是 txfonts。
你 不需要 手动编辑这些 map 文件;它们仅用于检查导致问题的 favorite type1 字体是否正确存放。
- 当你运行以下命令时,这些文件会自动生成:
$ updmap
以用户身份运行,或者
# updmap-sys
以 root 身份运行以进行系统范围的更改
为了让你喜爱的字体(例如 kpfonts 或 txfonts)在 pdf 和 ps 文件中被正确地作为 Type 1 字体使用,你需要找到随包附带的 .map 文件(例如 kpfonts.map;你不需要对该文件实际 *操作* 任何事情,只需知道它在某处即可),然后通过运行以下命令编辑 updmap.cfg:
$ updmap --edit
以用户身份(或
# updmap-sys --edit
以 root 身份)运行并添加以下行:
Map kpfonts.map
或该行:
MixedMap kpfonts.map
(MixedMap 表示字体也可用作位图字体),然后退出编辑器。此时,你应该看到提示 updmap 正在重新生成 {pdftex,psfonts}.map 文件的消息。
或者,直接运行:
$ updmap --enable Map=kpfonts
或(以 root 身份):
# updmap-sys --enable Map=kpfonts
如果你只想在不进入编辑器的情况下添加一个 map 文件。
这应该是足够的,下次运行 pdftex/dvips 时应该已经包含了 Type 1 版本的字体。
使用 TeX 命令创建图形
带有 LaTeX 标签的图片
除了某些 LaTeX 源码内宏(编写起来相当麻烦)之外,还有优秀的“图形编程语言” metapost 及其(大致上的)继承者 asymptote。它们非常强大,但与 tex 本身的方法类似——你写下你想要什么以及各元素如何关联,然后编译器生成图片。metapost 的目标格式是 postscript;asymptote 的目标格式是 EPS/PDF/PNG。
与 TeX 本身(即 Plain TeX, LaTeX 或 ConTeXt)结合得更紧密的是——每种格式都有相应的层——相对较新的 PGF 软件包及其名为 TIKZ 的语言。
Python 库 PyX (python-pyx) 提供了使用 Python 编程绘制图片的可能性,并使用 TeX 进行排版。
最后但同样重要的是:PSTricks,它提供了将 Postscript 代码直接引入 TeX 的接口 (ps2pdf)。如果你想要 pdf 输出,会有一些障碍需要克服,因为 PSTricks 与 pdftex 不兼容。
带有 LaTeX 标签的图片 - GUI
矢量编辑器的“祖父级”工具 —— xfigAUR 能够产生与 TeX 相关的输出。我最近使用 ipe 的体验相对较好(保存为 EPS/PDF)。Inkscape 也是一个不错的选择。