为什么此投影仪幻灯片关于分段的枚举失败?

为什么此投影仪幻灯片关于分段的枚举失败?

我正在尝试使用以下代码\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}

相关内容