除了编译之外,TeX 安装还附带一些让日常工作更顺手的小工具:用 texdoc 打开软件包手册,用 texfot 把编译输出收束到关键信息,用 Ghostscript 生成或压缩 PDF,用 dvisvgm 把输出转换成适合 Web 的 SVG。本页是这四个工具的速查表。
把这四个工具放进写作流程
本章的目标不是背下四条命令,而是知道在写作文档的每个阶段该找哪个工具。添加新软件包之前,先用 texdoc 阅读手册。构建输出变得嘈杂时,用 texfot 把警告浮现出来。提交用 PDF 过大时,用 Ghostscript 压缩,然后检查链接和嵌入字体。要把公式或图放到 Web 上时,用 dvisvgm 导出 SVG,并在浏览器中高倍缩放检查。按这个顺序使用,调研、写作、收尾和发布就会连成一个流程。
texdoc — 打开软件包手册
大多数 CTAN 软件包都带有详细手册(PDF),安装后它已经在你的机器上。输入 texdoc PACKAGE,它会找到该手册并用查看器打开;优点是可离线阅读,而且内容与实际安装的版本一致。它随 TeX Live 提供(最初由 Manuel Pégourié-Gonnard 编写);同一数据库也可以在 texdoc.org 浏览。
texdoc booktabs # booktabs の説明書を開く / open booktabs’ manual
texdoc -l siunitx # 候補を一覧表示(開かない)/ list matches instead of opening默认情况下,它会打开最匹配的一项。加上 -l (--list) 时,不会直接打开,而是列出候选项供你选择。-s (--showall) 会扩大结果范围,把评分较低的候选项也显示出来。给报告或论文某一章添加软件包时,先用 texdoc PACKAGE 确认加载命令、典型示例和需要注意的选项;然后只把必要的最小设置复制到导言区。这样配置不会越堆越乱。
texfot — 只保留重要消息
一次 TeX 运行会吐出大量消息,真正需要看的警告或错误很容易滚过去。texfot(Karl Berry 编写的公有领域 Perl 脚本)会运行引擎,并把记录过滤到“值得注意”的行:错误、警告、overfull/underfull 盒子等。它会原样传递退出码,因此不会破坏构建工具对成功与否的判断。
texfot pdflatex document.tex # 出力を要約しつつコンパイル / compile with a quiet, filtered log要与 latexmk 配合使用,请在配置文件中用 texfot 包住引擎调用:
# .latexmkrc
$pdflatex = 'texfot pdflatex %O %S';Ghostscript — 生成和压缩 PDF
gs (Ghostscript) 是 PostScript/PDF 解释器,也是 ps2pdf 底层运行的程序。指定 -sDEVICE=pdfwrite 后它会写出 PDF,因此可用于把 PS 转成 PDF、合并多个 PDF,以及压缩过大的 PDF(降低其中图像的采样分辨率)。质量通过 -dPDFSETTINGS 预设选择,例如 /screen(屏幕检查)、/ebook(中等)、/printer(面向打印)、/prepress(面向印前)。这些预设会重建 PDF,并可能改变输入内容。提交或交付印刷用 PDF 时,压缩后务必检查图像可读性、嵌入字体、链接和页面尺寸。
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -dNOPAUSE -dBATCH \
-sOutputFile=small.pdf big.pdfdvisvgm — DVI 转 SVG
dvisvgm(Martin Gieseking 编写)把 DVI 转换为 SVG(矢量图形)。它也可以接受 EPS;加上 --pdf 时也可接受 PDF 输入。想把任意缩放都保持清晰的公式或图放到 Web 上时,它非常适合。默认情况下字体会作为 SVG 嵌入,但指定 --font-format=woff2(或 woff、ttf)可切换为 Web 字体格式。使用 PDF 输入时,取决于处理路径,文字可能会变成路径而不是嵌入字体;先决定从 DVI 还是 PDF 转换,然后检查实际浏览器渲染。用 -p (--page) 选择页面。
latex equation.tex # → equation.dvi
dvisvgm --font-format=woff2 equation.dvi # → equation.svg
dvisvgm --pdf figure.pdf # PDF を入力にする / convert a PDF排查常见失败
- 如果
texdoc打开了错误的手册,运行texdoc -l PACKAGE,查看候选项,并按编号选择目标 PDF。 - 如果
texfot没有显示问题但 PDF 仍然不对,暂时去掉 texfot,阅读原始日志,确认有用上下文是否被过滤掉。 - 如果用
Ghostscript压缩后链接或书签消失,PDF 重建过程可能丢掉了不可见信息。提交前请比较原始 PDF 和压缩后的 PDF。 - 如果
dvisvgm --pdf把文字变成路径,SVG 就不会保留可搜索或可替换字体的文本。需要可编辑的 Web 图形时,先尝试从 DVI 转换。
何时使用各工具
- 查找软件包的用法 →
texdoc PACKAGE。 - 让嘈杂日志安静下来 →
texfot(配合latexmk)。 - PDF 过大 / 将 PS 转成 PDF →
Ghostscript(-dPDFSETTINGS)。 - 把公式或图以 SVG 放到 Web 上 →
dvisvgm。