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}

相關內容