On this page, we collect some tricks and best practices for working with Ipe.
If you are a member of our group, we heavily recommend you install and use the ALGA style files and ipelet. The style files add useful colors and set sensible defaults (dashing patterns, line caps, etc.)
To install, obtain the files from the the GitLab repository and follow the instructions provided there.
Ipe supports gradients, but they cannot be edited from the user interface (except if you use an ipelet). Instead, they need to be entered by hand in style files. Here is a style file with the gradient definitions for the cushion-style gradients used in this paper. To use it, draw a 16x16 rectangle in the lower-left corner of the paper, fill it, and set the gradient to one of the seven available colors. Alternatively use our example file.
Clipping paths allow you to restrict the visible area of one object to an arbitrary area. Here is a tutorial about how to use them.
This section explains how to get Fira Sans working in Ipe. There are two basic approaches (xetex
and pdftex
). We recommend the xetex
approach, as that produces nicer output, but this method does not work with older Ipe versions.
Fira Sans is our default font for presentations, but these instructions should work for other fonts as well.
xetex
(recommended)Download Fira Sans and Fira Mono and Fira Math and make sure they are installed by putting them in C:\Windows\Fonts
(Windows) or ~/.fonts
(Linux).
In the Ipe document properties (Edit > Document properties) set the LaTeX engine to xetex
, and put the following in the Ipe preamble:
\usepackage[sfdefault]{FiraSans} % Fira Sans as the main font
\usepackage{FiraMono} % Fira Mono as the monospaced font
\usepackage{firamath-otf} % Fira Math as the math font
Now, all labels should be in Fira Sans. Here is an example:
We experienced an issue (with TeX Live on Windows) where LaTeX rendering in Ipe would become extremely slow (> 30 seconds) when trying to load the fontspec
/ mathspec
package, during which the Ipe interface hangs. As stated here, this can be solved by running c:\texlive\2016\bin\win32\fc-cache.exe
from a terminal like this:
c:\texlive\2016\bin>win32\fc-cache.exe
Note that it needs some time to create caches,
especially if there are many large font files.
Wait with patience.
As the output says, this can take a while. However, afterwards, Ipe should render much faster.
pdftex
(for older Ipe versions)Older Ipe versions (< 7.2.1) do not support xetex
; for those versions this alternative method can be used. This does not give perfect output: it does not support Greek letters and special symbols in math mode.
Install the packages fira
and mathastext
. In the Ipe document properties (Edit > Document properties) set the LaTeX engine to pdftex
, and put the following in the Ipe preamble:
\usepackage[T1]{fontenc}
\usepackage[sfdefault, lining]{FiraSans}
\usepackage{mathastext}
Assume that you are in the translate mode, and you want to move the currently selected object. If you start dragging at a position far away from the selected object, and near some other object, Ipe will instead select and move that other object. This can be undesirable, if you are starting the drag operation far away from the selected object on purpose, because you want to use that position as the translation origin.
To disable this behavior, set the preferences key prefs.close_distance
(which is set to 48
by default) to something large. You can do that by creating a file called customize.lua
in your ipelets directory, with the following line in it:
prefs.close_distance = 1e100
To find out where your ipelets directory is, use Help > Show configuration.
Ipelets are scripts written in Lua that extend Ipe's functionality. A list of ipelets is available here. We particularly encourage you to check out polyfillet, tangentline and the linear gradient ipelet.
If you are developing an ipelet yourself, set the following preference:
prefs.developer = true
While developing you can now reload your ipelet without restarting Ipe entirely: use Help > Developer > Reload ipelets.