我正在尝试使用以下代码\frametitle beamer 中的章节标题
\documentclass{beamer}
\usetheme{Berkeley}
\newenvironment{slide}[1]
{\begin{frame}[environment=slide]
\frametitle{\insertsection-#1}}
{\end{frame}}
\begin{document}
\begin{slide}
\begin{enumerate}
\item lorem
\end{enumerate}
\end{slide}
\end{document}
但出现错误
! LaTeX Error: Lonely \item--perhaps a missing list environment.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.15 \end{slide}
答案1
slide
这里的环境定义需要标题和参数。因此,这里\begin
被视为参数,我们没有列表开始并且\item
放错了位置(如错误所示)。您可以通过提供一些东西来修复
\documentclass{beamer}
\usetheme{Berkeley}
%
\newenvironment{slide}[1]
{\begin{frame}[environment=slide]
\frametitle{\insertsection-#1}}
{\end{frame}}
\begin{document}
\begin{slide}{Foo}
\begin{enumerate}
\item lorem
\end{enumerate}
\end{slide}
\end{document}
如果不需要框架标题,则完全放弃该参数
\documentclass{beamer}
\usetheme{Berkeley}
%
\newenvironment{slide}
{\begin{frame}[environment=slide]
\frametitle{\insertsection}}
{\end{frame}}
\begin{document}
\begin{slide}
\begin{enumerate}
\item lorem
\end{enumerate}
\end{slide}
\end{document}
答案2
无需以下操作即可轻松完成newenvironment
:
\documentclass{beamer}
\usepackage{xpatch}
\makeatletter
\patchcmd\beamer@@tmpl@frametitle{\insertframetitle}{\insertsection{} -- \insertframetitle}{}{}
\makeatother
\begin{document}
\section{Sec shun 2}
\begin{frame}{My title 2}
\begin{enumerate}
\item lorem
\end{enumerate}
\end{frame}
\end{document}