.toc 文件中的特殊字符问题

.toc 文件中的特殊字符问题

åäö我遇到了一个奇怪的问题,文件中会出现特殊字符(在本例中是瑞典语) .toc。如果我删除该.toc文件,一切都会正常,只是目录为空。当我重新运行时,文件中每行包含 或 时pdflatex都会出现错误(实际上,每行都是如此...)。.tocåäö

我尝试制作一个 MWE 示例,但无法在其他文件中重现该问题。不过,我注意到对于其他文件,文件åäö中的.toc内容被替换如下:

å -> \IeC {\r a}
ä -> \IeC {\"a}
ö -> \IeC {\"o}

.toc在失败文档的文件中,只有å被替换。为什么会这样?我该怎么办?

澄清:正如我所说,我尝试过但无法在 MWE 中重现此错误。(完整版是一个非常高级的结构,其中包含由通过调用 pdflatex 的 python 脚本编译的模板、框架和内容文件os.system(),因此我无法真正逐个“缩放”...)但是,我提供以下信息:

  • 所有文件均以 utf-8 保存。
  • 我正在使用\usepackage[utf8]{inputenc}\usepackage[swedish]{babel}
  • 该 Python 文件以#coding: utf8

答案1

当非 ASCII 字符(如 ä 或 ö)进入目录时,这意味着它们不活跃。也许您在加载 inputenc 之前将某些标题存储在命令中:

\documentclass{article}
\def\test{ÅÄÖ}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
\tableofcontents

\section{\test}

\end{document}

我的例子没有给出错误,但是你的python代码可能插入了一个tex无法处理的utf8字符。

答案2

来自inputenc文档:

1.3.3 Unicode 字符 <字符代码> 未设置为与 LaTeX 一起使用

如果文档包含 LATEX 无法识别的 UTF-8 字符,则会收到此可怕的错误消息。该字符很可能看起来毫无可疑,并且在编辑器中完美呈现。

...

但是,即使 LATEX 可以输入有问题的字符,也可能尚未设置,在这种情况下您需要通过 自行进行设置 \DeclareUnicodeCharacter

因此,类似这样的方法\DeclareUnicodeCharacter{00E4}{\"a}可能会有效。您可能需要查看您要使用的 Unicode 字形(此示例直接来自手册第 1.2 节)。

希望这可以帮助。

答案3

使用有意义的编码,例如

\usepackage[utf8]{inputenc}

但也要注意你的编辑器使用相同的编码,并且文件本身也使用相同的编码。例如,你可以下载一个latin1编码文件,但使用utf8选项编辑它,反之亦然。

相关内容