非客观的 LaTeX 行为

非客观的 LaTeX 行为

使用:Win 10,MikTex 2.9.6210,TeXnicCenter 2.02。使用 TeXnicCenter 的默认配置文件 LaTeX => PDF 进行编译,使用 pdflatex.exe

我似乎陷入了困境。我有两个文件:

  • _主.tex-> 通过编辑我从学院网站下载的模板文件创建。
  • 测试CRLF.tex-> 创建于右击>新建>文本文档然后进行编辑。

它们都包含以下代码:

\documentclass[11pt,openright,twoside]{report}
\usepackage[utf8]{inputenc}
\usepackage[portuguese,english]{babel}

\title{Testing special characters.}
\author{The very Me}

\begin{document}
    \maketitle
    Testânto caractéres epecíais.

\end{document}

_主.tex编译无错误,但是测试CRLF.tex有 3 个错误。 中的每个特殊字符都有一个错误document。我得到的错误是:

! Package inputenc Error: Unicode char ânt (U+E4)
(inputenc)                not set up for use with LaTeX.
See the inputenc package documentation for explanation.
Type H <return> for immediate help.
...

l.10 Testânt
           o caractéres especíais.

另外两个错误提到了字符 (U+E0) 和 (U+D7)。

过去,我曾遇到过从 Linux 移植 tex 文件的问题,Linux 仅使用换行符 ('\n') 来结束一行,而 Windows 使用回车符和换行符 ("\r\n") 来结束一行。这会导致编译时出现此类错误。

为了检查这个问题,我使用了 NotePad++,它允许你查看特殊的隐藏字符。我告诉你,这两个文件的每一行末尾都有“\r\n”。所以我只能得出这两个文件是相同的结论。但一个可以编译,另一个不能。

答案1

正如 Ulrike Fischer 在问题评论中所说,问题在于文件的编码。这意味着该问题与 LaTeX 无关。

据我所知,在编辑文件时,字符编码决定哪些字节序列代表哪些字符。测试CRLF.tex具有 ANSI 编码,因此当我输入特殊字符时,它们不是 UTF-8 编码。

为了解决这个问题,我在 Notepad++ 中打开了该文件,这样我就可以更改用于解释该文件的编码。它是 ANSI,我把它改成了 UTF-8。所有特殊字符都显示为未编码(十六进制字符)。现在在 UTF-8 模式下,我将它们全部替换为正确的版本。

就是这样。所以,最后你猜怎么着……文件毕竟是不同的!哈哈

相关内容