8. Bahnen
Ein Bahnblatt ist ein Layout, auf dem die Bahn in Violett über der Karte liegt. Die Projektdatei verweist auf die Datei Ihres Bahnlegungsprogramms, den Rest erledigen check und export: ein Blatt je Bahn, mit Postennummern und, bei Purple-Pen-Dateien, der Postenbeschreibung. Das Beispiel examples/rummelsburg-competition-courses geht alles mit jedem Befehl und seiner Ausgabe durch. examples/gleisdreieck-training ist ein kleineres, ein Vereinstraining mit zwei Bahnen.
Woher die Bahnen kommen
Das Programm liest zwei Arten von Dateien:
- Ein Purple-Pen-Projekt,
.ppen. Es enthält die Posten, die Bahnen, Knickpunkte und Lücken der Strecken, Kreislücken je Maßstab, die Postenbeschreibungen, Sonderobjekte wie Sperrgebiete, verbotene Strecken und Pflichtstrecken, die Lage jeder Postennummer und den Druckmaßstab jeder Bahn. - IOF-XML 3.0 mit
CourseData, aus Purple Pen, Condes, der OCAD-Bahnlegung oder jedem anderen Programm, das es schreibt. Es enthält Posten, Bahnen, die Positionen der Posten und, wenn das schreibende Programm sie setzt, die Lage jeder Nummer, die Länge der Bahn und den Anstieg.
IOF-XML kennt keine Postenbeschreibungen, Sonderobjekte, Knickpunkte oder Druckmaßstäbe. Ein Blatt aus einer IOF-XML-Datei zeigt die Posten, die Strecken und die Nummern, sonst nichts. Wollen Sie die Postenbeschreibung oder ein Sperrgebiet auf dem Blatt, nehmen Sie die .ppen aus Purple Pen. Das Programm wählt den Leser nach der Dateiendung, .ppen oder .xml; jede andere Endung ist ein Fehler. Bietet Ihr Programm beides an, gibt die .ppen das vollständigere Blatt.
Noch nicht alles in einer Datei wird gedruckt:
- Eine Bahn mit Varianten (Gabelungen und Schleifen in Purple Pen) fehlt, ebenso eine Bahn mit alternativen Posten an einer Stelle.
checksagt, welche. Der IOF-XML-Export von Purple Pen schreibt jede Variante als eigene Bahn, und die wird ein eigenes Blatt. - Ein Element, das das Programm nicht kennt, wird übersprungen, mit einem Hinweis.
Abdeckflächen (White-out) druckt das Programm als Abdeckungen der Bahnen, für die sie gelten, jede für sich, auch wenn sie sich überlappen (ADR 0045). Dort fehlt die Karte; Bahnaufdruck, Beschreibungskasten und Fußzeile bleiben. Nennt die Zuordnung einer Bahn eine eigene Abdeckung, gilt nur diese. check nennt die Abdeckflächen zur Information. Abdeckungen für Fenster- und Korridor-OL beschreibt Kapitel 11.
Die Datei verknüpfen: die lebende Verbindung
In der Projektdatei bekommt [sources] den Schlüssel courses:
[sources]
map = "rummelsburg.omap"
courses = "courses.ppen"
Der Pfad gilt relativ zur Projektdatei. Das Programm liest die Bahndatei bei jedem check und jedem export neu. Verschieben Sie in Purple Pen einen Posten, legen eine Bahn an oder ändern eine Beschreibung, speichern Sie die Datei und rufen export auf. Im Projekt muss nichts aufgefrischt werden.
Die Projektdatei hält nur, was die Bahndatei nicht weiß. Zwei Arten von Einträgen beziehen sich auf sie:
[[assignments]]sagt, auf welchem Layout eine Bahn gedruckt wird. Es nennt die Bahn so, wie die Bahndatei sie nennt:[[assignments]] course = "A" layout = "a4-4000"Eine Bahn ohne Zuordnung nimmt das erste Layout, und
checksagt das als Information.[[numbers]]korrigiert die Lage einer Postennummer, entweder für ein Layout oder für eine Bahn (siehe „Lage der Nummern“ unten). Es nennt den Posten mit seinem Code.
Ändert sich die Bahndatei, kann ein solcher Eintrag etwas nennen, das es nicht mehr gibt, etwa eine umbenannte Bahn oder einen gelöschten Posten. Das Programm wirft ihn nicht weg. Es meldet jeden mit einem Hinweis und lässt ihn in der Projektdatei stehen, damit eine umbenannte Bahn nicht ihre Einstellungen kostet. Die übrigen Bahnen laden wie gewohnt. Korrigieren Sie den Namen in der Projektdatei oder löschen Sie den Eintrag. Ist eine Lage in der Bahndatei weitergewandert, seit Sie eine Korrektur gemacht haben, meldet check auch das. Die Korrektur gilt weiter, und Sie entscheiden, ob sie noch passt.
Koordinaten und Einpassung
Bevor es druckt, passt das Programm die Bahn an die Karte an und bricht ab, wenn die Einpassung falsch aussieht. Eine Bahn auf der falschen Karte oder auf dem Kopf schickte Läufer an die falsche Stelle. Diese Prüfungen laufen:
Die y-Achse. Purple Pen, Condes und OCAD schreiben die y-Achse nach oben, OOM zählt nach unten. Purple Pen schreibt sie immer nach oben, also liest das Programm eine
.ppenso. Passt die Bahn damit nicht auf die Karte, bricht die Einpassung ab; gespiegelt druckt es eine Purple-Pen-Bahn nie. Eine IOF-XML-Datei sagt nicht, welche Achse sie nutzt. Das Programm probiert beide Lesarten und nimmt die, bei der jeder Posten auf der Karte liegt. Gibt es in der Datei Breite und Länge und ist die Karte georeferenziert, entscheiden die Koordinaten. Passen beide Lesarten und entscheidet nichts, nimmt das Programm „oben“ und warnt, denn eine Bahn nahe der Kartenmitte passt in beide Richtungen. Sehen Sie sich ein Blatt an und bestätigen Sie dann die Achse in der Projektdatei:[sources] course_y_axis = "up" # oder "down"Eine IOF-XML-Datei, die nach unten geschrieben wurde und in beide Richtungen passt, druckt auf dem Kopf, bis Sie die Achse setzen. Das ist der eine Fall, in dem das Programm Sie bittet hinzusehen. Ein Purple-Pen-Projekt braucht kein
course_y_axis. Setzen Sie bei einer.ppentrotzdem"down", folgt das Programm dem und warnt, denn die Bahn steht dann gespiegelt auf dem Blatt.Der Kartenmaßstab. Nennt die Bahndatei einen Kartenmaßstab, muss er dem der Karte entsprechen. Weicht er ab, bricht die Einpassung ab. Die Meldung ist noch englisch: „the course file is drawn for 1:…, the map is 1:…“. Exportieren Sie die Bahnen im Bahnlegungsprogramm für den Maßstab der Karte. Das Programm skaliert Positionen nie um. Eine Datei ohne Kartenmaßstab bekommt eine Zeile „Zur Information“. Nennt die Karte selbst keinen Maßstab, bricht die Einpassung mit „the course file is drawn for 1:…, and the map states no scale“ ab; tragen Sie den Maßstab in OOM ein.
Die Georeferenzierung. Ist die Karte in UTM georeferenziert und hat ein Posten sowohl eine Kartenposition als auch Breite und Länge, vergleicht das Programm beide. Liegt ein Posten mehr als 20 m von dem Ort entfernt, den seine Breite und Länge angeben, bricht die Einpassung ab mit „control … lies … m from where its lat/lng put it“. Breite und Länge aus einer GNSS-Messung im Gelände stimmen auf 5 bis 10 m. Eine falsche Karte, Zone oder ein falsches Datum verschiebt jeden Posten um Hunderte Meter. Was zu tun ist, hängt von der Ursache ab:
- Die Georeferenzierung der Karte ist falsch oder gehört zu einer anderen Karte. Korrigieren Sie sie in OOM.
- Die Bahndatei gehört zu einer anderen Karte. Nehmen Sie die richtige Datei.
- Nur Breite und Länge sind falsch oder unerwünscht. Setzen Sie
course_georef_check = falseunter[sources]. Die Kartenpositionen platzieren die Bahn dann allein, undchecksagt in einer Zeile „Zur Information“, dass es die Koordinaten nicht beachtet hat.
Andere Koordinatensysteme als UTM werden noch nicht geprüft;
checksagt das als Information.Außerhalb der Karte. Bringt keine Lesart der y-Achse alle Posten auf die Karte, bricht die Einpassung ab mit „only … of … controls lie on the map; the course file belongs to another map, uses another origin or another y axis“. Prüfen Sie, ob Sie die richtige Bahndatei und die richtige Karte verknüpft haben, und, falls Sie
course_y_axisgesetzt haben, ob der Wert stimmt. Posten bis 10 mm außerhalb der gezeichneten Karte zählen noch, ein Start oder Ziel am Rand eines Ausschnitts geht also.Nur Breite und Länge. Ein Posten mit Breite und Länge, aber ohne Kartenposition wird über die Georeferenzierung der Karte platziert. Kann die Karte das nicht, oder haben Sie die Prüfung abgeschaltet, bricht die Einpassung ab mit „controls … have only lat/lng and cannot be placed“ und dem Grund.
Schlägt eine Prüfung fehl, geben check und export den Fehler aus und halten für die ganze Bahndatei an, damit eine schlechte Datei nie ein Blatt erzeugt. Der Exit-Code ist 1.
Bahnblätter und Bahnaufdruck

