我声明我已经阅读了许多关于我的问题的讨论,但尚未解决。这是我第一次使用 LaTeX,我选择 Texmaker 作为编辑器。我在 Windows 7 64 位上写作。
我创建了一个 main.tex 文件,如下所示:
documentclass[a4paper, 11pt]{book}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
%\usepackage[latin1]{inputenc}
\usepackage[nouppercase, swapnames]{frontespizio}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{array}
\usepackage{graphicx}
\begin{document}
\frontmatter
\input{./frontespizio/frontespizio}
\tableofcontents
\mainmatter
\input{./capitoli/1}
\input{./capitoli/2}
\backmatter
\end{document}
文件 1.tex 和 2.tex 主要包含文本,但也包含表格和图像。文本中明显存在重音字母,如 à、è、ò、ù... 问题是,当我编译主文件时,出现此错误:
pdfTeX warning: pdflatex (file pdftex.map): cannot open font map file
] [4] (capitoli/1.tex
Capitolo 1.
) (capitoli/2.tex [1] [2]
Capitolo 2.
("C:\Program Files\MiKTeX 2.9\tex\latex\lm\ot1lmr.fd")
("C:\Program Files\MiKTeX 2.9\tex\latex\lm\omllmm.fd")
("C:\Program Files\MiKTeX 2.9\tex\latex\lm\omslmsy.fd")
("C:\Program Files\MiKTeX 2.9\tex\latex\lm\omxlmex.fd")
LaTeX Warning: Command \textellipsis invalid in math mode on input line 12.
LaTeX Warning: Command \textellipsis invalid in math mode on input line 12.
Overfull \hbox (1.04575pt too wide) detected at line 22
\OML/lmm/m/it/10.95 LCS\OT1/lmr/m/n/10.95 (\OML/lmm/m/it/10.95 A[]; B[]\OT1/lmr
/m/n/10.95 ) = []
Underfull \vbox (badness 1132) has occurred while \output is active [3]
Overfull \hbox (92.19824pt too wide) in paragraph at lines 38--52
[][]
! Package inputenc Error: Unicode char Ο (U+39F)
(inputenc) not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type H <return> for immediate help.
...
l.53 ...o ha complessità spaziale e temporale $Ο
(nÔêÖm)$ risulta poco adat...
?
重音字母有问题。为什么?我该如何解决?我查看了 texmaker 的设置,发现编码设置为 UTF-8。我尝试在记事本中复制两个和 2.tex 1.tex 文件的文本,并将其保存为 tex 和 utf-8,但没有任何效果。
我不知道该怎么办。谢谢!
答案1
您复制粘贴的错误消息来自 Windows 终端,这使得分析变得稍微复杂一些。
错误日志中重要的一行是:
l.53 ...o ha complessità spaziale e temporale $Ο
(nÔêÖm)$ risulta poco adat...
此行指向造成问题的字符,即第一行末尾的字符,即╬ƒ
(而不是之前出现过的、没有造成问题的重音字母)。
但是,您肯定非常确定您的文档不包含有问题的字符╬ƒ
,对吧?您说得对。
问题是 Windows 控制台使用的是古老的 MS-DOS 代码页,而不是 UTF-8,因此您的错误消息会被弄乱。iconv
在我的 (utf-8) Linux 机器上使用一些技巧:
$ cat mangled_error.txt
l.53 ...o ha complessità spaziale e temporale $Ο
(nÔêÖm)$ risulta poco adat...
$ iconv -f utf8 -t cp850 < mangled_error.txt > error.txt
$ cat error.txt
l.53 ...o ha complessità spaziale e temporale $Ο
(n∙m)$ risulta poco adat...
啊哈!现在错误看起来更易读了。有问题的字符不是à
你认为的 ,而是Ο
,它是一个(utf-8 编码)大写字母 Omicron。此字符未设置为在 latex 中使用。你能用“普通”(拉丁)替换它吗O
?另请参阅:omicron 在 LaTeX 中不起作用