如果我使用具有不同编码的包,会遇到麻烦吗?
我正在使用 TeXShop,包裹是西方语言(ISO Latin 9),但我使用的模板文件是西方语言(Mac OS Roman)。
(根据下面的评论,我认为没有使用任何非 ASCII 字符。)
答案1
是的,如果您使用具有不同编码的软件包,您可能会遇到麻烦,因为当 TeX 读取文件时,它会记录组成每个字符的字节;字节或字节序列在排版时被解释为字符。示例(将此文件保存为 UTF-8):
\documentclass{standalone} %-*-coding: utf-8-*-
\usepackage[applemac,latin9,utf8]{inputenc}
\newcommand{\foo}{£}
\begin{document}
\begin{tabular}{ll}
UTF-8 & \inputencoding{utf8} \foo \\
Latin 9 & \inputencoding{latin9} \foo \\
Mac Roman & \inputencoding{applemac} \foo \\
\end{tabular}
\end{document}
命令的定义\foo
包含组成£
UTF-8 编码字符的两个字节(因为我说过将文件保存为 UTF-8)。它相当于
\newcommand{\foo}{^^c2^^a3}
当输入编码为 UTF-8 时使用该命令,您将得到字符 £。当输入编码为 Latin 9 时使用该命令,您将得到 £,因为^^c2
 是 Latin 9 并且^^a3
是 £。当输入编码为 Mac Roman 时使用该命令,您将得到$\neg$
(强制使用数学模式,因此会出现编译错误)^^c2
和 £ ^^a3
。
只要任何命令的定义中包含非 ASCII 字符,并且只使用它们原本的编码(包括您从不使用它们的情况,例如,如果它们是某些文本的翻译,用于您不使用的语言),那就没问题。但否则,字符将不会按预期排版。这就是为什么大多数软件包都坚持使用 ASCII 字符,并使用明确的方式指定其他字符(例如,\pounds
而不是£
使用任何编码)。
正如其他人所说,开放大学 TMA LaTeX 软件包坚持使用纯 ASCII,所以你没问题。也许你的程序会将其显示为 Latin 9,因为它默认显示这个而不是 ASCII。
注意:此答案适用于 TeX/LaTeX 本身。其他系统(例如 LuaLaTeX)的行为可能有所不同。