Passen Sie das Inhaltsverzeichnis im Beamer an

Passen Sie das Inhaltsverzeichnis im Beamer an

Ich möchte für das \tableofcontentsin folgende Vorlage erstellen beamer. Bildbeschreibung hier eingeben

Ich kann den Code für die Liste von sectionsund subsectionsmit den folgenden MWE generieren

\documentclass{beamer}
\usepackage[english]{babel}
\usepackage{tikz}
\setbeamerfont{section in toc}{family*=qag, size=\large,series=\bfseries}
\setbeamerfont{subsection in toc}{size=\normalsize,series=\bfseries}
\setbeamertemplate{subsection in toc}{%
    \begin{tikzpicture}[outer sep=0pt, inner sep=0pt,line width=0pt]
        \path[use as bounding box] (0,0) rectangle (\textwidth,0);
        \node[anchor=base east] at (.7\textwidth,0) { \inserttocsubsection};
    \end{tikzpicture}
}
\setbeamertemplate{section in toc}{%
    \begin{tikzpicture}[outer sep=0pt, inner sep=0pt,line width=0pt]
        \path[use as bounding box] (0,0) rectangle (\textwidth,0);
        \node[anchor=base east] at (.7\textwidth,0) { \inserttocsection};
        \node[anchor=base west] at (.7\textwidth+4ex+2.2ex,0){\inserttocsectionnumber};
    \end{tikzpicture}
}
\begin{document}
\begin{frame}
\tableofcontents
\end{frame}

\section{First Section}
\section{Second Section}
\subsection{A subsection}
\begin{frame}{Some frame}
\end{frame}
\end{document}

Ich finde jedoch keine intelligente Möglichkeit, die vertikale Linie einzufügen. Wenn ich die backgroundVorlage verwende, kann ich dies tun, aber die Positionierung ist nicht einfach (und hängt stark von aspectratiound ab margins). Dasselbe passiert mit overlayin . Ich habe versucht, eine Möglichkeit zu finden, die Vorlagen in ein tikzpictureeinzuschließen und jede Vorlage als Sammlung von Knoten zu definieren, aber es scheint komplexer zu sein, als ich dachte. Beispielsweise ist die Verwendung keine gute Wahl.section in toctikzpicture\tableofcontets\patchcmd

Antwort1

Sie könnten die Knoten beschriften und dann Ihre Linie vom ersten bis zum letzten Abschnitt zeichnen:

\documentclass{beamer}
\usepackage[english]{babel}
\usepackage{tikz}
\setbeamerfont{section in toc}{family*=qag, size=\large,series=\bfseries}
\setbeamerfont{subsection in toc}{size=\normalsize,series=\bfseries}
\setbeamertemplate{subsection in toc}{%
    \begin{tikzpicture}[outer sep=0pt, inner sep=0pt,line width=0pt]
        \path[use as bounding box] (0,0) rectangle (\textwidth,0);
        \node[anchor=base east] at (.7\textwidth,0) { \inserttocsubsection};
    \end{tikzpicture}
}
\setbeamertemplate{section in toc}{%
    \begin{tikzpicture}[outer sep=0pt, inner sep=0pt,line width=0pt,remember picture]
        \path[use as bounding box] (0,0) rectangle (\textwidth,0);
        \node[anchor=base east] (toc-\inserttocsectionnumber) at (.7\textwidth,0) { \inserttocsection};
        \node[anchor=base west] at (.7\textwidth+4ex+2.2ex,0){\inserttocsectionnumber};
    \end{tikzpicture}
}

\makeatletter
\apptocmd{\tableofcontents}{%
\begin{tikzpicture}[remember picture,overlay]
\draw[red,line width=0.1cm] ([xshift=4.1ex,yshift=2ex]toc-1.north east) -- ([xshift=4.1ex,yshift=-2ex]toc-\the\[email protected] east);
\end{tikzpicture}%
}{}{}
\makeatother

\begin{document}
\begin{frame}
\tableofcontents
\end{frame}

\section{First Section}
\begin{frame}
\frametitle{Some frame}
\end{frame}
\section{Second Section}
\subsection{A subsection}
\begin{frame}
\frametitle{Some frame}
\end{frame}
\section{Third Section}
\begin{frame}
\frametitle{Some frame}
\end{frame}
\end{document}

Bildbeschreibung hier eingeben

Wenn Ihr letzter Abschnitt Unterabschnitte enthalten soll, können Sie diese ebenfalls beschriften und verwendenhttps://topanswers.xyz/tex?q=1987#a2230um die letzte Unterabschnittsnummer herauszufinden.

verwandte Informationen