Das Blatt der Bahn „A“ (2,4 km, acht Posten) in 1:4000 mit Bahnaufdruck, Nummern, Titelblock und Beschreibungskasten. Die Bahn ist mit freemapper-courseplan 0.14.1 gemacht. Karte: Remo Madella, MOO Challenge Berlin 2025.
Mit einer Bahndatei schreibt export ein PDF je Bahn statt je Layout (siehe „Export“ unten). Ein Bahnblatt ist das Layout, dem die Bahn zugeordnet ist, mit diesen Änderungen:
- Der Kartenausschnitt zentriert sich auf die Bahn, sofern das Layout kein
map_frame.centre_map_mmsetzt. Das Programm zentriert auf Posten und Knickpunkte und weitet den Ausschnitt für ein Sonderobjekt nur, wenn das Objekt noch hineinpasst. Bahnblätter schneiden meist einen Teil aus einer größeren Karte, setzen Sie alsomap_frame.crop = true, wie esinit --coursestut. Eine Karte, die größer ist als der Ausschnitt, ist auf einem Bahnblatt zu erwarten und nur eine Zeile „Zur Information“. Ein Posten, der außerhalb des Ausschnitts oder auf seinem Rand liegt, ist ein Hinweis. - Das Programm zeichnet die Bahn in Violett (35/85/0/0 CMYK im Regelprofil) über die Karte, mit den Symbolgrößen, die das Regelprofil für die Kartenart vorgibt, aus ISSprOM 2019-2 und ISOM 2017-2. Das sind die Größen im Basismaßstab (Sprint 1:4000, Wald 1:15000). Auf dem Blatt bekommen sie die Größe, die die Norm für den Druckmaßstab vorgibt, den Bahnfaktor: 133 % bei 1:3000 auf einer Sprintkarte, 150 % bei 1:10000 auf einer Waldkarte. Das hängt nicht vom Maßstab ab, in dem die Kartendatei gezeichnet ist. Eine Waldkarte, gezeichnet in 1:10000, bekommt in 1:10000 Kreise von 7,5 mm und in 1:15000 Kreise von 5,0 mm. Die Kopfzeile nennt den Symbolfaktor; er gilt für die Symbole der Karte selbst.
- Das Violett hat zwei Schichten, wie es die „Printing and Colour Definitions“ der IOF (Rev. 4) verlangen. Das untere Violett enthält Start, Posten, Strecken, Ziel, verbotene Linien und Querungsstellen. Es liegt unter Schwarz, Braun und Blau 100 %, damit schwarze Kartendetails über dem Kreis lesbar bleiben. Das obere Violett enthält die Postennummern, Kartenwechsel, Sperrgebiete, verbotene Strecken, Pflichtstrecken und Texte. Es liegt über der ganzen Karte.
- Beide Schichten werden im Mischmodus
Multiplygemalt. Die Karte scheint überall durch das Violett, und Schwarz unter dem Violett bleibt schwarz. Ein Bürodrucker hat weder Sonderfarbe noch Überdruckattribut, deshalb muss das PDF das Ergebnis selbst zeigen. - Die Textelemente kennen vier weitere Platzhalter:
{course}(der Bahnname),{length_km}(die Länge in Kilometern, ohne Einheit),{climb_m}(der Anstieg in Metern, ohne Einheit) und{controls}(die Zahl der Posten). Ein Platzhalter bleibt leer, mit einer Zeile „Zur Information“, wenn die Datei für die Bahn keinen Wert hat oder das Blatt keine Bahn hat. Zum Beispiel nennt"{event} · Bahn {course}"die Bahn im Titelblock.init --coursesschreibt{event} · {course}. - Nennt die Zuordnung der Bahn eine Abdeckung, oder hat die Bahn Abdeckflächen aus Purple Pen, fehlt die Karte in der abgedeckten Fläche. Der Bahnaufdruck und die Blattelemente bleiben (Kapitel 11).
Das Programm prüft auch, dass kein Blattelement einen Teil der Bahn verdeckt. Deckt ein Titelblock, Logo, Text, eine Kontrollstrecke, Fußzeile oder die Postenbeschreibung einen Posten, den Start oder das Ziel ab, warnt check und nennt das Element und die Posten. Versetzen Sie das Element mit seinem Anker.
Die Postenbeschreibung
Ein Layoutelement der Art control_descriptions zeigt die Postenbeschreibung der Bahn so, wie die IOF sie festlegt:
[[layouts.elements]]
id = "descriptions"
kind = "control_descriptions"
cell_mm = 6.0 # optional, 4 bis 10, sonst aus dem Regelprofil
anchor = { to = "map_frame", corner = "top_right", offset_mm = [2.0, 2.0] }
Der Kasten ist so aufgebaut, wie Purple Pen ihn aufbaut. Er zeigt den Titel der Veranstaltung, die Bahn mit Länge und Anstieg, den Start, je Posten eine Zeile mit Nummer, Code und den Symbolen der Spalten C bis H, Zeilen für Pflichtstrecken und Kartenwechsel mit ihrer Länge und das Ziel. Der zweite Titel einer Bahn aus Purple Pen bekommt eine eigene Zeile, ein Kartenwechsel („map flip“) die Zeile 15.6. Eine Bahn mit Wertung (Score-Lauf) führt ihre Posten nach Code auf, wie Purple Pen es tut.

