Notxor tiene un blog

Defenestrando la vida


Presentaciones con org-beamer-mode

Ya hablé de cómo me apaño para tener todo en modo texto y uno de los apartados sobre el que pasé muy por encima fue el de hacer presentaciones en modo texto. Aprovechando que el día 12 tengo una charla para la Asociación con quien colaboro, me he decidido a escribir un poco y mostrar la presentación que he preparado para la ocasión.

Generando la presentación

El modo org-beamer-mode de Emacs es un modo menor que debemos cargar cuando queramos hacer una presentación desde org-mode. Básicamente lo que hace es añadir algunas facilidades al modo principal y también los pichorros de exportación.

Si estás acostumbrado a utilizar directamente Beamer para generar esas presentaciones, también lo puedes hacer modificando el archivo LaTeX en lugar de el org. Sin embargo, me detendré a explicarlo desde el formato de Emacs.

Si alguien quiere descargarse el fichero completo, lo puede encontrar junto a este artículo.

Cabecera

Hay que recordar que es necesario cargar el modo org-beamer-mode para tener acceso a todas las opciones de Beamer. Para que lo haga automáticamente Emacs podemos añadir a la cabecera una línea que contenga #+STARTUP: beamer.

En la cabecera, las líneas más importantes son LATEX_CLASS y sus opciones en LATEX_CLASS_OPTIONS: en nuestro caso beamer y [presentation]. Esas dos líneas se convertirán en el fichero tex generado en:

#+TITLE: Redes Sociales
#+AUTHOR: Notxor
#+DATE: 2019-05-12
#+OPTIONS: H:2 toc:nil num:t notes:t
#+LATEX_CLASS: beamer
#+LATEX_CLASS_OPTIONS: [presentation]

Para modificar el aspecto se utiliza algún tema de Beamer. Siempre es bueno echar un ojo a las opciones con las que podemos jugar. En mi caso he utilizado el theme que se llama Madrid, pero lo he personalizado a mi manera para cambiarle los colores: el fondo, las cabeceras, los bloques, etc.

#+BEAMER_THEME: Madrid

Para la personalización sólo hay que encabezar cada una de las siguientes líneas con su correspondiente LATEX_HEADER:

Una de las manías que tiene el org-beamer-mode cuando genera el documento es llamar Outline a los contenidos; por eso los desactivo en OPTIONS poniendo toc:nil y luego los genero con:

#+BEAMER: \begin{frame}{Contenidos}
#+BEAMER: \tableofcontents
#+BEAMER: \end{frame}

Como se puede apreciar, se puede introducir cualquier comando y #+BEAMER: se convierte en un sinónimo de #+LATEX:.

La última línea de la cabecera es una de las opciones que nos proporciona org-mode para definir las columnas en las que se mostrarán las propiedades si queremos:

#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_act(Act) %4BEAMER_col(Col) %10BEAMER_extra(Extra)

Así, por ejemplo, si dejamos la visualización como se muestra por defecto, veremos el documento de la siguiente manera:

visor-sin-columnas.png

Sin embargo, para visualizar los datos de una manera más rápida suelo activar el modo de visualización de columnas con C-c C-x C-c o lo que es lo mismo, el comando org-columns:

visor-con-columnas.png

Si nos estorban las columnas y la queremos desactivar utilizamos el comando org-columns-quit y volvemos al modo normal.

Las transparencias con bloques

El tema de las transparencias es sencillo cuando se entiende. En la cabecera hemos definido en las opciones H:2, lo cual quiere decir que las cabeceras principales son 2. Las de primer nivel marcarán los apartados dentro de la charla y luego, las de segundo nivel definen cada transparencia. Es decir, al exportar la presentación, las de primer nivel se traducirán por \section mientras que las de segundo nivel crearán un entorno frame; esto es: una transparencia.

Las entradas de tercer nivel y posteriores, son partes de una transparencia. Se controlan mediante las propiedades de cada cabecera. Por ejemplo, si tenemos el siguiente código:

*** Cabecera
    :PROPERTIES:
    :BEAMER_ACT: <2->
    :BEAMER_ENV: block
    :END:
Esto es un texto

El Emacs generará el siguiente código LaTeX:

En beamer_env pueden ir las opciones block, alert, example o note. El contenido que se encuentre en una cabecera marcada como note, no aparecerá en la presentación (a no ser que se fuerce) sino que se visualizará con la herramienta que tenga capacidades para mostrar las anotaciones durante la presentación.

Uso de columnas

Las transparencias también se pueden usar dividiéndolas en columnas y cada columna puede contener cualquier tipo de contenido, incluso un bloque. Por ejemplo, para tener una transparencia con un gráfico y un texto explicativo, podríamos utilizar el siguiente código:

** Título de la transparencia
*** Imagen
    :PROPERTIES:
    :BEAMER_COL: 0.48
    :END:
[[fichero-de-imagen]]
*** Texto                            :B_block:
    :PROPERTIES:
    :BEAMER_ENV: block
    :BEAMER_COL: 0.48
    :END:
Este es el texto explicativo de la imagen.
*** Notas                            :B_note:
    :PROPERTIES:
    :BEAMER_ENV: Note
    :END:
Aquí puedes escribir lo que quieras y se corresponderá con las anotaciones
para la transparencia

Como se puede apreciar, dentro de la columna también se pueden utilizar las estructuras de bloque.

Presentación de una transparencia por partes

