我想知道是否有办法让命名法中的页面引用指向\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}