使用词汇表包更改打印缩略词的样式

使用词汇表包更改打印缩略词的样式

我正在使用词汇表包来定义我的首字母缩略词并将它们打印出来。我使用这种风格:

\newglossarystyle{super3colleft}{%
  \renewenvironment{theglossary}%
    {\tablehead{}\tabletail{}%
     \begin{supertabular}{@{}>{\bfseries}lp{\glsdescwidth}p{\glspagelistwidth}}}%
    {\end{supertabular}}%
  \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}%
  \renewcommand*{\glossarysubentryfield}[6]{%
     &
     \glssubentryitem{##2}%
     \glstarget{##2}{\strut}##4 & ##6\\}%
  \renewcommand*{\glsgroupskip}{ & &\\}%
}

通过以下方式打印出来

\printglossary[type=\acronymtype,style=super3colleft]

并获得一些缩略词的缩进,如下所示:

有什么方法可以让红色部分充满文字而不是破坏文字,并改变蓝色缩进的宽度和两组之间的高度(紫色)?非常感谢!

编辑:这是一个可以工作的最小示例吗?

\documentclass{scrbook}

\usepackage{glossaries}
\makeglossaries

\newglossaryentry{X}{type=\acronymtype, name={XY}, description={blablabla asdkjh asdkjh aksjdh kajsdha ksjdh as dkha sdh}}
\newglossaryentry{Xb}{type=\acronymtype, name={XY2}, description={basdasd sdh}}
\newglossaryentry{y}{type=\acronymtype, name={Y}, description={foobar}}
\newglossaryentry{yb}{type=\acronymtype, name={Y2}, description={foo asd asd asd asdbar}}
\newglossaryentry{z}{type=\acronymtype, name={Z}, description={foo asd asd asd asdbar}}

\newglossarystyle{super3colleft}{%
  \renewenvironment{theglossary}%
    {\tablehead{}\tabletail{}%
     \begin{supertabular}{@{}>{\bfseries}lp{\glsdescwidth}p{\glspagelistwidth}}}%
    {\end{supertabular}}%
  \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glsentryitem{##1}\glstarget{##1}{##2} & ##3 & ##5\\}%
  \renewcommand*{\glossarysubentryfield}[6]{%
     &
     \glssubentryitem{##2}%
     \glstarget{##2}{\strut}##4 & ##6\\}%
  \renewcommand*{\glsgroupskip}{ & &\\}%
}

\begin{document}
\printglossary[type=\acronymtype,style=super3colleft]
\end{document}

答案1

请提供完整最小示例。

您可以使用三列创建新样式supertabular。第一列是简短格式,第二列是描述,最后一列是页面。

要修改宽度,您必须像普通数组环境一样更改列的格式。

\usepackage{linegoal}
.....
 \newglossarystyle{super3colleft}{%
  \renewenvironment{theglossary}%
    {\tablehead{}\tabletail{}%
     \begin{supertabular}{@{}>{\bfseries}l@{\hspace*{3cm}p{\linegoal}@{}}}%
    {\end{supertabular}}%
  \renewcommand*{\glossaryheader}{}%
  \renewcommand*{\glsgroupheading}[1]{}%
  \renewcommand*{\glossaryentryfield}[5]{%
    \glsentryitem{##1}\glstarget{##1}{##2} & ##3 \\}%
  \renewcommand*{\glossarysubentryfield}[6]{%
     &
     \glssubentryitem{##2}%
     \glstarget{##2}{\strut}##4 \\}%
  \renewcommand*{\glsgroupskip}{ & \\}%
}

答案2

要关闭每个字母簇之间较大的垂直间隙,请更改:

\renewcommand*{\glsgroupskip}{ & &\\}%

到:

\renewcommand*{\glsgroupskip}{}% no extra line skip between clusters

\renewcommand{\arraystretch}{1.4}然后,您可以通过例如在调用之前直接使用来调整每个条目之间的垂直空间\printglossary

相关内容