El día de quien usa LaTeX termina en cuanto un coautor dice «mándamelo en Word». El puente habitual es pandoc, un conversor que va y viene entre Markdown, LaTeX y .docx, pero los dos sentidos no se parecen en nada. Word → LaTeX construye una estructura que antes no existía, así que no se pierde nada. LaTeX → Word hace lo contrario: aplana la estructura que usted levantó con cuidado — el vínculo entre \label y \ref, el significado de un \newcommand, la forma de una fórmula. LaTeX es un programa; un .docx es el registro de un resultado terminado. Se puede ejecutar un programa y guardar su resultado, pero no reconstruir el programa a partir del resultado. Esa asimetría es la columna vertebral de esta página.
Por qué LaTeX → Word pierde más que el sentido contrario
La respuesta es sencilla: en el destino no hay nada que lo reciba. Un .docx es en esencia un recipiente de párrafos, formato de caracteres y nombres de estilo. No tiene equivalente de \newcommand ni maquinaria para recalcular el número al que apunta un \ref. Así que pandoc traduce su intención hasta donde alcanza el vocabulario de Word y descarta el resto. Los números se congelan en el valor que tuvieran y las referencias cruzadas pasan a ser caracteres, no enlaces vivos. El sentido contrario es mucho más cómodo. Un documento de Word apenas tiene estructura más allá de niveles de título, listas y negritas, así que pandoc se limita a proyectarlos sobre \section e itemize: la información solo puede añadirse, nunca desaparecer. La asimetría está escrita también en la propia historia de pandoc: la salida docx llegó con pandoc 1.9 en 2012, y el lector de docx, capaz de entender el control de cambios, lo aportó Jesse Rosenthal en 2014, seis y ocho años después del comienzo del proyecto.
Fundamentos de pandoc: -f, -t y --pdf-engine
Usar pandoc consiste en nombrar el formato de entrada con -f (--from) y el de salida con -t (--to). En el centro hay un único árbol de sintaxis abstracta: los readers construyen el AST y los writers escriben a partir de él, y por eso añadir formatos no multiplica el trabajo. Su autor, John MacFarlane, es catedrático de filosofía en la Universidad de California en Berkeley y empezó el proyecto para aprender Haskell. La primera versión, publicada el 3 de agosto de 2006, tenía unas 3.000 líneas y ya sabía convertir entre Markdown, reStructuredText, HTML y LaTeX. Hoy maneja más de cincuenta formatos de entrada y más de setenta de salida. Añadir --pdf-engine=lualatex lleva de un tirón hasta el PDF a través de un motor LaTeX, pero conviene saber que pandoc no forma parte de TeX Live: es un programa aparte escrito en Haskell y hay que instalarlo por separado.
pandoc -f markdown -t latex in.md -o out.tex # Markdown to LaTeX
pandoc in.md -o out.pdf --pdf-engine=lualatex # Markdown straight to PDF
pandoc in.tex -o out.docx # LaTeX to Word
pandoc in.docx -o out.tex # Word to LaTeXHay otros dos asideros para dar forma a la salida. --template sustituye el andamiaje exterior de los formatos de salida textuales (latex, html y afines), de modo que puede colocar su propio preámbulo o su propio \documentclass. No hace nada con formatos binarios como .docx: de eso se encarga el --reference-doc visto antes. El otro asidero es un filtro Lua (--lua-filter), que reescribe el AST directamente, tras la lectura y antes de la escritura. Tareas como «convertir este entorno en otro encabezado» o «eliminar todos los \todo{...}» son mucho más seguras en esa etapa que a base de expresiones regulares sobre la fuente LaTeX.
Qué entiende pandoc de LaTeX y si le avisa
pandoc entiende solo una parte de LaTeX, pero tampoco calla del todo. En matemáticas, cuando encuentra algo que no sabe analizar imprime el aviso Could not convert TeX math y deja esa fórmula en la salida como LaTeX: la deja pasar en vez de descartarla. Las macros propias aguantan más de lo que cabría esperar: con la extensión latex_macros activa, pandoc, en palabras del manual oficial, analiza las definiciones de macros de LaTeX y aplica las macros resultantes a todas las matemáticas LaTeX y a todo el LaTeX en bruto. Así que un \newcommand{\R}{\mathbb{R}} pasa sin problema. Lo que de verdad desaparece en silencio viene después. Un bloque que pandoc clasifica como LaTeX en bruto —un entorno tikzpicture, por ejemplo— se conserva en el AST como raw, pero los writers de docx y HTML no lo emiten. No se imprime ningún aviso, a diferencia de lo que ocurre con las fórmulas, así que la pérdida se descubre solo al abrir el archivo en Word y ver que la figura sencillamente no está.
Definir el aspecto del archivo de Word con --reference-doc
Cuando el aspecto del .docx producido no convence, lo que hay que tocar no es una plantilla sino --reference-doc. El manual oficial explica el mecanismo sin rodeos: el contenido del docx de referencia se ignora y solo se usan sus hojas de estilo y sus propiedades de documento —incluidos márgenes, tamaño de página, encabezado y pie— en el nuevo docx. El archivo de referencia es una muestra de formato en blanco, no un texto modelo. Por eso la forma correcta de prepararlo es extraer el archivo de referencia predeterminado de pandoc, abrirlo en Word o LibreOffice, ajustar los estilos (Heading 1, Body Text, Table Caption, etc.) según las normas de la revista, guardarlo y reutilizarlo. El manual añade que el docx de referencia da mejores resultados cuando es una versión modificada de un docx producido por pandoc. En la orden de extracción, -o debe ir antes de --print-default-data-file.
# 1. extract the default reference file (-o must come first)
pandoc -o custom-reference.docx --print-default-data-file reference.docx
# 2. edit the STYLES in Word or LibreOffice, then save
# 3. reuse it for every export
pandoc in.tex -o out.docx --reference-doc=custom-reference.docxLas opciones que de verdad importan al ir de Word a LaTeX
Un .docx es en realidad un archivo ZIP lleno de XML, así que pandoc puede leerlo directamente. El primer indicador que hay que añadir al importar es --extract-media=media, que hace justo lo que dice el manual oficial: extraer a ese directorio las imágenes y demás medios contenidos en el documento fuente o enlazados desde él, y reescribir las referencias de imagen para que apunten a los archivos extraídos. Si se olvida, las figuras no aparecen por ninguna parte. Los archivos que devuelve un coautor suelen traer control de cambios, y --track-changes=accept / reject / all decide su destino; all lo conserva todo envuelto en spans. La opción solo afecta al lector de docx. La bibliografía se resuelve con --citeproc y un archivo .bib, eligiendo el estilo CSL con --csl. Si molestan los párrafos cortados a la fuerza en la salida, añada --wrap=none. Los estilos de párrafo de Word sobreviven como custom-style, lo que da un asidero para asignar los estilos propios de un autor a entornos de LaTeX.
pandoc in.docx -o out.tex \
--extract-media=media \
--track-changes=accept \
--wrap=none
# with a bibliography and a journal style
pandoc in.docx -o out.tex --citeproc --bibliography=refs.bib --csl=apa.cslLlegar a Word sin instalar pandoc: la salida ODT de tex4ht
No es muy conocido, pero TeX Live por sí solo llega hasta un formato de procesador de textos. Ejecutar make4ht -f odt file.tex produce un .odt, es decir, texto OpenDocument. Al abrirlo se comprueba que no es un montaje de imágenes: las matemáticas van incrustadas como objetos de fórmula ODF con tipo de medio application/vnd.oasis.opendocument.formula, y dentro hay MathML. Las ecuaciones siguen siendo ecuaciones del lado del procesador de textos. mk4ht oolatex file.tex recorre el mismo camino (los artículos antiguos mencionan una orden independiente oolatex; en TeX Live 2024 se invoca como nombre de tarea de mk4ht). Word puede abrir texto OpenDocument y, para mayor seguridad, se puede abrir en LibreOffice y volver a guardar como .docx. Cuando el objetivo es entregar fórmulas que sigan siendo editables, esta vía a veces supera a la de pandoc.
# LaTeX to OpenDocument text, using only TeX Live
make4ht -f odt file.tex
# the same route under its historical name
mk4ht oolatex file.texOtras dos herramientas merecen al menos una mención. writer2latex es un programa Java de código abierto que convierte documentos de LibreOffice/OpenOffice a LaTeX, y GrindEQ es un conversor comercial Word ↔ LaTeX conocido por tratar bien las ecuaciones de MathType. Ninguno forma parte de TeX Live ni estaba instalado en la máquina usada para este artículo, así que aquí no se ha comprobado su comportamiento. Si adopta alguno, pruébelo primero con un fragmento pequeño de su archivo real y compruebe con sus propios ojos si sobreviven las fórmulas y las figuras.
Convivir con un coautor que insiste en Word
- Mantenga LaTeX como versión de referencia. Un
.docxes una salida, no un archivo de trabajo. En cuanto una versión editada directamente en Word pasa a ser el original, cada ida y vuelta empieza a degradarla. - Entregue secciones, no el artículo entero. Enviar solo la sección sobre la que quiere comentarios es mucho más fácil de reintegrar que un
.docxgigantesco. - Lea primero lo que vuelve con
--track-changes=all. Vea qué ha cambiado y después importe conaccepto traslade a mano solo los cambios a la fuente. - Mantenga las figuras como archivos de imagen desde el principio. TikZ desaparece al pasar por pandoc; una organización en la que las figuras se exportan a SVG o PDF y se traen con
\includegraphicssobrevive a cada conversión. - Si las ecuaciones deben seguir siendo editables, pruebe la vía ODT.
make4ht -f odtlas conserva como objetos de fórmula MathML. - Encierre las normas de la revista en un
--reference-doc. Corregir a mano márgenes y estilos en Word es justo lo que se olvida repetir la segunda vez.