词汇表术语列表宽度

词汇表术语列表宽度

glossaries我在文档中使用包,并且有一些长期名称。这破坏了我的布局。我尝试应用:

\setlength{\glspagelistwidth}{0.3\linewidth}

但根本不起作用。如果我使用:

\setlength{\glsdescwidth}{0.3\linewidth}

它可以在描述侧工作,但我需要减少术语侧的宽度,而不是描述侧的宽度。如果我使用:

\setlength{\glsdescwidth}{0.7\linewidth}

它也不会给我预期的结果。

我怎样才能解决这个问题?

我能得到的最小工作示例(我试图尽可能接近我的情况):

\documentclass{book}

\usepackage{lipsum}

\usepackage[utf8]{inputenc}

\usepackage[acronym]{glossaries}

\renewcommand*{\glossaryentrynumbers}[1]{}

\newcommand{\dictentry}[2]{%
  \newglossaryentry{#1}{name={#1},description={#2}}%
  \glsadd{#1}%
}
\newcommand{\dictentryspec}[3]{%
  \newglossaryentry{#1}{name={#2},description={#3},sort={#1}}%
  \glsadd{#1}%
}
\newcommand{\acronentry}[2]{%
  \newglossaryentry{acro#1}{type=\acronymtype, name={#1},description={#2}, first={#2 (#1)}}%
  \glsadd{acro#1}%
}



\makeglossaries

\setlength{\glsdescwidth}{\dimexpr\linewidth-10\tabcolsep}
\renewcommand{\glsnamefont}[1]{\textbf{#1}}
\glstoctrue

\newglossarystyle{clong}{%
\glossarystyle{long}
\renewcommand{\glsgroupskip}{}
}
\begin{document}
My document.

\acronentry{AD}{Sample 1}
\dictentry{really long or long long long long term 1}{\lipsum[1]}
\dictentryspec{really long or long long long long term 2 in place}{used when I have é or â in glossaries}{\lipsum[1]}

\cleardoublepage
\renewcommand*{\arraystretch}{1.5}
\setlength{\glspagelistwidth}{0.3\linewidth}
\printglossary[type=\acronymtype,style=clong]
\cleardoublepage
\printglossary[type=main,style=clong]
\cleardoublepage
\end{document}

答案1

您正在使用在 glossary-long.sty 文件中定义的样式 long(可以在 /tex/latex/glossaries 中的 glossaries 文件夹中找到)

它将风格(部分)定义为

\newglossarystyle{long}{%
  \renewenvironment{theglossary}%
     {\begin{longtable}{lp{\glsdescwidth}}}%
     {\end{longtable}}%
  \renewcommand*{\glossaryheader}{}%
.
.
.

如您所见,描述宽度确实是p具有宽度的列,\glsdescwidth但第一列是一个简单的l列。

定义新样式非常简单,只需复制定义并创建自己的样式即可(您已经这样做了,基本上删除了组跳过,这只是一个扩展)。这应该可以解决问题

\documentclass{article}

\usepackage[nomain,acronym]{glossaries}
\makeglossaries


\newglossarystyle{clong}{%
 \renewenvironment{theglossary}%
     {\begin{longtable}{p{.3\linewidth}p{\glsdescwidth}}}%
     {\end{longtable}}%
  \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glstarget{##1}{##2} & ##3\glspostdescription\space ##5\\}%
  \renewcommand*{\glossarysubentryfield}[6]{%
     & \glstarget{##2}{\strut}##4\glspostdescription\space ##6\\}%
  %\renewcommand*{\glsgroupskip}{ & \\}%
}

\usepackage{lipsum}
\newacronym{test}{Some very very long text that just wont break}{\lipsum[1]}

\begin{document}
\glsaddall
\printglossary[type=\acronymtype,style=clong]

\end{document}

打印 glossay 两次,第一次使用 long,第二次使用重新定义的 clong 样式,结果如下:

在此处输入图片描述

相关内容