pdftooltip 超过 gls 条目导致第一次使用无法正常工作

pdftooltip 超过 gls 条目导致第一次使用无法正常工作

我添加了一个工具提示来显示带有pdfcommentandglossaries 包的首字母缩略词长条目。但是,启用工具提示后,第一个词汇表外观不会显示。我认为问题可能与使用有关\glsentrylong,也许pdftooltip首先扩展了它,这可能会触发glossaries条目的内部“首次使用标志”,但我通过测试消除了这种预感。

梅威瑟:

\documentclass{article}

\usepackage{glossaries}

\usepackage{pdfcomment}
%%% these command make the first use not work
\let\oldgls\gls
\RenewDocumentCommand{\gls}{ O{} m O{} }{%
    \pdftooltip{\oldgls[#1]{#2}[#3]}{\glsentrylong{#2}}% tries glsentrytext, glsfmtlong
}%

\let\oldglspl\glspl
\RenewDocumentCommand{\glspl}{ O{} m O{} }{%
    \pdftooltip{\oldglspl[#1]{#2}[#3]}{\glsentrylong{#2}}%
}%
%%%%%%
\makeglossaries

\newacronym{hw}{HW}{Hello World}
\newacronym{fb}{FB}{Foo Bar}

\begin{document}
    \glsentrylong{hw} % when the pdf tooltip commands are commented out, it still shows the long use?

    \gls{hw}, \gls{fb} ---first use

    \gls{hw}, \gls{fb} ---second use

     \printglossary

\end{document}

期望: 在此处输入图片描述

问题: 在此处输入图片描述

答案1

检查词汇表条目是否被使用,并且只在之前出现过时才生成工具提示,这样就可以解决问题——这应该没问题,因为您只需要在出现首字母缩略词时查看工具提示。我怀疑内部pdftooltip扩展了 gls 条目,但没有打印它(可能是为了确定链接的区域?),这会在后台增加使用计数器。

\let\oldgls\gls
\RenewDocumentCommand{\gls}{ O{} m  O{}}{%
    \ifglsused{#2}{%
        \pdftooltip{\oldgls[#1]{#2}[#3]}{\glsentrylong{#2}}% tries glsentrytext, glsfmtlong
    }{%
        \oldgls[#1]{#2}[#3]
    }%
}%

相关内容