Usando TL 2015 no Linux.
Tenho um arquivo látex que inclui gráficos, todos em formato pdf. Todas as imagens estão incluídas usando a chamada
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{rules/file_name}
Há um total de 1.860 dessas imagens, todas em formato pdf.
Quando compilo este arquivo usando lualatex, em algum momento, quando chega à imagem número 1016, ele falha com o erro Too many open files
. Compilar o mesmo arquivo com pdflatex não dá erro!
Existe uma limitação sobre como as imagens podem ser incluídas em um arquivo de látex ao usar lualatex ou isso é um bug? Parece que a versão lualatex includegraphics não está fechando os identificadores de arquivo ao carregar imagens e ficando sem identificadores de arquivo. Isso está no Linux mint 7.2.
Como o arquivo é grande. Coloquei o arquivo e as imagens que ele carrega \includegraphics
em um arquivo zip (80 MB). O link está no final deste post.
Para reproduzir, baixe o arquivo zip, descompacte-o usando o comando unzip file.zip
e será criada uma nova pasta chamada lualatex_error/
e dentro desta pasta está aquele arquivo report.tex
e a pasta que contém todas as imagens. Então digitando
lualatex report.tex
vai dar o erro
lualatex: ./rules/1016.pdf: Too many open files
Dereport.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
O arquivo zip está emesta pasta(Este é um link para a pasta onde o arquivo zip está. Não é um link direto para o arquivo zip). Tamanho de 80 MB.
Qualquer outra informação que eu possa dar, por favor me avise.
Responder1
Posso confirmar esse comportamento. Testar:
Crie 1860 cópias de example-image-1x1.pdf
(ou outra imagem de sua escolha) com o nome 1.pdf
, 2.pdf
,..., 1860.pdf
. Se você usa bash
e tem o TeX Live 2015 instalado no local padrão, você pode usar os seguintes comandos:
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
Em seguida, crie o seguinte documento:
\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}
Isso compila bem com pdflatex
. Com lualatex
, ele falha com o seguinte erro:
lualatex: ./1024.pdf: Too many open files
Abster-me-ei de publicar o resultado pdflatex
produzido: você terá que acreditar na minha palavra ou seguir o procedimento acima.