åäö
我遇到了一个奇怪的问题,文件中会出现特殊字符(在本例中是瑞典语) .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
选项编辑它,反之亦然。