我认为这个问题的答案应该是肯定的,但我在其他地方找不到答案:多个连续的 是否\par
与单个 相同\par
?例如,是否\par\par
与 相同\par
?
更一般地,由于空行相当于\par
:任何连续的 和空行(或它们的任意混合)的有限序列是否\par
等同于单个\par
(或单个空行)?
我知道这个问题可能看起来微不足道,但我确实想知道它是如何定义宏的。任何帮助都感激不尽!
答案1
之后\par
,TeX 处于垂直模式。然后 TeXbook 第 283 页,第二条,解释了
当 TeX 处于垂直模式时,原始
\par
命令不起作用,除非在贡献列表中存在某些内容时执行页面构建器,并且清除段落形状参数。
第 281 页解释了“使用页面构建器”:
TeX 定期将已放入主垂直列表的材料从“贡献列表”移至“当前页面”。此时可能会调用输出例程。我们称 TeX练习页面构建器每当它尝试清空当前贡献列表时。贡献列表的概念仅存在于最外层的垂直模式中,因此当 TeX 在内部垂直模式下运行页面构建器时,什么也不会发生。
段落形状参数是赋予\parshape
、\hangindent
或 的任意值\hangafter
。
\par
因此,除非您重新定义了 ,否则您不必担心连续的标记\par
。两个连续的空行计为两个\par
标记,如以下 Plain TeX 示例所示:
\def\par{X\endgraf}
a
b
\bye
产生
答案2
引用的文本(在 egreg 的回答中)是关于 tex 原语的,但空白行实际上是一个\par
可以随时重新定义的标记(在 latex 中经常重新定义)。因此,连续是否\par
等同于一取决于定义。例如,在任何列表(或列表定义的环境,例如)的开头,center
您可以有 1 或 2 或 1000,\par
但不要再冒险了:
\documentclass{article}
\begin{document}
\def\cpar{\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par
\par\par\par\par\par\par\par\par\par\par}
\begin{center}
\par
\end{center}
\begin{center}
\cpar\cpar\cpar\cpar\cpar\cpar\cpar\cpar\cpar\cpar
\end{center}
\begin{center}
\cpar\cpar\cpar\cpar\cpar\cpar\cpar\cpar\cpar\cpar
\par% straw camel back....
\end{center}
\end{document}