我对 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 宏相似。
缺少的主要是对下一段缩进的控制,但无论如何您可能都希望缩进第一段。