简介
在用 Word 编辑文档时,遇见的最为烦恼的问题莫过于,在文中用到“如图 x-x 所示”的表示时,当修改文章时,换掉了整篇文章图表的编号,再去修改文中引用到的编号不胜其烦。在 LaTeX 中可以通过交叉引用十分方便的解决该问题(ps: Word 里面也有交叉引用的功能,但用起来不是 那么方便)。在 LaTeX 中几乎可以实现对所有的自动编号内容引用的自动化管理。本篇文章是对 LaTeX 中的交叉引用做一个简要的介绍。在 LaTeX 中的交叉引用可以通过下面一对命令实现,顾名思义,简单的意思就是在引用之前先标记。 \label{marker} ??
引用章节
首先来做一个简单的章节应用示例:\section{交叉引用} \subsection{引用章节}\label{subsection1} \subsection{引用图表} 在 \ref{subsection1} 小节中我们介绍了如何在\LaTeX 中引用章节,这节我们给出一个引用图表的示例。示例结果:
引用图表
引用图表示例:
在 \ref{subsection1} 节中我们介绍了如何在 LaTeX 中引用章节,这节我们给出一个引用图表的示例。 \begin{figure}[h] \centering \includegraphics[width=0.3\linewidth]{logo.png} \caption{ElegantLaTeX Logo} \label{fig:logo} \end{figure} 图 \ref{fig:logo} 是 ElegantLaTeX 的 Logo。
引用数学式
\begin{equation} E = mc^{2} \label{eq:1} \end{equation} 在式\ref{eq:1}的质能方程中$m$表示物体的质量。
引用页
引用页示例:
通过\pageref{subsection1}页节\ref{subsection1}的介绍,能基本了解在\LaTeX中交叉引用的用法了。以上三个示例结果如图:
相关宏包
交叉引用作为\LaTeX中最为实用的功能之一,不少的宏包都对其进行了扩展其中最为常用的是amsmath, varioref, cleveref以及hyperref。在amsmath宏包中通过命令eref来实现引用varioref中有vref命令,cleveref中有cref命令,在hyperref则叫autoref,通过下面的例子可以简单比较不同宏包中引用命令在格式上的差异。
\begin{equation}\label{eq:2} \sum_{i=0}^{\infty} a_i x^i \end{equation} 首先通过vref命令来引用等式\vref{eq:2},eref也可以引用式\eqref{eq:2}, cref命令自然也行\cref{eq:2},最后我们再来试试autoref吧,召唤等式\autoref{eq:2}。在这里需要简要的提一下几个命令之间的不同:varioref宏包的vref命令可以通过宏包提供的 labelformat 命令来定义引用的格式,但是vref命令不能根据上下文来决定引用的格式,如通常在句子开头需要用“Equation 1”但在中间或者末尾用”eq.1″即可,autoref命令可以实现引用之间的跳转,但该命令使用的默认超链接格式有个红框,个人认为比较丑,cref命令在自定义格式方面功能更加强大,eqref只能用于数学式子。下面是从stackflow上面引用的一个例子,自定义cref不等式引用。
\cref{ab,cd} and \cref{ab,cd,ef} \begin{equation} \label[ineqs]{ab} a>b \end{equation} and \begin{equation} \label[ineqs]{cd} c>b \end{equation} and \begin{equation} \label[ineqs]{ef} e>f \end{equation}运行结果如下图所示:
文件之间的交叉引用
通过上面的例子基本上能完成文章的交叉引用需要了,但在我们撰写长篇文章时,需要将tex文件分成好几个文件,此时,可以通过zr宏包来实现不同文件之间的交叉引用,示例:文件example.tex
\documentclass{article} \usepackage{xr} \externaldocument{chapterI} \begin{document} this is section \ref{conclusion} \end{document}文件chapterI.tex
\section{Conclusion}\label{conclusion}需要注意的是在使用中文测试时,编译完后生成的引用会是??,但是在英文中没有问题,具体解释有待进一步探索。 选自:http://elegantlatex.org/2015/02/06/latex-cross-reference/
发表评论 取消回复