重新定义缩略词(词汇表)的风格

重新定义缩略词(词汇表)的风格

在我正在写的一篇论文中,我想输入一个使用的首字母缩略词列表,我正尝试使用glossaries包来实现。问题在于它们出现的首字母缩略词的样式。可编译的代码如下:

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

\documentclass{article}

\usepackage{glossaries}
\usepackage{etoolbox}

\DeclareRobustCommand*{\acronimo}[1]{%
  \mbox{\sffamily\scshape\MakeLowercase{#1}}}

\makeglossaries
\newacronym{AAA}{AAA}{Abcde Abcde Abcde}

\begin{document}

\gls{AAA}

\printglossaries

\end{document}

我想获取所有缩写形式的首字母缩略词(实际上是首字母缩略词,没有括号),也是第一次使用\gls.我还希望这个首字母缩略词具有由命令定义的样式\acronym。当然,首字母缩略词列表,每个缩略词旁边都必须显示其描述(在我的示例中为“Abcde Abcde Abcde”)。你能做到吗?有谁可以帮我吗?

答案1

你问的问题有点多……

  1. 要始终显示首字母缩略词的缩写形式,必须在使用命令\glsunsetall定义所有首字母\newacronym缩略词后使用该命令。

    如果你希望只对特定的首字母缩略词使用这种行为,你可以将可选参数放入first=\glstext{<acronym>}其中\newacronym,如下所示

    \newacronym[first=\glstext{AAA}]{AAA}{aaa}{Abcde Abcde Abcde}
    
  2. 要按照您描述的方式打印首字母缩略词,您必须编写以下行

    \renewcommand*{\glstextformat}[1]{\textsf{\textsc{#1}}}
    

    请注意,您不能\MakeLowercase在这里使用,因为该命令引用了首字母缩略词标签。为了实现您想要的效果,您必须将第二个参数写成小写\newacronym,例如

    \newacronym{AAA}{aaa}{Abcde Abcde Abcde}
    
  3. 如果希望缩略词列表中的字体形状相同,则必须编写以下行

    \renewcommand{\glsnamefont}[1]{\textsf{\textsc{\mdseries #1}}}
    

最终,以下 MWE

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

\documentclass{article}

\usepackage[acronym]{glossaries}
\usepackage{etoolbox}

\DeclareRobustCommand*{\acronimo}[1]{%
  \mbox{\sffamily\scshape\MakeLowercase{#1}}}

\renewcommand*{\glstextformat}[1]{\textsf{\textsc{#1}}}
\renewcommand{\glsnamefont}[1]{\textsf{\textsc{\mdseries #1}}}

\makeglossaries
\newacronym{AAA}{aaa}{Abcde Abcde Abcde}
\glsunsetall

\begin{document}

\noindent First use: \gls{AAA}, and second use: \gls{AAA}.

\printglossaries

\end{document} 

输出结果如下:

在此处输入图片描述

相关内容