Change the background color of a frame in Beamer
up vote
49
down vote
favorite
How can I change the background color of one frame in my Beamer document? I tried doing
begin{frame}
setbeamercolor{background canvas}{bg=violet}
% frame contents here
end{frame}
but it seemed to have no effect.
Anyone know what the problem is?
beamer color backgrounds
add a comment |
up vote
49
down vote
favorite
How can I change the background color of one frame in my Beamer document? I tried doing
begin{frame}
setbeamercolor{background canvas}{bg=violet}
% frame contents here
end{frame}
but it seemed to have no effect.
Anyone know what the problem is?
beamer color backgrounds
add a comment |
up vote
49
down vote
favorite
up vote
49
down vote
favorite
How can I change the background color of one frame in my Beamer document? I tried doing
begin{frame}
setbeamercolor{background canvas}{bg=violet}
% frame contents here
end{frame}
but it seemed to have no effect.
Anyone know what the problem is?
beamer color backgrounds
How can I change the background color of one frame in my Beamer document? I tried doing
begin{frame}
setbeamercolor{background canvas}{bg=violet}
% frame contents here
end{frame}
but it seemed to have no effect.
Anyone know what the problem is?
beamer color backgrounds
beamer color backgrounds
asked Dec 31 '10 at 18:21
Sophie Alpert
5,92793037
5,92793037
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
up vote
41
down vote
accepted
Modify the background canvas before you begin the frame, not within the frame.
To keep the effect of the color change local, you could use curly braces around the frame and that command, or begingroup ... endgroup.
{
setbeamercolor{background canvas}{bg=violet}
begin{frame}
% frame contents here
end{frame}
}
6
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@damluar It works for me. You probably made a mistake. Alternatively, instead of usingbegingroup ... endgroup, you may also simply use brackets{ ... }.
– Ricardo Cruz
Nov 14 '17 at 22:13
add a comment |
up vote
16
down vote
Put the setbeamercolorcommand outside the frame. This will change the background colour for every subsequent frame. If you want to just change that slide, you can surround the frame and the command in {}
Here's a complete example:
documentclass{beamer}
begin{document}
begin{frame}{A white frame}
end{frame}
% Change all subsequent frames to violet
setbeamercolor{background canvas}{bg=violet!20}
begin{frame}{A violet frame}
end{frame}
begin{frame}{This frame is also violet}
end{frame}
% But this frame only will be yellow: note { ... } around
% the setbeamercolor and the frame to limit the scope
{setbeamercolor{background canvas}{bg=yellow!20}
begin{frame}{This frame is yellow}
end{frame}
}
begin{frame}{Subsequent frames will be violet}
end{frame}
end{document}

Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
add a comment |
up vote
4
down vote
Here's a suggestion to add a bg option to the frame environment, such that background color can be invoked simply by adding the [bg] option to frame.
I have not tested this beyond the template below, put together by piecing random clues here and there. Making the actual color an argument, as in [bg=blue], is left as an exercices to the bored reader.
documentclass{beamer}
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{bg}
{%
color{lightgray!40}vrule widthpaperwidth heightpaperheight% added bg color
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{bg}[true]{%
setbeamertemplate{background canvas}[bg]%
}
makeatother
begin{document}
begin{frame}
frametitle{Normal}
end{frame}
begin{frame}[bg]
frametitle{With bg}
end{frame}
begin{frame}
frametitle{Normal}
end{frame}
end{document}


A similar thing (going off topic now) can be done with an image, instead of plain color:
documentclass{beamer}
usepackage{graphicx}
usepackage{tikz}
pgfdeclareimage[width=paperwidth]{mybackground}{brain}
%% As an option to frame
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{image}
{%
begin{tikzpicture}
useasboundingbox (0,0) rectangle (thepaperwidth, thepaperheight);
pgftext[at=pgfpoint{0cm}{0cm}, left, base]{pgfsetfillopacity{0.1}pgfuseimage{mybackground}};
end{tikzpicture}
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{image}[true]{%
setbeamercovered{invisible}%
setbeamertemplate{background canvas}[image]%
}
makeatother%
title[...]{My title}
begin{document}
begin{frame}[image]
titlepage
end{frame}
section{Introduction}
begin{frame}[plain]
Text here
end{frame}
end{document}

add a comment |
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
41
down vote
accepted
Modify the background canvas before you begin the frame, not within the frame.
To keep the effect of the color change local, you could use curly braces around the frame and that command, or begingroup ... endgroup.
{
setbeamercolor{background canvas}{bg=violet}
begin{frame}
% frame contents here
end{frame}
}
6
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@damluar It works for me. You probably made a mistake. Alternatively, instead of usingbegingroup ... endgroup, you may also simply use brackets{ ... }.
– Ricardo Cruz
Nov 14 '17 at 22:13
add a comment |
up vote
41
down vote
accepted
Modify the background canvas before you begin the frame, not within the frame.
To keep the effect of the color change local, you could use curly braces around the frame and that command, or begingroup ... endgroup.
{
setbeamercolor{background canvas}{bg=violet}
begin{frame}
% frame contents here
end{frame}
}
6
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@damluar It works for me. You probably made a mistake. Alternatively, instead of usingbegingroup ... endgroup, you may also simply use brackets{ ... }.
– Ricardo Cruz
Nov 14 '17 at 22:13
add a comment |
up vote
41
down vote
accepted
up vote
41
down vote
accepted
Modify the background canvas before you begin the frame, not within the frame.
To keep the effect of the color change local, you could use curly braces around the frame and that command, or begingroup ... endgroup.
{
setbeamercolor{background canvas}{bg=violet}
begin{frame}
% frame contents here
end{frame}
}
Modify the background canvas before you begin the frame, not within the frame.
To keep the effect of the color change local, you could use curly braces around the frame and that command, or begingroup ... endgroup.
{
setbeamercolor{background canvas}{bg=violet}
begin{frame}
% frame contents here
end{frame}
}
edited Nov 13 at 19:26
user94293
2,114415
2,114415
answered Dec 31 '10 at 18:27
Stefan Kottwitz♦
174k63566753
174k63566753
6
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@damluar It works for me. You probably made a mistake. Alternatively, instead of usingbegingroup ... endgroup, you may also simply use brackets{ ... }.
– Ricardo Cruz
Nov 14 '17 at 22:13
add a comment |
6
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@damluar It works for me. You probably made a mistake. Alternatively, instead of usingbegingroup ... endgroup, you may also simply use brackets{ ... }.
– Ricardo Cruz
Nov 14 '17 at 22:13
6
6
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@Stefan, I tried to do as you said, but the color stay the same as previous slides. Do you know why it could possibly not work?
– damluar
Mar 15 '13 at 20:39
@damluar It works for me. You probably made a mistake. Alternatively, instead of using
begingroup ... endgroup, you may also simply use brackets { ... }.– Ricardo Cruz
Nov 14 '17 at 22:13
@damluar It works for me. You probably made a mistake. Alternatively, instead of using
begingroup ... endgroup, you may also simply use brackets { ... }.– Ricardo Cruz
Nov 14 '17 at 22:13
add a comment |
up vote
16
down vote
Put the setbeamercolorcommand outside the frame. This will change the background colour for every subsequent frame. If you want to just change that slide, you can surround the frame and the command in {}
Here's a complete example:
documentclass{beamer}
begin{document}
begin{frame}{A white frame}
end{frame}
% Change all subsequent frames to violet
setbeamercolor{background canvas}{bg=violet!20}
begin{frame}{A violet frame}
end{frame}
begin{frame}{This frame is also violet}
end{frame}
% But this frame only will be yellow: note { ... } around
% the setbeamercolor and the frame to limit the scope
{setbeamercolor{background canvas}{bg=yellow!20}
begin{frame}{This frame is yellow}
end{frame}
}
begin{frame}{Subsequent frames will be violet}
end{frame}
end{document}

Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
add a comment |
up vote
16
down vote
Put the setbeamercolorcommand outside the frame. This will change the background colour for every subsequent frame. If you want to just change that slide, you can surround the frame and the command in {}
Here's a complete example:
documentclass{beamer}
begin{document}
begin{frame}{A white frame}
end{frame}
% Change all subsequent frames to violet
setbeamercolor{background canvas}{bg=violet!20}
begin{frame}{A violet frame}
end{frame}
begin{frame}{This frame is also violet}
end{frame}
% But this frame only will be yellow: note { ... } around
% the setbeamercolor and the frame to limit the scope
{setbeamercolor{background canvas}{bg=yellow!20}
begin{frame}{This frame is yellow}
end{frame}
}
begin{frame}{Subsequent frames will be violet}
end{frame}
end{document}

Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
add a comment |
up vote
16
down vote
up vote
16
down vote
Put the setbeamercolorcommand outside the frame. This will change the background colour for every subsequent frame. If you want to just change that slide, you can surround the frame and the command in {}
Here's a complete example:
documentclass{beamer}
begin{document}
begin{frame}{A white frame}
end{frame}
% Change all subsequent frames to violet
setbeamercolor{background canvas}{bg=violet!20}
begin{frame}{A violet frame}
end{frame}
begin{frame}{This frame is also violet}
end{frame}
% But this frame only will be yellow: note { ... } around
% the setbeamercolor and the frame to limit the scope
{setbeamercolor{background canvas}{bg=yellow!20}
begin{frame}{This frame is yellow}
end{frame}
}
begin{frame}{Subsequent frames will be violet}
end{frame}
end{document}

Put the setbeamercolorcommand outside the frame. This will change the background colour for every subsequent frame. If you want to just change that slide, you can surround the frame and the command in {}
Here's a complete example:
documentclass{beamer}
begin{document}
begin{frame}{A white frame}
end{frame}
% Change all subsequent frames to violet
setbeamercolor{background canvas}{bg=violet!20}
begin{frame}{A violet frame}
end{frame}
begin{frame}{This frame is also violet}
end{frame}
% But this frame only will be yellow: note { ... } around
% the setbeamercolor and the frame to limit the scope
{setbeamercolor{background canvas}{bg=yellow!20}
begin{frame}{This frame is yellow}
end{frame}
}
begin{frame}{Subsequent frames will be violet}
end{frame}
end{document}

edited Mar 6 at 4:26
answered Dec 31 '10 at 18:29
Alan Munn
157k27421695
157k27421695
Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
add a comment |
Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
Can you provide a minimal working example?
– shuhalo
Mar 6 at 2:23
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
@shuhalo I've added an example document.
– Alan Munn
Mar 6 at 4:26
add a comment |
up vote
4
down vote
Here's a suggestion to add a bg option to the frame environment, such that background color can be invoked simply by adding the [bg] option to frame.
I have not tested this beyond the template below, put together by piecing random clues here and there. Making the actual color an argument, as in [bg=blue], is left as an exercices to the bored reader.
documentclass{beamer}
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{bg}
{%
color{lightgray!40}vrule widthpaperwidth heightpaperheight% added bg color
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{bg}[true]{%
setbeamertemplate{background canvas}[bg]%
}
makeatother
begin{document}
begin{frame}
frametitle{Normal}
end{frame}
begin{frame}[bg]
frametitle{With bg}
end{frame}
begin{frame}
frametitle{Normal}
end{frame}
end{document}


A similar thing (going off topic now) can be done with an image, instead of plain color:
documentclass{beamer}
usepackage{graphicx}
usepackage{tikz}
pgfdeclareimage[width=paperwidth]{mybackground}{brain}
%% As an option to frame
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{image}
{%
begin{tikzpicture}
useasboundingbox (0,0) rectangle (thepaperwidth, thepaperheight);
pgftext[at=pgfpoint{0cm}{0cm}, left, base]{pgfsetfillopacity{0.1}pgfuseimage{mybackground}};
end{tikzpicture}
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{image}[true]{%
setbeamercovered{invisible}%
setbeamertemplate{background canvas}[image]%
}
makeatother%
title[...]{My title}
begin{document}
begin{frame}[image]
titlepage
end{frame}
section{Introduction}
begin{frame}[plain]
Text here
end{frame}
end{document}

add a comment |
up vote
4
down vote
Here's a suggestion to add a bg option to the frame environment, such that background color can be invoked simply by adding the [bg] option to frame.
I have not tested this beyond the template below, put together by piecing random clues here and there. Making the actual color an argument, as in [bg=blue], is left as an exercices to the bored reader.
documentclass{beamer}
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{bg}
{%
color{lightgray!40}vrule widthpaperwidth heightpaperheight% added bg color
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{bg}[true]{%
setbeamertemplate{background canvas}[bg]%
}
makeatother
begin{document}
begin{frame}
frametitle{Normal}
end{frame}
begin{frame}[bg]
frametitle{With bg}
end{frame}
begin{frame}
frametitle{Normal}
end{frame}
end{document}


A similar thing (going off topic now) can be done with an image, instead of plain color:
documentclass{beamer}
usepackage{graphicx}
usepackage{tikz}
pgfdeclareimage[width=paperwidth]{mybackground}{brain}
%% As an option to frame
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{image}
{%
begin{tikzpicture}
useasboundingbox (0,0) rectangle (thepaperwidth, thepaperheight);
pgftext[at=pgfpoint{0cm}{0cm}, left, base]{pgfsetfillopacity{0.1}pgfuseimage{mybackground}};
end{tikzpicture}
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{image}[true]{%
setbeamercovered{invisible}%
setbeamertemplate{background canvas}[image]%
}
makeatother%
title[...]{My title}
begin{document}
begin{frame}[image]
titlepage
end{frame}
section{Introduction}
begin{frame}[plain]
Text here
end{frame}
end{document}

add a comment |
up vote
4
down vote
up vote
4
down vote
Here's a suggestion to add a bg option to the frame environment, such that background color can be invoked simply by adding the [bg] option to frame.
I have not tested this beyond the template below, put together by piecing random clues here and there. Making the actual color an argument, as in [bg=blue], is left as an exercices to the bored reader.
documentclass{beamer}
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{bg}
{%
color{lightgray!40}vrule widthpaperwidth heightpaperheight% added bg color
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{bg}[true]{%
setbeamertemplate{background canvas}[bg]%
}
makeatother
begin{document}
begin{frame}
frametitle{Normal}
end{frame}
begin{frame}[bg]
frametitle{With bg}
end{frame}
begin{frame}
frametitle{Normal}
end{frame}
end{document}


A similar thing (going off topic now) can be done with an image, instead of plain color:
documentclass{beamer}
usepackage{graphicx}
usepackage{tikz}
pgfdeclareimage[width=paperwidth]{mybackground}{brain}
%% As an option to frame
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{image}
{%
begin{tikzpicture}
useasboundingbox (0,0) rectangle (thepaperwidth, thepaperheight);
pgftext[at=pgfpoint{0cm}{0cm}, left, base]{pgfsetfillopacity{0.1}pgfuseimage{mybackground}};
end{tikzpicture}
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{image}[true]{%
setbeamercovered{invisible}%
setbeamertemplate{background canvas}[image]%
}
makeatother%
title[...]{My title}
begin{document}
begin{frame}[image]
titlepage
end{frame}
section{Introduction}
begin{frame}[plain]
Text here
end{frame}
end{document}

Here's a suggestion to add a bg option to the frame environment, such that background color can be invoked simply by adding the [bg] option to frame.
I have not tested this beyond the template below, put together by piecing random clues here and there. Making the actual color an argument, as in [bg=blue], is left as an exercices to the bored reader.
documentclass{beamer}
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{bg}
{%
color{lightgray!40}vrule widthpaperwidth heightpaperheight% added bg color
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{bg}[true]{%
setbeamertemplate{background canvas}[bg]%
}
makeatother
begin{document}
begin{frame}
frametitle{Normal}
end{frame}
begin{frame}[bg]
frametitle{With bg}
end{frame}
begin{frame}
frametitle{Normal}
end{frame}
end{document}


A similar thing (going off topic now) can be done with an image, instead of plain color:
documentclass{beamer}
usepackage{graphicx}
usepackage{tikz}
pgfdeclareimage[width=paperwidth]{mybackground}{brain}
%% As an option to frame
defbeamertemplate*{background canvas}{mydefault}
{%
ifbeamercolorempty[bg]{background canvas}{}{color{bg}vrule widthpaperwidth heightpaperheight}% copied beamer default here
}
defbeamertemplate*{background canvas}{image}
{%
begin{tikzpicture}
useasboundingbox (0,0) rectangle (thepaperwidth, thepaperheight);
pgftext[at=pgfpoint{0cm}{0cm}, left, base]{pgfsetfillopacity{0.1}pgfuseimage{mybackground}};
end{tikzpicture}
}
BeforeBeginEnvironment{frame}{%
setbeamertemplate{background canvas}[mydefault]%
}
makeatletter
define@key{beamerframe}{image}[true]{%
setbeamercovered{invisible}%
setbeamertemplate{background canvas}[image]%
}
makeatother%
title[...]{My title}
begin{document}
begin{frame}[image]
titlepage
end{frame}
section{Introduction}
begin{frame}[plain]
Text here
end{frame}
end{document}

edited Oct 10 '17 at 12:14
answered Oct 10 '17 at 9:02
PatrickT
97921022
97921022
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f8043%2fchange-the-background-color-of-a-frame-in-beamer%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown