由于我刚开始学习 LaTeX,因此经常遇到
\usepackage[utf8]{inputenc}
并且想知道这个命令的作用以及为什么我们应该使用它?
答案1
该inputenc
包允许您告诉 LaTeX 有关 TeX 文档的输入(文件)编码。输入编码控制您键入的各种字符如何存储在文档中(基本上是哪个零和一序列映射到哪个字符)。有各种输入编码(在过去,内存非常宝贵,因此您的编码表中只有您实际使用的字符),所以我们需要一种方法来告诉 LaTeX 如何解释它读取的文件。这可以通过加载inputenc
和传递适当的文件编码作为选项来完成。
随着时间的推移,UTF-8 逐渐成为事实上文本文件的标准编码。大多数编辑器在您编写和保存新文件时都将其用作默认编码。它在不同的操作系统和程序中都得到了很好的支持。这就是为什么您经常会看到\usepackage[utf8]{inputenc}
在 TeX 文档中看到它。人们使用事实上标准并将其告知 TeX。
事实上,UTF-8 非常流行,以至于 LaTeX 团队决定将其设为\usepackage[utf8]{inputenc}
LaTeX 的默认编码。自 2018 年 4 月发布 LaTeX 以来,LaTeX 已自动预加载\usepackage[utf8]{inputenc}
。这意味着您不再需要指定\usepackage[utf8]{inputenc}
才能使用 UTF-8 输入。有些人仍然这样做,可能是出于习惯,因为他们喜欢明确输入编码,或者因为他们的文档可能需要在过时的系统上运行。
有关输入编码和 UTF-8 的更多详细信息,请参阅字体编码和输入编码有什么区别?和有什么理由使用 inputenc 吗?。
请注意,虽然 LaTeX 现在将 UTF-8 设置为默认输入编码,但由于技术限制(我正在考虑结合重音符号),使用 pdf(La)TeX 无法实现完整的 UTF-8/Unicode 支持。如果您需要完整的 Unicode 支持,您可能需要研究 Lua(La)TeX 或 Xe(La)TeX。
答案2
文本文件与任何计算机文件一样,实际上是由一系列数字组成的(通常收集为从 0 到 255 的一系列数字,称为字节)。您需要一组规则(称为编码)来将字符与一组数字关联起来。UTF-8 编码就是这样一种编码,它有一组规则,允许在文本文件中表示与许多语言(包括数学、象形文字等)相关的字符。当 (La)TeX 读取文件时,它必须“知道”如何解释输入字节,因此需要告知它正在使用哪种编码。LaTeX 的最新版本默认使用 UTF-8 编码(实际上是可以用正在使用的字体表示的字符子集)。