[Tex/LaTex] How to set the inner margins of a Beamer block

beamerbeamerpostermargins

I've worked myself into a rut. A very, very hacky, plain-TeX-y rut.

I'm creating a poster with beamerposter. Content is split logically into block environments, and customization is done through the hooks beamer provides (\addtobeamertemplate). That's where the LaTeX ends.

Here is my code:

\documentclass{beamer}

\usepackage[english]{babel}
\usepackage[orientation=portrait,size=a0]{beamerposter}
\mode<presentation>{%
  \usetheme{Frankfurt}%
}

\title[short]{Looonnger!!}
\author{me}
\institute{grubby}
\date{\today}

% needed to stretch out title box cleanly, but likely the root of my problem
\setbeamersize{text margin left = -5pt, text margin right = -5pt}

\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}
   \addtolength{\leftskip}{1em}   %%% awful hack for left/right padding
   \addtolength{\rightskip}{1em}} %%% that doesn't even work right
\addtobeamertemplate{block end}
  {\vspace{2ex plus 0.5ex minus 0.5ex}}% Pads bottom of block
  {\vspace{10ex plus 1ex minus 1ex}} % Seperates blocks from each other

\addtobeamertemplate{description item}
  {\hspace{2em}} % trying to compensate for the awful hack
  {}

\usepackage{mwe}

\begin{document}
\begin{frame}[t]{}
  \vspace{-8pt}
  \begin{beamercolorbox}{}
    \maketitle
  \end{beamercolorbox}
  \vspace{10ex}

  \begin{block}{Block A}
    \lipsum

    \begin{description}[longest label]
    \item[short] Short stuff
    \item[long] Longer stuff
    \item[longest label] Longest stuff (insert cat)
    \end{description}

     \begin{itemize}
     \item I'd like to change the margins here, as well.
     \item The macros \texttt{\textbackslash leftskip} and friends
       don't work very well for environment-heavy \LaTeX{} document
       classes such as \texttt{beamer}
     \item Also, for some reason, using \texttt{\textbackslash verb}
       kills \emph{everthing}.
     \end{itemize}  
  \end{block}
\end{frame}
\end{document}

and what it produces:
hack

Note that the bullets/balls for the itemize environment are flush with the left margin. Description environment would do the same thing if it weren't for the explicit customization. All text also goes way too close to either side; amenable through \leftskip but not \rightskip. It's an absolute mess.

My immediate goal is to be able to set the right margin so text doesn't go to close. My 'better' goal is to set inner padding for block contents so that I won't have to set the margins for each environment individually, which will quickly get out of hand. And finally, as I said in a comment in the code, I believe the root of my problem is how I stretch out the title to give it a cleaner look (not just a colored block on a white background), but I'm pretty sure that'd be a separate question.


From the comments:
Briefly, I was aiming for (nothing special) a title whose color spans the entire top of the page and content in blocks where the content is padded by about 2 or 3em to taste.

Best Answer

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.

enter image description here

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.