调整 \sectionrule(sectsty 包)与以下文本之间的垂直距离

调整 \sectionrule(sectsty 包)与以下文本之间的垂直距离

给定包sectsty和以下代码:

\documentclass[english]{article}
\usepackage{lipsum}

\usepackage{sectsty}
\sectionfont{\sectionrule{0ex}{0pt}{-1ex}{0.2pt}}

\begin{document}
\section*{Life}
\lipsum[1]
\end{document}

在此处输入图片描述

有没有办法通过执行命令来调整水平线(“Life”一词下方)和lipsum文本之间的垂直距离\sectionfont{\sectionrule{0ex}{0pt}{-1ex}{0.2pt}}

答案1

不,但是您可以定义另一个使用 的命令\sectionrule,例如:

\documentclass[english]{article}
\usepackage{lipsum}

\newcommand{\adaptedsectionrule}[6]{%
  \sectionrule{#1}{#2}{#3}{#4}{#6\rule[-#5]{0pt}{#5}}% invisible rule used to increase the distance below

\usepackage{sectsty}
\sectionfont{\adaptedsectionrule{0ex}{0pt}{-1ex}{0.2pt}{1em}}

\begin{document}
\section*{Life}
\lipsum[1]
\end{document}

但恕我直言,更好的解决方案是改变距离\section

\documentclass[english]{article}
\usepackage{lipsum}
\usepackage{sectsty}

\makeatletter
\renewcommand\section{\@startsection {section}{1}{\z@}%
      {-3.5ex \@plus -1ex \@minus -.2ex}%
      {4.5ex \@plus.2ex}% original 2.3ex \@plus .2ex
      {\normalfont\Large\bfseries\SS@sectfont}}
\makeatother

\sectionfont{\sectionrule{0ex}{0pt}{-1ex}{0.2pt}}

\begin{document}
\section*{Life}
\lipsum[1]
\end{document}

顺便说一句: 的当前版本sectsty与当前的 LaTeX 不完全兼容,因为 的定义\underbar已经改变。LaTeX 现在将其定义为受保护的,但 的重新定义sectsty仍然不够稳健。

答案2

使用titlesec而不是sectsty

\documentclass{article}
\usepackage{titlesec}

\usepackage{lipsum}

\titleformat{\section}
  {\normalfont\Large\bfseries}
  {\thesection}
  {1em}
  {}
  [{\titlerule[0.2pt]}]
\titlespacing*{\section}
  {0pt}
  {3.5ex plus 1ex minus 0.2ex}
  {4ex plus 0.2ex}% <-- standard is 2.3ex plus 0.2ex

\begin{document}

\section*{Life}

\lipsum[1]

\end{document}

我标记了定义章节标题后间距的参数。请参阅文档以titlesec了解标准值(第 8.2 节)。

在此处输入图片描述

相关内容