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