Cuaderno de GNUtas

Exportar de Org a odt (algunos consejos)

Aunque la salida a LaTeX desde Org Mode es siempre prioritaria para mí, de vez en cuando necesito exportar mis escritos y notas en Org al formato odt de LibreOffice. La forma de hacerlo es bien sencilla. Tecleamos en Emacs la secuencia C-e o-o y ya tenemos listo al momento nuestro documento odt. Para controlar los estilos en el proceso de exportación, podemos también definir una plantilla de LibreOffice a tal efecto (o un archivo *.xml que contenga todos esos estilos), y almacenarla donde queramos para invocarla luego, si añadimos al encabezado de nuestro documento Org esta línea (comillas incluidas):

#+ODT_STYLES_FILE: "<ruta-hacia>/mi-plantilla.ott"

o esta otra, en caso de que usemos un archivo *.xml

#+ODT_STYLES_FILE: "<ruta-hacia>/mi-hoja-de-estilos.xml"

Lo más sencillo, naturalmente, es crear la plantilla con LibreOffice. De esta forma:

  1. Lanzamos el exportador desde Emacs, con nuestro documento Org abierto, y abrimos el archivo odt resultante.
  2. Modificamos todos los estilos a nuestro gusto, tanto los predefinidos en LibreOffice como los que añade Org (cuyo nombre comenzará siempre por Org- y «lo que sea», como «OrgVerse», «OrgTitle», etc).
  3. Guardamos el documento como plantilla (extensión *.ott), para luego invocarla de la forma que se explicó más arriba.

Dicho todo esto, cabría añadir algo. El exportador a odt que viene por defecto en Org no va muy fino que digamos. Yo lo he probado en la versión de Org más reciente, la 9.1.14, y algunas anteriores, tanto en Arch Linux como en Fedora, y no hace algunas de las cosas que se le espera que hagan. Por ejemplo, no he sido capaz de añadirle a un bloque Org estilos personalizados de odt, salvo si se escribe código en bruto xml de LibreOffice, lo cual no es que sea muy agradable. Aparte de que luego debemos comentar ese código si queremos exportar a otros formatos, como LaTeX o html. Pero, investigando un poco, he encontrado en GitHub este «fork autorizado» del exportador de Org a odt, escrito por el propio autor del exportador «oficial». Hay de transfondo una serie de cuestiones que no alcanzo a comprender, sobre todo por qué no se añade esta versión del exportador (máxime, cuando el autor es el mismo) a la distribución oficial de Org en Emacs, porque el caso es que funciona a las mil maravillas. Para usarlo, no hace falta instalar todo el repositorio, sino simplemente el exportador a odt. Sería suficiente, en principio, con hacer lo siguiente:

  1. Clonar el repositorio en el directorio local que se nos antoje.
  2. Entrar en el directorio /lisp, buscar un archivo llamado ox-odt.el y copiarlo.
  3. Crear (si no existe ya) en nuestra carpeta local ~/.emacs.d un directorio llamado lisp/ y pegar allí ese archivo.
  4. Incluir, hacia el principio de nuestro archivo de configuración ~/.emacs la línea:
(add-to-list 'load-path "~/.emacs.d/lisp/")

Esto bastaría en principio —insisto— para que, cada vez que pulsemos la secuencia C-e o-o, Emacs acuda al nuevo exportador y no al que lleva «de fábrica». De esta forma podremos, entre otras cosas, añadir a un párrafo o (mejor) a un bloque de Org un estilo personalizado de LibreOffice. Baste un ejemplo práctico. En Org suelo usar un bloque que he llamado «lema», para situar allí las citas o dedicatorias que pueden encabezar un texto o un poema y que, tipográficamente hablando, se alinean a la derecha de la página. En la exportación a LaTeX este bloque «lema» se convierte en el entorno «lema», que ya tengo definido en una plantilla LaTeX1. Si mi documento Org lo quiero tener listo también para exportar a odt, simplemente coloco antes del bloque un atributo #+ATTR_ODT que llame a un estilo de LibreOffice ya contenido en mi plantilla personalizada. Algo así como esto:

#+ATTR_ODT: :style "lema"
#+begin_lema
Una variación del pesimismo
#+end_lema

Si queremos encabezar con una cita más larga, tal vez un poema, podemos también echar mano del bloque VERSE:

#+ATTR_ODT: :style "lema"
#+begin_lema
#+BEGIN_VERSE
La princesa está triste... ¿Qué tendrá la princesa?
Los suspiros se escapan de su boca de fresa,
que ha perdido la risa, que ha perdido el color.
La princesa está pálida en su silla de oro,
está mudo el teclado de su clave sonoro,
y en un vaso, olvidada, se desmaya una flor.

El jardín puebla el triunfo de los pavos reales.
Parlanchina, la dueña dice cosas banales,
y vestido de rojo piruetea el bufón.
La princesa no ríe, la princesa no siente;
la princesa persigue por el cielo de Oriente
la libélula vaga de una vaga ilusión.
#+END_VERSE
#+end_lema

Publicado: 02/10/2018

Última actualización: 18/05/20


Índice general

Acerca de...

Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.

Notas:

1

El exportador nativo de Org a LaTeX no sólo convierte en entornos los bloques predefinidos de Org, sino también cualquier otro cuyo nombre nos inventemos sobre la marcha, lo cual es bastante útil. Nuestro nuevo entorno, naturalmente, tendrá que estar definido en el preámbulo o la plantilla LaTeX que usemos para compilar.

© Juan Manuel Macías
Creado con esmero en
GNU Emacs