Dies ist der zweite Teil der Reihe, Teil 1 liegt unter http://uweziegenhagen.de/?p=2032.
Schauen wir uns mal den Aufbau der FreeMind Datei an:
<map version="0.9.0">
<!-- To view this file, download free mind mapping software FreeMind from http://freemind.sourceforge.net -->
<node CREATED="1335794057887" ID="ID_1245350673" MODIFIED="1335794109247" TEXT="Zentrum">
<node CREATED="1335794071208" ID="ID_1530114542" MODIFIED="1335794074163" POSITION="right" TEXT="Level 1"/>
<node CREATED="1335794075246" ID="ID_1662348218" MODIFIED="1335794079639" POSITION="right" TEXT="Level 1">
<node CREATED="1335794081307" ID="ID_1399980217" MODIFIED="1335794085467" TEXT="Level 2">
<node CREATED="1335794088715" ID="ID_1065307715" MODIFIED="1335794091703" TEXT="Level 3">
<node CREATED="1335794092827" ID="ID_1370145863" MODIFIED="1335794094989" TEXT="Level 4">
<node CREATED="1335794096421" ID="ID_9970207" MODIFIED="1335794099648" TEXT="Level 5">
<node CREATED="1335794173930" ID="ID_919041832" MODIFIED="1335794177008" TEXT="Level 6">
<node CREATED="1335794178164" ID="ID_1274260836" MODIFIED="1335794180516" TEXT="Level 7"/>
</node>
</node>
</node>
</node>
</node>
</node>
</node>
</map>
Es gibt ein map
Tag, das entsprechende verschachtelte node
Tags enthält. Wenn ein node
Tag keine „Kinder“ hat, wird es am Ende der Zeile mittels „/“ geschlossen. node
Tags mit „Kindern“ enthalten diese nodes und werden dann rekursiv geschlossen.
Schauen wir uns mal das XSLT an (Eine tiefgehende Einführung in XSLT kann ich hier jedoch nicht geben): Hinter dem Matching auf das map
Tag wird die Text
Eigenschaft des ersten node-Elements als part ausgegeben. Sehr interessant, an dieser Stelle können wir später ansetzen, um direkt ein kompilierbares LaTeX-Dokument zu erhalten.

Es gibt im Dokument noch drei weitere Matches:
- richcontent
soll uns aktuell nicht interessieren, wird eventuell später mal behandelt.
- node
Hier wird die Ausgabe der einzelnen node
Tags gesteuert.
- text
Dieses match steuert die Ausgabe der Notizen als einfachen Text, gehe ich eventuell später mal drauf ein.
In den node
matches wird geschaut, wie tief sich der aktuelle Knoten befindet, in Abhängigkeit dessen wird das Text Attribut des Knotens einfach in ein entsprechendes LaTeX-Kommando eingebettet. Entsprechende Abschnitte wie den folgenden finden sich für alle Levels von \chapter bis \subparagraph.

Im nächsten Teil werden wir dieses XSLT Sheet auf unsere Bedürfnisse anpassen.
Uwe Ziegenhagen mag LaTeX und Python, auch gern in Kombination.
Hat Dir dieser Beitrag geholfen und möchtest Du Dich dafür bedanken? Dann unterstütze doch vielleicht die Dingfabrik Köln e.V. mit einem kleinen Beitrag. Details zur Bezahlung findest Du unter Spenden für die Dingfabrik.
More Posts - Website