6. 特色工具和功能

6. 特色工具和功能 #

6.1 参考文献和 BibTeX 工具 #

引用命令决定正文中的引用形式,文献数据库保存资料,样式决定文末条目的格式。先确认模板使用哪一种工作流,再填写相应命令。

6.1.1 基本的参考文献和引用 #

最简单的文献列表不需要额外程序:

\documentclass[UTF8,fontset=fandol]{ctexart}
\begin{document}
TeX 的排版机制可参见文献~\cite{knuth1984}。

\begin{thebibliography}{9}
  \bibitem{knuth1984}
  Donald E. Knuth.
  \emph{The TeXbook}.
  Addison-Wesley, 1984.
\end{thebibliography}
\end{document}

编译两次,\bibitem 的标签与 \cite 对应。{9} 指定参考标签所需的宽度,不表示限制为 9 篇;两位数编号可用 {99}

\cite[第 23 页]{knuth1984} 添加附注,\bibitem[Knuth84]{knuth1984} 自定义显示标签。条目的格式与排序都由作者手工维护,文献一多就不方便。

6.1.2 BibTeX 数据库 #

将文献存入 .bib 文件,可以更换样式而不重新填写全部条目。以下保存为项目中的 books.bib,供后面的完整例子使用:

@book{knuth1984,
  author    = {Knuth, Donald E.},
  title     = {The {TeX}book},
  publisher = {Addison-Wesley},
  year      = {1984}
}

book 是条目类型,knuth1984 是唯一引用键。常见传统 BibTeX 类型包括:

类型 常见必要信息
article 作者、题名、期刊 journal、年份。
book 作者或编者、书名、出版社、年份。
incollection 作者、篇名、论文集名 booktitle、出版社、年份。
inbook 作者或编者、书名、章节或页码、出版社、年份。

多个作者用 and 分隔,而不是仅用逗号。机构作者可以额外套一层花括号;标题中的 {TeX} 等保护需要保留的大小写。

从文献网站或管理工具导出后仍要检查作者、页码、条目类型和重复引用键。.bib 常被称作“BibTeX 文件”,但也可以由后文的 Biber 处理。

6.1.3 BibTeX 样式 #

传统 BibTeX 使用 .bst 样式:

样式 基本特点
plain 按作者等信息排序,数字标签。
unsrt 按引用顺序排列,数字标签。
alpha 使用作者名和年份组成的标签。
abbrv 类似 plain,缩写名字等信息。

在导言区使用 \bibliographystyle{plain},不写 .bst 扩展名。期刊或学校提供样式时优先遵循模板,不要仅凭编号外观选择一个近似样式。

6.1.4 使用 BibTeX 排版参考文献 #

把下面内容保存为 main.tex,与前面的 books.bib 放在同一目录:

\documentclass[UTF8,fontset=fandol]{ctexart}
\bibliographystyle{plain}

\begin{document}
本文参考了文献~\cite{knuth1984}。

\bibliography{books}
\end{document}

\bibliography 放在文献列表出现的位置,不写 .bib 扩展名。本地编译顺序:

xelatex main.tex
bibtex main
xelatex main.tex
xelatex main.tex

第一次 LaTeX 写出 main.aux,BibTeX 读取引用和样式并生成 main.bbl,后两次编译完成列表和引用。

通常只列出正文引用过的文献。\nocite{knuth1984} 可把指定文献加入列表,\nocite{*} 则加入数据库全部条目。

6.1.5 natbib 宏包 #

natbib 为传统 BibTeX 增加作者—年份等引用形式:

% 导言区;替换原来的 bibliographystyle 设置
\usepackage[authoryear,round]{natbib}
\bibliographystyle{plainnat}

% 正文;仍使用 books.bib
\citet{knuth1984} 介绍了 TeX 的排版系统。
也可以使用括号引用 \citep{knuth1984}。

\citet 让作者名成为句子的一部分,\citep 生成括号式引用。plainnatabbrvnatunsrtnat 是与 natbib 配套的样式。

若模板要求数字引用,可选 numbers,sort&compress,用来排序和压缩连续编号。以上设置是不同方案,不要把两个带不同选项的 \usepackage{natbib} 同时写入导言区。

6.1.6 biblatex 宏包 #

biblatex 在 LaTeX 中管理格式,以 Biber 处理数据库,适合 Unicode 文献数据。它与传统 BibTeX 的命令和样式文件不同。

独立示例:中文文献。 将下列内容保存为 references.bib

@book{caimin2006,
  author    = {蔡敏 and 徐慧慧 and 黄柄强},
  title     = {UML 基础和 Rose 建模教程},
  location  = {北京},
  publisher = {人民邮电出版社},
  date      = {2006}
}

以下是与它配套的 main.tex

\documentclass[UTF8,fontset=fandol]{ctexart}
\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\addbibresource{references.bib}

\begin{document}
建模方法可参见文献~\cite{caimin2006}。

\printbibliography
\end{document}

这个示例使用 gb7714-2015 样式,需要安装提供该样式的 biblatex-gb7714-2015 宏包。样式名称指向特定规范版本;实际投稿使用什么版本,应按模板要求确认。

本地编译:

xelatex main.tex
biber main
xelatex main.tex
xelatex main.tex