Es habitual en las presentaciones que no se muestre toda la información de un golpe. Sobre todo en las listas es muy frecuente que cada elemento o grupo de elementos se muestren de forma escalonada.

Si utilizamos bloques, por ejemplo, podemos utilizar una propiedad beamer_act para seleccionar el cuándo estará visible una parte de la transparencia. Lo normal es que la información esté oculta hasta que se muestra y permanezca visible hasta el final de la visualización, para eso utilizaremos una estructura <3->, por ejemplo, que mostrará el ítem que afecte desde el tercer paso hasta el final. Si nos interesara que se mostrara sólo en determinados pasos podríamos utilizar el formato <2,5> que mostrará la información sólo durante los pasos 2 y 5. Si utilizamos el formato <2-4> mostrará la información los pasos del 2 al 4.

Podemos utilizarlo en una cabecera como hemos visto antes, pero también lo podemos hacer en una simple lista colocando delante de ella sin ninguna línea en blanco entre #+ATTR_BEAMER: overlay <+-> y el primer guión. Por ejemplo:

#+ATTR_BEAMER: :overlay <+->
- El primer elemento
- El segundo elemento
- El tercer elemento

Sin embargo, veremos que cuando se cargue la transparencia será visible el primer elemento de la lista, lo que nos puede resultar inconveniente. Si queremos controlar cuándo se mostrará cada elemento, podemos utilizar el marcado en línea. El código quedará como sigue:

#+ATTR_BEAMER: :overlay <+->
- @@beamer:<2->@@ El primer elemento
- @@beamer:<3->@@ El segundo elemento
- @@beamer:<4->@@ El tercer elemento

Presentación por pantalla

Una vez que tenemos nuestra presentación preparada es el momento de generarla y mostrarla por pantalla. El comando de exportación es C-c C-e l P para generar el fichero pdf que contiene nuestro flamante trabajo.

Muchos visores de documentos pdf tienen, a estas alturas, un modo presentación. Algunos, como Okular, permiten dibujar en la transparencia según está proyectándose, activar las transiciones y efectos. En los ordenadores de otros, normalmente se encuentra instalado el Acrobat reader y también permite esas opciones. Sin embargo, cuando utilizo mi ordenador, normalmente, suelo lanzar dos aplicaciones para la línea de comandos: Impressive y pdfpc.

Impressive

Básicamente, Impresive es una aplicación que utiliza mupdf como rederer de pdf, visualizando los resultados con la librería de Python, pygame. Sin embargo, tiene algunas opciones que son bastante resultonas cuando lo utilizas para presentar el trabajo. Entre ellas la posibilidad de establecer transiciones entre las transparencias es destacable porque las hace muy bien.

Durante la presentación puedes utilizar una serie de comandos que te facilitan las cosas:

q
Sale de la presentación.
Tab
muestra todas las transparencias en miniatura para poder seleccionar la que quieres.
f
Cambia el modo de pantalla completa.
t
Muestra u oculta el tiempo en una esquina de la pantalla
enter
Muestra un círculo entorno al cursor del ratón mientras difumina el resto de la transparencia para centrar la atención en lo que quieres remarcar.
z
activa y desactiva el modo zoom.

También se pueden remarcar zonas de una transparencia con el ratón, e incluso se puede guardar la información de esas cajas pulsando la tecla s para que la próxima vez que se utilice esa presentación, las cajas ya estén cargadas.

He mencionado las opciones más habituales, pero tiene muchas opciones más y es una lista muy larga, por lo que remito a quien quiera ampliar la referencia a su página web para explorar todas esas opciones.

pdfpc

Esta herramienta está basada en las librerías GTK para realizar las presentaciones. En este caso, tiene visualización con dos monitores y también puede reproducir vídeo incrustado en la presentación. Permite la visualización de las notas incrustadas y hacer nuevas anotaciones que se guardarán en un fichero de texto con extensión pdfpc.

Remito a su página web para investigar todas las opciones con las que viene esta herramienta. De todas ellas, las que más utilizo son las siguientes:

8
activa y desactiva el modo láser para remarcar cosas en la pantalla.
5
activa y desactiva el modo dibujo para dibujar directamente sobre la transparencia.
6
Borra el dibujo.
2
Alterna entre el borrador y el lápiz de dibujo.
b
Apaga la pantalla de presentación, la pone en negro. Muy útil cuando alternamos entre una presentación y una pizarra.
h
Oculta la ventana de presentación y nos permite utilizar otras aplicaciones y herramientas.
f
Congela la pantalla de presentación, lo que nos permite buscar entre las transparencia la que queremos sin marear al personal.
Tab
Muestra una miniatura de todas las transparencias para poder seleccionar la que queremos.
S
Guardar la sesión actual. Guarda en el fichero con extensión pdfpc la transparencia en la que estamos.
R
Restaura la última sesión guardada.

Esta herramienta es mejor cuando trabajamos con un proyector, pero si vamos a utilizar sólo la pantalla del ordenador para realizar la presentación, es mejor utilizar impressive.


Comentarios

Debido a algunos ataques mailintencionados a través de la herramienta de comentarios, he decidido no proporcionar dicha opción en el Blog. Si alguien quiere comentar algo, me puede encontrar en Mastodon y en Diaspora con el nick de Notxor.

También se ha abierto un grupo en Telegram, para usuarios de esa red.

Disculpen las molestias.