![带有三栏的记事本中的词汇表](https://linux22.com/image/336236/%E5%B8%A6%E6%9C%89%E4%B8%89%E6%A0%8F%E7%9A%84%E8%AE%B0%E4%BA%8B%E6%9C%AC%E4%B8%AD%E7%9A%84%E8%AF%8D%E6%B1%87%E8%A1%A8.png)
我想打印一个包含三列的普通词汇表:名称、描述和页面列表。如果文档类是一本书,它就可以正常工作。我是否使用 makeindex 等外部程序并不重要,但为了简化,我使用了\makenoidxglossaries
。这是一个最小的工作示例:
\documentclass{book}
\usepackage{glossaries}
\makenoidxglossaries
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit}}
\newglossaryentry{amet}{name={amet},description={consectetuer}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\newglossaryentry{placerat}{name={placerat},description={ac}}
\newglossaryentry{vitae}{name={vitae},description={felis}}
\setglossarystyle{long3col}
\begin{document}
\glsaddall
\printnoidxglossaries
\end{document}
输出如下所示:
但是,当我使用 scrbook 时:
\documentclass{scrbook}
\usepackage{glossaries}
\makenoidxglossaries
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit}}
\newglossaryentry{amet}{name={amet},description={consectetuer}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\newglossaryentry{placerat}{name={placerat},description={ac}}
\newglossaryentry{vitae}{name={vitae},description={felis}}
\setglossarystyle{long3col}
\begin{document}
\glsaddall
\printnoidxglossaries
\end{document}
我有以下输出和警告:
19-19 行对齐时 \hbox 过满(5399.75533pt 太宽)
中间一列太宽,所以我再也看不到页面列表了。
答案1
这个问题与此相关问题,链接到错误报告。建议的解决方法是添加\usepackage{glossaries-extra}
。完整代码如下:
\documentclass{scrbook}
\usepackage{glossaries}
\usepackage{glossaries-extra}
\makenoidxglossaries
\newglossaryentry{lorem}{name={lorem},description={ipsum}}
\newglossaryentry{dolor}{name={dolor},description={sit}}
\newglossaryentry{amet}{name={amet},description={consectetuer}}
\newglossaryentry{adipiscing}{name={adipiscing},description={elit}}
\newglossaryentry{ut}{name={ut},description={purus}}
\newglossaryentry{elit}{name={elit},description={vestibulum}}
\newglossaryentry{placerat}{name={placerat},description={ac}}
\newglossaryentry{vitae}{name={vitae},description={felis}}
\setglossarystyle{long3col}
\begin{document}
\glsaddall
\printnoidxglossaries
\end{document}