LaTeX 之外的代码注释的不变方程式引用

LaTeX 之外的代码注释的不变方程式引用

我目前正在为一个大项目编写文档,该项目是现有项目的扩展,我正在寻找可能对代码可持续性造成麻烦的问题的解决方案。

对于之前的项目,我们在代码中加入了注释,例如“// 文档-VersionX 附件 B 中的公式 26”,这使我们能够检查代码中函数背后的理论,并验证函数是否与公式相对应。但是,您可以想象,如果我们在模型中插入一个新公式,事情就会变得麻烦,因为这个公式之后的所有公式都无法正确引用(对“公式 26”的旧引用将需要变为“公式 27”)。

我一直在考虑为每个方程创建一个与其他方程无关的引用,但阅读文档时发现方程标签/数字不遵循传统顺序并不好。这意味着文档中的引用必须与以前一样(“方程 17”必须是论文中的第 17 个方程),所以我需要在 LaTeX 代码中为每个方程固定一个不变的数字,该数字在项目的 JAVA 代码中引用。然后可以将这个不变的引用与 PDF 中该方程的“真实”引用配对。

我可以解析 Java 文件并将不变的引用更改为一对(不变的引用,PDF 编号引用),但我不知道如何自动提取由 LaTeX 生成的那些 PDF 引用,并将它们与输出文件中的不变引用配对。

如果这个问题不太清楚,我很抱歉,我在 SE 或 Google 上很难找到类似的问题。我对这种高级 LaTeX 任务没有太多经验,在 LaTeX 之外执行此操作的唯一方法是解析每个方程标签的 .tex 文件,按 pdf 顺序排列它们,然后解析 Java 代码以插入真正的 PDF 引用。这种方法似乎有点野蛮,所以如果可能的话,我正在寻找另一种方法来做到这一点。

编辑:澄清我的问题:我想找到一种方法来创建对我的方程式的不变引用(如标签),并在输出文件中将它们与 PDF 中的实际数字配对(例如:方程式 25,在 .tex 中引用 Q_eval_2)。有了这个输出文件,我可以设法人为地创建我正在寻找的交叉引用。

答案1

成功运行 LaTeX 生成的文件.aux包含解析交叉引用所需的信息——目标对象的标签和编号或其他 ID。例如,方程式的条目可能是

 \newlabel{testEQ}{{4.1}{14}}

其中,4.1表示方程编号,14表示其出现的页码。

分配“有意义的”标签,而不是使用分配给对象的初始数字,将提供持久且安全的关联,这种关联应该易于在注释代码和文档中维护。这种“有意义的”关联的一个例子可能是

\begin{equation}
  \label{eq:Einstein}
  E = mC^{2}
\end{equation}

相关内容