4

I am currently replicating a PowerPoint theme I am required to use using tikz and beamer. The only thing missing at this point is the custom bullet points that are used in the theme (see below).

I would like to replicate this look, probably using tikz. Is there a way to get a custom bullet point to be used without having to modify any source files (I would like to be able to do this in ShareLaTeX)? The bullets should only be used for the table of contents, not for enumerate environments.

enter image description here

9

A starting point based on "Beamer table-of-contents custom bullets". You will have to customize the \bicolor command with the appropriate rectangle sizes.

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\setbeamertemplate{section in toc}[sections numbered]
\setbeamertemplate{subsection in toc}[subsections numbered]

\newcommand*\bicolor[1]{\tikz[baseline=(char.base)]{
        \fill[blue!20] (-.5,-.2) rectangle (0,.5);
        \fill[blue!10] (0,-.2) rectangle (.5,.5);
        \node[color=white] (char) {#1};}}           

\setbeamertemplate{section in toc}{%
    \usebeamercolor[fg]{enumerate item}%
    \makebox[2em][r]{\bfseries\Large\bicolor{\inserttocsectionnumber}}%
    \parbox[t]{\dimexpr\linewidth-2em}{\inserttocsection}%
}

\begin{document}
\maketitle
\tableofcontents
\section{First section}
\subsection{First subsection}
\subsection{Second subsection}

\section{Second section}
\subsection{First subsection}
\subsection{Second subsection}
\end{document}

enter image description here

A more sophisticated version:

\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\setbeamertemplate{section in toc}[sections numbered]
\setbeamertemplate{subsection in toc}[subsections numbered]

\newcommand*\seccolor[1]{\tikz[baseline=(char.base)]{
            \fill[blue!20] (-.5,-.3) rectangle (0,.3);
            \fill[blue!10] (0,-.3) rectangle (.5,.3);
            \node[color=white] (char) {#1};}}   

\newcommand*\subseccolor[1]{\tikz[baseline=(char.base)]{
            \fill[red!20] (-.5,-.2) rectangle (0,.2);
            \fill[red!10] (0,-.2) rectangle (.5,.2);
            \node[color=red] (char) {#1};}}             

\setbeamertemplate{section in toc}{%
    \usebeamercolor[fg]{enumerate item}%
    \makebox[2em][r]{\bfseries\Large\seccolor{\inserttocsectionnumber}}%
    \parbox[t]{\dimexpr\linewidth-2em}{\rule{0pt}{.75cm}\inserttocsection}%
}

\setbeamertemplate{subsection in toc}{%
    \usebeamercolor[fg]{enumerate item}%
    \makebox[2em][r]{\bfseries\subseccolor{\inserttocsectionnumber.    \inserttocsubsectionnumber}}%
    \parbox[t]{\dimexpr\linewidth-2em}{\rule{0pt}{.5cm}\color{red}\inserttocsubsection}%
}

\begin{document}
\maketitle
\tableofcontents
\section{First section}
\subsection{First subsection}
\subsection{Second subsection}

\section{Second section}
\subsection{First subsection}
\subsection{Second subsection}

\section{Second section}
\subsection{First subsection}
\subsection{Second subsection}

\section{Second section}
\subsection{First subsection}
\subsection{Second subsection}

\section{Second section}
\subsection{First subsection}
\subsection{Second subsection}
\end{document}

enter image description here

  • This is working rather well. Thanks! Do you happen to have any hints as to how to change the spacing between the bullets and the section and subsection titles? That would allow me to closely replicate the template and resolve my question completely. – Constantin Mar 29 '15 at 21:27
  • @Constantin vertical spacing? You can add a \rule of zero thickness to control the vertical space between entries. When the table of contents is long, the page break is far from perfect. – pluton Mar 30 '15 at 1:29
  • @Constantin ok, horizontal spacing: change \makebox[2em][r] into \makebox[4em][l] for example. It is not the only way but it works. – pluton Mar 30 '15 at 1:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.