Una plantilla para exportar documentos desde emacs
Hace un tiempo, a raíz de presentar unos documentos, me preguntaron cómo me las apaño para que queden tan bien hechos. El secreto se llama LaTeX, como muchos sabéis, pero ayer mismo un amigo me preguntó por detalles más técnicos y la respuesta en ese momento se me quedó realmente corta. Aquí traigo una explicación más detallada de las cosas que tengo ya pre-paradas a la espera de la generación de documentos.
Los formatos que suelo trabajar para los documentos largos son PDF
y
epub
. Utilizo PDF
cuando necesito imprimir el documento en papel y
utilizo epub
cuando sólo requiere la lectura por pantalla. A veces,
ni siquiera monto el epub
y lo dejo en HTML
, como por ejemplo,
para las entradas de este blog.
Exportar a PDF
Como sabéis, y también lo dije antes, la exportación a PDF
se hace a
través de LaTeX
. En mi caso venía ya de antes trabajando con esta
herramienta para generar documentos y no necesité aprenderla aparte.
Para abreviar, como esto va de plantillas, pongo la cabecera que tengo
en un fichero en el directorio ~/Plantillas
para iniciar los textos
largos:
#+TITLE: Título #+SUBTITLE: Subtítulo #+DATE: \today #+AUTHOR: Notxor #+EMAIL: notxor@nueva-actitud.org #+LANGUAGE: es #+OPTIONS: d:(not "LOGBOOK") date:t e:t email:nil f:t inline:t num:t #+OPTIONS: p:nil pri:nil prop:nil stat:t tags:t tasks:t tex:t #+OPTIONS: timestamp:t title:t toc:t todo:t |:t #+LATEX_CLASS: book #+LATEX_CLASS_OPTIONS: [a4paper, 10pt, doubleside] #+LATEX_HEADER: \usepackage[left=2.5cm,top=2.5cm,right=2.5cm,bottom=2.5cm]{geometry} #+LATEX_HEADER: \usepackage[spanish]{babel} #+LATEX_HEADER: \usepackage{bbding} %fuentes con iconos # +LATEX_HEADER: \usepackage{enumitem} # Personalizar las cabeceras #+LATEX_HEADER: \usepackage[Bjornstrup]{fncychap} # Las siguientes lineas para cambiar de fuente el pdf # +LATEX_HEADER: \usepackage{mathpazo} %fuente palatino #+LATEX_HEADER: \usepackage{charter} %fuente charter #+LATEX_HEADER: \linespread{1.05} %separa un poco las líneas para que no quede apelotonado # Numerar las líneas de la página en los márgenes para referencias de corrección #+LATEX_HEADER: \usepackage[switch,pagewise]{lineno} #+LATEX: \linenumbers
En ese código hay algunos paquetes preparados pero no activados, por
el simple hecho de añadir un espacio después del #
. Quizá necesite
explicar algunos paquetes menos habituales:
\usepackage{bbding}
Permite utilizar iconos mediante una fuente. En ocasiones le añado el paquete
\usepackage{enumitem}
Ese paquete hace que podamos modificar a nuestro gusto las etiquetas de nuestras listas, para conseguir un poco más de personalidad en nuestros listados:
\begin{itemize}[label=\HandRight] \item Prueba \item Prueba \end{itemize}
o incluso
\begin{itemize}[label=\HandRight] \item abc \item[\PencilRight] def \end{itemize}
Y con esos dos bloques de código se consigue la siguiente salida:
o también, ya que he importado la fuente en cuestión, se pueden hacer
algunos separadores gráficos entre partes del documento y si tenemos
que hacerlos tanto para epub
como para PDF
se puede utilizar algo
como:
#+BEGIN_CENTER #+HTML: <p style="text-align:center">❆ ❄ ❆</p> #+LATEX: \SnowflakeChevron { } \SnowflakeChevronBold { } \SnowflakeChevron #+END_CENTER
En muchas ocasiones lo que necesito impreso debe ser corregido antes de ser entregado. Para eso utilizo el siguiente código:
# Numerar las líneas de la página en los márgenes para referencias de corrección #+LATEX_HEADER: \usepackage[switch,pagewise]{lineno} #+LATEX: \linenumbers
Lo que hace el paquete lineno
de LaTeX es escribir en los márgenes
un número de referencia de cada línea. Las opciones switch
y
pasewise
hace que se impriman en márgenes alternos para las páginas
pares e impares y que reinicie el contador en cada página. Así
encontrar los errores es más fácil, sobre todo si el corrector es otra
persona. Con hacer referencia al número de página y de línea es
suficiente.
Exportar a epub
directamente
Un fichero epub
no es más que un zip
que contiene dentro ficheros
html
o xhtml
, imágenes, css
, etc. Básicamente es un sitio web
encapsulado con la estructura de un libro. La forma más de andar por
casa para realizar un epub
es exportar a html
desde emacs y
luego importarlo a alguna de las herramientas como Sigil para hacer
la edición electrónica.
Desde org-mode
de emacs podemos generar directamente una
exportación de contenido a un fichero epub
. Para eso necesitamos dos
sencillos pasos. El primero es instalar el paquete ox-epub
por el
procedimiento habitual.
M-x package-install RET ox-epub
Una vez instalado, cuando queremos generar un epub
activamos la
exportación con el comando org-epub-export-to-epub
. Esto hace que en
nuestro menú C-c C-e
aparezca el correspondiente apartado, por lo
que completando C-c C-e E e
se genera un fichero epub
.
Igual que podemos añadir opciones para LaTeX cuando queremos
exportar a PDF
, también podemos añadir opciones al html
a lo largo
de nuestro código. Incluso, si utilizamos un css
personalizado,
podemos cargarlo y el exportador lo meterá en el epub
.
Conclusión
Generar documentos complejos con org-mode
es sencillo. Por defecto,
emacs realiza una exportación sencillo a PDF
a través de LaTeX y
a html
. Sin embargo, el uso de lectores ebook y otras herramientas
similares, hacen que el formato PDF
sea incómodo y el html
para
ajustarse a pantalla necesita algo más de estructura. El formato
epub
vino a cubrir esas deficiencias y podemos hacer que emacs nos
genere los contenidos de forma sencilla.
Cada uno tiene sus manías y es posible que los paquetes que utilizo para LaTeX no los utilices y prefieras tener otros, pero siempre es una buena idea tener nuestras cabeceras básicas guardadas en una plantilla para iniciar los documentos nuevos sin pensar demasiado, luego personalizar el resultado será más sencillo.