![处理大文件标签的有效方法](https://linux22.com/image/451195/%E5%A4%84%E7%90%86%E5%A4%A7%E6%96%87%E4%BB%B6%E6%A0%87%E7%AD%BE%E7%9A%84%E6%9C%89%E6%95%88%E6%96%B9%E6%B3%95.png)
当处理大型 tex 文件时,手动标记定义和方程式可能会变得相当麻烦:为了理智起见,我喜欢在标签上保留单一编号系统(例如,我用星号表示\label{d1}
定义 1,\label{eq2}
用星号表示紧随其后的方程式,等等),这样,我就可以在进入章节时引用内容。
然而,当我(不可避免地)必须替换或删除文本的某些部分时,这就会成为一个问题,这将使我不得不将我之前定义的所有标签向前或向后移动。所以我的问题是:有没有一种更有效的方法来处理标签,这样如果我在中间更改了一些文本,我就不必从某个点更改所有标签?
答案1
LaTeX 存在的原因\label
就是为了避免这个问题。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
aaaaa
\begin{equation}
\label{dog}
d=1
\end{equation}
aaaaa
\begin{equation}
\label{cat}
c=2
\end{equation}
aaaaa
\begin{equation}
\label{rabbit}
r=10
\end{equation}
See $c$ is defined in \eqref{cat}
\end{document}
可以编辑为
\documentclass{article}
\usepackage{amsmath}
\begin{document}
aaaaa
\begin{equation}
\label{dog}
d=1
\end{equation}
aaaaa
aaaaa
\begin{equation}
\label{rabbit}
r=10
\end{equation}
aaa
\begin{equation}
\label{cat}
c=2
\end{equation}
See $c$ is defined in \eqref{cat}
\end{document}
将中间的等式移到末尾,\eqref
(或\ref
)将获取新的数字,除了移动等式之外无需进行任何更改。
有时在起草时使用会有所帮助showkeys
,这样内部标签就可见了
\documentclass{article}
\usepackage{amsmath}
\usepackage{showkeys}
\begin{document}
aaaaa
\begin{equation}
\label{dog}
d=1
\end{equation}
aaaaa
aaaaa
\begin{equation}
\label{rabbit}
r=10
\end{equation}
aaa
\begin{equation}
\label{cat}
c=2
\end{equation}
See $c$ is defined in \eqref{cat}
\end{document}
生产
避免使用数字标签,它们的工作原理与这里显示的完全一样,但看源代码的人可能会被误导,认为这eq:2
是方程式 2
答案2
正如 David Carlisle 在评论中指出的那样,尝试手动处理标签中的数字违背了标签的初衷。我甚至可以说 LaTeX 可以帮您处理这个问题。
以下是我的做法。我并没有发明这个过程,但我不记得我从哪里得到它了。
fig:
每个标签都以、sec:
、、等开头,具体取决于我要标记的对象类型。这完全不是强制性的,只是帮助我找到方向eq:
。chap:
item:
- 我只需要写一个简短但清晰的物品描述即可
:
。即使有点长,任何文明的编辑都会帮我排版。
例子:
\chapter{My grand project}\label{chap:grand_project}
\begin{enumerate}
\item\label{item:intro} The introduction will be\dots
\item\label{item:goal} I'll be aiming at\dots
\end{enumerate}
Gauss Law is:
\begin{equation}\label{eq:gauss_law}
\phi=\frac{Q_{\text{int}}}{\varepsilon_0}
\end{equation}
See equation~\eqref{eq:gauss_law} to enable my grand projet,
which goal is described in point~\ref{item:goal} on page~\pageref{chap:grand_project}.
抱歉,举了这么愚蠢的例子,你明白我的意思吧。;-)