# Define a new block environment in LaTeX beamer

I have two kinds of examples in my document. I want to use different colors, say, red and blue. This is what I am doing now.

\documentclass[]{beamer}
\begin{document}

\begin{frame}
\frametitle{Test}
\setbeamercolor{block title}{fg=white,bg=red!75!black}
\begin{block}{First Kind Example}
This is example of the first kind.
\end{block}
\setbeamercolor{block title}{fg=white,bg=blue!75!black}
\begin{block}{Second Kind Example}
This is example of the second kind.
\end{block}
\end{frame}

\end{document}


I know this is kind of stupid. I want to define two new block environments, one for each color, so I don't need to use setbeamercolor every time I use them.

\begin{block1}{First Kind Example}
...
\end{block1}
\begin{block2}{Second Kind Example}
...
\end{block2}


I know I need to define these two new environments in the preamble, but don't know how. Thanks for the help.

By the way, what is a good reference on these kinds of tricks in LaTeX/beamer? Any recommendations?

-
Beamer itself defines three types of blocks: block, alertblock and exampleblock. You can customize them separately. –  Claudio Fiandrino Jan 5 at 18:07
Here is the beamer user guide mirrors.ctan.org/macros/latex/contrib/beamer/doc/… –  Sigur Jan 5 at 18:08

If you want to present them as examples and mark them up as such using beamer's example environment (rather than just using the generic block) you might try something like this:

\documentclass[]{beamer}

\newtheorem{examplefirst}{Example}
\newtheorem{examplesecond}{Example}
\newenvironment<>{examplefirst}[1][]{%
\setbeamercolor{block title example}{fg=white,bg=red!75!black}%
\begin{example}#2[#1]}{\end{example}}
\newenvironment<>{examplesecond}[1][]{%
\setbeamercolor{block title example}{fg=white,bg=blue!75!black}%
\begin{example}#2[#1]}{\end{example}}

\begin{document}

\begin{frame}
\begin{examplefirst}[An example of the first kind]
\end{examplefirst}
\begin{examplesecond}[An example of the second kind]
\end{examplesecond}
\begin{example}[A regular example]
\end{example}
\end{frame}

\end{document}


which produces:

If you prefer to stick to the generic block environment perhaps something like this might work:

\documentclass[]{beamer}

\newenvironment<>{examplefirst}[1]{%
\setbeamercolor{block title}{fg=white,bg=red!75!black}%
\begin{block}#2{#1}}{\end{block}}
\newenvironment<>{examplesecond}[1]{%
\setbeamercolor{block title}{fg=white,bg=blue!75!black}%
\begin{block}#2{#1}}{\end{block}}

\begin{document}

\begin{frame}
\begin{examplefirst}{An example of the first kind}
\end{examplefirst}
\begin{examplesecond}{An example of the second kind}
\end{examplesecond}
\begin{block}{A regular block}
Something in the regular block format.
\end{block}
\end{frame}

\end{document}


-
very nice. thank you. –  Patrick Li Jan 5 at 23:53

Here you have the standard code, using different colors

\documentclass{beamer}

\usecolortheme{whale}
\usecolortheme{orchid}

\begin{document}

\begin{frame}{A frame}

\begin{block}{A block environment}
Some text.
\end{block}

Some text.

\begin{exampleblock}{An exampleblock environment}
Some text.
\end{exampleblock}

\end{frame}

\end{document}


-
You can add the code needed for customization: it would make your answer more complete. –  Claudio Fiandrino Jan 5 at 18:09
@ClaudioFiandrino yes, but I just know their is a standard code giving the answer to his problem. But I will look further, because a this moment, I don't know yet how to change it. –  Arne Jan 5 at 18:11
Excellent! You can start with the manual, looking section 12.3 Block Environments and how to change the templates' aspect via \setbeamercolor. +1 meanwhile :) –  Claudio Fiandrino Jan 5 at 18:19