package patoline

  1. Overview
  2. Docs
Patoline typesetting system and libraries







Patoline is a collection of typesetting libraries designed to be combined into a variety of possible applications. Its primary goal is not to offer the definitive answer to all typesetting problems, but rather to write the painful and boring parts of the job, so that interesting tools could be written easily. Obviously, a related (but much smaller) project is the Patoline compiler, which compiles a mixed Wiki/LaTeX/Ocaml syntax into a variety of output formats, including traditional PDF files, but also web servers that deliver dynamic contents.

Published: 30 May 2022


Patoline - A modern digital typesetting system

This repository contains the source code of Patoline, which homepage is hosted at


The minimal dependencies are

  • OCaml (version between 4.03.0 and 4.07.1)

  • Opam (version 2.0.0 or higher)

  • Dune (version 2.7.0 or higher)

  • Ocamlfind

  • Earley (version 2.0.0)

  • Camlzip

  • Sqlite3

  • Imagelib

  • GNU make

To setup a suitable OCaml environment, the simplest possible solution is to use the Opam package manager. It can be installed by following instructions at You can then install an OCaml compiler and the required libraries as follows.

opam switch 4.07.1
eval $(opam env)
opam install dune earley.2.0.0 camlzip sqlite3 imagelib

You can optionally install more Opam packages (OCaml libraries) depending on the Patoline drivers that you want to use. For instance, you will need to install lablgl for our OpenGL driver, cairo2 for our Cairo driver, cryptokit for our Patonet driver.

Compilation from source

Patoline can be compiled from source as follows:

cd patoline-master
make install

First Patoline document

Here is a hello world patoline document (other examples can be found in the examples folder).

Hello, World!
Patoline newbies

-> Section with text

This is my //first// document! That's so **cool**!


-> Section with maths

Did you known that $(a + b)² = a² + 2ab + b²$?


If you copy-paste it in a file hello_world.txp, then you can compile it with the command patoline hello_world.txp. This will produce a PDF file called hello_world.pdf. Note that you can compile to other format drivers such as a webpage using SVG format or an OpenGL window. To do that, select a driver with the command patoline --driver DRIVER hello_world.txp. You can obtain the list of the existing drivers with patoline drivers (they may not all be installed).

List of developpers and contributors

Main developpers and contributors:

  • Pierre-Étienne Meunier

  • Christophe Raffalli

  • Rodolphe Lepigre

  • Tom Hirschowitz

  • Florian Hatat

  • Pierre Hyvernat

  • Guillaume Theyssier

  • Vincent Laporte

  • Alan Schmitt

Dependencies (7)

  1. imagelib = "20180522"
  2. sqlite3
  3. camlzip
  4. earley = "2.0.0"
  5. ocamlfind
  6. dune >= "2.7"
  7. ocaml >= "4.03.0"

Dev Dependencies (1)

  1. odoc with-doc

Used by