Saltar al contenido

Diseña un tema Beamer personalizado desde cero

Solución:

Crea tu propio tema: nadie te obliga a explotar temas internos, externos, de color y de fuente predefinidos. Mira este tema: ¿es instantáneamente reconocible como Beamer ?

Pero, tengamos un ejemplo práctico: es un tema de una hora, por lo tanto, tómelo solo como demostración. Se pueden realizar muchas mejoras. La referencia es una de tus imágenes.

A este nuevo tema lo llamamos texsx principalmente por el hecho de que no tengo mucha fantasía con los nombres. Entonces en un directorio creamos los siguientes archivos:

  1. beamercolorthemetexsx.sty
  2. beamerinnerthemetexsx.sty
  3. beamerouterthemetexsx.sty
  4. beamerthemetexsx.sty
  5. texsx-example.tex

Para construir el tema, podríamos aprovechar TikZ: es muy probable que puedas evitarlo, pero la pregunta tiene la etiqueta mágica, así que me sentí casi obligado (incluso si el true la razón es: con TikZ fue más rápido ;) ).

Así que mantenemos beamerthemetexsx.sty muy simple:

mode

% Requirement
RequirePackagetikz

% Settings
useinnerthemetexsx
useouterthemetexsx
usecolorthemetexsx

setbeamertemplatenavigation symbols
setbeamertemplateblocks[rounded][shadow=true]  

mode

cargamos los temas, eliminamos los símbolos de navegación y definimos el aspecto de los bloques.

Ahora, comencemos a definir la página de título en el inner tema. Como necesitamos probar lo que estamos haciendo, al principio es mejor configurar el documento de ejemplo:

documentclassbeamer
usepackage[utf8]inputenc
usepackage[T1]fontenc
titleThere Is No Largest Prime Number
date[ISPN ’80]27th International Symposium of Prime Numbers
author[Euclid]Euclid of Alexandria texttt[email protected]

usethemetexsx

begindocument

beginframe
titlepage
endframe

enddocument

Nada es extraño ni difícil hasta ahora. Es hora de construir la portada; Procedería de la siguiente manera:

  • explotar el background plantilla para establecer el fondo de la página de título
  • definir un title page plantilla en la que se establecen realmente el título, el autor y la fecha.

Las operaciones descritas se traducen en beamerinnerthemetexsx.sty de la siguiente manera:

mode

setbeamertemplatebackground
  begintikzpicture
  useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight);
  fill[color=brown] (0,2) rectangle (thepaperwidth,thepaperheight);
  fill[color=orange] (0,0) rectangle(2.95,1.9);
  fill[color=blue!50!cyan!80] (3.05,0) rectangle(thepaperwidth,1.9);
  ifnumthepage>1relax%
   fill[white,opacity=1] (0,0) rectangle(thepaperwidth,thepaperheight);
   fi
  endtikzpicture


