两栏词汇表

两栏词汇表

我遇到了类似的问题:双列长表或表格。我想要相同的结果——即一个两列词汇表(即总共 4 列),其中缩写列表及其描述会换行到同一页上新的第二列中,然后再继续翻页。但是,我正在使用该glossaries包。我扫描了(非常长的)文档,我能找到的唯一对列的引用是在单个词汇表列中添加更多信息(即符号)的意义上。有人知道是否有办法做我要求的事情吗?

顺便说一句:我无论如何也想不出如何让词汇表的页眉全部大写(就像其他所有页眉一样)。将命令重新定义\glossarymark为任何内容都会让我得到一个“CONTENTS”页眉,从紧挨着词汇表的目录流出。

编辑:不确定多问问题有多受欢迎,但因为这些都是与风格相关的,所以我还有一个问题——词汇表的风格是否与目录相似/相同?软件包附带的所有风格似乎都很糟糕……最接近我想要的(极其简单)是长风格,但出于某种原因,它缩进了 1.5 英寸,看起来很丑陋。

答案1

由于我也为此苦苦挣扎了一段时间,而且我在网上找不到任何有用的讨论,所以我只是仔细阅读了手册!也许这是一个比这个主题更新的功能,所以在提出问题的那一天它还不存在。但我想提供一种简单的方法来用这个glossaries包实现多列,这样其他人就可以更快地找到解决方案。
只需要glossary-mcols提供这个功能的附加包。

\documentclass{scrreprt}

\usepackage{glossaries}
\usepackage{glossary-mcols}
\makeglossaries
\renewcommand*{\glspostdescription}{} % Removes dots at the end of each entry.

\begin{document}

% Some entries.
\newglossaryentry{glos:begin}{name=Begin, description={This is the beginning.}}
\newglossaryentry{glos:bold}{name=Bold, description=\nopostdesc}
\newglossaryentry{glos:bear}{name=Bear, description={A bear can make you run fast.}}\newglossaryentry{glos:chicken}{name=Chicken, description={Tasty...}}
\newglossaryentry{glos:elephant}{name=Elephant, description=\nopostdesc}
\newglossaryentry{glos:tantalos}{name=Tantalos, description={Just a random name.}}
\newglossaryentry{glos:zebra}{name=Zebra, description=\nopostdesc}

% Use the entries so that they show up in the glossary.
\gls{glos:begin}
\gls{glos:bold}
\gls{glos:bear}
\gls{glos:chicken}
\gls{glos:elephant}
\gls{glos:tantalos}
\gls{glos:zebra}

% Print the glossary with one of the mcol styles.
\printglossary[style=mcolindex, title=Index]

\end{document}

在此处输入图片描述

答案2

关于您的第一个问题(如何实现两列词汇表):这是一个使用labeling列表环境提供的解决方案KOMA 脚本scrextend包。请注意,您必须提供最长的标签(在我的示例中为“电解质”)作为 的参数\begin{labeling}。还需要破解一些glossaries内部机制以防止\printglossaries自动排版标题——而是在 的可选参数中手动添加标题\begin{multicols}

\documentclass{article}

\usepackage{scrextend}% provides the "labeling" environment

\usepackage{glossaries}
\makeglossaries

\newglossarystyle{labeling}{%
  \renewcommand{\theglossary}{\begin{labeling}{electrolyte\quad}}%
  \renewcommand{\endtheglossary}{\end{labeling}}%
}
\glossarystyle{labeling}

\newglossaryentry{electrolyte}{name=electrolyte,%
    description={solution able to conduct electric current}}
\newglossaryentry{tex.sx}{name=tex.sx,%
    description={a website for enthusiastic users of \TeX, \LaTeX\ and related systems}}

\usepackage{multicol}
\setlength{\columnsep}{25pt}

% Don't typeset a glossary heading automatically
\makeatletter
\renewcommand*{\@glossarysection}[2]{%
\ifx\@@glossarysecstar\@empty
%  \csname\@@glossarysec\endcsname{#2}% DELETED
\else
%  \csname\@@glossarysec\endcsname*{#2}% DELETED
  \@gls@toc{#1}{\@@glossarysec}%
\fi
\@@glossaryseclabel}
\makeatother

\begin{document}

Some text about \gls{electrolyte} and \gls{tex.sx}.

\begin{multicols}{2}[\section*{\glossaryname}]
\printglossaries
\end{multicols}

\end{document}

在此处输入图片描述

答案3

我遇到了类似的问题。我尝试了 Keks Dose 的建议,但效果并不令人满意,因为词汇表的标题(在我的情况下是章节)multicols也是 的一部分。但是,定义一种新的词汇表样式(在我的情况下基于list),其中有一个{multicols}{2}围绕标准的 -Environment description,解决了这个问题:

\newglossarystyle{mylist}{
\glossarystyle{list}% base this style on the list style
\renewenvironment{theglossary}{
\begin{multicols}{2}\begin{description}}{\end{description}\end{multicols}} 
% the default environment for list is \begin{description} \end{description}
} 
\printglossary[style=mylist]

编辑:我刚刚意识到这种解决方案几乎是在对上一个答案的评论中提供的。mforbes 的解决方案使用BeforeBeginEnvironmentAfterEndEnvironment来自etoolbox包。我的解决方案基于了解您正在修改的样式的默认环境,但不需要额外的包。mforbes 的解决方案与theglossary

答案4

难道你的问题不能通过简单地使用multicol包并写下以下内容来回答:

\begin{multicols}{2}
\glossary
\end{multicols}

相关内容