Beamer: Seções dentro do TOC sem frames, mas com o próximo tocsectionnumber

Beamer: Seções dentro do TOC sem frames, mas com o próximo tocsectionnumber

Relacionado em particular com a seguinte questão:

tex.stackexchange.com/questions/376836

Quero saber como obter o próximo número do toc para uma seção sem frames?

Para complicar um pouco mais: estou trabalhando com quadrados customizados para as seções do toc, conforme apresentado aqui:

tex.stackexchange.com/questions/422192

O melhor que pude fazer até agora é o seguinte 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}

Ficarei feliz em evitar, se possível, qualquer pacote adicional. 1 2

Responder1

Eu mesmo encontrei uma solução. No caso improvável de alguém estar interessado na minha pergunta - apresento a solução.

No entanto, é um pouco desajeitado e agradeço qualquer melhoria.

\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}

Como visto, alterei apenas a \immaddtocontents{...}seção posterior sem slides e imitei o section in toctemplate definido. Me deparo com problemas de cores, que resolvi de certas maneiras.

Precisei alterar os comandos de cores - \usebeamercolor[bg]{...}e também \color[fg]não funcionou por algum motivo.

As outras diferenças em relação ao código da pergunta são a [pausesections]opção after \tableofcontentse \onslide...inside \immaddtocontents{...}. Essas alterações são feitas apenas para obter a ordem de exibição que prefiro.

resposta 1 resposta2 resposta3

informação relacionada