我可以改变 titlesec 对填充值的优先排序方式吗?

我可以改变 titlesec 对填充值的优先排序方式吗?

我曾经遇到过这样的情况:在文档中,有时节标题直接跟在小节标题之后,中间没有通用段落内容。在这些情况下,我\titleformat为节标题前填充设置的值似乎被忽略,而为小节标题后设置的值则被忽略。请参阅此 MWE:

\documentclass{scrartcl}
\usepackage{titlesec}
\titlespacing*{\section}{0pt}{*6}{*1}
\titlespacing*{\subsection}{0pt}{*2}{*0}
\pagestyle{empty}
\begin{document}
Test
\section*{Section heading}
\subsection*{Subsection heading}
\section*{Another section heading(note lack of padding above)}
Test
\section*{Yet another section heading}
\end{document}

MWE 输出缺失填充

通常我不希望在小节标题后留有任何空格,但如果文档中出现小节->小节的转换,我希望优先使用我为小节标题设置的填充值。有什么方法可以实现吗?

答案1

您必须使用largestseptitlesec 选项。默认值为aftersep

\documentclass{scrartcl}

\usepackage[largestsep]{titlesec}
\titlespacing*{\section}{0pt}{*6}{*1}
\titlespacing*{\subsection}{0pt}{*2}{*0}
\pagestyle{empty}
\begin{document}

Test
\section*{Section heading}
\subsection*{Subsection heading}
\section*{Another section heading(note lack of padding above)}
Test
\section*{Yet another section heading}

\end{document} 

在此处输入图片描述

相关内容