Org mode y el exportador de PDF perdido
Una historia sobre mi primera experiencia y los obstáculos que se me presentaron al tratar de exportar mis apuntes de documentos Org a PDF. La solución es simple para documentos escritos en idiomas que usan el alfabeto latino, como español, inglés, etc. Para idiomas como Japonés, la solución me pareció tan compleja, que preferí seguir exportando a HTML solamente.
Si al intentar exportar un documento de Org mode a PDF le sale un error como PDF file ./nihongo.pdf wasn’t produced, revise sus búfers en Emacs. Cuando ocurre un error, Org mode pone la información detallada del error en un búfer. Yo me encontré con esta, que me ayudó a resolver el problema:
/bin/bash: pdflatex: no se encontró la orden [3 times] org-latex-compile: PDF file ./nihongo.pdf wasn't produced
Esto significa que el programa pdflatex no está instalado. En Debian, instale el paquete texlive-latex-extra, que es el que contiene el programa, e intente exportar su documento nuevamente. Por ejemplo, si presiona C-c C-e l o en Org mode, el documento se convierte a PDF y se abre en la aplicación predeterminada del sistema para ver este tipo de documentos.
Esto resolvió mis problemas para exportar PDF de documentos en inglés y español, pero la exportación de mis documentos multilingües que contienen japonés siempre fallaba con errores como este:
! Package inputenc Error: Unicode char \u8:ら not set up for use with LaTeX. See the inputenc package documentation for explanation. Type H <return> for immediate help.
En la lista de correos de Org mode me dieron una solución para este problema, pero la configuración que hay que hacer me pareció tan compleja que prefiero seguir exportando mis documentos solamente a HTML, para lo que no hay que hacer nada, simplemente presionar C-c C-e h h, y se puede escribir en cuanto idioma existe.
Travesía previa
Hace nada estaba tratando de exportar un documento de Org mode a PDF usando la combinación de teclas C-c C-e l o como dice en el manual. Pero me salió un error: PDF file ./nihongo.pdf wasn’t produced. Nada más. Y yo bien nuevo que estoy en Emacs, no sé dónde buscar errores detallados…
Afortunadamente, buscando en la Web, me encontré con un error similar que me dio la pista de dónde buscar el registro de errores de Org mode: cuando ocurre un error, Org mode pone la información de error detallada en un búfer. Entonces cambié búfers rápidamente con C-x-FlechitaDerecha y ahí estaba el error:
/bin/bash: pdflatex: no se encontró la orden [3 times] org-latex-compile: PDF file ./nihongo.pdf wasn't produced
«¡Claro! Es que yo no tengo ese pdflatex», dije para mis adentros. Así que abrí Synaptic (es que estoy en Debian 8) y busqué pdflatex. Salieron varios paquetes relacionados con texlive, pero ninguno listaba a pdflatex explícitamente en sus descripciones. «¡Ah, triple hijue…!», pensé. Así que seleccioné el paquete texlive-base y lo instalé esperando que contuviera la aplicación pdflatex. Afortunadamente así fue. Abrí un terminal, escribí pdfl, presioné la tecla de tabulación y Bash autocompletó el nombre a pdflatex. «¡Listo, está instalada!», pensé aliviado. «Ahora, a probar desde Emacs», me dije a mí mismo.
En Emacs, cambié de búfer a mi documento de Org, invoqué el conjuro de exportación otra vez y… «¡MIERDA, otro error!», dije con frustración. El error decía: PDF file ./nihongo.pdf wasn’t produced: [LaTeX error]. Por lo menos es un error diferente al primero. Eso ya es un avance. Al revisar el registro de errores, no encontré más que un eco del mismo error. «Eso no me sirve», pensé. Entonces, a leer la pregunta en Stack Overflow otra vez… Pero no encontré nada más relacionado con mi error.
Por cosas de la vida, me dio por ir a la carpeta fuente de mi documento de Org y me encontré con dos archivos de registro de errores generados durante el proceso de exportación: missfont.log y nihongo.log (nihongo.org es el nombre de mi archivo de Org). Al ver el primer archivo, missfont.log, ahí mismo pensé «¡Ah, eso es porque mi documento tiene japonés!». Revisé los dos archivos y encontré varias líneas relacionadas con tipos de letras no disponibles. Entonces, recordé que en la pregunta de Stack Overflow había visto algo relacionado. Busqué en Synaptic los paquetes de texlive que tuvieran que ver con tipografías y decidí instalar texlive-fonts-extra no sin antes sorprenderme por los 885 MiB de tamaño. Diez minutos después, los paquetes estaban instalados. Otra vez, a probar la exportación.
Yyyy… otro error diferente: PDF file ./nihongo.pdf wasn’t produced: [package error]. «¡No seamos tan malparidos!», me quejé al aire. Otra vez revisé el directorio de mi documento de Org y los registros de errores y encontré más problemas relacionados con el uso de japonés en mi documento. Cien errores. Todos parecidos a este: Package inputenc Error: Unicode char u8:ら not set up for use with LaTeX. Acompañados en la línea inferior de una recomendación que decía: See the inputenc package documentation for explanation. Entonces, a buscar qué es inputenc y el tipo de error en el manual… ¡Ay LaTeX!
Al día siguiente, busqué el error Package inputenc Error: Unicode char u8:ら not set up for use with LaTeX, pero las soluciones que encontré requerían modificar el documento fuente de LaTeX, que es generado por Org como documento intermedio para la conversión a PDF, y la modificación sería ineficiente para mi caso porque me tocaría «informar» a LaTeX sobre todos los caracteres japoneses que voy a usar en mi escrito. La cosa es que cuando uno usa Org mode, no lidia directamente con documentos .tex; esa es la gracia: no lidiar con la complejidad de ese formato; eso lo debe hacer el programa Org por uno. Yo lo que necesito es que Org mode se encargue de exportar correctamente mis documentos multilingües. Entonces, a preguntar en IRC a ver si alguien usa un sistema GNU basado en Debian y exporta a PDF documentos escritos en japonés.
Días después, me di cuenta de que había omitido una prueba más sencilla, antes de ponerme a exportar documentos PDF en japonés. Por eso decidí no preguntar nada en IRC todavía y probar eso que omití: exportar a PDF un archivo sencillo en inglés para tratar de documentar bien los pasos mínimos para exportar a PDF, haciendo a un lado los problemas que vienen al tratar de exportar PDF en otros sistemas de escritura como el del español y el del japonés. Entonces escribí este documento mínimo:
#+TITLE: Exporting Org notes to PDF #+DATE: 2015-09-06 Hello world. I hope this works.
Abrí el documento en Emacs, en una máquina diferente a la que había usado para escribir y exportar mis apuntes. Presioné el atajo de exportación a PDF y, como era de esperarse, me salió el mismo error del inicio: PDF file ./eigo.pdf wasn’t produced. Con los mismos detalles en el registro de errores:
/bin/bash: pdflatex: no se encontró la orden [3 times] org-latex-compile: PDF file ./eigo.pdf wasn't produced
Entonces, a hacer lo mismo que antes: instalar pdflatex que está en el paquete texlive-base… Pero no. Al instalar este paquete pdflatex no se instaló. Volví a buscar en Synaptic e instalé el paquete texlive-latex-extra esperando que pdflatex estuviera ahí. Afortunadamente así fue. ¿Cómo hará uno entonces para encontrar aplicaciones que hacen parte de un paquete pero que no aparecen descritas o listadas en la información del paquete?
Bueno. Ya con pdflatex instalado, abrí el documento de prueba otra vez y presioné el atajo de exportación a PDF. El documento se generó se abrió en el lector de PDF. Luego abrí un documento en español y también funcionó bien. Por último, probé con mis apuntes de japonés. Este no funcionó. Me salió el mismo segundo error del inicio: PDF file ./nihongo.pdf wasn’t produced: [LaTeX error]. Pero, a diferencia de la última vez, no hay archivo missfont.log. De todas formas, como todo parecía indicar que la causa del error es el uso de japonés en el documento, me puse a buscar más cosas relacionadas con japonés y LaTeX, antes de probar instalar otra vez el paquete texlive-fonts-extra como lo había hecho en la otra máquina.
Después de ojear paquetes en Synaptic, encontré uno que se veía prometedor: texlive-lang-japanese. Probé otra vez exportar mis apuntes de japonés después de instalarlo, pero nada:
org-latex-compile: PDF file ./nihongo.pdf wasn't produced: [package error]
Y los mismos cien errores como este en el búfer Org PDF LaTeX Output:
! Package inputenc Error: Unicode char \u8:ら not set up for use with LaTeX. See the inputenc package documentation for explanation. Type H <return> for immediate help.
Presionar H <return> en ese búfer, no dio más información. ¿Qué hacer entonces?
Unas horas después se me ocurrió comprobar si los paquetes relacionados con LaTeX que había instalado hasta el momento sí eran suficientes para exportar un documento de LaTeX con japonés a PDF. Buscando en la Web encontré un artículo en el blog de la Free Software Foundation de Europa específicamente sobre eso: Using LaTeX to make PDF documents with Japanese characters. En esta entrada se da un archivo de ejemplo, JIS.tex, que al pasárselo al programa pdflatex debería generar el documento PDF correctamente. Entonces descargué el archivo y probé:
$ pdflatex JIS.tex
El archivo se generó sin problemas. O sea que, aparentemente, ya tenía los paquetes suficientes para que Org pudiera convertir de .org a .tex y luego a .pdf. «Tal vez el archivo .tex generado por Org no tiene la configuración necesaria», pensé. Entonces generé el archivo .tex de mis apuntes de Japonés con el atajo C-c C-e l L para examinarlo en un búfer y compararlo con el de ejemplo del blog, JIS.tex… Este último archivo tenía varias líneas que parecían especificar codificación de caracteres y tipografías específicas para japonés. Mi archivo .tex, en cambio, no tenía nada de eso. «Debe de haber alguna forma de especificar eso en Org», pensé. Pregunté en IRC, pero nadie sabía nada. Entonces, a leer el manual otra vez. Y si ahí no hay nada, a preguntar en la lista de correos…
Un día después pregunté en la lista de correos y la respuesta me desanimó. La manera de habilitar el japonés en documentos PDF es tan compleja que no tiene gracia. Yo me esperaba una configuración de una sola línea o algo así, ¿pero eso?… Mejor sigo exportando solamente a HTML, donde no hay que hacer nada adicional y puedo escribir en cuanto idioma existe.
おわり (Fin)
Temas relacionados: