Skip to main content

Importación / exportación con Pandoc

Overleaf puede convertir documentos desde y hacia LaTeX mediante Pandoc. La conversión se ejecuta dentro de un contenedor Docker en sandbox gestionado por el servicio clsi, por lo que la función está desactivada de forma predeterminada y debe activarse con un par de variables de entorno.

Qué hace


Variables de entorno

Hay dos variables que importan, y una de nombre parecido que no. 1. ENABLE_PANDOC_CONVERSIONS: el interruptor principal
  • Tipo: booleano (true lo habilita; cualquier otro valor lo deshabilita).
  • Debe establecerse en AMBOS servicios, web y clsi. Son procesos separados con configuración separada:
    • web la lee en enablePandocConversions (services/web/config/settings.defaults.js). Controla las rutas de importación, las rutas de exportación y el indicador ol-ExposedSettings.enablePandocConversions que indica al frontend si debe mostrar la interfaz de importación/exportación.
    • clsi la lee en enablePandocConversions (services/clsi/config/settings.defaults.cjs). Controla los endpoints que ejecutan Pandoc.
  • Si está habilitada en web pero no en clsi (o viceversa), la interfaz aparecerá pero la conversión fallará: mantenlas sincronizadas.
2. PANDOC_IMAGE: la imagen de contenedor que clsi ejecuta para convertir

Requisitos previos

Como las conversiones se ejecutan como contenedores Docker lanzados por clsi:
  1. clsi debe ejecutarse en modo sandbox con acceso a Docker. En el stack de desarrollo, clsi ya tiene SANDBOXED_COMPILES=true y el socket de Docker del host (/var/run/docker.sock) montado.
  2. La PANDOC_IMAGE debe estar presente en ese host de Docker (descargada o compilada localmente) antes de la primera conversión.

Configuración rápida

El stack de desarrollo (develop/dev.env) ya incluye:
Como la imagen oficial es privada, compila una vez la imagen incluida antes de usar la función:
A continuación, (re)inicia el stack para que clsi y web lean las variables.

Compilar la imagen de Pandoc

Una imagen estándar de Pandoc funciona porque clsi invoca Pandoc de forma genérica (sin plantillas ni filtros personalizados). Solo necesita tres elementos esenciales en tiempo de ejecución, todos gestionados por develop/pandoc/Dockerfile:
Compílala y etiquétala de modo que la etiqueta coincida con PANDOC_IMAGE:
En producción, fija pandoc/core a una versión concreta en lugar de latest para obtener compilaciones reproducibles, y establece PANDOC_IMAGE con la ruta de tu registro.

Solución de problemas

Última modificación el 5 de octubre de 2026