在写入时将数据转换为 utf8

在写入时将数据转换为 utf8

我需要\write(或\iow_now:Nn)一个包含 utf8 编码文本的文件,来自一个不一定是 utf8 编码的 LaTeX 文件(对于上下文:它的一个典型用途是从期刊发行中的各个文章中收集元数据并生成联合目录,例如标题可能包含重音符号)。

如果输入文件包含编码的重音,则此方法有效:

\exp_args:NNVV \str_set_convert:Nnnn \l_foo_str \mytitle \inputencodingname { utf8 }
\exp_args:NNV \iow_now:Nn \g_tmpa_iow \l_foo_str

是否有任何方法可以\'e在写入时将 TeX 样式的重音符号转换为与其 utf8 等效的重音符号(有点像向后inputenc)?

答案1

文本函数会将输入平铺为文本(适用于只能包含文本的 pdf 书签等地方),因此

\documentclass{article}

\begin{document}

\ExplSyntaxOn
 \typeout{\text_purify:n{caf\'e}}
\ExplSyntaxOff

\end{document}

将会写

咖啡店

到终端并登录

相关内容