我非常喜欢词汇表中的 altlist 样式,但我没有找到处理多行名称的方法,所以我寻找替代方案,并想出了 index 样式,它允许多行名称,但在我看来很丑陋。基本上,我希望名称不缩进,但描述不缩进,名称和描述之间有一些空格(就像 altlist 样式一样)。
通过使用“\glstreepredesc”,这可能相当容易实现,但我做不到。如果有人能帮忙那就太好了。(或者,作为一种替代方案,有没有一种解决方案可以在 altlist 样式中使用多行名称?)
这是 MWE
% arara: pdflatex
% arara: makeglossaries
% arara: pdflatex
\documentclass[fontsize=10pt]{scrbook}
\usepackage{geometry}
\geometry{
paperheight=213mm,
paperwidth=140mm,
left=16mm,
right=16mm,
top=21mm,
bottom=16mm,
heightrounded,
}
\usepackage[
nopostdot]{glossaries}
\makeglossaries
\newglossaryentry{long-long-long-argument}
{
name={The Name for the Very Long and the Most Important Argument in the Text},
text={The Name for the Very Long and the Most Important Argument in the Text},
description={The Very Long Description of the Very Long and the Most Important Argument in the Text. The Very Long Description of the Very Long and the Most Important Argument in the Text.}
}
\newglossaryentry{short-argument}
{
name={Very Short argument.},
text={Very Short argument.},
description={Description of a very short argument. Description of a very short argument.},
}
\renewcommand{\glstreepredesc}{%
\glstreeitem\parindent\hangindent}
\begin{document}
\gls{long-long-long-argument} \gls{short-argument}
\printglossary[style=index,nonumberlist]
\end{document}
答案1
list
(因此altlist
)仅使用description
列表来排版词汇表,因此我们可以使用enumitem
来调整其行为。加载此包并使用后altlist
,我们只需说一句就可以打破名称
\setlist[description]{style=unboxed}
为了使名称的所有行都左对齐(我不确定这是否是个好主意),我们可以定义自定义对齐方式。
\SetLabelAlign{horstfuchs}{\parbox[b]{\textwidth}{#1}}
\setlist[description]{style=unboxed, align=horstfuchs, labelsep=0pt}
为了使定义不改变全部 description
列出您的文档中的内容,您应该创建适当的词汇表样式,而不是仅仅全局更改设置。
\SetLabelAlign{horstfuchs}{\parbox[b]{\textwidth}{#1}}%
\newglossarystyle{horstfuchs}{%
\setglossarystyle{altlist}%
\renewenvironment{theglossary}%
{\glslistinit\begin{description}[style=unboxed, align=horstfuchs, labelsep=0pt]}%
{\end{description}}%
}