LaTeX/标题创建
对于像基本文章这样的文档,\maketitle
的输出通常就足够了,但较长的文档(如书籍和报告)通常需要更复杂的格式。我们将在本节中详细介绍这个过程。
在某些情况下,您可能希望创建自定义格式的标题,而不是 LaTeX 类默认支持的格式。虽然可以更改 \maketitle
的输出,但这可能很复杂,即使对标题进行微小的更改也是如此。在这种情况下,通常最好从头开始创建标题,本节将向您展示如何完成此操作。
大多数文档类提供了一个简单的接口来存储标题中要显示的详细信息,并排版实际的标题。标准类只提供四个存储命令(\title
、\author
、\thanks
和 \date
)。您可以存储要显示在标题中的任何信息,包括格式。
实际的标题将通过发出 \maketitle
命令来排版。布局由使用的文档类定义。
\documentclass{article}% use option titlepage to get the title on a page of its own.
\usepackage{blindtext}
\title{The Triangulation of Titling Data in Non-Linear Gaussian Fashion via $\rho$ Series\thanks{No procrastination}}
\date{2017\\ December}
\author{John Doe\\ Magic Department\thanks{I am no longer a member of this department}, Richard Miles University
\and Richard Row, \LaTeX\ Academy}
\begin{document}
\maketitle
\section{Introduction}
\blindtext
\end{document}
|
\thanks
命令将存储内容,这将产生一个与标题一起显示的脚注。顾名思义,它可以用来感谢某人。或者只是在脚注中打印电子邮件地址或类似信息。
作者之间用 \and
命令分隔,允许将作者块并排输出。在上面的示例中,没有足够的水平空间将两个作者放在同一行。
如果未定义 \date
,LaTeX 将打印当前日期。如果您想完全省略日期,请使用 \date{}
,它存储一个空字符串。
存储标题数据的命令可以在序言中使用。由于 \maketitle
会进行实际的输出,因此它需要在 \begin{document}
之后使用。通常,标题是文档中的第一件事。
请参阅下面 KOMA-script 和 memoir
类的示例。两者都提供(不同)命令来更改标题的外观。 稍后了解 如何完全设计自己的标题页。
\documentclass{scrbook}
\setkomafont{author}{\scshape}
\usepackage{blindtext}
\title{How hard would it be to build a spaceship from scrap}
\author{Carl Capybara\thanks{I never procrastinate} \and Walter Wombat}
\subtitle{A closer look at the expenses}
\subject{a funny paper}
\begin{document}
\maketitle
\addchap{Introduction}
\blindtext
\end{document}
|
\documentclass{memoir}% use option titlepage to get the title on a page of its own.
\usepackage{blindtext}
\title{The influence of colour on the floating velocity of rubber ducks}
\author{Peter Piranha}
\renewcommand{\maketitlehookb}{\centering You won't expect the results}
\begin{document}
\maketitle
\chapter{Introduction}
\blindtext
\end{document}
|
像往常一样,类文档会揭示有关可能命令的更多详细信息。
期刊遵循特定的布局。为了确保这一点,它们通常会提供一个定义布局的模板。标题可以使用哪些内容(例如电子邮件、隶属机构名称、关键词)很大程度上取决于模板,并且在不同期刊之间差异很大。如果期刊提供了模板,请遵循该模板。如果他们没有,你应该使用上面描述的 LaTeX 标题最基本的概念。
书籍或报告的标题页是读者首先看到的内容。在准备标题页时牢记这一点。
你需要了解一些基本的 LaTeX 布局命令才能使自己的标题页完美无缺。通常,自定义标题页不包含任何语义标记,所有内容都是手工制作的。以下是一些最常用的内容
- 对齐
如果你想居中一些文本,只需使用 \centering
。如果你想以不同的方式对齐,可以使用环境 \raggedleft
进行右对齐,使用 \raggedright
进行左对齐。
- 图像
用于包含图像(例如徽标)的命令如下:\includegraphics[width=0.15\textwidth]{./logo}
。没有像你通常使用的 \begin{figure}
,因为你不想让它浮动,你只是希望它出现在你想要的位置。在处理它时,请记住,TeX 引擎将其视为一个大盒子。
- 文字大小
如果你想更改一些文本的大小,只需将其放在花括号内,{像这样},你可以使用以下命令(按大小顺序):\Huge
、\huge
、\LARGE
、\Large
、\large
、\normalsize
、\small
、\footnotesize
、\tiny
。例如
{\large this text is slightly bigger than normal}, this one is not.
|
请记住,如果你有一块不同大小的文本,即使是一行文本,也要用 \par
结束。
- 填充页面
\vfill
命令作为你内容的最后一项,将添加空的空间,直到页面填满。如果你把它放在页面中,你将确保所有后面的文本都将放在页面的底部。
所有这些技巧可能让你感到困惑。这里有一个实用且可编译的例子。使用的图片来自 mwe
包,应该在每个完整的 LaTeX 安装中可用。您可以立即开始测试。
\documentclass[12pt,a4paper]{report}
\usepackage{mwe}
\begin{document}
\begin{titlepage}
\centering
\includegraphics[width=0.15\textwidth]{example-image-1x1}\par\vspace{1cm}
{\LARGE \textsc{Columbidae University}\par}
\vspace{1cm}
{\Large \textsc{Final year project}\par}
\vspace{1.5cm}
{\huge\bfseries Pigeons love doves\par}
\vspace{2cm}
{\Large\itshape John Birdwatch\par}
\vfill
supervised by\par
Dr.~Mark \textsc{Brown}
\vfill
% Bottom of the page
{\large \today\par}
\end{titlepage}
\end{document}
|
如你所见,代码看起来比标准 LaTeX 源代码“更脏”,因为你必须同时负责输出。如果你开始更改字体,它会变得更加复杂,但你可以做到:它只用于标题,你复杂的代码将被隔离在它自己的文件中,与其他所有代码分开。
结果显示在下面
一本书籍或大学学位论文(学士、硕士、博士等)的标题页相当静态,它不会随时间变化。你可以将标题页单独准备在一个小文档中,并准备一个单独的 PDF 文件,然后将其包含到你的实际文档中。如果标题页需要与文档的其余部分使用完全不同的边距,这种方法非常有用。它还可以节省编译时间,虽然节省的时间并不多。
假设你已经在一个单独的文档中完成了你的报告的标题页,让我们假设它叫做 reportTitlepage2016.pdf
,你可以很轻松地将其包含进来。以下是一个简短的文档设置示例。
\documentclass{report}
\usepackage{pdfpages}
\begin{document}
\includepdf{reportTitlepage2016}
\tableofcontents
\chapter{Introducing birds}
\end{document}
|
一些大学、系别和公司对报告的标题页格式有严格的规定。为了确保所有报告都具有相同的输出,建议重新定义
命令。\maketitle
这最好由经验丰富的 LaTeX 用户完成。以下是一个简单的示例,当然复杂程度并没有限制。
作为一个起点,我们将生成一个名为 columbidaeTitle.sty
的 LaTeX 包,它定义了完整的标题部分。稍后它将对最终用户隐藏。理想情况下,创建这个包的人应该长期维护它,创建配套文档并确保用户支持。
% Copyright note: This package defines how titles should
% be typeset at the columbidae University
% Please check for updates
\ProvidesPackage{columbidaeTitle}[2015/08/10 v.01 an
example package^^J for wikibooks]
\RequirePackage{graphicx}
\newcommand*{\project}[1]{\gdef\@project{#1}%
}
\newcommand*{\@project}{Final Year Project}
\newcommand*{\supervisor}[1]{\gdef\@supervisor{#1}%
}
\newcommand*{\@supervisor}{\texttt{\string\supervisor} currently
not set. Please fix this.}
\renewcommand*{\maketitle}{%
\begin{titlepage}
{\raggedleft%
\includegraphics[width=3cm]{example-image-16x9}\par
}\vspace{1cm}
\centering
{\scshape\LARGE Columbidae University \par}
\vspace{1cm}
{\scshape\Large\@project\unskip\strut\par}
\vspace{1.5cm}
{\huge\bfseries\@title\unskip\strut\par}
\vspace{2cm}
{\Large\itshape\@author\unskip\strut\par}
\vfill
supervised by\par
\@supervisor\unskip\strut\par
\vfill
{\large \@date\par}
\end{titlepage}
}
\endinput
|
这个包可以在一个普通的文档中加载。用户可以设置 title
等变量。哪些命令实际上可用,哪些可以省略,应该在与包捆绑在一起的文档中说明。
看看如果你省略了一些命令会发生什么。
\documentclass{book}
\usepackage{columbidaeTitle}
%\supervisor{Dr. James Miller}
\project{Bachelor Thesis}
\author{A LaTeX enthusiast}
\title{Why I want to be a duck}
\begin{document}
\maketitle
\tableofcontents
\chapter{Ducks are awesome}
\end{document}
|
titling 包[1] 提供了对
和 \maketitle
命令排版的控制。它对于对标准输出进行小幅更改非常有用。\thanks
意大利用户可能还想使用 frontespizio 包[2]。它定义了意大利使用的扉页。
authblk 包 [3] 提供了排版作者的新方法。这对于没有可用模板的期刊投稿特别有用。
titlepages 包提供了许多不同样式的标题页。
TeX.SE 收集了各种标题页。
另一个小型集合可以在 Github 上找到。