Using Ipe figures in Latex

If—like many Latex users nowadays—you are a user of Pdflatex you can include Ipe figures in PDF format in your Latex documents directly.

The standard way of including PDF figures is using the graphicx package. If you are not familiar with it, here is a quick overview. In the preamble of your document, add the declaration:

\usepackage{graphicx}

One useful attribute to this declaration is draft, which stops LaTeX from actually including the figures—instead, a rectangle with the figure filename is shown:

\usepackage[draft]{graphicx}

To include the figure figure1.pdf, you use the command:

\includegraphics{figs/figure1}

Note that it is common not to specify the file extension .pdf. The command \includegraphics has various options to scale and rotate the figure. For instance, to scale the same figure to 50%, use:

\includegraphics[scale=0.5]{figs/figure1}

To scale such that the width of the figure becomes 5 cm:

\includegraphics[width=5cm]{figs/figure1}

Instead, one can specify the required height with height.

Here is an example that scales a figure to 200% and rotates it by 45 degrees counter-clockwise. Note that the scale argument should be given before the angle argument.

\includegraphics[scale=2,angle=45]{figs/figure1}

Let’s stress once again that these commands are the standard commands for including PDF figures in a LaTeX document. Ipe files neither require nor support any special treatment. If you want to know more about the LaTeX packages for including graphics and producing colour, check the grfguide.tex document that is probably somewhere in your TeX installation.

Bounding boxes

There is a slight complication here: Each page of a PDF document can carry several bounding boxes, such as the MediaBox (which indicates the paper size), the CropBox (which indicates how the paper will by cut), or the ArtBox (which indicates the extent of the actual contents of the page). Ipe automatically saves, for each page, the paper size in the MediaBox, and a bounding box for the drawing in the ArtBox. Ipe also puts the bounding box in the CropBox unless this has been turned off by the stylesheet.

Now, when including a PDF figure, Pdflatex will (by default) first look at the CropBox, and, if that is not set, fall back on the MediaBox. It does not inspect the ArtBox, and so it is important that you use the correct stylesheet for the kind of figure you are making—with cropping for figures to be included, without cropping for presentations (as otherwise Acrobat Reader will not display full pages—Acrobat Reader actually crops each page to the CropBox).

If you have a recent version of Pdflatex (1.40 or higher), you can actually ask Pdflatex to inspect the ArtBox by saying \pdfpagebox5 in your Latex file’s preamble.

Classic LaTeX and EPS

If you are still using the “original” Latex, which compiles documents to DVI format, you need figures in Encapsulated Postscript (EPS) format (the “Encapsulated” means that there is only a single Postscript page and that it contains a bounding box of the figure). Some publishers may also require that you submit figures in EPS format, rather than in PDF.

Ipe allows you to export your figure in EPS format, either from the Ipe program (File menu, Export as EPS), or by using the command line tool iperender with the -eps option. Remember to keep a copy of your original Ipe figure! Ipe cannot read the exported EPS figure, you will not be able to edit them any further.

Including EPS figures works exactly like for PDF figures, using \includegraphics. In fact you can save all your figures in both EPS and PDF format, so that you can run both Latex and Pdflatex on your document—when including figures, Latex will look for the EPS variant, while Pdflatex will look for the PDF variant. (Here it comes in handy that you didn’t specify the file extension in the \includegraphics command.)

It would be cumbersome to have to export to EPS every time you modify and save an Ipe figure in PDF format. What you should do instead is to write a shell script or batch file that calls iperender to export to EPS.

All figures in one Ipe document

On the other hand, if you only use Pdflatex, you might opt to exploit a feature of Pdflatex: You can keep all the figures for a document in a single, multi-page Ipe document, with one figure per page. You can then include the figures one by one into your document by using the page argument of \includegraphics.

For example, to include page 3 from the PDF file figures.pdf containing several figures, you could use

\includegraphics[page=3]{figures}

It’s a bit annoying that one has to refer to the page by its page number. Ipe comes with a useful script that will allow you to use symbolic names instead.