下面的图片是我目前拥有的缩写列表,我正在尝试寻找如何在没有标题但条目由线分隔的表中添加边框。
当前 MWE:
\documentclass[12pt, oneside, openany]{scrbook}
\usepackage[toc, acronym]{glossaries}
\usepackage{glossary-longragged}
\setglossarystyle{altsuper4col}
\makeglossaries
\begin{document}
\newacronym{abcd}{ABCD}{Any body can Dance}
\newacronym{mi}{MI}{Mission Impossible}
\newacronym{usa}{USA}{United States of America}
\gls{abcd} and \gls{mi} are movies from \gls{usa}.
\printglossary[nonumberlist, type=\acronymtype, toctitle=List of Abbreviations, title = List of Abbreviations]
\end{document}
答案1
这用户手册的glossaries
讨论各种样式。从altsuper4col
示例代码开始,它看起来像是altsuper4colborder
添加了边框。
但是,这有垂直线分隔列,而不是水平线分隔条目。13.1.4 长表样式(右对齐)中列出的其他预定义样式似乎都不能完成这项工作,但 13.2 定义您自己的词汇表样式指出,我们\newglossarystyle
可以(使用现有样式作为基础)创建自己的样式。现在,看看包裹代码的glossaries
altsuper4col
,我们可以使用 supertabular 环境 (glossary-super.sty)查看第 3.8 节词汇表样式中的内容。首先,对于边框,我们可以修改theglossary
所用 的定义altsuper4colborder
,并删除表格规范中 给出的内部垂直线。然后,我们可以采用所用 的|
定义,并附加,以便在每条线后绘制一条水平线。最后,如果设置了组跳过,则会添加一个空白行,我们还需要向其中附加一个,再次修改 所用 的代码。glossentry
supercol
\hline
\hline
super4col
\newglossarystyle{vb}{
\setglossarystyle{super4col}
\renewenvironment{theglossary}%
{\tablehead{\hline}\tabletail{\hline}%
\begin{supertabular}%
{|lp{\glsdescwidth}lp{\glspagelistwidth}|}}%
{\end{supertabular}}%
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}\glstarget{##1}{\glossentryname{##1}} &
\glossentrydesc{##1} &
\glossentrysymbol{##1} & ##2\tabularnewline\hline
}%
\ifglsnogroupskip
\renewcommand*{\glsgroupskip}{}%
\else
\renewcommand*{\glsgroupskip}{& & & \tabularnewline\hline}%
\fi
}
使用时给出 ( \setglossarystyle{vb}
)
空行来自组跳过(以不同字母开头的条目之间的间隙),根据手册,应该可以通过传递给nogroupskip
来在本地禁用\printglossaries
,出于某种原因,这对我来说在本地不起作用,但作为包的一个选项,您可以通过替换来完全禁用它的样式
\ifglsnogroupskip
\renewcommand*{\glsgroupskip}{}%
\else
\renewcommand*{\glsgroupskip}{& & & \tabularnewline\hline}%
\fi
和\renewcommand*{\glsgroupskip}{}
。
最后,要删除标题,我们可以采取这个答案并使用\renewcommand{\glossarysection}[2][]{}
。
综上所述,\setglossarystyle{long-booktabs}
(这需要\usepackage{glossary-longbooktabs}
)对我来说看起来更轻松、效果更好。