在 GIT 源代码控制环境中管理多个手册的 TDS 树

在 GIT 源代码控制环境中管理多个手册的 TDS 树

我们的所有文档均使用 LaTeX,其中包括多个产品线和多份手册。这些手册与安装程序一同使用我们的自动构建服务器构建。

我们已经开发了一个非常复杂的 LaTeX“核心”,它是各种包(一些是自己构建的)、类、字体、样板文本等的 TDS 树。它用于我们所有的文档中,并且经常以各种方式进行改进和修订,其中一些与“我们以前的方式”不兼容。(尽管我尽量表现得像我所能的。:)

随着我们的发展,新产品(或产品的新版本)使用最新核心,而旧版本应使用旧核心。为此,我们将核心设为所有 GIT 存储库的子模块。它会进行分支和修订,就像我们制作的产品会进行修订一样。

问题:

我需要一种方法来在编译手册之前动态添加 TDS 树。也就是说,在任何给定开发人员的计算机(可能是 Mac 或 PC)上,他们可能打开了多个项目分支/版本,每个分支/版本(可能)都有不同的核心。当他们在 WinEDT 或 TextMate 中点击“编译”时,我希望系统自动获取该项目的核心。

理想情况下,我希望能够说出类似这样的话:

lualatex --tdstree "../core" mymainfile.tex

据我所知,这完全是编造的。:) 除此之外,是否有某种相对跨平台的方式来做同样的事情?我的问题是:

  • 当前项目的相对路径非常棘手,因为没有开发人员会将本地源文件放在同一个位置,而且 PC 和 Mac 上的“home”也不相同。我认为不可能真的说“相对于正在处理的文件,TEXMFHOME 目录位于后面一个位置,名为 core”。
  • 一旦设置了 TDS 树,我似乎永远无法弄清楚每个平台需要什么。我想我可以弄清楚,但可能只是sudo texhashluatools --generate。问题是我不想让他们每次切换时都必须记住这一点,如果我在每次编译之前运行每个命令,那将花费太长时间(更不用说密码问题了)。我相信我可以texhash通过 TDS 条目末尾的“//”跳过命令,但我不相信我可以跳过luatools --generate。至少在 Mac 上luatools似乎不需要。sudo

有没有其他人找到一种方法来轻松地将 TDS 树添加为编译命令的一部分?我可能遗漏了一些非常简单的东西。:P

答案1

我想您在两个平台上都使用 TeXlive。

动态添加 TDS 树意味着要么摆弄环境,要么使用已修补的texmf.cnf(可以在当前工作目录中)。动态修补texmf.cnf可能更具可移植性。

相关内容