How can I create different content slides? - latex

I know how to create different backgrounds for title slides with
\defbeamertemplate{background}{title_horizontal}{
...
}
then assign them to the title page (and remove footline for title) with
\def\ps#titlepage#horizontal{%
\setbeamertemplate{background}[title_horizontal]
\setbeamertemplate{footline}{}
}
and then create a text layout with matching background with
\defbeamertemplate*{title page}{custom}[1]{
\ifthenelse{\equal{#1}{horizontal}}
{
\thispagestyle{titlepage#horizontal}
}{}
...
}
and use them in the document with
\setbeamertemplate{title page}[custom][horizontal]
However, I was not able to find anything about how to create and select different layouts of normal content slides.
Is it possible to create different layouts for normal content slides in a similar way?
What is the keyword for content slides?

You could use the same technique as in https://topanswers.xyz/tex?q=1162#a1369 :
\documentclass{beamer}
\usepackage{tikz}
\makeatletter
\defbeamertemplate{background canvas}{image}[1][]{%
\begin{tikzpicture}[remember picture,overlay,inner sep=0pt,outer sep=0pt]
\node[anchor=east] at (current page.east) {\includegraphics[height=\paperheight]{#1}};
\end{tikzpicture}%
}
\BeforeBeginEnvironment{frame}{%
\setbeamertemplate{background canvas}[default]%
}
\makeatletter
\define#key{beamerframe}{myimage}[]{
\setbeamertemplate{background canvas}[image][#1]%
}
\makeatother
\begin{document}
\begin{frame}[plain,myimage=example-image-golden-upright]
\begin{columns}[onlytextwidth]
\begin{column}{.5\textwidth}
image frame
\end{column}
\begin{column}{.5\textwidth}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
regular
\end{frame}
\end{document}

Related

How to set text margin without conflict with block environment?

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}

How do you modify the title font options for a single slide in Beamer?

I'm writing a presentation in Beamer, the default options for the font title are the following
\setbeamerfont*{frametitle}{size=\Large,
series=\bfseries,
parent=structure}
I want to override those option just for a couple of slides, but I didn't find any answer.
For example, I'd like to lower the size and eliminate the bold
You can restrict any changes you make to only a couple of frames if you make them within a group {...}:
\documentclass{beamer}
\setbeamerfont*{frametitle}{size=\Large, series=\bfseries, parent=structure}
\begin{document}
\begin{frame}
\frametitle{Slide B}
Content for slide B
\end{frame}
{
\setbeamerfont{frametitle}{size=\Tiny, series=\normalfont}
\begin{frame}
\frametitle{Slide B}
Content for slide B
\end{frame}
}
\begin{frame}
\frametitle{Slide B}
Content for slide B
\end{frame}
\end{document}
I solved my issue by placing
\begin{frame}{\normalsize{FRAMETITLE}}
\end{frame}
in the frame I needed to modify. I know it was stupid, just to say I solved

Latex Beamer: Increase spacing between sections in section navigation bar

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}

How split a /tableofcontents in two or more columns?

I have a long index (outline) for a presentation. Obviosly my index exceeds the size of a presentation page.
Is there a way to split a /tableofcontents in two columns?. This my code to generate the index.
\begin{frame}{Índice}
\tableofcontents
\end{frame}
For a better control over the break point, one could also split the toc manually
\begin{frame}
\begin{columns}[onlytextwidth,T]
\begin{column}{.45\textwidth}
\tableofcontents[sections=1-2]
\end{column}
\begin{column}{.45\textwidth}
\tableofcontents[sections=3-5]
\end{column}
\end{columns}
\end{frame}
The solution is:
% preamble
\usepackage{multicol}
\begin{frame}{Índice}
\begin{multicols}{2}
\tableofcontents
\end{multicols}
\end{frame}

How to split table of contents across multiple slides with Latex Beamer?

I currently am preparing some slides for a presentation and am using Latex with the Beamer package. Currently the sections and subsections of my presentation cause the presentation overview text in the table of contents slide to extend past the bottom of the page.
Is there a way to split my table of contents up so they are displayed across multiple slides?
\begin{frame}[allowframebreaks]{Outline}
The above code will split any over hang across multiple slides.
You can also try:
\begin{frame}[shrink]{Outline}
The above will try to shrink content to fit frame margins.
You can divide your presentations in parts with
\part{1} .... \part{n}
then you can show the toc of every part on an other slide with
\tableofcontents[part=1]
If you use
\tableofcontents[currentsection]
only the toc of the part will be displayed...
If you split the table of contents manually, you have more fine control to select a good break point:
\documentclass{beamer}
\begin{document}
\begin{frame}
\only<1>{\tableofcontents[sections={1-4}]}
\only<2>{\tableofcontents[sections={5-}]}
\end{frame}
\section{title1}
\begin{frame}
content...
\end{frame}
\section{title2}
\begin{frame}
content...
\end{frame}
\section{title3}
\begin{frame}
content...
\end{frame}
\section{title4}
\begin{frame}
content...
\end{frame}
\section{title5}
\begin{frame}
content...
\end{frame}
\section{title6}
\begin{frame}
content...
\end{frame}
\section{title7}
\begin{frame}
content...
\end{frame}
\section{title8}
\begin{frame}
content...
\end{frame}
\end{document}

Resources