summaryrefslogtreecommitdiff
path: root/graphics/tktexcad/doc/tkTeXCAD.sgml
blob: 8c9e89f158655cd611ee3d4e7425dd7db9db6104 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<!doctype linuxdoc system>

<article>

<!-- Title information -->

<title>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>