Der Beschreibungskasten der Bahn „A“ mit Titel, Länge (2,4 km), Start, acht Posten und Ziel. Karte: Remo Madella, MOO Challenge Berlin 2025.
Der Kasten hat weißen Hintergrund und ist in Arimo gesetzt. Ein Kästchen ist standardmäßig 6 mm groß, cell_mm setzt 4 bis 10 mm. Der Kasten behält seine Größe bei jedem Druckmaßstab, wie es ein Element auf dem Papier tun soll. Braucht ein Blatt in 1:3000 mehr Platz für die Karte, nehmen Sie kleinere Kästchen.
Der Kasten entfällt, wenn er über den Blattrand ragen würde, denn eine abgeschnittene Beschreibung könnte einen Posten verbergen. Davor warnt check, ebenso vor einer Bahn, bei der kein Posten eine Beschreibung hat. Ein Layout ohne das Element hat schlicht keinen Kasten, und check sagt das als Information. Dasselbe gilt für IOF-XML. Ein Symbol, das der Beschreibungsstandard der Bahndatei nicht kennt, lässt sein Kästchen leer, und check nennt es. Die Beschreibungsstandards 2004, 2018 und 2024 werden gelesen.
Noch nicht gemacht:
- Eine Kartenausgabe („map issue“) wird als Start gelesen. Ihre eigene Zeile mit der Länge der Pflichtstrecke zum Start fehlt.
- Eine Strecke, die nur teilweise abgeflaggt ist, wird als nicht abgeflaggt gezeichnet und beschrieben.
- Eine lange Bahn wird nicht auf mehrere Spalten verteilt.
- Der Kasten hat keine Textspalte neben den Symbolen und keine Legende für eigene Symbole.
Lage der Nummern
Wo eine Postennummer steht, zählt auf einer vollen Sprintkarte, und mehrere Beteiligte wollen mitreden. Das Programm kennt vier Ebenen, die genauere gewinnt:
- Die automatische Platzierung. Sie gilt nur für einen nummerierten Posten, für den die Bahndatei keine Lage angibt.
- Die Bahndatei. Purple Pen speichert die Lage je Bahn, relativ zum Posten. Bei einer
.ppenrechnet das Programm den Versatz im Druckmaßstab der Bahn um, mit der Einstellung von Purple Pen, ob Bahnobjekte mit dem Maßstab wachsen („Scale sizes of items“). Bei IOF-XML nimmt esMapTextPosition. - Eine Korrektur für das Layout: eine Tabelle
[[numbers]]mitlayout. - Eine Korrektur für das Blatt einer Bahn: eine Tabelle
[[numbers]]mitcourse.
Eine Korrektur nennt den Posten, eine Richtung in Grad (0 ist Osten, gegen den Uhrzeigersinn) und, wenn nötig, einen Abstand:
[[numbers]]
control = "49"
course = "A"
direction = 161.0
gap_mm = 0.5
Der Abstand ist die kürzeste Entfernung in mm im Basismaßstab zwischen dem äußeren Rand der Kreislinie und dem Kasten der Nummer. Er wächst mit dem Bahnfaktor wie der Kreis, die Nummer behält also bei jedem Druckmaßstab ihr Aussehen. gap_mm liegt über 0 und bei höchstens 10 mm. Ohne ihn behält die Korrektur den Abstand der Ebene darunter. numbers accept schreibt außerdem eine Tabelle [numbers.base_seen] mit der Lage, die die Datei hatte, als Sie die Korrektur machten.
Das Regelprofil legt fest, in welcher Spanne ein Abstand liegen soll. In iof-print sind es 0,5 bis 5 mm. Eine Nummer außerhalb der Spanne wird dort gedruckt, wo sie steht, und check warnt. Hat eine Regel im Profil nur ein Minimum, hält die automatische Platzierung genau diesen Abstand ein, wie freemapper-courseplan; check lässt dann jeden größeren Abstand bis 10 mm gelten.
Platziert das Programm eine Nummer selbst, folgt es vier Regeln, die aus den Regeln der Bahnleger stammen:
- Die Nummer verdeckt kein Punkt- und kein Liniensymbol der Karte. Diese Regel ist hart.
- Die Nummer steht hinter dem Posten, in Linie mit der hereinführenden Strecke. Beim ersten Posten kommt diese Strecke vom Start.
- Käme der Kasten hinter dem Posten näher als eine halbe Linienbreite an die hinausführende Strecke, steht die Nummer auf der äußeren Winkelhalbierenden, zwischen den beiden Strecken auf ihrer Außenseite.
- Ist der bevorzugte Platz belegt, gewinnt der freie Platz, der am wenigsten davon abweicht.

