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