引用交叉引用标签的特定标记 / 关于 refcount 和 zref 的说明

引用交叉引用标签的特定标记 / 关于 refcount 和 zref 的说明

首先,在投反对票之前,我知道这篇文章的存在和内容https://tex.stackexchange.com/a/577464/262813我要指出的是,我并不是无缘无故问这个问题,我之前已经仔细考虑过很多次,并花了很多时间写出完整的问题和答案。

我是一个初学者,我真的不明白一些事情,即如何引用只有一个全局标签可供使用的引用的一个特定标记。

假设你设置了一个编号为 2b.i 的子示例,并将其标记为2bi 标签;现在如果想让我的参考打印成以下形状,跳过第一个和第二个标记,好吧,我确信这很简单,但我还是不明白。

我所理解的是,我寻找的打印字符串是 \theSubSubExNo 或 \theSubExNo,但这些命令不接受参数,它们打印相应计数器的当前值(\SubSubExNo 和 \SubExNo)。我需要的是能够指的是它们在某一特定点的价值。但我不知道如何给它们分配标签。而且包装zref远远超出了我的理解水平。

我相信我看到了一个解决方案,基于@Ulrich Diez 的几个答案和评论,非常有价值;它涉及包中的 \getrefbykeydefault refcount

我已经阅读了有关该命令的文档,我知道它需要 3 个参数,即标签、键、默认但我不知道应该为变量 2 和 3 分配什么值(例如,在 Ulrich 的 \KeepOnlyStuffBehindLastDot 提案中,我可以看到第三个是一个双问号,我完全不知道这是什么意思)。

我使用基于linguexlinguex的包。

我以前的询问:

平均能量损失

\documentclass{report}
\usepackage{linguex}
 \begin{document}
    \ex. \label{lakintpur}
    \a. \label{lakintpura}\a. Greg's intention was to overthrow the
    government. \label{intention}
    \b. Greg's purpose was to overthrow the government. \label{purpose}
    \z.\b.\label{lakintpurb}\a. Greg intended to overthrow the
    government. \label{intendv}
    \b.*Greg purposed to overthrow the government. \label{purposev}
    
     \textbackslash ref\{intention\} prints as \ref{intention} but I would like to print only (i) (if being discussing (1-a) extensively),
     \vspace{1em}
     
      or (as \textbackslash rfx from the package philex achieves) print (a.i) if being discussing (1) globally.
      
 \end{document}

在此处输入图片描述

答案1

如果你查看 aux 文件,你会看到标签的存储方式如下:

\newlabel{intention}{{\hbox {(1-a-i)}}{1}}

虽然从中提取并非不可能i,但如何做到这一点并不简单,而且引用计数也无法提供帮助。

如果你真的想访问子计数器,你应该使用更强大的参考系统,这样zref你就可以独立存储和检索更多值

\documentclass{report}
\usepackage{linguex}
\usepackage{zref-user}
\makeatletter
\zref@newprop{exno}{\arabic{ExNo}}
\zref@newprop{subexno}{\alph{SubExNo}}
\zref@newprop{subsubexno}{(\roman{SubSubExNo})}

\zref@addprops{main}{exno,subexno,subsubexno}

\makeatother
 \begin{document}
    \ex. \zlabel{lakintpur}
    \a. \zlabel{lakintpura}\a. Greg's intention was to overthrow the
    government. \zlabel{intention} 
    \b. Greg's purpose was to overthrow the government. \zlabel{purpose}
    \z.\b.\zlabel{lakintpurb}\a. Greg intended to overthrow the
    government. \zlabel{intendv}
    \b.*Greg purposed to overthrow the government. \zlabel{purposev}

     \textbackslash ref\{intention\} prints as \zref[subsubexno]{intention} but I would like to print only (i) 
     
     Test: \zref{intention}, \zref[exno]{intention}, \zref[subexno]{intention}
 \end{document}

在此处输入图片描述

相关内容