<#iso>

# <#en>Mlpost manual <#fr>Manuel Mlpost <#de>Mlpost Handbuch

<#en>There are really two ways of using Mlpost. The first one uses the command line tool `mlpost`and is more convenient. The second one uses only the API of Mlpost and can be used in situations where the mlpost command does not apply.``

## <#en>Using the Mlpost Tool <#fr>Utilisation <#de>Mlpost Schnittstelle

1. <#en>Define your figures in an Ocaml file `fig.ml`. The Mlpost modules are packed in the top module `Mlpost`, so you probably want to open it right away. <#fr>Définir ses figures dans un fichier Ocaml `fig.ml` <#de>Definieren Sie Ihre Zeichnungen in einem Ocaml Programm `fig.ml`

                open Mlpost
                ...
       	 let fig_a = ...
       	 let fig_b = ...

   <#en>Each figure has type <#fr>Chaque figure a le type <#de>Jede Abbildung hat den Typ `Command.t`.
2. <#en>Add some code to emit Metapost code, as follows <#fr>Ajouter du code pour la production du Metapost <#de>Fügen Sie den folgenden Code hinzu, der das Metapost Programm erzeugt

       	let () = Metapost.emit "file_a" fig_a
       	let () = Metapost.emit "file_b" fig_b

3. <#en>Then run the `mlpost` program on this file <#fr>Lancer le programme `mlpost` sur ce fichier <#de>Führen Sie das `mlpost` Programm auf dieser Datei aus, mit dem Kommando

              mlpost fig.ml

   <#en>It will create PostScript figures in files file_a.1, file_b.1, etc. <#fr>Les figures PostScript sont alors créées dans les fichiers file_a.1, file_b.1, etc. <#de>Die PostScript-Abbildungen werden in den Dateien file_a.1 file_b.1, usw abgespeichert.

### Options

<#en>`mlpost` supports the following options: <#fr>`mlpost` accepte les options suivantes : <#de>`mlpost` akzeptiert die folgenden Optionen:

-pdf
  <#en>creates .mps files instead of .1, for inclusion in LaTeX files compiled with pdflatex (the PostScript file is actually the same, but the suffix is used by `pdflatex` to identify PostScript produced by Metapost) <#fr>produit des fichiers .mps au lieu de .1, pour inclure dans du LaTeX compilé avec `pdflatex` <#de>produziert .mps Dateien anstatt .1, zum Einfügen in LaTeX Dateien, die mit pdflatex kompiliert werden.

-latex main.tex
  <#en>indicates the main LaTeX file, from which the prelude is extracted to be passed to Metapost (this way you can use macros, fonts and packages from your LaTeX document in your figures). main.tex has to contain at least a documentclass and the line "\begin{document}". The contents of this file are taken into account up to the "\begin{document}" part. <#fr>spécifie le fichier LaTeX principal, dont le prélude est extrait et passé à Metapost (on peut ainsi utiliser les macros, polices et paquets du document LaTeX en question). main.tex doit contenir au moins une commande documentclass et la commande "\begin{document}". <#de>spezifiziert die LaTeX-Hauptdatei, deren LaTeX-Präambel an Metapost weitergegeben wird. Auf diese Weise können die gleichen Makros, Fonts und LaTeX-Pakete wie im LaTeX-Dokument in den Abbildungen verwendet werden. Die Datei main.tex muss mindestens den documentclass Befehl und die Zeile "\begin{document}" enthalten.

## <#en>Using only the API

<#en> The `mlpost` tool works on a modified version of your file, and this can be a problem sometimes. The following method is a way out, but you need to do a bit more things by hand.

1. <#en> Follow steps 1 and 2 above.
2. <#en> Instead of running `mlpost` on your file, add the following additional lines to your program:

       let () = Metapost.dump
                  ~prelude:(Metapost.read_prelude_from_tex_file "document.tex") "somefile"

   <#en> Now you can compile your program using the `ocaml` compiler. The obtained executable will compute your figure, dump the metapost code in `somefile.mp` and produce the postscript figures, using the specified file `document.tex` to extract a prelude. The `Metapost.dump` function has the additional optional arguments `pdf` and `eps`, with the same meaning as the options on the command line.

Français / English / Deutsch