上下文:我想将值存储在辅助文件中,以便在下次运行时在文件中尽早使用它们,而不是创建自己的解决方案,我想使用标签(如建议的那样这个答案)。
问题:每当定义标签时,它都会创建类似这样的内容
\newlabel{customLabel}{{MyValue}{24}{}{Doc-Start}{}}
我希望能够提取这些值。但是 \ref
不起作用,因为它的输出不仅仅是值,而且是一些复杂的乳胶字符串。
答案1
使用refcount
和\getrefnumber
可以以可扩展的方式提取标签值。
\getrefnumber{foo}
将提供存储为label
值的任何内容,这可能是一个数字,但不限于数字。(它可以是“任何东西”)
标签值必须存储为的第二个参数\newlabel
。
\documentclass{article}
\usepackage{refcount}
\usepackage{hyperref}
\newcounter{mylabelcounter}
\makeatletter
\newcommand{\labelText}[2]{%
\refstepcounter{mylabelcounter}%
\immediate\write\@auxout{%
\string\newlabel{#1}{{#2}{\thepage}{{\unexpanded{#2}}}{mylabelcounter.\number\value{mylabelcounter}}{}}
}%
}
\makeatother
\begin{document}
\labelText{customLabel}{100}
\labelText{otherLabel}{24}
\ifnum\getrefnumber{otherLabel} < 25
Hooray!!!
\else
Sorry!!!!
\fi
\ifnum\getrefnumber{customLabel} < 25
Hooray!!!
\else
Sorry!!!!
\fi
\end{document}