Saltar al contenido

Fondo diferente para la página de sección en Beamer

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:

ingrese la descripción de la imagen aquí

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *