s
如果首先使用复数形式的首字母缩略词,则在括号中的符号后打印一个,这是不希望的。例如,如果\glspl{a}
首先出现在任何使用之前,\gls{a}
则打印lattice constants (as)
而不是lattice constants (a)
。
如何解决这个问题?
答案1
假设这是这个问题的后续首次使用后隐藏命名法中的符号,我会参考那里的回答。
首先,请注意这是默认行为,我的答案中的代码并未改变它。
无论如何,如果您想改变这种行为,请用以下内容替换我答案最后一部分中的\makeatletter
和之间的代码:makeatother
\makeatletter
\def\@gls@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\edef\@glo@type{\glsentrytype{#2}}%
\def\@gls@link@opts{#1}%
\def\@gls@link@label{#2}%
\ifglsused{#2}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @display\endcsname
{\ifx\@glo@type\myacro\glsentrydesc{#2}\else\glsentrytext{#2}\fi}%
{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}%
}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @displayfirst\endcsname
{\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}%
}%
\ifglsused{#2}%
{%
\@gls@link[#1]{#2}{\@glo@text}%
}%
{%
\gls@checkisacronymlist\@glo@type
\ifthenelse
{\(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\)
\OR \NOT\boolean{glshyperfirst}
}%
{%
\@gls@link[#1,hyper=false]{#2}{\@glo@text}%
}%
{%
\@gls@link[#1]{#2}{\@glo@text}%
}%
}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
}
\def\@Gls@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\edef\@glo@type{\glsentrytype{#2}}%
\def\@gls@link@opts{#1}%
\def\@gls@link@label{#2}%
\def\glslabel{#2}%
\ifglsused{#2}%
{%
\protected@edef\@glo@text{%
\csname gls@\@glo@type @display\endcsname
{\ifx\@glo@type\myacro\glsentrydesc{#2}\else\glsentrytext{#2}\fi}%
{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}%
}%
{%
\protected@edef\@glo@text{%
\csname gls@\@glo@type @displayfirst\endcsname
{\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}}%
}%
\ifglsused{#2}%
{%
\@gls@link[#1]{#2}{%
\expandafter\makefirstuc\expandafter{\@glo@text}}%
}%
{%
\gls@checkisacronymlist\@glo@type
\ifthenelse
{%
\(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\)
\OR \NOT\boolean{glshyperfirst}%
}%
{%
\@gls@link[#1,hyper=false]{#2}{%
\expandafter\makefirstuc\expandafter{\@glo@text}}%
}%
{%
\@gls@link[#1]{#2}{%
\expandafter\makefirstuc\expandafter{\@glo@text}}%
}%
}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
}
\def\@GLS@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\edef\@glo@type{\glsentrytype{#2}}%
\def\@gls@link@opts{#1}%
\def\@gls@link@label{#2}%
\ifglsused{#2}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @display\endcsname
{\ifx\@glo@type\myacro\glsentrydesc{#2}\else\glsentrytext{#2}\fi}%
{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}%
}%
}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @displayfirst\endcsname
{\glsentryfirst{#2}}{\glsentrydesc{#2}}{\glsentrysymbol{#2}}{#3}%
}%
}%
\ifglsused{#2}%
{%
\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
}%
{%
\gls@checkisacronymlist\@glo@type
\ifthenelse
{%
\(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\)
\OR \NOT\boolean{glshyperfirst}}{%
\@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}%
}%
{%
\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
}%
}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
}
\def\@glspl@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\edef\@glo@type{\glsentrytype{#2}}%
\def\@gls@link@opts{#1}%
\def\@gls@link@label{#2}%
\ifglsused{#2}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @display\endcsname
{\ifx\@glo@type\myacro\glsentrydescplural{#2}\else\glsentryplural{#2}\fi}%
{\glsentrydescplural{#2}}{\glsentrysymbolplural{#2}}{#3}}%
}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @displayfirst\endcsname
{\ifx\@glo@type\myacro\glsentrydescplural{#2}\space(\glsentrytext{#2})%
\else\glsentryfirstplural{#2}\fi}%
{\glsentrydescplural{#2}}{\glsentrysymbolplural{#2}}{#3}}%
}%
\ifglsused{#2}%
{%
\@gls@link[#1]{#2}{\@glo@text}%
}%
{%
\gls@checkisacronymlist\@glo@type
\ifthenelse
{%
\(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\)
\OR \NOT\boolean{glshyperfirst}%
}%
{%
\@gls@link[#1,hyper=false]{#2}{\@glo@text}%
}%
{%
\@gls@link[#1]{#2}{\@glo@text}%
}%
}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
}
\def\@Glspl@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\edef\@glo@type{\glsentrytype{#2}}%
\def\@gls@link@opts{#1}%
\def\@gls@link@label{#2}%
\def\glslabel{#2}%
\ifglsused{#2}%
{%
\protected@edef\@glo@text{%
\csname gls@\@glo@type @display\endcsname
{\ifx\@glo@type\myacro\glsentrydescplural{#2}\else\glsentryplural{#2}\fi}%
{\glsentrydescplural{#2}}{\glsentrysymbolplural{#2}}{#3}}%
}%
{%
\protected@edef\@glo@text{%
\csname gls@\@glo@type @displayfirst\endcsname
{\ifx\@glo@type\myacro\glsentrydescplural{#2}\space(\glsentrytext{#2})%
\else\glsentryfirstplural{#2}\fi}%
{\glsentrydescplural{#2}}{\glsentrysymbolplural{#2}}{#3}}%
}%
\ifglsused{#2}%
{%
\@gls@link[#1]{#2}{%
\expandafter\makefirstuc\expandafter{\@glo@text}}%
}%
{%
\gls@checkisacronymlist\@glo@type
\ifthenelse
{%
\(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\)
\OR \NOT\boolean{glshyperfirst}%
}%
{%
\@gls@link[#1,hyper=false]{#2}{%
\expandafter\makefirstuc\expandafter{\@glo@text}}%
}%
{%
\@gls@link[#1]{#2}{%
\expandafter\makefirstuc\expandafter{\@glo@text}}%
}%
}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
}
\def\@GLSpl@#1#2[#3]{%
\glsdoifexists{#2}%
{%
\edef\@glo@type{\glsentrytype{#2}}%
\def\@gls@link@opts{#1}%
\def\@gls@link@label{#2}%
\ifglsused{#2}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @display\endcsname
{\ifx\@glo@type\myacro\glsentrydescplural{#2}\else\glsentryplural{#2}\fi}%
{\glsentrydescplural{#2}}{\glsentrysymbolplural{#2}}{#3}%
}%
}%
{%
\def\@glo@text{%
\csname gls@\@glo@type @displayfirst\endcsname
{\ifx\@glo@type\myacro\glsentrydescplural{#2}\space(\glsentrytext{#2})%
\else\glsentryfirstplural{#2}\fi}%
{\glsentrydescplural{#2}}{\glsentrysymbolplural{#2}}{#3}%
}%
}%
\ifglsused{#2}%
{%
\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
}%
{%
\gls@checkisacronymlist\@glo@type
\ifthenelse
{%
\(\boolean{@glsisacronymlist}\AND \boolean{glsacrfootnote}\)
\OR \NOT\boolean{glshyperfirst}%
}%
{%
\@gls@link[#1,hyper=false]{#2}{\MakeUppercase{\@glo@text}}%
}%
{%
\@gls@link[#1]{#2}{\MakeUppercase{\@glo@text}}%
}%
}%
\ifKV@glslink@local
\glslocalunset{#2}%
\else
\glsunset{#2}%
\fi
}%
}
\makeatother
这应该可以满足你的要求...