Unterabschnitte


Die Idee


Einleitung

Ich habe für Linux bis jetzt noch keinen Wysiwyg-Editor für Struktogramme1.1 gefunden (DIA kann zwar Flow-Charts und UML-Diagramme erzeugen, aber eben keine Nassi-Shneiderman Diagramme.). Zum Anderen gibt es die grundsätzliche Vorgabe, dass die Ausgabe mit LATEX und dem Style erzeugt wird, d.h. ich muss die graphisch erzeugten Struktogramme weiter verarbeiten können1.2. Deswegen musste ich mir etwas einfallen lassen, um eine ansprechende, einfache und sichere Benutzerführung bei der Erzeugung von Struktogrammen zu entwickeln.

Nach kurzem Besinnen bin ich auf die Idee gekommen, dass das Basisformat XML sein sollte und meine graphische Eingabe mit dem Emacs durchgeführt wird. Ich habe mich für den Emacs entschieden, weil der XML-Mode psgml eine einfache und sichere Schnittstelle zur Eingabe von XML-Dokumenten darstellt1.3.

Zwar braucht man/frau im Grunde bei der Entwicklung von Struktogrammen keine Layoutkontrolle, doch wie ich die meisten Anwender kenne, möchten sie sehen, wie schön ihre Struktogramme aussehen. Zudem musste ich sowieso eine Konvertierung der XML-Dateien nach LATEX programmieren, darum habe ich einen kleinen Emacs-Mode zur Anbindung der PHP-Anwendung php4nsd2ltx bzw. C++Anwendung nsd2ltx geschrieben, der On-The-Fly DVI- oder PDF-Dokumente erzeugt und die farbliche Gestaltung der XML-Dateien übernimmt.

Vorteile

  • Emacs, (PHP) und LATEX ist bald überall verfügbar
  • Einfache und validierte Eingabe der Struktogramme
Nachteile

  • Auch wenn On-the-Fly DVI-Dateien erzeugt werden können, den richtigen Überblick bei komplexen Struktogrammen bekommt man nicht (BTW: Wer komplexe Struktogramme hat, macht IMHO sowieso etwas falsch...)
  • Komplexe Installation mit den Komponenten Emacs, (PHP,) (PDF)LATEX und


Generelle Voraussetzungen

  • LATEX-Installation mit den Styles und Float. Je nach Ausgabeart müssen noch
    • pdfLATEX
    • psLATEX
    • dvips
    • ghostscript
    • dvipdfm
    • epstopng1.4
    • epstopdf
    installiert sein.
  • Es sollte der Emacs-Mode psgml installiert sein


Beispiele

In dem Verzeichnis docs/examples finden sich zwei Beispiele, deren Ausgabe findet sich unter docs/examples/output. Eine Beschreibung der XML-Syntax finden Sie in Abschnitt A.1.

Einfaches Beispiel
Eingabe im Emacs-Editor
Ausgabe in LaTeX
LaTeX-Resultat


Ausgabemodi

Es gibt die nachfolgenden Möglichkeiten zur Ausgabe der Struktogramme, die mit (*) gekennzeichneten Modi sind in der PHP-Anwendung nicht implementiert.

tex
Es werden nur die Dateien der Struktogramme erzeugt.
dvi
Es wird zum Modul eine Hauptdatei angelegt, die einzelnen Struktogramme werden als separate TEX-Dateien angelegt. Anschliessend wird LATEX und der DVI-Viewer xdvi aufgerufen.
pdf
Ähnlicher Ablauf wie bei dvi, nur das eine PDF-Datei erzeugt und acroread aufgerufen wird.
Voraussetzung
Installiertes pdfLATEX.
dvi2pdf
Es wird zuerst eine DVI-Datei erzeugt, anschliessend mit dvipdfm die PDF-Datei generiert.
Voraussetzung
Installiertes dvipdfm.
ps4dvi (*)
Es wird eine DVI-Datei mit psLATEX erzeugt.
Voraussetzung
Installiertes psLATEX.
pdf4ps (*)
Es wird eine DVI-Datei mit psLATEX erzeugt, anschliessend mit dvips -Ppdf die PS-Datei, daraufhin mit epstopdf die PDF-Datei.
Voraussetzung
Installiertes dvips, epstopdf.
eps
Die einzelnen Struktogramme werden als EPS-Dateien exportiert.
Voraussetzung
Installiertes dvips.
png
Die einzelnen Struktogramme werden als PNG-Dateien exportiert (Auflösung 100dpi).
Voraussetzung
Installiertes GhostScript, Perl und das Script epstopng.
png150
Die einzelnen Struktogramme werden als PNG-Dateien exportiert (Auflösung 150dpi).
png300
Die einzelnen Struktogramme werden als PNG-Dateien exportiert (Auflösung 300dpi).
png600
Die einzelnen Struktogramme werden als PNG-Dateien exportiert (Auflösung 600dpi).
pdfp
Die einzelnen Struktogramme werden als PDF-Dateien exportiert.
Voraussetzung
Installiertes pdfLATEX.
dvi2pdf_pic (*)
Die einzelnen Struktogramme werden als PDF-Dateien exportiert.
Voraussetzung
Installiertes dvipdfm.
print
Es wird eine DVI-Datei erzeugt und zum Drucker geschickt.
Voraussetzung
Installiertes dvips

Mit den Ausgabeoptionen sollten alle erdenklichen Alternativen für einen Import in Textverarbeitungsprogramme ala StarOffice abgedeckt sein1.5.




> PHP-Version ||  < nsd2ltx - Struktogramme mit XML
© 2002 DokuTransData, Aachen
2002-11-13
Jürgen A. Lamers