如果使用 LuaLaTeX 进行编译,则包含空格的文件名在 TeX Live 2016 中的 \includepdf 和 \includegraphics 中将停止工作

如果使用 LuaLaTeX 进行编译,则包含空格的文件名在 TeX Live 2016 中的 \includepdf 和 \includegraphics 中将停止工作

以下内容曾在使用 LuaLaTeX 编译的 TeX Live 2015 中运行,但在 TeX Live 2016 中无法运行:

\documentclass{minimal}
\usepackage{grffile}  % Extended file name support for graphics
\usepackage[final]{pdfpages}

\begin{document}
\includepdf[landscape,nup=1x2,trim=2.25cm 2.5cm 2.25cm 2cm,pages=-]{cours algèbre.pdf}
\end{document}

错误信息是:

包 luatex.def 错误:未找到文件“cours algèbre.pdf”。

但是,它适用于 PDFLaTeX 和 XeLaTeX!(对于 PDFLaTeX,这非常令人惊讶,因为我没有在任何地方指定我的源编码是 UTF-8。)

我最初使用 LuaLaTeX 的原因是它生成的 PDF 比 XeLaTeX 略小,比 PDFLaTeX 小一半。

这是一个最小的例子,用\includegraphics而不是\includepdf,它也可以与 PDFLaTeX 和 XeLaTeX 一起编译,但不能与 LuaLaTeX 一起编译:

\documentclass{article}
\usepackage{grffile}  % Extended file name support for graphics
\usepackage{graphics}

\begin{document}
\includegraphics{a b.pdf}
\end{document}

我在 Mac OS 上使用 TeX Live。


更新 2020-03-02

至少在 TeX Live 2019 中,grffile不再需要包,带有空格的文件名不需要它也可以工作。

相关内容