Patoline typesetting system
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
bibi Fix many warnings. Nov 12, 2018
cesure Fix many warnings. Nov 12, 2018
drivers Cleaning of Cairo driver. Nov 13, 2018
editors Vim mode and [make install_vim] target. Nov 22, 2018
examples Another example: accademic genealogy. Nov 22, 2018
fonts Installation of fonts. Nov 10, 2018
formats Fix many warnings. Nov 12, 2018
grammars Fix many warnings. Nov 12, 2018
hyphs Install hyphenation dicts. Nov 11, 2018
pa_patoline Parser stuff (comment debug message). Nov 22, 2018
packages Bug fix in prooftree. Nov 21, 2018
patconfig Fix dependencies. Nov 22, 2018
patfonts Fix many warnings. Nov 12, 2018
patobook Compilation of the patobook works. Nov 12, 2018
patobuild Fix #17: compilation with relative path. Feb 16, 2019
patodb Fix many warnings. Nov 12, 2018
patoraw Remove META files that remained. Nov 12, 2018
patutil Fix many warnings. Nov 12, 2018
permap Fix [make doc] warnings. Nov 11, 2018
plot Fix many warnings. Nov 12, 2018
proof Fix many warnings. Nov 12, 2018
tests Examples cleanup, only simple ones in [examples]. Nov 13, 2018
tools Finished moving things around. Nov 10, 2018
typography Fix verbatim source file generation. Nov 22, 2018
unicodelib Fix dependencies. Nov 22, 2018
.gitignore Use static configuration files. Nov 22, 2018
.travis.yml Really use a static configuration file in Travis CI script. Nov 22, 2018 Metadata and fix for opam. Nov 22, 2018
GNUmakefile Use static configuration files. Nov 22, 2018
LICENSE Movingthings around, deleted debian folder (probably outdated). Nov 10, 2018 Require Opam 2.0.0 in [] (related to #16).. Feb 15, 2019
dune Fix many warnings. Nov 12, 2018
dune-project Started to convert to dune (nothing works yet). Nov 10, 2018
patoline.opam Opam file fix again. Nov 23, 2018

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 4.03.0 or higher)
  • Opam (version 2.0.0 or higher)
  • Dune (version 1.2.0 or higher)
  • Ocamlfind
  • Earley (version 2.0.0 or higher)
  • 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.05.0
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, kryptokit 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