设置文章中 \maketitle 的位置

设置文章中 \maketitle 的位置

我想要制作一份讲义来支持我要发表的演讲。

由于我只熟悉\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}

代码输出

相关内容