如何使用导入包来处理名称中包含重音符号(非英语)字母的文件夹?

如何使用导入包来处理名称中包含重音符号(非英语)字母的文件夹?

为了说明我的问题,假设您有一个主文件和一个位于名为的子文件夹中的main.tex章节。 两个文件都使用 UTF8 编码。 然后,以下最小代码示例可以顺利编译:chapter.texfolder

% main.tex
\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{import}
\usepackage{lipsum}

\begin{document}
\includefrom{folder/}{chapter}
\end{document}

% chapter.tex
\lipsum[1]

如果子文件夹名称中包含重音符号(例如,fólder而不是folder),我该如何更改上述代码?将 更改\includefrom

\includefrom{fólder/}{chapter}

或者

\includefrom{f\'older/}{chapter}

没有帮助。

谢谢,
亚当

答案1

问题在于非 ASCII 字符会被扩展。使用 ; 可抑制它们的扩展\detokenize,这在任何操作系统上都有效。

% main.tex
\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{import}
\usepackage{lipsum}

\begin{document}
\includefrom{\detokenize{fólder/}}{chapter}
\end{document}

答案2

如果你删除了inputenc它,它将与 xelatex 一起工作,因为它自然是 utf-8。使用 inputenc utf-8 字符被激活并给出宏定义排版适当的字符,但是这些排版指令不适用于文件名,但是这个可以

\documentclass[12pt]{book}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{import}
\usepackage{lipsum}

\begin{document}
\includefrom{f\stringólder/}{chapter}
\end{document}

相关内容