我在 Windows 上使用 TeXnic Cener。我的 latex 文档是文章格式。最初,我有以下标题页:
\documentclass{article}
\setcounter{tocdepth}{3}
\begin{document}
\title{Some title}
\author{My Name}
\date{\today}
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
然后,为了在标题页添加更多结构,我做了以下修改:
\begin{document}
\title{Some title}
\author{My Name}
\paragraph{}
\large \centerline{My Report}
\centerline{for the purpose}
\centerline{\date{\today}}
\normalsize
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
问题是,日期出现在两个地方:旧地方和新地方。我完全删除了日期并尝试了以下操作:
- 重启 texnic 中心
- 重启我的笔记本电脑
- 删除生成的 pdf 文件以便重新创建它。
似乎什么都不起作用,日期仍然显示在原来的位置。我还想提一下,在将日期添加到上述任何代码之前,日期根本没有显示。
在此先感谢您的任何建议。
答案1
几件事。首先,您必须使用\date{}
。如果您删除它,因为它在定义中是硬编码的,因此\maketitle
将打印今天的日期。您应该使用\today
而不是\date{\today}
。此外,由于\centerline
是 TeX 命令,您应该使用\centering
(即 LaTeX)并将整个内容括在一个组中,以便限制范围。
有了这些,你的代码就变成了
\documentclass{article}
\begin{document}
\title{Some title}
\author{My Name}
\date{}
\paragraph{}
{% <-- starts a group
\large \centering
My Report \par
for the purpose \par
\today \par
}% <-- ends that group
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
\end{document}
给予
编辑以解决该评论。
您可以使用重新定义\maketitle
或使用titling
包。以下是使用第二种选项的尝试。
\documentclass{article}
\usepackage{titling}
\begin{document}
\pretitle{%
\begin{center}\LARGE
\begin{minipage}{\textwidth}
\large \centering
My Report \par\vskip 0.5em
for the purpose \par\vskip 0.5em
\today \par
\end{minipage}
\vskip 1em
}
\posttitle{\par\end{center}\vskip 0.5em}
\title{Some title}
\author{My Name}
\date{}
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
\end{document}
这是一个更简单的版本,它在内部添加了额外的细节\title
:
\documentclass{article}
\begin{document}
\title{{% <-- starts a group
\large
My Report \\[0.75ex]
for the purpose \\[0.75ex]
\today \\[0.5em]
}% <-- ends that group
Some title}
\author{My Name}
\date{}
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
\end{document}
答案2
此答案使用titling
包进行设置。第一部分回答了原始问题,该问题的标题分布在前两页。第二部分回答了在回应 Harish Kumar 的答案的评论中提出的次要问题。
第一部分
这\maketitle
两次使用不同的设置,在使用新命令之间恢复默认设置\restoredefaults
:
\documentclass{article}
\usepackage{titling}
\newcommand{\restoredefaults}{%
\pretitle{\begin{center}\LARGE}
\posttitle{\par\end{center}\vskip 0.5em}
\preauthor{\begin{center}
\large \lineskip 0.5em%
\begin{tabular}[t]{c}}
\postauthor{\end{tabular}\par\end{center}}
\predate{\begin{center}\large}
\postdate{\par\end{center}}}
\begin{document}
\pretitle{\large\centering}
\posttitle{\par}
\preauthor{\large\centering}
\postauthor{\par}
\predate{\large\centering}
\postdate{\par}
\title{for the purpose}
\author{My Report}
\maketitle
\newpage
\restoredefaults
\title{Some title}
\author{My Name}
\date{}% for empty date with \maketitle
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
\end{document}
第二部分
以下解决方案使用\maketitlehooka
from 的功能\titling
并设置两个新命令\purpose{}
和\preliminarytitle{}
来保存相关信息。每个命令都有一个强制参数。今天的日期是硬编码的,尽管如果您愿意,您显然可以更改它。
\documentclass{article}
\usepackage{titling}
\newcommand{\purpose}[1]{%
\renewcommand{\docpurpose}{#1}}
\newcommand{\prelimtitle}[1]{%
\renewcommand{\docprelimtitle}{#1}}
\newcommand{\docpurpose}{}
\newcommand{\docprelimtitle}{}
\renewcommand{\maketitlehooka}{%
\centering
\large
\docpurpose\par
\docprelimtitle\par
\today\par}
\begin{document}
\purpose{for the purpose}
\prelimtitle{My Report}
\title{Some title}
\author{My Name}
\date{}% for empty date with \maketitle
\maketitle
\thispagestyle{empty}
\clearpage
\tableofcontents
\clearpage
\end{document}
如果您希望附加信息位于标题其余部分的上方,请将长度设置\droptitle
为适当的值。