我正在使用包 glossaries 在我的文档中创建词汇表。这种样式super
对我来说几乎是可行的,因为它提供了两列:第一列包含词汇表条目名称,第二列包含描述。两列都左对齐。
是否可以右对齐包含词汇表条目名称的第一列?
这就是我想要实现的目标:
这是我目前的代码:
\documentclass{article}
\usepackage{glossaries}
\newglossaryentry{Example}{name=Example, description=an example}
\newglossaryentry{EX}{name=EX, description=another example}
\setglossarystyle{super}
\makeglossaries
\begin{document}
I use \gls{Example} and \gls{EX} in my text.
\printglossaries
\end{document}
答案1
要使它们右对齐,您需要修改超级词汇表样式。这很简单,但您需要查找原始样式的定义。
来自 glossary-super.sty:
\newglossarystyle{super}{%
\renewenvironment{theglossary}%
{\tablehead{}\tabletail{}%
\begin{supertabular}{lp{\glsdescwidth}}}%
{\end{supertabular}}%
\renewcommand*{\glossaryheader}{}%
\renewcommand*{\glsgroupheading}[1]{}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
}%
\renewcommand{\subglossentry}[3]{%
&
\glssubentryitem{##2}%
\glstarget{##2}{\strut}\glosentrydesc{##2}\glspostdescription\space
##3\tabularnewline
}%
\renewcommand*{\glsgroupskip}{%
\ifglsnogroupskip\else & \tabularnewline\fi}%
}
由于它是一个超级表格环境,您只需将 更改为\begin{supertabular}{lp{\glsdescwidth}}
。\begin{supertabular}{rp{\glsdescwidth}}
根据词汇表用户手册中第 15.2 节中的现有样式示例 20 设置您自己的样式会很有帮助。对于您的情况,这是将以下内容添加到您的序言中:
\newglossarystyle{mysuper}{%
\setglossarystyle{super}% base style on the list style
\renewenvironment{theglossary}%
{\tablehead{}\tabletail{}%
\begin{supertabular}{rp{\glsdescwidth}}}%
{\end{supertabular}}%
}
并改为\setglossarystyle{super}
。\setglossarystyle{mysuper}
您的 MWE 的完整更改将是这样的:
\documentclass{article}
\usepackage{glossaries}
\makeglossaries
\newglossarystyle{mysuper}{%
\setglossarystyle{super}% base style on the list style
\renewenvironment{theglossary}%
{\tablehead{}\tabletail{}%
\begin{supertabular}{rp{\glsdescwidth}}}%
{\end{supertabular}}%
}
\setglossarystyle{mysuper}
\newglossaryentry{Example}{name=Example, description=an example}
\newglossaryentry{EX}{name=EX, description=another example}
\begin{document}
I use \gls{Example} and \gls{EX} in my text.
\printglossaries
\end{document}
导致:
注意:我还将定义条目的位置更改为 after \makeglossaries
。 在您的情况下,这似乎无关紧要,但这是手册中推荐的方法。