TL 2015 unter Linux verwenden.
Ich habe eine Latex-Datei, die Grafiken enthält, alle im PDF-Format. Alle Bilder werden mit dem Aufruf eingefügt
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{rules/file_name}
Es gibt insgesamt 1860 solcher Bilder, alle im PDF-Format.
Wenn ich diese Datei mit lualatex kompiliere, tritt irgendwann beim Bild Nummer 1016 der Fehler auf Too many open files
. Das Kompilieren derselben Datei mit pdflatex führt zu keinem Fehler!
Gibt es eine Einschränkung, wie viele Bilder man in eine Latex-Datei einbinden kann, wenn man lualatex verwendet, oder ist das ein Fehler? Es sieht so aus, als ob die Includegraphics-Version von lualatex die Datei-Handles nicht schließt, wenn Bilder geladen werden und die Datei-Handles ausgehen. Dies ist unter Linux Mint 7.2 der Fall.
Da die Datei groß ist, habe ich die Datei und die Bilder, die sie lädt, \includegraphics
in einer Zip-Datei (80 MB) zusammengefasst. Der Link befindet sich am Ende dieses Beitrags.
Um es zu reproduzieren, laden Sie bitte die Zip-Datei herunter, entpacken Sie sie mit dem Befehl unzip file.zip
und es wird ein neuer Ordner mit dem Namen erstellt lualatex_error/
und in diesem Ordner befinden sich die eine Datei report.tex
und der Ordner, der alle Bilder enthält. Geben Sie dann ein
lualatex report.tex
gibt den Fehler
lualatex: ./rules/1016.pdf: Too many open files
Von demreport.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
Die Zip-Datei befindet sich indieser Ordner(Dies ist ein Link zu dem Ordner, in dem sich die ZIP-Datei befindet. Kein direkter Link zur ZIP-Datei.) 80 MB Größe.
Wenn ich Ihnen weitere Informationen geben kann, lassen Sie es mich bitte wissen.
Antwort1
Ich kann dieses Verhalten bestätigen. Zum Testen:
Erstellen Sie 1860 Kopien von example-image-1x1.pdf
(oder einem anderen Bild Ihrer Wahl) mit den Namen 1.pdf
, 2.pdf
,..., 1860.pdf
. Wenn Sie bash
TeX Live 2015 am Standardspeicherort installiert haben, können Sie die folgenden Befehle verwenden:
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
Erstellen Sie dann folgendes Dokument:
\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}
Mit wird dies problemlos kompiliert pdflatex
. Mit lualatex
schlägt dies mit dem folgenden Fehler fehl:
lualatex: ./1024.pdf: Too many open files
Ich werde darauf verzichten, die Ergebnisse zu veröffentlichen pdflatex
: Sie müssen mir entweder glauben oder das oben beschriebene Verfahren befolgen.