仅修改在 titlesec 包中

仅修改在 titlesec 包中

再会。

我想在每个部分后添加一些空间。我正在使用 article 类,并且查看了 titlesec 包以自定义此参数。我研究了几个问题,大多数人建议使用此命令:

\titlespacing*{<command>}{<left>}{<before-sep>}{<after-sep>}

在这种情况下,我需要修改每个我不想做的参数。我如何增加分离后而不处理其他参数?

例子:

\documentclass[12pt]{article}
\usepackage{lipsum}
\begin{document}

\section{Header}
\lipsum[1]


\subsection{Subheader}
\lipsum[1]

\end{document}

我想增加标题和此图所示的段落之间的空间:

latex.jpg

答案1

您可以直接使用修改设置\@startsection;相关行article.cls

% article.cls, line 312:
\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries}}

的论点\@startsection

  1. 姓名
  2. 等级
  3. 缩进
  4. 跳过之前(如果为否定,则抑制下一段落的缩进)
  5. 跳过后(如果为负数,则标题为运行)
  6. 设置(排版标题的命令)

因此你需要修改跳过后, 说

\makeatletter
\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {6ex \@plus 1ex}%
                                   {\normalfont\Large\bfseries}}
\makeatother

答案2

您可以用默认值替换indentbeforeskip(来自article.clsegreg 提供的内容)。要取消下一段的缩进,请使用带星号的版本\titlespacing

\documentclass{article}
\usepackage{titlesec}
\titlespacing{\section}{0pt}{3.5ex plus 1ex minus -.2ex}{6ex plus 1ex}
\begin{document}
  Some text
  \section{First section}
  some text
  \section{Second section}
  some text
\end{document}

在此处输入图片描述

相关内容