'\ref' 的结果需要外部处理

'\ref' 的结果需要外部处理

在我的论文中,我有一些清单,我也想在线提供它们,因为从 PDF 输出中复制清单有点麻烦(分散在多个页面上,行号也被复制了,...)。在 PDF 中它看起来像在此处输入图片描述

我从

\lstinputlisting[label={lst:ex1},caption={R code for Example~\ref{ex:intro}},frame=single]{../R/Example1/PCAIntro.r}

现在我想编写一个 PHP 脚本,PCAIntro.r在线提供该文件,并想引用其中的“示例 2.1.0.1”。所以我的问题是:

如何将结果保存2.1.0.1\ref{ex:intro}单独的文件中以供进一步处理?

答案1

您必须解析该.aux文件。以下 PHP 代码使用正则表达式解决了我的问题:

<?php
$contents=file_get_contents("Filename.aux", "r");
$label="ex:intro";
$pattern="/(?:newlabel{".$label."}{{)([.[:alnum:]]*?)}/";
preg_match($pattern,$contents,$match);
echo $match[1];//contains "2.1.0.1"
?>

只需适当调整“Filename.aux”和“$label”即可。

相关内容