使用本地包覆盖包

使用本地包覆盖包

对于一个相当大的项目,不幸的是我需要使用 Overleaf。问题是它使用 TexLive 2017。

我的问题是:

  • 有没有一种简单的方法可以在 Overleaf 中使用最新 TexLive 发行版中的包?

换句话说,有没有一种简单的方法来添加本地包 X 并让其他包引用它,而不是当前 TexLive 版本提供的包?

具体来说,我的问题是我需要一个较新版本的xparse。对于一个小文档,我可以通过以下方式解决这个问题

  • 下载l3packagesl3kernel放入各自的文件夹中。
  • 运行tex相关*.ins文件
  • 将的每个实例更改RequirePackage{xparse}RequirePackage{l3packages/xparse},并类似地将 更改为xfp和其他包。我还必须链接到 的更新版本l3kernel才能使其正常工作。

但是,对于我的主要文档,我还使用fontspec。这带来了一个重大障碍,因为这个包似乎使用xparse 到处。我尝试搜索整个目录并将 的每个实例更改xparse为本地实例。但是,Overleaf 仍然抱怨 的不同版本之间存在冲突xparse。此时,我放弃了,转而使用tex.exchange以获得一些急需的指导。

如能对使用 Overleaf(TexLive 2017)制作本地最新更新(2019)版本提供帮助,xparse我们将不胜感激。

答案1

你真的应该不是更改包文件。人为错误总会回来困扰你 :-)

经过一番搜索,我发现此 Overleaf 帮助页面,这有助于解决一半的问题。.latexmkrc在项目文件夹中创建一个名为的空文件,然后向其中添加以下行:

$ENV{'TEXINPUTS'}='./l3stuff//:' . $ENV{'TEXINPUTS'}; 

现在创建一个名为l3stuff(或上面所使用的任何名称)的空文件夹。

现在,为了fontspec工作,你可以去 CTAN 下载 TDS 档案l3kernell3packagesl3backend, 而且当然,fontspec. 解压所有这些。解压的存档将有三个文件夹:docsourcetex。您需要tex/latex/<package>。现在上传一切l3stuff您之前创建的文件夹中。所有文件必须直接位于 内,而不是子文件夹中。如果您正确执行了所有操作,您现在应该在 Overleaf 中l3stuff拥有 的最新版本。fontspec

相关内容