我发现投影仪模板我想使用。但是,它编译时
!LaTeX 错误:命令 \beamer@@tmpop@section page@default 已定义。或名称 \end... 非法,请参阅手册第 192 页。
错误可能位于以下某个位置。您能找到它吗?
\usecolortheme{crane}
\setbeamerfont{section title}{parent=title}
\setbeamercolor{section title}{parent=titlelike}
\defbeamertemplate*{section page}{default}[1][]
{
\centering
\begin{beamercolorbox}[sep=8pt,center,#1]{section title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
}
\newcommand*{\sectionpage}{\usebeamertemplate*{section page}}
\newcommand{\comment}[1]{}
%include polycode.fmt
\begin{document}
\title{Practical introduction to Agda}
编辑:有一个证人模板可能有效
答案1
据我所知,模板添加的某些代码除了导致错误外,什么也不做。其他部分确实尝试做一些事情,但方式不正确。这意味着它们会导致错误,并且可能没有任何区别,具体取决于 TeX 对错误的响应。
让我们看看它能做什么...
\setbeamerfont{section title}{parent=title}
默认是什么?
\setbeamerfont{section title}{size=\Large,parent=title}
好的。这样可以将节标题设置为与演示文稿标题相同大小的字体,而不是切换到\Large
。如果您需要,这样做是可以的。
\setbeamercolor{section title}{parent=titlelike}
默认是什么?
\setbeamercolor{section title}{parent=titlelike}
因此模板中的代码不执行任何操作。然而,它是无害的。它只是毫无意义。
\defbeamertemplate*{section page}{default}[1][]
{
\centering
\begin{beamercolorbox}[sep=8pt,center,#1]{section title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
}
默认是什么?
\defbeamertemplate*{section page}{default}[1][]
{
\begingroup
\centering
{\usebeamerfont{section name}\usebeamercolor[fg]{section name}\sectionname~\insertsectionnumber}
\vskip1em\par
\begin{beamercolorbox}[sep=12pt,center,#1]{part title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
\endgroup
}
因此,模板会忽略由 定义的任何标题(\part{}
如果有),减少间隔并Section <Number>
从节标题上方消除 。所以这试图做一些事情。然而,它以错误的方式做到了这一点并导致错误。此外,这些错误意味着 Beamer 至少部分忽略了它试图实现的更改:
如果您想要这些更改,请有效地进行并避免错误:
\defbeamertemplate*{section page}{mine}[1][]
{
\centering
\begin{beamercolorbox}[sep=8pt,center,#1]{section title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
}
\usebeamertemplate{mine}
但请注意,模板不会尝试改变小节标题页:
因此,您的演示文稿的格式会有些不一致 - 这可能就是设计的一部分。
\newcommand*{\sectionpage}{\usebeamertemplate*{section page}}
这是默认设置:
\def\sectionpage{\usebeamertemplate*{section page}}
因此,此代码会创建一个与现有命令同名的新命令,但由于会导致错误,因此无法运行,但如果运行成功,其结果将与原始命令完全相同。太棒了。
去模板化代码:
\documentclass{beamer}
\usecolortheme{crane}
\newcommand{\comment}[1]{}
\begin{document}
\title{Practical introduction to Agda}
\begin{frame}
\titlepage
\end{frame}
\section{Cooking without an Arga}
\begin{frame}
\sectionpage
\end{frame}
\subsection{The gas cooker}
\begin{frame}
\subsectionpage
\end{frame}
\end{document}
去模板化输出:
修正模板代码:
\setbeamerfont{section title}{parent=title}
\defbeamertemplate*{section page}{mine}[1][]
{
\centering
\begin{beamercolorbox}[sep=8pt,center,#1]{section title}
\usebeamerfont{section title}\insertsection\par
\end{beamercolorbox}
}
\usebeamertemplate{mine}
\newcommand{\comment}[1]{}
修正了(技术上 - 而非美学上)模板输出: