我想重新定义使用\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
: