![如何在 Beamer 中使用缩略词包](https://linux22.com/image/428107/%E5%A6%82%E4%BD%95%E5%9C%A8%20Beamer%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%BC%A9%E7%95%A5%E8%AF%8D%E5%8C%85.png)
对于基于 beamer 的演示文稿,我想重复使用我在论文中创建的一些图形/表格/图解。这些图形/表格/图解存储在专用文件中,以便我可以单独处理它们(减少编译时间并始终拥有 MWE)。
因此,将这些内容纳入演示文稿中相当容易。在论文中,我使用了“acronym”包来管理首字母缩略词,这需要一个专门的部分来显示使用的首字母缩略词(由于排序,首字母缩略词定义也在外部文件中)。我想避免出现首字母缩略词定义,但这似乎会破坏使用首字母缩略词的图形/表格/图表。
添加首字母缩略词部分解决了首字母缩略词的问题,但看起来不太好看。“隐藏”带有首字母缩略词的页面实际上也不起作用......(在 MWE 中,首字母缩略词在框架标题中用作示例,但它们可以位于任何地方。)
有任何想法吗:
\documentclass{beamer}
\usepackage[printonlyused]{acronym}
\title{Title}
\author{Author}
\institute{An institute}
\mode<presentation>
\usetheme{Boadilla}
\begin{document}
% this would work but shows the acronyms
%\begin{frame}
% \begin{acronym}[~~~~]
% \acro{TLA}{Three Letter Acronym}
% \acused{TLA}
% \end{acronym}
%\end{frame}
% this hides the acronym page but doesn't work otherwise
\begin{frame}<presentation:0>[noframenumbering]
\begin{acronym}[~~~~]
\acro{TLA}{Three Letter Acronym}
\acused{TLA}
\end{acronym}
\end{frame}
\begin{frame}
\frametitle{\ac{TLA} used here}
\end{frame}
\end{document}
答案1
\acrodef
在序言中而不是在环境\acro
内部aycronym
以及\acs
而不是的组合\ac
应该会产生预期的输出。
\documentclass{beamer}
\usepackage{acronym}
\title{Title}
\author{Author}
\institute{An institute}
\mode<presentation>
\usetheme{Boadilla}
\acrodef{TLA}{Three Letter Acronym}
\begin{document}
\begin{frame}
\frametitle{\acs{TLA} used here}
\end{frame}
\end{document}
答案2
根据@leandriis 使用 acrodef 的回答,我想出了这个解决方案。
看来\acro
宏仅在环境中可用,acronym
因此\newcommand
使用它而不是\renewcommand
将其映射到acrodef
。为什么不直接使用\acrodef
?所有\acro
定义都已在外部文件中。重新定义命令可避免更改共享文件。
由于\acused
可以在任何地方使用,因此可以模仿论文中使用的缩写。使用该\acused
命令将强制使用稍后使用的特定缩写的缩写版本。
\documentclass{beamer}
\usepackage{acronym}
\title{Title}
\author{Author}
\institute{An institute}
\mode<presentation>
\usetheme{Boadilla}
\newcommand{\acro}[2]{\acrodef{#1}{#2}}
\acro{TLA}{Three Letter Acronym}
\acused{TLA}
\begin{document}
\begin{frame}
\titlepage
\end{frame}
\begin{frame}
\frametitle{\ac{TLA} used here}
\end{frame}
\end{document}