我如何控制新 \paragraph 上方的间距?

我如何控制新 \paragraph 上方的间距?

我使用的是 LaTeX,使用文章类型 documentclass。我没有自定义任何确定长度的 LaTeX 变量,例如等 \parindent\topskip

我想要控制出现在新上方的垂直间距量\paragraph

特别想捏捏它。

有什么提示吗?

答案1

现在您的文档类已知,剩下的就不难了。 的定义\paragraph需要更改。 以下代码片段(将添加到您的序言中)将重现类\paragraph中的原始定义article

\makeatletter
\renewcommand{\paragraph}{%
  \@startsection{paragraph}{4}%
  {\z@}{3.25ex \@plus 1ex \@minus .2ex}{-1em}%
  {\normalfont\normalsize\bfseries}%
}
\makeatother

更改3.25ex为较小的值,段落部分前的垂直间距将减小。(\@plus和之后的值\@minus是拉伸和收缩标准空间的参数 - 您也可以更改这些参数,但不需要。)-1em以下参数中的控制段落部分之后的间距 - 负号影响水平的添加空格,即\paragraph会产生内联标题。

答案2

包裹标题安全提供许多工具来自定义章节/节/段落/等标题。以下是一个例子(也可作为最小工作示例 ;-) ):

\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{lmodern}

\usepackage{titlesec}
\usepackage{lipsum}% provides filler text

\titlespacing{\paragraph}{%
  0pt}{%              left margin
  0.5\baselineskip}{% space before (vertical)
  1em}%               space after (horizontal)

\begin{document}

\lipsum[1]

\paragraph{Lipsum 2} \lipsum[2]

\end{document}

不幸的是,没有简单的方法(据我所知)来仅更改之前的垂直间距,您还需要指定其他参数,即0pt左边距和1em之后的间距(通过猜测和检查得出)。我设置的垂直间距0.5\baselineskip相当于正常行高一半,看起来比默认间距小。显然,您可以使用它0pt来完全挤压这个空间。

答案3

titlesec包允许更改部分边距:

\usepackage{titlesec}
\titlespacing*{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{1em}
  • 以上为默认值,您可以根据需要进行修改。

  • 我建议使用加号和减号来调整间距,以适应页面上剩余的空间。

答案4

如果您使用 KOMA-Script 模板,例如scartcl

您可以使用 修改部分间距\DeclareSectionCommand,例如 的默认定义为\paragraph

\DeclareSectionCommand[%
level=4,
indent=0pt,
beforeskip=3.25ex plus 1ex minus .2ex,
afterskip=-1em,
font={},
tocindent=7em,
tocnumwidth=4.1em,
counterwithin=subsubsection
]{paragraph}

通过减少beforeskip,您可以根据自己的喜好更改此间距。

相关内容