重新定义文档中的首字母缩略词

重新定义文档中的首字母缩略词

我想重新定义使用\acrfull宏时首字母缩略词的外观。现在它先显示首字母缩略词的含义,然后显示括号中的缩写,但我希望它以相反的方式显示 - 先显示缩写,然后显示括号中的含义。

如果我这样说

\newacronym{hsv}{HSV}{eng. Hue, Saturation, Value}

表明

... 色调、饱和度、值 (HSV) ...

我希望它看起来像

... HSV (色调、饱和度、明度) ...

是否可以仅对\acrfull宏执行这样的操作?

答案1

您可以重新定义\acrfullformat并交换参数:

\renewcommand{\acrfullformat}[2]{#2\space(#1)}

因此,以下 MWE

% arara: pdflatex: {synctex: yes}
% arara: makeglossaries
% arara: pdflatex: {synctex: yes}
% arara: pdflatex: {synctex: yes}

\documentclass{article}

\usepackage[acronym]{glossaries}

\renewcommand{\acrfullformat}[2]{#2\space(#1)}

\newacronym{hsv}{HSV}{eng. Hue, Saturation, Value}

\makeglossaries


\begin{document}

\noindent \acrfull{hsv}.

\printglossaries

\end{document} 

给出:

在此处输入图片描述


显然,前面的解决方案也会影响类似的命令\gls

如果您确实只希望命令具有该行为,\acrfull则可以将以下几行添加到序言中:

\makeatletter
\def\@acrfull#1#2[#3]{%
  \acrlinkfullformat{\@acrshort}{\@acrlong}{#1}{#2}{#3}%
}
\makeatother

这样,以下 MWE

% arara: pdflatex: {synctex: yes}
% arara: makeglossaries
% arara: pdflatex: {synctex: yes}
% arara: pdflatex: {synctex: yes}

\documentclass{article}

\usepackage[acronym]{glossaries}

\makeatletter
\def\@acrfull#1#2[#3]{%
  \acrlinkfullformat{\@acrshort}{\@acrlong}{#1}{#2}{#3}%
}
\makeatother

\newacronym{hsv}{HSV}{eng. Hue, Saturation, Value}

\makeglossaries


\begin{document}

\noindent \gls{hsv} 

\noindent \acrfull{hsv}

\printglossaries

\end{document} 

仅对 给出所需结果\acrfull

在此处输入图片描述

相关内容