我想frame
这样重新定义:
\renewenvironment{frame}{
\begin{frame}{\bfseries{\sectiontitle}}
}{
\end{frame}
}
然后我可以:
\section{My section}
\begin{frame}
\begin{itemize}
this section
\end{itemize}
\end{frame}
但它会产生一个错误:
! TeX capacity exceeded, sorry [input stack size=5000].
\str_if_eq:nnTF ...\__str_if_eq:nn {\exp_not:n {#1
}}{\exp_not:n {#2}}=0\exp_...
l.49 \begin{frame}
No pages of output.
答案1
来自第 60 页的示例beameruserguide
\documentclass{beamer}
\newenvironment{slide}
{\begin{frame}[environment=slide]
\frametitle{\insertsection}}
{\end{frame}}
\begin{document}
\section{First section}
\begin{slide}
Text
\end{slide}
\begin{slide}
\framesubtitle{another slide}
Text text
\end{slide}
\end{document}
答案2
我认为实现你想要做的事情的最简单的方法是假设你不想要使用不同的环境名称,则根本不要使用 frametitle,而只使用标题,您可以随附添加/重新定义标题\setbeamertemplate
;\insertsection
除非您已经将标题用于其他内容(在这种情况下您可以添加它)。
\documentclass{beamer}
\setbeamertemplate{headline}{%
\vspace*{1cm}\hspace*{1cm}\Large\textcolor{blue}{\textbf{\insertsection}}%
}
\begin{document}
\section{First section}
\begin{frame}
This slide is in the first section.
\end{frame}
\section{Second section}
\begin{frame}
Now in second section.
\end{frame}
\begin{frame}
Still in second section.
\end{frame}
\end{document}