Latin1、utf8 与 Texmaker

Latin1、utf8 与 Texmaker

我声明我已经阅读了许多关于我的问题的讨论,但尚未解决。这是我第一次使用 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 中不起作用

相关内容