如何在没有 titlesec 包的情况下在 KOMA-Script 中获取部分样式?

如何在没有 titlesec 包的情况下在 KOMA-Script 中获取部分样式?

嗯,这次我有一个非常简洁的疑问如何在 KOMA-Script 中获取与默认样式不同的部分样式(实际上在scratcl类内)无需使用titlesec包。

通过该titlesec包我可以用以下代码获得我需要的东西:

\titleformat{\subsection}[runin]
{\scshape\bfseries}
{\color{blue} \S \thesubsection .}
{1ex}{\color{blue}}[.\quad]
\subsection{\mbox{}}
Text Text Text Text Text
Text Text Text Text Text
Text Text Text Text Text

我发现这个问题关于titlesec和KOMA-Script之间的不兼容性,但我还不清楚如何在准系统KOMA-Script 方式。

当然是我的 MWE:

\documentclass[fontsize=14pt,paper=letter,headings=big,DIV=calc,headsepline=true,titlepage=on,draft=false,index=totoc]{scrartcl}
\usepackage[usenames,dvipsnames,x11names,table,rgb]{xcolor}
\usepackage[spanish,mexico,es-ucroman]{babel}
\usepackage{amsmath}

\KOMAoption{parskip}{half*}
\begin{document}

\section{Recuperación de costos}

\subsection{\mbox}

Text Text Text Text Text
Text Text Text Text Text
Text Text Text Text Text

\end{document}

答案1

您可以\RedeclareSectionCommand更改标题前后的跳过。负值afterskip将导致水平跳过。因此,您将获得连续标题。要更改标题中子部分编号的格式,您可以重新定义\subsectionformat。要在子部分标题末尾插入点,请重新定义\sectioncatchphraseformat

\RedeclareSectionCommand[
  afterskip=-1ex,
  font=\rmfamily\scshape\bfseries\color{blue}
]{subsection}
%
\renewcommand\subsectionformat{\S \thesubsection\autodot\hspace{1ex}}
\renewcommand{\sectioncatchphraseformat}[4]{%
    \hskip #2#3#4%
    \ifstr{#1}{subsection}{.}{}%
  }

要确保标题编号由 KOMA-Script 类控制,请使用选项babeles-nosectiondotKOMA-Script 选项numbers=enddot

在此处输入图片描述

代码:

\documentclass[
  fontsize=14pt,paper=letter,headings=big,DIV=calc,
  headsepline=true,titlepage=on,draft=false,index=totoc,
  parskip=half*,
  numbers=enddot% <- added
]{scrartcl}[2015/10/03]
\usepackage[T1]{fontenc}% <- added
\usepackage[utf8]{inputenc}% <- added

\usepackage[usenames,dvipsnames,x11names,table,rgb]{xcolor}
\usepackage[spanish,mexico,es-ucroman,
  es-nosectiondot% <- added
]{babel}


\RedeclareSectionCommand[
  afterskip=-1ex,
  font=\rmfamily\scshape\bfseries\color{blue}
]{subsection}
%
\renewcommand\subsectionformat{\S \thesubsection\autodot\hspace{1ex}}
\renewcommand{\sectioncatchphraseformat}[4]{%
    \hskip #2#3#4%
    \ifstr{#1}{subsection}{.}{}%
  }

\begin{document}
\section{Recuperación de costos}

\subsection{\mbox{}}
Text Text Text Text Text
Text Text Text Text Text
Text Text Text Text Text

\subsection{Subsectiontitel}
Text Text Text Text Text
Text Text Text Text Text
Text Text Text Text Text
\end{document}

相关内容