我想使用较小的标题。我正在使用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}