Generar libro en varios formatos con Pandoc

Un libro hoy en día puede estar disponible en varios formatos: HTML, PDF, EPUB, libro impreso, etc. Lo ideal es que esté disponible en la mayoría de formatos posibles para llegar al mayor número de personas posible. Sin embargo, no es cómodo editar varios archivos cuando solo queremos realizar un cambio. Para evitar ese trabajo tedioso podemos usar un formato base y convertir de este a otros formatos con Pandoc.

Podemos escribir el libro con LibreOffice Writer o con un editor de texto plano en formatos como HTML, LaTeX, Markdown, etc. Para convertir ese archivo a otro formato bastaría con ejecutar un comando.

Para ilustrar como hacerlo todo te enseñaré cómo genero este libro. Como sistema de control de versiones decidí usar Git y crear un repositorio público. Puedes clonar el repositorio ejecutando los siguientes comandos:

sudo apt install git
git clone https://notabug.org/jorgesumle/la-cultura-es-libre-una-historia-de-la-resistencia-antipropiedad

Una vez clonado verás una carpeta llamada markdown, allí es donde se encuentra el texto del libro en formato Markdown. Instala Pandoc y Make ejecutando sudo apt install make pandoc. Basta con ejecutar make html en la carpeta raíz del repositorio para generar el HTML; con el formato EPUB hay que ejecutar make epub.

Hay pocas líneas de código para generar los formatos HTML y EPUB. Sin embargo, para generar el PDF necesito instalar más dependencias y usar más código para generar y editar un archivo LaTeX que luzca bien cuando se convierta a PDF. Para ello yo he añadido código LaTeX personalizado (se encuentra en la carpeta latex_personalizado) al archivo LaTeX con el que genero el PDF. También es posible generar un archivo PDF bonito usando CSS, pues se puede elegir un generador de PDF basado en HTML con la opción --pdf-engine.

La documentación de Pandoc es un buen punto de partida para ver cómo añadir metadatos y generar archivos de salida cómo necesites. Si, como yo, optas por usar LaTeX para generar el PDF, en Internet encontrarás documentación y personas que proponen soluciones a problemas comunes.