I am using beamer to make my slides. I managed to have the subsections show in the header. For example subsection of Security is (1) Background (2) PerSpectron (3) Commercial ....
How can I add subsubsections in the header too? For example, I want to have several subsections to the background appear in an extra column in the header, similar to subsections. Is there any way to do this? Thank you.
First I'd like to quote the beamer users guide:
"Do not use subsubsections, they are evil."
If you want to torture your audience, you can use this quick hack. Make sure that:
you have more sections/subsections than subsubsections, otherwise the height might be wrong
you set the counter for the number of subsubsection in each subsection
\documentclass{beamer}
\usetheme{Warsaw}
\usepackage{pgffor}
\newcounter{totalsubsub}
\AtBeginSubsubsection[]{\label{subsubsec:\thesection:\thesubsection:\thesubsubsection}}
\makeatletter
\setbeamertemplate{headline}{%
\leavevmode%
\#tempdimb=2.4375ex%
\ifnum\beamer#subsectionmax<\beamer#sectionmax%
\multiply\#tempdimb by\beamer#sectionmax%
\else%
\multiply\#tempdimb by\beamer#subsectionmax%
\fi%
\ifdim\#tempdimb>0pt%
\advance\#tempdimb by 1.825ex%
\begin{beamercolorbox}[wd=.33\paperwidth,ht=\#tempdimb]{section in head/foot}%
\vbox to\#tempdimb{\vfil\insertsectionnavigation{.33\paperwidth}\vfil}%
\end{beamercolorbox}%
\begin{beamercolorbox}[wd=.34\paperwidth,ht=\#tempdimb]{subsection in head/foot}%
\vbox to\#tempdimb{\vfil\insertsubsectionnavigation{.33\paperwidth}\vfil}%
\end{beamercolorbox}%
\begin{beamercolorbox}[leftskip=3.3ex,wd=.33\paperwidth,ht=\#tempdimb]{section in head/foot}%
\begin{minipage}[b][\#tempdimb][c]{.9\linewidth}%
\ifnum\thetotalsubsub>0
\foreach \i in {1,...,\thetotalsubsub}{%
\ifnum\i=\thesubsubsection
\usebeamercolor[fg]{subsubsection in sidebar}
\else
\usebeamercolor[fg]{subsubsection in sidebar shaded}
\fi
\hyperlink{subsubsec:\thesection:\thesubsection:\i}{\nameref{subsubsec:\thesection:\thesubsection:\i}}\par
}
\fi
\end{minipage}%
\end{beamercolorbox}%
\fi%
}
\makeatother
\begin{document}
\section{section}
\subsection{sub 1}
\setcounter{totalsubsub}{3}
\subsubsection{subsub 1}
\begin{frame}
subsub 1
\end{frame}
\subsubsection{subsub 2}
\begin{frame}
subsub 2
\end{frame}
\subsubsection{subsub 3}
\begin{frame}
subsub 3
\end{frame}
\subsection{sub 2}
\setcounter{totalsubsub}{0}
\begin{frame}
abc
\end{frame}
\subsection{sub 3}
\setcounter{totalsubsub}{2}
\begin{frame}
content...
\end{frame}
\subsubsection{subsub 1}
\begin{frame}
subsub 1
\end{frame}
\subsubsection{subsub 2}
\begin{frame}
subsub 2
\end{frame}
\end{document}
Related
I want to decrease the margin between the content text and the page edge. I follow the method from: https://tex.stackexchange.com/questions/354022/modifying-the-margins-of-all-slides-in-beamer by using \setbeamersize{text margin left=1.40mm, text margin left=1.40mm}.
However, it will make the block not centered in the slide. Thus, how do I set the text margin without influencing the setting of the block?
Is there another way to set the text margin?
The full scripts as follows:
\documentclass[t]{beamer}
\usetheme{Madrid}
\usecolortheme{beaver}
\usefonttheme{structurebold}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{multicol}
\title[Short title]{Full Title of the Talk}
\author{JJ XX}
\institute[UCLA]
{
University of California \\
\medskip
\textit{jx#111.com}
}
\date{\today}
% set the text margin
\setbeamersize{text margin left=1.40mm, text margin left=1.40mm}
\settowidth{\leftmargini}{\usebeamertemplate{itemize item}}
\settowidth{\leftmargini}{\usebeamertemplate{enumerate item}}
\addtolength{\leftmargini}{-0.2\labelsep}
\begin{document}
\begin{frame}
\titlepage % Print the title page as the first slide
\end{frame}
\begin{frame}
\frametitle{Contents}
\begin{multicols}{2}
\tableofcontents
\end{multicols}
\end{frame}
\section{blocka}
\begin{frame}
\frametitle{blocka}
\begin{itemize}
\item First
\item Second
\end{itemize}
\begin{exampleblock}{Introduction to Beamer}
Beamer is a class of \LaTeX.
\end{exampleblock}
\end{frame}
\section{blockb}
\begin{frame}
The second example.
\frametitle{blockb}
\begin{block}{Beamer Intro}
New is New.
\end{block}
\end{frame}
The margins of beamer blocks are designed in such a way that the text within the block is still aligned with the surrounding text. If you set the margin independently, this will break this alignment:
\documentclass[t]{beamer}
\usetheme{Madrid}
\usecolortheme{beaver}
\setbeamersize{text margin left=1.40mm, text margin left=1.40mm}
\makeatletter
\setbeamertemplate{block begin}
{%
\par\vskip\medskipamount%
\hfill\begin{minipage}{.98\textwidth}%
\begin{beamerboxesrounded}[upper=block title,lower=block body,shadow=true]%
{\raggedright\usebeamerfont*{block title}\insertblocktitle}%
\raggedright%
\usebeamerfont{block body}%
}
\setbeamertemplate{block end}
{\end{beamerboxesrounded}\end{minipage}\vskip\smallskipamount}
\makeatother
\begin{document}
\begin{frame}
The second example.
\frametitle{blockb}
\begin{block}{Beamer Intro}
New is New.
\end{block}
\end{frame}
\end{document}
Alternatively, you could use the tcolorbox inner theme:
\documentclass[t]{beamer}
\usetheme{Madrid}
\usecolortheme{beaver}
\setbeamersize{text margin left=1.40mm, text margin left=1.40mm}
\useinnertheme{tcolorbox}
\tcbset{
center,
width=\linewidth
}
\begin{document}
\begin{frame}
The second example.
\frametitle{blockb}
\begin{block}{Beamer Intro}
New is New.
\end{block}
\end{frame}
\end{document}
Hello I trying to list the subsections in table of contents (beamer), but I can't get the result ? Anyone knows how to do it ?
My code (I am using the \usetheme{CambridgeUS}):
\documentclass[handout,10pt,aspectratio=169]{beamer}
\usepackage[spanish]{babel}
\usepackage{multirow,rotating}
\usepackage{color}
\usepackage{hyperref}
\usepackage{tikz-cd}
\usepackage{array}
\usepackage{siunitx}
\usepackage{mathtools,nccmath}%
\usepackage{etoolbox, xparse}
\usecolortheme{dolphin}
\usepackage{lipsum}
\usepackage{natbib}
\usepackage{hyperref}
\usepackage{calc}
\usepackage{environ}
\usepackage{courier}
\usepackage{tcolorbox}
\usetheme{CambridgeUS}
\title[]{\textcolor{black}{\vskip 1.5cm\textbf {Title}}}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\begin{frame}
\frametitle{Contenido}
\tableofcontents
\end{frame}
\section{Introducción}
\begin{frame}{Introducción}
\subsection{sismos lentos}
\end{frame}
\end{document}
Never use sectioning commands like \section or \subsection within a frame. They must be used outside the frame.
Apart from this problem, you can use https://stackoverflow.com/a/74094309/2777074 to get squares in the toc:
\documentclass[handout,10pt,aspectratio=169]{beamer}
\usepackage[spanish]{babel}
\usepackage{multirow,rotating}
%\usepackage{color}
%\usepackage{hyperref}
\usepackage{tikz-cd}
\usepackage{array}
\usepackage{siunitx}
\usepackage{mathtools,nccmath}%
\usepackage{
%etoolbox,
xparse}
\usecolortheme{dolphin}
\usepackage{lipsum}
\usepackage{natbib}
%\usepackage{hyperref}
\usepackage{calc}
\usepackage{environ}
\usepackage{courier}
\usepackage{tcolorbox}
\usetheme{CambridgeUS}
\title[]{\textcolor{black}{\vskip 1.5cm\textbf {Title}}}
\setbeamertemplate{sections/subsections in toc}[square]
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\begin{frame}
\frametitle{Contenido}
\tableofcontents
\end{frame}
\section{Introduccion}
\subsection{sismos lentos}
\begin{frame}{Introduccion}
\end{frame}
\end{document}
I want to add a logo to each frame of my latex beamer. The space I want to put it in is the right-corner. This is at the right of the rectangle where the current section is displayed.
Please find below the code :
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{mathrsfs}
\usepackage{graphics}
\usepackage{tikz}
\usepackage{beamerthemeWarsaw}
\usepackage[export]{adjustbox}
\title{Modélisation des courants de turbidité}
\date{}
\addtobeamertemplate{miniframe}{}{ %footline headline frametitle
\includegraphics[height=1cm]{Pics/organism/ifremer_logo.jpg} \hspace{0.5cm}
\includegraphics[height=1cm]{Pics/organism/polytech_logo.png}
}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\begin{frame}{Contexte du stage}
\end{frame}
\begin{frame}{Intérêts}
\end{frame}
\begin{frame}{Objectifs}
\begin{block}{Améliorations du modèle }
\end{block}
\end{frame}
\begin{frame}
\tableofcontents
\end{frame}
\section{Equations du modèle}
\begin{frame}{Equations du modèle}
\end{frame}
\end{document}
Given that you have enough sections to make the headline tall enough to host your images, you could redefine the headline and replace the right hand site, which would normally show the subsections, with your images:
\documentclass{beamer}
%\usepackage[utf8]{inputenc}
\usepackage{caption}
\usepackage{subcaption}
\usepackage{mathrsfs}
%\usepackage{graphics}
\usepackage{tikz}
\usetheme{Warsaw}
\usepackage[export]{adjustbox}
\title{Modélisation des courants de turbidité}
\date{}
\makeatletter
\setbeamertemplate{headline}
{%
\leavevmode%
\#tempdimb=2.4375ex%
\ifnum\beamer#subsectionmax<\beamer#sectionmax%
\multiply\#tempdimb by\beamer#sectionmax%
\else%
\multiply\#tempdimb by\beamer#subsectionmax%
\fi%
\ifdim\#tempdimb>0pt%
\advance\#tempdimb by 1.825ex%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\#tempdimb]{section in head/foot}%
\vbox to\#tempdimb{\vfil\insertsectionnavigation{.5\paperwidth}\vfil}%
\end{beamercolorbox}%
% \begin{beamercolorbox}[wd=.4\paperwidth,ht=\#tempdimb]{subsection in head/foot}%
% \vbox to\#tempdimb{\vfil\insertsubsectionnavigation{.4\paperwidth}\vfil}%
% \end{beamercolorbox}%
\begin{beamercolorbox}[wd=.5\paperwidth,ht=\#tempdimb]{subsection in head/foot}%
\hfill
\includegraphics[height=\#tempdimb]{example-image-duck} \hspace{0.5cm}
\includegraphics[height=\#tempdimb]{example-image-duck}
\hfill\mbox{}
\end{beamercolorbox}%
\fi%
}
\makeatother
%\addtobeamertemplate{miniframe}{}{ %footline headline frametitle
%\includegraphics[height=1cm]{Pics/organism/ifremer_logo.jpg} \hspace{0.5cm}
%\includegraphics[height=1cm]{Pics/organism/polytech_logo.png}
%}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\begin{frame}{Contexte du stage}
\end{frame}
\begin{frame}{Intérêts}
\end{frame}
\begin{frame}{Objectifs}
\begin{block}{Améliorations du modèle }
\end{block}
\end{frame}
\begin{frame}
\tableofcontents
\end{frame}
\section{Equations du modèle}
\begin{frame}{Equations du modèle}
\end{frame}
\section{Equations du modèle}
\begin{frame}{Equations du modèle}
\end{frame}
\section{Equations du modèle}
\begin{frame}{Equations du modèle}
\end{frame}
\section{Equations du modèle}
\begin{frame}{Equations du modèle}
\end{frame}
\end{document}
Some other comments:
if your tex distribution isn't completely outdated, you don't need \usepackage[utf8]{inputenc}, that's now default
no need for \usepackage{graphics}, beamer automatically loads the more powerful graphicx package
the more beamer way to load a theme is \usetheme{Warsaw}
I am preparing my thesis defense slides and I can't remove the numbering from the slide that displays the name of the sub-section (slide 5 and 7).
I have tried to modify the metropolis template I am using, but without success.
Is there anyone who knows how to do this?
Thank you very much for your help!
\documentclass{beamer}
\usetheme[progressbar=frametitle, sectionpage=progressbar, subsectionpage=progressbar, block=fill]{metropolis}
\setbeamertemplate{footline}{}
\setbeamertemplate{navigation symbols}{%
\ifnum\insertframenumber>0
\normalsize\insertframenumber%
\fi%
}
\title{Title}
\subtitle{Sub-title}
\date{\today}
\author{author}
\institute{institute}
\AtBeginSection[]
{
\setbeamertemplate{navigation symbols}{}
\frame[plain,c,noframenumbering]{
\sectionpage
\tableofcontents[currentsection,subsectionstyle=hide]}
\setbeamertemplate{navigation symbols}{\normalsize\insertframenumber}
}
\makeatletter
\setbeamertemplate{section in toc}[sections numbered]
\setbeamertemplate{subsection in toc}[subsections numbered]
\makeatother
\begin{document}
\maketitle
\section{First section}
\begin{frame}
Content
\end{frame}
\section{Second section}
\subsection{First sub section}
\begin{frame}
Content
\end{frame}
\subsection{Second sub section}
\begin{frame}
Content
\end{frame}
\section{Third section}
\end{document}
Funny coincidence, I just answered basically the same problem a couple of hours ago at https://topanswers.xyz/tex?q=2047#a2293
\documentclass{beamer}
\usetheme[progressbar=frametitle, sectionpage=progressbar, subsectionpage=progressbar, block=fill]{metropolis}
\setbeamertemplate{footline}{}
\setbeamertemplate{navigation symbols}{\normalsize\insertframenumber}
\title{Title}
\subtitle{Sub-title}
\date{\today}
\author{author}
\institute{institute}
\AtBeginSection[]
{
\setbeamertemplate{navigation symbols}{}
\frame[plain,c,noframenumbering]{
\sectionpage
\tableofcontents[currentsection,subsectionstyle=hide]}
\setbeamertemplate{navigation symbols}{\normalsize\insertframenumber}
}
\makeatletter
\setbeamertemplate{section in toc}[sections numbered]
\setbeamertemplate{subsection in toc}[subsections numbered]
\patchcmd{\ps#empty}{\usebeamertemplate***{navigation symbols}}{}{}{}
\makeatother
\begin{document}
\maketitle
\section{First section}
\begin{frame}
Content
\end{frame}
\section{Second section}
\subsection{First sub section}
\begin{frame}
Content
\end{frame}
\subsection{Second sub section}
\begin{frame}
Content
\end{frame}
\section{Third section}
\end{document}
I would like to modify my Latex Beamer Template.
Hence, I would like to increase the space between the displayed sections in the section navigation bar. At the moment the are left indented but the sections are way to close together.
I use the following code to generate the headline:
setbeamertemplate{headline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=\paperwidth,ht=3ex,dp=1.125ex]{palette tertiary}%
\insertsectionnavigationhorizontal{\paperwidth}{}{\hskip0pt plus1filll}
\end{beamercolorbox}%
}
}
How can I modify the spacing between the displayed section?
The tipple fill plus1filll you insert after the navigation makes it flush left. If you remove it, the sections will automatically be distributed within the available paper width:
\documentclass{beamer}
\setbeamertemplate{headline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=\paperwidth,ht=3ex,dp=1.125ex]{palette tertiary}%
\insertsectionnavigationhorizontal{\paperwidth}{}{}
\end{beamercolorbox}%
}
}
\begin{document}
\section{title}
\begin{frame}
content...
\end{frame}
\section{title}
\begin{frame}
content...
\end{frame}
\end{document}
If you want to keep the sections flush left and just add some additional space between:
\documentclass{beamer}
\setbeamertemplate{headline}{%
\leavevmode%
\hbox{%
\begin{beamercolorbox}[wd=\paperwidth,ht=3ex,dp=1.125ex]{palette tertiary}%
\insertsectionnavigationhorizontal{\paperwidth}{}{\hskip0pt plus1filll}
\end{beamercolorbox}%
}
}
\setbeamertemplate{section in head/foot}{\insertsectionhead\hspace{0.5cm}}
\begin{document}
\section{title}
\begin{frame}
content...
\end{frame}
\section{title}
\begin{frame}
content...
\end{frame}
\end{document}