我正在使用 KOMA-Script(scrreprt
)及其出色的宏集来定义丰富的标题页:
\documentclass{scrreprt}
\usepackage[showframe,pass]{geometry}
\subject{Subject}
\title{Title}
\author{Author}
\publishers{Publishers}
\begin{document}
\maketitle
\end{document}
showframe
不幸的是,这会在实际内容上方和下方留下相当大的垂直空间(通过包装的选项可见geometry
)。
(图片已裁剪并重新缩放)
这很烦人,因为现在内容与上一页和下一页不对齐。有没有办法防止这种情况,即拉伸标题页的内容,使其接触上下框架?
我尝试在出版商上方引入一个垂直空间:
\publishers{
\vspace{\stretch{10000}}
Publishers}
这确实产生了所需的拉伸,但无论我将拉伸系数设置得多大,仍然会留下过大的空间。
我该如何改变这种状况?仍然使用 KOMA 标题页宏,没有重大重写?
什么是“重大重写”?!
考虑一下:\maketitle
在 KOMA-Script 中最多可以生成六页(半标题、标题、标题背面、献词……)。我并不反对重写宏\maketitle
,只要重写的内容符合以下要求:
\edef\maketitle{
\do\some\adjustments%
\maketitle}
也就是说,重新使用现有的内容\maketitle
并进行调整。我不想手动制作上述六页。
答案1
您无法更改这一点并继续使用\maketitle
。\vfill
的和参数\vskip
在该宏的定义中是硬编码的:没有选项可以更改或抑制它们。
我猜你最好的选择是使用环境自己制作标题页。你仍然可以查看intitlepage
的定义(将告诉你此文件的位置),特别是如果你想重用 的参数和类似的东西(不要忘记使用)。另外,不要使用环境,因为它会增加垂直空间,而是使用命令。\maketitle
scrreport.cls
kpsewhich
\title
\makeatletter
center
\centering
我知道它可能无法满足您的“无需进行重大重写”要求,但没有办法满足它。有时甚至 KOMA 也不像人们希望的那样可配置。
答案2
KOMA-Script 提供了一个名为titlepages
,目前仍处于早期开发阶段。例如,它提供了一个名为的环境fullsizetitle
,可以覆盖整个页面,而不受边距限制。开发人员的一些博客文章提供了一些德语信息:
也许可以看一下示例页面上的最后一个链接以获得印象。
答案3
KOMA-Script 类提供了titlepage=firstiscover
将第一个标题页声明为封面页的选项。之后,您可以通过重新定义命令、\coverpagetopmargin
和来更改顶部、左侧、右侧和底部边距。您甚至可以使用负值来减少开头的效果:\coverpageleftmargin
\coverpagerightmargin
\coverpagebottommargin
\null\vfill
\maketitle
\documentclass[titlepage=firstiscover]{scrreprt}
\renewcommand*{\coverpagetopmargin}{-.25\paperheight}
\renewcommand*{\coverpagebottommargin}{-.25\paperheight}
\subject{Subject}
\title{Title}
\author{Author}
\publishers{Publishers}
\begin{document}
\maketitle
\end{document}
将生成标题页: