如何更改 KOMA-Script 上的部分和章节页面?

如何更改 KOMA-Script 上的部分和章节页面?

在 KOMA-Script 课程中,如何更改由 创建的页面的外观(字体大小、颜色、排列、内容等\part\chapter

可以使用 KOMA-Script 命令轻松更改页面样式,但据我了解,这仅允许更改页眉和页脚,而不允许更改实际内容scrguide

我尝试过titlesec,但是这有一些缺点,因为它不支持我真的很想使用的KOMA\setpartpreamble和。\setchapterpreamble

答案1

KOMA 提供了命令\addtokomafont\setkomafont\usekomafont。第一个和第二个命令有两个强制参数。第一个是需要更改字体的元素的名称。第二个参数是字体定义:

\setkomafont{part}{\Huge\bfseries} 

将该部分设置为大号和粗体。该命令\addkomafont将第二个强制参数的元素添加到默认定义中。使用该命令,\usekomafont您可以使用预定义设置。

与部分和章节相关,可能有以下命令:

  • part:设置字体\part
  • partentry\part:设置目录中的字体
  • chapter:设置字体\chapter
  • chapterentry\chapter:设置目录中的字体

文档展示了更多示例和选项。要添加颜色定义,您可以使用:

\setkomafont{part}{\Huge\bfseries\color{red}} 

部分的排列采用\raggedpart默认定义

\newcommand*{\raggedpart}{}
\let\raggedpart\centering

答案2

\part和的代码\chapter与其他部分单元不同,与默认文档类一样,包含在相关类中。因此,如果您使用scrreprt.cls,以下是生成布局(包括字体大小、颜色、排列和内容)的代码:

部分:

\def\@part[#1]#2{%
    \ifnum \c@secnumdepth >-2\relax
      \refstepcounter{part}\@maybeasf%
      \addcontentsline{toc}{part}{\protect\numberline{\thepart}#1}%
    \else
      \addcontentsline{toc}{part}{#1}%
    \fi
    \chaptermark{}
    {\centering
     \interlinepenalty \@M
     \normalfont
     \ifnum \c@secnumdepth >-2\relax
       \size@partnumber\sectfont\partformat
       \par
       \vskip 20\p@
     \fi
     \size@part\sectfont #2\par}%
    \@endpart}

章节:

\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
                         \refstepcounter{chapter}%
                         \typeout{\@chapapp\space\thechapter.}%
                         \addcontentsline{toc}{chapter}%
                                   {\protect\numberline{\thechapter}#1}%
                    \else
                      \addcontentsline{toc}{chapter}{#1}
                    \fi
                    \chaptermark{#1}%
                    \addtocontents{lof}{\protect\addvspace{10\p@}}%
                    \addtocontents{lot}{\protect\addvspace{10\p@}}%
                    \if@twocolumn
                      \@topnewpage[\@makechapterhead{#2}]%
                    \else
                      \@makechapterhead{#2}%
                      \@afterheading
                    \fi}
\def\@makechapterhead#1{\chapterheadstartvskip%
  {\size@chapter{\sectfont
    \@hangfrom{\ifnum \c@secnumdepth >\m@ne%
                  \chapterformat\fi}%
              {\raggedsection \interlinepenalty \@M #1\par}}
    \nobreak\chapterheadendvskip
  }}

与上述类似,编号元素和非编号元素的布局有细微差别(例如, for\part*\chapter*),但您也可以在源类中找到这些定义。

您将如何更改它们?要么通过KOMA 脚本文档或者根据自己的喜好更新上述定义。例如,

  • 更新字体和颜色\part

    更新宏\partformat以包含颜色。它目前定义为

    \newcommand*\partformat    {\partname~\thepart\if@altsecnumformat.\fi}
    

    所以使用

    \usepackage{xcolor}% http://ctan.org/pkg/xcolor
    %...
    \newcommand*\partcolor{\color{blue!50}}% Part is coloured blue
    \newcommand*\partformat    {\partcolor\partname~\thepart\if@altsecnumformat.\fi}
    

    如果您想更新颜色(比如说,从一种颜色到另一种颜色),上述操作只允许您进行更改,\partcolor而不必重新格式化整个颜色。\partformat\part

  • 修改章节标题后的空格:

    更新定义\chapterheadendvskip(通过文档类选项或直接更新)。例如,

    \def\chapterheadendvskip{\vspace{50pt}}
    

    50pt会在章节标题和章节正文开头之间留下空隙。KOMA 脚本文档(第节)专门介绍了此问题16.3. 专家命令,第 285 页)。

这个问题非常笼统,因此我只给出了一些关于修改这些结构单元的一般指导原则。如果该类不能对布局的特定元素提供足够的控制,则必须手动修改结构部分。为此,文档类通常被认为是限制性的,而(兼容)包提供了扩展或灵活性,可以根据您的喜好进行修改,而不是修改实际代码。

相关内容