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.
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 toc
template 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 \tableofcontents
e \onslide...
inside \immaddtocontents{...}
. Essas alterações são feitas apenas para obter a ordem de exibição que prefiro.