使用 hyperref 包为带有索引的 \gls 添加上标

使用 hyperref 包为带有索引的 \gls 添加上标

我想在文本中为 gls 变量添加上标。问题是,我在词汇表中定义的变量带有“花括号”,这是由超链接包。下面是一个最小的例子来解释我的问题:

\documentclass{article}
\usepackage{hyperref}
\usepackage[toc]{glossaries}
\newglossary[slg]{symbolslist}{syi}{syg}{Symbols}
\makeglossaries
\newglossaryentry{scene_edge}
{
    name={\ensuremath{e_{scene}}},
    description={desc},
    sort=escene,
    type=symbolslist
}
\begin{document}
\printglossary
\printglossary[type=symbolslist]
\clearpage
\section{Test}
$\gls{scene_edge}$\\
$\gls{scene_edge}^{i}$\\ 
$e_{scene}^{i}$\\
${e_{scene}}^{i}$\\
\end{document}

我想在我的 tex 文件中调用它:

\gls{scene_edge}^{i}

我想要的是类似这样的东西:

$e_{scene}^{i}

我实际得到的是:

${e_{scene}}^{i}

(问题是索引很长,并且上标添加在后面,而不是像它应该的那样,就在 e 处)hyperref 包在变量周围创建了一个(红色)框,并阻止上标正好位于变量的顶部。

我可以通过使用 \glsentrytext 来实现想要的结果,但这会删除超链接。

感谢您的帮助

编辑:添加 hyperref 作为问题

想象一下这个例子的样子:

在此处输入图片描述

答案1

可以使用 手册第 166-167 页的建议来避免这种情况glossaries。建议使用 的可选参数\gls

\gls{scene_edge}[^{i}]

各归其位

完整代码:

\documentclass{article}
\usepackage{hyperref}
\usepackage[toc]{glossaries}
\newglossary[slg]{symbolslist}{syi}{syg}{Symbols}
\makeglossaries
\newglossaryentry{scene_edge}
{
    name={\ensuremath{e_{scene}}},
    description={desc},
    sort=escene,
    type=symbolslist
}
\begin{document}
\printglossary
\printglossary[type=symbolslist]

\section{Test}

$\gls{scene_edge}$

\noindent$\gls{scene_edge}[^{i}]$

\noindent$e_{scene}^{i}$

\noindent${e_{scene}}^{i}$
\end{document}

相关内容