beamer icon indicating copy to clipboard operation
beamer copied to clipboard

Different beamercolor for block theorem and definition

Open josephwright opened this issue 13 years ago • 1 comments

Originally reported by: Anonymous


Hi!

Might it be possible to create the possibility to change the color of the definition block in order to get different colors for theorem,lemma,Satz ... and the definition-block?

So that we have in principal different colors for theorem, example, alertblock AND definition? In order to get backward-compatiblity, the default beamercolor for definition could be those from theorem.

This might be useful in my point of view.

Best regards,

Michael


  • Bitbucket: https://bitbucket.org/rivanvx/beamer/issue/187

josephwright avatar Apr 06 '12 09:04 josephwright

As a workaround one can modify the colours of all the blocks individually like this:

\documentclass{beamer}

% block
\setbeamercolor{block title}{fg=black,bg=green!50!black}
\setbeamercolor{block body}{fg=green!50!black,bg=green!50!black!30!white}

% alertblock
\setbeamercolor{block title alerted}{fg=black,bg=green!50!white}
\setbeamercolor{block body alerted}{fg=green,bg=green!30!white}

% exampleblock
\setbeamercolor{block title example}{fg=black,bg=lime!50!white}
\setbeamercolor{block body example}{fg=lime,bg=lime!30!white}

% theorem
\BeforeBeginEnvironment{theorem}{
  \setbeamercolor{block title}{fg=black,bg=yellow!50!white}
  \setbeamercolor{block body}{fg=yellow,bg=yellow!30!white}
}
\AfterEndEnvironment{theorem}{
    \setbeamercolor{block title}{fg=blocktitlefgsave,bg=blocktitlebgsave}
    \setbeamercolor{block body}{fg=blockbodyfgsave,bg=blockbodybgsave}
}

% corollary
\BeforeBeginEnvironment{corollary}{
  \setbeamercolor{block title}{fg=black,bg=orange!50!white}
  \setbeamercolor{block body}{fg=orange, bg=orange!30!white}
}
\AfterEndEnvironment{corollary}{
    \setbeamercolor{block title}{fg=blocktitlefgsave,bg=blocktitlebgsave}
    \setbeamercolor{block body}{fg=blockbodyfgsave,bg=blockbodybgsave}
}

% definition
\BeforeBeginEnvironment{definition}{
  \setbeamercolor{block title}{fg=black,bg=red!50!white}
  \setbeamercolor{block body}{fg=red, bg=red!30!white}
}
\AfterEndEnvironment{definition}{
    \setbeamercolor{block title}{fg=blocktitlefgsave,bg=blocktitlebgsave}
    \setbeamercolor{block body}{fg=blockbodyfgsave,bg=blockbodybgsave}
}

% definitions
\BeforeBeginEnvironment{definitions}{
  \setbeamercolor{block title}{fg=black,bg=violet!50!white}
  \setbeamercolor{block body}{fg=violet, bg=violet!30!white}
}
\AfterEndEnvironment{definitions}{
    \setbeamercolor{block title}{fg=blocktitlefgsave,bg=blocktitlebgsave}
    \setbeamercolor{block body}{fg=blockbodyfgsave,bg=blockbodybgsave}
}

% fact
\BeforeBeginEnvironment{fact}{
  \setbeamercolor{block title}{fg=black,bg=blue!50!white}
  \setbeamercolor{block body}{fg=blue, bg=blue!30!white}
}
\AfterEndEnvironment{fact}{
    \setbeamercolor{block title}{fg=blocktitlefgsave,bg=blocktitlebgsave}
    \setbeamercolor{block body}{fg=blockbodyfgsave,bg=blockbodybgsave}
}

% example
\BeforeBeginEnvironment{example}{
  \setbeamercolor{block title example}{fg=black,bg=cyan!50!white}
  \setbeamercolor{block body example}{fg=cyan, bg=cyan!30!white}
}
\AfterEndEnvironment{example}{
    \setbeamercolor{block title example}{fg=exblocktitlefgsave,bg=exblocktitlebgsave}
    \setbeamercolor{block body example}{fg=exblockbodyfgsave,bg=exblockbodybgsave}
}

% examples
\BeforeBeginEnvironment{examples}{
  \setbeamercolor{block title example}{fg=black,bg=teal!50!white}
  \setbeamercolor{block body example}{fg=teal, bg=teal!30!white}
}
\AfterEndEnvironment{examples}{
    \setbeamercolor{block title example}{fg=exblocktitlefgsave,bg=exblocktitlebgsave}
    \setbeamercolor{block body example}{fg=exblockbodyfgsave,bg=exblockbodybgsave}
}

% proof
\addtobeamertemplate{proof begin}{%
    \setbeamercolor{block title}{fg=black,bg=gray!50!white}
    \setbeamercolor{block body}{fg=gray, bg=gray!30!white}
}{}

\begin{document}

\usebeamercolor{block title}
\colorlet{blocktitlefgsave}{block title.fg} 
\colorlet{blocktitlebgsave}{block title.bg}
\usebeamercolor{normal text}
\usebeamercolor{block body}
\colorlet{blockbodyfgsave}{block body.fg}
\colorlet{blockbodybgsave}{block body.bg}   
\usebeamercolor{normal text}

\usebeamercolor{block title example}
\colorlet{exblocktitlefgsave}{block title example.fg}   
\colorlet{exblocktitlebgsave}{block title example.bg}
\usebeamercolor{normal text}
\usebeamercolor{block body example}
\colorlet{exblockbodyfgsave}{block body example.fg}
\colorlet{exblockbodybgsave}{block body example.bg} 
\usebeamercolor{normal text}

\begin{frame}[allowframebreaks]

% normal blocks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    \begin{block}{My block}
        A block.
    \end{block}

    \begin{alertblock}{my alertblock}
            An alertblock
    \end{alertblock}

    \begin{exampleblock}{my exampleblock}
            An exampleblock
    \end{exampleblock}

% theorem blocks %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    \begin{theorem}[My theorem]
        A theorem.
    \end{theorem}

    \begin{corollary}[My corollary]
        A corollary.
    \end{corollary}

    \begin{definition}[My definition]
        A definition.
    \end{definition}

    \begin{definitions}[My definitions]
        Some definitions.
    \end{definitions}

    \begin{fact}[My fact]
        A fact.
    \end{fact}

    \begin{example}[My example]
        An example.
    \end{example}

    \begin{examples}[My examples]
        Some examples.
    \end{examples}

    \begin{proof}[My proof]
        A proof.
    \end{proof}

% testing normal blocks again

    \begin{block}{My block}
        A block.
    \end{block}

    \begin{exampleblock}{my exampleblock}
            An exampleblock
    \end{exampleblock}

\end{frame}
\end{document}

Screen_Shot_2019-04-18_at_16 31 08

samcarter avatar Nov 28 '19 12:11 samcarter