Unicode 中的空格符号会打印某种上升破折号吗?

Unicode 中的空格符号会打印某种上升破折号吗?

我有最小的例子

\documentclass{article}\begin{document}Here\char"0020{}There\end{document}

我想表明 LaTeX 文档可以完全不带空格地书写。空格的 UTF8 十六进制代码是0x0020。当使用 pdfLaTeX 编译 MWE 时,我没有得到空格,而是一个上升的小破折号:

pdflatex 输出的可视化

有人可以解释这个吗?

答案1

(pdf)tex 对 Unicode 一无所知,因此您会得到当前字体中位置 32 的任何符号,所有经典 tex 字体都不是 Unicode 编码的(每个字体只有 127 个字符)

即使您使用 xetex 或 luatex,它们确实使用了您不应该使用的 Unicode 字体\char32,tex 不使用字符作为空格,它使用可调整大小的空间。

您看到的实际字符是斜线,用于套印 L 以构成 Ł。由于位置 32 未被使用,因此该位置对于此类字母部分是空闲的(就像控制字符位置用于连字和希腊文以及其他非 ASCII 字符一样)。

答案2

因为空格是 TeX 在“排版材料”层面上使用的特殊实体(它不对应字体中的任何字符代码,但它有自己的基本尺寸加上可拉伸性减去可收缩性),所以 Knuth 认为典型文本字体中为空格声明的插槽是“自由的”,并在这里放置了特殊字符:表示波兰语 l 的十字破折号。

如果你不想在 TeX 文档的输入级别放置空格,那么你可以写

word{\space}word.

答案3

字体OT1编码不足以满足要求。添加

\usepackage[TS1,T1]{fontenc}

在此处输入图片描述

相关内容