2

I'm trying to write a poster using beamerposter package. I would want to structure it using 3/4 columns, and each column should have a certain number of blocks.

I would want to define my own theme and i desire a rounded beamercolourbox for the block title, while the block body beamercolourbox should be a little narrower than the title one, even if centered with respect to it. The following code produces the block body beamercolourbox ragged left.

\setbeamertemplate{block begin}{
\vskip.75ex %
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\begin{beamercolorbox}[wd=.95\linewidth,colsep*=.75ex,sep=.75ex,vmode]{block body}%
} %
\setbeamertemplate{block end}{ %
\end{beamercolorbox} %
}

I tried enclosing all into a center environment as follows, but nothing has changed:

\setbeamertemplate{block begin}{
\vskip.75ex %
\begin{center}%
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\begin{beamercolorbox}[wd=.95\linewidth,colsep*=.75ex,sep=.75ex,vmode]{block body}%
} %
\setbeamertemplate{block end}{ %
\end{beamercolorbox} %
\end{center}%
}

Then i tried by using \hfill (as follows), but now the position is "better" but not yet centered, as it is slightly down left-positioned with respect to the title beamercolorbox.

\setbeamertemplate{block begin}{
\vskip.75ex %
\begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
\usebeamerfont*{block title}\insertblocktitle
\end{beamercolorbox}%
\vskip.5ex %
\usebeamerfont{block body}%
\hfill%
\begin{beamercolorbox}[wd=.95\linewidth,colsep*=.75ex,sep=.75ex,vmode]{block body}%
} %
\setbeamertemplate{block end}{ %
\end{beamercolorbox} %
\hfill%
}

Any idea on how to solve this issue? Thank you in advance for your attention. Regards.

1

You could use something like this:

\documentclass{beamer}

\newlength\bodywd
\setlength\bodywd{.95\linewidth}

\setbeamercolor{block title}{fg=olive,bg=olive!20}
\setbeamercolor{block body}{fg=blue,bg=blue!20}

\setbeamertemplate{block begin}{%
 \vskip.75ex%
 \begin{beamercolorbox}[rounded=true,leftskip=1cm,colsep*=.75ex]{block title}%
  \usebeamerfont*{block title}\insertblocktitle%
  \end{beamercolorbox}%
  \vskip.5ex %
  \usebeamerfont{block body}%
  \hspace*{.5\dimexpr\linewidth-\bodywd\relax}%
  \begin{beamercolorbox}[wd=\bodywd,colsep*=.75ex,sep=.75ex,vmode]{block body}%
}
\setbeamertemplate{block end}{%
  \end{beamercolorbox}%
\hfill\null%
}

\begin{document}

\begin{frame}
\begin{block}{The Title}
text
\end{block}
\end{frame}

\end{document}

enter image description here

The idea is to keep the width of body block in an auxiliar length \bodywd and to add, before the block, a horizontal space given by 0.5(\linewidth-\bodywd).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.