什么被视为非标准输入编码的标记?

什么被视为非标准输入编码的标记?

当我使用 (La)TeX 的输入编码,允许我直接输入诸如 é 和 ä 之类的字符(例如通过声明\usepackage[utf8]{inputenc})时,如何定义标记?具体来说,

  • 是否可以写类似的东西\^ä;对于这种情况,我是否表示这个字符对 (La)TeX 有影响吗?
    • 作为 U+00E4 或
    • 使用组合序列 U+0061 U+0308 ,
  • 或者我必须使用\^{ä}

(这个问题的灵感来自用户 @doncherry 对关于重音字符的这个问题

答案1

标准 (pdf)LaTeX 基于pdftex8 位导向。

如果您使用 8 位编码ansinew,例如 ,ä则编码为11100100。这意味着它的长度为 8 位,因此对于 来说,pdftex它是一个输入“实体”。在这种情况下\^ä可以工作(如果您使用inputencä则是一个命令,并且发生的情况取决于设置 的实际定义的字体编码ä)。

如果使用utf8ä通常会被编码为1100001110100100。因此它至少有 2x8 位长,并且pdftex可以看到两个输入“实体”。由于inputenc使第一位有效,因此ä实际上是一个相当复杂的命令,像这样的组合\^ä通常会中断。

引擎 XeTeX 和 LuaTeX 是面向 Unicode 的。

对于他们来说,UTF-8 编码U+00E4 ä单个实体。有了这些引擎,不再存在“普通” ASCII 字符和“特殊”非 ASCII 字符之间的区别:ä将像 一样处理a,并且\^ä可以正常工作。如果ä被编码为,U+0061 U+0308那么对于这些​​引擎来说,也有两个输入实体。像这样的命令\^ä通常不会在这种情况下中断,但输出可能与 不同\^{ä}。同样,发生的情况取决于字体和 的实际定义(通常由这些引擎\^设置)。xunicode

相关内容