为什么 \thepage 之后没有任何空格?

为什么 \thepage 之后没有任何空格?

代码\thepage of产生输出3of

我可以通过编写来修复它\thepage~of,但首先是什么原因导致的?我无法想象它什么时候会有用。

答案1

TeX 宏会“吃掉”其后的空白,因此\TeX nician排版为 TeXnician,\thepage of排版为3of。您可以输入\thepage~of、 或\thepage\ of\thepage{} of。在第一种情况下,空格是不可破坏的,在其他情况下则不是。

更新:如果你需要由于某种原因,宏后面有空格,请尝试xspace包:

\documentclass{standalone}
\usepackage{xspace}
\newcommand{\Thepage}{\thepage\xspace}
\begin{document}
\Thepage of one.  The page is \Thepage.
\end{document}

在此处输入图片描述

答案2

假设控制序列后有空格不会被忽略。在这种情况下,如果您愿意,您将如何实现输出3of?您不能写,\thepageof因为那将是一个名称不同的控制序列。:-)

这就是为什么(字母)控制序列后的空格忽略。如果你空格,写\thepage\ of\thepage{} of. (\thepage~of仅当您不想在\thepage. 后换行时才正确)

答案3

供参考(和DEK娱乐),从TeX 书(章节3 控制 TeX,第 8 页):

通常情况下,您不需要使用“控制空格”,因为控制序列通常不需要放在单词末尾。但这里有一个例子可能会对这个问题有所启发:本手册本身是由 TeX 排版的,其中经常出现的问题之一是棘手的徽标\TeX,它需要退格并降低 E。有一个特殊的控制字

\TeX

生成了排版所需的大约六条指令 \TeX。当需要类似这样的短语时\TeX\ ignores spaces after control words. ,手稿将其呈现如下:

TeX 忽略控制字后的空格。

\注意后面的额外内容\TeX;这会产生必要的控制空格,因为 TeX 会忽略控制字后的空格。如果没有这个额外的内容\,结果将是

TeXignores 控制字后的空格。

另一方面,你不能简单地在所有情况下都放在\后面\TeX。例如,考虑这个短语

徽标“TeX”。

在这种情况下,额外的反斜杠根本不起作用;事实上,如果你输入

the logo `\TeX\'.

你能猜出会发生什么吗?答案:这\'是一个表示重音的控制序列,如上P\'olya例所示;因此,效果是将重音放在下一个非空白字符上,而这个非空白字符恰好是一个句号。换句话说,你得到了一个重音句号,...

计算机擅长遵循指令,但不擅长读懂你的想法。

相关内容