在 Beamer TOC 的任何位置显示未编号的部分

在 Beamer TOC 的任何位置显示未编号的部分

第 10.5 条LaTeX Beamer 手册指定生成目录的不同选项。其中之一是:

firstsection=⟨section number⟩指定哪个部分应编号为“1”。如果您有第一部分(如概述部分)不应接收编号,则此功能很有用。默认情况下不显示章节编号。要显示它们,您必须安装不同的目录模板。

有一个类似的选项lastsection。不过,就我而言,我需要中间有一个未编号的部分我的部分,不是开始或结束。以下是经过 Photoshop 处理的模型(a目录如果你愿意的话,我的意思就是:

补货

\section*如果您在答案中重新定义,这是可以接受的,因为我希望所有\sections 和\section*s 都显示在目录中,而\section*的唯一默认目的恰恰是不显示在目录中。因此,上述模型可能来自以下 MWE:

\documentclass{beamer}
\usetheme{Antibes}
\usebeamercolor{dolphin}

\begin{document}
    \begin{frame}
        \tableofcontents
    \end{frame}
    
    \section*{Intro}
    \section{First section}
    \section{Second section}
    \section*{Nope}
    \section{Third section}
    \section*{Outro}
    
    \begin{frame}   
    \end{frame}
\end{document}

答案1

以下代码引入了一个命令\nonumsec,该命令创建\section*并向文件添加一个条目.toc,最后一个参数设置为 0。这导致 Beamer(不知何故)不打印数字。添加条目的代码是从 Beamer 源代码复制而来的,特别是beamerbasesection.sty

可能会有副作用,因此请仔细测试。

梅威瑟:

\documentclass{beamer}
\usetheme{Antibes}
\usebeamercolor{dolphin}

\makeatletter
\newcommand{\nonumsec}[1]{%
\section*{#1}%
\addtocontents{toc}{\protect\beamer@sectionintoc{\the\c@section}{#1}{\the\c@page}{\the\c@part}%
        {0}}%
}
\makeatother

\begin{document}
    \begin{frame}
        \tableofcontents
    \end{frame}
    
    \nonumsec{Intro}
    \section{First section}
    \section{Second section}
    \nonumsec{Nope}
    \section{Third section}
    \nonumsec{Outro}
    
    \begin{frame}   
    \end{frame}
\end{document}

生成的 TOC 文件:

\beamer@sectionintoc {1}{Intro}{2}{0}{0}
\beamer@sectionintoc {2}{First section}{2}{0}{1}
\beamer@sectionintoc {3}{Second section}{2}{0}{2}
\beamer@sectionintoc {4}{Nope}{2}{0}{0}
\beamer@sectionintoc {5}{Third section}{2}{0}{3}
\beamer@sectionintoc {6}{Outro}{2}{0}{0}

PDF 输出与目录k-向上。

相关内容