我正在使用词汇表包从我正在编写的文档中生成一个符号表,效果很好。
然而,今天我注意到这些符号被视为一个新对象,如果添加了幂,例如 ^1,这些幂就会被放错位置。
知道如何修复这个问题吗?
工作示例(请注意,我正在使用 lualatex,但这并不重要,如果您评论特定于 lualatex 的部分,它应该可以与 latex 一起使用):
\documentclass[
paper=a5,
pagesize,
fontsize=10pt,
DIV=calc,
BCOR=12mm,
twoside,
open=right,
captions=tableheading
]{scrreprt}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
%% LuaTex
\usepackage{luatextra} % Load fontspec, luacode and other helpful packages for luatex
\usepackage{unicode-math} % Allow unicode symbols in formulas, Option [math-style=ISO]?
%\usepackage[final]{microtype} % Micro-adaption (i.e. spaces) of fonts
% \defaultfontfeatures{Scale=MatchLowercase} Test
\newfontfeature{Microtype}{protrusion=default;expansion=default;}
\directlua{fonts.protrusions.setups.default.factor=.5}
\setmainfont[Microtype,Ligatures=TeX]{Linux Libertine O} % Select Linux Libertine as main font with advanced features
\setsansfont[Microtype,Ligatures=TeX]{Linux Biolinum O} % Select Sans Font
\setmathfont[Microtype,Ligatures=TeX]{XITS Math} % Setze Schriftart der Matheumgebung
\usepackage{scrpage2} % KOMA-Script
\usepackage[pdfpagelabels,colorlinks]{hyperref} % Hyperlinks for bookmarks, references
\usepackage[toc]{glossaries}
\newglossary[slg]{symbolslist}{syi}{syg}{Symbols}
% New style, basically to insert units.
\newglossarystyle{symbols}{%
% Defined as longtable with 4 columns
\renewenvironment{theglossary}%
{\begin{longtable}{llp{\glsdescwidth}p{\glspagelistwidth}}}%
{\end{longtable}}%
% Table Header
\renewcommand*{\glossaryheader}{%
\bfseries Symbol & \bfseries Unit & \bfseries Description & \bfseries Pages %
\\\endhead}%
% No spacer between the groups
%\renewcommand*{\glsgroupheading}[1]{}%
%
\renewcommand*{\glossaryentryfield}[5]{%
% \glsentryitem{##1}% Entry number if required
\glstarget{##1}{##2}% Name
& \glsentryuseri{##1}% Value/Unit
& ##3% Description
& ##5% Page list
\\% end of row
}%
% The command \glsgroupskip specifies what to do between glossary groups.
% Glossary styles must redefine this command. (Note that \glsgroupskip
% only occurs between groups, not at the start or end of the glossary.)
\renewcommand*{\glsgroupskip}{\relax}
}
% To shorten the notation
\newcommand{\symb}[1]{\gls{symb:#1}}
\newglossaryentry{symb:A}{
name={\ensuremath{A_0}},
description={Test Parameter},
user1={m},
sort=A, type=symbolslist
}
%\title{symbols-test}
%\author{}
%\date{}
\makeglossaries
\begin{document}
blabla
\begin{align}
\symb{A} \\
\symb{A}^1 \\
A_0^1
\end{align}
\printglossary[type=symbolslist,style=symbols]
\end{document}
答案1
在数学模式下使用词汇表条目时要小心,特别是在使用超链接时,因为它会影响下标和上标的间距。
您需要将上标/下标放在 的最后一个可选参数中\gls
。例如\gls{symb:A}[^1]
。
精简你的例子:
\documentclass{scrreprt}
\usepackage[colorlinks]{hyperref}
\usepackage[toc]{glossaries}
% To shorten the notation
\newcommand{\symb}[1]{\gls{symb:#1}}
\newglossaryentry{symb:A}{
name={\ensuremath{A_0}},
description={Test Parameter},
user1={m},
sort=A,
}
\makeglossaries
\begin{document}
blabla
\begin{align}
\symb{A} \\
\symb{A}^1 \\
\symb{A}[^1] \\
A_0^1
\end{align}
\printglossary
\end{document}
得出的结果为: