beamer:如何为框架环境添加新选项

beamer:如何为框架环境添加新选项

在某些框架中,我希望标题在框架的左侧旋转。这种情况在 16x9 格式中更常见。

我如何重新定义框架环境以添加允许我执行此操作的选项。如果不使用此新选项,则应用原始框架行为。

像这样:

\documentclass{beamer}
\begin{document}

\begin{frame}[rotatetitle]
  \frametitle{My Rotated Title}
\end{frame}
\end{document}

在此处输入图片描述

它也可以是 \frametitle{} 命令的一个选项。

虽然我可以使用 \frametitle 命令的新变体(我现在正在这样做)解决这个特定问题,但我考虑了几种可选的框架行为,我想使用选项来打开和关闭它们。例如:增加文本宽度并抑制脚线。所以我正在寻找一种通用机制来向 \frame 环境添加选项和可选行为,同时仍保留所有默认行为和现有选项,例如脆弱。这样的机制是什么?

--阿克塞尔

答案1

您可以使用与https://topanswers.xyz/tex?q=1163#a1370

\documentclass[aspectratio=169,t]{beamer}

\usepackage{tikz}

\defbeamertemplate*{frametitle}{regular}{\insertframetitle}
\defbeamertemplate{frametitle}{rotated}{%
\begin{tikzpicture}[remember picture,overlay]
  \node[rotate=90,anchor=north east] at (current page.north west) {\insertframetitle};
\end{tikzpicture}%
}


\makeatletter
\providebool{rotatedframe}
\define@key{beamerframe}{rotated}[true]{
  \booltrue{rotatedframe}
  \begingroup
  \setbeamertemplate{frametitle}[rotated]
}

\apptocmd{\beamer@reseteecodes}{%
  \ifbool{rotatedframe}{%
    \endgroup
    \boolfalse{rotatedframe}
  }{}
}{}{}
\makeatother

\begin{document}

\begin{frame}
\frametitle{normal title}
This page shall have the regular frametitle
\end{frame}

\begin{frame}[rotated]
\frametitle{rotated title}
This page shall have the special frametitle
\end{frame}

\begin{frame}
\frametitle{normal title}
This page shall have the regular frametitle
\end{frame}
\end{document}

相关内容