跳转到内容
来自 Arch Linux 中文维基

根据Wikipedia:

TeX Live 是一种自由的的 TeX 排版系统发行版,包含主要的 TeX 相关程序、宏包和字体。

TeX Live 包括:

  • 多种 TeX 引擎,例如:
  • 基本宏包(在 TeX 术语中称为“格式”),例如:
  • 许多用户制作的包

TeX Live 的替代方案包括 MikTeX 和 Tectonic,它们采用最小化安装方式,并在运行时按需下载所需的包。

Arch-packaged TeX Live 与原生 TeX Live 的对比

安装 TeX Live 有多种方式。虽然 TeX Live 的一个快照应该可以通过 Arch Linux 包仓库获得(如下所述),但该快照大多数情况下每年只更新一次。相比之下,TeX Live 本身是一个滚动发布的发行版,基于用户每年必须升级一次的模型,但每个软件包可以在子日级别进行更新。

拥有原生且最新的 TeX Live 安装的优点包括可以访问最新的功能和 bug 修复,以及相关的文档。尽管在没有原生 TeX Live 的情况下(请参见 TEXMFLOCALTEXMFHOME),仍然可以升级或安装单独的软件包,但这需要额外的注意——必须确保所有相关软件包的版本彼此兼容。

与原生 TeX Live 相比,Arch 仓库中的软件包通常不包括文档,这是一个问题,因为来自 CTAN 的文档通常仅适用于 TeX 包的最新版本。

注意:多个 TeX Live 安装可以在单一系统上和平共存。

原生 TeX Live

安装

请参见 quickinstall 文档,并根据需要查看 full 文档。安装过程如下:

  1. 下载 netinstall 压缩包
  2. 解压压缩包并进入新创建的目录
  3. 运行安装脚本,perl ./install-tl,启动一个交互式安装程序(文本界面)
    1. 设置所需的安装路径
    2. 可选地选择 TeX Live 提供的某些“集合”包
    3. 可选地选择 Letter 纸张尺寸作为默认,而不是 A4
    4. 等待所有文件下载完毕
  4. 安装脚本会在过程结束时通知您,需要将 TeX Live 安装路径添加到系统可执行文件和文档路径中:PATHMANPATHINFOPATH。安装脚本会输出在退出前所需的具体路径。

更新

请参阅 tlmgr 文档,tlmgr update --all 将升级安装时选择的所有包集合。它还会安装已添加到安装的 TeX Live 包集合中的新包。

每年一次,当 TeX Live 发布新版本时,tlmgr update --all 会失败,这时需要重新安装 TeX Live。

Arch 打包的 TeX Live

请注意,texlive-binextra 中的某些工具有可选依赖项,未自动安装。例如,latexindent 依赖于 perl-yaml-tinyperl-file-homedir

提示:如果缺少特定的 .sty 文件,可以运行 pacman -F 来查找提供该文件的 Arch 包:
$ pacman -F soul.sty
extra/texlive-plaingeneric 2023.66594-19 (texlive)
    usr/share/texmf-dist/tex/generic/soul/soul.sty

如果需要安装一个可用的 CTAN TeX 包,请运行以下命令来确定它是否包含在 Arch 的 texlive- 包中:

$ tlmgr info ctan_package_name | grep collection

这将列出与 Arch texlive- 包对应的 TeX Live 包集合名称(也可以检查 texlive包组 组以确认是否存在此包)。例如,输出 collection: collection-plaingeneric 表示该 TeX 包包含在 texlive-plaingeneric 中。

另外,可以使用 tlmgr 手动安装单个 TeX 包(见下文)。

注意:某些 TeX Live 包中包含的工具和实用程序依赖于 ghostscriptperlpythonruby。有关详细信息,请查看每个包的可选依赖项。

tllocalmgr

警告:有建议认为 tllocalmgr 将不再工作。请参阅 [2]

