下列的这回答 我正在尝试自定义报告的封面,这对于文章来说很好,但对于报告来说似乎不起作用。例如:
\documentclass[a4paper,12pt]{article}
\usepackage{geometry}
\makeatletter
\def\@maketitle{
\raggedright
\begin{center}
{\Huge \bfseries \sffamily \@title }\\[4ex]
{\Large \@author}\\[4ex]
\@date\\[8ex]
\end{center}}
\makeatother
\begin{document}
\title{Report}
\author{Author}
\date{Septembre 2013}
\maketitle
\end{document}
可以,但是当我更改article
为report
自定义标题页布局时,布局就丢失了。我可以手动使用例如\begin{titlepage} ..
,但我实际上喜欢在其他地方定义标题页(例如自定义.sty
文件)并在每个文档中仅包含title{}
、author{}
和的想法date{}
。
可以以某种方式使用该类来完成此report
操作吗?
答案1
\maketitle
不是核心命令;它在每个类中都有定义。在 中article
,它的定义与report
或中的不同book
。
那为什么不直接重新定义呢\maketitle
?不需要重新定义\@maketitle
。
顺便说一句,为了保持格式,即\raggedright
仅适用于标题,您需要将整个内容放在一个组内。
\documentclass[a4paper,12pt]{report} % Not a4paper12pt
\usepackage{geometry}
\makeatletter
\renewcommand\maketitle{
{\raggedright % Note the extra {
\begin{center}
{\Huge \bfseries \sffamily \@title }\\[4ex]
{\Large \@author}\\[4ex]
\@date\\[8ex]
\end{center}}} % Note the extra }
\makeatother
\usepackage{lipsum}
\begin{document}
\title{Report}
\author{Author}
\date{Septembre 2013}
\maketitle
\lipsum[1]
\end{document}