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 https://patoline.github.io.
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)
Earley (version 2.0.0)
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 http://opam.ocaml.org/doc/Install.html. 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
Compilation from source
Patoline can be compiled from source as follows:
wget https://github.com/patoline/patoline/archive/master.zip unzip master.zip cd patoline-master make make install
First Patoline document
Here is a hello world patoline document (other examples can be found in the
====================== 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: