默认情况下,* 似乎\maketitle
首先处理标题,然后是作者,然后是日期。那么,如果我想将作者和日期放在页面顶部(同一行的相对两侧),将标题放在它们下面,我该怎么做?
*:这是我从titling
软件包文档。我可能误解了。
目前,我通过以下方式实现了预期的效果:
\newcommand{\addtitle}[4]{
John Smith \hfill \formatdate{#2}{#1}{#3} \\[0.8cm]
\textbf{\LARGE #4} % text of my title goes here
}
我使用此命令为一系列家庭作业添加标题,这些作业都有相同的作者(我),但日期和标题不同。
答案1
在您的文档中,您可以重新定义内部命令\@maketitle
,以便交换元素;例如,您可以使用
\makeatletter
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\vspace*{\droptitle}
\maketitlehooka
{\@bspreauthor \@author \@bspostauthor}
\maketitlehookb
{\@bspredate \@date \@bspostdate}
\maketitlehookc
{\@bspretitle \@title \@bsposttitle}
\maketitlehookd
\par
\vskip 1.5em}
\makeatother
一个完整的工作示例:
\documentclass{article}
\usepackage{titling}
\usepackage{lipsum}% just to generate text for the example
\makeatletter
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\vspace*{\droptitle}
\maketitlehooka
{\@bspreauthor \@author \@bspostauthor}
\maketitlehookb
{\@bspredate \@date \@bspostdate}
\maketitlehookc
{\@bspretitle \@title \@bsposttitle}
\maketitlehookd
\par
\vskip 1.5em}
\makeatother
\pretitle{\par\noindent\bfseries\LARGE}
\posttitle{\par\vskip1em}
\preauthor{\par\noindent\large}
\postauthor{\hfill}
\predate{\large}
\postdate{\par\vskip0.8cm}
\author{The Author}
\title{Some interesting title}
\date{\today}
\begin{document}
\maketitle
\lipsum[1]
\end{document}
请根据您的需要随意调整设置。