# Introducing a left margin inside a block environment in beamer

I am doing a poster using beamerposter . The text inside a block always seems to have no left margin. Can anyone tell me a way of introducing a left margin in a block ?

Here is a sample of how a block looks. Notice that the text starts off with no left margin.

It would be nice if you could tell me how to define left, right, top and bottom margins within the block. Please note that I have nested blocks, though the nested ones have a different environment name (i called then insideBlocks). Hence I wouldn't want the margins for the block environment to affect the margins for my insideBlocks environment.

Hope I am clear.

-

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 beamerposterpackage in my example code because it works both in beamer and beamerposter without modifications.

-
Thanks a lot for the prompt reply. The text is now left-margined. This helps me, but It would be nice if you could tell me how to shift the block itself to the right. In otherwords, is it possible to see the background to the left of this block ? Actually that was what I intended for. Nevertheless the solution you told is also good for me. Is my description too confusing ? Hope not. –  Pavithran Iyer Apr 14 '13 at 13:32
if you want to move the entire block to the right, you could for example use the columns environment. I believe this question has been asked many times, but if you want me to give an example I'll add it to my answer. –  dcmst Apr 14 '13 at 13:56