在 Scrartcl 中更改标题大小

在 Scrartcl 中更改标题大小

我想使用较小的标题。我正在使用scrartcl使用KOMA-Script 捆绑包。我可以改变它的颜色字体,但不能改变它的大小。

\setkomafont{title}{\normalfont\bfseries\small}

除了尺寸以外,其他都正常。

答案1

文档(scrguien)中说明了标题(我突出显示了相关部分):

标题以非常大的字体大小输出。除了大小更改之外,元素标题的设置也会生效。默认情况下,这些设置与元素配置的设置相同(参见第 51 页表 3.2)。可以使用命令\setkomafont\addtokomafont更改默认设置(参见第 51 页第 3.6 节)。但字体大小不受影响(见第 59 页表 3.2)。

使用 执行的字体大小更改之所以\setkomafont不起作用,是因为scrartcl.cls使用

\titlefont\huge \@title\par

\setkomafont因此,使用(通过 应用)对字体大小所做的任何修改都 将被之后的命令\titlefont覆盖。\ḩuge\titlefont

这是一个可能的解决方案,使用etoolbox包修补内部命令\@maketitle来更改默认值\huge(而不是\small使用所需的大小):

\documentclass{scrartcl}
\usepackage{etoolbox}

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\patchcmd{\@maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\makeatother

\title{The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

在此处输入图片描述

作为步调一致titlepage提到,如果选项为 false(这是默认值),则上述解决方案将产生所需的解决方案 。如果titlepage将选项设置为 true,则可以\maketitle借助以下xpatch软件包进行修补:

\documentclass[titlepage]{scrartcl}
\usepackage{xpatch}

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\xpatchcmd{\maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\makeatother

\title{The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

以下代码无论titlepage设置为 true 还是 false 都能起作用:

\documentclass{scrartcl}
\usepackage{xpatch}

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\xpatchcmd{\maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\xpatchcmd{\@maketitle}{\titlefont\huge}{\titlefont\small}{}{}
\makeatother

\title{The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

另一个选择(提到安德鲁·斯旺在评论中),但我不确定这是否会产生不良的副作用,是在参数中直接使用字体大小开关\title

\documentclass{scrartcl}

\setkomafont{title}{\normalfont\bfseries}

\title{\small The Title}
\author{The Author}

\begin{document}

\maketitle

\end{document}

答案2

我没有完整的答案,但打开它\tracingpatches帮助我发现 patch 命令不起作用,因为它与\patchcmd命令中的第二个参数不匹配。所以我简化了更改:

\setkomafont{title}{\normalfont\bfseries}
\makeatletter
\patchcmd{\@maketitle}{\huge}{\Large}{}{}
\makeatother

在没有 titlepage 选项的情况下,此简化有效,但从查看 scrartcl.cls 文件来看,我怀疑这也会改变\part命令的大小。

也许有人知道他们在做什么,可以制作一个强大的版本吗?谢谢。

答案3

我现在找到了另一种有效的方法,即更新命令\maketitle。例如:

\makeatletter
\renewcommand\maketitle{
   \begin{center}
     {\large\bfseries\@title\par\vspace{0.3em}}
     {\scshape\@author, \@date}
   \end{center}
}
\makeatother

这会减小标题、作者和日期的大小,并将后两者放在同一行,并使用小写字母。

您需要一个比我更专业的人来评论修补或更新哪个是更合适的解决方案。

答案4

H. Voß 在一本书中给出了一个简单的解决方案:

\addtokomafont{title}{\let\huge\Large}

相关内容