Beamer:目录中的部分没有框架,但有下一个目录部分编号

Beamer:目录中的部分没有框架,但有下一个目录部分编号

尤其与以下问题相关:

tex.stackexchange.com/questions/376836

我想知道如何获取没有任何框架的部分的目录中的下一个编号?

让问题变得更加复杂一点的是:我正在使用定制的方块来制作目录中的各个部分,如下所示:

tex.stackexchange.com/questions/422192

到目前为止我能做的最好的就是以下 MWE,

\documentclass{beamer}

\defbeamertemplate{section in toc}{my squares toc}
{\leavevmode\leftskip=1.75ex%
    \llap{%
         \usebeamerfont*{section number projected}%
         \usebeamercolor[bg]{section number projected}%
         \vrule width2.9ex height2.32ex depth.78ex%
         \hskip-2.8ex%
         \hbox to2.7ex{\hfil\color{fg}\inserttocsectionnumber\hfil}}%
    \kern1.5ex\inserttocsection\par}
\setbeamertemplate{section in toc}[my squares toc]

\makeatletter
\newcommand\immaddtocontents[1]{{%
        \let\protect\@unexpandable@protect
        \immediate\write\@auxout{\noexpand\@writefile{toc}{#1}}%
}}
\makeatother

\begin{document}

\begin{frame}{TOC}
    \tableofcontents
\end{frame}

\section{The first section}

\begin{frame}
Some text.
\end{frame}

\section{The second section}

\immaddtocontents{\vfill \leavevmode\leftskip=1.75ex \protect\usebeamercolor[fg]{section in toc}
    \kern1.5ex \insertsection \par}

\end{document}

如果可能的话,我很乐意避免任何额外的包裹。 1 2

答案1

我自己找到了一个解决方案。万一有人对我的问题感兴趣,我就提出解决方案。

然而,它有点笨重,我很欣赏任何改进。

\documentclass{beamer}

\defbeamertemplate{section in toc}{my squares toc}
{\leavevmode\leftskip=1.75ex%
    \llap{%
        \usebeamerfont*{section number projected}%
        \usebeamercolor[bg]{section number projected}%
        \vrule width2.9ex height2.32ex depth.78ex%
        \hskip-2.8ex%
        \hbox to2.7ex{\hfil\color{fg}\inserttocsectionnumber\hfil}}%
    \kern1.5ex\inserttocsection\par}
\setbeamertemplate{section in toc}[my squares toc]

\makeatletter
\newcommand\immaddtocontents[1]{{%
        \let\protect\@unexpandable@protect
        \immediate\write\@auxout{\noexpand\@writefile{toc}{#1}}%
}}
\makeatother

\begin{document}

\begin{frame}{TOC}
    \tableofcontents[pausesections]
\end{frame}

\section{The first section}

\begin{frame}
Some text.
\end{frame}

\section{The second section}

\immaddtocontents{\onslide<2->{\vfill \leavevmode\leftskip=1.75ex \protect\usebeamercolor[fg]{section in toc}
         \llap{%
             \usebeamerfont*{section number projected}%
            %\color{my color background}%       %\usebeamercolor[fg or bg]{beamer-color name} does not work
             \vrule width2.9ex height2.32ex depth.78ex%
             \hskip-2.8ex%
             \hbox to2.7ex{\hfil\color{white}\insertsectionnumber\hfil}}% %color{fg} changed to \color{white}
        \kern1.5ex \insertsection \par}}

\end{document}

正如所见,我只更改了\immaddtocontents{...}没有幻灯片的部分,并模仿了定义的section in toc模板。我遇到了颜色问题,我用某种方式修复了这些问题。

我需要更改颜色命令-\usebeamercolor[bg]{...}\color[fg]由于某种原因,它不起作用。

问题中的代码与代码的其他区别是[pausesections]after\tableofcontents\onslide...inside选项\immaddtocontents{...}。这些更改只是为了获得我喜欢的显示顺序。

答案1 答案2 答案3

相关内容