Mlpost manual
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.
Using the Mlpost Tool
-
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.
open Mlpost
...
let fig_a = ...
let fig_b = ...
Each figure has type
Command.t.
-
Add some code to emit Metapost code, as follows
let () = Metapost.emit "file_a" fig_a
let () = Metapost.emit "file_b" fig_b
-
Then run the mlpost program on this file
mlpost fig.ml
It will create PostScript figures in files file_a.1, file_b.1, etc.
Options
mlpost supports the following options:
-
-pdf
-
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)
-
-latex main.tex
-
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.
Using only the API
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.
-
Follow steps 1 and 2 above.
-
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"
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