“错误”;“打开的文件太多”;在pdflatex中

“错误”;“打开的文件太多”;在pdflatex中,latex,pdflatex,Latex,Pdflatex,当编译一个包含15个左右包和大约5个包含包的latex文档时,pdflatex会抛出一个“打开的文件太多”错误。所有包含都以\endinput结束。你知道是什么导致了这个错误吗 错误似乎取决于使用了多少个包(毫不奇怪……);然而,这不是我第一次使用这么多的软件包,而我以前从未遇到过这样的错误 @阿克塞尔c:这与linux无关。您可能知道,也可能不知道,LaTeX也可以在windows上使用(这恰好是我现在正在使用的)。这可能是由于“max open file Descriptor”内核配置中的值

当编译一个包含15个左右包和大约5个包含包的latex文档时,pdflatex会抛出一个“打开的文件太多”错误。所有包含都以\endinput结束。你知道是什么导致了这个错误吗

错误似乎取决于使用了多少个包(毫不奇怪……);然而,这不是我第一次使用这么多的软件包,而我以前从未遇到过这样的错误


@阿克塞尔c:这与linux无关。您可能知道,也可能不知道,LaTeX也可以在windows上使用(这恰好是我现在正在使用的)。

这可能是由于“max open file Descriptor”内核配置中的值较低造成的。假设您使用的是Linux,您可以运行此命令以查找当前限制:

cat /proc/sys/fs/file-max 
如果限制较低(例如,1024左右,这是某些Linux发行版中的默认值),您可以尝试通过编辑/etc/sysctl.conf来提高限制:

  fs.file-max = 65536

根据Linux发行版的不同,详细信息可能会有所不同,但通过快速的谷歌搜索,您可以轻松地进行修复。

此命令为您提供了什么:

$ ulimit -n
您可能希望通过编辑/etc/security/limits.conf文件来增加它。

尝试插入

\let\mypdfximage\pdfximage
\def\pdfximage{\immediate\mypdfximage}
\documentclass
之前

另请参见pdftex邮件列表中的以下线程:

类型

ulimit -n
以获取最大打开文件数。要将其更改为例如2048,请键入

ulimit -S -n 2048