tllocalmgr 工具由 tllocalmgrAUR 提供,允许您将来自 CTAN 的包作为 pacman 包安装(和更新)。请参见 使用方法-h)了解详细信息。

tlmgr

使用 texlive-basic 时,tlmgr 工具应该能够直接使用。如果遇到问题或您正在使用旧版包 texlive-core,则应按照以下步骤进行,以使 tlmgr 正常工作。

注意:
  • 虽然 texlive-basic 提供了 tlmgr 脚本在 TEXMFDIST 中,但它是损坏的(FS#74404)。可以按照下述步骤修复。
  • texconfig(1) 命令大多数情况下无法使用,因为它部分依赖于 tlmgrFS#59094)。texconfig 的交互模式需要 dialog

本文或本章节的事实准确性存在争议。

原因: 此“修复”应集成到 texlive-basic 包中。编辑 TEXMFDIST 中的文件将不会在包升级时保存。(在 Talk:TeX Live 中讨论)


tlmgr 工具是安装和更新来自 CTAN 的包的标准方法。它需要进行以下小修复:

首先,编辑 TEXMFDIST/scripts/texlive/tlmgr.pl,将 $Master = "$Master/../.."; 替换为 $Master = "${Master}/../../..";。路径前缀 TEXMFDIST 不是预定义的环境变量,它在本文下方定义。请将其替换为正确的值。

也可以通过命令行执行 sudo sed -i 's/\$Master = "\$Master\/..\/..";/\$Master = "\$Master\/..\/..\/..";/' "$TEXMFDIST/scripts/texlive/tlmgr.pl"

为 perl 脚本创建别名(可以将其添加到 shell 初始化文件中)。

alias tlmgr='TEXMFDIST/scripts/texlive/tlmgr.pl --usermode'

现在,您可以在用户模式下初始化它(这将使用 ~/texmf 作为安装前缀):

$ tlmgr init-usertree

设置您首选的 镜像站点。您需要在镜像路径末尾添加 /systems/texlive/tlnet,例如:

$ tlmgr option repository http://mirrors.rit.edu/CTAN/systems/texlive/tlnet

现在,您可以像往常一样安装 CTAN 包:

$ tlmgr install package_name

包文档

官方仓库中的包不包含字体/宏包的文档或源文件。

要离线访问文档,安装 texlive-doc 包,它包含完整的 TeX Live 文档和源文件。

您也可以在线访问文档:

用法

请参见以下资源:

有些人使用 TeX 编辑器来创建文档。

编译文档的高级封装器

通常来说,使用 latexmk(1) 等高级工具,或者使用 arara(1),比直接调用 pdflatex(1) 更有意义,主要是因为较低级的工具通常需要多次运行才能完全编译一个文档。

texmf 树和 Kpathsea

texmf 树(texmf 代表 TeX 和 Metafont)应遵循 TeX 目录结构,否则可能无法找到文件。[3]

TeX Live 使用 Kpathsea 库来通过文件名查找路径,跨越多个 texmf 树和当前工作目录。

Kpathsea 按逆序搜索以下变量(较晚的树会覆盖较早的树)。

变量 Arch 默认值 1) [4] 使用
TEXMFDIST /usr/share/texmf-dist 原始分发文件
TEXMFLOCAL /usr/local/share/texmf:/usr/share/texmf 系统管理员用于全局安装附加或更新的宏、字体等
TEXMFSYSVAR /var/lib/texmf updmap 和 fmtutil(用户模式)存储(缓存)运行时数据
TEXMFSYSCONFIG /etc/texmf updmap 和 fmtutil(用户模式)存储修改后的配置数据
TEXMFHOME ~/texmf 用户用于个别安装附加或更新的宏、字体等
TEXMFVAR ~/.texlive/texmf-var updmap 和 fmtutil(系统模式)存储(缓存)运行时数据
TEXMF

CONFIG || ~/.texlive/texmf-config || 用户模式的配置数据

相关页面