beamer: So fügen Sie eine neue Option für die Frame-Umgebung hinzu

beamer: So fügen Sie eine neue Option für die Frame-Umgebung hinzu

In manchen Frames möchte ich den Titel auf der linken Seite des Frames gedreht haben. Dies kommt häufiger bei 16x9-Formaten vor.

Wie kann ich die Frame-Umgebung neu definieren, um eine Option hinzuzufügen, die mir dies ermöglicht? Wenn diese neue Option nicht verwendet wird, wird das ursprüngliche Frame-Verhalten angewendet.

Etwas wie das:

\documentclass{beamer}
\begin{document}

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

Bildbeschreibung hier eingeben

Es könnte auch eine Option zum Befehl \frametitle{} sein.

Obwohl ich dieses spezielle Problem mit einer neuen Variante des \frametitle-Befehls lösen könnte (was ich gerade mache), habe ich mehrere optionale Frame-Verhaltensweisen im Sinn, die ich mit Optionen ein- und ausschalten möchte. Beispiele sind: Textbreite vergrößern und Fußzeile unterdrücken. Ich suche also nach einem allgemeinen Mechanismus, um der \frame-Umgebung Optionen und optionales Verhalten hinzuzufügen und dabei alle Standardverhalten und vorhandenen Optionen wie „fragile“ beizubehalten. Wie würde ein solcher Mechanismus aussehen?

--Axel

Antwort1

Sie können die gleiche Technik verwenden wie inhttps://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}

verwandte Informationen