titlesec
我有一个使用带有选项的包的双列文档compact
。这主要产生了我喜欢的间距,但它没有在部分标题上方提供足够的可拉伸性,这导致垂直框未满并且段落之间有空格。这在具有全宽浮动且只有一列文本有标题的页面中尤其明显(例如\paragraph
)。
是否有任何简单的方法可以增加可拉伸性,而不需要猜测值\titlespacing
?
最小的例子。
\documentclass{article}
\usepackage[compact]{titlesec}
\usepackage{lipsum}
\beforetitleunit=1in % lockstep's suggestion (more or less)
\begin{document}
\section{A}
\lipsum[1]
\subsection{B}
\lipsum[2]
\subsubsection{C}
\lipsum[3]
\paragraph{D}
\lipsum[4]
\end{document}
答案1
查看titlesec.sty
,以下代码行似乎为标题前后的间距定义了一个“构建块”(实际间距通过应用乘数确定):
\newskip\beforetitleunit
\beforetitleunit=1ex\@plus.3ex\@minus.06ex
\newskip\aftertitleunit
\aftertitleunit=1ex\@plus.1ex
因此,尝试在序言中添加以下内容,使标题前的可延展性加倍:
\makeatletter
\beforetitleunit=1ex\@plus.6ex\@minus.12ex
\makeatother
编辑:似乎必须添加\titlespacing
才能实施对的更改\beforetitleunit
。以下内容应可行并产生具有双倍可拉伸性的“紧凑”间距:
\documentclass{article}
\usepackage[compact]{titlesec}
\makeatletter
\beforetitleunit=1ex\@plus.6ex\@minus.12ex
\makeatother
\titlespacing*{\section}{0pt}{*1}{*1}
\usepackage{lipsum}
\begin{document}
\section{A}
\lipsum[1]
\section{B}
\lipsum[1]
\subsection{Ba}
\lipsum[1]
\end{document}