查看了多个线程,我似乎仍然无法解决我的错误。因此,我希望你们中的一些人能帮助我?
当尝试使用以下代码定义三个斯堪的纳维亚字母 å æ ø Å Æ Ø 时:
\catcode`æ=\active\catcode`ø=\active\catcode`å=\active
\catcode`Æ=\active\catcode`Ø=\active\catcode`Å=\active
\defæ{\ae}\defø{\o}\defå{\aa}
\defÆ{\AE}\defØ{\O}\defÅ{\AA}
当我排版文档时出现以下错误消息:
./main.tex:63: Missing number, treated as zero.
<to be read again>
我正在使用“Classicthesis”,输入定义为 latin9
希望你们中有人能帮助我!
谨致问候,亨利克
答案1
我可以重现该问题,但前提是输入文件是 UTF-8。如果我将其保存为 Latin-9,则定义会毫无问题地执行。
为什么文件编码为 UTF-8 时会出现错误?因为在这种情况下,您看到的æ
实际上是二字符,就 TeX 而言(它不理解多字节编码)。准确地说,æ
被视为字节对<C3><A6>
,因此 TeX 真正看到的是
\catcode`<C3><A6>=\active
(请注意,<xy>
仅用于表示单个字符),这是一个错误的分配,确实会触发您看到的错误消息。这不能如果文件采用单字节编码(例如 Latin-9)进行编码,就会发生这种情况。
无论如何你不应该做类似的事情。检查文件编码,仔细查看文本编辑程序告诉你的内容,然后添加到文档序言中
\usepackage[latin9]{inputenc}
如果编码确实是 Latin-9,或者
\usepackage[utf8]{inputenc}
如果是 UTF-8 的话。这两个声明(当选项与文件的编码一致时)都会自动执行您想要手动执行的操作。
我感觉你正在使用从网上或朋友那里得到的模板。不要相信它们,尤其是如果它们包含你一无所知的东西。