
Я хочу добавить верхний индекс к переменной gls в тексте. Проблема в том, что переменная, которую я определил в глоссарии, содержит "фигурные скобки", вызванныегиперрефpackage. Вот минимальный пример, поясняющий мою проблему:
\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, но это удалит гиперссылки.
Спасибо за вашу помощь
Редактировать: Добавлен гиперссылка как проблема
Представьте, как выглядит пример:
решение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}