我正在使用词汇表包,当我发出 \printglossaries 时:
\printglossaries
\makeglossaries
这个词汇表太宽泛了:
我的套餐选择是
\usepackage[acronym,sort=def,
style=long,
nolist
]{glossaries}
环境
\setlength{\textwidth}{4.65in}
就在 \printglossaries 被立即忽略之前,我在词汇表文档中找不到任何影响宽度的选项。
当我使用 twoside 作为脚本选项时,效果更加明显。
有什么想法为什么会发生这种情况或者我该如何解决它?
答案1
[楼主的回答从问题中移出]
仅仅进行调整\glsdescwidth
是没有用的,因为当你最长的条目发生变化时,你必须重新调整。因此,请使用自定义词汇表样式:
\newlength{\glstargetwidth}%
\newlength{\glshspace}%
\newglossarystyle{mylong}{%
% put the glossary in the longtable environment:
\renewenvironment{theglossary}{%
\setlength{\glstargetwidth}{0.29\textwidth}%
\setlength{\glshspace}{0.02\textwidth}%
\setlength{\glsdescwidth}{0.69\textwidth}%
\setlength{\tabcolsep}{0pt}%
\setlength{\extrarowheight}{12pt}%
\begin{longtable}%
{p{\glstargetwidth} @{\hspace{\glshspace}} p{\glsdescwidth}}}%
{\end{longtable}}%
% have nothing after \begin{theglossary}:
\renewcommand*{\glossaryheader}{}%
% have nothing between glossary groups:
\renewcommand*{\glsgroupheading}[1]{}%
\renewcommand*{\glsgroupskip}{}%
% set how each entry should appear:
\renewcommand*{\glossaryentryfield}[5]{%
\raggedright\strong{\glstarget{##1}{##2}}% the entry name
##4% the symbol
&##3,% the description
\space ##5% the number list
\\
}%
% set how sub-entries appear:
\renewcommand*{\glossarysubentryfield}[6]{%
\glossaryentryfield{##2}{##3}{##4}{##5}{##6}}%
}
\renewcommand*{\glstextformat}[1]{\textcolor{black}{#1}}
\glossarystyle{mylong}
这将修复您的条目列的宽度,并在必要时打破条目名称。
答案2
摘自glossaries
用户指南(texdoc glossaries-user.pdf
),第 82 页:
允许多行描述和页面列表的表格样式使用长度
\glsdescwidth
来设置描述列的宽度,使用长度来设置页面列表列的宽度。如果词汇表太宽,\glspagelistwidth
则需要使用来更改这些。\setlength