词汇表:使用 ACRONYM(DESC)打印首次出现的内容

词汇表:使用 ACRONYM(DESC)打印首次出现的内容

glossaries有没有办法改变通过 定义包中首字母缩略词时首次出现时打印的方式\newacronym{cd}{CD}{compact disk}。目前,我正在使用以下方法来实现它:

\newglossaryentry{BLAS}{%
  type=\acronymtype, 
  name={BLAS}, 
  description={Basic Linear Algebra Subprograms}, 
  first={\glstext*{BLAS} (\glsdesc*{BLAS})}%
}

这种方法可行,但效果还不够理想,因为我需要特别设置 -item first。还有其他想法吗?

答案1

您可以使用它\defglsdisplayfirst来更改首次引用首字母缩略词时所采用的格式:

\documentclass{article}

\usepackage{glossaries}[2011/04/12]

\AtBeginDocument{%
  \defglsdisplayfirst[\acronymtype]{%
    \glsentryshort{\glslabel} (\glsentrylong{\glslabel})#4%
  }%
}

\newacronym{BLAS}{BLAS}{Basic Linear Algebra Subprograms}

\makeglossaries

\begin{document}

\printglossary

\noindent
The \gls{BLAS} are \ldots

\end{document}

输出结果为:

答案2

如果你看一下部分13.3 定义自定义缩写样式glossaries文档,您就会找到您所需要的。

此代码的示例可以在以下位置找到:http://archive.cs.uu.nl/mirror/CTAN/macros/latex/contrib/glossaries/samples/sample-custom-acronym.tex

答案3

我遇到了一些问题glsdisplayfirst(缩写词后有多余的空格)。这是我使用newacronymstyle(基于glossaries官方示例代码)的解决方案示例自定义缩略词.tex):

Latex 输出

\documentclass[hidelinks]{report}
\usepackage{hyperref}
\usepackage[acronym]{glossaries}

%define new style:
\newacronymstyle{custom-fn}% new style name
{% Check for long form in case of a mixed glossary
  \ifglshaslong{\glslabel}{\glsgenacfmt}{\glsgenentryfmt}%
}%
{% Style definitions:
 \glshyperfirstfalse
 % Redefine the commands used by \glsgenacfmt on first use:
  \renewcommand*{\genacrfullformat}[2]{%
   \glsentryshort{##1} (\glsentrylong{##1})##2%
  }%
  \renewcommand*{\Genacrfullformat}[2]{%
   \Glsentryshort{##1} (\Glsentrylong{##1})##2%
  }%
  \renewcommand*{\genplacrfullformat}[2]{%
   \glsentryshortpl{##1} (\glsentrylongpl{##1})##2%
  }%
  \renewcommand*{\Genplacrfullformat}[2]{%
   \Glsentryshortpl{##1} (\Glsentrylongpl{##1})##2%
  }%
}

% Now set the new acronym style (to override the default style)
\setacronymstyle{custom-fn}

% Set an appropriate glossary style:
\setglossarystyle{altlist}

% Now define the acronyms (must be done after setting the custom
% style)
\newacronym{blas}{BLAS}{Basic Linear Algebra Subprograms}
\makeglossaries

\begin{document}
%\printglossaries

\noindent
First occurence of \gls{blas}.

\noindent
And second occurence of \gls{blas}.


\end{document}

相关内容