词汇表,glossary-longragged:重新定义 \glossaryentryfield 的问题

词汇表,glossary-longragged:重新定义 \glossaryentryfield 的问题

当我将首字母缩略词列表从 改为 样式时,我遇到了一个奇怪的问题longlongragged以下是说明示例:

\documentclass{article}

\usepackage[acronym,nomain,sanitize={description=false,symbol=false}]{glossaries}
\usepackage{glossary-longragged}
\makeglossaries

\newglossarystyle{longraggeduc}{%
%  \glossarystyle{long}%  <-- works
  \glossarystyle{longragged}%  <-- does not work
  \renewcommand*\glossaryentryfield[5]{%
    \glstarget{##1}{##2} & \makefirstuc{##4}##3\glspostdescription\space##5\\
  }
}

\newacronym{acr:abc}{ABC}{a b c}
\newacronym{acr:def}{DEF}{d e f}

\begin{document}
\gls{acr:abc} \gls{acr:def}

\printglossary[type=\acronymtype,style=longraggeduc,nonumberlist=true]
\end{document}

我重新定义是\glossaryentryfield因为我需要一种特殊的样式,包括描述首字母的大写。这些东西与样式兼容long,但与样式不兼容longragged(参见注释行)。

LaTeX ( pdflatex) 投诉

! Extra alignment tab has been changed to \cr.

在处理.acr生成的文件时makeglossaries

我有点被这个问题难住了,因为我无法确定原因。有什么想法吗?

答案1

longragged使用\raggedright,它重新定义了\\和 这意味着您不能使用\\来结束制表行。请\tabularnewline改用:

\\newglossarystyle{longraggeduc}{%
%  \glossarystyle{long}%  <-- works
  \glossarystyle{longragged}%  <-- does not work
  \renewcommand*\glossaryentryfield[5]{%
    \glstarget{##1}{##2} & \makefirstuc{##4}##3\glspostdescription\space##5\tabularnewline
  }
}

相关内容