我想创建“匿名分区”——文本中没有自己的章节标题的分区。我正在使用 memoir 类,它为此提供了\plainbreak{}
和\fancybreak{}
。但它们并没有达到我想要的效果:\plainbreak
不指示开始新的分区,并\fancybreak
添加了额外的文本。我想通过将前几个单词设置为小写来指示新的分区。像这样:
end of paragraph, followed by a couple of empty lines.
BEGINNING OF the new division, not indented, starting with small caps.
我在许多书中都看到过这一点,但令我惊讶的是回忆录中没有提供这一点。
可以肯定的是,我可以通过以下方式实现我想要的目标:
\plainbreak{1}
\textsc{Beginning of} the new division...
但这很尴尬,而且不是 LaTeX 的方式(如果我想在创建数十个这样的分区后更改间距和字体怎么办?)。然后我想我应该能够简单地使用 \paragraph 来:
\setparaheadstyle{\normalsize\scshape}
但这会在 \paragraph "title" 之后留下额外的水平空间:
end of paragraph, followed by a couple of empty lines.
BEGINNING OF the new division, but with extra space.
我找到了\setafterparaskip{}
命令,但我不知道如何告诉它在之后使用单词间距\paragraph{}
。例如,\setafterparaskip{\spaceskip}
不起作用。
搜索很困难\paragraph{}
,因为大多数结果讨论的是普通段落,而不是标题。
实现我想要的最好方法是什么?
编辑:当然有一种蛮力方法可以完成我想要的操作:
\renewcommand*{\paragraph}[1]{\plainbreak{1}\textsc{#1}}
有没有更好的方法?这会产生意想不到的副作用吗?
答案1
限制:它期望在输入流中找到至少两个空格。
如果你希望有某种东西可以真正替代\plainbreak
,也许是这个:
\documentclass{memoir}
\renewcommand\plainbreak[1]{\par\vspace{#1\baselineskip}\Plainbreakaux}
\long\def\Plainbreakaux#1 #2 #3 {{\let\par\relax\noindent\scshape#2 #3} }
\begin{document}
\noindent end of paragraph, followed by a couple of empty lines.\plainbreak{1}
Beginning of the new division, not indented, starting with small caps.\plainbreak{2}
Also a new division\plainbreak{1}
A final division.
A regular paragraph boundary (indented).
\end{document}
答案2
下面的例子怎么样?我添加了 microtype 以获得小写字母的字母间距(这是可调的)。间距的大小取自这个答案:https://tex.stackexchange.com/a/229642/3929
\documentclass[a4paper]{memoir}
\usepackage{microtype}
\setparaheadstyle{\normalsize\scshape\lsstyle}
\makeatletter
\normalfont
\@tempdima=\the\fontdimen2\font
\setafterparaskip{-\@tempdima}
\makeatother
\begin{document}
end of paragraph, followed by a couple of empty lines.
\paragraph{Beginning of} the new division, not indented, starting with
small caps.
\end{document}