![用于科学交流的 Unicode——有用但不一致?(特别是上标/下标)](https://linux22.com/image/1407838/%E7%94%A8%E4%BA%8E%E7%A7%91%E5%AD%A6%E4%BA%A4%E6%B5%81%E7%9A%84%20Unicode%E2%80%94%E2%80%94%E6%9C%89%E7%94%A8%E4%BD%86%E4%B8%8D%E4%B8%80%E8%87%B4%EF%BC%9F%EF%BC%88%E7%89%B9%E5%88%AB%E6%98%AF%E4%B8%8A%E6%A0%87%2F%E4%B8%8B%E6%A0%87%EF%BC%89.png)
Unicode 为科学目的提供了一套不错的字符。其中包括量子力学和统计物理学中常用的尖括号 (|ψ⟩, ⟨T⟩)、常用常数符号 (ℏ),甚至上标和下标数字、括号和字母 (χ⁽²⁾)。
后者的不一致总是让我有点困惑。例如维基百科,您会注意到拉丁字母表中的大部分子集都可用作下标,但并非全部。虽然我理解为什么人们可能不想将所有字母表中的几乎所有字符都放入 unicode 作为上标和下标版本,但我确实想知道为什么拉丁字母表只包含在下标中,而上标中则更少。
这背后有什么原因吗?或者这实际上是一个遗漏?
附言:我担心这个问题可能不太适合超级用户,但我想不出更合适的堆栈交换网站。
PPS:我使用 Emacs 的“TeX”输入法以及从其符号表生成的 Autohotkey 脚本来编写此类符号。
答案1
Unicode 是一种编码标准纯文本。因此,数学文本中使用的任何符号都可以编码为 Unicode 字符,并且已经对大量此类字符进行了编码。这个过程正在进行中,如果新字符确实被用户接受,则会添加它们。
上标和下标本身不是纯文本,而是“富文本”,就像斜体、粗体、特定字体、颜色、背景、边框和动画字母一样。上标“2”仍然是字符“2”,只是位置凸起,而且通常尺寸较小。从这个角度来看,我们可以说上标和下标根本不需要编码。可以使用普通字符,也可以使用纯文本级别以外的设备,或者可以使用“更高级别的协议”,例如文字处理器中的命令、样式设置、HTML 或 MathML 标记等。
因此,问题实际上是为什么上标和下标被纳入 Unicode,而不是为什么它们不构成统一的集合。一个原因是其他字符代码有上标和下标字符。Unicode 必须包括它们。另一个原因在注释中给出XML 和其他标记语言中的 Unicode: “上标和下标字母和数字在某些形式的语音或音素转录中非常常见,其中样式的使用既不方便,又容易在导出为纯文本时出现数据完整性问题。特别是对于语音转录中的上标或下标字母,从上标或下标更改为常规样式会改变其含义。请注意,转录中的此类使用不仅限于字母:上标小数字通常用于表示声调。当用于这些目的时,应保留这些字符,并且不应使用标记。”
但是,添加上标和下标版本任何字符意味着要添加大约 200,000 个字符。接下来,有人会想要任何字符的斜体和粗体版本,依此类推,这样我们的编码空间就会用尽。在此之前,排版师会精神崩溃:他们真的不想为这样的字符设计字形(其中大多数永远不会使用)。
这就是为什么引用的文件补充道:“在数学上下文(MathML)中使用时,建议对上标和下标始终使用样式标记。这是因为数学布局不仅允许单个符号,还允许整个表达式以常规、嵌套的方式上标或下标。”