乳胶投射器:防止在一次出现TOC

时间:2010-05-08 20:18:44

标签: latex beamer

通常我使用

\AtBeginSection[]
{
  \begin{frame}<beamer>{Gliederung}
    \tableofcontents[currentsection]
  \end{frame}
}

在我的序言中,在新部分开始之前实现该目标,显示TOC,并突出显示现在的开始部分。

在我正在准备的谈话中,我有一个特殊部分,我不希望这种行为。之前部分的过渡应该是“沉默的”。所有其他部分应该像现在一样开始。

我相信一定是可能的。

2 个答案:

答案 0 :(得分:11)

在投影仪手册中,命令\AtBeginSection解释如下:

\AtBeginSection[special star text]{text}

如果使用星号命令\section*声明特殊部分,则不会显示内容部分表。首先想到这个解决方案,但可能会改变文档中部分的表示方式。

另一种方法(实验,我从未测试过)将使用布尔参数。如果设置了布尔参数,则不会打印代码。然后你正常声明你的部分,但你在代码周围设置了布尔值。

这是一个代码示例应该可以解决这个问题:

\RequirePackage{ifthen} % package required

\newboolean{sectiontoc}
\setboolean{sectiontoc}{true} % default to true

\AtBeginSection[]
{
  \ifthenelse{\boolean{sectiontoc}}{
    \begin{frame}<beamer>{Gliederung}
      \tableofcontents[currentsection]
    \end{frame}
  }
}

\newcommand{\toclesssection}[1]{
  \setboolean{sectiontoc}{false}
  \section{#1}
  \setboolean{sectiontoc}{true}
}

然后在文档中,只需将您的特殊部分声明为\toclesssection{My section without the toc}

答案 1 :(得分:0)

另一种方法是暂时更改\AtBeginSection的内容:

\documentclass{beamer}


\AtBeginSection[]
{
  \begin{frame}<beamer>{Gliederung}
    \tableofcontents[currentsection]
  \end{frame}
}


\begin{document}

\section{section with toc}  
\begin{frame}
    abc
\end{frame} 

\begingroup
    \AtBeginSection[]{}
    \section{section without toc}   
    \begin{frame}
        abc
    \end{frame} 
\endgroup

\section{section with toc}  
\begin{frame}
    abc
\end{frame} 

\end{document}