具有命名法的精确反向引用目标

具有命名法的精确反向引用目标

我想知道是否有办法让命名法中的页面引用指向\nomenclature给出命令的确切位置(例如通过分配标签,如讨论的那样这里)。

更确切地说,我想要的是这些补丁backref对于nomenclature。我知道有nomeqref来自命名法的命令,但有时我会引入没有任何方程式的符号(但可能在定义内 - 这可能是一个有精确参考位置的想法)。

最小(实际上不起作用)的示例:

\documentclass[11pt, a4paper]{article}
\usepackage[refpage]{nomencl}
\usepackage[pageanchor, backref=page, colorlinks=true]{hyperref}
\def\pagedeclaration#1{, \hyperlink{nomencl.#1}{page\nobreakspace#1}} % from https://tex.stackexchange.com/questions/197166
\makenomenclature 

\begin{document}
.
\hypertarget{nomencl.1}
$x$ \nomenclature[1\(X\)]{$X^0$}{my x}
\vspace{10cm}

,
\hypertarget{nomencl.2}
$L$     \nomenclature[1\(L\)]{$L^0$}{my l}
\newpage

s \hypertarget{nomencl.3} t
$v$  \nomenclature[1\(V\)]{$V^0$}{my v}
\vspace{10cm}

...
\hypertarget{nomencl.4}
$b$ \nomenclature[1\(B\)]{$B^0$}{my b}
\newpage


\printnomenclature[2cm]
\end{document}

例如,我希望B^0命名法中的项目“第 2 页”指向B^0而不是仅仅指向第 2 页的顶部。

提前感谢任何建议。

答案1

好的,我找到了一种似乎可行的方法,基于如何在命名法中添加页码以链接到带有“标签”的任意页面?

\documentclass{article}
\usepackage[refpage]{nomencl}

\makeatletter
\def\nomlabelref#1{ , \hyperlink{#1}{page\nobreakspace \pageref{#1}}\nomentryend\endgroup}
\def\@@@nomenclature[#1]#2#3#4{%
{}\hypertarget{#4}  %the {} is important!
{}\phantomsection\label{#4}%https://tex.stackexchange.com/questions/193380
 \def\@tempa{#2}\def\@tempb{#3}\def\@tempc{#4}%
 \protected@write\@nomenclaturefile{}%
  {\string\nomenclatureentry{#1\nom@verb\@tempa @[{\nom@verb\@tempa}]%
      \begingroup\nom@verb\@tempb\protect\nomeqref{\theequation}%
        |nomlabelref}{\@tempc}}%
 \endgroup
 \@esphack}
\makeatother

\usepackage[backref=page,pageanchor, colorlinks=true]{hyperref}
\makenomenclature

\begin{document}

    $x$ \nomenclature[1\(X\)]{$X^0$}{my x}{nomenc:X}
    \vspace{10cm}
    
    See \hyperlink{nomenc:B}{here} the definition of $B^0$, on page \pageref{nomenc:B}.\\
    $L$     \nomenclature[1\(L\)]{$L^0$}{my l}{nomenc:L}
    \newpage
    

    $v$  \nomenclature[1\(V\)]{$V^0$}{my v}{nomenc:V}
    \vspace{10cm}
    
    $b$ \nomenclature[1\(B\)]{$B^0$}{my b}{nomenc:B}
    \newpage

\printnomenclature
\end{document}

相关内容