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.

  • 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
  • \color also affects the text after "and stuff", so if you do not want the rest of the line to turn blue, make sure you use {\color<2->{blue}{and stuff}} and more stuff instead of \color<2->{blue}{and stuff} and more stuff. Dec 10 '20 at 13:00
  • @AnthonyLabarre: Correct. That's what I used. The grouping limits the scope of \color. Alternatively, since \color is overlay-aware, you can use {\color<2>{blue}and stuff}.
    – Werner
    Dec 10 '20 at 18:05

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:

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.