给出以下纯 TeX 片段及其输出:
hallo werld
{\catcode`\ =12
hallo wereld}
{\tt
hallo wereld}
{\tt\catcode`\ =12
hallo wereld}
该命令\catcode`\ =12
将空格字符的类别更改为“其他”。这将使 TeX 显示它。
打字机字体中的空格符号看起来很熟悉。但是,默认字体中显示的符号我不认识。
好奇问一下,它有名字吗?有什么用途?
答案1
TeX 不使用当前字体中的实际字符来表示空格,因此 Knuth 决定用一个很少使用的字形来填充通常为其保留的插槽:用于产生“波兰抑制的 ell”ł 的斜线。以下是相关行plain.tex
\def\l{\char32l}
\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
TFM 文件中的字距调整条目也对此进行了补充:
(LIGTABLE
(LABEL O 40)
(KRN C l R -0.277779)
(KRN C L R -0.319446)
(STOP)
...
由于该字符的宽度为 0.277779pt,当它位于小写字母“l”之前时,其宽度会得到补偿。
在该cmtt10
字体(以及其他打字机类型的字体)中,该插槽由“可见空间”填充。
答案2
它看起来像 U+2422(空白符号)上的斜线:␢。由于已知 LaTeX 会在常规字符上叠加斜线(例如,由 生成的符号\hbar
),我敢打赌底层b已被删除或省略。