我有一个包含许多(超过 100 个)方程式的文档,我认为在处理过程中我必须更改、切换、删除它们等。我经常想引用一个方程式,但由于正在进行的工作,引用\label
每个方程式(例如带有数字)并不方便\ref
。有没有更简单的方法可以做到这一点,即使我更改顺序等,也可以使用一些自动标记和直接引用。
答案1
如果你\label
按升序对方程进行数字排序,则说明你没有正确使用该工具。的参数\label
应该以某种简略且希望可识别的方式表明,什么它被交叉引用。例如,有人可能会写
\begin{equation} \label{eq:einstein_energy}
E=mc^2
\end{equation}
使用此设置,无论公式最终编号为1
、55
还是其他任何数字,您都可以在文档的任何位置进行交叉引用,方法是:
\ref{eq:einstein_energy}
你当然不必改变论点\label
\ref
仅仅因为分配给等式的数字发生了变化而改变(和)的参数。
如果你需要交叉引用范围方程,你应该考虑加载聪明人包并使用其\crefrange
宏,如下例所示。请注意,中间三个等式甚至没有分配\label
s。
有关交叉引用机制和包的更多信息,请参阅交叉引用包:使用哪一个,哪些有冲突?
\documentclass{article}
\usepackage[noabbrev]{cleveref} % for "\crefrange" macro
\setlength\textwidth{3in} % just for this example
\begin{document}
\begin{equation}\label{eq:one_one} 1+1=2 \end{equation}
\begin{equation} 2+2=4 \end{equation}
\begin{equation} 3+3=6 \end{equation}
\begin{equation} 4+4=8 \end{equation}
\begin{equation}\label{eq:zero_zero}0+0=0 \end{equation}
A cross-reference to \crefrange{eq:one_one}{eq:zero_zero}.
\end{document}