Luego de consultar expertos en este tema, programadores de deferentes ramas y profesores dimos con la solución a la cuestión y la compartimos en esta publicación.
Solución:
Modifique el lienzo de fondo antes de comenzar el marco, no dentro del marco.
Para mantener el efecto del cambio de color local, puede usar llaves alrededor del marco y ese comando, o begingroup ... endgroup
.
setbeamercolorbackground canvasbg=violet
beginframe
% frame contents here
endframe
Pon el setbeamercolor
comando fuera del marco. Esto cambiará el color de fondo para cada cuadro subsiguiente. Si solo desea cambiar esa diapositiva, puede rodear el marco y el comando en
Aquí hay un ejemplo completo:
documentclassbeamer
begindocument
beginframeA white frame
endframe
% Change all subsequent frames to violet
setbeamercolorbackground canvasbg=violet!20
beginframeA violet frame
endframe
beginframeThis frame is also violet
endframe
% But this frame only will be yellow: note ... around
% the setbeamercolor and the frame to limit the scope
setbeamercolorbackground canvasbg=yellow!20
beginframeThis frame is yellow
endframe
beginframeSubsequent frames will be violet
endframe
enddocument
He aquí una sugerencia para agregar un bg
opción al entorno del marco, de modo que el color de fondo se puede invocar simplemente agregando el [bg]
opción a frame
.
No he probado esto más allá de la plantilla a continuación, reunida juntando pistas aleatorias aquí y allá. Hacer del color real un argumento, como en [bg=blue]
se deja como ejercicios para el lector aburrido.
documentclassbeamer
defbeamertemplate*background canvasmydefault
%
ifbeamercolorempty[bg]background canvascolorbgvrule widthpaperwidth heightpaperheight% copied beamer default here
defbeamertemplate*background canvasbg
%
colorlightgray!40vrule widthpaperwidth heightpaperheight% added bg color
BeforeBeginEnvironmentframe%
setbeamertemplatebackground canvas[mydefault]%
makeatletter
[email protected]
beamerframebg[true]%
setbeamertemplatebackground canvas[bg]%
makeatother
begindocument
beginframe
frametitleNormal
endframe
beginframe[bg]
frametitleWith bg
endframe
beginframe
frametitleNormal
endframe
enddocument
Se puede hacer algo similar (saliendo del tema ahora) con una imagen, en lugar de un color simple:
documentclassbeamer
usepackagegraphicx
usepackagetikz
pgfdeclareimage[width=paperwidth]mybackgroundbrain
%% As an option to frame
defbeamertemplate*background canvasmydefault
%
ifbeamercolorempty[bg]background canvascolorbgvrule widthpaperwidth heightpaperheight% copied beamer default here
defbeamertemplate*background canvasimage
%
begintikzpicture
useasboundingbox (0,0) rectangle (thepaperwidth, thepaperheight);
pgftext[at=pgfpoint0cm0cm, left, base]pgfsetfillopacity0.1pgfuseimagemybackground;
endtikzpicture
BeforeBeginEnvironmentframe%
setbeamertemplatebackground canvas[mydefault]%
makeatletter
[email protected]beamerframeimage[true]%
setbeamercoveredinvisible%
setbeamertemplatebackground canvas[image]%
makeatother%
title[...]My title
begindocument
beginframe[image]
titlepage
endframe
sectionIntroduction
beginframe[plain]
Text here
endframe
enddocument
Si crees que ha resultado provechoso nuestro post, agradeceríamos que lo compartas con más juniors así nos ayudas a extender esta información.