newfile
当我使用特殊字符时,它会以流的形式产生。
答案1
更新
几年来,LaTeX 不再写入\IeC{...}
文件.aux
,而是实际的 UTF-8 字节。因此,问题基本上已经消失。
原始答案
处理 UTF-8 编码的文档时,必须记住字符的编码方式是序列一到四个字节,传统的 TeX 引擎(包括pdftex
)无法直接解释多字节字符。
因此,多字节簇会尽快转换为LaTeX 内部字符表示。这是可行的,因为在多字节簇中,第一个字节表示簇的长度,因此从这个字节和后面的字节计算出我们面临的 Unicode 点并不太困难;LaTeX 维护一个将 Unicode 点映射到 LaTeX 命令的表。例如,屏幕上显示的多字节簇Ü
被转换为\IeC{\"U}
。
的目的是什么\IeC
?当\"U
LaTeX 发现 时,它会尝试扩展\"
,这在写入辅助文件时是错误的:我们希望在文件中\chapter{Über}
写入相当于 的内容,而不是执行复杂的命令序列Über
.toc
打印它。
因此\IeC
:它在正常排版期间不执行任何操作,但是当 LaTeX 写入辅助文件时,标记\IeC{\"U}
会被逐字写出。
如果您想要逐字写入您自己的辅助文件,则必须禁用此机制,这可以通过使用 保护令牌来实现\unexpanded
。应该显示您想要获取的内容的示例。