\addbibresource 在导言区,文件名 .bib\printbibliography 在正文。Biber 参数是主文件的基本名称,不是 references.bib

常见选项包括 style=numericstyle=authoryearsorting=nonebibstylecitestyle 可分别选择文献表与正文引用样式,对应 .bbx.cbx,不能直接填传统的 .bst 文件。

\textcite\parencite\footcite 分别用于叙述式、括号式、脚注式引用;\citeauthor\citeyear 只取作者或年份。具体标点和作者缩略方式由样式控制。

不要混用两套流程: natbibbiblatex 不应同时加载;选择 biblatex 后,不再保留 \bibliographystyle\bibliography。在线编译若引用未解析,应查看日志中的 BibTeX/Biber 请求,而不是随意更换处理程序。

6.2 索引和 makeindex 工具 #

目录按章节组织内容,索引则按词条列出出现页码。

6.2.1 使用 makeindex 工具的方法 #

\documentclass[UTF8,fontset=fandol]{ctexart}
\usepackage{makeidx}
\makeindex

\begin{document}
矩阵\index{matrix}由行和列组成。
对角矩阵\index{matrix!diagonal}是一种特殊矩阵。

\clearpage
\printindex
\end{document}

\index 只登记词条,不输出正文中的词。编译流程为:

xelatex main.tex
makeindex main
xelatex main.tex

第一次编译产生 .idx,MakeIndex 生成 .ind,最后一次编译把索引排入 PDF。

6.2.2 索引项的写法 #

写法 作用
\index{matrix} 普通词条。
\index{matrix!diagonal} 子词条。
\index{alpha@$\alpha$} 按 alpha 排序,显示数学符号。
\index{matrix|textbf} 页码加粗。
\index{matrices|see{matrix}} “参见”条目。
\index{matrix|(}\index{matrix|)} 开始和结束页码范围。

!@| 是索引语法中的特殊字符,需原样输出时用双引号转义。将 \index 紧贴对应词语,避免多余空格。

上例使用英文排序键。中文词条的拼音或笔画排序需要额外方案,不能假定默认 MakeIndex 会自动完成。

6.3 使用颜色 #

6.3.1 颜色的表达方式 #

在导言区加载 xcolor。可用预定义名称、颜色模型或混色表达式:

% 导言区
\usepackage{xcolor}
\definecolor{accent}{RGB}{0,90,150}

rgb 的三个分量范围为 0–1,RGB 为 0–255;gray 表示灰度。blue!30 混入白色得到浅蓝,blue!50!black 将蓝与黑按比例混合,-red 表示互补色。

\color{accent} 是声明,影响后续内容;用分组限制范围。额外颜色名需按宏包选项加载,不是任何英文颜色词都能直接使用。

6.3.2 带颜色的文本和盒子 #

% 正文;导言区已加载 xcolor 并定义 accent
\textcolor{accent}{需要留意的结论。}

\colorbox{blue!8}{浅蓝色背景}

\fcolorbox{accent}{blue!5}{蓝色边框与浅色背景}
蓝色强调文字、浅蓝底色盒子和带蓝色边框的浅色盒子。
用 textcolor 限定文字颜色;盒子内边距由 fboxsep 控制。 下载 LaTeX 源码

\colorbox\fcolorbox 默认是水平盒子;长文字需要在内部放 \parboxminipage。正文不要只靠颜色区分重要信息,还应有文字标签或其他可辨认形式。

6.4 使用超链接 #

6.4.1 hyperref 宏包 #

hyperref 为目录、引用、脚注和文献等添加链接。除其他宏包另有要求外,通常较晚加载:

% 导言区
\usepackage[hidelinks]{hyperref}

hidelinks 隐藏边框和颜色,但链接仍有效。若想使用彩色链接,可在已加载 xcolor 的情况下改用:

\hypersetup{
  colorlinks=true,
  linkcolor=blue!50!black,
  citecolor=teal,
  urlcolor=blue
}

不要为改变选项重复加载 hyperref

6.4.2 超链接 #

\url{https://www.ctan.org/}

\href{https://www.ctan.org/}{访问 CTAN}

\url 显示并链接地址,\nolinkurl 只排版地址,\href 给文字添加链接。内部链接可以写 \hyperref[sec:method]{方法部分},前提是已定义该标签。

纸质文档无法点击链接,需要读者访问的网站应保留可读地址,而不是全部藏在“这里”二字后面。

6.4.3 PDF 书签 #

ctex 配合 XeLaTeX 和 hyperref 可以处理中文书签。目录与书签是不同的功能,但都可能需要多次编译。

标题里有公式时,为书签提供纯文本替代:

\section{质能关系 \texorpdfstring{$E=mc^2$}{E=mc2}}

\pdfbookmark[层级]{书签文字}{唯一锚点} 可手工添加书签。编译后应检查 PDF 的书签面板,不能只看页面上的标题。

6.4.4 PDF 文档属性 #

% 导言区,加载 hyperref 之后
\hypersetup{
  pdftitle={实验记录},
  pdfauthor={小林},
  pdfsubject={测量与误差分析},
  pdfkeywords={实验, 测量, LaTeX},
  bookmarksopen=true
}

这些元数据不代替 \title\author\maketitle;它们供阅读器属性面板、检索等功能使用。

← 排版样式 · 下一章:绘图功能 →

来源与许可