I think this can be achieved in many ways. One possibility is to define a new block environment with custom margins, like this:
\documentclass{beamer}
\usetheme{Frankfurt}
\newenvironment<>{myblock}[1]{%
\begin{actionenv}#2%
\def\insertblocktitle{\leftskip=10pt\rightskip=10pt\vspace{10pt} #1\vspace{10pt}}%
\par%
\usebeamertemplate{block begin}\leftskip=10pt\rightskip=10pt\vspace{10pt}}
{\par\vspace{10pt}\usebeamertemplate{block end}
\end{actionenv}}
\begin{document}
\begin{frame}
\begin{myblock}{example title to show 10pt up, down, left and right margins}
example text to show 10pt up, down, left and right margins
\end{myblock}
\begin{block}{example title to show standard margins}
example text to show standard margins
\end{block}
\end{frame}
\end{document}
In the new environment (I called it myblock
) \leftskip
, \rightskip
and \vspace
are used to set the margins. As an example I set everything to 10pt. If you don't want, e.g. a right margin, just remove the rightskip
from the code. I assumed you also wanted to customize the title text margin, if you don't want to just remove the leftskip
etc. from \def\insertblocktitle{}
. the result is:
Another possibility would be with the tcolorbox
package, which lets you set margins like this:
\documentclass{beamer}
\usepackage{tcolorbox}
\tcbuselibrary{skins}
\tcbset{ % custom tcolorbox
skin=enhanced,
frame style={fill=blue}, % sets the frame color
bottom=10pt, % distance between the body text and the bottom frame
top=10pt, % distance between the body text and the top frame
left=10pt,
right=10pt,
boxrule=0pt, % frame width
bottomtitle=10pt, % distance between the title text and the bottom title frame
toptitle=10pt, % distance between the title text and the top title frame
lefttitle=10pt, % title text left margin
righttitle=10pt
}
\begin{document}
\begin{frame}
\begin{tcolorbox}[title=test]
test
\end{tcolorbox}
\end{frame}
\end{document}
result is:
edit: I didn't add the beamerposter
package in my example code because it works both in beamer
and beamerposter
without modifications.
Using \leftskip
and \rightskip
is doomed to failure when lists are involved.
Say \usepackage{changepage}
in the preamble and
\addtobeamertemplate{block begin}
{}
{\vspace{1ex plus 0.5ex minus 0.5ex} % Pads top of block
% separates paragraphs in a block
\setlength{\parskip}{24pt plus 1pt minus 1pt}%
\begin{adjustwidth}{2cm}{2cm}
}
\addtobeamertemplate{block end}
{\end{adjustwidth}%
\vspace{2ex plus 0.5ex minus 0.5ex}}% Pads bottom of block
{\vspace{10ex plus 1ex minus 1ex}} % Seperates blocks from each other
Remove the \addtobeamertemplate{description item}
part.
For \verb
you have to declare your frame as fragile
:
\begin{frame}[fragile,t]
I'd also avoid doing
\setbeamersize{text margin left = -5pt, text margin right = -5pt}
but it's just me.
Best Answer
The template uses the
classicthesis
package, which defines the page layout by\areaset
with specific values depending on the used fonts. You could use\areaset
as well.Syntax:
\areaset[binding offset]{width}{height}
Try for example:
Here I made just the text wider and shortened the marginpar width, which contains the first column.