在一段文本(或一段文本)中不是按标题细分(例如,一篇文章),表示新部分开始的常用工具是一个简单的星号(或其他符号),通常居中,但不一定如此。
\documentclass[pagesize,fontsize=12pt,paper=a5,DIV=9]{scrartcl}
\usepackage{blindtext}
\begin{document}
\blindtext\par
\noindent
\makebox[\textwidth][c]{*}\par
\noindent
\blindtext
\end{document}
这样的事情是必要的或有用的,因为单纯的空白行可能不够清楚,例如当前一个段落以几乎满的行结束时,和/或当新部分的开始与新页面的开始重合时。
我想知道的是,在 *TeX 包中是否有类似这样的实现。这样的实现必须处理一些事情,这些事情会让整个事情变得比我的例子所暗示的要复杂一些:
星号必须始终位于其标记结束部分的最后一行,即不得将其拆分到新页面上
但是:最后一行也可能是页面的最后一行。在单面文档中,
\enlargethispage
如果没有可能与之冲突的页脚,那么这样做可能没问题。在双面文档中,这样做可能也没问题,但您可能要考虑到读者的敏感度,他们会注意到\textheight
星号在双页跨页中造成的差异,并觉得这很不方便。顺便说一句,Jan Tschichold 在他的《企鹅规则》中并不觉得这很不方便。即使没有页脚,也可能会与脚注发生冲突。这种冲突可能更难预料。
可能还有一些事情需要解决。这些是我首先想到的,其中一些问题让我至今无法自己编写出令人满意的实现——这就是为什么我想知道是否有人尝试过。
更新
按照 Ulrike 的建议,我尝试了memoir's
\fancybreak.
以下示例,可以将其与 Marc 和 egreg 进行比较建议。
\documentclass[11pt,a4paper,twoside=false]{memoir}
\usepackage{typearea}
\usepackage{kantlipsum}
\typearea{10}
%typearea etc. are just to create conditions identical to my scrartcl tests of Marc's egreg's solutions
\begin{document}
\kant[1-4]
\fancybreak{* * *}
\kant[1-4]
\end{document}
\fancybreak
似乎没有将星号与它们完成的段落联系起来。
答案1
我会这样做:
\documentclass{article}
\usepackage{kantlipsum}
\newcommand{\finishsection}[1][0]{%
\ifhmode\unskip\fi % to emulate what \par does
\ifnum#1>0 \enlargethispage*{#1\baselineskip}\fi
\par\nopagebreak
\vbox to 3\baselineskip{\centering
\vss
$*$\qquad$*$\qquad$*$\par
\vss
}
}
\addtolength{\textheight}{-7\baselineskip}
\begin{document}
\kant[1-3]
\finishsection
\kant[4-5]
\end{document}
如果您将其更改-7\baselineskip
为-8\baselineskip
星号,则会移动到下一页。在这种情况下,您可以执行
\finishsection[1]
将执行\enlargethispage*{1\baselineskip}
。也许自动版本needspace
是可行的,但在质量书籍制作中,我会选择手动检查。
答案2
尝试这个:
\documentclass[pagesize,fontsize=12pt,paper=a5,DIV=9]{scrartcl}
\usepackage{blindtext}
\def\EndSection{\section*{\hfill*\hfill\hfill}}
\begin{document}
\blindtext\par
\EndSection
\blindtext
\end{document}
答案3
这或许太简单了,但是那又怎么样?
\begin{center}
* * *
\end{center}