
我想在文字中的 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
glossaries
使用手冊第 166-167 頁的建議可以避免這種情況。建議使用可選參數\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}