重新定义 Beamer 框架环境

重新定义 Beamer 框架环境

我想重新定义 Beamer 的框架环境,以提供不同的模板作为主题的一部分。但是,我在从该代码内部访问 Beamer 的变量时遇到了一些问题。

\documentclass{beamer}
\usepackage{tikz}
\title{Example}

\let\oldframe\frame
\let\endoldframe\endframe
\renewenvironment{frame}
{\oldframe%
\begin{tikzpicture}[remember picture,overlay]%
  {\node[draw,anchor=west,text width=.6\textwidth] at (1,0) {\insertframetitle};}%
\end{tikzpicture}}
{\endoldframe}

\begin{document}

\begin{frame}
  \frametitle{My Title}
\end{frame}

\end{document}

这不会在文本框内产生任何文本。 例子.pdf

但是,如果我用一些固定文本替换“\insertframetitle”,它就可以起作用。 在此处输入图片描述

为什么该变量在我的环境中不可用?

答案1

我认为此命令只能在 beamer 模板内部使用。无论如何,重新定义框架环境不是一个好主意。相反,请尝试使用 beamer 模板命令更改样式(您可能需要调整间距):

\setbeamercolor{frametitle}{fg=black} 
\setbeamertemplate{frametitle}{
  \vspace{4cm}
  \begin{tikzpicture}[remember picture,overlay]%
  {\node[draw,anchor=west,text width=.6\textwidth] at (1,0) {\normalsize \insertframetitle};}%
  \end{tikzpicture}
}

相关内容