如何使用 \detokenize 命令获取字符串 é?

如何使用 \detokenize 命令获取字符串 é?

我无法使用“\include”处理名称中包含字符串“é”的文件,例如“réserve”。因此我尝试了以下操作,但没有成功

\include{\detokenize{保留}}

经过几次尝试,我注意到命令

\detokenize{é}

用“Ãľ”代替“é”。

因此问题是“如何使用 \detokenize 命令获取字符串“é””。

这是一个最小的例子

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\begin{document}
  \detokenize{é}
 \end{document}

答案1

最好使用不带特殊字符的文件名。如果你喜欢冒险,你可以修补一些内核宏:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\include}
 {\@include#1}
 {\expandafter\@include\detokenize{#1}}
 {}{}
\patchcmd{\@include}
 {\string\@input{#1.aux}}
 {\string\@input{\string\detokenize{\detokenize{#1}}.aux}}
 {}{}
\makeatother

\begin{document}

\include{réservé}

\end{document}

答案2

对于像我一样来自的更多访客google:// detokenize unicode

\detokenize不是 UTF8 友好的,但有时你可以用以下命令替换它:

\newcommand{\utffriendlydetokenize}[1]{%
\scantokens{%
\catcode`\_=12%
\catcode`\^=12%
\catcode`\{=12%
\catcode`\}=12%
\catcode`\&=12%
\catcode`\$=12%
\catcode`\#=12%
\catcode`\~=12%
\catcode`\\=12%
#1%
}%
}

(来源:https://gitlab.com/Nickkolok/biblatex2bibitem/-/blob/master/biblatex2bibitem.sty

但是,它不适用于\include

相关内容