Software

Combinatorial Data + Tex

IpeStyle
Graph Data
Algorithmic Graph Theory

IpeStyle: Style Sheets for Presentations and Latex Figures using Ipe

Ipe is an open-source drawing editor that is WYSIWYG and fully supports latex, graphs and modular creation of running examples. Best of all, it is not as likely to crash as Open- and LibreOffice for larger documents. Its only drawbacks are the initially steep learning curve and the somewhat rudimentary default style - everything has to be coded in order to use it. This is where these style sheets for creating presentations and for drawing latex figures come into play; feel free to use them under the terms of GNU GPLv3.

Installation of IpeStyle 1.1:

  • Install Ipe (I used version 7.2.19)
  • Download IpeStyle.zip and put all files into the corresponding subdirectories of the base installation directory of Ipe
  • [Optional] Adapt the path "ipedir" (no German Umlaute, as ipescript does not read them) and executables in ipe2print.sh and "author" (your name) in jensprint.isy.
  • [Optional] Add the "graphdrawing" ipelet and adapt the "pgf_gd_path" path variable within (however, this ipelet did not work for me on Windows so far)

Description:

  • jens.lua: preferences
    • After extraction, new documents will use the following stylesheets:
  • jens.isy: presentation stylesheet
    • Adds new decorations and symbols, colors, the theorem environment, extended itemize-environments...
    • Uses sans-serif Carlito font (which is pretty close to Calibri) and sfmath / sansmathfonts for sans-serif math formulas (sans serif is better readable on slides).
    • Alternatively, one may use the lmodern sans serif font "lmss" (better than cm-super) by installing the package cm-super in miktex (Ipe needs scalable fonts) and adding "\usepackage{lmodern}" and "\renewcommand\rmdefault{lmss}".
    • jensprint.isy + ipe2print.sh: exports a print version of your presentation (e.g. to share on webspace)
      • Adds author+date and deletes the ink-demanding "Background" header symbol by adding the addidional style-sheet "jensprint.isy", which overwrites this symbol.
      • For every page, all views that are marked (checkbox directly right of view) are exported. If no view is marked on a page, only the last view is exported. The document source and notes are not exported.
      • For removing the "Background" symbol on a single page (e.g. on the first page), add a layer called "BACKGROUND" to this page.
      • ipe2print.sh requires an installed WSL environment for path conversion between linux and windows
  • jenstex.isy: latex-figure stylesheet
    • For using drawn pictures in latex, delete the style-sheet jens.isy (using ctrl-shift-s) and replace the style-sheet presentation.isy in the document with jenstex.isy.
    • Uses lmodern sans font.
    • Use scale=0.5 for label heights in figures that are similar to surrounding text.

Usage and short-cuts of Ipe (some are specific to IpeStyle):

  • Select objects with ctrl-leftmouse:
    • +shift adds to selection, +space iterates through all single objects
    • When sliding mouse from left-top to right-bottom, only enclosed objects in the box are selected, otherwise all objects that intersect the box.
    • Beware where you pick up the object, as the final grid position is dependent on the pick-up point.
    • Ipelets->Select by type/attribute selects objects of the same type, e.g. vertices by type "mark", or by the currently shown properties on the left.
    • Vertices may be selected at their boundary as well as at their middle control point.
    • q picks properties like color etc. of the selection and shows these on top left; ctrl-q applies modified properties on the selection.
  • Move objects with alt-leftmouse:
    • t + shift-leftmouse moves axis-aligned
    • ctrl-f and ctrl-b move objects to front and back, ctrl-shift-f and ctrl-shift-b move one step to front and back
  • Graphs:
    • m and p create unlabeled vertices (either "mark/fdisc" or "mark/circle") and edges, l creates text labels (use "scriptsize"; remember to either enclose every variable with $...$ manually or use shift-4 for math labels instead)
    • Use move graph nodes (no short-cut available yet) to let edges follow vertex movements
    • Insert new graph symbols vertexLabeled and edgeLabeled using "Ipelets->Symbols->Clone Symbol". However, this allows not to move nodes automatically: stretch them with e instead (and when horizontal rotate with r).
  • Text:
    • F10 adds a text box, ctrl-e edits it (and endpoints of edges; accept with "space") and ctrl-return finishes the text box
    • Use \red, \green, \blue, \grayed for standard text colors, \colorbox{blue}{text} for coloring text background and \quotedblbase quote\textquotedblright{} for German quotation marks
    • Use \checkmark and \crossmark for yes and no symbols, and $\cupdot$, $:=$, \Lightning for disjoint union, definition and contradiction
    • Use \begin{thm}[Satz]{Hall~1935} for theorems (amsthm seems to add some extra-space before theorems, which renders decorations useless).
    • Use decorations like yellowBox1/2 and grayBox1/2 by first grouping one or more elements (ctrl-g) and then "rightclick->decorations".
    • ctrl-p sets page title
    • ctrl-n inserts private notes to a page (e.g. for talks)
    • g adds text box with multiple rows and fixed width (e.g. below an image), but has fixed width; alt-w changes width
    • ctrl-l compiles all latex text in the document
    • Insert html- or file-link by grouping an object and then adding the link
  • Pages and layers:
    • \ fits canvas to window size
    • ctrl-i adds new page, ctrl-shift-i adds a new layer and new view
    • pgup/pgdown iterates through views, shift-pgup/pgdown through pages
    • ctrl-shift-a selects all objects in the active layer, ctrl-shift-m moves selected objects to active layer
  • ctrl-shift-s shows the style-sheets that are stored in the document, ctrl-shift-u updates them from hard-drive