在 Plain TeX 中定义 \section 的方式正确吗?

在 Plain TeX 中定义 \section 的方式正确吗?

我对 Plain T E X还比较陌生,我想定义一个\section命令来排版粗体居中文本,并在文本周围留出一些空格。以下是我想到的。

\def\section#1{\bigbreak\centerline{\bf #1}\medskip\nobreak}

这是正确的做法吗?特别是我不知道是否\medskip必须在之前或之后输入\nobreak。我知道\beginsection宏(左对齐部分标题)比这更复杂,但我不明白它有什么好处。

答案1

你需要在跳过之前接受惩罚,否则你就可以休息一下:

在此处输入图片描述

\def\section#1{\bigbreak\centerline{\bf #1}\medskip\nobreak}

\def\text{Aaaa bbb ccc one two three four five.
Red blue green yellow white black. }


\text\text
\section{1 abc}
\text\text

\section{2 aabbcc}
\text\text

\vskip 40\baselineskip

\text

\section{3 aa}

\text\text

\bye

如果你交换它们,你会得到

在此处输入图片描述

除此之外,除了使用居中框和括号参数而不是\par分隔参数外,它或多或少与普通的 tex 宏相似。

缺少的主要是对下一段缩进的控制,但无论如何您可能都希望缩进第一段。

相关内容