我在使用词汇表包时遇到了问题。我使用 sharelatex。
当我使用词汇表术语(第一个和其他)时,输出文档中会出现不需要的空格。
这是我使用的代码:
主要的
\usepackage[acronym, translate=babel, nopostdot]{glossaries}
\makeglossaries
% External files
\loadglsentries{Z_glossary}
\loadglsentries{Z_afkortingen}
% Not in table of contents
\glstocfalse
% First appearance in italic
\defglsdisplayfirst[\glsdefaulttype]{\textit{#1}}
词汇表
\newglossaryentry{workflowpattern}%
{%
name={Workflowpattern},
description={Blablabla},
text={workflowpattern},
plural={workflowpatterns},
first={workflowpattern},
firstplural={workflowpatterns},
}
文本
zijn de \glspl{workflowpattern} en beschrijven
结果如下:
答案1
不需要的空间来自\defglsdisplayfirst
glossaries.sty 2014/01/20 v4.03,请参阅标有以下内容的行% <==
:
\newcommand*{\defglsdisplayfirst}[2][\glsdefaulttype]{%
\GlossariesWarning{\string\defglsdisplayfirst\space is now obsolete.^^J
Use \string\defglsentryfmt\space instead}%
\expandafter\def\csname gls@#1@displayfirst\endcsname##1##2##3##4{#2}%
\edef\@gls@doentrydef{%
\noexpand\defglsentryfmt[#1]{%
\noexpand\ifcsdef{gls@#1@display}%
{%
\noexpand\@@gls@default@entryfmt
{\noexpand\csuse{gls@#1@displayfirst}}
{\noexpand\csuse{gls@#1@display}}%
}%
{%
\noexpand\@@gls@default@entryfmt
{\noexpand\csuse{gls@#1@displayfirst}}%
{\noexpand\glsdisplay} % <==
}%
}%
}%
\@gls@doentrydef
}
作为解决方法,定义不包含不需要的空间:
\usepackage[...]{glossaries}
\makeatletter
\renewcommand*{\defglsdisplayfirst}[2][\glsdefaulttype]{%
\GlossariesWarning{\string\defglsdisplayfirst\space is now obsolete.^^J
Use \string\defglsentryfmt\space instead}%
\expandafter\def\csname gls@#1@displayfirst\endcsname##1##2##3##4{#2}%
\edef\@gls@doentrydef{%
\noexpand\defglsentryfmt[#1]{%
\noexpand\ifcsdef{gls@#1@display}%
{%
\noexpand\@@gls@default@entryfmt
{\noexpand\csuse{gls@#1@displayfirst}}
{\noexpand\csuse{gls@#1@display}}%
}%
{%
\noexpand\@@gls@default@entryfmt
{\noexpand\csuse{gls@#1@displayfirst}}%
{\noexpand\glsdisplay}% without unwanted space
}%
}%
}%
\@gls@doentrydef
}
\makeatother
答案2
使用
\defglsdisplayfirst[\glsdefaulttype]{\textit{#1}\ignorespaces}