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 で発生します。
ファイルが大きいため、ファイルとそれが読み込む画像を\includegraphics
1 つの 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.pdf
2.pdf
1860.pdf
bash
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
ので、私の言うことを信じるか、上記の手順に従う必要があります。