Die Posten 4 bis 6 der Bahn „A“ mit Kreis, Strecke und Nummer. Karte: Remo Madella, MOO Challenge Berlin 2025.
Das Programm verschiebt eine Nummer nie von selbst. Es druckt sie dort, wo ihre Ebene sie hinsetzt, und check bewertet jede Nummer gegen den Bahnaufdruck, die Blattelemente, den Rand des Kartenausschnitts und die Symbole der Karte. Liegt eine Nummer auf einem davon, nennt der Hinweis, was sie überdeckt (Kartensymbole mit ihrem Code), und schlägt eine Richtung und einen Abstand vor. Gibt es keinen freien Platz, ist der Vorschlag der am wenigsten verdeckte.
Die Suche hat eine Grenze je Blatt: 2 Millionen Lagen, die sie prüft, und 200 Millionen für alle Blätter einer Bahndatei, zu gleichen Teilen. Echte Bahnen bleiben weit darunter. Ein Blatt, das sie erreicht, sagt es in einem Hinweis; die Nummern, zu denen die Suche nicht mehr kam, bleiben, wo ihre Ebene sie hinsetzt, und ihre Konflikte kommen ohne Vorschlag.
So übernehmen Sie einen Vorschlag:
freemapper-print numbers accept stadtsprint --course A --control 49 --sheet
--sheet macht die Korrektur für das Blatt dieser Bahn (Ebene 4). --layout-wide macht sie für jede Bahn, die auf dem Layout der Bahn gedruckt wird (Ebene 3). Eines von beiden ist nötig. Ohne --direction und --gap nimmt der Befehl den Vorschlag von check. Mit beiden schreibt er Ihre Werte. Hat check keinen Vorschlag, weil die Nummer keinen Konflikt hat, hält der Befehl an und verlangt die beiden Werte.
Der Vorschlag stammt vom Blatt der Bahn, die Sie nennen. Mit --layout-wide und ohne eigene Werte zeichnet der Befehl jede andere Bahn dieses Layouts, die die Nummer druckt, mit der neuen Korrektur, und schreibt nur, wenn keine davon dort einen Konflikt bekommt. Sonst nennt er diese Bahnen und hält mit Exit-Code 2 an. Nehmen Sie dann --sheet für die eine Bahn, oder geben Sie --direction und --gap für alle an.
numbers accept hängt eine Tabelle [[numbers]] als Text ans Ende der Projektdatei. Alles davor bleibt, wie es ist, auch die Kommentare. Die neuen Zeilen enden wie die der Datei (CRLF oder LF), eine Projektdatei, die ein Link ist, wird durch eine normale Datei ersetzt (das Ziel des Links behält seinen Inhalt), und die Datei behält ihre Rechte. Danach lädt es die Datei neu und stellt den alten Inhalt wieder her, wenn das scheitert. Eine zweite Korrektur für denselben Posten und Geltungsbereich lehnt es ab. Zum Ändern bearbeiten Sie die Datei. Danach rufen Sie check auf, um das Ergebnis zu sehen.
Export
freemapper-print export stadtsprint
freemapper-print export stadtsprint --course A --course B
freemapper-print export stadtsprint --single-file
freemapper-print export stadtsprint --layout a4-4000
Mit einer Bahndatei schreibt export ein PDF je Bahn in den Ordner out, benannt nach der Bahn: A.pdf. Zeichen, die ein Dateiname nicht enthalten kann, werden zu -. Namen, die sich nur in der Groß- und Kleinschreibung unterscheiden, bekommen „ (2)“.
--course <NAME>exportiert nur die genannte Bahn. Die Option lässt sich wiederholen. Ein Name, den die Datei nicht hat, ist ein Fehler, der die vorhandenen Bahnen nennt, mit Exit-Code 2.--single-fileschreibt alle Bahnen in ein PDF, eine Seite je Bahn, jede auf dem Papier ihres Layouts. Die Datei heißt nach dem Titel der Veranstaltung mit „ - alle Bahnen“ („ - all courses“ auf englischen Blättern). Mit--layoutlässt sie sich nicht verbinden.--layout <ID>exportiert ein Layout wie bisher ohne Bahn, die Karte allein mit Titel und Kontrollstrecke. Mit einer Bahndatei lässt sich die Option nicht mit--courseoder--single-fileverbinden.--out-dirwirkt wie bisher.
Ein Projekt ohne Bahndatei exportiert genau wie in Kapitel 5.
Mit einer Bahndatei beginnen: init --courses
freemapper-print init stadtsprint --map rummelsburg.omap --title "Stadtsprint Rummelsburg" --courses courses.ppen
init liest die Bahndatei zuerst und passt sie an die Karte an. Eine Datei, die nicht zur Karte passt, stoppt init vor dem Schreiben. Aus einer .ppen entstehen dann ein Layout je Druckmaßstab der Datei, eine Zuordnung für jede Bahn, ein Beschreibungskasten in der oberen rechten Ecke des Kartenausschnitts und map_frame.crop = true. Eine Bahn ohne Druckmaßstab bekommt den Kartenmaßstab. Aus IOF-XML entsteht ein Layout im Kartenmaßstab, ohne Beschreibungskasten, denn das Format hat keine. Jede Layout-ID nennt ihren Druckmaßstab, etwa a4-4000. In beiden Fällen beginnt der Titelblock mit {event} · {course}, damit jedes Blatt seine Bahn nennt. init sagt, woher jeder Wert stammt, und nennt die Bahndatei wie die Projektdatei, relativ zum Projektordner.
Aus einer IOF-XML-Datei übernimmt init außerdem das Datum der Veranstaltung und den Ausrichter, falls die Datei sie nennt, als date und organiser nach [event], damit {date} und {organiser} gefüllt sind. Eine .ppen hat beides nicht. Nur init kopiert sie; spätere Änderungen in der Bahndatei erreichen das Projekt nicht.
Nehmen Sie die Datei als Anfang. init wählt Papier und Passepartout für das Layout als Blatt für sich; ob jede Bahn in den Ausschnitt passt, zeigt check. Ändern Sie Papier und Passepartout nach Wunsch und rufen Sie dann check auf. Bei einer IOF-XML-Datei meldet das erste check vielleicht die angenommene y-Achse; bestätigen Sie sie wie oben beschrieben.
Bahnen prüfen
check geht jede Bahn durch. Je Bahn gibt es eine Zeile mit Layout, Papier, Druckmaßstab, Kartenmaßstab und Faktoren, danach die Hinweise. Danach prüft es jedes Layout als Blatt ohne Bahn, so wie export --layout es schreibt. Hinweise zur Bahndatei selbst, vom Lesen und Einpassen, stehen einmal vor der ersten Bahn. Die letzte Zeile lautet „3 Bahnen und 2 Layoutblätter geprüft, keine Hinweise.“ oder „Mit Hinweisen: 1 von 3 Bahnen, 0 von 2 Layoutblättern.“ Der Exit-Code ist 0, wenn nichts Ihre Aufmerksamkeit braucht („Zur Information“ zählt nicht), sonst 1. Ein Skript kann check vor export aufrufen.
Die Hinweise und was zu tun ist, stehen in Kapitel 10.