Basta ya de investigar por internet porque llegaste al lugar perfecto, contamos con la respuesta que quieres recibir sin problema.
Solución:
Agregaré mi respuesta también, el enfoque es el mismo de Bordaigorl pero con menos código involucrado.
La idea es crear otro setbeamertemplatebackground
e incrustarlo en un comando personalizado para usarlo en lugar de framesectionpage
El comando personalizado redefinirá el fondo y luego el section page
plantilla. Solo como ejemplo utilicé un tikzpicture
para reposicionar el cabezal de sección.
Este es el comando personalizado:
newcommandmysectionpage
begingroup
setbeamertemplatebackground
begintikzpicture %edit this tikzpicture to customize the size and colors of the background rectangles
useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight);
fill[color=MedianOrange] (0,7) rectangle(0.8,8);
fill[color=MedianLightBlue] (0.9,7) rectangle(thepaperwidth, 8);
endtikzpicture
setbeamercolorsection pagefg=white
setbeamertemplatesection page
begintikzpicture %edit this tikzpicture to customize the appearance of the section heading
node[overlay] at (1,2) insertsectionhead;
endtikzpicture
framesectionpage
endgroup
El resto de su código de preámbulo permanece intacto. El cuerpo del documento se verá así:
begindocument
framemaketitle
sectionIntroduction
mysectionpage %new code
beginframeMy presentation is aboutldots
beginitemize
item Some stuff
item And some other stuff
enditemize
endframe
enddocument
El resultado es:
Otra opción que sigue el mismo patrón que el MWE que utiliza condicionales para definir el fondo de una vez y por todas. No me gusta este enfoque porque no es muy modular, pero desde que @dcmst preguntó, aquí hay una solución con condicionales.
Primero, introduzcamos un nuevo condicional para las páginas de sección y configurémoslo en false
newififinsectionframe
insectionframefalse
Ahora podemos cambiar el background
plantilla de la siguiente manera
setbeamertemplatebackground
begintikzpicture
useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight);
ifnumthepage>1relax% Not the title page
ifinsectionframe%
node Some background; %% INSERT YOUR GRAPHICS HERE
else%
fill[color=MedianOrange] (0,8) rectangle(0.8,8.3);
fill[color=MedianLightBlue] (0.9,8) rectangle(thepaperwidth, 8.3);
fi%
else% Title page
fill[color=MedianBrown] (0,1.5) rectangle (thepaperwidth,thepaperheight);
fill[color=MedianOrange] (0,0.1) rectangle(3.45,1.4);
fill[color=MedianLightBlue] (3.55,0.1) rectangle(thepaperwidth,1.4);
fi
endtikzpicture
Entonces podemos crear un sectionframe
macro que establece la bandera correspondiente antes de crear un marco con la página de sección:
newcommandsectionframe
insectionframetrue
framesectionpage
insectionframefalse
Entonces si usas sectionframe
en lugar de framesectionpage
tienes el efecto deseado.
Una nota sobre el condicional para detectar la página de título: recomendaría crear un nuevo if ifintitleframe
en lugar de comprobar el número de página; además de ser más sólido semánticamente, también es más flexible porque ahora puede tener marcos de título en una página arbitraria (incluso más de una) en lugar de forzarla a estar en la primera página.
El problema es que la plantilla de la página de sección se “llama” dentro de un marco, pero la plantilla de fondo solo se puede cambiar antes de iniciar el marco. Además, establecer parches de banderas sectionpage
probablemente no funcionará porque los establecería después de que se componga el fondo.
Entonces, la solución más simple es definir un macro para crear la sección cuadro (en lugar de la página) para que pueda inyectar el código de cambio de fondo antes de iniciar el marco.
Primero, introduzcamos algunas macros para cambiar el fondo:
newcommandsetslidebg
setbeamertemplatebackground
begintikzpicture
useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight);
fill[color=MedianOrange] (0,8) rectangle(0.8,8.3);
fill[color=MedianLightBlue] (0.9,8) rectangle(thepaperwidth, 8.3);
endtikzpicture
newcommandsetsecbg
setbeamertemplatebackground
begintikzpicture
useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight);
node Something else;
endtikzpicture
newcommandsettitlebg
setbeamertemplatebackground
begintikzpicture
useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight);
fill[color=MedianBrown] (0,1.5) rectangle (thepaperwidth,thepaperheight);
fill[color=MedianOrange] (0,0.1) rectangle(3.45,1.4);
fill[color=MedianLightBlue] (3.55,0.1) rectangle(thepaperwidth,1.4);
endtikzpicture
setslidebg
donde se puede reemplazar el tikzcode en setsecbg
para producir los gráficos deseados.
Entonces puedes simplemente crear las macros titleframe
y sectionframe
como sigue:
newcommandtitleframe
settitlebg
framemaketitle
setslidebg
newcommandsectionframe
setsecbg
framesectionpage
setslidebg
así que ahora puedes escribir titleframe
en lugar de framemaketitle
y establezca sus fondos en consecuencia.
Acuérdate de que tienes la opción de decir si te fue preciso.