使用 grffile 包对文件名进行变音

使用 grffile 包对文件名进行变音

“永远不要在文件名中使用非 ASCII 字符和空格。永远不要!”

这是我多年来一直告诉我的学生的。但是,如果出于任何原因,迫切需要在文件名中包含带变音符号的图像文件,则grffile可以使用该软件包。

不幸的是,我无法编译以下示例:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{graphicx}
\usepackage[extendedchars]{grffile}

\begin{document}

\includegraphics{Bäckerstraße}

\end{document}

我在 Windows 7 上使用 MiKTeX(最近更新)。我的 MWE 以 Windows 编码保存。这对我的文件系统上的Cp1252现有文件同样有效。Bäckerstraße.png

我使用 进行编译pdflatex。编译没有产生 PDF 输出,日志文件中也没有错误消息。编译停止,命令 shell 中出现错误消息:

pdflatex: Windows API error 1113: F��r das Unicode-Zeichen ist kein zugeordnetes Zeichen in der Mehrbytecodepage vorhanden.

我用 Google 搜索了这个问题,发现 2011 年和 2012 年的一些论坛讨论表明这可能是pdflatex使用 MiKTeX 的一个普遍问题。

我问的是,MWE 代码中是否存在我的愚蠢错误,或者是否没有机会使用 MiKTeX 运行它。

如果 MWE 中有错误,请告诉我如何更正。但如果这根本无法运行,请不要再浪费时间尝试了。

答案1

由于文件名编码似乎是 UTF-8,因此需要将文件名从 Latin-1 重新编码为 UTF-8。包也支持此功能grffile

\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage{graphicx}
\usepackage[encoding,filenameencoding=utf8]{grffile}

\begin{document}
\includegraphics{Bäckerstraße}
\end{document}

或者,TeX 源可以完全以 UTF-8 编码。

顺便说一句,CP 1252 的完整代码页范围由选项ansinewx-cp1252包提供inputenc(后一个选项来自包inputenx,可在那里使用cp1252)。

相关内容