在不影响文档其余部分的情况下,一次性更改所有词汇表条目之间的垂直间距的最简单或最佳方法是什么?这肯定是一个基本问题,但我在词汇表和词汇表额外包的文档中找不到答案(这里和这里),以及 Stack Exchange 上的其他地方。
梅威瑟:
\documentclass{book}
\usepackage[nogroupskip,nonumberlist,nopostdot]{glossaries}
\makenoidxglossaries
\renewcommand{\glossaryname}{Glossary}
\setglossarypreamble{\noindent This is a glossary.}
\newglossaryentry{cba}{name={cba},
description={definition of cba}}
\newglossaryentry{bca}{name={bca},
description={definition of bca}}
\newglossaryentry{abc}{name={abc},
description={definition of abc}}
\glsaddall
\begin{document}
The main text of the document.
\printnoidxglossaries
\end{document}
答案1
默认的词汇表样式实际上是一个description
环境,并使用列表环境的默认间距。项目之间的间距为。\itemsep+\parsep
不幸的是,这是在宏中定义的\@listi
,您可以重新定义它,但这很丑陋,因为您必须使用\makeatletter
...。\makeatother
您可以使用 定义自己的词汇表样式\newglossarystyle
,但在我看来,在这种情况下这样做有点过头了。更简单的方法是重新定义环境theglossary
并使用一种经过修改的description
环境。例如,如果您想消除条目之间的垂直空间:
\renewenvironment{theglossary}%
{\begin{list}{}
{%
\setlength\labelwidth{0pt}%
\setlength\itemindent{-\leftmargin}%
\setlength\itemsep{0pt}%
\setlength\parsep{0pt}%
\let\makelabel\descriptionlabel}%
}
{\end{list}}