TkTeXCAD -- Kurzbeschreibung <author>Hilmar Straube, <tt/hilmstr@web.de/ <date>13. August 2001 <abstract> Kurzbeschreibung zu TkTeXCAD, einem Python/Tkinter Programm zum Erstellen von picture-Umgebungen für LaTeX. </abstract> <!-- Table of contents --> <toc> <!-- Begin the document --> <sect>Einführung <p>TkTeXCAD soll die Erstellung von picture-Umgebungen für LaTeX vereinfachen. Es kennt deren Einschränkungen und versucht, die Ausgabe von TeX möglichst getreu schon vor dem Export darzustellen. Es kann Dateien im eigenen Format (realisiert mit dem Python-Modul pickle) laden und speichern, LaTeX-Code aber nur exportieren. Es ist vor allem auf die Verarbeitung von wiederverwendbaren Teilbildern hin ausgelegt. <sect>(Nicht-)Fähigkeiten <p>Das Programm rechnet grundsätzlich in pt und benutzt nur die picture Umgebung ohne Erweiterungspakte (außer graphicx für das einfügen von EPS-Dateien). Das Programm erzeugt also nur folgendes: \circle (leerer Kreis; abgestuft bis 40 pt), \circle* (ausgefüllt, nur bis 15 pt), Linien und Pfeile (eingeschränkte Neigungswinkel; verdickte waagerechte Linien als gefüllte Rechtecke gebraucht), verschiedene Textboxen, die quadratischen \qbezier-Kurven, \includegraphics (benötigt die Angabe von \usepackage{graphicx} im Vorspann) und natürlich Befehle zum Einfügen ggf. skalierter Teilbilder. Weiterhin lassen sich mehrere gleiche Objekte im jeweils gleichen Abstand mittels \multiput erzeugen. <sect1>Teilbilder <p>Das Programm unterscheidet zwischen Teilbildklassen und Teilbildinstanzen. Eine Teilbildklasse besteht aus einigen Objekten mit bestimmten Eigenschaften. Eine Instanz der Klasse ist dann wieder ein Objekt einer oder mehrerer anderer Teilbildklassen und erscheint dort als benutzerdefiniertes Objekt. Ändert sich die innere Teilbildklasse, ändert sich die Darstellung in allen Instanzen. Das Objekt "Instanz einer Teilbildklasse" lässt sich auch skalieren (\unitlength). Dabei können sich die Rundungen von Ovalen und die Durchmesser von Kreisen unproportional ändern. Auch dies dürfte korrekt dargestellt werden. Ein Bild besteht damit für TkTeXCAD aus einigen Bildklassen, deren erste das Hauptbild darstellt und Instanzen aller anderen ggf. indirekt enthält. Beim Exportieren erzeugt jede Bildklasse eine picture-Umgebung, auf die vom Hauptbild zugegriffen wird. Deren Name ist auch der Dateiname. Sie müssen also dafür Sorge tragen, dass dieser Name auf ihrem Rechnersystem legal ist. <sect1>EPS-Einbindung <p>Wie schon erwähnt, können Sie EPS-Bilder einfügen. Das Programm kann auch den Inhalt dieser Bilder in der Vorschau anzeigen, braucht dazu aber die Hilfe der Python Imaging Library (PIL). Diese ihrerseits greift auf Ghostscript zurück, kann das aber nur auf UNIX-Derivaten mit installiertem Ghostscript. Falls Sie Python mit der PIL auf einer anderen Plattform benutzen, hängen Sie an die Zeile "import Image" einige Buchstaben an, so dass ein "ImportError" hervorgerufen wird, der dem Programm das Nichtvorhandensein der EPS-Unterstützung anzeigt. Das äußert sich dadurch, dass jegliche eingefügten EPS-Dateien als durchgestrichenes Rechteck erscheinen und für das Programm dessen Breite/Höhe-Verhältnis unbekannt ist. Es nimmt daher (meist fälschlicherweise 1 zu 1 an). Weder in den für den Eigengebrauch gespeicherten .pic-Dateien, noch in den exportierten Dateien werden die EPS-Dateien gespeichert. Sie sollten also sicher stellen, dass Sie alle verwendeten Grafikdateien mitkopiert werden. (In den exportierten .tex-Dateien stehen absolute Pfade.) <sect>Hinweise zur Bedienung <sect1>Das Menü Anzeige <p>Jede Eingabe eines Koordinatenpunktes wird in LaTeX-Koordinaten umgerechnet und außerdem noch auf den nächsten Netzpunkt gesetzt. Das Netz kann angezeigt oder versteckt sein, ist aber immer aktiv. Ist seine Wirkung unerwünscht, stellen sie einfach den Netzabstand klein genug. Zur Umrechnung in LaTeX-Koordinaten wird die Angabe im oberen Teil dieses Menüs benutzt. Sie gibt an, wieviele Bildschirmpunkte einer Einheit (pt) entsprechen. <sect1>Das Menü Teilbildklassen <p>Eine neue Teilbildklasse wird aus den gerade markierten (Elemente/... markieren) Objekten erstellt. Diese Objekte werden entfernt und an ihre Stelle wird dann eine (erste) Instanz der neu erstellten Klasse an Stelle der alten Objekte eingefügt. Darunter werden geladenen Teilbildklassen angezeigt; die Klassen, die gerade nicht eingefügt werden können, sind deaktiviert. Mit dem untersten Menüpunkt können alle bisher erzeugten Teilbildklassen zur Bearbeitung aufgerufen werden. Das passt vielleicht nicht ganz so gut hier her, ist aber wohl doch ein wenig erklärungsbedürftig: Mit \multiput wiederholten Bildelementen kann man von einem Multielement zu mehreren Einzelelement zerlegen (Multi auflösen). Dann sind die Bildelement nicht mehr verbunden und können für sich geändert werden. Bildinstanz auflösen zerlegt eine Bildinstanz in ihre Einzelteile, das in einem \multiput dann gleich mehrfach. Dadurch ist dieser Bildteil von der Klasse getrennt; es hat aber keinen Einfluss auf andere Instanzen der Klasse. <sect1>Das Menü Datei <p>Laden, Speichern und Importieren beziehen sich auf die von TkTeXCAD erzeugten .pic-Dateien. Importieren funktioniert nur, wenn die Namen der Klassen in der zu importierenden Datei keine Überscheidungen mit den gerade geladenen Klassen haben. Von den so importierten Klassen können dann Instanzen erzeugt werden. Der Export erstellt zu jeder Klasse eine .tex-Datei gleichen Namens. Diese beziehen sich aufeinander und ihre Hauptdatei kann mit \import{<em/name/} in ihre LaTeX-Datei eingefügt werden. </article>