почему lualatex выдает ошибку «Слишком много открытых файлов», а pdflatex — нет для того же файла latex?

почему lualatex выдает ошибку «Слишком много открытых файлов», а pdflatex — нет для того же файла latex?

Использование TL 2015 на Linux.

У меня есть файл latex, который включает графику, все в формате pdf. Все изображения включены с помощью вызова

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

Всего имеется 1860 таких изображений, все в формате PDF.

Когда я компилирую этот файл с помощью lualatex, на каком-то этапе, когда он доходит до изображения номер 1016, он вылетает с ошибкой Too many open files. Компиляция того же файла с помощью pdflatex не выдает никакой ошибки!

Есть ли ограничение на то, как изображения можно включать в файл latex при использовании lualatex или это ошибка? Похоже, что версия lualatex includegraphics не закрывает дескрипторы файлов при загрузке изображений и заканчивает дескрипторы файлов. Это на Linux mint 7.2.

Поскольку файл большой. Я поместил файл и загружаемые им изображения \includegraphicsв один zip-файл (80 МБ). Ссылка внизу этого поста.

Чтобы воспроизвести, пожалуйста, загрузите zip-файл, распакуйте его с помощью команды unzip file.zip, и она создаст новую папку с именем lualatex_error/, а внутри этой папки будет один файл 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 МБ.

Если у вас есть дополнительная информация, пожалуйста, дайте мне знать.

решение1

Я могу подтвердить это поведение. Для проверки:

Создайте 1860 копий example-image-1x1.pdf(или другого изображения по вашему выбору) с именами 1.pdf, 2.pdf,..., 1860.pdf. Если вы используете bashи у вас установлен TeX Live 2015 в стандартном месте, вы можете использовать следующие команды:

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: вам придется либо поверить мне на слово, либо следовать описанной выше процедуре.

Связанный контент