抱歉,没有提供最小工作/演示示例。
问题不在于代码,而在于理解 TeXbook 中的内容。
TeXbook,附录 C:字符代码提供了三个表格。
第一个表显示了(未扩展的)ASCII(它提供从 0(十进制)到 127(十进制)范围内的代码点,并将特定字符双射映射到这些代码点 - 生成的映射集表示 ASCII 定义的具体内容)。
第二张表显示了如何仅使用在编写 TeXbook 时 IT 时代使用的终端/键盘上通常可输入的九十五个字符来访问 (未扩展) ASCII 的所有字符。
由于 TeX 的^^
-notation 仅要求九十五个可输入标准字符的严格子集,因此第二张表显示了如何通过^^
-notation 访问位于 ASCII 代码点 0(dec) 到 31(dec) 和 127(dec) 中的三十三个 (未扩展) ASCII 字符,您可能无法在编写 TeXbook 时使用的终端/键盘上输入这些字符,并且您仍然无法使用当今的大多数键盘输入这些字符。
但我不知道第三张表显示的是什么:
它与 (未扩展) ASCII 有所不同,但与 (未扩展) ASCII 一样,提供的代码点范围是从 0 (十进制) 到 127 (十进制)。
维基百科等告诉我们“扩展 ASCII”提供从 0(十进制)到 255(十进制)范围内的代码点。
尽管如此,TeXbook 中介绍第三个表格的段落指的是
- 一些字符编码方案“由麻省理工学院开发,略优于”某物“在斯坦福大学开发”,
- 一个“扩展 ASCII 码用于文本编辑和交互式计算”哪个“于 1965 年左右在几所大学开发”。
该段还提到了
- “多年来,斯坦福大学、麻省理工学院、卡内基梅隆大学等学校使用的终端有 120 或 121 个符号,而不仅仅是 95 个。”
请求 1:
有人可以把混乱变为混乱并准确解释 (未扩展的) ASCII 和扩展 ASCII 以及所提到的具有 120 或 121 个符号的终端的方式,而不仅仅是 95 个与偏离 (未扩展的) ASCII 的第三个表相关,但像 ASCII 一样仅在 0(十进制)到 127(十进制)范围内提供代码点。
问题 1:
在 TeXbook 的附录 C 中,您可以找到短语“扩展 ASCII 代码”。
如果您拼出首字母缩略词,您会得到:
“扩展美国信息交换标准代码”。
这很奇怪,也令人困惑。“扩展 ASCII”还不够吗,因为“ASCII”中的“C”代表“代码”?
答案1
为了回答这个问题:
似乎 Knuth 建议 TeX 的内部字符表示方案偏离 ascii,以防使用的计算机系统/终端允许在键盘上方便地键入并在屏幕上显示(例如通过 \message)未涵盖(未扩展)ascii 的符号。他指出,这可能会降低不同计算机之间 TeX 代码的可互换性,并建议旨在广泛使用的 TeX 宏包的设计者坚持使用标准 ascii 字符。
这egreg 的评论是:
在编写 TeXbook 时,8 位字符集才刚刚开始出现。Knuth 描述了他所在机构使用的 7 位字符集。现在这已经不是什么重要的事情了。
因此,TeXbook 中的术语“扩展 ASCII 码”似乎并不是指如今术语“扩展 ASCII 码”所指的内容。
在 TeXbook 中,术语“扩展 ASCII 码”不是指提供 256 个代码点(而不是 128 个)的 8 位编码,而是指偏离(未扩展)ASCII 的 7 位编码,TeXbook 的作者认为,当终端/键盘可输入的字符超过通常的 95 个时,这种编码很有用。
第三个表显示了这种编码=字符和代码点数字之间的这组映射。
如果我的理解正确,就会出现一些子问题,如果另一个答案或评论也能解决这些问题,我会很高兴:
如果我没记错的话,字体编码会将输入字符映射到字形。更改 TeX 的内部字符编码方案是否意味着需要调整所有正在使用的字体编码?
改变 TeX 的内部字符编码方案 - 这是否意味着需要调整 TeX 的将内容写入文件/屏幕的例程,以确保使用
^^
-notation 来显示正在使用的终端无法显示的字符?