我想在文本中为 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}