Sign up ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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?

share|improve this question

2 Answers 2

up vote 17 down vote accepted

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

Some text {\only<2>{\color{blue}}and stuff}.

Note that beamer already loads xcolor.

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

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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