% Title page
defbeamertemplate*title pagetexsx[1][]
 
   vskip6cm%
    beginbeamercolorbox[wd=12cm,leftskip=3cm,sep=8pt,#1]title page header
      usebeamerfonttitleinserttitlepar%
    endbeamercolorbox%
    vskip0.75cm%
    beginbeamercolorbox[wd=12cm,leftskip=3cm,#1]author
      usebeamerfontauthorinsertauthor%
    endbeamercolorbox
     vskip0.2cm%
    beginbeamercolorbox[wd=12cm,leftskip=3cm,#1]date
      usebeamerfontauthorinsertdate%
    endbeamercolorbox
  vfill


mode

Es importante notar que nosotros mismos definimos el cuadro delimitador a través de useasboundingbox (0,0) rectangle(thepaperwidth,thepaperheight); luego, gracias a la prueba en el número de página, aplicamos el fondo solo en la portada.

En el title page template, entonces ponemos los elementos mencionados anteriormente. Caracterizamos su aspecto cromático pasando a beamercolorboxestitle page header, author, date entonces necesitamos estas definiciones. Vamos a agregarlos al beamercolorthemetexsx.sty:

mode

% Settings
setbeamercolor*title page headerfg=white
setbeamercolor*authorfg=white
setbeamercolor*datefg=white

mode

Ahora, si compilamos nuestro ejemplo obtenemos:

ingrese la descripción de la imagen aquí

¡Frio!

Sigamos definiendo el aspecto del título del marco. Esto se hace con una plantilla llamada frametitle en el beamerouterthemetexsx.sty, que se parece a:

mode

% Frame title
defbeamertemplate*frametitletexsx[1][]

vskip1cm%
  beginbeamercolorbox[wd=paperwidth,ht=1.2cm]frametitle 
  begintikzpicture
  useasboundingbox[fill=white](0,0) rectangle(thepaperwidth,1.2);
  fill[orange] (0,0) rectangle(2.95,1.2);
  fill[blue!50!cyan!80] (3.05,0) rectangle(thepaperwidth,1.2);
   ifxinsertframesubtitle@empty%
      node[anchor=west, white,font=large] at (3.2,0.61)insertframetitle;
      else%
      node[anchor= west, white,font=large] at (3.2,0.81)insertframetitle;%
       node[anchor= west, white,font=small] at (3.2,0.41)insertframesubtitle;%
      fi
  endtikzpicture
  endbeamercolorbox


mode

Básicamente, aprovechamos el mismo concepto de la página de título para dibujar algunos cuadros; luego verificamos si el subtítulo está presente: en consecuencia, establecemos la posición del título y el subtítulo o establecemos solo el título del marco con nodos TikZ.

Necesitamos nuevas pruebas para verificar nuestra idea. Entonces agreguemos algo en nuestro ejemplo:

documentclassbeamer
usepackage[utf8]inputenc
usepackage[T1]fontenc
titleThere Is No Largest Prime Number
date[ISPN ’80]27th International Symposium of Prime Numbers
author[Euclid]Euclid of Alexandria texttt[email protected]
usethemetexsx begindocument beginframe titlepage endframe beginframe frametitleThere Is No Largest Prime Number framesubtitleThe proof uses textitreductio ad absurdum. begintheorem There is no largest prime number. endtheorem beginenumerate item<1-| [email protected]> Suppose $p$ were the largest prime number. item<2-> Let $q$ be the product of the first $p$ numbers. item<3-> Then $q+1$ is not divisible by any of them. item<1-> But $q + 1$ is greater than $1$, thus divisible by some prime number not in the first $p$ numbers. endenumerate endframe beginframeA longer title beginitemize item one item two enditemize endframe enddocument

Como también tenemos listas, tenemos que definir su aspecto y color. Entonces necesitamos agregar:

setbeamercolor*itemfg=orange

en nuestro beamercolorthemetexsx.sty y:

% Items
setbeamertemplateitems[square]
setbeamertemplatesections/subsections in toc[square]

en beamerinnerthemetexsx.sty. No es obligatorio poner las últimas definiciones en el tema interior, pero seguí el estilo Beamer.

Me parece que podemos compilar nuestro documento; el resultado es:

ingrese la descripción de la imagen aquí

Ok, estoy de acuerdo: los colores no son los de la imagen de referencia y el subtítulo no está perfectamente alineado con el título (esto se debe a la diferencia de tamaño de fuente), pero el nuevo tema está aquí.

Usando la respuesta de Claudio como punto de partida, desarrollé dos temas que puse a disposición aquí, uno basado en el tema de PowerPoint Median y otro basado en el tema de Powerdot KlopeSpring. Puede que haya más por venir.

Además de las técnicas que Claudio demostró, utilicé la textpos paquete para hacer un posicionamiento absoluto del texto en la página.

Para lograr diferentes fondos de marco en páginas de sección y marcos simples, utilicé algo como

newcommandsectionframe
    setbeamertemplatebackground
      % draw the different background
    
    setbeamertemplateheadline
    framesectionpage

Tenga en cuenta los corchetes dobles; el par interno pone todo en un grupo y, por lo tanto, mantiene los cambios de plantilla locales.

A continuación se muestran algunas imágenes:

diapositivas de muestra

Si te ha sido provechoso nuestro artículo, sería de mucha ayuda si lo compartieras con más desarrolladores de esta forma contrubuyes a difundir nuestro contenido.

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



Utiliza Nuestro Buscador

Deja una respuesta

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