Skip to main content

Pandoc 匯入/匯出

Overleaf 可以使用 Pandoc 在 LaTeX 與其他文件格式之間互相轉換。轉換會在由 clsi 服務管理的沙箱化 Docker 容器中執行,因此此功能預設為關閉,需透過幾個環境變數來啟用。

功能說明


環境變數

有兩個變數是重要的,另有一個看起來相似但無關的變數。 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 執行轉換時使用的容器映像檔

先決條件

由於轉換是以 clsi 產生的 Docker 容器執行:
  1. clsi 必須以沙箱模式執行,並可存取 Docker。 在開發堆疊中,clsi 已設定 SANDBOXED_COMPILES=true 並掛載主機的 Docker socket(/var/run/docker.sock)。
  2. 在第一次轉換之前,該 Docker 主機上必須已有 PANDOC_IMAGE(已拉取或在本機建置)。

快速設定

開發堆疊(develop/dev.env)已內建:
由於官方映像檔為私有,使用此功能前請先建置內附的映像檔一次:
接著(重新)啟動堆疊,讓 clsi 與 web 讀取這些變數。

建置 Pandoc 映像檔

由於 clsi 以通用方式呼叫 Pandoc(不使用自訂範本/篩選器),因此標準的 Pandoc 映像檔即可運作。它只需要三項執行階段必要條件,全都由 develop/pandoc/Dockerfile 處理:
建置並加上標籤,使標籤與 PANDOC_IMAGE 相符:
在正式環境中,請將 pandoc/core 固定為特定版本而非 latest,以確保建置可重現,並將 PANDOC_IMAGE 設為你的 registry 路徑。

疑難排解

最後修改於 2026年10月5日