For making a small quiz in class I am working on a presentation in beamer.

I want to change the color of statements to red (wrong statement) or green (right statement) but only after my class answered the question.

I was searching the internet, but only found the color package, where you apparently can only change the text color before it appears.

Can someone point me into the right direction?


beamer provides an overlay specification with most of its macros/environments. It allows you to say (for example) ...\alert<2>{<stuff>}... so that <stuff> prints normally on slides other than number 2. \color itself is overlay aware in the form \color<2->{blue}{<stuff>} that would print <stuff> in blue from slide 2 onward. Alternatively, one can use something like ...{\only<2>{\color{blue}}<stuff>}... which prints <stuff> in blue only on slide 2.

Here's a short example

enter image description here

\documentclass{beamer}% http://ctan.org/pkg/beamer
Some text {\only<2>{\color{blue}}and stuff}.

Note that beamer already loads xcolor.

| improve this answer | |
  • This is exactly what I need, with one little modification: I want the blue stuff be shown after, say, slide 2. – marktani Nov 1 '12 at 21:34
  • 2
    I found it on the documentation page you linked, I will have to write \only<2-> and so on. Thanks! :) – marktani Nov 1 '12 at 21:36

I searched for the difinition of alert command, and found these:

% beamercolorthemedefault.sty
\setbeamercolor{alerted text}{fg=blue}
% beamerfontthemedefault.sty
\setbeamerfont{alerted text}{}
% beamerbasearticle.sty
\defbeamertemplate<article>*{alerted text begin}{default}{\ifmmode\else\begin{itshape}\fi}
\defbeamertemplate<article>*{alerted text end}{default}{\ifmmode\else\end{itshape}\fi}
% beamerbaselocalstructure.sty
    {\usebeamertemplate{alerted text begin}\usebeamercolor[fg]{alerted text}\usebeamerfont{alerted text}}
    {\usebeamertemplate{alerted text end}}{\color{.}}{}}{\end{altenv}}

Simillary I define rightstate and wrongstate commands that can be used like alert command.


\setbeamercolor{rightstateed text}{fg=green}
\setbeamerfont{rightstateed text}{}
\defbeamertemplate<article>*{rightstateed text begin}{default}{\ifmmode\else\begin{itshape}\fi}
\defbeamertemplate<article>*{rightstateed text end}{default}{\ifmmode\else\end{itshape}\fi}
    {\usebeamertemplate{rightstateed text begin}\usebeamercolor[fg]{rightstateed text}\usebeamerfont{rightstateed text}}
    {\usebeamertemplate{rightstateed text end}}{\color{.}}{}}{\end{altenv}}

\setbeamercolor{wrongstateed text}{fg=red}
\setbeamerfont{wrongstateed text}{}
\defbeamertemplate<article>*{wrongstateed text begin}{default}{\ifmmode\else\begin{itshape}\fi}
\defbeamertemplate<article>*{wrongstateed text end}{default}{\ifmmode\else\end{itshape}\fi}
    {\usebeamertemplate{wrongstateed text begin}\usebeamercolor[fg]{wrongstateed text}\usebeamerfont{wrongstateed text}}
    {\usebeamertemplate{wrongstateed text end}}{\color{.}}{}}{\end{altenv}}

    \item \wrongstate<2>{wrong statement}
    \item \rightstate<3>{right statement}

Here's the result:

| improve this answer | |

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.