引用和参考文献
本章介绍 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 | 缩写格式 |
| acm | ACM 格式 |
| ieee | IEEE 格式 |
| apa | APA 格式 |
| 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
掌握引用和参考文献管理是学术写作的基础。下一章将介绍环境。