![词汇表:首字母缩略词的长名称垂直对齐](https://linux22.com/image/290666/%E8%AF%8D%E6%B1%87%E8%A1%A8%EF%BC%9A%E9%A6%96%E5%AD%97%E6%AF%8D%E7%BC%A9%E7%95%A5%E8%AF%8D%E7%9A%84%E9%95%BF%E5%90%8D%E7%A7%B0%E5%9E%82%E7%9B%B4%E5%AF%B9%E9%BD%90.png)
如何垂直对齐首字母缩略词列表中的条目?我使用词汇表包来生成它。
这是 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] desc
name
有几种方法可以解决这个问题。我使用了两种方法,一种基于表格,一种基于描述列表。
(注意:我将使用 DejaVu Serif(我为西里尔字母准备的字体)。另外,“词汇表”作为标题出现,我认为这与我的本地设置有关,并且会正确显示给您)
表格方法
有几种方法可以解决这个问题,第一种方法是更改表格样式以允许使用粗体,并修改一些长度以获得所需的格式。一般来说,长桌包使用过超表格式并且我将其修改long
为您想要的自定义样式。
\setglossarystyle{long}
在添加之前使用and \printglossaries
:
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\setlength\glsdescwidth{0.8\hsize}
通过删除左右边距,可以解决表格居中的问题。设置\glsdescwidth
为0.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}
并产生:
描述列表方法
我首选的方法是使用枚举项包。使用\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 的描述列表和具有固定标签宽度的描述类环境