正如标题所说,如何增加scrartcl
文档类中标题和副标题之间的间距?
答案1
更新:感谢 egreg 的建议,这里有一个较短的补丁。我们不需要识别整个块,因为\vskip.5em
它在命令定义中只出现一次。:)
我们可以通过调整来修补\maketitle
和替换原始\vskip
值(.5em
)。这是我借助这个神奇的xpatch
包所做的卑微尝试:
\documentclass{scrartcl}
\usepackage{xpatch}
\newlength{\myspace}
\setlength{\myspace}{2em}
\makeatletter
\xpatchcmd{\@maketitle}{\vskip.5em}{\vskip\myspace}{}{}
\makeatother
\title{Title}
\subtitle{Subtitle}
\begin{document}
\maketitle
Hello world.
\end{document}
请注意,我们创建了一个新的长度(\myspace
)来保存新值。输出符合预期:
希望能帮助到你。:)
答案2
这是一个解决方案,改变整个\maketitle
命令。
\makeatletter
\renewcommand*{\@maketitle}{%
\clearpage
\let\footnote\thanks
\ifx\@extratitle\@empty \else
\noindent\@extratitle \next@tpage \if@twoside \null\next@tpage \fi
\fi
\setparsizes{\z@}{\z@}{\z@\@plus 1fil}\par@updaterelative
\ifx\@titlehead\@empty \else
\begin{minipage}[t]{\textwidth}
\@titlehead
\end{minipage}\par
\fi
\null
\vskip 2em%
\begin{center}%
\ifx\@subject\@empty \else
{\subject@font \@subject \par}
\vskip 1.5em
\fi
{\titlefont\huge \@title \par}%
\vskip 2em % original was \vskip .5em
{\ifx\@subtitle\@empty\else\usekomafont{subtitle}\@subtitle\par\fi}%
\vskip 1em
{\Large
\lineskip .5em%
\begin{tabular}[t]{c}
\@author
\end{tabular}\par
}%
\vskip 1em%
{\Large \@date \par}%
\vskip \z@ \@plus 1em
{\Large \@publishers \par}
\ifx\@dedication\@empty \else
\vskip 2em
{\Large \@dedication \par}
\fi
\end{center}%
\par
\vskip 2em
}%
\makeatother
您感兴趣的部分位于 和 之间,\@title
并\@subtitle
标有注释。
答案3
我有另一个简单的技巧解决方案。只需在\subtitle
命令内添加空格即可:
\subtitle{\vspace{1cm}Subtitle}
是的,非常愚蠢。因为在我看来,KOMA 脚本在标题方面很糟糕。例如,\huge
用户定义的标题字体完全是胡说八道。