当我将首字母缩略词列表从 改为 样式时,我遇到了一个奇怪的问题long
。longragged
以下是说明示例:
\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
}
}