我想使用 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 用户手册。