我注意到 TeX 有一个打开文件的限制,同时使用一些额外的参考书目multibib
,使用hyperref
,backref
s 等等(基本上newcites
在达到限制之前该文档中只能再添加 5 个)。
我通过从迁移multibib
到biblatex
,我当时发现了它,它似乎也是解决其他书目相关挑战的一个很好的解决方案。
无论如何,我发现了这个2007 年开放文件限制讨论我想知道当前 TeX Live 发行版的情况是否会改变。如果是,现在如何增加 LaTeX 中的打开文件限制。
答案1
我从未尝试过改变它,但texmf.cnf
(接近尾声时)
max_in_open = 15 % simultaneous input files and error insertions,
您可以将其粘贴到本地 texmf.cnf 中并进行调整。(在我的系统上,要进行更改的适当文件是/usr/local/texlive/2010/texmf.cnf
。)
我猜你必须在执行此操作后重建格式,更改才能生效。你可能遇到 LaTeX 中的硬编码限制问题,该限制假设最多 15 个 io 流;现在检查已经太晚了:)
答案2
- LaTeX 3(即 expl3 包)有一个“位图分配器”,它只在打开时分配流
- 使用 LuaTeX,您可以使用标准 Lua 库,从而可以打开无限数量的文件
答案3
该morewrites
包(见氯化三乙胺) 旨在成为输出文件情况的嵌入式解决方案(即,只需在文档中尽早加载包即可)。它通过重新定义一些原语来工作。
对于输入流来说,这样做要困难得多,因为模拟原始条件是不可能的,因此\ifeof
会产生错误的结果。另一方面,我从未见过超过输入流限制的情况。