对于一个相当大的项目,不幸的是我需要使用 Overleaf。问题是它使用 TexLive 2017。
我的问题是:
- 有没有一种简单的方法可以在 Overleaf 中使用最新 TexLive 发行版中的包?
换句话说,有没有一种简单的方法来添加本地包 X 并让其他包引用它,而不是当前 TexLive 版本提供的包?
具体来说,我的问题是我需要一个较新版本的xparse
。对于一个小文档,我可以通过以下方式解决这个问题
- 下载
l3packages
和l3kernel
放入各自的文件夹中。 - 运行
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 档案l3kernel
,l3packages
,l3backend
, 而且当然,fontspec
. 解压所有这些。解压的存档将有三个文件夹:doc
、source
和tex
。您需要tex/latex/<package>
。现在上传一切到l3stuff
您之前创建的文件夹中。所有文件必须直接位于 内,而不是子文件夹中。如果您正确执行了所有操作,您现在应该在 Overleaf 中l3stuff
拥有 的最新版本。fontspec