Easily use Docker to run Pandoc with all LaTeX packages and fonts, ensuring a consistent and reproducible environment for PDF generation. Supports all other source and destination file formats handled by Pandoc and is tailored to facilitate a streamlined workflow for creating professional documents and presentations with Markdown and LaTeX typesetting.
This Docker container is based on the original Pandoc's official GitHub repository and its official docker container latex/extra
, bundled with the full set of LaTeX packages. Additional Arabic fonts were added to enhance Arabic and similar language support. Due to the inclusion of the texlive full
, the container download size exceeds 2GB but has all LaTeX packages and fonts already preinstalled and ready to use.
Ensure Docker is installed on your system. Then, use one of the following commands:
The following example demonstrates how to create a PDF from this README file:
docker run --rm -v "$PWD:/data" --net=none -u $(id -u):$(id -g) \
ghcr.io/informatica-global/pandoc-texlive-full \
"README.md" -o "./README.pdf"
To create a PDF from this README file in Arabic or any other Unicode language, use the --pdf-engine
option to select lualatex
. This engine supports Unicode and many languages, including Arabic and other right-to-left (RTL) languages:
docker run --rm -v "$PWD:/data" --net=none -u $(id -u):$(id -g) \
ghcr.io/informatica-global/pandoc-texlive-full \
"README.md" -o "./README.pdf" --pdf-engine=lualatex
The following example demonstrates how to create a PDF from this README file:
docker run --rm -v "$PWD:/data" --net=none -u $(id -u):$(id -g) \
ghcr.io/informatica-global/pandoc-texlive-full \
"README.md" -o "./README.pdf" --template eisvogel --listings
To build the container yourself, execute the following command:
docker buildx build -t ghcr.io/informatica-global/pandoc-texlive-full .
The repository includes a .vscode/tasks.json
file, which defines several tasks to streamline the process of generating PDFs using Docker and Pandoc. These tasks can be executed directly from Visual Studio Code (VS Code), simplifying the workflow for generating various types of PDFs, including multilingual and Beamer presentations.
The tasks are designed to cover different use cases, including creating standard PDFs, Arabic PDFs, and Beamer presentation PDFs with incremental slides and handout formats. Here is a summary of the available tasks:
lualatex
engine, which supports Arabic and other Unicode languages.lualatex
engine.lualatex
engine.To run a task, you can use the Command Palette or access the tasks through the menu.
Tasks: Run Task
and select it.Terminal
in the top menu.Run Task...
.To add this tasks.json
file to other workspaces, copy the tasks.json
file to the .vscode
directory in your workspace. To add these tasks globally to all your VS Code workspaces, use the user scope in VS Code. Follow these instructions based on your operating system:
Copy tasks.json
to the global VS Code configuration directory:
cp path/to/repo/.vscode/tasks.json ~/.config/Code/User/tasks.json
Copy the tasks.json
file to the global VS Code configuration directory:
copy path\to\repo\.vscode\tasks.json %APPDATA%\Code\User\tasks.json