如何使用 KOMA-Script 在每个部分标题下制定规则?

如何使用 KOMA-Script 在每个部分标题下制定规则?

这个问题或多或少与此重复类似名称的问题,但并不完全相同。我还想在每个部分标题下方放置一条水平线(与链接问题完全相同)。这个现有问题的答案仅显示了如何使用包实现这一点titlesec

但是我正在使用 KOMA-Script 类scrreprt,不建议titlesec同时使用 KOMA-Script,因为titlesec 破坏了 KOMA-Script 的几个功能KOMA-Script 在警告中对此表示抗议。

似乎\DeclareSectionCommand只能更改节标题前/后的垂直跳过。最后,存在一些命令,例如\At@startsection添加一些内容 章节标题,但没有添加任何内容章节标题。

有什么方法可以让 KOMA-Script 在不使用该包的情况下在章节标题后打印规则titlesec

一个小的MWE:

\documentclass{scrreprt}
\begin{document}
    \chapter{The first chapter}
    \section{A nice section}
    Some text
\end{document}

期望结果(规则不必是红色):

结果

答案1

这将是可能的KOMA-Script 版本 3.19或更新版本。有一个新的命令\sectionlinesformat可以重新定义,用于在节标题后插入行。

\documentclass{scrreprt}[2015/09/15]% needs Version 3.19 or newer

\makeatletter
\renewcommand{\sectionlinesformat}[4]{%
\ifstr{#1}{section}{%
    \parbox[t]{\linewidth}{%
      \raggedsection\@hangfrom{\hskip #2#3}{#4}\par%
      \kern-.75\ht\strutbox\rule{\linewidth}{.8pt}%
    }%
  }{%
    \@hangfrom{\hskip #2#3}{#4}}% 
}
\makeatother

\usepackage{blindtext}% only dummy text
\begin{document}
    \chapter{The first chapter}
    \section{A nice section}
    \Blindtext[2]
    \addsec{A nice section without number}
    \blindtext
\end{document}

结果:

在此处输入图片描述

答案2

或许这是一个开始。

\documentclass{scrreprt}
\let\svsection\section
\def\section#1{\svsection{#1}\noindent\smash{\rule[3ex]{\textwidth}{2pt}}\par%
  \vspace{-\baselineskip}\noindent}
\begin{document}
    \chapter{The first chapter}
    \section{A nice section}
    Some text
\end{document}

在此处输入图片描述

相关内容