词汇表:首字母缩略词的长名称垂直对齐

词汇表:首字母缩略词的长名称垂直对齐

如何垂直对齐首字母缩略词列表中的条目?我使用词汇表包来生成它。
这是 MWE:

% !TeX program = xelatex
% !TeX encoding = utf-8
% !TeX spellcheck = ru_RU

\documentclass[12pt, a4paper]{article}

\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setmainfont[Ligatures=TeX]{Times New Roman}

\usepackage[xindy={glsnumbers=false}, nonumberlist, nopostdot, nogroupskip]{glossaries}
%\setglossarystyle{super} % uncomment for style "super"
\makeglossaries

\begin{document}

\newacronym{bam}{ДАП}{Двунаправленная Ассоциативная Память}
\newacronym{ai}{ИИ}{Искусственный Интеллект}
\newacronym{am}{АП}{Ассоциативная Память}
\newacronym{ann}{ИНС}{Искусственная Нейронная Сеть}
\newacronym{an}{ИН}{Искусственный Нейрон}
\newacronym{it}{ИТ}{Информационные Технологии}
\glsaddall

\printglossaries

\end{document}

使用默认样式,我得到以下结果:
默认样式
如您所见,长名称未垂直对齐。
我想要的可以通过

\setglossarystyle{super}

但在这种情况下,短名称会失去粗体效果,会出现一些小的水平缩进,并且行间距会变小:
超级风格
其中红色是一些额外的缩进,我不需要。
感谢您的回答!

答案1

超级风格采用超表格式表格。这与标准样式中的标准列表不同description。创建的表格在页面上居中,从而导致缩进。粗体会丢失,因为列表的默认行为是description粗体。\item[name] descname

有几种方法可以解决这个问题。我使用了两种方法,一种基于表格,一种基于描述列表。

(注意:我将使用 DejaVu Serif(我为西里尔字母准备的字体)。另外,“词汇表”作为标题出现,我认为这与我的本地设置有关,并且会正确显示给您)

表格方法

有几种方法可以解决这个问题,第一种方法是更改​​表格样式以允许使用粗体,并修改一些长度以获得所需的格式。一般来说,长桌包使用过超表格式并且我将其修改long为您想要的自定义样式。

\setglossarystyle{long}在添加之前使用and \printglossaries

\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\setlength\glsdescwidth{0.8\hsize}

通过删除左右边距,可以解决表格居中的问题。设置\glsdescwidth0.8\hsize(默认0.6\hsize)可以为表格中的描述留出更多空间。

修复粗体问题有点困难,因为您必须定义自定义样式。您可以基于现有样式(例如)long并仅\glossentry通过在 之前的序言中添加以下内容来更改\setglossarystyle

\newglossarystyle{mylong}{%
  \setglossarystyle{long}%
  \renewcommand{\glossentry}[2]{%
    \glsentryitem{##1}\glstarget{##1}{\bfseries \glossentryname{##1}} &
    \glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
  }%
}

此外,您需要设置词汇表样式才能\setglossarystyle{mylong}使用自定义样式。这与glossary-super.sty词汇表(部分)中定义的唯一区别long在于添加了\bfseries

编辑:Nicola Talbot 指出,更好的方法是简单地使用long表格样式并\renewcommand{\glsnamefont}[1]{\textbf{#1}}解决粗体问题。

完整的 mwe 是(原来的粗体方法被注释掉):

\documentclass[12pt, a4paper]{article}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setmainfont[Ligatures=TeX]{DejaVu Serif}

\usepackage[xindy={glsnumbers=false}, nonumberlist, nopostdot, nogroupskip]{glossaries}

% Original method for bold
%\newglossarystyle{mylong}{%
%  \setglossarystyle{long}%
%  \renewcommand{\glossentry}[2]{%
%    \glsentryitem{##1}\glstarget{##1}{\bfseries \glossentryname{##1}} &
%    \glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
%  }%
%}
%\setglossarystyle{mylong}

% Nicola Talbot's suggestion
\setglossarystyle{long}
\renewcommand{\glsnamefont}[1]{\textbf{#1}}

\makeglossaries

\begin{document}

\newacronym{bam}{ДАП}{Двунаправленная Ассоциативная Память}
\newacronym{ai}{ИИ}{Искусственный Интеллект}
\newacronym{am}{АП}{Ассоциативная Память}
\newacronym{ann}{ИНС}{Искусственная Нейронная Сеть}
\newacronym{an}{ИН}{Искусственный Нейрон}
\newacronym{it}{ИТ}{Информационные Технологии}
\glsaddall

\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\setlength\glsdescwidth{0.8\hsize}

\printglossaries

\end{document}

并产生: 表 MWE 结果

描述列表方法

我首选的方法是使用枚举项包。使用\setlist来自的命令枚举项可以改变所有描述列表的格式并用作:

\setlist[description]{leftmargin=!, labelwidth=3em} % Change for glossaries
\printglossaries
\setlist[description]{style=standard} % reset settings back to default

通过使用 进行包装\printglossaries\setlist[description]可以更改标签的宽度而不修改样式,并且可以轻松地为多个\printglossary命令设置不同的宽度。对于此示例,设置labelwidth=3em是合适的,但可能需要根据使用的首字母缩略词进行更改。

完整 mwe 为:

\documentclass[12pt, a4paper]{article}
\usepackage{polyglossia}
\usepackage{enumitem}
\setdefaultlanguage{russian}
\setmainfont[Ligatures=TeX]{DejaVu Serif}

\usepackage[xindy={glsnumbers=false}, nonumberlist, nopostdot, nogroupskip]{glossaries}

\makeglossaries

\begin{document}

\newacronym{bam}{ДАП}{Двунаправленная Ассоциативная Память}
\newacronym{ai}{ИИ}{Искусственный Интеллект}
\newacronym{am}{АП}{Ассоциативная Память}
\newacronym{ann}{ИНС}{Искусственная Нейронная Сеть}
\newacronym{an}{ИН}{Искусственный Нейрон}
\newacronym{it}{ИТ}{Информационные Технологии}
\glsaddall

\setlist[description]{leftmargin=!, labelwidth=3em} % Change for glossaries
\printglossaries
\setlist[description]{style=standard} % reset settings back to default

\end{document}

导致: 使用列表方法的结果

有关枚举项描述列表的更多信息,请参阅:如何通过 leftmargin 和 labelwidth 键控制 enumitem 的描述列表具有固定标签宽度的描述类环境

相关内容