在用 Word 编辑文档时,遇见的最为烦恼的问题莫过于,在文中用到“如图 x-x 所示”的表示时,当修改文章时,换掉了整篇文章图表的编号,再去修改文中引用到的编号不胜其烦。在 LaTeX 中可以通过交叉引用十分方便的解决该问题(ps: Word 里面也有交叉引用的功能,但用起来不是 那么方便)。在 LaTeX 中几乎可以实现对所有的自动编号内容引用的自动化管理。本篇文章是对 LaTeX 中的交叉引用做一个简要的介绍。在 LaTeX 中的交叉引用可以通过下面一对命令实现,顾名思义,简单的意思就是在引用之前先标记。
\label{marker}
??
首先来做一个简单的章节应用示例:
[color=rgb(170, 170, 170) !important]1 [color=rgb(170, 170, 170) !important]2 [color=rgb(170, 170, 170) !important]3 [color=rgb(170, 170, 170) !important]4 | [color=rgb(0, 111, 224) !important] \section[color=rgb(51, 51, 51) !important]{交叉引用[color=rgb(51, 51, 51) !important]} [color=rgb(0, 111, 224) !important] \subsection[color=rgb(51, 51, 51) !important]{引用章节[color=rgb(51, 51, 51) !important]}\label[color=rgb(51, 51, 51) !important]{subsection1[color=rgb(51, 51, 51) !important]} [color=rgb(0, 111, 224) !important] \subsection[color=rgb(51, 51, 51) !important]{引用图表[color=rgb(51, 51, 51) !important]} [color=rgb(0, 111, 224) !important] 在[color=rgb(0, 111, 224) !important] \ref[color=rgb(51, 51, 51) !important]{subsection1[color=rgb(51, 51, 51) !important]}[color=rgb(0, 111, 224) !important] 小节中我们介绍了如何在\LaTeX[color=rgb(0, 111, 224) !important] 中引用章节,这节我们给出一个引用图表的示例。 |
示例结果:
引用图表示例:
[color=rgb(170, 170, 170) !important]1 [color=rgb(170, 170, 170) !important]2 [color=rgb(170, 170, 170) !important]3 [color=rgb(170, 170, 170) !important]4 [color=rgb(170, 170, 170) !important]5 [color=rgb(170, 170, 170) !important]6 [color=rgb(170, 170, 170) !important]7 [color=rgb(170, 170, 170) !important]8 | 在[color=rgb(0, 111, 224) !important] \ref[color=rgb(51, 51, 51) !important]{subsection1[color=rgb(51, 51, 51) !important]}[color=rgb(0, 111, 224) !important] 节中我们介绍了如何在[color=rgb(0, 111, 224) !important] LaTeX[color=rgb(0, 111, 224) !important] 中引用章节,这节我们给出一个引用图表的示例。 \begin[color=rgb(51, 51, 51) !important]{figure[color=rgb(51, 51, 51) !important]}[color=rgb(51, 51, 51) !important][h[color=rgb(51, 51, 51) !important] \centering \includegraphics[color=rgb(51, 51, 51) !important][width=0[color=rgb(51, 51, 51) !important].3\linewidth[color=rgb(51, 51, 51) !important][color=rgb(51, 51, 51) !important]{logo[color=rgb(51, 51, 51) !important].png[color=rgb(51, 51, 51) !important]} \caption[color=rgb(51, 51, 51) !important]{ElegantLaTeX[color=rgb(0, 111, 224) !important] Logo[color=rgb(51, 51, 51) !important]} \label[color=rgb(51, 51, 51) !important]{fig[color=rgb(51, 51, 51) !important]:logo[color=rgb(51, 51, 51) !important]} \end[color=rgb(51, 51, 51) !important]{figure[color=rgb(51, 51, 51) !important]} 图[color=rgb(0, 111, 224) !important] \ref[color=rgb(51, 51, 51) !important]{fig[color=rgb(51, 51, 51) !important]:logo[color=rgb(51, 51, 51) !important]}[color=rgb(0, 111, 224) !important] 是[color=rgb(0, 111, 224) !important] ElegantLaTeX[color=rgb(0, 111, 224) !important] 的 Logo。 |
引用数学式
[color=rgb(170, 170, 170) !important]1 [color=rgb(170, 170, 170) !important]2 [color=rgb(170, 170, 170) !important]3 [color=rgb(170, 170, 170) !important]4 [color=rgb(170, 170, 170) !important]5 | \begin[color=rgb(51, 51, 51) !important]{equation[color=rgb(51, 51, 51) !important]} E[color=rgb(0, 111, 224) !important] =[color=rgb(0, 111, 224) !important] mc^[color=rgb(51, 51, 51) !important]{2[color=rgb(51, 51, 51) !important]} \label[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:1[color=rgb(51, 51, 51) !important]} \end[color=rgb(51, 51, 51) !important]{equation[color=rgb(51, 51, 51) !important]} 在式\ref[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:1[color=rgb(51, 51, 51) !important]}的质能方程中[color=rgb(221, 17, 68) !important]$m$表示物体的质量。 |
引用页
引用页示例:
[color=rgb(170, 170, 170) !important]1 | 通过\pageref[color=rgb(51, 51, 51) !important]{subsection1[color=rgb(51, 51, 51) !important]}页节\ref[color=rgb(51, 51, 51) !important]{subsection1[color=rgb(51, 51, 51) !important]}的介绍,能基本了解在\LaTeX中交叉引用的用法了。 |
以上三个示例结果如图:

交叉引用作为\LaTeX中最为实用的功能之一,不少的宏包都对其进行了扩展其中最为常用的是amsmath, varioref, cleveref以及hyperref。在amsmath宏包中通过命令eref来实现引用varioref中有vref命令,cleveref中有cref命令,在hyperref则叫autoref,通过下面的例子可以简单比较不同宏包中引用命令在格式上的差异。
[color=rgb(170, 170, 170) !important]1 [color=rgb(170, 170, 170) !important]2 [color=rgb(170, 170, 170) !important]3 [color=rgb(170, 170, 170) !important]4 | \begin[color=rgb(51, 51, 51) !important]{equation[color=rgb(51, 51, 51) !important]}\label[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:2[color=rgb(51, 51, 51) !important]} \sum_[color=rgb(51, 51, 51) !important]{i=0[color=rgb(51, 51, 51) !important]}^[color=rgb(51, 51, 51) !important]{\infty[color=rgb(51, 51, 51) !important]}[color=rgb(0, 111, 224) !important] a[color=rgb(51, 51, 51) !important]_i[color=rgb(0, 111, 224) !important] x^i \end[color=rgb(51, 51, 51) !important]{equation[color=rgb(51, 51, 51) !important]} 首先通过vref命令来引用等式\vref[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:2[color=rgb(51, 51, 51) !important]}[color=rgb(51, 51, 51) !important],eref也可以引用式\eqref[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:2[color=rgb(51, 51, 51) !important]}[color=rgb(51, 51, 51) !important],[color=rgb(0, 111, 224) !important] cref命令自然也行\cref[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:2[color=rgb(51, 51, 51) !important]},最后我们再来试试autoref吧[color=rgb(51, 51, 51) !important],召唤等式\autoref[color=rgb(51, 51, 51) !important]{eq[color=rgb(51, 51, 51) !important]:2[color=rgb(51, 51, 51) !important]}。 |


雷达卡




京公网安备 11010802022788号







