问题
VerbatimOut
“fancyvrb”包中的 UTF-8 字符不能很好地播放。
最小的工作示例:
\documentclass{minimal}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{fancyvrb}
\begin{document}
\begin{VerbatimOut}{\jobname.test}
é
\end{VerbatimOut}
\input{\jobname.test}
\end{document}
错误信息
使用 编译时pdflatex mini
,会出现错误
文件在扫描使用时结束
\UTFviii@three@octets
。
当é
上面的唯一出现被其他东西替换时,会发生不同的错误,例如é */
:
包 inputenc 错误:Unicode 字符
\u8:###
未设置为与 LaTeX 一起使用。
– 表示在这种情况下,LaTeX 成功读取了一个多字节 UTF-8 字符,但不知道如何处理它(即它是错误的字符)。
实际上,当我.test
手动打开生成的文件时,它包含字符é
,但采用 Latin-1 编码!
证明:当我在十六进制编辑器中打开文件时,我得到以下信息:
- 原始文件:(
C3 A9
对应于 UTF-8 中带有 ACUTE 的拉丁小写字母 E) - 书面文件:(
E9
对应é
于Latin-1)
问题
如何VerbatimOut
正确设置?
filecontents*
(来自“filecontents”)表明它可以工作。不幸的是,我不理解这两个代码,所以我无法通过手动复制文件内容中的逻辑来修复 fancyvrb 的代码。
我也不能使用filecontents*
代替,VerbatimOut
因为前者不能在 a 中工作\newenvironment
,而后者可以。
(哦,顺便说一句:vanillaVerbatim
而不是VerbatimOut
也可以按预期工作。错误似乎发生在写入文件时,而不是在读取逐字输入时)