was in complex analysis and only included three pictures; however my wife’s
dissertation was in graph theory, and included about 200 illustrations. We looked
for a program that would make it easy to create these pictures and to include
them in a L
Xdocument. In time we stumbled upon Ipe and quickly found out
that it completely satisﬁed our needs.
The name Ipe is an acronym for Integrated Picture Environment, referring to
the clever ﬁle format the editor used. To solve the problem of integrating pictures
Xtext and formulas, Ipe saved all ﬁgures in a ﬁle that was at the same
time a valid L
Xﬁle and a valid Postscript ﬁle. The L
Xpart contained a
picture environment with all the text and math positioned in proper places. It
also contained code for including the ﬁle again, this time as a Postscript illustra-
tion with the rest of the drawing. You included the ﬁle as a regular LAT
it took care of everything else. Using Ipe including and handling pictures turned
out to be very easy.
Another feature of Ipe we appreciated perhaps even more than the ingenious
ﬁle format was Ipe’s snapping modes. In addition to your regular mouse cursor,
Ipe provided another cursor
which snapped to various objects in the drawing.
In addition to the usual snapping to a grid, you could make it snap to lines and
curves, vertices of polygons, intersections of curves, and on top of that there were
two different angular snapping modes. All this made Ipe very powerful editor
for creating mathematical and scientiﬁc illustrations.
Several years later I tried to use Ipe on my computer at home which ran the
Linux operating system. I was able to compile Ipe but it simply refused to run.
It seemed to have some issue with the new version of the X Server, and it kept
crashing right after starting. I was unable to ﬁnd any information about this
problem anywhere on the Internet, and for some reason (I don’t remember why)
Iwas not able to locate or reach the author of the program. I gave up, converted
all my old Ipe drawings to Postscript, and started learning METAPOST.
Come the fall of 2004, I decided to upgrade my Debian Linux system from
the rather aged “stable” distribution to the “testing” distribution. When paging
through a long list of new packages, my eye caught the name “ipe”. Version
6.0pre22, it said. At ﬁrst I was skeptical: a different program with the same name,
Iwas thinking —happens all the time. Then I looked at the description:
This cursor is called ﬁﬁ, after a dog from a popular computer game that runs around your
feet in a way similar to the behaviour of this secondary cursor.
Drawing editor for creating ﬁgures in PDF or PS formats. Ipe supports
making small ﬁgures for inclusion into LaTeX documents as well as
making multi-page PDF presentations ...
There was more and it all sounded sort of like the old Ipe, except the part about
multi-page presentations. There was also a URL:ipe.compgeom.org.
Iinstalled the package and visited the web page. It turned out that the author,
Otfried Cheong, had completely rewritten Ipe, getting rid of old legacy code and
using the newly available Qt toolkit. This meant not only that Ipe was easier
to use than before, but also that, thanks to the cross platform Qt toolkit, it was
now available for Unix and its clones, including Mac OS X, and Windows. There
was another important change: the old ingenious ﬁle format that Ipe was named
after was gone, replaced by a new XML-based format. However, in addition to
XML, Ipe can also save ﬁles in PDF and encapsulated Postscript formats.
like many modern tools, understands Unicode. There were some other changes,
namely a new multiple-page presentation mode, which I will describe later.
2 Main Features of Ipe
Figure2 shows the initial Ipe window. This screenshot was taken on a Windows
system, but the Linux version looks very similar. Most of the window is occupied
by a yellow drawing canvas (you can change the color of the canvas to white if
you prefer that) with a visible grid. On top of the window is the usual menu bar
and several toolbars.
In fact, Ipe can be conﬁgured so that every time you save a ﬁle in either the PDF or encap-
sulated Postscript format, the other format will also be saved automatically, which makes it
easy for a T
Xdocument and its ﬁgures to be processed by both T
X[see the Ask
Nelly column in this issue for a discussion of various kinds of image ﬁles T
Figure 2: A new Ipe window
First is the ﬁle toolbar, with the usual icons for saving ﬁles, opening new ﬁles,
cutting and pasting, and so forth. What you do not ﬁnd there is the “print”
icon— you cannot print directly from Ipe.
Next is the resolution toolbar. You can see and change the current resolution
of the canvas (changing the resolution will zoom in or out of your drawing). An
easy way to adjust the resolution is with your mouse scroll wheel; there are also
several keyboard shortcuts to change the resolution.
Probably the most useful toolbar contains snapping tools. Here you can change
your snapping mode, change grid size, and change the angle for angular snap-
ping. The available snapping tools are:
– Vertex snapping (shortcut ‘F4’)— your cursor will snap to the vertices of
polygons and polylines, marks, and centers of circles.
– Boundary snapping (shortcut ‘F5’)—snaps to all lines and curves in your
– Intersection snapping (‘F6’)—snaps to intersections of straight lines (cur-
rently, Ipe does not snap to intersections involving circles, arcs or splines).
– Grid snapping (‘F7’)— on and off (independently of snapping, you can tog-
gle grid visibility with ‘F12’).
– Absolute angular snapping (‘F8’)— this is somewhat harder to explain. Ac-
cording to the manual , When angular snappingis enabled, the mouse position
is restricted to lie on a set of lines through the origin of your current axis system.
The lines are the lines whose angle with the base direction is an integer multiple of
the snap angle. The snap angle can be set in the second box in the Snap toolbar.
The origin of the axis system can be set using the ‘F1’ key, and the direction
using ‘F2’ key. You can also set the axis system to be parallel to an existing
line in you drawing by pointing at the line and pressing ‘F3’. The origin of
the axis system is also used as a center of scaling and rotation.
– Automatic (relative) angular snapping (‘F9’)— this one is used only when
creating a polygon or a polyline. It works in the same way as absolute
angular snapping, except that instead of using the origin of the axis system,
it uses the last created vertex of your polygon. That way you can easily
create a polygon or polyline in which all angles are multiples of the snap
You can use any number of snapping tools together.
The last visible toolbar is the objects toolbar. Use this to select your drawing tool.
Available tools are select, move, rotate, scale. pan, text, formula, paragraph, marks,
rectangles, polylines, polygons, three different ways of drawing arcs, three different ways
of drawing circles, splines, and splinegons. What most of these tools are for should
be fairly obvious to anybody who had previously used any drawing program.
However, here are some notes on the use of these tools in this particular drawing
– When you select the pan tool, you can drag your canvas around to change
which part of your drawing you can see. I personally prefer to use the ‘x’
keyboard shortcut which centers the canvas window around the point your
cursor is currently over. My approach is to use the scroll wheel to zoom out
until I see the whole drawing, point at the part I want to work on, press ‘x’
which will center that part, and zoom in using the scroll wheel again.
– There are three text insertion modes.
The ﬁrst mode is the simple Text label mode. You can use LAT
in your labels, including math mode, color changes, different T
You can load packages and set up deﬁnitions in the L
you can edit by going to the “Edit” menu and choosing “Document prop-
erties”. When selecting a font, be aware that Ipe can only use Type 1 or
TrueType fonts; Ipe cannot handle bitmapped Type 3 fonts. You can include
accented characters or characters from non-latin scripts transparently using
UniCode. The graphical user environment of Ipe handles UniCode trans-
parently. Look in the Ipe manual () for instructions how to set up your
document preamble for inclusion of UniCode characters into LAT
The second text insertion mode is called Mathematical symbols. This is es-
sentially the same as simple-text-label, except that it is processed by LAT
the math mode. It is actually equivalent to a text label in which everything
is enclosed by a pair of dollar signs.
The third text insertion mode is called Paragraphs. This will insert a LAT
minipage environment into your picture. You can therefore use various
Xparagraph environments, such as ’center’, ’itemize’, etc. The ‘F10’ key
will insert a minipage that spans the entire width of your page.
– The text will ﬁrst show the way you typed it, including LAT
and special symbols. When you press ‘Ctrl-L’ or when you save your ﬁle,
Ipe will run LAT
Xand display the text the way it will look as a ﬁnished
– The ‘Ctrl-E’ key shortcut will allow you to modify the currently selected
object – polyline, polygon, spline, circle, or text.
2.1 The Context Menu
One important thing you cannot really see in the default Ipe window is the con-
text menu. To get to this menu, you press the ‘Ctrl’ key and right-click on any
object drawn on your canvas. In the context menu you can change various prop-
erties of the object such as line thickness, color, text alignment, etc., depending
on the type of object.
Here you can also ﬁnd the “scissors” tool, which you can use to cut an object
into two separate objects. Currently you can cut polylines, polygons, circular arcs
3 Layers, Views and Pages
Another nice capability of Ipe is its ability to create multi-page PDF documents.
By selecting “Insert page” from the “Page”menu (ﬁgure3), you add another page
to your document.
Not only can you have multiple pages, but each page can have several “layers”
and “views”. It works like this: You arrange your drawing objects on your page
into so-called “layers”. Everything you draw will belong to the layer which is
currently active, and you also can move objects between layers. Then you deﬁne
several “views”, each showing only some of the layers. That way you can build
each page interactively, showing and hiding layers as you switch from view to
view. The “layers” pane (ﬁgure4) shows you the list of all layers on the current
page, clearly marking the visible layers and indicating which layer is active. By
right-clicking on a layer name, you can access menu that lets you change its
Figure 3: The “Page” menu.
Figure 4: The “Layers” pane with 5 layers, three of them visible in the current
view, the “gamma” layer active.
The above capabilities, together with a stylesheet specifying a screen sized
page and a large font, allow you to create presentations with Ipe.
4 Advanced Usage
4.1 Other Graphics Formats
By default, Ipe saves all drawings in a special subset of the PDF standard. You
can also save them in a subset of encapsulated Postscript. Finally, you can save
drawings in a special XML-based format which has the advantage of being easily
editable with a text editor or other XML processing tools. at the moment You
can insert a raster format images (such as JPEG or PNG ﬁles) into your drawing
by choosing “Insert Image” from the “File” menu. These images will be shown
on your Ipe canvas unless they are too large. In preferences, under “On-screen
bitmap resolution”, you can set the dimensions of the largest image that will be
displayed. Set this to a smaller value if your computer is slow or does not have
much memory. Images that are larger than this value will not be displayed by
Ipe, but they will show up in your resulting PDF or EPS ﬁle.
You cannot insert other Postscript or PDF ﬁles into Ipe drawings. Neither
can you use Ipe to edit an arbitrary EPS or PDF ﬁle. Only ﬁles created by Ipe can
be edited. However, Ipe comes with a special command line tool, pdftoipe. This
tool converts an arbitrary PDF ﬁle into the Ipe XML format. Unfortunately, the
conversion does not handle text very well; it does work quite well with graphics.
Figure5 shows a graph created using METAPOST with the excellentmacros
developed by Jean-Michel Sarlat. I converted a METAPOST ﬁle to PDF using
Hans Hagen’s mptopdf, and I converted the result of that to the Ipe format using
pdftoipe. The resulting ﬁgure needed very little editing in Ipe. The result of that
process is shown in ﬁgure6. Figure7 shows Ipe (this time running on Linux)
editing the ﬁle.
Many properties of your picture, as well as Ipe’s user interface, are affected by
stylesheets. By using different stylesheets, you can change such properties as
font sizes, line thickness, colors, page size, but also page background and things
Figure 5: Graph created in META-
Figure 6: Graph processed by
like a LAT
Xpreamble for your document. You can, for example, have a special
stylesheet for presentations in which all fonts are larger, all lines are thicker, the
page is the size of the screen, which has a fancy gradient background, and uses
Lucida Bright or Arev fonts.
The stylesheets also affect the user interface. In Ipe you can switch between
so–called absolute attributes and symbolic attributes. When absolute attributes
are active, you choose colors using a color selection dialog with RGB values, and
things like line thickness, size of arrows, fonts etc. are speciﬁed in point units. In
symbolic mode, which is the default, you select colors, line thicknesses etc. from
alist of available names, such as red, normal, fat, large, etc. These names are
deﬁned in the stylesheets. By loading different stylesheets, you can add new
options for colors or sizes, as well as change the meaning of the already present
4.3 Cutting and Pasting
As with other vector graphics editors, in Ipe you can cut or copy selected objects
from your drawing and paste them into another ﬁle or another page of the same
ﬁle. But you can do more than that: Ipe objects are stored in the clipboard using
their XML representation. That means you can cut an object from Ipe, paste it
into a text editor window, edit it, cut it from the text editor, and paste it back into
Ipe. You can also write some of your drawing elements directly in XML in your
Documents you may be interested
Documents you may be interested