なぜ lualatex は「開いているファイルが多すぎます」というエラーを出すのに、同じ LaTeX ファイルで pdflatex は出ないのでしょうか?

なぜ lualatex は「開いているファイルが多すぎます」というエラーを出すのに、同じ LaTeX ファイルで pdflatex は出ないのでしょうか?

Linux で TL 2015 を使用する。

私はグラフィックを含むLaTeXファイルを持っています。すべてPDF形式です。すべての画像は呼び出しを使用して含まれています。

\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{rules/file_name}

このような画像は合計 1860 枚あり、すべて PDF 形式です。

このファイルを lualatex を使用してコンパイルすると、ある段階で、イメージ番号 1016 に到達したときにエラーが発生して失敗しますToo many open files。同じファイルを pdflatex でコンパイルすると、エラーは発生しません。

lualatex を使用する場合、LaTeX ファイルに含めることができる画像に制限がありますか、それともこれはバグですか? lualatex includegraphics バージョンは、画像をロードするときにファイル ハンドルを閉じず、ファイル ハンドルが不足しているようです。これは Linux Mint 7.2 で発生します。

ファイルが大きいため、ファイルとそれが読み込む画像を\includegraphics1 つの zip ファイル (80 MB) にまとめました。リンクはこの投稿の下部にあります。

再現するには、zipファイルをダウンロードし、コマンドを使用して解凍してください。するとunzip file.zip、という新しいフォルダが作成されlualatex_error/、このフォルダ内に1つのファイルreport.texとすべての画像を含むフォルダが作成されます。次に、次のように入力します。

lualatex report.tex

エラーが発生します

 lualatex: ./rules/1016.pdf: Too many open files

からreport.log

This is LuaTeX, Version beta-0.80.0 (TeX Live 2015) (rev 5238) 
    (format=lualatex 2015.7.9)  31 JUL 2015 12:28
 restricted \write18 enabled.

lualatex_error>which lualatex
/usr/local/texlive/2015/bin/x86_64-linux/lualatex

zipファイルはこのフォルダ(これは、zip ファイルが入っているフォルダーへのリンクです。zip ファイルへの直接リンクではありません)。サイズは 80 MB です。

他に提供できる情報があればお知らせください。

答え1

この動作は確認できます。テストするには:

、、...、example-image-1x1.pdfという名前で (または選択した他のイメージ)のコピーを 1860 個作成します。 を使用し、TeX Live 2015 が標準の場所にインストールされている場合は、次のコマンドを使用できます。1.pdf2.pdf1860.pdfbash

i=0; while [ $i -le 1860 ] ; do ((i++)); cp /usr/local/texlive/current/texmf-dist/tex/latex/mwe/example-image-1x1.pdf ./$i.pdf; done

次に、次のドキュメントを作成します。

\documentclass{article}
\usepackage{graphicx}
\usepackage{expl3,xparse}
\ExplSyntaxOn
\int_new:N \l_nasser_loop_int
\tl_new:N \l_nasser_file_tl
\NewDocumentCommand \icing { }
{
  \int_set:Nn \l_nasser_loop_int { 0 }
  \int_do_while:nNnn { \l_nasser_loop_int } < { 1860 }
  {
    \int_incr:N \l_nasser_loop_int
    \tl_set:Nn \l_nasser_file_tl { \int_use:N \l_nasser_loop_int }
    \includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{\l_nasser_file_tl}\par
  }
}
\ExplSyntaxOff
\begin{document}
\icing
\end{document}

これは では正常にコンパイルされますpdflatex。 ではlualatex、次のエラーが発生して失敗します。

lualatex: ./1024.pdf: Too many open files

出力結果の投稿は控えますpdflatexので、私の言うことを信じるか、上記の手順に従う必要があります。

関連情報