我不想将摘要放在单独的页面上,而是放在标题下。此外,我还想结束页面,而不是从实际文档开始。
这是我的最小例子:
\documentclass[a4paper,12pt,abstracton,titlepage]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\titlehead{University}
\title{Title}
\subject{Subject}
\author{Author}
\begin{document}
\maketitle
\begin{abstract}
...
\end{abstract}
\newpage
\tableofcontents
...
\end{document}
\let\endtitlepage\relax
我尝试使用另一个问题但它并没有改变任何事情。
如果我不使用标题页,那么它就不会垂直居中,我理解这一点,因为文档应该在它之后立即开始。
那么,如何在不创建自定义标题页的情况下获得此布局?
答案1
您可能会滥用该\publishers
元素:
\documentclass[a4paper,12pt,abstracton,titlepage]{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern}
\titlehead{University}
\title{Title}
\subject{Subject}
\author{Author}
\publishers{%
\normalfont\normalsize%
\parbox{0.8\linewidth}{%
Your abstarct Text. Your abstarct Text. Your abstarct Text.
Your abstarct Text. Your abstarct Text. Your abstarct Text.
Your abstarct Text. Your abstarct Text.
}
}
\begin{document}
\maketitle
\end{document}
由于它的值通常是居中的,因此\Large
您必须在其中放入\parbox
所需宽度的并将字体设置回\normalsize
(\normalfont
这里有点多余,但没有任何危害)。
如果这不符合您的需求,您可以重新定义{abstract}
并\maketitle
让前者收集和存储其内容,后者打印出内容。但这与手动制作标题页的努力相同。并且只有在您需要在多个文档中使用此功能时才有用……
更新
如何利用该\date
字段使摘要在页面中显示得更高?
\date{%
\today% thats the default I guess
\\[2\baselineskip]% Space between date and abstract
\normalfont\normalsize%
\parbox{0.8\linewidth}{%
Your abstarct Text. Your abstarct Text. Your abstarct Text.
Your abstarct Text. Your abstarct Text. Your abstarct Text.
Your abstarct Text. Your abstarct Text.
}
}
只有一个小问题,即的参数\date
不能包含段落(即空行或\par
),所以我们必须使用它\\[<dim>]
来获取新行并插入一些空格。
答案2
无需滥用常用命令,您可以重新定义abstract
和修补\maketitle
命令:
\documentclass[a4paper,12pt,titlepage]{scrartcl}
\newsavebox{\abstractbox}
\renewenvironment{abstract}
{\begin{lrbox}{0}\begin{minipage}{\textwidth}
\begin{center}\normalfont\sectfont\abstractname\end{center}\quotation}
{\endquotation\end{minipage}\end{lrbox}%
\global\setbox\abstractbox=\box0 }
\usepackage{etoolbox}
\makeatletter
\expandafter\patchcmd\csname\string\maketitle\endcsname
{\vskip\z@\@plus3fill}
{\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill}
{}{}
\makeatother
\usepackage{lipsum}
\begin{document}
\titlehead{University}
\title{Title}
\subject{Subject}
\author{Author}
\begin{abstract}
\lipsum[1]
\end{abstract}
\maketitle
\end{document}
你可以玩线
{\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill}
不断改变2fill
,1fill
直到结果令人满意。
该策略是将摘要的排版内容保存在一个框中以供日后使用;该方法lrbox
相当标准;唯一的微妙之处是全球保存框,因为我们在环境内部进行业务abstract
。因此,摘要在框寄存器 0 中排版,然后寄存器\abstractbox
全局加载 中的内容\box0
。
你想把它放在哪里?就在标题页的\date
和\publishers
字段之间;所以我查看了的代码\maketitle
,发现两个字段之间的代码是
\vskip\z@\@plus3fill
(留出灵活的垂直空间)。借助etoolbox
我将该代码更改为
\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill
因此,先前保存的框将在那里排版,并通过灵活的垂直空间与\date
和字段分开。\publisher
当然,abstract
环境必须去前 \maketitle
。摘要本身的排版代码取自中的定义scrartcl.cls
,该定义基本上将“摘要”(采用用于章节标题的字体)置于文本上方的中心,而文本又位于环境中quotation
。
答案3
您也可以使用notitlepage
option 来代替titlepage
option。
也就是说,改变第一行
\documentclass[a4paper,12pt,abstracton,titlepage]{scrartcl}
您的文档
\documentclass[a4paper,12pt,abstracton,notitlepage]{scrartcl}
。
然后您的代码会产生以下输出。
答案4
您可以只定义一个标题页布局...给出了示例模板在这个文件中并适应您自己的需求....