使用 Beamer 的词汇表(缩写)

使用 Beamer 的词汇表(缩写)

我想使用 Beamer 演示文稿中的词汇表包来显示首字母缩略词。但是,在使用 Beamer 的覆盖机制时,我遇到了麻烦。

带有叠加层的幻灯片上的首字母缩略词(首次使用)的长格式将打印在第一个叠加层上,但随后会在该幻灯片的后续叠加层上显示其短格式。这看起来不对,因为它会在叠加层之间更改文本,而这些文本原本应该在整个幻灯片(跨叠加层)上显示为静态的。所以,我想我希望词汇表在首字母缩略词首次出现时打印其长格式,但在所有连续叠加层上都显示该首次出现。

我举一个简单的例子来说明我的意思:

\documentclass{beamer}

\usepackage[acronym]{glossaries}
\newacronym{AMA}{AMA}{a meaningless acronym}

\begin{document}

\begin{frame}
  \begin{itemize}
  \item<1-> The first occurrence of the acronym \gls{AMA}.
  \item<1-> The second occurence of the acronym \gls{AMA}.
  \item<2-> Something else.
  \end{itemize}
\end{frame}

\end{document}

如您所见,问题在于,第一个出现的首字母缩略词在第二个覆盖层上以短格式打印。我猜这可能很难跟踪,因为首字母缩略词(此处)实际上必须以“长-短-长-短”格式打印在两个覆盖层上。

能做到吗?如何做到?

答案1

如果你知道这肯定是第一次出现,你可以明确使用\glsfirst而不是\gls。像这样:

\documentclass{beamer}

\usepackage[acronym]{glossaries}
\newacronym{AMA}{AMA}{a meaningless acronym}

\begin{document}

\begin{frame}
  \begin{itemize}
  \item<1-> The first occurrence of the acronym \glsfirst{AMA}.
  \item<1-> The second occurrence of the acronym \glstext{AMA}.
  \item<2-> Something else.
  \end{itemize}
\end{frame}
\glsunset{AMA}

\end{document}

编辑:这是另一种方法:

\documentclass{beamer}

\usepackage[acronym]{glossaries}
\newacronym{AMA}{AMA}{a meaningless acronym}

\begin{document}

\ifglsused{AMA}
 {\newcommand{\doAMA}{\gls{AMA}}}
 {\newcommand{\doAMA}{\glsfirst{AMA}\glsunset{AMA}}}

\begin{frame}
  \begin{itemize}
  \item<1-> The first occurrence of the acronym \doAMA.
  \item<1-> The second occurrence of the acronym \gls{AMA}.
  \item<2-> Something else.
\end{itemize}
\end{frame}

\end{document}

答案2

我相信这\acrfull{AMA}就是现在所需要的一切。

\documentclass{beamer}

\usepackage[acronym]{glossaries}
\newacronym{AMA}{AMA}{a meaningless acronym}

\makeglossaries

\begin{document}

\begin{frame}
  \begin{itemize}
  \item<1-> The first occurrence of the acronym \acrfull{AMA}.
  \item<2-> The second occurence of the acronym \gls{AMA}.
  \item<3-> Something else.
  \end{itemize}
\end{frame}

\end{document}

对我有用,位于第 164 页glossaries.sty 用户手册

相关内容