%3F.png)
Мне очень понравился altlist-style в глоссариях, но я не нашел способа, как он мог бы обрабатывать многострочные имена, поэтому я искал альтернативу и придумал index-style, который допускал бы многострочные имена, но выглядит для меня уродливо. По сути, я хочу, чтобы имена не были с отступом, а описания и немного места между именем и описанием (как в altlist-style).
Этого, вероятно, должно быть довольно легко достичь, работая с "\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}}%
}