\,在纯 TeX 中,数学模式之外不起作用

\,在纯 TeX 中,数学模式之外不起作用

我在这里读到过几个答案,在 LaTeX 中,\,它的工作方式与外部数学模式一样\thinspace。然而,对于普通的 TeX 来说情况并非如此。

$ printf '%s\n' 'a\,b\bye' > example.tex
$ pdftex example.tex 
This is pdfTeXk, Version 3.141592-1.40.3 (Web2C 7.5.6)
 %&-line parsing enabled.
entering extended mode
(./example.tex
! Missing $ inserted.
<inserted text> 
                $
<to be read again> 
                   \mskip 
\,->\mskip 
           \thinmuskip 
l.1 a\,
       b\bye
? quit
OK, entering \batchmode
  • 对原始 TeX 格式做出这样的设计决策的理由是什么?
  • 这两个宏在使用上有什么区别?$\,$和 一样吗\thinspace
  • 当将单位与数字分开时,我应该使用哪一个?($10\,{\rm kB}$,,10\thinspace kB还是10$\,$kB?)

答案1

在 Plain TeX 中,\,是一个数学命令,因此不能在文本模式下使用。但你已经注意到了。所以我将逐一回答你的三个问题:

  • LaTeX 的创建时间晚于 (Plain) TeX。因此,问题应该是,为什么 LaTeX 会改变这一点?似乎 LaTeX 重新定义了命令,\,以便为两种情况选择正确的行为。这是 LaTeX 试图促进的众多事情之一。

  • 不是。默认情况下,在文本模式下\,插入\thinspace(相当于),在数学模式下插入(相当于,其中) (Werner,.16667em\thinmuskip3mu18mu=1em2012)。因此,如果修改了\thinspace宏或值mu\,不是在文本和数学模式中生成相同的间距。

  • 我总是在数学模式下设置这些东西(数值)。因此,$10\,{\rm kB}$最好使用纯 TeX。

相关内容