Skip to main content

Импорт и экспорт через Pandoc

Overleaf может конвертировать документы в LaTeX и обратно с помощью Pandoc. Конвертация выполняется внутри изолированного Docker-контейнера, которым управляет сервис clsi, поэтому по умолчанию эта функция отключена и её нужно включить с помощью пары переменных окружения.

Что она делает


Переменные окружения

Значение имеют две переменные, а одна похожая на них — нет. 1. ENABLE_PANDOC_CONVERSIONS — главный переключатель
  • Тип: логический (true включает функцию; любое другое значение отключает её).
  • Должна быть задана для ОБОИХ сервисов — web и clsi. Это отдельные процессы с отдельной конфигурацией:
    • web считывает её в enablePandocConversions (services/web/config/settings.defaults.js). Она управляет маршрутами импорта, маршрутами экспорта и флагом ol-ExposedSettings.enablePandocConversions, который сообщает фронтенду, нужно ли показывать интерфейс импорта/экспорта.
    • clsi считывает её в enablePandocConversions (services/clsi/config/settings.defaults.cjs). Она управляет конечными точками, которые запускают Pandoc.
  • Если переменная включена для web, но не для clsi (или наоборот), интерфейс появится, но конвертация завершится ошибкой — поддерживайте их согласованность.
2. PANDOC_IMAGE — образ контейнера, который clsi запускает для конвертации

Предварительные требования

Поскольку конвертации выполняются в Docker-контейнерах, запускаемых clsi:
  1. clsi должен работать в изолированном режиме с доступом к Docker. В стеке разработки для clsi уже задано SANDBOXED_COMPILES=true и смонтирован Docker-сокет хоста (/var/run/docker.sock).
  2. Образ PANDOC_IMAGE должен присутствовать на этом Docker-хосте (загружен или собран локально) до первой конвертации.

Быстрая настройка

Стек разработки (develop/dev.env) уже содержит:
Поскольку официальный образ является закрытым, перед использованием функции один раз соберите входящий в комплект образ:
Затем (пере)запустите стек, чтобы clsi и web подхватили переменные.

Сборка образа Pandoc

Подойдёт стандартный образ Pandoc, поскольку clsi вызывает Pandoc в общем виде (без собственных шаблонов и фильтров). Ему нужны лишь три обязательных компонента среды выполнения, и все они предусмотрены в develop/pandoc/Dockerfile:
Соберите образ и присвойте ему тег, совпадающий с PANDOC_IMAGE:
В рабочей среде для воспроизводимых сборок закрепите pandoc/core на конкретной версии вместо latest и укажите в PANDOC_IMAGE путь к вашему реестру.

Устранение неполадок

Последнее изменение 5 октября 2026 г.