9

I am trying to increase the radius of the circle in the TOC of a beamer presentation and include a subsection bullet. The beamer manual states gives an example of \setbeamertemplate{some beamer element}[circle]{3pt}, but that breaks the MWE below.

Essentially, the "ball" innertheme does exactly what I want (a nice large circle and a bullet for the subsection), but I do not like the graphic at all. I would just like to use "normal" bullets.

\documentclass{beamer}

\mode<presentation>
{
  \usetheme{Warsaw}
  \setbeamercovered{transparent}
}

\setbeamertemplate{section in toc}[circle]%{3pt}
\setbeamertemplate{subsection in toc}[circle]

\begin{document}

\begin{frame}{Outline}
  \tableofcontents
\end{frame}

\section{Introduction}

\subsection{First Subsection Name}

\section{Test}

\subsection{Second Subsection}

\begin{frame}{Make Titles Informative.}
\end{frame}

\begin{frame}{Make Titles Informative.}
\end{frame}

\end{document}

enter image description here

1 Answer 1

12

Basically you have to set the beamer templates section in toc and subsection in toc associated to the circle option; the original definitions can be found in the file beamerbaseauxtemplates.sty. Here are the original definitions for reference:

\defbeamertemplate{section in toc}{circle}
{\leavevmode\leftskip=2ex%
  \llap{%
    \usebeamerfont*{section number projected}%
    \usebeamercolor{section number projected}%
    \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex}
      \color{bg}
      \pgfpathcircle{\pgfpoint{0pt}{.75ex}}{1.2ex}
      \pgfusepath{fill}
      \pgftext[base]{\color{fg}\inserttocsectionnumber}
    \end{pgfpicture}\kern1.25ex%
  }%
  \inserttocsection\par}

\defbeamertemplate{subsection in toc}{circle}
{\leavevmode\leftskip=2em\inserttocsubsection\par}

The following sample document shows a possible redefinition increasing the radius of the circle used for sections and using a \bullet for subsections:

\documentclass{beamer}

\mode<presentation>
{
  \usetheme{Warsaw}
  \setbeamercovered{transparent}
}

\setbeamertemplate{section in toc}
{\leavevmode\leftskip=2ex%
  \llap{%
    \usebeamerfont*{section number projected}%
    \usebeamercolor{section number projected}%
    \begin{pgfpicture}{-1ex}{0ex}{1ex}{2ex}
      \color{bg}
      \pgfpathcircle{\pgfpoint{0pt}{.75ex}}{1.7ex}
      \pgfusepath{fill}
      \pgftext[base]{\color{fg}\inserttocsectionnumber}
    \end{pgfpicture}\kern1.25ex%
  }%
  \inserttocsection\par}
\setbeamertemplate{subsection in toc}
  {\leavevmode\leftskip=2em$\bullet$\hskip1em\inserttocsubsection\par}

\begin{document}

\begin{frame}{Outline}
  \tableofcontents
\end{frame}

\section{Introduction}

\subsection{First Subsection Name}

\section{Test}

\subsection{Second Subsection}

\begin{frame}{Make Titles Informative.}
\end{frame}

\begin{frame}{Make Titles Informative.}
\end{frame}

\end{document}

enter image description here

If you want to imitate the ball style for sections, but using \bullet for subsections, the necessary redefinitions will look something like:

\makeatletter
\setbeamertemplate{section in toc}
{\leavevmode\leftskip=2.75ex%
  \llap{%
    \normalsize%
    \begin{pgfpicture}{-1ex}{-0.7ex}{1ex}{1ex}
      \pgftext{\beamer@usesphere{section number projected}{tocsphere}}
      \pgftext{%
        \usebeamerfont*{section number projected}%
        \usebeamercolor{section number projected}%
        \color{fg!90!bg}%
        \inserttocsectionnumber}
    \end{pgfpicture}%
    \kern1.25ex}%
  \inserttocsection\par
}
\setbeamertemplate{subsection in toc}
  {\leavevmode\leftskip=2em$\bullet$\hskip1em\inserttocsubsection\par}
\makeatother
1
  • 2
    Thanks, I was at the right place but couldn't get it to work.
    – Jörg
    Commented Apr 16, 2012 at 13:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .