在我的论文中,我有一些清单,我也想在线提供它们,因为从 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”即可。