为字体/样式/布局创建独立的包是否可行?

为字体/样式/布局创建独立的包是否可行?

对于我最近的许多文档,我开始使用一组相当具体的软件包、设置、字体和配置。在一个罕见的情况下,我甚至调整了其中一种附带的字体(在我看来,d\partial在用作派生符号时不应该倾斜;如果它倾斜,它指定了一个集合的边界)。

当然,所有这些设置都只能在一台计算机上进行,特别是字体必须放入树中,texlive/local这使得在多台计算机上共享设置变得很麻烦(更不用说同步问题了),而且几乎不可能与合作者共享。

理想情况下,我希望为所有这些设置创建一个 git 存储库(或任何其他 DVCS),对于每个新的 tex 项目,我会将此存储库复制(或克隆、链接或使用子模块)到主 tex 文件的子目录中并以某种方式自动包含它,以便找到并添加我的所有私人字体、设置和包而不会出现问题。

这是否可能而不产生大问题,或者即使在今天,tex 是否也需要一些特殊的初始化例程和固定路径?

我怀疑,我不是唯一一个有这些问题的人。其他人是如何解决这样的事情的?

编辑/解释

我认为最佳解决方案或多或少就像 HTML 文件中的样式文件夹一样。因此,我会有一个style包含所有字体和图像的文件夹,以及一个引用所有这些文件的特殊样式表。此解决方案完全本地化且可移植。我可以移动文件夹、重命名它,甚至可以对我的所有 HTML 文件使用同一个文件夹,只要我可以引用主样式表文件即可。这是可行的,因为 CSS 文件内的所有路径都与该文件相关。

我唯一需要做的修改是复制/链接/克隆文件style夹并找出 CSS 文件的路径。

我并不期望 tex 解决方案完全相同。这是一个完全不同的系统。但如果能做到以下两点就好了:

  • 将样式/字体存储库克隆到当前主 tex 文件的某个子文件夹中
  • 在主 tex 文件中:包含样式文件
  • 完毕

包括主文件甚至可能需要写几行,这没问题。但如果所有这些更改都可以在主 tex 文件的文件夹中进行,我将非常感激。

答案1

如果我理解正确,那么这正是我所做的。我有一个标准位置来存放我所有的 tex 样式文件、类等等,它们都在 DVCS 存储库中(恰好是 BZR,但不要因此而责怪我)。然后我将我想要的文件符号链接到我的 TEXMFHOME 树中。符号链接的原因是,我可能不一定想要全部我 BZR 存储库中的垃圾文件都放在我的 TEX 树中,所以我不想将 texmf 目录作为存储库集的一部分,但我还希望自动更新内容,所以我不想只是复制它们。正如您所说,这使得在不同计算机上保持最新状态变得容易得多。

为了回答您的具体问题,我没有遇到此设置的任何问题。

答案2

在 miktex 中,我会将所有内容放在一个特殊的新本地 texmf 树中,并通过将其根文件夹添加为新根来“挂载”此树。将这样的 texmf 树放入 git(或任何其他)存储库中很容易。

在 TeXLive 中这也是可能的。虽然一般人认为只存在一个本地 texmf 树,但实际上可能存在多个。在 TeXlive 列表中,这个命令是在几个月前发送的(未经测试,因为我有 miktex):

 tlmgr conf texmf TEXMFLOCAL '{/path/to/tree1;/path/to/tree2;...}'

在更新/更改树之后,您必须调用 texhash 并且可能调用 updmap(-sys)。

答案3

最好的方法是创建自己的包。这很简单,你可以使用.sty扩展名保存一个文本文件,例如 mypreamble.sty

最小示例如下所示:

\ProvidesPackage{mypreamble}
\def\test{...}

您使用该ProvidePackage命令来确保 LaTeX 知道它,并且在加载两次时给您一些合理的错误。

我个人有不少私人软件包,其中一个叫做 ,typography里面保存着我所有的排版调整和设置。另一个叫做specialmaths等等。

这些可以像所有其他包一样安装,因此您不会遇到任何路径等方面的问题。

答案4

你们的目标似乎相互冲突。如果想要模块化,就把文档中重复使用的代码拆分开来,单独分发。如果想要可移植性,就把它放在单个文件中。

相关内容