Beamer:TOC 內的部分沒有框架,但有下一個 tocsectionnumber

Beamer:TOC 內的部分沒有框架,但有下一個 tocsectionnumber

特別與以下問題相關:

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

相關內容