我想要制作一份讲义来支持我要发表的演讲。
由于我只熟悉\documentclass{article}
,所以我写了以下代码:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\PrerenderUnicode{äöüÄÖÜß}
\usepackage[ngerman]{babel}
\title{Some title}
\author{A. Uthor}
\date{2.7.2012}
\pagestyle{headings}
\begin{document}
\vspace*{-5pt}
\maketitle
\subsection*{Text \& Author}
\begin{itemize}
\item foobar
\end{itemize}
\end{document}
我想要的是将标题、作者、日期等直接显示在纸张的上边缘。我知道,无论如何,会有更优雅的方法来解决这个问题:这会\vspace*{-5pt}
在我的讲义的实际内容之前生成一个空白页。
为什么会这样,我怎样才能阻止它发生,或者(最好知道)什么是更优雅的方式?
答案1
article
类定义了单列版本,\maketitle
以便有效地开始\newpage
您可以重新定义,\maketitle
但更简单,对于一次性文档只是本地禁用\newpage
\begin{document}
\vspace*{-5pt}
{\let\newpage\relax\maketitle}
\subsection*{Text \& Author}
满足您的需要
答案2
您必须重新定义\@maketitle
宏以使其不添加垂直空格(例如,不使用环境center
):
\makeatletter
\def\@maketitle{%
\newpage
\vspace*{-\topskip} % remove the initial space
\begingroup\centering % instead of \begin{center}
\let \footnote \thanks
\hrule height \z@ % to avoid the insertion of lineskip glue
{\LARGE \@title \par}%
\vskip 1.5em
{\large
\lineskip .5em
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em
{\large \@date}%
\par\endgroup % instead of \end{center}
\vskip 1.5em % <--- modify this to adjust the separation
}
\makeatother
最后一个\vskip
命令负责标题和文本的分离。
答案3
这titling
包提供了一个简单的用户界面来标题信息,并允许您重新设置\title
和的样式\thanks
,包括移动它们的位置。
该包提供了一个\droptitle
长度,它决定了标题行相对于默认值的高度。如果您希望将标题向上移动,则可以提供一个负空间。在下面的示例中,我已加载了带有选项geometry
的包,[showframe]
仅用于显示页面上的相对定位。
\documentclass[12pt,a4paper]{article}
\usepackage[showframe]{geometry}
\usepackage[utf8x]{inputenc}
\PrerenderUnicode{äöüÄÖÜß}
\usepackage[ngerman]{babel}
\usepackage{titling}
\setlength{\droptitle}{-2cm}
\title{Some title}
\author{A. Uthor}
\date{2.7.2012}
\pagestyle{headings}
\begin{document}
\maketitle
\subsection*{Text \& Author}
\begin{itemize}
\item foobar
\end{itemize}
\end{document}