creation of multilayer pdf or eps figures from fig files using latex for typesetting
see also :
fig2dev - gawk - pdflatex - latex - dvips
add an example, a script, a trick and tips
dia -e erlang-supervision-tree.eps -t eps
convert erlang-supervision-tree.eps erlang-supervision-tree.pdf
fig/%.pdf : fig/%.fig
fig2mpdf $(<F); cd
rm -f *.aux *.bbl *.blg *.log *.out $(PAPER).pdf fig/toolchain.pdf
This tool can
create pdf or eps figures using fig files as source. For
beamer presentations, for example, you can use the
multilayer mode to create multiple figures that can be
overlayed to get a dynamic figure. For proper appearance you
can use latex to typeset some or all texts, possibly
interpretation of the given fig FILE depends on its
Normal conversion of a fig file. All texts are
interpreted as postscript texts and all elements of the
figure are included in the resulting figure.
LaTeX interpretation of the file. All texts of the input
file that have the special bit set are typeset by pdflatex
resp. latex (see: Option -|+l).
Multilayer file interpretation. Depending on the used
depths of the figure it is split into multiple parts. For
each part an output file is created (see: section
Combination of multilayer and
LaTeX interpretation of the input (see: Suffix lfig
interpretation of the input can be changed by using the
produce an eps output file.
Instead of creating a pdf file (the default) an eps figure
force calling (pdf)latex (-) or do not use (pdf)latex
(+) for typesetting the text marked with the special flag.
With this option you can change the default behavior given
by the input file suffix.
force set (-) or unset (+) the multilayer interpretation
(see: MultiLayerOutput below) which was previously
set by the input file suffix.
explicitly set the ranges of
depths for splitting the input figure in multilayer mode.
ranges is a colon separated list of ranges of the
form upper-lower or depth where upper
is the top and lower the bottom depth in the range.
If you use the depth form the range consist of just
include the the bottommost range (that is, the one with
the highest depth) into all output figures. This is for
compatibility to older versions of this tool.
turn on pyramid mode. The figure of a corresponding
range in multilayer mode includes all lower ranges too.
set the allowed gapwidth
between two used depths to decide if these depths should be
grouped together in one range. With this option you get more
flexibility to insert objects with new depths. The default
width is zero (no gap = consecutively numbered depths are
replace the default style for
selecting a font family in LaTeX mode. If this option is
omitted the style ’times’ is set by default.
replace the default header
sequence for creating temporary LaTeX documents in LaTeX
mode. To get maximum flexibility you can set the entire
document header in the file header (see:
Customized Headers below).
in multilayer mode change the default output file
pattern to the PDF format which is
be verbose and print out all executed commands
print out the version of fig2mpdf
For various reasons you might want to change the standard latex
generation, e.g., if you want to change the default font family.
The following example represents a valid header file.
The usage of this example file changes the font family to sans
serif and adds an additional search path for includegraphics to
the ’figures’ subdirectory.
The following packages are generally used: color,
graphicx and epsfig.
In single layer mode for the resulting files the suffix fig is
replaced by pdf (resp. eps) (i.e. foo.fig -> foo.pdf).
In multilayer mode the base name of the source fig files is
extended by ’-<range>’ and the suffix is set to
pdf (resp. eps).
(i.e., foo.fig -> foo-0.pdf, foo-1.pdf, foo-2.pdf, ...
or foo.fig -> foo.page0.pdf, foo.page1.pdf, foo.page2.pdf,
if the option -G is set).
In xfig you can assign an individual depth to all objects of the
figure. These depths are normally used to determine the order of
printing the objects. fig2mpdf uses these depths to group
the objects into ranges in automatic mode (if the ranges option
is omitted). In the list of used depths, consecutively numbered
depths are grouped into one range. That is, all gaps between used
depths are used to logically split the figure. With -g you
can set the gapwidth which doesn’t split the figure
The resulting list of ranges determines the number of output
files. In default mode all objects with depths assigned to one
range are collected and put into the corresponding output file.
The contents of the output files can be changed with the two
Options -i and -I.
The -i option reduces the number of output files by one.
The bottommost range, that is the range which consist of the
highest depths of the figure, is included into all output files.
In pyramid mode, activated by the option -I, the output
files contain additionally all lower ranges. With this mode you
can get stand alone figures that don’t have to be overlayed
to have meaningful content.
Assume that you have a fig file foo.fig which contains the
three ranges 230-233, 455-460 and 499-500.
With no options set you get three output files, one per range.
But if you set the -i option you get the following two
files where the bottommost range is included in both of the
foo-0.pdf with ranges 455-460 and 499-500
foo-1.pdf with ranges 230-233 and 499-500.
The pyramid mode, activated by the option -I, will produce
the following files from the source file of Example 1:
foo-0.pdf with ranges 499-500
foo-1.pdf with ranges 455-460 and 499-500
foo-2.pdf with ranges 230-233, 455-460 and
If both options are set you will get just two files with the
foo-0.pdf with ranges 455-460 and 499-500
foo-1.pdf with ranges 230-233, 455-460 and
Sometimes it might happen that latex generates an error while
processing your special texts. To keep you informed about the
occurrence of that error and about what has happened, in this
case the log file is shown by invoking a less command.
fig2dev gawk pdflatex latex dvips