在我正在写的一篇论文中,我想输入一个使用的首字母缩略词列表,我正尝试使用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
你问的问题有点多……
要始终显示首字母缩略词的缩写形式,必须在使用命令
\glsunsetall
定义所有首字母\newacronym
缩略词后使用该命令。如果你希望只对特定的首字母缩略词使用这种行为,你可以将可选参数放入
first=\glstext{<acronym>}
其中\newacronym
,如下所示\newacronym[first=\glstext{AAA}]{AAA}{aaa}{Abcde Abcde Abcde}
要按照您描述的方式打印首字母缩略词,您必须编写以下行
\renewcommand*{\glstextformat}[1]{\textsf{\textsc{#1}}}
请注意,您不能
\MakeLowercase
在这里使用,因为该命令引用了首字母缩略词标签。为了实现您想要的效果,您必须将第二个参数写成小写\newacronym
,例如\newacronym{AAA}{aaa}{Abcde Abcde Abcde}
如果希望缩略词列表中的字体形状相同,则必须编写以下行
\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}
输出结果如下: