跳到主要内容

引用和参考文献

本章介绍 LaTeX 中的交叉引用和参考文献管理。

交叉引用

标签定义

\section{引言}
\label{sec:intro}

\begin{figure}
\caption{图片}
\label{fig:example}
\end{figure}

\begin{table}
\caption{表格}
\label{tab:example}
\end{table}

\begin{equation}
E = mc^2
\label{eq:einstein}
\end{equation}

引用命令

\ref{sec:intro}      % 引用编号
\pageref{sec:intro} % 引用页码

引用格式

第 \ref{sec:intro} 节
图 \ref{fig:example}
表 \ref{tab:example}
公式 \eqref{eq:einstein} % 需要 amsmath 宏包

智能引用

使用 cleveref 宏包:

\usepackage{cleveref}

\cref{sec:intro} % 自动添加"节"
\cref{fig:example} % 自动添加"图"
\cref{tab:example} % 自动添加"表"
\cref{eq:einstein} % 自动添加"公式"

\Cref{sec:intro} % 句首大写
\crefrange{fig:1}{fig:5} % 引用范围

参考文献

手动引用

参考文献 \cite{lamport1994}。

\begin{thebibliography}{99}
\bibitem{lamport1994}
Lamport L.
\LaTeX: A Document Preparation System.
Addison-Wesley, 1994.
\end{thebibliography}

BibTeX

创建 BibTeX 文件

创建 .bib 文件(如 references.bib):

@book{lamport1994,
author = {Lamport, Leslie},
title = {\LaTeX: A Document Preparation System},
publisher = {Addison-Wesley},
year = {1994},
edition = {2nd}
}

@article{knuth1984,
author = {Knuth, Donald E.},
title = {Literate Programming},
journal = {The Computer Journal},
volume = {27},
number = {2},
pages = {97--111},
year = {1984}
}

@inproceedings{smith2020,
author = {Smith, John and Doe, Jane},
title = {A Novel Approach to Machine Learning},
booktitle = {Proceedings of the International Conference on AI},
year = {2020},
pages = {100--110}
}

@misc{website2024,
author = {{Wikipedia}},
title = {LaTeX --- Wikipedia, The Free Encyclopedia},
year = {2024},
howpublished = {\url{https://en.wikipedia.org/wiki/LaTeX}},
note = {Accessed: 2024-01-01}
}

使用 BibTeX

\documentclass{article}

\begin{document}

参考文献 \cite{lamport1994} 和 \cite{knuth1984}。

\bibliographystyle{plain} % 样式
\bibliography{references} % BibTeX 文件名

\end{document}

编译流程

pdflatex document
bibtex document
pdflatex document
pdflatex document

参考文献样式

样式描述
plain按字母顺序排列
abbrv缩写格式
acmACM 格式
ieeeIEEE 格式
apaAPA 格式
chicago芝加哥格式

natbib 宏包

\usepackage{natbib}

\citet{lamport1994} % 作者(年份)
\citep{lamport1994} % (作者,年份)
\citet*{lamport1994} % 所有作者
\citep[p.~10]{lamport1994} % 带页码
\citeauthor{lamport1994} % 仅作者
\citeyear{lamport1994} % 仅年份

biblatex 宏包

\usepackage[backend=biber, style=numeric]{biblatex}
\addbibresource{references.bib}

\begin{document}

参考文献 \cite{lamport1994}。

\printbibliography

\end{document}

biblatex 样式

\usepackage[style=numeric]{biblatex}    % 数字编号
\usepackage[style=authoryear]{biblatex} % 作者-年份
\usepackage[style=apa]{biblatex} % APA 格式
\usepackage[style=ieee]{biblatex} % IEEE 格式
\usepackage[style=chicago]{biblatex} % 芝加哥格式

超链接

hyperref 宏包

\usepackage{hyperref}

\href{https://www.example.com}{链接文本}
\url{https://www.example.com}
\nolinkurl{https://www.example.com} % 不创建链接

配置选项

\usepackage[
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=cyan,
citecolor=green
]{hyperref}

内部链接

\hyperref[sec:intro]{跳转到引言}
\hyperlink{label}{链接文本}
\hypertarget{label}{目标文本}

脚注引用

正文内容\footnote{脚注内容}。

\footnotemark % 无内容脚注标记
\footnotetext{脚注内容} % 脚注文本

索引

创建索引

\usepackage{makeidx}
\makeindex

\begin{document}

关键词\index{关键词}
子条目\index{关键词!子条目}
参见\index{关键词|see{相关词}}

\printindex

\end{document}

编译索引

pdflatex document
makeindex document
pdflatex document

词汇表

使用 glossaries 宏包

\usepackage{glossaries}
\makeglossaries

\newglossaryentry{latex}{
name=LaTeX,
description={一种文档排版系统}
}

\begin{document}

使用 \gls{latex} 进行排版。

\printglossaries

\end{document}

编译词汇表

pdflatex document
makeglossaries document
pdflatex document

示例

完整示例

\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{hyperref}
\usepackage[backend=biber, style=numeric]{biblatex}
\addbibresource{references.bib}

\title{示例文档}
\author{作者}
\date{\today}

\begin{document}

\maketitle

\section{引言}
\label{sec:intro}

本文介绍 LaTeX 的引用和参考文献功能,详见第 \ref{sec:method} 节。

\section{方法}
\label{sec:method}

如图 \ref{fig:example} 所示,公式 \eqref{eq:example} 描述了基本关系。

\begin{figure}[htbp]
\centering
\includegraphics[width=0.5\textwidth]{example.png}
\caption{示例图片}
\label{fig:example}
\end{figure}

\begin{equation}
E = mc^2
\label{eq:example}
\end{equation}

参考文献 \cite{lamport1994} 提供了详细信息。

\printbibliography

\end{document}

小结

本章介绍了 LaTeX 引用和参考文献:

  • 交叉引用:label 和 ref 命令
  • 参考文献:手动引用和 BibTeX
  • 参考文献样式:plain、ieee、apa 等
  • natbib 和 biblatex:高级引用功能
  • 超链接:hyperref 宏包
  • 索引和词汇表:makeidx 和 glossaries

掌握引用和参考文献管理是学术写作的基础。下一章将介绍环境。