有什么方法可以提取存储在 newlabel 中的值

有什么方法可以提取存储在 newlabel 中的值

上下文:我想将值存储在辅助文件中,以便在下次运行时在文件中尽早使用它们,而不是创建自己的解决方案,我想使用标签(如建议的那样这个答案)。

问题:每当定义标签时,它都会创建类似这样的内容

\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}

enter image description here

相关内容