首页 > 解决方案 > 用python解析乳胶辅助文件中的引用

问题描述

如果您编译包含标签的乳胶文件,辅助文件将包含与每个标签关联的字符串。

例如,来自以下乳胶源

\documentclass{article}

\begin{document}
\begin{equation}
  e^{i\pi} = - 1
  \label{myequation}
\end{equation}
\end{document}

编译后.aux生成一个文件,包含:

\relax 
\newlabel{myequation}{{1}{1}}
\gdef \@abspage@last{1}

从这个文件中可以看到,引用的方程myequation有标签“1”。

我正在寻找一个解析.aux文件并生成带有对应标签名称->字符串的字典的python类。

是否有执行此操作的 python 模块或解析器?

附加信息

我需要这个的原因如下。我有 2 个乳胶源文件,比如说 file1.tex 和 file2.tex。file2.tex 包含对仅存在于 file1.tex 中的方程式/表格/等的引用。由于与 file1.tex 中的每个标签关联的实际字符串是在编译时动态生成的,我的想法是

  1. 编译file1.tex

  2. 提取对应标签->字符串

  3. 用解析器替换\ref{somelabel}file2.tex 中的实际字符串

  4. 编译file2.tex

步骤 3 很容易完成,例如,使用sed. 第 2 步可能更麻烦。

标签: pythonparsinglatex

解决方案


您可以简单地使用包从其他文档访问标签xr(或者xr-hyper如果您使用的是 hyperref):

\documentclass{article}

\usepackage{xr}

\externaldocument{file1}

\begin{document}

test \ref{myequation}

\end{document}

在此处输入图像描述


推荐阅读