Drawing maps on oriented surfaces
Gunnar Brinkmann
TL;DR
The paper presents Planar_draw, a standalone C program that produces publication-ready TikZ drawings of combinatorial maps embedded on oriented surfaces. It supports two core strategies: cutting along $2g$ non-contractible cycles to form a fundamental polygon (producing a $4g$-sided outer face) or cutting along $g$ disjoint non-contractible cycles with tubes, with a strong emphasis on readable vertex order, separation, and visible faces. The tool integrates Tutte-based coordinate placement for the outer face, a Schlegel diagram-inspired coordinate construction, and a spring-embedder, guided by greedy cycle-search heuristics and multiple starting configurations; it also offers options to adjust centers, cut through vertices, and highlight features in the generated TikZ output. The paper provides empirical performance benchmarks on large families of maps and illustrates the applicability to abstract graphs by leveraging external minimum-genus embeddings, demonstrating both practical usefulness and limitations of the heuristic approach. Overall, Planar_draw bridges graph-embedding theory and visualization, enabling researchers to generate flexible, editable drawings suitable for LaTeX documents and facilitating exploration of maps on surfaces without requiring integration into larger software suites.
Abstract
In this article we describe a program -- called planar_draw -- to draw maps on oriented surfaces in the plane. The drawings are coded as tikz files that can easily be manipulated and used in latex documents. Next to plane maps -- a case for which already several programs exist -- the program allows to draw maps of genus at least one inside a fundamental polygon or with non-contractible cycles displayed as disjoint cycles that have to be identified. Several options allow to tailor the output for individual needs -- e.g.\ by forcing some edges to be completely inside the fundamental polygon. In combination with a program embedding graphs, the tool can also be used for graphs that do not already come with an embedding in an orientable surface.
