我正在写几份独立的草稿。每份草稿都可能提交一篇单独的论文。我需要将一份草稿中的一些结果引用到另一份草稿中。由于它们都还没有完成,所以数字可能会改变。有没有办法让我在修改一些草稿时,所有草稿中的编号系统都会自动更新。
举个例子:假设在第一稿中,有一个引理——引理 3.1 和一个方程 (3.2.4)。由于我仍在修改此稿,因此这些数字可能会发生变化。
同时,我正在写第二篇论文。我想参考上面提到的两个结果:[1] 的引理 3.1 和 [1] 的引理 (3.2.4)。是否可以让系统自动更新数字?
答案1
编辑后:
\documentclass{report}
%%%put this in a "real" file
%%% run latex on 'superfilex.tex'
\usepackage{filecontents}
\begin{filecontents}{superfilex.tex}
\documentclass{report}
\begin{document}
\section{other}
\setcounter{equation}{14}% showcase only
\begin{equation}
x=a \label{otherdoc:x}
\end{equation}
\end{document}
\end{filecontents}
{
\makeatletter
\def\@writefile#1#2{}% does nothing and eats all arguments.
\input{superfilex.aux}
\makeatother
}
\begin{document}
\tableofcontents
\section{this}
\begin{equation}
x=b \label{thisdoc:x}
\end{equation}
\ref{thisdoc:x} and \ref{otherdoc:x}
\end{document}
对两个文件运行 latex。
可能会出现以下问题:
- 写入 .aux 的所有内容(部分和公式标签除外)都可能引发错误
- 可能会发生意外错误
- 任何更改都可能引发错误
由于您隐藏了实际文件,因此这可能不适用于您的文件。在这种情况下,我可以被视为原理证明。
更安全的方法是使用@DavidCarlisle 的xr
包:
\documentclass{report}
%%%put this in a "real" file
%%% run latex on 'superfilex.tex'
\usepackage{filecontents}
\begin{filecontents}{superfilex.tex}
\documentclass{report}
\begin{document}
\section{other}
\setcounter{equation}{14}% showcase only
\begin{equation}
x=a \label{otherdoc:x}
\end{equation}
\end{document}
\end{filecontents}
\usepackage{xr}
\externaldocument{superfilex}
\begin{document}
\tableofcontents
\section{this}
\begin{equation}
x=b \label{thisdoc:x}
\end{equation}
\ref{thisdoc:x} and \ref{otherdoc:x}
\end{document}
它应该适用于大多数常见的包/类,包括hyperref
。再次确保您指向的是外部文档的正确路径。