214 19 19MB
German Pages 360 [368] Year 1995
Professioneller Buchsatz mit Lehrbuch für Anwender
Von Diplom-Mathematiker
Lothar Schumann
3., unwesentlich veränderte Auflage
R. Oldenbourg Verlag München Wien
Die Deutsche Bibliothek - CIP-Einheitsaufnahme Schumann, Lothar: Professioneller Buchsatz mit TEX : Lehrbuch für Anwender / von Lothar Schumann. - 3., unwesentlich veränd. Aufl. München ; Wien : Oldenbourg, 1995 ISBN 3-486-23325-4
© 1995 R. Oldenbourg Verlag GmbH, München Das Werk einschließlich aller Abbildungen ist urheberrechtlich geschützt. Jede Verwertung außerhalb der Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlages unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Bearbeitimg in elektronischen Systemen. Gesamtherstellung: R. Oldenbourg Graphische Betriebe GmbH, München ISBN 3 - 4 8 6 - 2 3 3 2 5 - 4
Vorwort TßX ist inzwischen zu einem oft eingesetzten Textverarbeitungssystem geworden. Die Variante UTgX hat sich als besonders flexibel und praxisgerecht herausgestellt. Worin liegt der Vorteil von T^X? ® TßX ist erweiterungsfähig. Jeder Anwender kann den jeweiligen Interessen angepaßte Hilfen und Erweiterungen in Form von „Makros" in das System integrieren. Der Autor entwickelt für die unterschiedlichsten Anwendungen (Buchsatz, mehrspaltiger Zeitungssatz, Programmierung, Organisation u.s.w.) solche Makros und stellt sie auf Diskette zum Preise von 99 DM bis 150 DM zur Verfügung. (Adresse: Ellerholde 11, 21465 Reinbek, Tel. 04104/4907) ® Im Gegensatz zu vielen am Markt befindlichen Textsystemen wird der Umbruch absatzweise durchgeführt. Erst am Ende eines Absatzes wird entschieden, welcher Zeilenumbruch am günstigsten ist. Donald B. Knuth, der „Erfinder" von T^X hat hierzu ein sehr schlagstarkes mathematisches Modell entwickelt, welches die Grauwerte einer Seite „mißt". Wenn die Grauwerte einen vom Anwender beeinflußbaren Rahmen verlassen, werden Meldungen produziert. Dies bedeutet immer, daß die Seite „schlecht" aussieht (Große „Löcher"). ® Die Zeilenlängen werden von TßX überprüft. Treten übervolle („overful") Zeilen („Boxes") auf, so erfolgt eine ziffernmäßige Anzeige. Dies ist ein erheblich ins Gewicht fallender Vorteil, weil m a n mit bloßem Auge 0.8 Punkt (1 Punkt = ca. 0.3 m m ) nicht immer sieht — wohl aber der Leser des Dokuments. ® Beim Schreiben der Texte braucht der Autor auf Formatierungen überhaupt nicht zu achten. Einrückungen, Tabellen, Absatzenden u.s.w.
werden durch leicht zu erlernende Sprachelemente beschrieben. Bearbeitung von Text und Struktur können getrennt geschehen. Sie beeinflussen sich nicht. Werden Änderungen im Text notwendig, brauchen keine Änderungen in der Formatierung vorgenommen zu werden, genauso beeinflussen Strukturänderungen den Text nicht. ® In LINUX (eine neue Variante von UNIX) ist TgX integriert. Es wird kein Aufpreis verlangt. Dies ist auch ein Argument für Tj^X. ® Seit kurzem gibt es eine Variante von TgX und M g X , mit der der Anwender Dokumente in POSTSCRIPT-Satzsprache entwickeln und ausgeben kann. Damit ist auch der Zugang zu wirklichem Fotosatz möglich. Und über POSTSCRIPT braucht der Anwender gar nichts zu wissen. Ein umfangreiches Makro-Paket erledigt das.
Viele Freunde und Bekannte aber auch Schüler und Interessenten haben durch Anregungen und Forderungen dazu beigetragen, daß dieses Buch jetzt in 3. Auflage erschienen ist. Hierfür bedanke ich mich herzlich. Bitte fragen Sie weiter! Dem Verlag gilt mein Dank für die umfassende Unterstützung, insbesondere für die sachlich und fachlich hervorragende Begleitung durch Herrn Weigert. Reinbek 1995 Viel Erfolg beim Lesen und Ausprobieren!
INHALT
1
Inhalt Teil 1 1
Lehrbuch
Ubersicht über Textbearbeitung 1.1 1.2
1.3 1.4 1.5 1.6
Formen der Textbearbeitung Software-Werkzeuge 1.2.1 wysiwyg-Systeme 1.2.2 Systeme auf ASCII-Text-Basis Unterschiede der Textbearbeitungs-Systeme Unterschiedliche Produktionsziele Die Leistungsmerkmale von T^jX Beispiele für TfeX-Strukturen 1.6.1 Tabellen 1.6.2 Einfache Strukturen 1.6.3 Graphik 1.6.4 Graphik mit gekrümmten Linien 1.6.5 Schriften
2 TEX- Grundlagen 2.1 2.2 2.3
2.4
2.5 2.6
2.7
Konzept und Realisierungen Zeichen in TfcX 2.2.1 Schreibregeln Seiten-Layout 2.3.1 Definitionen 2.3.2 Gliederungsstufen Commands zur Erzeugung eines Dokuments 2.4.1 Grundsätzlicher Aufbau eines Dokuments 2.4.2 Texte in Dokumenten Ein einfacher Text Zusätzliche Commands und Optionen 2.6.1 Zusätzliche Commands 2.6.2 Optionen des document-style Ubersicht über alle verfügbaren Stilarten
1 3 3 5 6 6 7 8 11 12 12 13 13 14 15
17 17 20 20 22 22 23 24 24 25 26 27 27 27 30
II
Quelltext
3
Schrift f o r m a t e 3.1 Überblick 3.2 Standardschriftarten 3.3 Standardschriftgrößen 3.4 Zusätzliche Schriften 3.5 Symbole 3.5.1 Symbole aus anderen Sprachen 3.5.2 Spezialsymbole 3.6 Schriften 3.6.1 Standardschriften 3.6.2 Zusätzliche Schriften
31 31 32 33 34 36 37 37 39 39 41
4
Einfache S t r u k t u r e n 4.1 'environment quote' 4.2 'environment quotation' 4.3 'environment itemize' 4.4 'environment description' 4.5 'environment enumerate' 4.6 'environment varlist'* 4.7 'environment graubox'* 4.8 'environment verbatim'* 4.9 Weitere Hilfsmittel
45 46 47 48 49 50 52 56 57 58
5
Tabellen 5.1 Beschreibung von Tabellen 5.2 Standardmodell zur Tabellenbeschreibung 5.2.1 Definition der Standard-Tabelle 5.2.2 'environment tabular' Beispiel 1 Beispiel 2 Beispiel 5.3 Erweiterte Standardtabelle 5.3.1 Mehrspalten-Elemente — multicolumn — 5.3.2 Horizontale Linien über n Spalten — cline 5.3.3 Boxes als Tabellen-Elemente — p { } 5.3.4 Zusätzliche Hilfsmittel der Gestaltung 5.3.4.1 'environment center' 5.3.4.2 'environment centerb'* 5.3.4.3 Zentrierung von anderen environments . . . 5.3.4.4 Veränderung des Zeilenabstands 5.3.4.5 Stellung der Tabellenelemente 5.3.4.6 Verstärkte horizontale und vertikale Linien .
61 61 62 63 64 65 65 65 67 68 69 70 72 72 73 73 74 75 77
INHALT
III
6
Mathematische Texte 6.1 Verarbeitungsarten in T^X (processing mode) 6.2 Das mathematische environment 6.3 Subskripte und Superskripte 6.4 Brüche 6.5 'environment equation' 6.6 Summen mit Summenzeichen 6.7 Vertikal ausgerichtete Strukturen - array 6.8 Klammern als Strukturelemente
79 79 80 81 82 83 84 84 86
7
Graphik 7.1 Abbildungen - 'environment figure' 7.2 Grundsätzliches über Graphik 7.3 Größe der Abbildung und Lage der Elemente 7.4 'environment picture' 7.5 Basis-Makro put 7.5.1 Text 7.5.2 Umrahmtes Rechteck 7.5.3 Rechteck ohne Rahmen 7.5.4 Rechteck mit gestrichteltem Rahmen 7.5.5 Grau-Unterlegung von Boxes* 7.5.6 Gerade Linie 7.5.7 Vektoren — Pfeile 7.5.8 Kreise 7.5.9 Ovale 7.6 Kurven 7.6.1 Geometrische Lösung 7.6.2 Lösung in T^X 7.6.3 Anwendungsbeispiel 7.7 Zusammenfassung
89 89 90 91 92 93 93 94 96 98 99 100 103 104 105 107 107 109 110 112
8
Spezielle Graphik für EDV-Anwendungen* 8.1 Ziel und verwendete Methodik 8.2 Tool-Box 8.3 Erzeugung von Programm-Ablaufplänen 8.3.1 Festlegung von unitlength 8.3.2 Erzeugung Grundstruktur 8.3.3 'environment bpap' und 'environment epap' 8.3.4 Makros für die Elemente 8.3.4.1 Sequenz — papsequ 8.3.4.2 Sequenz — papwsequ 8.3.4.3 Eingabe — papea 8.3.4.4 Eingabe/Ausgabe — papOea 8.3.4.5 Abfrage — papabfr
113 113 113 114 115 116 116 116 116 117 117 117 118
IV
Quell text
8.4 9
8.3.4.6 Abfrage — papliunt 118 8.3.4.7 Programm-Anfang — papanf 119 8.3.4.8 Programm-Ende — papend 119 8.3.4.9 Programmteil-Anfang — paptanf 119 8.3.4.10 Programmteil-Ende — paptend 120 8.3.4.11 Konnektor Eingang—papein 120 8.3.4.12 Konnektor Ausgang — papaus 120 8.3.4.13 horizontale Verbindung — paphor 121 8.3.4.14 vertikale Verbindung — papver 121 8.3.4.15 horizontal-vertikale Ecke — paphver 121 8.3.4.16 horizontal(links)-vertikale Ecke — paphlver . 121 8.3.4.17 vertikal-horizontale Ecke - papvhor 122 8.3.4.18 horizontale Verbindung — papchor 122 Anwendungsbeispiel 122
Organisation von Buchsatz 9.1 Übersicht 9.2 Titelseiten 9.3 Inhaltsverzeichnis 9.4 Titelseite 9.5 Schlagwortregister — Index 9.6 Referenzen 9.7 Fußnoten 9.7.1 Fußnoten werden durch '*)' gekennzeichnet* 9.7.2 Fußnoten werden numeriert 9.8 Bearbeitung langer Dokumente
10 Schnittstellen von TßX zu anderen Systemen 10.1 Anforderungen 10.2 Verarbeiten von ASCII-Dateien 10.2.1 Die Commands \typein — \typeout 10.2.2 Mehrfachbriefe 10.2.3 Programmsystem ITMS* 10.3 Verarbeiten von dvi-files 10.3.1 Einmischen von Bildern 10.3.2 Erzeugen von dvi-files für Bilder 10.3.3 Montage von zusätzlichen Texten 10.4 Zusammenfassung
Teil 2
Quellentext
125 125 126 126 128 128 129 130 130 130 131 133 133 133 134 136 140 142 143 144 145 148
149
1
Ubersicht über Textbearbeitimg
151
2
T^jX—Grundlagen
169
INHALT
V
3
Schriftformate
189
4
Einfache S t r u k t u r e n
211
5
Tabellen
231
6
M a t h e m a t i s c h e Texte
257
7
Graphik
271
8
Spezielle G r a p h i k f u r E D V - A n w e n d u n g e n
305
9
Organisation v o n Buchsatz
323
10 Schnittstellen von IfeX zu a n d e r e n S y s t e m e n
333
LISTE DER ABBILDUNGEN
VII
Liste der Abbildungen 1.1 1.2 1.3
Hilfsmittel Projektziel Anforderungen an Softwarewerkzeuge
4 9 10
2.1 2.2 2.3 2.4 2.5 2.6
Programmierung — T^X zugelassene Zeichen Schreibregeln Gliederungsstufen bei Stilarten Grundsätzlicher Aufbau documentstyle skript Optionen
17 20 21 23 25 28
3.1 3.2 3.3 3.4 3.5 3.6
Zeichen-Parameter Schriftarten Schriftgrößen Symbole Spezialzeichen Griechische Buchstaben
32 32 34 37 38 38
4.1
environment
46
5.1 5.2 5.3 5.4 5.5
Tabellen 'environment tabular' Kleines Einmaleins Box eines Zeichens Standard-Tabelle mit Variation
61 64 66 75 76
6.1
Klammern
86
7.1 7.2 7.3 7.4 7.5
Beispiel einer Bildunterschrift Koordinaten-System beim 'environment picture' Bedeutung von Richtung (x,y) und Länge (1) Approximation durch BEZIER-Polynome Darzustellende Abbildung
89 91 101 109 110
VIII 8.1 8.2
Quelltext "Tool-Kasten" für PAP Grundmuster eines PAP
10.1 Brief aus ITMS
114 115 142
Teil 1
Lehrbuch
3
Kapitel 1. Ubersicht über Textbearbeitung
Kapitel 1 Ubersicht über Textbearbeitung
1.1
Formen der Textbearbeitung
Im gesamten Bereich der Kommunikation spielen Texte eine entscheidende Rolle. Uber Texte findet der gesamte Informationsaustausch zwischen Sender und Empfänger von Nachrichten statt. Texte stellen das Element in Informationssystemen dar. Für jede Art von Nachrichten findet eine Bearbeitung der Texte statt. Die Texte werden so bearbeitet, daß Sender und Empfänger von Nachrichten optimal Informationen austauschen können. Hierzu ist es notwendig, die Texte so zu strukturieren, daß diese gut lesbar sind. Die Texte müssen so aufgebaut werden, daß Mißverständnisse zwischen Sender und Empfänger weitgehend ausgeschaltet werden. Es kommt nicht so sehr darauf an, daß Texte geometrisch gestaltet sind, sondern darauf, daß sie gut lesbar sind.
gut
Es gibt viele Verfahren, wie man einen Text gut lesbar machen kann, wenn hierbei die Wahl der Sprache in die Optimierung mit einbezogen ist. Dieses Verfahren wird immer dann eingesetzt, wenn durch die Sprache Maschinen gesteuert werden sollen. Dies ist z.B. in der Datenverarbeitung der Fall. Hier soll ein Computer so gesteuert werden. In der Datenverarbeitung ist eine Sprache, die keine Mißverständnisse zuläßt, zwingende Voraussetzung. Nur so ist eine Kommunikation mit dem Computer überhaupt möglich. Man erreicht eine mißverständnisfreie Kommunikation durch eine Reihe von Forderungen an die Sprache. • Die Sprache wird für ein eingeschränktes Sachgebiet verwendet. • Es werden nur wenige Sprachelemente ausgewählt. • Die Sprache selbst wird formatisiert und strukturiert. In vielen Bereichen des täglichen Lebens, in denen Sender und Empfänger von Nachrichten kommunizieren, wird jedoch eine natürliche Sprache zur
4
1.1. Formen der Textbearbeitung
Kommunikation verwendet. Hier besteht die Aufgabe darin, die Texte so zu strukturieren, daß sie optimal lesbar sind. Die einzelnen Schritte der Erzeugung und Bearbeitung von Texten können mit Methoden der Datenverarbeitung unterstützt werden, wie das in Abb. 1.1 erläutert wird. Text bear beitung Bearbeitung
Hilfsmittel
Beschreibung
Text-Erzeugung
Editor
Text-Korrektur
Editor
Formatierung
Formatierer
Der Text wird mit Hilfe einer Tastatur erzeugt. Im Text können über die normale System-Tastatur Befehle erzeugt werden, welche Zeichen für Zeichen Einfügungen, Änderungen oder Löschungen gestatten. Zeilen können eingefügt und gelöscht werden. Gruppen von Zeilen können an andere Stellen kopiert oder verschoben werden. Eine Strukturierung ist nur formal, d.h. im allgemeinen nur absatzweise möglich.
Satztechnik
Software-System
Alle gebräuchlichen Schriftarten (Fonts), unterschiedliche Schriftgrößen sowie satztechnische Methoden der Strukturierung unterstützen die gute Lesbarkeit des Textes.
Abbildung 1.1: Hilfsmittel In neuerer Zeit sind Software-Werkzeuge auf den Markt gekommen, welche die satztechnische Bearbeitung von Texten ermöglichen. Hierbei soll unter 'satztechnischer Bearbeitung' verstanden werden, daß 1. variable Seiten-Layouts möglich sind, 2. Zeilen- und Seitenumbrüche automatisch durchgeführt werden, 3. unterschiedliche Schriftarten zur Verfügung stehen, 4. einfache Strukturen (Einrückung, Aufzählung, Tabellen) erreicht werden können,
Kapitel 1. Übersicht über Textbearbeitung
5
5. Inhaltsverzeichnis und Index automatisch erstellt werden, 6. einfache Graphik erstellt oder aus einem anderen System integriert werden kann. iDiese Software-Werkzeuge werden zusammen mit der hierfür notwendigen Hardware preislich so günstig angeboten, daß es möglich ist, alle Arbeitsplätze, die mit der Erstellung von Texten und deren satztechnischer Weiterbearbeitung befaßt sind, entsprechend auszustatten. Dies bedeutet auch, daß der Autor selbst mit solchen Werkzeugen arbeiten kann und muß. War es bisher notwendig, einen Text zu schreiben (vielleicht unter Benutzung eines üblichen Editors) und dann zu redigieren, um die entsprechende inhaltsgemäße Strukturierung zu erreichen, kann heute alles in einem Arbeitsgang geschehen. Es ist nun nicht mehr nötig, daß der Autor die Texte mit satztechnischen Markierungen versieht, sondern die satztechnischen Anweisungen werden beim Schreiben des Textes mit erzeugt. Dies hat den Vorteil, daß die satztechnischen Anweisungen zusammen mit dem Text entstehen, also zu einer Zeit, wenn der Autor mit den Strukturen der Kommunikation am besten vertraut ist. Inhalt und Struktur werden gemeinsam erdacht und bei Verwendung dieser Methode auch gemeinsam aufs Papier gebracht. Diese Art der Erzeugung von strukturierten Texten hat auch noch den Vorteil, daß routinemäßige Arbeiten wie • Seiten-Formatierung • Seiten-Numerierung • Numerierung von Kapiteln und Abschnitten • Silbentrennung • Absatz-Formatierung automatisch vom System übernommen werden. Dies erleichtert die Arbeit mit dem System erheblich.
1.2
Software-Werkzeuge
Editoren zur Bearbeitung von Texten sind in großer Anzahl am Markt vorhanden. Sehr bekannt sind • vi, der Standardeditor für UNIX-Systeme, • Professional Editor für MS-DOS-Systeme, • Wordstar 2000
1.2. Software-Werkzeuge
6
Es wird im folgenden vorausgesetzt, daß ein Editor vorhanden ist, mit dem Texte, die aus ASCII-Zeichen aufgebaut sind, erzeugt und korrigiert werden können. Für die Lösung des Problems der Textbearbeitung gibt es auf dem Markt zwei grundsätzlich verschiedene Ansätze, die im folgenden Abschnitt genauer beschrieben werden.
1.2.1
wysiwyg-Systeme
Der Name ist eine ursprünglich witzig gemeinte Abkürzung aus dem Englischen. what you see is, what you get "was Sie sehen, ist (das), was Sie bekommen" Der Text - besser: das Dokument - wird am Bildschirm entwickelt. Ein Abbild des Dokuments wird am Bildschirm erzeugt. Dieses Abbild entspricht dem endgültig erzeugten Dokument umso besser, je höher die Auflösung am Bildschirm ist. Das System ist tastaturorientiert. Die Steuerungen finden über die Tastatur statt. Der Vorteil dieser Systeme ist darin zu sehen, daß die Entwicklung des Dokuments am Bildschirm parallel verfolgt werden kann. Die durch die Tastatur erreichte Steuerung wird auch in der Textdatei als Markierung gespeichert. Diese systeminterne 'Markierung' bleibt auch beim Abspeichern der Datei erhalten. Dadurch ist sie auch beim Wiederaufruf der Datei vorhanden. Änderungen am Inhalt und Ein den 'Markierungen' der Datei sind beliebig möglich. Es werden alle satztechnischen Methoden unterstützt. Beispiele solcher Textbearbeitungssysteme sind • Ventura Publisher • Page Maker
1.2.2
S y s t e m e auf ASCII-Text-Basis
Systeme dieser Art arbeiten mit einer Steuersprache. Das Quelldokument besteht aus Steuersprache und Dokumententext. Die Steuersprache hat die Aufgabe, die Satztechnik zu steuern. Der Dokumententext enthält den eigentlichen Text des Dokuments. Befehle in der Steuersprache sind besonders gekennzeichnet. (Z.B. wird vereinbart, daß Befehle stets allein auf einer Zeile stehen müssen und als Kennzeichen einen vorangestellten Punkt (.) haben.) Diese Methode wird bei nroff und troff (Textbearbeitungssysteme von UNIX) verwendet.
Kapitel 1. Übersicht über Textbearbeitung
7
Eine andere Methode besteht darin, alle Befehle (Commands) durch einen vorangestellten Schrägstrich (\) zu kennzeichnen. Dies ist die Methode von TfcX. Um aus den Quelldokumenten natürliche Dokumente zu erzeugen, ist ein Umwandlungsprozeß notwendig. Dies ist scheinbar ein Nachteil. Da aber die Quelldokumente zur Kontrolle des Inhaltes und der Struktur völlig ausreichen, ist diese Umwandlung nur selten erforderlich. Jetzt erweist sich der Nachteil als Vorteil, weil ohne jede Art von Umwandlung eine grobe Kontrolle des Geschriebenen jederzeit und an jeder Art von Bildschirm möglich ist. Beispiele solcher Textbearbeitungssysteme auf ASCII-Basis sind • nroff, das Textbearbeitungssystem von UNIX • troff, das Fotosatzsystem von UNIX • T^X, ein allgemeines System zum Satz von Büchern
1.3
Unterschiede der Textbearbeitungs-Systeme
Hat man es mit der Auswahl von Textbearbeitungs-Systemen zu tun, dann ist auf keinen Fall allgemein zu sagen, daß eine der beiden Lösungsmethoden die bessere wäre. Viele Kriterien bestimmen die endgültige Wahl. Imfolgenden werden einige Kriterien genannt, die bei jeder Auswahl problemangepaßt untersucht werden müssen. Hardware
Schreiben
wysiwyg-Systeme benötigen zur Erfüllung jeder Teilfunktion einen hochauflösenden Bildschirm an jedem Arbeitsplatz. Bei ASCII-Systemen ist dies nicht der Fall. Bei wysiwyg-Systemen (kann) muß die Darstellung des Textes kontrolliert werden. Dadurch sind wysiwyg-Systeme besser geeignet, kurze Dokumente, bei denen es entscheidend auf die Geometrie des Satzes ankommt, zu erzeugen. Für den Buchsatz, bei dem im wesentlichen die Formatierung, die Schriftart und die Schriftgröße festliegen, ist die über den Quelltext mögliche Kontrolle in jedem Falle ausreichend. "I^jX führt auch eine genaue, digitale Kontrolle über alle Zeilenumbrüche durch. Diese werden absatzweise vom System automatisch vorgenommen. Wenn dieser automatische Umbruch in Einzelfallen nicht gelingt, wird dies protokolliert. Das Protokoll enthält dann eine Nachricht, aus der man z.B. unmittelbar erkennen kann, daß eine Zeile um 1.4 pt zu lang ist. Dies kann visuell auch bei Benutzung von hochauflösenden Bildschirmen nicht einfach festgestellt werden.
8
1.4. Unterschiedliche Produktionsziele
Bedienung
Graphik
math. Symbole
Das ASCII-System ist leicht zu bedienen, weil keine anderen Tasten bedient werden müssen. Auch bei geringen Änderungen der Steuerungen von einem Absatz zum anderen ist das ASCII- System im Vorteil, weil dies durch ganz einfache Steuerbefehle mit wenigen Zeichen bewerkstelligt werden kann, während bei den wysiwyg-Systemen spezielle Tasten oder Funktionen bedient werden müssen. Bei komplexer Graphik — insbesondere beim Freihandzeichnen — sind die wysiwyg-Systeme im Vorteil. Insbesondere, wenn die Systeme durch eine 'Maus' unterstützt werden, können hiermit schnell und sehr bequem Zeichnungen z.B. für Werbezwecke in Texte eingefügt werden. Für das Arbeiten mit einfacher Graphik (gerade Linien, Kreise, Rechtecke, Ovale, Darstellung von Funktionsverläufen), wie sie für den Einsatz in Fachbüchern notwendig ist, sind die ASCII-Systeme mit umfangreichen Makro-Bibliotheken ausgerüstet. Auch hierbei sind wysiwyg-Systeme häufig überlegen. Die ASCII-Systeme gestatten aber in diesem Bereich auch eine hinreichend bequeme Handhabung, Hier entfalten die ASCII-Systeme ihre volle Flexibilität. Alle Arten von Zeichen und Darstellungen, die in mathematischen Texten gebraucht werden, werden in vollem Umfang unterstützt, während dies bei wysiwyg-Systemen nicht der Fall ist. Hier kann schon die Darstellung eines Doppelbruchs nur mit Schwierigkeiten möglich sein.
1.4
Unterschiedliche Produktionsziele
Vor Beginn der Textbearbeitung und vor Beginn der Auswahl des zu benutzenden Software-Werkzeuges ist es notwendig, das Projektziel festzulegen. Es handelt sich um ein DV-unterstütztes Projekt. Hier muß immer vor der Auswahl der Werkzeuge fixiert werden, welches Ziel das Projekt haben soll. Im Falle der Textbearbeitung ist festzulegen, welche Produkte mit dem Werkzeug gefertigt werden sollen, und welche Sondereigenschaften hinsichtlich des Satzes das Dokument (Artikel, Buch, Reportage, Zeitungsartikel) haben soll. Es sind viele Projektziele denkbar. Einige Projektziele seien im folgenden genannt. • Erstellung von Werbeprospekten und Werbebriefen • Erstellung von Fachskripten und Fachbüchern • Erstellung von Fachskripten und Fachbüchern mit einfacher Graphik
Kapitel 1. Übersicht über Textbearbeitung
9
• Erstellung von Fachskripten und Fachbüchern mit mathematischen Formeln und Gleichungen • Erstellung von Romanen und Novellen • Erstellung von Zeitungen und Zeitschriften • Erstellung von technischen Bedienungsanleitungen mit vielen graphischen Elementen Unseren weiteren Überlegungen liegt folgendes Projektziel zugrunde. Projektziel
Es sollen Fachbücher und Fachskripten und Fachzeitungen aus den Bereichen • Datenverarbeitung • Programmierung • DV-Organisation • Mathematik • Betriebswirtschaft produziert werden. Abbildung 1.2: Projektziel
Daraus ergeben sich für ein Textbearbeitungs-System (Softwäre-Werkzeug), welches hierfür verwendet werden soll, eine Reihe von Anforderungen, die in Abbildung 1.3 als Anforderungskatalog zusammengestellt worden sind. Je genauer ein Dokument und sein Inhalt sowie die Strukturen bekannt sind, die verwendet werden sollen, desto besser lassen sich die Schreibweisen der Quelltexte vereinfachen. Durch Festlegung der zu verwendenden Strukturen wird außerdem erreicht, daß das Dokument nach Fertigstellung einheitlich wirkt. Zu viele Freiheiten in der Wahl der Strukturen (z.B. Einrückungen unterschiedlicher Länge) lassen ein Dokument sehr leicht 'zerrissen' erscheinen. Will man allgemein betriebwirtschaftliche Texte erzeugen, dann kann man nur grobe Strukturen vorbereiten, die das Erzeugen von Quelltexten erleichtern. Ist bekannt, daß es sich um ein Skript handelt, welches im Format DIN A5 erzeugt werden soll, wobei sich der Inhalt des Skriptes mit Warenwirtschaftssystemen befassen soll, dann kann man viel besser Strukturen unterstützen, die beim Schreiben dieses Manuskripts die Arbeit erleichtern.
10
1.4. Unterschiedliche Produktionsziele
1. Die Darstellung soll die Weiterverarbeitung bestehender ASCIITexte ohne Erfassungsaufwand zulassen. Die Darstellung selbst soll allein durch ASCII-Zeichen möglich sein. Damit ist die Erfassung der Quelltexte an allen tastaturorientierten Terminals möglich. 2. Die Darstellung von mathematischen Texten und Texten mit Sonderzeichen aus internationalen Sprachen (z.B. französisch, dänisch, schwedisch, norwegisch, spanisch, griechisch) muß zugelassen sein. 3. Die Verarbeitung von ASCII-Dateien muß möglich sein. Damit können dann aus einem Softwarepaket ASCII-Dateien erzeugt werden (Auswertungen aus einer Datenbank), die von TßX in Satz gebracht werden. 4. Es muß ein ausreichend großer Vorrat von unterschiedlichen Schriftarten in verschiedenen Schriftgrößen vorhanden sein. Hierbei sind sowohl die Anforderungen des Dokuments wie auch der Ausgabegeräte zu beachten. 5. Es müssen einfache Graphiken (gerade Linien, Kreise) systemintern bequem dargestellt werden können. Für in einem Dokument oft gebrauchte graphische Darstellungen wie z.B. hierarchische Darstellung oder Darstellung von Programmablaufplänen muß es möglich sein, abkürzende Darstellungen (Makros) zu verwenden. Es muß die Möglichkeit bestehen, die Ergebnisse eines Graphiksoftware-Pakets in die Texte zu integrieren. 6. Es soll möglich sein, oft verwendete Strukturen (Tabellen, Einrückungen) zu speichern, so daß nicht immer wieder gleiche Strukturen neu geschrieben werden müssen, sondern durch Parameterwahl der jeweiligen Situation angepaßt werden können. Unterschiedliche Seiten-Layouts (z.B. einseitiger und zweiseitiger Satz, DIN A4, DIN A5) sollen durch Parameterwahl festgelegt werden können. 7. Der Anwender muß solche Makros selbst erstellen können. Nur auf diese Weise wird es möglich, das Softwaresystem an die Anforderungen des jeweiligen Dokuments anzupassen. Die Seiten-Layouts müssen vom Anwender auf die jeweiligen Erfordernisse des Dokuments abgeändert werden können.
Abbildung 1.3: Anforderungen an Softwarewerkzeuge
Kapitel 1. Übersicht über Textbearbeitung
1.5
11
Die Leistungsmerkmale von TfcjX 1. T^X ist ein Textbearbeitungssystem auf ASCII-Basis 2. Anweisungen, welche die Struktur festlegen, werden im Quelltext durch besonders gekennzeichnete Commands erzeugt. 3. Mathematische und graphische Symbole sowie Symbole aus anderen Sprachen werden durch spezielle Schreibweisen, die der Umgangssprache ähnlich sind, dargestellt. Mit METAFONT, einem System zur Erzeugung von beliebigen Zeichen und Symbolen sowie ganzen Schriften, steht ein T^X-ähnliches Software-System zur Verfügung, mit dessen Hilfe beliebige Schriften in praktisch jeder Größe konstruiert werden können. (Schriften bis zu einer Größe von 1 inch gehören zu den Standard-Schriften von TfcX). 4. Einfache Graphik (gerade Linien, Kreise, Ovale) sind im Rahmen der Sprache darstellbar. 5. Die aus der Anwendung von Graphikpaketen wie z.B. t-jet der Firma DATAPAT, München, resultierenden Zeichnungen können in die Texte integriert werden. 6. Die aus einem Pixel-Editor erzeugten Scannerdatenformate (Anschluß eines Bild-Scanners) können ebenfalls integriert werden. 7. T^X gestattet die Erzeugung und Abspeicherung von Makros für häufig wiederkehrende Strukturen. 8. Die für T^X konzipierte Steuersprache enthält z.B. folgende Statementklassen • Einlesen und Ausgeben von Dateien, Übertragen • Addieren, Subtrahieren, Multiplizieren, Dividieren • Bedingte Ausführung von Operationen (if then eise) • Wiederholte bedingte Ausführung (loop)
Bei der Auswahl eines Softwarewerkzeugs zur Erstellung von Buch- und Zeitungssatz ist darauf zu achten, daß dieses Werkzeug möglichst eine Ergänzung bereits in einem Standard-Betriebssystem (z. B. MS-DOS oder UNIX) vorhandener Softwarewerkzeuge darstellt. Aus Gründen der effektiveren Nutzung von Software-Werkzeugen ist es sicherlich sinnvoll, ein Werkzeug zu wählen, bei dem bereits vorhandene Systemprogramme — wie der Editor — wieder genutzt werden können. Auf diese Weise können Kenntnisse und Fertigkeiten, die z.B. beim Erstellen von Quellprogrammen bereits erworben worden sind, genutzt werden. Andererseits sollen vorhandene Softwarepakete in der Lage sein, die Soft-
1.6. Beispiele für T^X-Strukturen
12
waretechnik automatisch zu produzieren. So soll es also möglich sein, daß ein Datenbanksystem einen Report produziert, in dem die Satztechnik automatisch integriert ist. Damit könnte die Datenbank durch Standardtechniken (Report) Listen im Buchsatz automatisch erstellen. Zusammenfassung:
1.6
T^X ist ein Textbearbeitungs-System, das wegen der Nutzung von DV-technischen Begriffen und Techniken eine Sprache darstellt, die in vielen Bereichen einsetzbar ist. Die Steuersprache ist sehr flexibel. Auf diese Weise sind alle Strukturen, die im Zeitungsund Buchsatz vorkommen, erzielbar. Eine große Anzahl von Strukturen ist aber z.B. durch LAT^X, ein Standard-Makro-Paket zugänglich. Das System hat eine offene Schnittstelle zu Graphikpaketen.
Beispiele für TfeX-Strukturen
In TJ^X sind sehr viele Strukturen vorbereitet. Diese gestatten eine bequeme Schreibweise von Texten auch dann, wenn es sich nicht um Fließtext handelt. Diese Strukturen sind durch Makros vorbereitet. Hierbei versteht man unter einer Makro einen Command, der aus mehreren primitiven Commands aufgebaut ist. Die Makros können mit Hilfe von Parametern auf den jeweiligen Anwendungsfall zugeschnitten werden.
1.6.1
Tabellen
Ein wichtiges Element zur übersichtlichen Darstellung von Sachverhalten ist die Tabelle. Als Beispiel einer mit T^X konstruierten Tabelle diene die folgende Abbildung. Bereich Software Hardware Beratung
1.Quartal 1.2 5.4 2.1
Umsatz in Mio. DM 2.Quartal 3.Quartal 1.1 0.4 6.8 9.3 2.4 1.8
4.Quartal 1.6 2.6 1.6
Hierbei sollte noch gesagt werden, daß die Spalten zentriert oder linksbündig oder rechtsbündig geschrieben werden können. Die Spalten können auch aus Text bestehen, der zeilenweise — innerhalb der Spalten — umgebrochen wird. Die Spaltenüberschriften können über eine Spalte oder über mehrere Spalten gehen. Es sind dicke und dünne Linien zur Abgrenzung der Spalten und der Zeilen möglich.
Kapitel 1. Übersicht über Textbearbeitung
1.6.2
13
Einfache Strukturen
Unter einfachen Strukturen versteht man z.B. Einrückungen. Dieser Text ist eingerückt. Hierbei ist der Betrag der Einrückung durch den Anwender beeinflußbar. Zum einen wird eine StandardEinrückung bei Festlegung der Stilart bestimmt. Es kann aber von Fall zu Fall ein neuer Betrag durch den Anwender durch Setzen eines Parameters bestimmt werden. (Vorsicht: Häufige Änderungen lassen das Dokument leicht unruhig erscheinen!) Nun kehren wir wieder zum normalen Rand zurück. Es soll gezeigt werden, daß man Aufzählungen unterschiedlich mit einer vorbereiteten Struktur darstellen kann. 1. Die einzelnen Elemente werden numeriert. 2. Die einzelnen Elemente werden besonders gekennzeichnet. 3. Die Element werden nur eingerückt. Wählt man die zweite Form, dann kann z.B. folgende Darstellung entstehen. • Die einzelnen Elemente werden numeriert. • Die einzelnen Elmente werden besonders gekennzeichnet. • Die Element werden nur eingerückt.
1.6.3
Graphik
Um die Graphikfähigkeit des T^X-Systems zu demonstrieren zeigen wir im folgenden eine hierarchische Darstellung mit beschrifteten Rechtecken, geraden Linien und Pfeilen.
14
1.6. Beispiele für TfcjX-Strukturen
Wenn bekannt ist, daß eine bestimmte Klasse von Graphik verlangt ist, dann kann man entsprechende Makros schreiben, welche dann die Darstellung in dem eingeschränkten Bereich sehr erleichtern. Anstelle die einzelnen geometrischen Grundelemente wie Gerade und Kreis durch Commands aufzurufen, stehen dann Makros für 'Abfrage', 'Sequenz', 'Trennstelle' und die anderen Elemente eines Programmablaufplans zur Verfügung. Diese sind dann noch durch die Parameterwerte (geometrische Lage der Kästchen, Text in den Kästchen) einzutragen. Dies ist für Darstellung von Programmablaufplänen bereits geschehen. Das Beispiel einer Anwendung wird im folgenden Bild dar-
1.6.4
Graphik mit gekrümmten Linien
In TgX steht auch Graphik mit bliebig gekrümmten Linien zur Verfügung. Hierbei werden intern Bezier-Funktionen zur Approximation verwendet.
Ausgabe einer Liste (Die Kurve wird stückweise durch Polynome 3. Grades approximiert.) Man erreicht dadurch eine bessere Zeichengenauigkeit als durch den optimalen Einsatz eines handelsüblichen Kurvenlineals.
Kapitel 1. Ubersicht über Textbearbeitung
15
Hierbei wurde die Zeichnung selbst durch ein unterlegtes Grau besonders hervorgehoben.
1.6.5
Schriften
Das Tf)X-System enthält einen großen Schriften-Vorrat. Die Schriften reichen von einer sehr kleinen Schrift D u
ist die k l e i n s t e
Schritt
bis zu einer sehr großen Schrift
UNIX
Die Schrift kann aber auch in ihrer Schriftart verändert werden, so gibt es die Schriftart 'bold' (fett)
Das ist fette Schrift oder die Schriftart 'slanted' (Schrägdruck)
Das ist Schrift
in
Schrägdruck
Weitere gebräuchliche Schriften sind italics small caps sans serif
Das ist Schrift in italics DAS IST S C H R I F T IN SMALL CAPS Das ist Schrift in sans serif
Dies sind die 'Standard-Schriften' von TfeX. Zusätzlich sind in TfeX noch eine Reihe von 'Spezial-Schriften' vorhanden, die in speziellen Anwendungen, z.B. zu einer besonderen Hervorhebung oder in einer besonderen Überschrift, verwendet werden können. Wie die Standard-Schriften existieren diese SpezialSchriften in mindestens 5 verschiedenen Schriftgrößen. Weiter gibt es noch 'Einzel-Schriften'. Diese wurden konstruiert, u m zu demonstrieren, welchen Einfluß die Abänderung eines einzelnen Parameters in der Schrift auf die Schriftform h a t . Jede dieser Einzel-Schriften existiert in T^X nur in einer Größe. M E T A F O N T ist ein System, mit welchem der Anwender selbst spezielle Schriftfamilien (Schriften in 5 Schriftgrößen) konstruieren kann. Dabei kann man so vorgehen, daß man lediglich für eine vorhandene Schrift gewisse Parameter verändert und auf diese Weise eine neue Schrift erzeugt, oder man
16
1.6. Beispiele für TfeX-Strukturen
kann auch eine gesamte neue Schrift (256 Zeichen) konstruieren. Mit Hilfe von METAFONT ist auch die Konstruktion von Firmen-Logos möglich. METAFONT ist also ein ganz allgemeines Basis-Werkzeug zur Erzeugung von Schrift. Als Beispiel einer solchen Einzel-Schrift seien die calligraphischen Buchstaben genannt. Hier ist das Bild: WÖKT
Eine Besonderheit von T^X ist die mühelose Behandlung von mathematischem Text. Dabei ist es gleichgültig, ob es sich um die Behandlung von Subskripten und Superskripten handelt wie in der folgenden Formel _ p2 x„ l2 +, x„22 = K
oder um die Behandlung von Brüchen und Doppelbrüchen 2
_ ~
x + y
1 _l
1
S£_ *
^ r+1
Auch die Verwendung von typischen mathematischen Zeichen ist möglich, wie man an der folgenden Formel sehen kann e-i/*>
Die Gleichungen können numeriert werden. Die Gleichungen können mit einem internen Label versehen werden. Es ist jederzeit möglich, sich im Text mit Hilfe dieser Labels auf eine Gleichung zu beziehen. TßX setzt dann die Gleichungsnummer ein. Auch sehr spezielle Darstellungen wie 13 a
fl
i + 2H
v 15
l-ai4 +ai5
sind ohne weiteres möglich. Ganz allgemein kann gesagt werden, daß alle Zeichen vorhanden sind, die zum Setzen von mathematischen Texten notwendig sind. Hierzu gehören ebenso < = und ==> wie auch x = y y = x. Selbstverständlich sind auch alle logischen Operationen A, V und ä vorhanden. Auch das Setzen von Text mit speziellen Zeichen aus anderen internationalen Sprachen bereitet keine Schwierigkeit. Hierfür sind garçon und sm0rbr0d sowie senor Beispiele, die noch beliebig erweitert werden könnten.
Kapitel 2. TfcX- Grundlagen
17
Kapitel 2 T^jX— Grundlagen
2.1
Konzept und Realisierungen
Donald E. Knuth entwickelte in den 80er Jahren an der Stanford University das Textbearbeitungs-System T^X. Der Name TfeX, der als Logo verwendet wird, steht für das griechische r e \ (Abkürzung von rexvi] [techni]= Kunst, Geschick, Handwerk). Noch eine Bemerkung zur Aussprache. Wegen seiner griechischen Herkunft wird T^X auch so gesprochen, daß das X wie \ gesprochen wird. (Sprich: T^X wie Tech - und nicht wie Tex).
Abbildung 2.1: Programmierung — T^X
Betrachtet man das Tf^X-System vom Standpunkt der Datenverarbeitung, so handelt es sich um eine Sprache. Die Elemente der Sprache sind die Commands (Befehle). Diese legen fest, wie die Texte zu strukturieren sind. Damit erhält man den in Abb. 2.1 dargestellten Zusammenhang zwischen Programmierung und Textbearbeitung. Vom Anwender wird ein Quellmodul erstellt. Dieser Modul enthält sowohl den eigentlichen Text wie (in Form einer Steuersprache) alle Anweisungen, die die Struktur des Textes bestimmen.
2.1. Konzept und Realisierungen
18
Der Quellmodul wird "übersetzt". Dies bedeutet, daß die Texte in die durch die Steuersprache festgelegte Struktur gebracht werden. Die Steuersprache besteht aus Commands. Diese legen z.B. • das Seiten-Layout (Höhe und Breite der Seite, Layout des Seitenkopfes, Stand der Seitennummer) • Wahl der Schriftart und Schriftgröße • Strukturierung des Textes fest. Die Commands werden durch Parameter näher erläutert. Commands sind durch vorangestellten \ gekennzeichnet. Sowohl Texte wie auch Commands werden sämtlich durch Zeichenfolgen aus ASCII-Zeichen (mit einer Standardtastatur darstellbare Zeichen) gebildet. Beispiel für einen Command: \noindent (Bedeutung: Der nachfolgende Text soll ohne Paragraph-Einzug geschrieben werden.) Manche Commands benötigen Parameter. Diese werden im allgemeinen in [ ] oder { } eingeschlossen den Commands hintenangestellt. Beispiel für einen Command mit Parameter: \ v s p a c e { l c m } (Bedeutung: Es soll ein vertikaler Leer-Raum von 1 cm erzeugt werden.) Das Dokument ist eine Datei, die satztechnisch aufbereitet zur Verfugung steht. Diese kann mit Hilfe eines "Treibers" auf ein Endgerät (z.B. LaserDrucker) ausgegeben werden. Hierbei werden die Informationen nicht zeichenweise sonder 'punkt'-weise ausgegeben. Diese Punkte heißen in der Fachsprache Pixel. Für die Ausgabe auf Laserdruckern wird die Information mit einer Auflösung von 300 Pixel per inch (ca. 118 Pixel pro cm) ausgegeben. Zusammenfassend kann man sagen: T^X erzeugt durch eine 'Umwandlung' aus dem Quelltext mit Hilfe der Commands ein Dokument; das aus Pixel-Informationen aufgebaut ist. Der große Vorteil von T^X ist darin zu sehen, daß eine große Anzahl von primitiven Commands in T^X existieren. Diese sind von Donald E. Knuth unter dem Namen Piain-T^jX zusammengefaßt worden. Viele Autoren haben dieses Plain-TgX erweitert. Dies ist deshalb so einfach, weil T^jX die Gestaltung von neuen Commands für jeden Benutzer sehr einfach zuläßt. Diese gestalteten Commands heißen M a k r o s . Mit der Zeit sind eine Reihe solcher Makros, zu Makropaketen zusammengefaßt, geschrieben worden. Die Makropakete sind entstanden, weil der Komfort von T^X beträchtlich erhöht werden kann, wenn man Texte aus einem eingeschränkten Anwendungsbereich bearbeiten will. Meist beschränkt man sich dann beim
Kapitel 2. "IfcX- Grundlagen
19
Schreiben auf einige wenige Strukturen, die in dem gerade zu entwickelnden Dokument häufig vorkommen, und konstruiert hierfür komfortable Makros. So gibt es z.B. Makros für die immer wiederkehrende Aufgabe tabellarische Darstellungen satztechnisch richtig zu beschreiben. Oder es wurden Makros geschaffen, um die Aufgabe Programmablaufpläne darzustellen, übersichtlich und in der Darstellung des Quelltextes bequem und nicht fehleranfällig zu lösen. Zwei Makropakete haben in letzter Zeit eine besondere Bedeutung erlangt, so daß sie zum Standard gezählt werden können. I^TJTJX
Leslie Lamport hat Makros geschaffen, welche hauptsächlich für das Schreiben von Artikeln, Berichten und Fachbüchern konstruiert wurden. Viele Strukturen wie z.B. die Einteilung der Seite, die Seitennumerierung, die Zwischenräume zwischen den Absätzen, die Einteilung des gesamten Dokuments und die Festlegung der Größe der Uberschriften von Kapitel, Abschnitt, Unterabschnitt, Unterunterabschnitt und Paragraph und vieles andere mehr sind (änderbar) festgelegt. Weil dies einem sehr allgemeinen Anspruch entspricht, haben wir uns diesem Standard angeschlossen. Einige zusätzliche Makros, von denen wir festgestellt haben, daß sie das Makropaket von Leslie Lamport noch schlagkräftiger und allgemeiner einsetzbar machen, haben wir in einem zusätzlichen Makropaket makro.tex zusammengefaßt.
-4X5TeX
Das von der amerikanischen mathematischen Gesellschaft geschaffene Makro-Paket gestattet eine besonders komfortable Beschreibung von mathematischen Texten. Hierbei handelt es sich aber u m solche mathematische Texte, die mit sehr vielen mathematischen Sonderzeichen zu schreiben sind, so daß man von Texten in mathematischer Sprache reden kann. TEX selbst und erst recht UTgX lassen die Darstellung von mathematischen Schreibweisen zu, wenn keine extremen Anforderungen gestellt werden.
Die Realisierung von T^X ist auf vielen EDV-Systemen und Betriebssystemen erfolgt. Die verwendeten Sprachen sind Pascal oder C. Für IBM-kompatible PC's unter dem Betriebssystem MS-DOS sind zwei Realisierungen erhältlich. Die eine heißt Mikro-TJjX (C-Realisierung), die andere PC-TfeX (PascalRealisierung). Auf UNIX-Systemen sind mehrere Realisierungen bekannt. Im Jahre 1987 hat die Firma Datapat in München eine Version für UNIX-Systeme verschiedener Hersteller erstellt. Diese Version von T^X liegt diesem Buch zugrunde. Bevor die Systeme vertrieben werden können, werden sie einem von Donald E. Knuth entwickelten Test unterworfen. Nur die Systeme, die diesen Test bestehen, dürfen unter dem Namen T^X vertrieben werden.
20
2.2. Zeichen in TfeX
Bei allen Realisierungen handelt es sich im Grunde um Realisierungen von Plain-Tf^X. Da es sich bei den Makro-Paketen um ASCII-Dateien handelt, sind alle Makro-Pakete unter den einzelnen Realisierungen so kompatibel wie ASCII-Dateien.
2.2
Zeichen in TfeX
Texte sind aus Zeichen aufgebaut. In T^X gibt es folgende Zeichenarten.
Buchstaben
A, B, C, ... , Z, a, b, c, .... , z
deutsche Zeichen
A, 0 , U, a, ö, ü, ß
Ziffern
0, 1 2, 3, 4, 5, 6, 7, 8, 9 i1 • * > » •
Sonderzeichen
()[]-/*
math. Zeichen
# $ %k + = \
Bindestriche
-(in Worten) -(für Zahlbereiche) , —(Parenthese)
Spezialzeichen
Abbildung 2.2: zugelassene Zeichen
2.2.1
Schreibregeln
Es gelten die im folgenden genauer aufgeführten Schreibregeln 1. Buchstaben, Ziffern und Sonderzeichen werden ohne jede Veränderung geschrieben. 2. Für deutsche Sonderzeichen (Umlaute und ß) gelten die in Abb. 2.3 zusammengefaßten Schreibregeln. Zur Realisierung dieser komplizierten Schreibweise gibt es zwei Ansätze. 2.1 Bei 8-Bit-Terminals (z.B. alle PC's): Es werden alle Umlaute und ß ungeändert geschrieben. Nach der Erstellung des Quelltextes wird dieser durch ein Programm tr < name > umgesetzt und dieser umgesetzte Quelltext der T^X-Umwandlung übergeben. 2.2 Bei 7-Bit-Terminals (z.B. alle UNIX-Systeme): Funktionstasten werden mit den deutschen Sonderzeichen beschriftet. Sie werden dann so belegt, daß durch Funktionstaste allein die für den kleinen Buchstaben geltende Sequenz aus der obigen Tabelle eingesetzt wird, während
Kapitel 2. T^X- Grundlagen Für ä ö ü Ä Ö Ü ß vor Leerzeichen ß sonst
21
ist zu s c h r e i b e n : ä ö ü Ä Ö Ü \ss\ \ss
Abbildung 2.3: Schreibregeln
Hochstellung - Funktionstaste die Sequenz für den entsprechenden großen Buchstaben liefert. Eine Funktionstaste wird für ß mit folgendem Leerzeichen und die Hochstellung dieser Funktionstaste für ß mit folgendem Zeichen, welches nicht das Leerzeichen ist, verwendet. 3. Spezialzeichen müssen durch vorangestellten \ besonders gekennzeichnet werden. (Also z.B. V/. oder \ i ) 4. Mathematische Zeichen müssen in $ eingeschlossen werden. (Also z.B. x $ Durch diesen Command wird die Stilart des Dokuments festgelegt. Es sind die Stilarten book, report, article, skript, buch mit gewissen Optionen zugelassen.
Kapitel 2. T ^ X - Grundlagen
25
\documentstyle{skript} \begin{document> Steuerung der Strukturierung und Text des Dokuments \end{document> Abbildung 2.5: Grundsätzlicher Aufbau documentstyle skript
\begin{document> Durch diesen Command wird der Anfang des Dokuments angezeigt. \end{document> Durch diesen Command wird das Ende des Dokuments angezeigt.
2.4.2
Texte in Dokumenten
Der Text wird ohne Berücksichtigung von Zeilenumbrüchen geschrieben. Es ist also völlig gleich, ob die Zeilen einigermaßen im Block geschrieben werden oder ob z.B. jedes Wort auf eine Zeile geschrieben wird. Es ist auch gleichgültig, wieviel Zwischenraum (Leerstellen) zwischen den einzelnen Wörtern gelassen wird. Leerzeilen (und nur diese) erzeugen einen Absatz. Hierbei ist es wieder gleichgültig, wieviele Leerzeilen gelassen werden. In jedem Falle wird zwischen dem Text, der vor den Leerzeilen steht und dem Text, der nach den Leerzeilen steht, ein Standard-Absatzabstand gelassen. T^X erzeugt aus den eingegebenen Texten stets einen Blocksatz. Silbentrennung wird automatisch durchgeführt. Das eingebaute Silbentrennungspaket arbeitet nach dem Muster-Verfahren. Es sind viele Muster von Silbentrennungen gespeichert. Die richtige Silbentrennung wird durch Vergleiche gefunden. Jederzeit kann eine bestimmte mögliche Silbentrennung vorgegeben werden. Hierfür ist die Zeichenkombination \ - zu verwenden. So könnte man also schreiben 'Sil\-ben\-tren\-nung', um zu erreichen, daß dieses Wort an jeder der angegebenen Stellen getrennt werden kann oder auch ungetrennt in den Blocksatz eingefügt wird. Es wird vom System versucht, alle Absätze dadurch in gut lesbaren Blocksatz zu verwandeln, daß die Zwischenräume zwischen den einzelnen Wörtern variiert werden. Wenn dies auch mit Hilfe der Silbentrennung nicht gelingt, dann entstehen bei der Übersetzung Warnings
Overfull hbox oder Underfull hbox.
2.5. Ein einfacher Text
26
Bei Overfull hbox (hbox = horizontal box) wird der Absatz durch Angabe der Zeilennummern (Anfang - Ende) sowie der Uberhang in pt (72.27 pt = 2.54 cm) angegeben. Das Bearbeitungsverfahren besteht dann einfach darin, daß in diesem Absatz Text in der Größenordnung des Uberhanges durch Umgestaltung des Textes entfernt werden muß. Bei Underfull hbox wird der Absatz durch Angabe der Zeilennummern (Anfang - Ende) gekennzeichnet. Der Grad der Unterbesetzung wird durch eine penalty angegeben. Hier handelt es sich um einen Wert zwischen 0 (keine Underfull box) und 10000 (leere Zeile). Das Bearbeitungsverfahren besteht dann einfach darin, daß der Absatz so umgestaltet werden muß, daß der Block besser gefüllt ist.
2.5
Ein einfacher Text
Mit den bereits bekannten Techniken und Commands soll nun ein beispielhafter Text geschrieben werden. Es wird zunächst — im article-style — der Text so dargestellt, wie er vom Anwender zu schreiben ist. \documentstyle{article} \beginidocument} Normalerweise e r s t e l l t ein Autor ein Manuskript. Er oder ein s p e z i e l l e r typographischer Designer l e g t meist durch Angabe von Steuerzeichen in Farbe oder am Rand des Manuskripts die Formatierung des Manuskripts f e s t . Hierbei wird das Seitenformat (Zeilenbreite und Zeilenzsdll aui der Seite) f i x i e r t . Es wird die Stileart bestimmt. Es wird bestimmt, wieviel Zwischenraum von einem Absatz zum anderen verwendet werden s o l l . Es werden eine Reihe von Instruktionen festgehalten, an die der Setzer sich zu halten hat. Der Setzer entscheidet im Rahmen dieser Richtlinien, wo die einzelnen Textelemente ihren Platz auf der Seite finden. Der Setzer produziert b e i normalem Setzverfahren aus dem Satz eine Metall-Matrize, woraus die einzelne Seite erzeugt wird. Heute gehen wir anders vor. An S t e l l e der Metall-Matrize verwenden wir eine Datei. \LaTeX\ i s t der typographische Designer und \TeX\ i s t der Setzer. Die \LaTeX-Commands werden dabei in \TeX-Typensatz-Commands umgewandelt, dieses sind primitive ( d . h . unzerlegbare) Commands zur Erzeugung von Typensatz. \end{document>
27
Kapitel 2. TfcX-Grundlagen Dies produziert den folgenden Text.
Normalerweise erstellt ein Autor ein Manuskript. Er oder ein spezieller typographischer Designer legt — meist durch Angabe von Steuerzeichen in Farbe oder am Rand des Manuskripts — die Formatierung des Manuskripts fest. Hierbei wird das Seitenformat (Zeilenbreite und Zeilenzahl auf der Seite) festgelegt. Es wird die Stilart bestimmt. Es wird bestimmt, wieviel Zwischenraum von einem Absatz zum anderen verwendet werden soll. Es werden eine Reihe von Instruktionen festgehalten, an die sich der Setzer zu halten hat. Der Setzer entscheidet im Rahmen dieser Richtlinien, wo die einzelnen Textelemente ihren Platz auf der Seite finden. Der Setzer produziert aus dem Satz eine Metall-Matrize, woraus die einzelne Seite erzeugt wird. Heute gehen wir anders vor. An Stelle der Metall-Matrize verwenden wir eine Datei. M g X ist der typographische Designer und TfrX ist der Setzer. Die I^TgX-Commands werden dabei in T^X-Typensatz-Commands umgewandelt, dieses sind primitive (unzerlegbare) Commands zur Erzeugung von Typensatz.
2.6 2.6.1
Zusätzliche Commands und Optionen Zusätzliche Commands
Im Beispiel-Text wird das Logo TßX verwendet. Vergleicht man Eingabetext und Ausgabe, so sieht man, daß man zur Erzielung des Logos \TeX schreiben muß. Eine Kleinigkeit ist hierbei noch zu beachten. Das Logo beinhaltet nicht ein hintenangestelltes Leerzeichen. Wenn dies gewünscht wird, ist an das Logo noch \ anzufügen. Und es soll auch noch erwähnt werden, daß das ganze Skript mit dem in der Präambel (vor \begin{document}) abgesetzten Command \parindent=Ocm arbeitet. Gibt man diesen Command nicht an, dann wird — wie in der amerikanischen Literatur üblich — bei jedem Absatz ein 'Absatz-Einzug' durchgeführt. (Die erste Zeile des Absatzes beginnt ca. 5 m m eingerückt.) Diese zusätzliche Methode der Absatzhervorhebung wird auch in Deutschland mehr und mehr üblich. (Beachten Sie bitte hierzu z.B. die Springer-Presse.)
2.6.2
Optionen des document-style
Der Command \ d o c u m e n t s t y l e { a r t ) - wurde im vorigen Abschnitt behandelt. Seine endgültige Form lautet: \ d o c u m e n t s t y l e [optioni,
option2,...,optionn]{art}
28
2.6. Zusätzliche Commands und Optionen
Folgende Stilarten sind zulässig. article report book skript buch einseit Die Normalschrift ist 10 pt Roman. Diese Schrift wird auch in diesem Skript verwendet. Werden keine Optionen angegeben, dann wird als Schrift stets 10 pt Roman verwendet. llpt 12pt twoside twocolumn leqno bezier
l l p t Roman Schrift 12pt Roman Schrift 2-seitiger Satz (Vor- und Rückseite) 2-spaltiger Satz Gleichungs-Numerierung links Gekrümmte Linien Abbildung 2.6: Optionen
Die anderen Optionen, die in eckige Klammern, durch Kommata getrennt geschrieben werden, haben die angegebene Wirkung. Erklärungen für die einzelnen Optionen: llpt
Die Standardschriftgröße ist 11 pt Roman. Es wird ein dieser Schriftgröße entsprechendes Seitenlayout gewählt. Das betrifft z.B. die Höhe von Kopf und Fuß der Seite.
12pt
Die Standardschriftgröße ist 12 pt Roman. Es wird ein dieser Schriftgröße entsprechendes Seitenlayout gewählt. Das betrifft z.B. die Höhe von Kopf und Fuß der Seite.
twoside
Der Satz ist zweiseitig. Dies bedeutet, daß der linke Rand der ungeraden Seite mit dem rechten Rand der geraden Seite übereinstimmt und der rechte Rand der ungeraden mit dem linken der geraden Seite. Auf diese Weise sind die Seiten, wenn man sie auf Gegenseiten des gleichen Blattes reproduziert, deckungsgleich.
twocolumn
Der Satz wird in zwei Spalten durchgeführt. Bei letzten Seiten (z.B. im Kapitel) wird die linke Spalte bis zum Seitenende gesetzt, die rechte Seite nimmt den Rest des Textes auf.
leqno
Normalerweise stehen die (vom System automatisch vergebenen Gleichungsnummern) rechtsbündig auf der Zeile, auf der die zu numerierende Gleichung steht. Durch diese Option wird die Gleichungsnummer linksbündig geschrieben.
Kapitel 2. TfeX- Grundlagen bezier
29
Die in TßX vorhandene Graphik beschränkt sich, wie schon gesagt, auf die Darstellung von Geraden und Kreisen. Um nun auch Kurven beliebiger Art darstellen zu können, ist die Option 'bezier' vorhanden. Hierdurch ist es möglich, eine Kurve durch Stücke von Bezier-Polynomen zu approximieren. Hierzu wird eine Kurve in mehrere Stücke eingeteilt. Für jedes Stück sind vorgebbar: 1. der Anfangspunkt durch seine Koordinaten, 2. die Richtung der Tangenten im Anfangspunkt, 3. der Endpunkt durch seine Koordinaten, 4. die Richtung der Tangenten im Endpunkt. Wählt man den Endpunkt des n-ten Teilstücks als Anfangspunkt des Teilstücks Nummer n + 1 und ferner die Richtung im Endpunkt des n-ten Teilstücks gleich der Richtung im Anfangspunkt der (n-l-l)-ten Teilstücks, dann kann auf diese Weise ein Kurvenzug konstruiert werden, der an jeder Stelle der Kurve eine sich stetig ändernde Richtung hat. (Die Kurve hat also keinen 'Knick'.) Diese mathematische Methode entspricht also dem Verfahren, das angewendet wird, wenn man mit einem Kurvenlineal eine Kurve zeichnet. Im Rahmen des Kapitels über Graphik werden wir auf die Konstruktion noch genauer eingehen.
Beispiel: Um im article-style in l l p t zu schreiben und dabei gekrümmte Linien verwenden zu können und wenn zusätzlich zweiseitig, zweispaltig geschrieben werden soll, dann ist \documentstyle[llpt,twocolumn,tsoside,bezier]{article} zu schreiben. Aufgabe 2
Bitte schreiben Sie eine Skizze für ein Dokument, welches ein Bericht werden soll. Es soll eine l l p t Roman Schrift verwendet werden. Es ist vorzusehen, daß die Ausgabe auf Vor- und Rückseite stattfindet.
Aufgabe 3
Was würde sich ändern, wenn der Anwender das Manuskript Abbildung 2.5 auf Seite 26 so geschrieben hätte, daß es maximal 2 inch breit ist?
30
2.7. Übersicht über alle verfügbaren Stilarten
2.7
Übersicht über alle verfugbaren Stilarten
Es hat sich herausgestellt, daß es zweckmäßig ist, wenn standardmäßig eine Reihe von Stilarten zur Verfügung stehen. Eine Ubersicht über alle Stilarten wird in folgender Tabelle zusammengefaßt. Name book book book report report report article article article skript skript skript buch einseit
Schrift lOpt llpt 12pt lOpt llpt 12pt lOpt llpt 12pt lOpt llpt 12pt lOpt lOpt
Texthöhe 504pt 530.4pt 536.5pt 528pt 530.4pt 536.5pt 528pt 530.4pt 536.5pt 432pt 530.4pt 536.5pt 528pt 529pt
Textbreite 4.5in 5in 5in 345pt 360pt 390pt 470pt 360pt 390pt 4.5in 5in 5in 470pt 470pt
ab Stufe cheater chapter chapter section section section section section section chapter chapter chapter chapter section
einseitig nein nein nein ja ja ja ja ja ja nein nein nein ja ja
Kopfart Schrägdruck Schrägdruck Schrägdruck Schrägdruck Schrägdruck Schrägdruck Schrägdruck Schrägdruck Schrägdruck unterstrichen unterstrichen unterstrichen unterstrichen unterstrichen
Für die Einsatzgebiete der einzelnen styles soll folgende Übersicht hilfreich sein. book
Amerikanisches Buchformat. Das Verhältnis von langer zu kurzer Rechteckseite ist größer als bei DINA5.
report
Amerikanisches großes Format zum Schreiben von Berichten geeignet.
article
Amerikanisches Format für einzelne Aufsätze.
skript
Dieses Format eignet sich zum Entwickeln von Skripten im Format DIN A5.
buch
Dieses Format eignet sich zum Entwickeln von DIN A4 großen Büchern z.B. für Bedienungsanleitungen, Dieses Format eignet sich zum Entwickeln von Einzelartikeln im Format DIN A4.
einseit
Die Zahl der Stilarten kann beliebig erweitert werden. Grundsätzlich ist es nicht schwierig, eine neue Stilart zu erzeugen. Es kann aber nicht Aufgabe dieses Lehrbuchs sein, hier weitere Stilarten vorzustellen, weil man im allgemeinen mit den angebotenen Stilarten auskommt. Aufgabe 4
Bitte schreiben Sie den documentstyle-Command für folgende Anforderungen. 1. Bedienungsanleitung 2. 12pt Schriftgröße 3. Verwendung von Bezier-Stil
Kapitel 3. Schriftformate
31
Kapitel 3 Schriftformate
3.1
Überblick
In T^X können unterschiedliche Schriftarten in unterschiedlichen Schriftgrößen verwendet werden. Unter einer Schriftart versteht man hierbei die geometrische Gestalt einer Schrift (roman, bold (fett), slanted (Schrägdruck) usw.). Die Schriftgröße ist ein Maß für die Größe der einzelnen Zeichen. Sie wird in pt gemessen. Eine Schriftart in einer bestimmten Größe (z.B. lOpt) wird eine Schrift genannt. T^X enthält zur Zeit 75 Schriften. T^X bietet grundsätzlich beliebige Schriften an. Das Prinzip der Definition von Zeichen für eine bestimmte Schrift schließt sich dem allgemeinen TgXPrinzip an. Es gibt eine Reihe von primitiven Commands, mit denen man die geometrische Gestalt der einzelnen Zeichen (im allgemeinen 256 pro Schrift) festlegt. Hierbei werden gewisse Grundparameter verwendet. Dies sichert, daß alle Zeichen einer Schrift zueinander passen und daß unterschiedliche Schriftgrößen durch einfache Vergrößerung aus dem Grundtyp erstellt werden. Einige Parameter von solchen Schriften sind mit ihrer Bedeutung in Abbildung 3.1 zusammengestellt. Dies sind nur einige der Parameter, die bei der Definition von Zeichen für bestimmte Schriften nötig sind. Hierfür ist das System METAFONT entwikkelt worden, womit die Entwicklung von Schriften und auch speziellen Logo's möglich gemacht wird. Wir unterscheiden hierbei unterschiedliche Klassen von Schriften. 1. Standardschriften: In M g X werden eine Reihe von Schriftarten ausgewählt, die in verschiedenen Schriftgrößen benutzt werden können. Jede der 7 verschiedenen Schriftarten hat einen von Leslie Lamport
32
3.2. Standardschriftarten body-height asc-height cap-height fig-height x-height desc-depth comma-depth math-axis bar-height
Zeichenhöhe Höhe von Klein-Buchstaben mit Oberlängen (b,d,f) Höhe der Groß-Buchstaben Höhe der Ziffern Höhe von Kleinbuchstaben ohne Oberlängen (a,c,e,m) Tiefe von Kleinbuchstaben mit Unterlängen (gj,p) Tiefe des Kommas Mitte der Paranthese Höhe des Bindestrichs Abbildung 3.1: Zeichen-Parameter
festgelegten symbolischen Namen. Jede Schriftart kann in 10 verschiedenen Größen, die ebenfalls standardisierte Namen haben, gewählt werden. Damit stehen also 7 x 10 = 70 verschiedene Standardschriften zur Verfügung. Diese werden in allgemeinen ausreichen, um den Satz für ein Dokument durchzuführen. 2. Zusätzliche Schriften sind Schriften, die den Umfang der Standardschriften erweitern. Sie sind in TgX vorhanden. Jede Schrift (Schriftart + Schriftgröße) erhält vom Anwender einen frei wählbaren Namen. Dadurch wird der Umfang der Schriften fast verdoppelt.
3.2
Standardschriftarten
Die Basis-Schrift ist Roman. Dieses Skript ist in Roman gesetzt. Sollen bestimmte Text-Teile in einer anderen Schrift gesetzt werden, so sind die TextTeile in geschweifte Klammern O zu schreiben. Mögliche Schriftarten sind in der folgenden Tabelle übersichtlich zusammengestellt. (Diese Tabelle wird laufend erweitert!) Schriftart Roman Bold Slanted Sans serif Typewriter Italics Small Caps
Text Dieser Text ist roman Dieser Text ist bold
Command \rm \bi
Dieser Text ist slanted Dieser Text ist sans serif
\sl
Dieser Text i s t Typewriter Dieser Text ist italics DIESER TEXT IST SMALL CAPS
Abbildung 3.2: Schriftarten
\sf \tt \it \sc
Kapitel 3. Schriftformate
33
Wenn keine Festlegung der Schrift vorgenommen wird, ist die Schriftart roman gewählt. Die Schriftgröße ist im documentstyle gewählt. Wenn nichts gesagt wird, ist die Schriftgröße 10 pt. Auf die Schriftart bold ('fett') kann durch die Angabe von \ b f übergegangen werden. Diese Schriftart gilt, bis wieder eine neue Anweisung geschrieben wird, die die Schriftart festlegt. D i e s e r S a t z ist in b o l d g e s e t z t . D i e S c h r i f t a r t b o l d w i r d s o l a n g e b e i b e h a l t e n , bis e i n e a n d e r e S c h r i f t a r t g e w ä h l t w i r d . Nun ist die Schriftart Halics gewählt. Diese wird wiederum solange verwendet, bis im Text wieder eine andere Schrift ausgewählt wurde, z.B. wieder roman durch \m. Will m a n erreichen, daß ein bestimmter Textteil in einer anderen Schriftart gesetzt wird, dann ist dieser Textteil, wie oben bereits ausgeführt, in geschweifte Klammern zu setzen. Schreibt man also D i e Bundesrepublik Deutschland i s t e i n e { \ b f p a r l a m e n t a r i s c h e Demokratie}. Der {Ybi Bundeskanzler} bestimmt d i e R i c h t l i n i e n der P o l i t i k . so erzielt man den folgenden Text: Die Bundesrepublik Deutschland ist eine p a r l a m e n t a r i s c h e D e m o k r a t i e . Der B u n d e s k a n z l e r bestimmt die Richtlinien der Politik. Aufgabe 5
3.3
Bitte schreiben Sie den folgenden Text Es ist nicht sinnvoll, immer mal die S c h r i f t z u w e c h seln, um zu zeigen, wieviele Schriften im Schriftvorrat sind. Vielmehr soll das Geschriebene g u t l e s b a r sein.
Standardschriftgrößen
Die Schriftgröße wird in pt (=point) gemessen. Hierbei ist 1 pt = 0.35146 mm, 72.27pt = 1 inch. Die Schriftgröße in diesem Skript beträgt 10 pt. Man spricht auch von 10-pt-Schrift. Die Schriftgröße kann mit folgenden Commands verändert werden. Die Auswirkungen der Commands auf die Schriftgröße können aus der Abb. 3.3 entnommen werden. Aufgabe 6 Bitte schreiben Sie als Entwurf für einen Briefkopf
Klaus Haller KG. Export und Import von Tee und Kaffee Schauenburger Allee 9, 2 Hannover 1
34
3.4. Zusätzliche Schriften Schriftgröße
Text
Command
Tiny
Information
\tiny
Scriptsize
Information
\scriptsize
Footnotesize
Information
\lootnotesize
Small
Information
\small
Normalsize
Information
\nonaalsize
large
Information
Marge
Large
Information
\Large
LARGE
Information
\LARGE
huge
Information
\liuge
Huge
Information
\Huge
Abbildung 3.3: Schriftgrößen
3.4
Zusätzliche Schriften
Soll in einem Dokument eine 'zusätzliche' Schrift verwendet werden, so ist in der Präambel — oder jedenfalls vor erstmaliger Verwendung der Schrift im Dokument zu schreiben: Yfont\NAME=SCHRIFTART s c a l e d \ m a g s t e p l Hierbei bedeuten: NAME SCHRIFTART N
ein vom Anwender zu vergebender Name der Name der Schriftart in TßX Vergrößerungsstufe
Damit wird die SCHRIFTART (standardisierte Bezeichnung in T^X) einem Anwendernamen (NAME) zugeordnet. Durch den 'scaling-factor' wird eine Schriftvergrößerung festgelegt. Die Vergrößerungen der Schriften gehen hierbei traditionell in Stufen von 1.2 vor sich. Dies bedeutet: \magstepN = Vergrößerung 1.2^ Es sind folgende Vergrößerungsstufen vorgesehen.
Kapitel 3. Schriftformate
N 0 half 1 2 3 4 5
35 Vergrößerungsstufen magstepN Faktor magstepO 1.00000 magstephalf 1.09545 magstepl 1.20000 magstep2 1.44000 magstep3 1.72800 magstep4 2.07360 2.44832 magstep5
Wenn N = 0, dann kann die Klausel 'scaled \magstep0' wegfallen. Die Wirkung der angegebenen Commands zeigen wir an dem Beispiel der Schriftart cmb. Es handelt sich um eine Computer Modern Bold Roman. Sie unterscheidet sich von der Standardschrift \bf dadurch, daß die Breite der Schrift (width) nicht erweitert ist. Die Schrift 'läuft nicht so breit' wie die Schrift \bf. Von dieser Schriftart gibt es die Schriftgröße lOpt. Damit heißt die Schrift also cmblO. Schreibt man nun: \font\bo=cmblO \iont\boli=cmblO \font\boe=cmblO \iont\boz=cmblO \font\bod=cmblO \font\bov=cmblO \font\bof=cmblO
scaled scaled scaled scaled scaled scaled
\magstephali \magstepl \magstep2 \magstep3 \magstep4 \magstep5
{\bo Das ist Vergr\ö\ss erring 1} {\boh Das ist Vergr\ö\ss erung 1.09545} {\boe Das ist Vergr\ö\ss erung 1.20000} {\boz Das ist Vergr\ö\ss erung 1.44000} {\bod Das ist Vergr\ö\ss erung 1.72800} {\bov Das ist Vergr\ö\ss erung 2.07360} {\bof Das ist Vergr\ö\ss erung 2.44832}
So erhält man: Das ist Vergrößerung 1
36
3.5. Symbole
Das ist Vergrößerung 1.09545
Das ist Vergrößerung 1.20000
Das ist Vergrößerung 1.44000
Das ist Vergrößerung 1.72800
Das ist Vergrößerung 2.07360
Das ist Vergrößerung 2.44832 H i n w e i s 1:
Durch die Vergrößerung z.B. einer 10-pt-Schrift entsteht nur näherungsweise eine zur 12-pt-Schrift äquivalente Schrift. Während die 12-pt-Schrift durch Wahl der geeigneten Werte für die einzelnen Parameter konstruiert wurde, handelt es sich bei der Vergrößerung mit dem Faktor 1.2 um eine reine Skalierung.
H i n w e i s 2:
Um die Übersichtlichkeit der Anwendernamen zu erhalten, wird vorgeschlagen, die einzelnen Vergrößerungsstufen einer Schrift so zu benennen, daß die Schriftart und die Vergrößerungsstufe deutlich werden. Da Ziffern im Anwendernamen nicht zugelassen sind, empfiehlt sich das oben verwendete Verfahren: der Name aller Schriften wird durch die gleiche Zeichenkette eingeleitet (im Beispiel: bo). Die Vergrößerungsstufen werden durch die folgenden Einzelzeichen dargestellt. Zeichen h e z d V
f
Bedeutung (scaled \magstep0) scaled \magstephalf scaled \magstepl scaled \magstep2 scaled \magstep3 scaled \magstep4 scaled \magstep5
Die Zeichen entsprechen hierbei den ersten Buchstaben der Ziffern 1 - 5 .
3.5
Symbole
T^X gestattet die Darstellung unterschiedlicher Symbole. Eine Auswahl ist in der Tabelle 3.4 zusammengestellt.
37
Kapitel 3. Schriftformate
ö
\'{o}
ö
\"{o>
ö
\v{o>
9
ö
\'{o>
ö
\={o>
ö
\H{o>
9
œ ô
\oe \-{o>
 o6
\AA\ \.{o>
ae oo
\ae \t{oo>
0 ©
Q
\b{o>
ç
\c{c}
£
\ö
§ § ß ß
\S
ö
\c{o> \d{o>
\o \copyright \pounds
\ss Abbildung 3.4: Symbole
3.5.1
Symbole aus anderen Sprachen
In der Schrift kommen auch besondere Symbole vor. T^X ist hier sehr flexibel. F ü r alle vorkommenden Symbole sind Schreibmöglichkeiten geschaffen worden. Das Prinzip ist sehr einfach. Symbole aus anderen Sprachen und Spezialsymbole werden durch einen vorangestellten \ und eine Abkürzung dargestellt. Im folgenden sind hierfür einige Beispiele dargestellt. Aus der letzten Zeile ist hierbei zu entnehmen, wie die deutschen Umlaute und ß geschrieben werden können. Der Anwender unserer T^X-Realisierung braucht sich hierum nicht zu kümmern. Bei 8-bit-Terminals wird die Umschlüsselung durch ein vorgeschaltetes Umsetzungsprogramm vorgenommen. Bei 7-bit-Terminals werden Funktionstasten mit den entsprechenden Sequenzen belegt, so daß durch e i n e n Tastendruck (eventuell mit Hochstellung) die den deutschen Umlauten und ß entsprechenden Sequenzen erzeugt werden.
3.5.2
Spezialsymbole
Auch über die Sprachsymbole hinaus kann T^X noch andere Symbole darstellen. Die Mathematik hat eine große Anzahl von Symbolen vorrätig, die alle auch in T^X verwendet werden können. Mathematische Symbole werden in dem Kapitel "Mathematischer Satz" behandelt. Soweit es sich aber u m Symbole handelt, die auch in der Datenverarbeitung oder Organisation sowie im allgemeinen Sprachgebrauch verwendet werden, sollen sie hier angegeben werden. Zur Schreibweise bei diesen Symbolen ist zu beachten, daß sie nur dann gültig sind, wenn sich das System im mathematischen Satz befindet. Aus diesem G r u n d e müssen die Symbole in $ eingeschlossen werden. Es ist also zu schreiben $\abk$, und hierbei ist für das Symbol \abk die entsprechende Abkürzung zu verwenden. Es wird davon ausgegangen, daß vor allem Herzen von Mathematikern höher schlagen, wenn sie die vielen mathematischen Symbole sehen, die in T^X dargestellt werden können. Manchmal wäre es ganz nützlich, wenn die Bedeutung der normierten Zeichen einer größeren Gruppe von Schreibern und Lesern geläufig wäre, weil dann manche Kommunikation besser geschehen
38
3.5. Symbole • *
A Î
* d
»
V —1 u D D 3
$\bullet$ $\star$ $\cdot$ $\bigtriangleup$ $\uparrow$ $\Longleftarrow$ $\downarrow$ $\Longleftrightarrov$ $\sharp$ $\geq$ $\neq$ $\div$ $\partial$ $\gg$ $\vee$ $\neg$ $\cup$ $\supset$ $\supseteq$ $\ni$
*
o o < -
t>
< =
X oo
Informationseinheiten sind Bit, Byte, Wort und Halbwort, Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. Adressierbare Informationseinheiten sind Byte, Wort, Feld und Halbwort, Doppelwort. \end{quotation> Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich und erhalten hieraus nach der
Ubersetzung:
Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben.
48
4.3. 'environment itemize' Informationseinheiten sind Bit, Byte, Wort und Halbwort, Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. Adressierbare Informationseinheiten sind Byte, Wort, Feld und Halb wort, Doppelwort.
Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich
4.3
'environment itemize'
Diese Struktur wird verwandt, um Strukturen im Text einzurücken und jeweils den Absatzanfang zu markieren. Der name-env ist itemize. Der Text darf aus mehreren Absätzen bestehen. Die einzelnen Absätze werden folgendermaßen geschrieben. \item[markienmg] text Für markierung kann jedes beliebige Zeichen oder eine Zeichenfolge verwendet werden. Hiermit beginnt der jeweilige Absatz. Wird der Parameter markierung weggelassen, dann wird als Markierung • ( $ \ b u l l e t $ ) verwendet. Im folgenden wird ein Beispiel für die Anwendung gegeben. Sie
schreiben:
Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \begin{itemize> \item [$\star$] Informationseinheiten sind Bit, Byte, Wort und Halbwort und Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. \newpage '/.erzwungener Seitenumbruch 29.03.90 \item [$\star$] Adressierbare Informationseinheiten sind Byte, Wort,Feld und Halbwort, Doppelwort. \end{itemize> Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich und erhalten
hieraus
nach der
Ubersetzung:
Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. • Informationseinheiten sind Bit, Byte, Wort und Halbwort und Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet.
Kapitel 4. Einfache Strukturen
49
* Adressierbare Informationseinheiten sind Byte, Wort, Feld und Halbwort, Doppel wort. Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich
4.4
'environment description'
Diese Struktur wird verwandt, u m Strukturen im Text einzurücken und jeweils am Absatzanfang in Fettdruck den Absatztitel anzugeben. Der name-env ist description. Der Text darf aus mehreren Absätzen bestehen. Die einzelnen Absätze werden folgendermaßen geschrieben. \item[absatztitel] text Als absatztitel kann jedes beliebige Zeichen oder eine Zeichenfolge verwendet werden. Hiermit beginnt der jeweilige Absatz. Der Parameter ist erforderlich. Im folgenden wird ein Beispiel für die Anwendung gegeben. Sie schreiben: Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \nespage '/,erzwungener Seitenumbruch 29.03.90 \begin{description> \item [Bit] Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf. \item [Byte] Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. Das Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken. \item [Wort] Das Vort ist in Vortmaschinen die kleinste adressierbare Informationseinheit. Das Wort hat 16 oder 32 bit. \item [Feld] Das Feld ist eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes ist meist auf 256 begrenzt. \end{description} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich und erhalten hieraus nach ¿er
Übersetzung:
Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben.
50
4.5. 'environment enumerate'
Bit Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf. B y t e Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. DM Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken. Wort Das Wort ist in Wortmaschinen die kleinste adressierbare Informationseinheit. Das Wort hat 16 oder 32 bit. Feld Das Feld ist eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes ist meist auf 256 begrenzt. Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich Die description ist eine sehr spezielle Form der Listen mit Absatztitel, bei der auf gute Ausnutzung des Platzes geachtet wird. Zeilen sind jeweils um einen bestimmten Betrag eingerückt. Die Einrückung der ersten Zeile richtet sich nach der Länge des Absatztitels. Die erste Zeile beginnt ca. 1 era (Breite eines 'm') nach dem Ende des Absatztitels.
4.5
'environment enumerate'
Diese Struktur wird verwandt, um Strukturen im Text einzurücken und jeweils die einzelnen Absätze fortlaufend zu numerieren. Der name-env ist enumerate. Parameter werden nicht verwendet. Der Text darf aus mehreren Absätzen bestehen. Die einzelnen Absätze werden folgendermaßen geschrieben. \item text
Im folgenden wird ein Beispiel für die Anwendung gegeben. Sie
schreiben:
Projekte w e r d e n in Phasen eingeteilt. In dem normalen Phasenmodell unterscheidet m a n folgende Phasen. \begin{enumerate} \item Vorstudie \item Istaufnahme u n d Informationsbedarfsbestimmung \item Grobkonzept \item Detailkonzept \item Systemimplementierung \item System-Test \end{enumerate} lach Ende des Grobkonzepts wird
Kapitel 4. Einfache Strukturen und erhalten
hieraus
nach der
51 Ubersetzung:
Projekte werden in Phasen eingeteilt. In dem normalen Phasenmodell unterscheidet man folgende Phasen. 1. Vorstudie 2. Istaufnahme und Informationsbedarfsbestimmung 3. Grobkonzept 4. Detailkonzept 5. Systemimplementierung 6. System-Test Nach Ende des Grobkonzepts wird Jedes item kann unterteilt werden. Hierzu verwendet man ein weiteres enumerate environment. In der nächsten Stufe werden dann die items z.B. durch 2.1, 2.2, usw. numeriert, wenn der Hauptabsatz die Numerierung 2 besaß. Schreibt man zum Beispiel: \begin{enumerate> \item Hauptteil \begin{enumerate} \item Unterteil \item Unterteil \end{enumerate} \item Hauptteil \begin{enumerate} \item Unterteil \begin{enumerat e> \item Untermiterteil \item Unterunterteil \item Unterunterteil \end{enumerate} \item Unterteil \item Unterteil \end{enumerate} \item Hauptteil \end{enumerate} So erhält man 1. Hauptteil
52
4.6. 'environment varlist'* 1.1 Unterteil 1.2 Unterteil 2. Hauptteil 2.1 Unterteil 2.1.1 Unterunterteil 2.1.2 Unterunterteil 2.1.3 Unterunterteil 2.2 Unterteil 2.3 Unterteil 3. Hauptteil
Die gestufte Schreibweise ist selbstverständlich nicht notwendig. Sie wurde nur eingesetzt, um die Übersichtlichkeit zu erhöhen.
4.6
'environment varlist'* Diese Struktur ist, wie alle Makros, die mit einem * gekennzeichnet sind, in einem Makropaket 'infmakro.tex' enthalten, das von der Informatika GmbH Hamburg als Zusatz angeboten wird. Das Makropaket ist m Text-Code ( A S C n ) und damit in jedem System verwendbar. Hierfür muß in der Präambel \iapnt{infma)cro} geschrieben werden.
Diese Struktur wird*) verwandt, wenn die jeweiligen Absatztitel in der ersten Spalte und die zugehörigen Absätze in der zweiten Spalte stehen sollen. Diese Struktur ist immer dann sehr übersichtlich, wenn einerseits die Absatztitel in ihrer Gesamtheit eine Information darstellen, wenn aber gleichzeitig, gewissermaßen als Definition, die Erläuterungen für die einzelnen Absatztitel eine zu anderem Zweck benötigte Information darstellen. Der name-env ist varlist. Der Text darf aus mehreren Absätzen bestehen. Es handelt sich um eine variable Liste. Die Spaltenbreite der ersten Spalte (Absatztitel) kann vom Anwender festgelegt werden. Die zweite Spalte (die Texte) erhält dann den restlichen Platz auf der Seite. Vor dem Aufruf des environments sind noch eine Reihe von Vorkehrungen zu treffen. *)Makro a u s infmakro.tex
Kapitel 4. Einfache Strukturen
53
1. In der Präambel ist eine Längenvariable zu definieren. Dies geschieht durch \neHlength{\varpar>. 2. Vor dem Command \ b e g i n { v a r l i s t } ist diese Variable auf die vorgesehene Spaltenbreite zu setzen. Dies geschieht durch \setlength{\varpar}{laenge>. Hierbei kann die Länge in • pt(Punkt) • in (inch) • cm (Zentimeter) angegeben werden. Insgesamt ergibt sich also für das environment varlist die folgende schematische Schreibweise. vor \begin{docvunent> \newlength{\varpar} bei jeder variablen Liste \setlength{\varparMxxpt} oder \setlength{\varparHxxin> oder \setlength{\varparHxxcm} \begin{varlist> \item[titell] textl \item[titel2]
text2
\end{varlist> An einem Beispiel soll der Sachverhalt noch einmal erläutert werden. Sie
schreiben:
54
4.6. 'environment varlist'*
Im f o l g e n d e n wird eine Beschreibung d e r I n f o r m a t i o n s e i n h e i t e n und i h r e Bearbeitung i n der Maschinensprache gegeben. \setlength{\varpar}{2cm> \begin{varlist> \ i t e m [ B i t ] Das B i t i s t d i e k l e i n s t e I n f o r m a t i o n s e i n h e i t . Alle anderen I n f o r m a t i o n s e i n h e i t e n bauen auf dem B i t a u f . \ i t e m [Byte] Das Byte i s t i n Byte-Maschinen d i e k l e i n s t e adressierbare Informationseinheit. Das Byte b e s t e h t aus 8 Datenbits und einem P a r i t y - B i t zu K o n t r o l l z s e c k e n . \ i t e m [Wort] Das Wort i s t in Wortmaschinell d i e k l e i n s t e a d r e s s i e r b a r e I n f o r m a t i o n s e i n h e i t . Das Wort h a t 16 oder 32 b i t . \ i t e m [Feld] DM Feld i s t eine Byte-Folge. Seine Adresse i s t d i e Adresse des l i n k e n B y t e s . Die Anzahl von Bytes i s t meist auf 256 b e g r e n z t . \end{varlist> Die I n s t r u k t i o n e n , welche B i t s , Bytes, F e l d e r und Worte v e r a r b e i t e n , s i n d sehr u n t e r s c h i e d l i c h und erhalten
hieraus
nach der
Ubersetzung:
Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. Bit
Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf.
Byte
Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. Das Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken.
Wort
Das Wort ist in Wortmaschinen die kleinste adressierbare Informationseinheit. Das Wort hat 16 oder 32 bit.
Feld
Das Feld ist eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes ist meist auf 256 begrenzt.
Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich Aufgabe 9 Bitte schreiben Sie folgende Texte. Eine Ausbildung zum Informatiker muß aus folgenden Hauptgebieten bestehen: Datenverarbeitung
Kapitel 4. Einfache Strukturen
55
• Programmierung • DV-Organisation • Betriebswirtschaft • Mathematik Bitte beantworten Sie auch noch folgende Zusatzfragen: 1. Wie würde das Textstück aussehen, wenn die Teile fortlaufend zu numerieren wären? 2. Wie könnte man erreichen, daß vor den einzelnen Abschnitten als Markierung ein • ist? A u f g a b e 10
A u f g a b e 11
A u f g a b e 12
Bitte geben Sie an, welche Vorkehrungen Sie treffen müssen, wenn eine variable Liste geschrieben werden soll, deren erste Spalte 2.54 cm breit ist. Bitte schreiben Sie den Text auf Seite 45 von "Folgende Strukturen" bis .... "im folgenden getrennt vorgestellt." Es ist auch möglich, die environments beliebig zu verschachteln. Hierbei sind dann die \begin{name-env}- . . . \end{name-env} wie geöffnete bzw. geschlossene Klammer zu betrachten. Es sind also z.B. folgende Strukturen denkbar. \begin{name-envl} \item t e x t l Ybeg in{name-env11} \item textll \item textl2 \end{name-envl1} \item text2 \item text3 \end{name-env1>
Bitte schreiben Sie nun den folgenden Text. Ein DV-Projekt wird in mehreren Phasen abgewickelt. Dabei sind eine Reihe von Untersuchungen in den einzelnen Phasen durchzuführen. 1. Vorstudie • Projektziel • Durchführbarkeit • Wirtschaftlichkeit
56
4.7. 'environment graubox'* 2. Istaufnahme und Informationsbedarfsbestimmung • Istaufnahme • Schwachstellenanalyse • Informationsbedarf
4.7
'environment graubox'*
Diese Struktur*) wird verwandt, u m besondere Hervorhebungen im Text zu erreichen. Es wird eine umrahmte Box mit Text zentriert erzeugt. Die Breite der Box und die Graustufe (0 - 100) können vom Anwender als Parameter gewählt werden. Hierbei ist die Graustufe 0 = weiß (keine Unterlegung), die Graustufe 100 ist schwarz. Dies kann nicht gewählt werden, weil sonst die darunterliegende Schrift nicht mehr zu sehen ist. In diesem Buch ist als Graustufe 8 gewählt. Dieses environment hat zwei Parameter. Graustufe
Werte: 0(weiß) - lOO(schwarz) gibt die Schwärze der unterlegten Farbe an.
Breite der Box
Werte: xxin (Es sind aber auch Angaben wie 0.8\textwidth möglich. Damit würden 80 % der Textbreite für die Breite der Box genutzt.
Die Struktur hat also folgende Gestalt: \begin{grauboxHGraustufeHBreite der Box} Text, der i n der Box stehen s o l l . . . . \end{graubox> Wenn Sie
schreiben:
\begin{grauboxH8}{0.85\textwidth> Die Bundesrepublik Deutschland i s t eine parlamentarische Demokratie. Der Bundeskanzler bestimmt d i e R i c h t l i n i e n der P o l i t i k . \end{graubox> dann erhält man hieraus
nach der
Ubersetzung:
Die Bundesrepublik Deutschland ist eine parlamentarische Demokratie: Der Bundeskanzler bestimmt die Richtlinien der Politik. Makro aus infmakro.tex
57
Kapitel 4. Einfache Strukturen
4.8
'environment verbatim'*
Gelegentlich kommt es vor, daß man einmal beschreiben möchte, wie die einzelnen Commands zu schreiben sind. Man will also erreichen, daß bestimmte Stücke des Textes nicht 'übersetzt' werden. Wie in diesem Buch zu sehen ist, handelt es sich hierbei um ein sehr nützliches Hilfsmittel. Das environment verbatim setzt also den Ubersetzungsvorgang aus. Die innerhalb stehenden Texte werden in \ t t (Typewriter) ungeändert gesetzt. Die Struktur hat die folgende Gestalt: \begin{verbatim} Texte, die nicht ver\ändert «erden sollen \end{verbat im} Wenn Sie schreiben: \begin{verbatim} Das sind die Befehle, die stehen bleiben und lediglich in Typewriter gesetzt werden. Es findet kein Umbruch statt. \end{verbatim} dann erhält man hieraus nach der
'Ubersetzung':
Das sind die Befehle, die stehen bleiben und lediglich in Typewriter gesetzt werden. Es findet kein Umbruch statt. Hinweis:
Soll im Text erreicht werden, daß einzelne Zeichen oder Zeichenketten unübersetzt bleiben, dann kann man \verb+Zeichenkette
Zeichenkette+
Es wird damit die Wirkung erzielt, daß alle zwischen + und + stehenden Zeichen unübersetzt (d.h. in \ t t ) bleiben. Dieses Verfahren kann man anwenden, wenn man z.B. einen Command schreiben möchte, ohne die Wirkung des Commands im Text zu erzielen, dann kann man \verb+\+Command schreiben. Es wird dadurch \ C o m m a n d erzeugt. Anstelle des ' + ' kann auch ein anderes Zeichen verwendet werden, welches in der Zeichenkette nicht vorkommt.
58
4.9
4.9. Weitere Hilfsmittel
Weitere Hilfsmittel
Im System gibt es eine Reihe weiterer Hilfsmittel, die manchmal eingesetzt werden können, u m eine Struktur zu verbessern. In der folgenden Ubersicht werden einzelne Commands mit der jeweiligen Wirkung dargestellt. \newline
Wird der Command geschrieben, so wird an dieser Stelle ein Zeilenumbruch erzeugt. Es beginnt eine neue Zeile.
\\
Wird der Command geschrieben, so wird an dieser Stelle ein Zeilenumbruch erzeugt. Es beginnt eine neue Zeile.
\newpage
Wird der Command geschrieben, so wird an dieser Stelle ein Seitenumbruch erzeugt. Es beginnt eine neue Seite. Bitte beachten Sie, daß auf diese Weise in die Gesamtordnung des Dokuments (gesteuert durch den document-style) eingegriffen wird.
\hspace{lae}
Der Command wird benutzt, um horizontal Leer-Raum zu erzeugen. Die Größe des Raumes wird durch Iae angegeben. Hierbei kann lae in der Form xx pt xx in xx cm angegeben werden, wobei xx immer eine Zahl mit Dezimalpunkt oder eine ganze Zahl ist. Diese Zahl kann auch negativ sein, dann bewirkt sie eine horizontale Verschiebung nach links. \ h s p a c e { 0 . 5 i n } erzielt also einen Leer-Raum von 0.5 inch. Hierbei ist aber zu beachten, daß Leer-Raum am Anfang oder Ende einer Zeile nicht erzeugt wird, auch wenn ein \hspace-Command abgesetzt wurde. Diese Einschränkung gilt nicht am Anfang oder Ende eines Absatzes. Wenn Leer-Raum erzeugt werden soll, der ungeändert stehen bleiben soll, dann ist \ h s p a c e * { l a e } zu schreiben.
\vspace{lae}
Der Command wird benutzt um vertikalen Leer-Raum zu erzeugen. Die Größe des Raumes wird durch lae angegeben. Hierbei kann lae in der Form xx pt xx in xx cm angegeben werden, wobei xx immer eine Zahl mit Dezimalpunkt oder eine ganze Zahl ist. Die Zahl kann auch negativ
59
Kapitel 4. Einfache Strukturen
sein, dann bewirkt sie eine Verschiebung nach oben. Dieser Command wird hauptsächlich benutzt, um Leer-Raum zwischen Absätzen zu schaffen. Wenn der Command auf einer Zeile gegeben wird, dann wird der Leer-Raum nach Vollendung dieser Zeile angelegt. \ v s p a c e { 0 . 5 i n } erzielt also einen Leer-Raum von 0.5 inch. Hierbei ist aber zu beachten, daß Leer-Raum am Anfang oder Ende einer Seite nicht erzeugt wird, auch wenn ein \vspace-Command abgesetzt wurde. Wenn Leer-Raum erzeugt werden soll, der ungeändert stehen bleiben soll, dann ist \ v s p a c e * { l a e > zu schreiben. \fill
Wird in einem Text an irgendeiner Stelle \ l i l l geschrieben, so wird an dieser Stelle zunächst horizontaler Leer-Raum der Länge Null gelassen. Stellt das System aber beim Satz — also bei der Umwandlung — fest, daß eine Underfull Box entsteht, dann wird an der Stelle, wo das \ l i l l steht, Leer-Raum gelassen, und zwar soviel, daß der restliche Text optimale Abstände hat.
\hfill
Dieses ist eine Abkürzung für \ h s p a c e { \ f i l l } . \ h f i l l ist also eine — je nach den Satzbedürfnissen — dehnbare Anzahl von Leerzeichen. Es sei noch bemerkt, daß zwei dehnbare Leer-Räume sich den freien Platz gleichmäßig teilen. Aus diesem Grunde entsteht aus Das i s t \ h f i l l e i n \ h i i l l Versuch. die Zeile Das ist
\dotfill
ein
Versuch.
Die Wirkung dieses Commands entspricht exakt der von \hf i l l . Es werden lediglich Punkte an Stelle von Leerzeichen eingesetzt. Aus diesem Grunde entsteht aus Das i s t \ d o t f i l l e i n \ d o t f i l l Versuch. die Zeile Das ist
\hrulefill
ein
Versuch.
Die Wirkung dieses Commands entspricht exakt der von \ h f i l l . Es wird lediglich eine horizontale Linie an Stelle von Leerzeichen eingesetzt. Aus diesem Grunde entsteht aus Das i s t \ h r u l e f i l l e i n \ h r u l e f i l l Versuch.
4.9. Weitere Hilfsmittel
60 die Zeile Das ist
A u f g a b e 13 Dies ist Dies ist
ein
Bitte schreiben Sie folgenden Text. Herr Schmidt Herr Schmidt
Versuch.
aus Hamburg. aus Hamburg.
A u f g a b e 14
Bitte erzeugen Sie folgende Box mit grauer Unterlegung. Bitte wählen Sie als Breite der Box 90 % der Textbreite. Versuchen Sie verschiedene Graustufen. Achten Sie aber bitte darauf, daß Sie die Zeilenbreite innerhalb der grauen Box — also temporär — auf 90 % der Textbreite verändern müssen. Dies erreichen Sie durch \linewidth=0.9\textwidth. Environments gestatten die Strukturierung von Dokumenten. Strukturierungen sind für die gute Lesbarkeit sehr wichtig. 1. quote für Einrückungen 2. quotation für Einrückungen: mit Absätzen 3. description für Absätze mit Absatztitel ^4. itemize für markierte Einrückungen 5. enumerate für numerierte Einrückungen 6. varlist für variable Listen 7. graubox für grau unterlegte, umrahmte Texte 8. verbatim für unübersetzte Texte
61
Kapitel 5. Tabellen
Kapitel 5 Tabellen
Tabellen sind ein Hilfsmittel zur übersichtlichen Darstellung von Zusammenhängen. In vielen Bereichen lassen sich Tabellen zur übersichtlichen Darstellung von Funktionen von bis zu zwei Variablen darstellen. Damit sind Tabellen ein wesentliches Werkzeug bei der Texterstellung überhaupt.
5.1
Beschreibung von Tabellen
Tabellen haben allgemein folgenden Aufbau. Spalten Tabelle Nr.l Nr.2 Nr.3 Nr.4 Nr.5
Nr.l *
*
*
*
*
•
Nr.4 • •
•
• • •
*
*
*
*
*
*
•
•
• •
*
*
•
Nr.2
Nr.3
Nr.5
Nr.6
* *
*
Abbildung 5.1: Tabellen Dies ist eine Tabelle mit 5 Zeilen und 6 Spalten. Zusätzlich gibt es eine Zeile, die als Uberschriftszeile und eine Spalte, die als Beschreibungsspalte verwendet wird. Soll eine Tabelle in T^X beschrieben werden, dann sind folgende Funktionen zu unterstützen. • Tabellen große Anzahl Zeilen Anzahl Spalten
62
5.2. Standardmodell zur Tabellenbeschreibung • Einrahmung der Tabelle Normalstrichstärke (0.4 pt) Fettstrichstärke (1.2 pt) keine Umrahmung • Senkrechte und waagerechte Linien Normalstrichstärke (0.4 pt) keine senkrechten oder waagerechten Linien • Element-Stellung im Tabellenfeld (Box) Element ist eine Zeile linksbündig rechtsbündig zentriert Element ist eine Box linksbündig rechtsbündig zentriert
A u f g a b e 15
5.2
Bitte stellen Sie fest, wie sich die Standardtabelle 5.1 Seite 61 durch diese angegebenen Funktionen beschreiben läßt.
Standardmodell zur Tabellenbeschreibung
Es gäbe grundsätzlich viele Möglichkeiten, in T£X Tabellen zu beschreiben. Auch hier führt die Vielzahl der Beschreibungsmöglichkeiten zu besonderen Schwierigkeiten. Zum einen muß man darauf achten, daß nicht durch eine Vielzahl von Formaten das ganze Dokument sehr unruhig wirkt. Zum anderen muß auch bei der Auswahl von Formaten beachtet werden, daß sie sich bequem beschreiben lassen, so daß möglichst wenig Beschreibungsfehler auftreten, weil diese j a immer mit Testaufwand verbunden sind. Aus diesem Grunde werden hier in diesem Skript zunächst sogenannte Standard- Tabellen behandelt. Diese sollen dazu dienen, Tabellen zu setzen, wie sie in einem Fachtext vorkommen. Auf alle satztechnischen Techniken zur 'Verschönerung' wird verzichtet. Die Standard-Tabelle ist flexibel bequem zu setzen
Kapitel 5. Tabellen
63
übersichtlich. In einem weiteren Abschnitt werden wir eine mögliche Erweiterung angeben. Mit dem Tabellenmodell für gehobenere Ansprüche an die Schönheit ist es mit geringem zusätzlichen Satzaufwand möglich, Einrahmungen für die ganze Tabelle und für Tabellenteile durchzuführen, was in einigen Fällen die Lesbarkeit erhöhen kann. Hierbei wird es auch möglich, Überschriften noch besser von Tabellen-Einträgen abzusetzen und Tabellenteile durch DoppelLinien besonders zu kennzeichnen. Dieses Tabellenmodell soll erweiterte Standard-Tabelle heißen. Alle Tabellen in diesem Skript wurden als Standard-Tabelle oder als erweiterte Standardtabelle gesetzt.
5.2.1
Definition der Standard-Tabelle
Die Standard-Tabelle ist eine Auswahl aus möglichen Tabellen-Modellen. Dies bedeutet unter anderem, daß die im vorigen Abschnitt beschriebenen Funktionen nicht vollständig unterstützt werden. Folgende das Modell der Standard-Tabelle beschreibende Funktionen werden unterstützt. • Tabellengröße Anzahl Zeilen Anzahl Spalten • Einrahmung der Tabelle Normalstrichstärke (0.4 pt) keine Umrahmung • Senkrechte und waagerechte Linien Normalstrichstärke (0.4 pt) keine senkrechten oder waagerechten Linien • Element-Stellung im Tabellenfeld (Box) Element ist eine Zeile linksbündig rechtsbündig zentriert Element ist eine Box linksbündig rechtsbündig zentriert
64
5.2. Standardmodell zur Tabellenbeschreibung
5.2.2
'environment tabular'
Zur Darstellung von Tabellen wird ein environment verwendet. Das environment heißt tabular Das environment verwendet einen erforderlichen Parameter. Dieser Parameter dient zu folgenden Beschreibungen. Festlegung der Anzahl der Spalten Festlegung der Anzahl und Lage der senkrechten Linien Festlegung der Positionierung der Tabellenelemente in den einzelnen Spalten Der Korpus des environments wird in einem bestimmten Format geschrieben, welches später erläutert wird. Der Korpus dient zu folgenden Beschreibungen. Festlegung der Anzahl der Zeilen Festlegung der Anzahl und Lage der waagerechten Linien Festlegung des Inhalts der Tabellenelemente in den einzelnen Zeilen Das environment hat dabei folgende grundsätzliche Gestalt. Ybegin-CtabularMparameter} Korpus des environments (Tabellenzeilen) \end{tabular> Abbildung 5.2: 'environment tabular' Parameter von tabular Der Parameter von tabular ist in mehrere Unterparameter upari,upar2,...,
uparn
unterteilt. Jeder Unterparameter upari gehört dabei zu je einer Spalte. Die Unterparameter können folgende Werte annehmen.
Kapitel 5. Tabellen
65
Die Struktur der Spalten ist erst dann vollständig beschrieben, wenn auch die zwischen den Spalten anzubringenden senkrechten Linien beschrieben sind. Hierfür gibt es folgende einfache Festlegung. Ist zwischen zwei Spalten i und i + 1 eine senkrechte Linie vorzusehen, dann wird zwischen die Unterparameter upar,- und u p a r l + 1 das Zeichen I geschrieben. Ist keine senkrechte Linie vorzusehen, dann werden die Unterparameter lückenlos nebeneinander geschrieben. B e i s p i e l 1 Es sei eine Tabelle mit 5 Spalten zu bearbeiten, wobei alle Elemente zentriert und alle Spalten durch senkrechte Linien getrennt werden sollen, dann ist als Parameter Parameter =
lc|c|c|clcl
zu schreiben. Bitte beachten Sie auch, daß stets für die linksseitige Einrahmung der Tabelle vor alle Spalten ein Zeichen I und für die rechtsseitige Einrahmung hinter die letzte Spalte ebenfalls ein Zeichen I zu schreiben ist. B e i s p i e l 2 Es soll eine Tabelle mit 7 Spalten bearbeitet werden, wobei alle Elemente linksbündig in den Spalten anzuordnen sind. Ferner ist vorgeschrieben, daß die Tabelle eingerahmt werden soll, daß aber sonst auf alle Spaltentrennungen verzichtet werden soll, dann ist parameter = 111111111 zu schreiben. Zeilenbeschreibung von tabular Zur Strukturierung der Zeilen einer Tabelle werden noch zwei zusätzliche Ende-Zeichen verwendet. & Ende eines Zeilen-Elements \ \ Ende einer Zeile Die Beschreibungen der Zeilen haben dann folgende Gestalt, elemi ¿c e/em 2 & . . . & elemn
\\
falls n Elemente in einer Zeile stehen. Die Tabelle hat dann also n Spalten. Die elemi sind dabei Texte, die in den Tabellenfeldern stehen. Beispiel
Eine Zeile könnte also folgendermaßen aussehen Tabelle & Nr.l & Nr.2 & Nr.3 L Nr.4 k
Nr.5 k Nr.6 \ \
Als letztes Beschreibungselement für einfache Standardtabellen ist noch eine Makro für die Erzeugung von horizontalen Linien vorhanden. Hierfür kann
66
5.2. Standardmodell zur Tabellenbeschreibung
\hline geschrieben werden. Beispiel für e i n e einfache Standard-Tabelle Schreibt
man:
\begin{tabular>{|c|c|clc|c|c|c|c|c|c|cl> \hline mal 4 1 k 2 4 3 4 4 k 5 4 6 4 7 4 8 4 9 4 10\\ \hline 1 * 1 k 2 * 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10\\ \hline 2 4 2 k 4 4 6 4 8 410 412 414 416 418 4 20\\ \hline 3 4 3 k 6 4 9 412 415 418 421 424 427 4 3 0 W \hline 4 * 4 k 8 »12 416 420 424 428 432 436 4 4 0 W \hline 5 4 5 410 415 420 425 430 435 440 445 4 50\\ \hline 6 4 6 kl 2 418 424 430 436 442 448 454 4 60\\ \hline 7 4 7 414 421 428 435 442 449 456 463 4 7 0 W \hline 8 k 8 416 424 432 440 448 456 464 472 4 80\\ \hline 9 k 9 418 427 436 445 454 463 472 481 4 90\\ \hline 10 410 420 430 440 450 460 470 480 490 4100W \hline \endit abular} so erhält man die folgende
mal 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 2 4 6 8 10 12 14 16 18 20
Tabelle.
3 3 6 9 12 15 18 21 24 27 30
4 4 8 12 16 20 24 28 32 36 40
5 5 10 15 20 25 30 35 40 45 50
6 6 12 18 24 30 36 42 48 54 60
7 7 14 21 28 35 42 49 56 63 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90
10 10 20 30 40 50 60 70 80 90 100
Abbildung 5.3: Kleines Einmaleins Hier an dieser Stelle sei noch einmal besonders betont, daß es sich bei dem 'environment tabular' um eine Schreibhilfe handelt. Das System TßX prüft alle Anwendereingaben auf Richtigkeit. Der Anwender muß aber selbst darauf achten, daß die Zahl der Elemente in einer Zeile exakt mit der Anzahl der Spalten übereinstimmt, die im Parameter definiert wurden. Wenn n Unterparameter definiert wurden, wurdefestgelegt, daß die Zahl der Spalten n
67
Kapitel 5. Tabellen
beträgt. Das bedeutet, daß auch in jeder Zeile n Elemente definiert werden müssen. (Dies bedeutet, daß n - 1 Element-Ende-Kennzeichen \ h l i n e ft\nnilticolumn{4Hlc|MUmsatz in Mio. DM}\\ \ c l i n e { 2 - 5 } Bereich* \nnilticolumn-(lMc I M l . Quartal}* \multicolumn{l}{cI>{2.Quartal}* \multicolumii-ClHc I }{3. Quartal}* \ n m l t i c o l u m n { l M c | }{4. Q u a r t a l } \ \ \ h l i n e S o f t v a r e * 1 . 2 * 1..1 * 0.4 * 1..6 \ \ \ h l i n e Haxdware*5.4 * 6,.8 * 9.3 * 2.,6 \ \ \hline Beratung*2.1 * 1..8 2.4 \ \ \hline * * 1..6 \end{tabular} \end{center}
Kapitel 5. Tabellen
69
Der multicolumn-Command dient dazu, Überschriften über mehrere Spalten zu setzen, er kann aber auch verwendet werden, wenn unterschiedliche Positionierungen der Uberschriften und Tabellenelemente einer Spalte vorzunehmen sind.
5.3.2
Horizontale Linien über n Spalten — cline
Um horizontale Linien auch über die Breite von einigen Spalten setzen zu können, ist der Command \cline{spanf-spend> zu schreiben. Hierbei ist spanf spend
Spaltennummer Beginn horizontale Linie Spaltennummer Ende horizontale Linie
Als Beispiel für die Anwendung des multicolumn-Commands soll gezeigt werden, wie die Tabelle 5.3 Seite 66 mit einer Uberschrift versehen werden kann. Hierzu ist folgendes zu schreiben. \begin{tabular>{|c|c|c|c|c|c|clc|c|c|c|> \hline \multicoluan{ll>{IcI} { K l e i n e s EinmaleinsJW \ l i l i n e mal 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 1 0 \ \ \ h l i n e 1 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10\\ \hline
9 4 9 418 427 ¿36 445 454 463 472 481 4 9 0 \ \ 10 410 420 430 440 450 460 470 480 490 4 1 0 0 \ \ \end{tabular>
\hline \hline
Man erhält dann die folgende Tabelle mal 1 2 3 4 5 6 7 8 9 10
1 1 2 3 4 5 6 7 8 9 10
2 2 4 6 8 10 12 14 16 18 20
Kleines 3 4 3 4 6 8 12 9 12 16 15 20 18 24 21 28 24 32 27 36 30 40
Einmaleins 5 6 7 5 6 7 10 12 14 15 18 21 20 24 28 25 30 35 30 36 42 35 42 49 40 48 56 45 54 63 50 60 70
8 8 16 24 32 40 48 56 64 72 80
9 9 18 27 36 45 54 63 72 81 90
10 10 20 30 40 50 60 70 80 90 100
5.3. Erweiterte Standardtabelle
70
Die Anwendung des Commands cline wird an folgendem Beispiel erläutert. Schreibt
man:
\begin{tabularHll|c|c|c|c|} \hline *\multicoluan-C4>{|c|>{Umsatz i n Mio. DM}\\ \ c l i n e Bereich*!.Quartalft2.Quartalft3.Quartalft4.QuartalW S o i t w a r e f t l .,2 1.6 \\ ft 1..1 ft 0.4 ft Hardwareft5,,4 * 6..8 ft 9.3 ft 2.6 \\ Beratungft2..1 * 1..8 ft 2.4 ft 1.6 \\ \end{tabular)so erhält
man:
Bereich Software Hardware Beratung
5.3.3
{2-5} \hline \hline \hline \hline
1.Quartal 1.2 5.4 2.1
Umsatz in Mio. DM 2.Quartal 3. Quartal 1.1 0.4 6.8 9.3 2.4 1.8
4. Quartal 1.6 2.6 1.6
Boxes als Tabellen-Elemente — p{}
Eine zusätzliche Erweiterung der Einsatzbreite von Tabellen ist dadurch gegeben, daß die Unterparameter auch noch Boxes bestimmter Breite sein können. Hierbei verstehen wir unter Box ein Rechteck bestimmter horizontaler Breite (width) und vertikaler Länge (length). Zum Beispiel ist eine Seite eine solche Box. Sie hat eine Breite (die Länge einer Textzeile) und eine Länge (die Seitenlänge). In solch einer Box kann die Satzrichtung entweder horizontal sein, dann spricht man von einer horizontalen Box, sie kann aber auch vertikal sein, dann spricht man von einer vertikalen Box. Damit ist es also möglich, mehrzeilige Texte als Tabellen-Elemente zu verwenden. Hierbei ist allerdings zu beachten, daß wegen sonst entstehender Umbruchprobleme die Box-Breite nicht zu klein gewählt werden sollte. Es hat sich herausgestellt, daß 2 inch eine noch eben praktikable Breite ist, um ohne größere Umbruchprobleme Tabellen mit Boxes zu setzen. Formal wird die Möglichkeit dadurch eröffnet, daß anstelle eines Unterparameters geschrieben werden kann p-fbreite} Hierbei ist für breite, die Breite der Box in Längeneinheiten anzugeben. (z.B. 2in). Hierdurch wird es möglich, variable Listen auch als Tabellen zu setzen. Wir demonstrieren das an einem Beispiel.
Kapitel 5. Tabellen
71
Sie schreiben: \begin{tabular}{lp{3. B i n » {\bf B i t } * Das B i t i s t d i e k l e i n s t e I n f o r m a t i o n s e i n h e i t , Informationen Verden i n B i t gemessen.\\ {\bf Byte} k Das Byte i s t d i e k l e i n s t e a d r e s s i e r b a r e E i n h e i t . Ein Byte b e s t e h t aus 8 D a t e n b i t s und einem Control-Bit.\\ {\bf Wort} t Das Wort i s t d i e k l e i n s t e a d r e s s i e r b a r e E i n h e i t b e i Wortmaschinen. Das Wort h a t 16 oder 32 Bit \\ \end{tabular} und erhalten Bit Das Bit ist die kleinste Informationseinheit, Informationen werden in Bit gemessen. Byte Das Byte ist die kleinste adressierbare Einheit. Ein Byte besteht aus 8 Datenbits und einem Control-Bit. Wort Das Wort ist die kleinste adressierbare Einheit bei Wortmaschinen. Das Wort hat 16 oder 32 Bit. Aufgabe 18
Bitte setzen Sie folgenden Text als Tabelle.
Die systematische Entwicklung eines Projektes findet nach einem sogenannten Phasenmodell statt. Dieses wird im folgenden untergliedert dargestellt. Vorstudie
Istaufnahme
Grobkonzept
Detailkonzept
Implementierung
Ziel des Projektes Durchführbarkeit Wirtschaftlichkeit Istzustand Schwachstellenanalyse Informationsbedarfsbestimmung Ziel des Projektes Wirtschaftlichkeit Datenmodell Funktionenmodell Mengengerüst Datenbeschreibung Aufgabenbeschreibung Terminplan Programmierung Test
72
5.3. Erweiterte Standardtabelle
5.3.4
Zusätzliche Hilfsmittel der Gestaltung
In diesem Abschnitt soll über solche Hilfsmittel der Gestaltung berichtet werden, mit denen man die Ausrichtung der Tabelle im Text den Abstand der Tabellenzeilen die Stellung eines Tabellenelements in der Tabelle beeinflussen kann. 5.3.4.1
'environment center'
Das environment center kann verwendet werden, um z.B. eine Tabelle zu zentrieren. Mit Hilfe der Schreibweise \begin{center> \begin{tabular}{
}
\end{tabular} \end{center} entsteht eine — in bezug auf die gesamte Textbreite — zentrierte Tabelle. Will man die Zentrierung von normalem Text durchfuhren, dann hat man zu beachten, daß die Zentrierung zeilenweise geschieht. Die Zeilen sind jeweils durch \ \ abzuschließen. Dies ist aus folgendem Beispiel zu sehen. Es wird folgender Text geschrieben. \begin{center} Das i s t d i e e r s t e geschriebene Z e i l e . \ \ Das i s t d i e z v e i t e Z e i l e . \ \ Und das i s t d i e l e t z t e Z e i l e . \end{center)Hieraus entsteht nach der Übersetzung. Das ist die erste geschriebene Zeile. Das ist die zweite Zeile. Und das ist die letzte Zeile.
73
Kapitel 5. Tabellen 5.3.4.2
'environment centerb'*
Möchte man eine Zentrierung im Block erreichen, dann muß das 'environment centerb' verwendet werden*). Es handelt sich um ein zusätzliches environment mit zwei Parametern. Der erste Parameter ist die Blockbreite. Der zweite Parameter ist der Text. Man beachte, daß aus diesem Grunde der Text in geschweifte Klammern einzuschließen ist. Soll der im vorigen Beispiel verwendete Text im Block der Breite 1.8 inch zentriert werden, dann ist \begin{centerb}{l.8 in} {Das i s t d i e e r s t e geschriebene Z e i l e . Das i s t d i e zweite Z e i l e . Und das i s t d i e l e t z t e Z e i l e . } \end{c ent erb} zu schreiben. Hieraus entsteht nach der Ubersetzung. Das ist die erste geschriebene Zeile. Das ist die zweite Zeile. Und das ist die letzte Zeile. 5.3.4.3
Zentrierung v o n anderen environments
Es sei noch erwähnt, daß die Zentrierung nicht auf das 'environment tabular' beschränkt ist. Jedes andere environment (z.B. itemize, quote, quotation, description, enumerate) kann zentriert werden. Allerdings muß hier das 'environment centerb' benutzt werden. Die ist darin zu sehen, daß die anderen environments sämtlich als Breite die Zeilenbreite verwenden. Damit hätte die Zentrierung mit dem 'environment center' keine Wirkung. Im 'environment centerb' wird als die Zentrierung mit der als Parameter angegebenen Block-Breite durchgeführt. Hierbei ist allerdings zu beachten, daß diese vom Anwender so gewählt werden muß, daß die längste Zeile darin untergebracht werden kann — andernfalls entstehen 'Overfull Boxes'. Schreibt
man
z.B.:
Die S c h o l l e schmeckt am b e s t e n i n den Monaten ohne also: \begin{centerbH2cm} \begin{itemize} \ i t e m Mai \item Juni \item J u l i *)Makro aus infmakro.tex
'r'
74
5.3. Erweiterte Standardtabelle
\item August \end{itemizo> \end{centerb> so erhält
daraus:
Die Scholle schmeckt am besten in den Monaten ohne V also: • Mai • Juni • Juli • August Ohne die Zentrierung wäre: Die Scholle schmeckt am besten in den Monaten ohne 'r' also: • Mai • Juni • Juli • August entstanden. Environments — außer dem 'tabular environment' — können nur mit dem 'centerb environment' zentriert werden. Die Zentrierung mit dem 'center environment' bleibt wirkungslos.
5.3.4.4
Veränderung des Zeilenabstands
Der Zeilenabstand ist mit 12 pt vorbesetzt. Dieser Wert wird in einem Längenregister gespeichert, das baselineskip heißt. Der Zeilenabstand kann geändert werden, indem man \baselineskip=xxpt schreibt. Hierbei ist xx der Zeilenabstand in pt. Damit dieser Zeilenabstand nur in einer Tabelle wirksam wird und nicht von da an im gesamten Dokument, wird diese Setzung und das 'environment tabular' in geschweifte Klammern eingeschlossen. Die Tabelle auf Seite 70 hat die folgende Gestalt, wenn man sie mit einem Zeilenabstand von 18 pt schreibt.
Kapitel 5. Tabellen
75 Umsatz in Mio. DM
Bereich
1.Quartal
2.Quartal
3.Quartal
4.Quartal
Software
1.2
1.1
0.4
1.6
Hardware
5.4
6.8
9.3
2.6
Beratung
2.1
1.8
2.4
1.6
Dies wurde durch die Schreibweise {\baselineskip=18 pt \tabbox{12.5K5.5> \ b e g i n { t a b u l a r H | l | c | c | c | c | > \hline ft\multicolumn{4HlclHUmsatz in Mio. DM>\\ \ c l i n e Bereichftl.Queu:talft2.quartalft3.Quartalft4.Quartal\\ Softwareftl. .2 ft 1,.1 ft 0,.4 ft 1..6 \\ HardvareftS..4 ft 6..8 ft 9..3 ft 2 .6 \\ Beratungft2. .1 ft 1,.8 ft 2..4 ft 1,.6 \\ \end{tabular} >
{2-5} \hline \hline \hline \hline
erreicht. 5.3.4.5
Stellung der Tabellenelemente
TßX arbeitet mit Boxes. Jeder Satz ist eine Zusammensetzung von Boxes. Die kleinste Box, die man erzielen kann, ist die Box eines einzelnen Zeichens.
baselineskip
Abbildung 5.4: Box eines Zeichens Hierbei bedeuten
76
5.3. Erweiterte Standardtabelle baselineskip height depth width
Zeilenabstand Höhe eines Zeichens über Basislinie Tiefe eines Zeichens unter Basislinie Breite eines Zeichens
Hierbei ist stets baselineskip = height + d e p t h und es gelten folgende Standardwerte baselineskip height depth
12pt 8.5pt 3.5pt
Diese Standardeinstellungen können durch den Command \tabbox{height>{depth> lokal bei jeder Tabelle verändert werden. Abbildung 5.5 zeigt ein Muster für die vollständige Gestaltung einer erweiterten Standardtabelle. •C\baselineskip=xx p t \tabbox{height}{depth> \begin{tabular}{ } \end{tabular> >
Abbildung 5.5: Standard-Tabelle mit Variation An einem Beispiel soll diese Technik erläutert werden. Wir gehen von einer Standardtabelle aus. Ziffern Buchstaben mit Oberlängen Umlaute Buchstaben mit Unterlängen Buchstaben ohne beides
0,1,2,3,4,5,6,7,8,9 I, A, b, d, f, h, k, 1, t ä, ö, ü, A, 0 , U g, j, p, q, y a, c, e, i, m, n, o, r, s
Wie man sieht, stoßen die Buchstaben mit Oberlängen (große Umlaute) an die horizontalen Linien. Dies kann vermieden werden, wenn man zur Gestaltung der Tabelle folgende Zusätze verwendet. height wird um 2 pt erhöht
77
Kapitel 5. Tabellen depth wird um 2 pt erhöht baselineskip wird um 4 pt = 2 pt + 2 pt erhöht Dann erhält man die folgende Gestalt. Ziffern
0,1,2,3,4,5,6,7,8,9
Buchstaben mit Oberlängen
I,A, b, d, f, h, k, 1, t
Umlaute
ä, ö, ü, A, O, U
Buchstaben mit Unterlängen
g, j, p, q, y
Buchstaben ohne beides
a, c, e, i, m, n, o, r, s
A u f g a b e 19 A u f g a b e 20
Bitte geben Sie die Parameter-Setzungen für die obige Tabelle an. Bitte setzen Sie die folgende Tabelle. Der Zeilenabstand soll 13 pt betragen, die Oberlänge (height) 11.5 pt. (Wie groß ist dann die Unterlänge (depth)?)
Buchstaben
A, B
... , Z, a, b, c, .... , z
deutsche Zeichen
Ä, Ö
ä, ö, ü, ß
Ziffern
0, 1, 2 , 3 , 4, 5, 6, 7, 8, 9 * *î J ! ' ()[]-/*
Sonderzeichen math. Zeichen
# $ %k + = 1
Bindestriche
- ( i n Worten) - (Zahlbereiche) , — (Parenthese)
Spezialzeichen
5.3.4.6
V e r s t ä r k t e horizontale u n d vertikale Linien
In einigen Fällen kann es wünschenswert sein, bestimmte horizontale bzw. vertikale Linien zu verstärken. Das gilt auch für die aus horizontalen und vertikalen Linien zusammengesetzte Einrahmung. Das Prinzip dieser Technik ist sehr einfach. 1. Am Anfang des Parameters steht \ t a b p l am Ende \ t a b p r , wenn eine verstärkte Einrahmung gewünscht wird. Beispiel: { \ t a b p l c | c \ t a b p r } 2. In jeder Zeile ist als erstes Element \ t a b a n f einzutragen, als letztes Element \tabend, wenn eine verstärkte Einrahmung gewünscht wird. Beispiel : \ t a b a n f »16.0412. 4 * \ t a b e n d \ \ 3. Horizontale verstärkte Linien entstehen durch Ytabline.
78
5.3. Erweiterte Standardtabelle
Ein Beispiel für die Anwendung dieser Technik stellt die bereits als Beispiel verwendete Tabelle dar. Bereich Software Hardware Beratung
1.Quartal 1.2 5.4 2.1
Umsatz in Mio. DM 2.Quartal 3.Quartal 0.4 1.1 6.8 9.3 2.4 1.8
4.Quartal 1.6 2.6 1.6
Aufgabe 21
Bitte setzen Sie die die obige Tabelle.
A u f g a b e 22
Auch das folgende Beispiel ist mit Hilfe der Tabellen gesetzt. Damit die umrahmte Box zentriert wird, verwenden Sie das environment center. Eine umrahmte Box können Sie als Tabelle mit nur einem Element auffassen, welches durch p O beschrieben wird. Wählen Sie bitte eine Breite von 40 % der Textbreite. Die Bundesrepublik Deutschland ist eine parlamentarische Demokratie. Der Bundeskanzler bestimmt die Richtlinien der Politik.
Zusatzfrage:
Mit welcher im vorigen Abschnitt behandelten Technik hätten Sie den gleichen Effekt erzielen können? Sie sehen daraus, daß TßK Werkzeuge bereitstellt, die lückenlos das Aufgabengebiet des Satzes abdecken. (Die beiden Methoden sind ja nicht gleichwertig, sie können nur für diese Aufgabe beide benutzt werden.!!)
A u f g a b e 23
Bitte setzen Sie auch noch die folgende Tabelle. Tabelle Nr.l Nr.2 Nr.3 Nr.4 Nr.5
Nr.l
Nr.2
*
*
*
*
*
*
*
• •
•
Nr .3 • • *
*
Nr.4 •
Nr.5 • •
*
*
*
• •
*
*
•
•
*
Nr.6 * *
Nach dem nächsten Abschnitt werden Sie hieraus die volle Abbildung 5.1 konstruieren können!
Kapitel 6. Mathematische Texte
79
Kapitel 6 Mathematische Texte
Das TßX-System ist auf den Satz mathematischer Texte vorbereitet. Eine große Anzahl von besonderen Schriftzeichen, die nur in der Mathematik verwendet werden, sind als Standard vorhanden. Besondere, in der Mathematik verwendete Strukturen werden standardmäßig in TgX unterstützt. So sind besondere Verfahren vorhanden, die das Schreiben von Gleichungen und Theoremen unterstützen. Jederzeit kann auf solche Gleichungen und Theoreme als Referenz wieder zugegriffen werden. Die Behandlung in diesem Skript soll aber etwas eingeschränkt werden. Zum einen soll das Skript auch für solche Anwender lesbar sein, die Bezüge zur höheren Mathematik nicht nach vollziehen können. Zum anderen ist die Flexibilität von Tf^X gerade auf dem mathematischen Sektor so hoch, daß bei vollständiger Behandlung der Rahmen dieses Buches gesprengt würde. Das wird auch dadurch erhellt, daß es eine spezielle Realisierung von T^X gibt, die sich allein mit dem Satz von mathematisch-technischen Texten befaßt. Aus diesem Grunde beschränkt sich dieses Skript auf die Darstellung folgender Sachverhalte. Subskripte und Superskripte Brüche und Wurzeln Gleichungen Summen mit Summenzeichen Vertikal ausgerichtete Strukturen
6.1
Verarbeitungsarten in TfeX (processing mode)
Wenn TfeX Text übersetzt, dann liegen eine von drei Verarbeitungsarten vor. paragraph mode Paragraph mode ist die normale Verarbeitungsart. Dieser Text ist in paragraph mode geschrieben. Tf}X betrachtet den Quelltext als eine Folge
80
6.2. Das mathematische environment
mathematical mode
LR mode
6.2
von Worten in Sätzen. Diese Folge wird in Zeilen, Absätze (Paragraphen) und Seiten umgebrochen, In dieser Verarbeitungsart bearbeitet Tg^X mathematischen Text. Text wird als mathematisch erkannt, wenn dieser innerhalb eines mathematical environment steht (mathematische environments siehe nächsten Abschnitt). In diesem Falle wird der Quelltext als eine Folge von Symbolen interpretiert. Leerzeichen bleiben unberücksichtigt. Z.B. werden Zeichenkombinationen 'i s' als das Produkt is geschrieben und 'i+s' als i -)- s. (Man beachte, daß hier also zusätzlicher Leer-Raum um das Zeichen ' + ' eingefügt wurde. Dieser mode verarbeitet L(eft) (to) R(ight). Der Quelltext wird als Folge von Worten und Leerzeichen aufgefaßt. Jedoch wird niemals ein Zeilenumbruch durchgeführt. Die Verarbeitungsrichtung ist fortlaufend von links nach rechts. Niemals wird eine neue Zeile begonnen. Diese Verarbeitungsart wird in einem später zu behandelnden Makro (mbox) verwendet. Hierdurch ist eine Methode vorhanden, innerhalb von mathematical mode Texte in der im paragraph mode definierten Schrift zu setzen.
Das mathematische environment
Um im Text festzulegen, daß es sich um Mathematik-Satz handelt, sind mehrere environments möglich. Sind im Text nur kleine mathematische Teile (wie z.B. Größen mit Indizes) eingeschlossen, dann wird das environment $
$
verwendet. Der Mathematik-Satz wird in $ eingeschlossen. Für mathematische Textteile, die im Mathematik-Satz erstellt werden sollen, ist als environment \(
\)
vorzusehen. Hier handelt es sich um mathematischen Satz, der inmitten von anderem Text auftritt. Die Schriftgröße ist so gewählt, daß der mathematische Satz in der Größe zum umgebenden Text paßt. Der gesetzte Text wird in \ ( und \ ) eingeschlossen. Für unnumerierte Textteile, die im Mathematik-Satz erstellt werden sollen, ist als environment
Kapitel 6. Mathematische Texte
81
\] vorzusehen. Hier handelt es sich um mathematischen Satz, der von anderem Text getrennt auftritt. Der Satz geschieht in einer anderen Schriftgröße. Die Schriftgröße muß nicht im Rahmen des Zeilenabstands des umgebenden Textes passen. Der gesetzte Text wird in \ [ und \J eingeschlossen. Eine numerierte Gleichung wird durch das 'environment equation' erzielt. Die Numerierung der Gleichungen geschieht automatisch vom System. Es ist jederzeit möglich, auf die Gleichungen und ihre Nummern Bezug zu nehmen. Das environment wird durch \ b e g i n { e q u a t ion}
\end{equation} beschrieben. Die Gleichungsnummern stehen rechts. Will man die Gleichungsnummern links haben, so muß man in den Optionen leqno schreiben. Ein report könnte dann also durch \documentstyle[llpt,leqno]{report} beschrieben werden.
6.3
Subskripte und Superskripte
Subskripte sind tiefgestellte Ziffern, Buchstaben oder Sonderzeichen oder Kombinationen hieraus. Superskripte sind hochgestellte Ziffern, Buchstaben oder Sonderzeichen oder Kombinationen hieraus. Um sicherzustellen, daß Subskripte bzw. Superskripte vom System erkannt werden können, ist ein mathematisches environment zu wählen. Wir benutzen in diesem Abschnitt stets das environment $ $, aber selbstverständlich werden Subskripte und Superskripte vom System auch erkannt, wenn das 'environment \ [ . . . \ ] ' oder das 'environment \ ( . . . \ ) ' oder das 'environment equation' gewählt wurde. Subskript
Voraussetzung ist, daß eines der mathematischen environments vorliegt. Das Subskript wird dadurch angegeben, daß ein Zeichen _ gegeben wird. Das Subskript selbst wird dann in O eingeschlossen.
82
6.4. Brüche Schreibt man also: $x_-Cl}$ so wird x\ gesetzt. Es können als Subskript auch arithmetische Ausdrücke gesetzt werden. Schreibt man: $x_{i+j+3}$, so erhält man
Superskript
6.4
Voraussetzung ist, daß eines der mathematischen environments vorliegt. Das Superskript wird dadurch angegeben, daß ein Zeichen " gegeben wird. Das Superskript selbst wird dann in {> eingeschlossen. Schreibt man also: $x~{l}$ so wird x 1 gesetzt. Es können als Subskript auch arithmetische Ausdrücke gesetzt werden. Schreibt man: $x"{i+j+3}$, so erhält man xi+j+3.
Brüche
Für die Schreibweise von Brüchen oder gebrochen rationalen Funktionen ist das Makro \frac{zaehler>{nenner> vorhanden. Voraussetzung für die Anwendung ist wiederum, daß dieses Makro nur in einem mathematischen environment benutzt werden kann. Im Text kann z.B. ein echter Bruch | in der Form $\frac{l}{2}$ geschrieben werden. Will man ganze Formeln schreiben, so kann man z.B. \begin{quote} \[ z = \ i r a c { x * 2 + y"2H2x + 5}
\]
\endiquote>
schreiben. Man erhält dann _ x2 + y2 * 2x + 5 Hinweis f ü r den Satz: Wenn in einem Text Brüche vorkommen, ist es zweckmäßig, diese durch das 'environment \ [ . . . \ ] ' aufgetrennten Zeilen zu setzen. Würde man den obigen Bruch inmitten von Text setzen, dann würde man etwa den folgenden Satz erzielen. Anfang des Textes Anfang des Textes .... Und es entsteht z = ^x+s a u s ^en °ben gemachten Angaben. Dabei ist noch zu berücksichtigen, daß .z.B. durch \ n e s l i n e eine Zeile begonnen werden muß, damit N d o t i i l l wirksam wird, wie im folgenden: Ende des Textes Ende des Textes.
83
Kapitel 6. Mathematische Texte
Dieses Beispiel macht deutlich, daß bei normalem mathematischen Satz Formeln stets außerhalb des normalen Satzes gesetzt werden sollten, da sonst die Lesbarkeit stark beeinträchtigt wird. Aufgabe 24
Bitte schreiben Sie folgenden Text. (a + 6)2 = a 2 + 2a 6 + 62
ist eine der wichtigsten Formeln aus der Mathematik. Für Ihr Alter ist es aber auch wichtig, daß Sie wissen, daß eine Rente nach n Jahren einen Endwert
besitzt, wenn r die jährliche Einzahlung und p der Prozentsatz und q = 1+ ist. Zur Darstellung von Wurzeln ist ebenfalls ein sehr bequemes Makro vorhanden. Es lautet \sqrt{radikand} Schreibt man zum Beispiel \ [ a + b = \ s q r t { a ' { 2 } + 2ab + b " { 2 » \ ] so erhält man die folgende Darstellung
a + b=
6.5
\/ d2 + 2ab + b2
'environment equation'
Alle Darstellungen, die bis jetzt genannt worden sind, lassen sich auch innerhalb des 'environment equation' setzen. Es wird geschrieben Die beiden Gleichungen \begin{equation} (a + b)"{2> = a~{2> + 2ab + b*{2> \end{equat ion> und \begin{equation> a + b = \sqrt{a~{2> + 2ab + b ' { 2 » \end{equation> sind gleichwertig.
84
6.6. Summen mit Summenzeichen
Hierfür erhält man den folgenden Satz. Die beiden Gleichungen (a + b)2 =a2
+ 2ab + b2
(6.1)
62
(6.2)
und a + b = \J a? +
2 ab
+
sind gleichwertig. Wie man sieht, sind die Gleichungen jetzt rechts numeriert. Die erste Nummer bedeutet dabei das Kapitel, die zweite die Nummer der Gleichung innerhalb des Kapitels. Es wird im nächsten Kapitel gezeigt werden, wie man sich im Text auf diese Gleichungs-Nummern beziehen kann.
6.6
Summen mit Summenzeichen
In der höheren Mathematik wird zur Abkürzung der Schreibweise für Summen ein Summenzeichen mit einer bestimmten Bedeutung benutzt. So kann man dann schreiben. n ai
+Q2 + • • • + a n = i=1
Um diese Gleichung schreiben zu können, sind noch zwei Definitionen nötig. 1. \ l d o t s erzeugt "Fortsetzungs"-Punkte, die soviel bedeuten wie 'es geht so weiter bis' 2. \sum_-[ u n t e n } ' { o b e n } erzeugt ein Summenzeichen oben
E
unten
wobei ersichtlich 'unten' den Text enthalten muß, der unter das Summenzeichen zu schreiben ist, und 'oben' den Text, der über das Summenzeichen zu schreiben ist.
6.7
Vertikal ausgerichtete Strukturen - array
Nicht nur in der Mathematik ist es häufig erwünscht, bestimmte Texte vertikal ausgerichtet auszugeben. Hierfür ist in T^X das environment array
85
Kapitel 6. Mathematische Texte
vorhanden. Hiermit kann ein array (=Bereich) vertikal ausgerichtet gesetzt werden. Das 'environment array' hat einen Parameter, der dem Parameter aus dem 'environment tabular' entspricht. Die Zahl der Unterparameter entspricht genau der Anzahl der Spalten des Arrays. Für jeden Unterparameter sind folgende Eintragungen möglich. r
Unterpaiameter =
zu schreiben. Ein array-Element kann ein 'environment tabular' sein. Dieses arbeitet dann wie eine mbox. (Der mode innerhalb des 'environment tabular' ist paragraph mode.) Das 'environment array' wird verwendet, wenn erreicht werden soll, daß z.B. linke Seiten oder rechte Seiten von Gleichungen senkrecht untereinander stehen. Beispiel: Schreibt man \( \begin{arrayMll} a+bft=\sqrt{a-{2}+2ab+b-{2}}\\ (a+b)*{2>*=a*{2>+2ab+b-{2> \end{array} \) so ist damit sichergestellt, daß die ' = ' untereinanderstehen. a + b
(a + 6)
2
= y/a2 + 2ab + b2 = a 2 + 2a6 + b2
86
6.8. Klammern als Strukturelemente
Ist ein Element von einem array ein 'environment tabular', dann werden Einzelelemente in der Höhe zentriert gesetzt. Dies erläutert folgendes Beispiel \( \begin{array}{ll> Einzelzeile* \begin{tabular}{I1IcI> Erstens* l.ZeileW Zweitens* 2.Zeile\\ Drittens* 3.Zeile \end{tabular> \end{array> \) Dies führt nämlich zu Einzelzeile
Erstens Zweitens Drittens
1.Zeile 2.Zeile 3.Zeile
Man beachte hierbei, daß 'Einzelzeile' im mathematical mode, die Tabelle aber im paragraph mode gesetzt wird. Wollte man Einzelzeile auch im paragraph mode setzen, dann ist \mbox{Einzelzeile} zu schreiben.
6.8
K l a m m e r n als Strukturelemente Klammern Command \overbrace{element> \underbrace-Celement}
Name Uberklammer Unterklammer geschweifte Klammer auf
\left\{{element>
geschweifte Klammer zu
{element}\right\}
Klammer auf
\leit({element}
Klammer zu
{element}\right)
Wirkung /
*
*
(
Abbildung 6.1: Klammern Häufig kommt es vor, daß Klammern oder andere graphische Zeichen benutzt werden sollen, um gewissen Zusammenhänge zu verdeutlichen. Hierbei wird zunächst an die Symbole Abb. 6.1 Seite 86 gedacht.
Kapitel 6. Mathematische Texte
87
Für die Anwendung werden noch folgende Hinweise gegeben. 1. Die Verwendung von Klammern dieser strukturierenden Art setzt immer ein mathematisches Environment voraus. Dieses wird in folgender Reihenfolge geschrieben. 1.1 Environment-Anfang ($ oder \ ( oder \ [ ) 1.2 \ l e i t gefolgt von einem Symbol für die zu verwendende Klammer (das könnte auch eine schließende Klammer sein!) 1.3 Daß Element (Text oder tabular environment oder array environment) 1.4 \ r i g h t gefolgt von einem Symbol für die zu verwendende Klammer (das könnte auch eine öffnende Klammer sein!) 1.5 Environment-Ende ($ oder \ ) oder \ ] ) 2. Es muß darauf geachtet werden, daß die Klammern, die mit left bzw. right geschrieben werden, paarweise auftreten. Falls man eine einzelne Klammer erzeugen möchte, ist bei einer left-Klammer stets $\right.$ hinter {element} zu schreiben, bei einer right-Klammer ist $\left.$ vor {element} zu schreiben. 3. Als Elemente können dabei 3.1 Tabellenelemente 3.2 ganze Tabellen 3.3 arrays Verwendung finden. 4. Es können alle mathematischen environments verwendet werden. Schreibt man
\[ \mbox{Unterparameter} = \ l e f t \ { \begin{tabular}{d} lftlinksb\ündige Elemente in d i e s e r SpalteW rftrechtsb\ündige Elemente i n d i e s e r SpalteW eftzentrierte Elemente in d i e s e r Spalte \ \ p\{brei\}*Box der Breite brei \end{tabular} \right.
\]
88
6.8. Klammern als Strukturelemente
so erhält man
Unterparameter =
so erhält
man
eine ...box, die mit der Graustufe grau (0(=weiß) - 100(=schwarz)) aus infmakro.tex
text...»
100
7.5. Basis-Makro put
unterlegt ist. Wir demonstrieren dies an dem Beispiel eines umrahmten Rechtecks. Schreibt man: \begin{picture}(300,100) \ p u t (100,50) {\framebox ( 50,20) {t e x t » \ p u t (100,50 ) {\gr{8H50H20}} \end{picture> so erhält man: y
text
50 —
I 150 Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. Soll ein Rechteck grau unterlegt werden, so sind stets zwei Zeilen zu schreiben. Die erste Zeile spezifiziert die Boxart und den Inhalt der Box, die zweite Zeile spezifiziert die Graustufe. In der zweiten Zeile müssen die Koordinaten sowie Breite und Länge des Rechtecks aus der ersten Zeile übernommen werden.
7.5.6
Gerade Linie
Für das Element gerade Linie gelten folgende Regeln. Wirkung Es soll eine gerade Linie vom Punkt P0 mit den Koordinaten (xQ, y0) in der Richtung (x,y) gezogen werden, deren Projektion in x-Richtung eine Länge von 1 hat. Bezugspunkt Der Anfangspunkt Po ist der Bezugspunkt. Makro Als Makro für die Darstellung der geraden Linie wird \ l i n e ( x , y ) { l } verwendet.
Kapitel 7. Graphik
101
Einschränkungen Hinsichtlich x und y gelten folgende Einschränkungen. x und y sind ganzzahlig. x und y unterliegen der Beschränkung —6 < x, y < 6. x und y dürfen keinen gemeinsamen Teiler besitzen. Für vertikale Linien ist x = 0,y = + 1 oder y = — 1 und 1 ist die Länge der Linie. y
Abbildung 7.3: Bedeutung von Richtung (x,y) und Länge (1)
Die Koordinaten für den Anfangspunkt, die Richtung und die Projektion der Länge bestimmen die Koordinaten für den Endpunkt wie folgt. Po und (x, y) sowie l
— ( z 0i yo)
der Anfangspunkt die Richtung die Länge der Projektion
dann ist x\
= xa + l
yi
= j/o + £1/
und P\ = (xi, yi) ist der Endpunkt. Die Abbildung 7.3 auf Seite 101 veranschaulicht die Bedeutung der Parameter x,y,l. An einem Beispiel sei dies noch einmal erläutert. Der Anfangspunkt sei (80,20) die Richtung (3,4) und die Länge sei 60. Die Richtung ist zulässig, denn beide Zahlen liegen zwischen 1 und 6 und außerdem sind die Zahlen 3 und 4 teilerfremd.
102
7.5. Basis-Makro put
Dann ist also gemäß den getroffenen Vereinbarungen über die Bezeichnungen: x0 yo x
= 80 =20 =3
y
=4
l
=60
Setzt man diese Größen in die obigen Formeln ein, so erhält man: *i Vi
= 140 = 100
Der Endpunkt hat also die Koordinaten (140,100). LAT^X verwendet eine 'Schrift', um die Geraden darzustellen; Die Geraden werden aus Elementen zusammengestellt, die kleine Geradenstücke sind; die in einer bestimmten Richtung geneigt sind. Nicht alle Richtungen sind in der Schrift implementiert. D.h. es können nicht alle Geraden zwischen 2 Punkten dargestellt werden. Dies ist eine Einschränkung, aber in allen praktisch wichtigen Fällen der Erstellung von Dokumenten ist das ausreichend. Schreibt man: \begin{picture}(300,130) \put(80,20){\line(3,4){60}} \end{picture> so erhält man y
14 . 80 Q . Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt.
Kapitel 7. Graphik A u f g a b e 29
7.5.7
103
Bitte setzen Sie mit Hilfe des picture environments den nachfolgend abgebildeten Rhombus. Folgende Hinweise für die Maße werden gegeben. Breite der Zeichnung 200 pt, Länge 100 pt. Die Punkte haben die Koordinaten 1 = (0,75) 2 = (100,150) 3 = (0,200) 4 = (100,0).
Vektoren — Pfeile
Für das Element Vektor (Pfeil) gelten folgende Regeln. Wirkung Es soll ein Vektor vom Punkt Po mit den Koordinaten (aro, yo) in der Richtung (x,y) gezogen werden, deren Projektion in x-Richtung eine Länge von 1 hat. Bezugspunkt Der Anfangspunkt PQ ist der Bezugspunkt. Makro Als Makro für die Darstellung der geraden Linie wird \ v e c t o r ( x , y ) { l > verwendet. E i n s c h r ä n k u n g e n Hinsichtlich x und y gelten folgende Einschränkungen. x und y sind ganzzahlig. x und y unterliegen der Beschränkung —6 < x < 6 und —4 < y < 4. x und y dürfen keinen gemeinsamen Teiler besitzen. Für vertikale Linien ist i = 0,y = +1 oder y = — 1 und 1 ist die Länge der Linie. Die Bedeutung der Parameter x,y,l kann der Abbildung 7.3 entnommen werden. Die Berechnungsformeln für die Koordinaten des Endpunkts gelten so wie bei der geraden Linie (siehe Seite 101). Schreibt man \begin{picture}(300,130) \ p u t (80,20) { \ v e c t o r (3,4 ) { 6 0 » \end{picture> so erhält man
104
7.5. Basis-Makro put
100
20Das Achsenkreuz, die gestrichelten t,mien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. Aufgabe 30 Bitte setzen Sie mit Hilfe des 'environment picture' die nachfolgend abgebildete Windrose. Folgende Hinweise für die Maße werden gegeben. Breite der Zeichnung 120 pt, Länge 120 pt. Die Endpunkte der Pfeile haben die Koordinaten 1 = (10,60) 2 = (60,110) 3 = (110,60) 4 = (60,10). N
W-
7.5.8
-O
Kreise
Für das Element Kreis gelten folgende Regeln. Wirkung Es soll an einer bestimmten Stelle des 'environment picture' ein Kreis mit vorgegebenem Durchmesser stehen. Bezugspunkt Der Mittelpunkt des Kreises ist der Bezugspunkt. E i n s c h r ä n k u n g e n Der Durchmesser des Kreises darf maximal 40 pt betragen. Makro Als Makro für die Darstellung des Kreises wird \circle{durchm> oder \circle*{durchm}
Kreis Kreisscheibe
105
Kapitel 7. Graphik verwendet. Hierbei bedeuten durchm
Durchmesser
Schreibt man \begin{picture>(300,100) \put ( 1 5 0 , BO) { \ c i r c l e { 2 0 » \end{picture)so erhält man
y
©
50 —
150 Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung eingebracht, sie werden durch das environment nicht erzeugt. Wird anstelle von circle circle* verwendet, so wird der Kreis ausgefüllt. Es entsteht dann
50 —
1 150 Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt.
7.5.9
Ovale
Unter Ovalen werden in T^X Figuren vestanden, die aus Rechtecken entstehen, wenn man die vertikalen Seiten des Rechtecks durch Halbkreise ersetzt. Es entstehen dann Figuren der folgenden Gestalt.
106
7.5. Basis-Makro put
Der Symmetrie-Mittelpunkt der Figur wird als Mittelpunkt definiert. Die Breite des umschriebenen Rechtsecks heißt Breite des Ovals, die Länge des umschriebenen Rechtecks heißt Länge des Ovals. Für das element Oval gelten folgende Regeln. Wirkung Es soll an einer bestimmten Stelle des 'environment picture' ein Oval mit vorgegebenem Durchmesser stehen. Bezugspunkt Der Mittelpunkt des Kreises ist der Bezugspunkt. Einschränkungen Der Durchmesser der begrenzenden Kreise darf maximal 40 pt betragen, deshalb darf die Länge des Ovals ebenfalls maximal 40 pt groß sein. Makro Als Makro für die Darstellung des Ovals wird \oval(breit e,laenge) verwendet. Hierbei bedeuten breite laenge
Breite des umschriebenen Rechtecks Länge des umschriebenen Rechtecks
Schreibt man \begin{picture}(300,100) \put(150,50){\oval(60,20)> \end{picture} so erhält man y
GZ) 150 Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. Eine Sonderform der Ovale gestattet auch noch, Rechtecke mit abgerundeten Ecken zu konstruieren. Dies wird dadurch erreicht, daß noch ein zusätzlicher Parameter verwendet wird. Dann hat das Oval-Makro die folgende Gestalt.
107
Kapitel 7. Graphik \oval(breite,laenge)[ort] Und für den ort gibt es folgende Festlegungen
_ ^ — ]
1 r t b
linke Ecke rechte Ecke obere Ecke untere Ecke'
Die möglichen Parameter sind lt, rt, lb, rb. Als Beispiel für eine mögliche Anwendung sei ein von vertikaler Richtung in horizontale Richtung abknickender Pfeil dargestellt, bei dem die Ecke abgerundet ist. Schreibt man \begin{picture}(320,100) \put(120,80){\1ine(0,-1){30}} \put(140,50){\oval(40,40)[lb]> \put(140,30){\vector(1,0){40}} \end{picture> so erhalt man
150 Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt.
7.6 7.6.1
Kurven Geometrische Lösung
In den Anwendungen kann es vorkommen, daß außer den graphischen Grundelementen (Gerade, Rechteck, Kreis, Pfeil, Oval) noch komplexere Abbildungen dargestellt werden sollen. Auch hierfür ist i n t e g r i e r t in TßX ein Werkzeug vorhanden. Beliebige Kurven können in T^X mit Hilfe von BEZIER-Polynomen (kubische Parabeln) approximiert dargestellt werden;
7.6. Kurven
108
Das Verfahren wird im folgenden im einzelnen erläutert. Es handelt sich hierbei um ein Verfahren, welches dem Verfahren nachgebildet ist, welches man verwendet, wenn Kurven mit einem Kurvenlineal von Hand gezeichnet werden sollen: 1. Man zerlegt die Kurve in mehrere Teile. 2. Man zeichnet mit dem Kurvenlineal ein Kurvenstück. Dabei sucht man eine geeignetes Stück des Kurvenlineals aus, welches in diesem Bereich den — meist durch einzelne Punkte bekannten — Kurvenverlauf approximiert. 3. Beim Übergang auf das nächste Kurvenstück achtet man darauf, daß die Kurven an der Ansatzstelle keinen Knick erhalten. (Die Tangente im Endpunkt eines Teilstücks sollte gleich der Tangente im Anfangspunkt des Folgestücks sein. Bei der Approximation mit BEZIER-Polynomen geht man ähnlich vor. 1. Man zerlegt die Kurve in mehrere Teile. Dabei soll die Kurve sich in dem Teilstück durch eine kubische Parabel approximieren lassen. 2. Die Kurve geht durch die Punkte Pa und Pe (Dies sind Anfangspunkt und Endpunkt des Teilstücks.) 3. Die Tangente im Anfangspunkt soll Pa - Pt sein, die Tangente im Endpunkt Pt - Pe. Dies entspricht dem Anlegen des richtigen Teils des Kurvenlineals. Der Sachverhalt ist in der folgenden Abbildung noch einmal erläutert. Die Kurve hat als Anfangspunkt Pa und als Endpunkt Pt. Die Anfangstangente ist die 45°-Linie. Die Tangente im Endpunkt ist eine Senkrechte. Die beiden Geraden schneiden sich in Pt. Sei Pa = (0,0) und Pt = (100,0) so ist die Tangente im Anfangspunkt y-x und die Tangente im Endpunkt i = 100
Der Schnittpunkt der beiden Tangenten ist also Pt = (100,100)
Kapitel 7. Graphik
109
Abbildung 7.4: Approximation durch BEZIER-Polynome
7.6.2
Lösung in T£X
Die Lösung in T£X ist außerordentlich einfach. Soweit das möglich ist, wurden die Operationen durch einfach anzuwendende Makros unterstützt. 1. Es muß dafür gesorgt werden, daß die Option 'bezier.sty' verwendet wird. Dies geschieht im documentstyle durch \documentstyle[bezier]{ } Hierbei ist für ' ' die jeweilige Stilart einzusetzen, (bezier.sty läßt sich in jeder Stilart verwenden.) Diese Technik ist im M j r X standardmäßig vorgesehen. 2. Es muß ein 'picture environment' verwendet werden. 3. Die Rinktion lautet: \ b e z i e r { a n z a h l } ( x a , y a ) ( i t , j/,)(:c e ,y e ) Hierbei gilt: anzahl (xi, y t )
= =
Anzahl der Punkte Koordinaten des Punktes Fi, i =
a,t,e
Die Kurven werden durch eine Aneinanderreihung von Punkten erzeugt. 'anzahl' gibt die Anzahl der verwendeten Punkte für das jeweilige Teilstück an. Man sollte eine Anzahl von ca. 100 Punkte per inch verwenden.
7.6. Kurven
110
7.6.3
Anwendungsbeispiel
In diesem Abschnitt soll nun als Anwendungsbeispiel die folgende Abbildung erzeugt werden. Die Figur wurde ausgewählt, um zu zeigen, wie das Verfahren arbeitet, wenn etwas komplexere Kurven darzustellen sind.
Abbildung 7.5: Darzustellende Abbildung Die Grauunterlegung wurde lediglich gewählt, um die Größe der Abbildung und ihre Einmischung in das gesamte Dokument zu demonstrieren. Die Gesamtgröße beträgt lOOpt x lOOpt. 1. Schritt Im ersten Schritt findet die Aufteilung der Gesamtkurve in Teilstücke statt. Die so eingezeichneten Punkte markieren die Teilstücke. 3 Teilstücke werden betreichtet. Wir befassen uns wegen der Symmetrie der Kurve zunächst nur mit dem linken Teil der Kurve. Die Anfangs- bzw. Endpunkte der Teilstücke haben folgende Koordinaten (alle Angaben in pt) ( x i , y i ) = (50,0) (x 2 ,y 2 ) = (0,75) (*s,lfe) = (25,100) (x4,y4) = (50,75) 2. Schritt In diesem Schritt werden hintereinander die Teilstücke bearbeitet. Im zweiten Schritt werden die Teilstücke bearbeitet. Wir bearbeiten das 1. Teilstück. Die Punkte haben nun die folgenden Koordinaten ( x a , y a ) = (50,0) (xt,yt) = (0,50) (xe,ye) = (0,75)
Kapitel 7. Graphik
111 Im zweiten Schritt werden die Teilstücke bearbeitet. Wir bearbeiten das 2. Teilstück. Die Punkte haben nun die folgenden Koordinaten (xa, ya) — (0,75) ( * „ yt) = (0,100) (« e , ye) = (25,100)
Im zweiten Schritt werden die Teilstücke bearbeitet. Wir bearbeiten das 3. Teilstück. Die Punkte haben nun die folgenden Koordinaten ( x a , y a ) = (25,100) (zuyt) = (45,100) (xe,ye) = (50,75)
Die geometrischen Überlegungen sind damit abgeschlossen. Alle Koordinaten für Punkte sind bestimmt. 3. Schritt Schreibt man also: \begin{center} \begin{picture>(100,100) \bezier{400}(50,0)(0,50)(0,75) \bezier{100}(0,75)(0,100)(25,100) \bezier{100}(25,100)(45,100)(50,75) \end{picture> \end{center> so erhält man:
112
7.7. Zusammenfassung
Damit ist die eine Hälfte der Darstellung zu Ende. Will man die Darstellung für die andere Hälfte durchführen, braucht man die gesamte Rechnung nicht zu wiederholen. Da x = 50 die Symmetrielinie ist, werden alle Punkte folgendermaßen transformiert. y> X{ Aufgabe 3 1
7.7
= =
Vi 50 — Xi
Bitte führen Sie die Transformationen durch und zeichnen Sie nun die Darstellung Abbildung 7.5.
Zusammenfassung
Die in LAT^X enthaltenen graphischen Elemente reichen völlig aus, um die in üblichen Dokumentationen anfallenden Graphiken darstellen zu können. Wir werden im nächsten Kapitel sehen, daß die Schreibweise noch ganz erheblich vereinfacht werden kann, wenn in einem eingeschränkten Bereich graphische Darstellungen gewünscht werden. In diesem Falle kann man durch Schaffen von Makros sehr schlagkräftige Werkzeuge jeweils problemangepaßt erzeugen. Selbstverständlich reichen diese Hilfsmittel nicht aus, wenn man in einem Bereich der Technik eine Dokumentation erstellen muß, die im wesentlichen aus technischen Zeichnungen und graphischen Darstellungen besteht. Dies gilt auch, wenn in mathematischen Abhandlungen Funktionsdarstellungen gewünscht sind. Für beide Anwendungsfalle empfiehlt sich dann das folgende Vorgehen. Man verwende ein getrenntes Softwarepaket zum Erzeugen der Zeichnungen mit hohen Anforderungen an die Graphikfähigkeit. Die einzige Bedingung für die Auswahl eines solchen Softwarepaketes besteht dann darin, daß als Ergebnis ein dvi-file erzeugt wird. Wir werden im Kapitel 'Schnittstellen von T^X zu anderen Systemen' sehen, daß hier sehr einfache Möglichkeiten bestehen, diese Ergebnisse in T^X zu verarbeiten.
Kapitel 8. Spezielle Graphik für EDV-Anwendungen*
113
Kapitel 8 Spezielle Graphik für EDV-Anwendungen*
8.1
Ziel und verwendete Methodik
In der EDV werden spezielle Symbole verwendet, um Programmablaufpläne zu erstellen. Für dieses Aufgabengebiet wurden von Informatika spezielle Makros*) entwickelt, die die Erstellung von solchen Programmablaufplänen sehr erleichtern. Die verwendete Methodik zeigt auch, daß es immer möglich ist, T^X auf eine ganz spezielle Anwendung vorzubereiten. Hierzu ist es nur notwendig, eine entsprechend bequeme Schreibweise für den Quelltext festzulegen und die nötigen Makros zu entwickeln. Es soll hiermit auch an einem Beispiel gezeigt werden, daß T^X umso mehr flexibel einsatzfähig wird, je größer die Anzahl der entwickelten Makros ist.
8.2
Tool-Box
Für die Lösung des beschriebenen Problems wurden die folgenden einzelnen Rechtecke durch Makros erzeugt. Die Namen der Makros stehen jeweils in den einzelnen Bildchen aufgeführt. (Dies ist auch gleichzeitig die Referenz zu dem weiteren Text, der die Anwendung noch weiter erläutern soll.) Das Prinzip der Erstellung von Programmablaufplänen ist nun sehr einfach. Der zu erstellende Programmablaufplan ist in Zeilen und Spalten aufzuteilen. Hierdurch entstehen Rechtecke. Diese Rechtecke sind (von unten nach oben) durch Zeilen-Nummern (von 0 beginnend) und (von links nach rechts) durch Spaltennummern (von 0 beginnend) identifiziert. Der Anwender legt folgende Daten fest. 1. Zeicheneinheit (unitlength) 2. Anzahl der Spalten des Programmablaufplans *)Makropaket p a p . t e x von I n f o r m a t i k a
114
8.3. Erzeugung von Programm-Ablaufplänen
Abbildung 8.1: "Tool-Kasten" für PAP 3. Anzahl der Zeilen des Programmablaufplans 4. Für jedes Unter-Rechteck (Bildchen) Name des Symbols (des Makros) Text, der eingesetzt werden soll Zusatzangaben (z.B. bei papabfr)
8.3
Erzeugung von Programm-Ablaufplänen
In diesem Abschnitt werden die einzelnen Schritte, die zur Erzeugung eines Programmablaufplans notwendig sind, genauer erläutert. Im einzelnen sind das:
Kapitel 8. Spezielle Graphik für EDV-Anwendungen*
115
0,4
1,4
2,4
0,3
1,3
2,3
0,2
1,2
2,2
0,1
1,1
2,1
0,0
1,0
2,0
Abbildung 8.2: Grundmuster eines P A P 1. Festlegung der unitlength 2. Erzeugung der Grundstruktur (wieviel Zeilen, Spalten?) 3. Erzeugung des Makros bpap 4. Eintragung der einzelnen Makros in die Grundstruktur
8.3.1
Festlegung von unitlength
Aus der Anzahl der Spalten und Zeilen ist die Längeneinheit unitlength zu bestimmen. Die Längeneinheit ist dabei so zu wählen, daß Anzahl Spalten x unitlength
< 28pt
ausfallen muß, um die Textbreite nicht zu überschreiten. Sind 3 Spalten vorgesehen, dann folgt hieraus, daß 3 x unitlength
< 28pt
Setzt man u n i t l e n g t h = 6 . 7 5 p t , so ist diese Forderung erfüllt.
8.3. Erzeugung von Programm-Ablaufplänen
116
8.3.2
Erzeugung Grundstruktur
Zunächst werden aus dem Konzept die Anzahl Zeilen und die Anzahl Spalten für den Programmablaufplan festgelegt. Für einen Programmablaufplan mit 5 Zeilen und 3 Spalten erhält man das Grundmuster 8.2 auf Seite 115. Die Beschriftungen der Kästchen sind jeweils Zeilen-Nummer, Spalten-Nummer.
8.3.3
'environment bpap' und 'environment epap'
Die Graphik eines Programmablaufplans wird durch das Makro \bpap eingeleitet. Das Makro hat zwei Parameter. Der erste Parameter ist die Anzahl der Spalten, der zweite die Anzahl der Zeilen. Hierbei ist zu beachten, daß stets Anzahl Spalten x unitlength < 28pt ausfallen muß, um die Textbreite nicht zu überschreiten. Das environment wird durch \epap abgeschlossen. Hieraus ergibt sich folgender Grundaufbau. \bpap{Anzahl SpaltenM Anzahl Zeilen}
Nepap
8.3.4
Makros für die Elemente
Die Erzeugung des Programmablaufplans geschieht nun elementweise. Jedes Element erhält als Hauptparameter die Zuweisung der Zeilen und Spalten gemäß der Festlegung im Grundmuster 8.2 Seite 115. Uber die Art des Elements entscheidet der Element-Name, der auch der Makro-Name ist. 8.3.4.1
Sequenz — papsequ Name des Elements papsequ Anzahl Parameter 3 Format \papsequ{Zeile}{Spalte}{text} Element
1 text
Kapitel 8. Spezielle Graphik für EDV-Anwendungen*
117
Der Text kann zweizeilig geschrieben werden. In diesem Falle sind die beiden Zeilen durch \ \ zu trennen. Die Zeilen werden dann einzeln links-rechtszentriert. Eingang und Ausgang sind oben bzw. unten, (vgl. auch papwsequ).
8.3.4.2
Sequenz — papwsequ
Name des Elements Anzahl Parameter Format
papwsequ 3 \papwsequ{Zeile}{Spalte}{text}
Element text
Der Text kann zweizeilig geschrieben werden. In diesem Falle sind die beiden Zeilen durch \ \ zu trennen. Die Zeilen werden dann einzeln links-rechtszentriert. Eingang und Ausgang sind links bzw. rechts ('w' = waagerecht), (vgl. auch papsequ). Die Länge der Ein- bzw. Ausgänge sind so gestaltet, daß auch mehrere Rechtecke papwsequ von links nach rechts aneinandergekettet werden können.
8.3.4.3
Eingabe — papea
Name des Elements Anzahl Parameter Format Element
papea 3 \papea{Zeile}{Spalte}{text}
1 text
Der rechte Ausgang wird für Ende-Bedingungen benutzt.
8.3.4.4
Eingabe/Ausgabe — papOea
8.3. Erzeugung von Programm-Ablaufplänen
118
Name des Elements Anzahl Parameter Format
papOea 3 \papOea{Zeile}{Spalte}{text}
i
Element
text
Es ist kein Ausgang für Ende-Bedingung vorgesehen. Hierfür soll papea verwendet werden. 8.3.4.5
Abfrage — papabfr
Name des Elements Anzahl Parameter Format
papabfr 5 \papabfr{Zeile}{Spalte}{unt.}{re.}{text}
Element
In den Parametern rechts bzw. unten werden die Texte (z.B. j, J, N, n) angegeben, die an dem rechten bzw. unteren Ausgang angebracht werden. Die Ausgänge sind rechts und unten, (vgl. auch papliunt) 8.3.4.6
Abfrage — papliunt
Name des Elements Anzahl Parameter Format
papliunt 5 \ p a p l i u n t {Zeile} {Spalte} {unt.}{li.}{text}
Element
In den Parametern links bzw. unten werden die Texte (z.B. j, J, N, n) angegeben, die an dem linken bzw. unteren Ausgang angebracht werden. Die Ausgänge sind links und unten, (vgl. auch papabfr)
Kapitel 8. Spezielle Graphik für EDV-Anwendungen* 8.3.4.7
119
Programm-Anfang — papanf Name des Elements Anzahl Parameter
papanf 3
Format
\papanf{Zeile}{Spalte}{text}
Element
(
T
)
Dieses Symbol sollte lediglich am Programmanfang oder am Anfang einer Unterprogramms verwendet werden. 8.3.4.8
P r o g r a m m - E n d e — papend Name des Elements Anzahl Parameter
papend 3
Format
\papend{Zeile}{Spalte}{text}
Element
(
I
text
)
Dieses Symbol sollte nur am Ende eines Programms oder am Ende eines Unterprogramms (dann mit der Eintragung RETURN) verwendet werden. 8.3.4.9
Programmteil-Anfang — paptanf Name des Elements Anzahl Parameter
paptanf 3
Format
\paptani{Zeile}{Spalte}{nr}
Element
Dieses Symbol bezeichnet eine Eingangsschnittstelle für einen TeilprogrammEingang nach unten.
8.3. Erzeugung von Programm-Ablaufplänen
120
8.3.4.10
Programmteil-Ende — paptend Name des Elements paptend Anzahl Parameter 3 Format \paptend{Zeile}{Spalte}{nr} Element
è>
Dieses Symbol bezeichnet eine Eingangsschnittstelle für einen TeilprogrammAusgang von oben. 8.3.4.11
Konnektor Eingang — papein Name des Elements Anzahl Parameter
papein 3
Format
\papein{Zeile}{Spalte}{nr}
Element
Es handelt sich um einen Teilprogramm-Eingang von links. Die Identifikation des Symbols, vor dem der Einsprung erfolgen soll, sei Zeile z und Spalte s. Der Konnektor papein erhält dann ebenfalls als Zeile z und als Spalte s. 8.3.4.12
Konnektor Ausgang — papaus Name des Elements Anzahl Parameter
papaus 3
Format
\papaus{Zeile}{Spalte}{nr}
Element •©
Es handelt sich um einen Teilprogramm-Ausgang nach rechts. Die Identifikation des Symbols, vor dem der Einsprung erfolgen soll, sei Zeile z und Spalte s. Der Konnektor papein erhält dann ebenfalls als Zeile z und als Spalte s.
Kapitel 8. Spezielle Graphik für EDV-Anwendungen* 8.3.4.13
horizontale Verbindung — paphor Name des Elements Anzahl Parameter
paphor 2
Format
\paph.or {Zeile} {Spalte}
Element
8.3.4.14
vertikale Verbindung — papver Name des Elements Anzahl Parameter
papver 2
Format
\papver{Zeile}{Spalte}
Element
8.3.4.15
horizontal-vertikale Ecke — paphver Name des Elements Anzahl Parameter
paphver 2
Format
\paphver{Zeile}{Spalte}
Element
8.3.4.16
horizontal(links)-vertikale Ecke — paphlver Name des Elements Anzahl Parameter Format Element
paphlver 2 \paphlver{Zeile}{Spalte}
121
8.4. Anwendungsbeispiel
122 8.3.4.17
vertikal-horizontale Ecke - papvhor Name des Elements Anzahl Parameter Format
papvhor 2 \papvhor{Zeile}{Spalte}
Element
8.3.4.18
horizontale Verbindung — papchor Name des Elements Anzahl Parameter
papchor 2
Format
\papclior{Zeile}{Spalte}
Element
Die hier aufgeführten Makros wurden von der Informatika GmbH Hamburg entwickelt. Sie werden in einem — von infmakro.tex getrennten — Makropaket pap.tex zusammengestellt. Dieses Makropaket kann in der Präambel durch \input{pap> aufgerufen werden. Die Trennung der beiden Makropakete er^ folgte, um infmakro.tex ohne pap.tex laden zu können. Dieses Makropaket ist ein Beispiel für die Methodik von T^jX. Für sehr viele Strukturen sind bequeme Schreibhilfen (Makros) im Standard-T^X vorhanden. Diese werden noch durch Makros aus LAT^X ergänzt. Wenn aber in einem Arbeitsgebiet -— so wie hier bei der Erstellung von Programmablaufplänen — spezielle Strukturen vorkommen, dann müssen auch entsprechende Werkzeuge (Makros) konstruiert werden: Dies ist allerdings eine Anforderung an optimale Arbeitsplanung.
8.4
Anwendungsbeispiel
Dieses Anwendungsbeispiel stellt einen Programmablaufplan für einen einfachen Gruppenwechsel mit dieser Methodik dar. Der Programmablaufplan liege als Skizze vor. Er soll mit TgjX gesetzt werden. Aus der Skizze ist zu entnehmen, daß die Grundstruktur
Kapitel 8. Spezielle Graphik für EDV-Anwendungen*
123
3 Spalten und 9 Zeilen haben wird. Als Maßeinheit wird unitlength = 6.25pt gewählt. Damit ist die in 8.3.1 angegebene Forderung mit 3 x unitlength = 18.75 pt < 28pt erfüllt. Nun werden die Symbole den einzelnen Rechtecken des Grundmusters zugewiesen. Dies ist sehr einfach, wenn man vorher auf der Skizze die einzelnen Zeilen von unten beginnend von 0 bis 8 numeriert und von links beginnend die Spalten von 0 bis 2. Damit entsteht dann das folgende Dokument. \ b e g i n { i i g u r e } Cht] \ s c r i p t s i z e \bpap{3>{9> \ p a p a n f { 8 H 0 H P r o g r a n u n - S t a r t } \pap0ea{7>{0>{Er\öifnen> \papsequ-C6H0MSchalter e i n } \papea{5}{0}{Einlesen S a t z } \papein{5}{0}{4} \papabfr{4H0HnHj}{Schalter ein} \papabf r { 3 } { 0 } { n H j HGruppenw.} \papein{2}{0}{3} \papsequ{2}{0HEinzelverarb.} \paptend{lH0M4} \paptanf{8HlHl} \pap0ea{7}{l}{Abschlu\ss } \papend{6}{l}{Programm-Ende} \papaus{5}{lHl} \paphor{4}{l} \paphver{3}{l} \papsequ{2}-Cl}{Gmppen-Verarb.} \papsequ{l}{l}{Vorb.n.Gruppe} \paptend{0}{l}{3} \paphver{4}{2} \ p a p s e q u { 3 } { 2 } { S c h a l t e r aus} \papver{2}{2} \ p a p c h o r { 2 } { l } \epap \end{iigure}
Man beachte auch, daß sich dieser Programmablaufplan sehr bequem ändern läßt, was bei konventionell erstellten Programmablaufplänen j a gerade nicht gilt.
124
8.4. Anwendungsbeispiel
Abb.8.3 Programmablaufplan Gruppenwechsel
Kapitel 9. Organisation von Buchsatz
125
Kapitel 9 Organisation von Buchsatz
9.1
Ubersicht
Die Forderung nach möglichst großer Übersicht betrifft zunächst das gesamte Erzeugnis. Um Übersichtlichkeit zu erreichen, werden im Buchsatz eine Reihe von Hilfsmitteln eingesetzt, die sämtlich unter TßX unterstützt werden. Titelseiten Inhaltsverzeichnis Schlagwortregister (Index) Referenzen Rückverweis mit Angabe der Seite Rückverweis mit Angabe der Abbildungsnummer Fußnoten Diese Techniken sollen in diesem Kapitel dargestellt werden. Bei der Produktion eines Buches treten aber auch Produktionsprobleme auf. Insbesondere wird es notwendig, das gesamte Dokument in mehrere Teile aufzuteilen, um besser Korrekturen und Abänderungen vornehmen zu können, ohne jedesmal das gesamte Dokument — manchmal mehr als 100 Seiten — zu bearbeiten. Hierbei sollte erwähnt werden, daß die Bearbeitungszeit (=Ubersetzungszeit) selbstverständlich proportional zur Anzahl von zu erzeugenden Buchseiten ist. Auch der benötigte Hauptspeicherplatz steigt mit der Anzahl der zu bearbeitenden Seiten — eigentlich besser: mit der Anzahl der unterschiedlichen Strukturen. Letztere nehmen aber in der Regel mit der Anzahl der Seiten des Dokuments zu, so daß auch hierdurch die Notwendigkeit gegeben sein kann, das Dokument aufzuteilen. Auch diese Produktionstechniken sollen in diesem Kapitel dargestellt werden.
9.2. Titelseiten
126
9.2
Titelseiten
Am Anfang eines großen Dokuments werden sogenannte Titelseiten benötigt. Diese werden dem Dokument unnumeriert vorangestellt. Für diese Aufgabe gibt es in TfcjX einen modifizierbaren Standard. Der Vorteil der Benutzung ist vor allen Dingen darin zu sehen, daß dann aufwendige Layout-Betrachtungen entfallen können. Zur Erzeugung einer oder mehrerer Titelseiten stehen Makros zur Verfügung. \title{text}
Es wird 'text' als Titel verwendet. Als Markierung von Zeilenenden kann \\ verwendet werden.
\author{name}
Es wird 'name' als Name des Autors verwendet. Als Markierung von Zeilenenden kann \\ verwendet werden.
\date{datum}
Es wird 'datum' als Datum verwendet. Hier kann auch eine Jahreszahl eingetragen werden. Wenn keine Eintragung erfolgt, wird automatisch das Datum (TT.Monat.19JJ) der Übersetzung des Dokuments eingesetzt.
titlepage environment
Durch das environment \begin{titlepage> text . . . . \end{titlepage> wird stets eine neue Seite produziert. Innerhalb des environments sind alle Strukturen, die in diesem Buch beschrieben wurden, zugelassen. Der Anwender legt Inhalt und Layout dieser Seite(n) selbst fest.
\maketitle
9.3
Dieser Command generiert die Titelseite. Es wird vorausgesetzt, daß vorher alle Parameter, die oben angegeben sind, besetzt worden sind. Falls das titlepage environment verwendet wird, dann ist auch dieses noch vor den Command \maketitle zu plazieren.
Inhaltsverzeichnis
Der Command \tableofcontents
Kapitel 9. Organisation von Buchsatz
127
produziert ein Inhaltsverzeichnis. Im einzelnen werden durch diesen Command folgende Funktionen ausgeführt. 1. Es wird eine Datei datei.toc erzeugt. (datei= Name der zu bearbeitenden Datei). Hierin wird alle Information abgespeichert, die nötig ist, ein Inhaltsverzeichnis zu produzieren. 2. Alte Inhaltsverzeichnisse werden bei dieser Bearbeitung aufdatiert. Es wird stets das letzte Inhaltsverzeichnis gespeichert. In das Inhaltsverzeichnis werden alle Hierarchie-Überschriften (part, chapter, section, subsection, subsubsection) zusammen mit der Seiten-Nummer aufgenommen. Durch \ s e t count e r { t ocnumdepth}{nr)kann festgelegt werden, ob eine Hierarchie-Uberschrift in das Inhaltsverzeichnis aufgenommen wird. Die Nummer nr zählt von part her. Hat nr den Wert 3, dann werden nur die Uberschriften bis zu section-Uberschrift in das Inhaltsverzeichnis aufgenommen. Der Command \ t a b l e o f c o n t e n t s steht am Ende des Documents. Will man die Seiten-Numerierung neu beginnen lassen, dann kann z.B. durch einen Command \pagenumbering{art} die Schriftart festgelegt werden. Als Schriftarten sind zugelassen _ —
(
arabic Roman alph Alph
Arabische Ziffern Römische Ziffern Kleinbuchstaben Großbuchstaben
Der Command \pagentimbering beginnt die Seitennumerierung von vorn. Es wird häufig die Methode benutzt, das Inhaltsverzeichnis durch römische Ziffern zu numerieren. Dann wird am Ende des Programms geschrieben \pagenumbering{Roman} \tableofcontents Die Seiten werden dann auch am Ende des Dokuments produziert. Normalerweise möchte man das Inhaltsverzeichnis vorn haben. Das ist dann j a aber jederzeit durch Umlegen der Seiten möglich, da die Seiten unabhängig vom übrigen Dokument numeriert sind. Auf die gleiche Weise erhält man auch eine Liste der Abbildungen. (Die Abbildungen erhalten eine Nummer. Diese ist eine Nummer mit Punkt. Vor dem
9.4. Titelseite
128
Punkt steht die Kapitel-Nummer, hinter dem Punkt eine fortlaufende Nummer der Abbildung innerhalb des Kapitels. Diese Nummer wird automatisch bei Anwendung des Commands \ c a p t i o n erzeugt.) Der Command zur Erzeugung der Liste der Abbildungen lautet \listofiigures Hierdurch wird eine Datei datei.lof erzeugt. Diese wird wie oben für die datei.toc für das Inhaltsverzeichnis bearbeitet. Auch hier kann durch einen Command \pagenumbering die Seitennumerierung neu begonnen werden, man kann aber auch die Seitennumerierung für das Inhaltsverzeichnis weiterverwenden, wenn die Liste der Abbildungen hinter das Inhaltsverzeichnis gelegt wird.
9.4
Titelseite
9.5
Schlagwortregister — Index
In der Präambel ist in allen T^X-Dokumenten, in denen ein Index erzeugt werden soll \makeindex zu schreiben. Hierdurch wird erreicht, daß bei jedem Eintrag, den der Anwender macht, ein Satz in die Datei datei.idx geschrieben wird. Der Anwender nimmt direkten Einfluß darauf, welcher Begriff in das Schlagwortregister gestellt wird. An jeder beliebigen Stelle kann vom Anwender geschrieben werden \index{begriff > Dies hat die Wirkung, daß dieser Begriff zusammen mit der Seiten-Nummer in eine Datei datei.idx gestellt wird. An jeder beliebigen Stelle kann vom Anwender aber auch geschrieben werden \hindex{begriff> Dies hat die Wirkung, daß dieser Begriff zusammen mit der Seiten-Nummer in Fettdruck in die Datei datei.idx gestellt wird. Die Datei datei.idx ist eine ASCII-Datei. Direkte Weiterverarbeitungen werden allerdings von T^X nicht angeboten. Informatika hat deshalb ein Verfahren entwickelt, welches sehr einfach auf allen Betriebssystemen realisiert werden kann. Das Verfahren geht in 3 Schritten vor.
Kapitel 9. Organisation von Buchsatz datei.idx
129
Für jeden Indexeintrag stellt T^X einen Dateisatz der Form \indexentry{BegrifiHSeiten-HununerMart} ab. Da bei jedem Eintrag des Anwenders ein solcher Satz erzeugt wird, ist die Reihenfolge zunächst die der Einträge. (Hierbei ist art = 1, falls es sich um einen über \ i n d e x { b e g r i f f } erzeugten Eintrag handelt, sonst ist art = 2, wenn der Eintrag über \hindex erzeugt wurde.) (Die indexentrys stehen also in der Reihenfolge aufsteigender Seiten-Nummern und danach nach Zeilen-Nummer aufsteigend.) Die Seitennummern sind überdies linksbündig ohne Leerzeichen geschrieben.
tri
Das Programm tri (=transformation index) liest jeden einzelnen Satz und ersetzt die Seiten-Nummer durch eine 4-stellige rechtsbündig geschriebene Seiten-Nummer, die mit führenden Leerzeichen aufgefüllt wird. Dadurch ist die Datei sortierfähig. Das Programm arbeitet als Filter. (Standard-Eingabe wird durch das Programm zu Standardausgabe.)
Sortieren
Die so entstandene Datei kann mit einem üblichen Sortierprogramm, wie es in jedem Betriebssystem vorhanden ist, (z.B. MS-DOS Programm SORT) sortiert werden. Die Ergebnisdatei muß texs.idx heißen.
index.tex
Die so entstandene Datei wird als Eingabedatei für das Satzprogramm index.tex verwendet, welches in TfjX geschrieben ist. Es wird ein zweispaltiger Index erzeugt.
9.6
Referenzen
Jederzeit kann der Anwender Referenzpunkte bilden. Dies geschieht mit dem Command \label{kennung} Hierbei ist kennung eindeutig zu verwenden. Schreibt man nun in dem Dokument \rei{kennung} so wird an dieser Stelle die hierarchische Nummer gesetzt, die der Stelle entspricht, wo \label{kennung> steht, also z.B. 5.4.3 für Kapitel 5, Abschnitt 4, Unterabschnitt 3. Schreibt man nun in dem Dokument \pageref{kennung}
130
9.7. Fußnoten
so wird an dieser Stelle die Seitennummer gesetzt, die der Stelle entspricht, wo \label{kemnmg} steht. Eine Besonderheit ist noch bei Abbildungen zu beachten. Steht der Command \label{kennung> etwa am Anfang eines 'environment figure', dann erhält man ebenfalls durch \ r ef{k ennung} die hierarchische Nummer, also z.B. 5.4.3 für Kapitel 5, Abschnitt 4, Unterabschnitt 3. Wird aber der Command \label{kennung} innerhalb eines Commands caption angewendet, dann wird durch \rei{kennung> die Nummer der Abbildung erzeugt, also 5.2 für die zweite Abbildung im Kapitel 5. Für diese Form ist der Command \ c a p t i o n folgendermaßen zu schreiben. \caption{\label{kennung> b i l d u n t e r s c h r i . i t }
9.7
Fußnoten
Fußnoten werden am Ende der Seite eingefügt. Hierdurch wird der Platz für den eigentlichen Text reduziert, (alle Seiten — auch solche mit Fußnoten — sind gleich lang.) Es sind zwei Verfahren vorgesehen.
9.7.1
Fußnoten werden durch '*)' gekennzeichnet*
In vielen Dokumenten werden Fußnoten*) so gekennzeichnet, daß lediglich ein '*' angebracht wird, wie das gerade hier geschehen ist. Dies erreicht man mit dem Makro \fussnote{
fussnotentext
}
Kommen mehrere Fußnoten auf einer Seite vor, dann werden diese zeilenweise mit einer immer höheren Anzahl von '*' gekennzeichnet. Die Anzahl beginnt auf jeder Seite wieder mit einem Stern.
9.7.2
Fußnoten werden numeriert
Fußnoten können aber auch numeriert werden. Die Numerierung geschieht dann im ganzen Dokument fortlaufend. Ein Beispiel dieser Art von Fußnoten sehen Sie auf dieser Seite1. Dies erreicht man mit dem Makro 1
Makro aus infmakro.tex Das ist ein Beispiel einer numerierten Fußnote
Kapitel 9. Organisation von Buchsatz \footnote{
131 iussnotentext
>
Kommen mehrere Fußnoten auf einer Seite vor, dann werden diese zeilenweise ausgegeben. Die Numerierung wird automatisch fortgeschrieben.
9.8
Bearbeitung langer Dokumente
TßX unterstützt die Verarbeitung langer Dokumente. Dokumente können gut in kleinere Teile aufgeteilt werden, wenn hierbei beachtet wird, daß die Teile von TEX stets so übersetzt werden, daß ein Teil des Dokuments stets auf einer neuen Seite beginnt. Da Kapitel aber stets auf einer neuen Seite — und zwar auf einer mit ungerader Seiten-Nummer — beginnen, ist eine Aufteilung eines Dokuments in Kapitel unproblematisch. Drei Commands unterstützen diese Aufteilung. input
Durch den Command \ i n p u t { d a t e i } wird dort, wo der Command plaziert wird, die Datei datei.tex eingelesen. Dieses Verfahren kann man verwenden, wenn z.B. Makros für einen bestimmten Verwendungszweck in getrennten Dateien gehalten werden und man nun in einem Programm die Auswahl aus mehreren dadurch trifft, daß man sie durch input einliest.
include
Durch den Command \ i n c l u d e { d a t e i } wird dort, wo der Command plaziert wird, die Datei datei.tex eingelesen. Insoweit unterscheidet sich dieser Command nicht von dem Command \ i n p u t { d a t e i } . Der entscheidende Unterschied besteht darin, daß der Einlese-Vorgang (und der Verarbeitungsvorgang) nur dann vorgenommen wird, wenn der Dateiname in einem Command \includeonly vorkommt.
includeonly
In der Präambel (hinter dem Command \documentstyle und noch vor dem Command \begin{document} wird der Command \ i n c l u d e o n l y { t e i l l , t e i l 2 , t e i l 3 , . . . } abgesetzt. Nur diejenigen Teile, die in dem Command aufgeführt sind, werden verarbeitet. Für alle anderen Teile des Dokuments werden die insoweit abgespeicherten Versionen verwendet.
Daraus ergibt sich, daß für große Dokumente eine spezielle Organisation verwendet werden muß. Es hat sich in der Praxis herausgestellt, daß es zweckmäßig ist, ein Hauptprogramm zu haben, in welchem die Steuerungen für die gesamte Produktion aufgehoben werden. Die Teile des Dokuments befinden sich in den getrennten Dateien. Das Hauptprogramm für die Steuerung dieses Buches wird im folgenden dargestellt.
132
9.8. Bearbeitung langer Dokumente
\documentstyle [bezier] {lehrbuch} \input{infmakro} \input{infpap> \makeindex \includeonly-CtexO, t e x l , t e x 2 , t e x 3 , t e x 4 , t e x 5 , t e x 6 , tex7,'/. tex8,tex9,texlO> \begin{document} \include{texO}
%
'/, T i t e l s e i t e n
\include{texl>
'/. Kapitel 1
\include{tex2> %
'/. Kapitel 2
\include{tex3>
'/. Kapitel 3
\include{tex4>
V. Kapitel 4
\include{tex5>
'/. Kapitel 5
\include{tex6>
'/, Kapitel 6
\include{tex7> X \include{tex8} ./.
'/. Kapitel 7 '/. Kapitel 8
\include{tex9>
'/, Kapitel 9
'/.
'/,
'/. '/. '/.
'/.
\include{texlO} '/. Kapitel X \nespage '/. \pagenumbering{Roman} '/, Ytableofcontents '/. \listoiligures '/. \end{document}
10 Neue S e i t e Numerierungsart Inhaltsverzeichnis L i s t e der Abbildungen
Man beachte, daß große Kapitel auch innerhalb des Kapitels unterteilt werden können. Allerdings kann das immer nur bei einer Seitengrenze geschehen, weil ein Modul stets mit einer neuen Seite beginnt
Kapitel 10. Schnittstellen von T^X zu anderen Systemen
133
Kapitel 10 Schnittstellen von T^jX zu anderen Systemen
10.1
Anforderungen
Die Einsatzmöglichkeit eines Systems wie TgX hängt in hohem Maße auch davon ab, welche Zusammenarbeit mit anderen Systemen möglich ist. Da andere Systeme — wie TgX — mit Eingabedaten arbeiten und Ausgabedaten erzeugen, wird es also nötig sein zu prüfen, welche Datenformate bzw. Dateiformate T^X verarbeiten kann, und welche Datenformate bzw. Dateiformate von T^X erzeugt werden können. Im Bereich der Verarbeitung von Zeichen sind überhaupt nur zwei Datenformate bzw. Dateiformate von Belang. 1. ASCII-Format (zeichenorientiertes Format — 256 Zeichen) 2. dvi-Format (Eingabeformat für Treiber der Endgeräte wie z.B. LaserDrucker oder Graphik-Bildschirm-Ausgabe) Wenn T^X also mit anderen System kommunizieren soll, dann muß es sowohl möglich sein, ASCII-Texte, die von anderen Systemen erzeugt wurden, in die Quelltexte aufzunehmen. Es muß aber auch möglich sein, zur Verarbeitungszeit von anderen Systemen erzeugte ASCII-Dateien satzweise zu verarbeiten. Ferner muß es möglich sein, die von anderen Systemen (Hardware oder Software) erzeugten dvi-Dateien so zu verarbeiten, daß diese in aus TgX erzeugte dvi-Dateien an der richtigen Stelle in der richtigen Größe eingemischt werden, so daß am Ende ein komplettes Dokument entsteht. Diese Möglichkeiten hat T^X.
10.2
Verarbeiten von ASCII-Dateien
Daß T^jX ASCII-Dateien in die Quelltexte einmischen kann, ist bei diesem System unproblematisch, da es sich selbst um ein ASCII-System handelt. Jederzeit können auf anderen Systemen vorbereitete Texte in die Quelltexte
134
10.2. Verarbeiten von ASCII-Dateien
eingemischt werden. Die Umwandlung von TßX bearbeitet dann die Gesamtdateien. Die Strukturierung der Texte — soweit sie durch T^X-Commands beeinflußt werden soll, muß dann allerdings nachträglich noch erfolgen. Soll TßX auch ASCII-Daten einlesen, dann muß der bisher bekannte Satz von Commands noch erweitert werden.
10.2.1
Die Commands \typein — \typeout
Diese beiden Commands stellen Bindeglieder von TgX zu Tastatur (\typein) und Bildschirm (\typeout) dar. Durch \ t y p e i n wird einer Variablen ein Wert zugewiesen. Der \typeinCommand hat folgendes Format: \typein[\variable]{prompt-text} Hierbei bedeuten: variable prompt-text Schreibt
Namen einer Variablen (Nur Zeichen zugelassen!) Text, der bei der Eingabe als Prompt verwendet wird
man:
\ t y p e i n [ \ n a m e ] { B i t t e Hainen eingeben:} Der Harne i s t \name. so erhält man während der Ubersetzung die Möglichkeit, einen Text unterschiedlich zu gestalten, je nachdem, welche Eingabe getätigt wurde. Der im Dokument enthaltene Text lautet jetzt also Der Name ist Meyer oder Der Name ist Müller je nachdem, welche Eingabe getätigt wurde. Dieser Command entfaltet aber seine eigentliche Stärke erst, wenn man bedenkt, daß TßX die Eingaben statt von der Tastatur auch über 'redirected input' über eine Datei erhalten kann. Lautet das Betriebssystem - Statement zur Umwandlung normalerweise tex programm wenn programm.tex den Quelltext enthält, so schreiben wir jetzt: tex programm < datei und stellen in die Datei 'datei', die eine ASCII-Datei ist, alle die Informationen, die wir sonst über die Tastatur eingeben würden. Wir wollen das an einem Beispiel Briefschreibung demonstrieren. Wir richten eine Datei 'datei' ein und bringen in diese — z.B. mit einem Editor — eine Adresse. Die Datei soll folgende Gestalt haben:
Kapitel 10. Schnittstellen von T^jX zu anderen Systemen Herrn Franz Xaver Grantner Regensburger Str. 112 8000 München Wir schreiben folgendes T^X-Programm. Einlesen Adresse \typein[\anrede]{Anrede:} \typein[\vorname]{Vorneune(n) \typein[\name]{Hame:> \typein[\strasse]{Stra\ss e:> \typein[\plzort]{Postleitzahl Ort:> Brieftext \anrede\newline \vorname\ \name\nesline \strasse\nevline \plzort\newline \vspace*{lcm> \hfill Freilasing, den 16. April 1988\newline \vspace*{lcm} Sehr geehrter Herr \name , zu unserem Bedauern müssen vir Ihnen leider mitteilen, da\ss\ wir den vorgesehenen Liefertermin für den von Ihnen bestellten \centerline{Kleiderschrank M16900} per 25. April 1988 nicht einhalten können. Wegen gro\ss em Arbeitsanfall in der Fabrik wird sich die Lieferzeit um 2 - 3 Wochen verzögern. Wir bitten Sie um Ihr Verständnis. \vspace{0.Scm> Mit freundlichem Gru\ss Möbelfabriken Meyer \t Sohn
Daraus entsteht:
135
10.2. Verarbeiten von ASCII-Dateien
136 Herrn Franz Xaver Grantner Regensburger Str. 18 8000 München
PYeilasing, den 16. April 1988
Sehr geehrter Herr Grantner, zu unserem Bedauern müssen wir Ihnen leider mitteilen, daß wir den vorgesehenen Liefertermin für den von Ihnen bestellten Kleiderschrank M16900 per 25. April 1988 nicht einhalten können. Wegen großem Arbeitsanfall in der Fabrik wird sich die Lieferzeit um 2 - 3 Wochen verzögern. Wir bitten Sie um Ihr Verständnis. Mit freundlichem Gruß Möbelfabriken Meyer & Sohn
Der Command Ytypeout kann benutzt werden, um Informationen während der Übersetzung an den Bildschirm auszugeben. Der Command hat das Format Ytypeout{ausgabe-text}
10.2.2
Mehrfachbriefe
Professionell einsatzfähig ist dieses Programm allerdings erst dann, wenn auf diese Weise Mehrfachbriefe geschrieben werden können. Hierzu sind allerdings noch 3 Commands nötig, um das erreichen zu können. 1. Zum einen braucht man einen Command zur Abwicklung einer Schleife (dies ist der loop-Command mit repeat) 2. Mit einer if-Abfrage ist zu prüfen, ob die Schleife noch weiterlaufen soll (if).
Kapitel 10. Schnittstellen von T£X zu anderen Systemen
137
3. Es wird eine Schleife ausgeführt solange eine Bedingung erfüllt ist. Dazu muß es möglich sein eine Konstante zu definieren (def). Definition einer K o n s t a n t e n In T[rX kann mein mit \def\variable{wert> einer alphanumerischen Konstanten 'variable' einen Wert zuweisen. Beispiel: Durch \abk{Makro aus infmakro.tex} ist der Variablen abk der Wert 'Makro aus infmakro.tex' zugewiesen. Man kann also die Definition von alpahnumerischen Konstanten zur Schreibvereinfachung verwenden.
Abfrage auf alphanumerische Konstante der Länge 1 Die if-Abfrage hat folgendes Format \ifx\variable\konstante
commands \ f i
Wenn die Variable 'variable' den Wert der Konstanten 'konstante' hat, dann werden die '.... commands ...' ausgeführt. Wenn dies nicht der Fall ist, wird nichts ausgeführt.
loop — repeat Eine Schleife wird durch den Command \ l o o p eingeleitet. Ihm folgen die Commands, die in der Schleife ausgeführt werden. Die Schleife wird durch den \ r e p e a t abgeschlossen. Dieser Command steuert über eine if-Abfrage ähnlich der obigen if-Abfrage, ob die Schleife noch weiter durchlaufen werden soll oder nicht. Die gesamte Schleife hat damit folgendes Format. \loop . . . Commands, d i e i n der . . . S c h l e i f e ausgeführt . . . «erden s o l l e n \ifx\variable\konstante \repeat Die Schleife wird solange ausgeführt, wie Variable = Konstante Wenn diese Bedingung nicht mehr gilt, wird die Schleife abgebrochen.
10.2. Verarbeiten von ASCII-Dateien
138
Bei Anwendung des loop-Commands ist aber zu beachten, daß die in loop - if-Abfrage eingeschlossenen Informationen ohne Absatz geschrieben werden müssen: Solange es sich um Commands handelt; ist dies keine Einschränkung. Wenn allerdings Texte geschrieben werden sollen, die dann ja auch Absätze erhalten, muß eine bestimmte Organisation angewendet werden; Man kann folgendermaßen vorgehen. 1. Der Text wird in ein tabular environment geschrieben; welches aus einer Spalte besteht, die mit p{} beschrieben ist. 2. Diese Tabelle wird mit def einer Variablen text zugewiesen. 3. Im loop - repeat wird als Statements für den Text eingefügt: \begin{tabularM«0p{\textwidth}«0} \text \end{tabular>
Ein P r o g r a m m zur Erzeugung von Mehrfachbriefen
Es wird mit
folgender Konzeption gearbeitet. 1. Die Adressen sind in einer Datei gespeichert. Die Adressen enthalten zeilenweise folgende Daten: 1. 2. 3. 4. 5. 6.
Zeile Zeile Zeile Zeile Zeile Zeile
Anrede Vorname Name Straße und Hausnummer Postleitzahl und Ort Kennzeichen '1* oder '0'
2. Alle Adressen enthalten in der 6. Zeile eine '1'. Als Datei-Ende enthält die Datei eine 'Stopp-Adresse', dies ist eine gültige Adresse mit dem Kennzeichen '0'. Das Programm wird nun in einzelnen Programmteilen dargestellt. Den einzelnen Programmteilen sind die entsprechenden Erklärungen vorausgestellt. Die Konstante 1 wird als '\keins' definiert. Der Text wird in ein spezielles tabular environment gestellt. Normalerweise sind in einem tabular environment je Spalte Zwischenräume vorgesehen. Diese betragen am Anfang und
Kapitel 10. Schnittstellen von T^X zu anderen Systemen
139
am Ende der Spalte 6pt. Durch Eintragung von C{\hspace{xxpt}} kann dieser Zwischenraum verändert werden. Macht man keine Eintragung, dann ist dieser Zwischenraum Opt. In der folgenden Eintragung des tabular environment ist also die Tabellenbreite gleich der vollen Textbreite. Der Brieftext wird in einer Tabelle gespeichert. Er kann durch Angabe von \ t e x t aufgerufen werden. \def\keins{l> \def\text{\begin{tabularMe{}p{\textvidth}cO} zu unserem Bedauern müssen v i r Ihnen l e i d e r m i t t e i l e n , d a \ s s \ v i r den vorgesehenen L i e f e r t e r m i n f ü r den von Ihnen b e s t e l l t e n \ c e n t e r l i n e { K l e i d e r s c h r a n k M16900} per 25. A p r i l 1988 n i c h t e i n h a l t e n können. Wegen g r o \ s s em A r b e i t s a n f a l l in der Fabrik v i r d s i c h d i e L i e f e r z e i t um 2 - 3 Vochen verzögern. Wir b i t t e n Sie um I h r V e r s t ä n d n i s . \vspace{0.5cm} Mit freundlichem Gru\ss Möbelfabriken Meyer \ft Sohn \end{tabular> Hier beginnt die Schleife. Am Anfang der Schleife wird die Adresse und das Kennzeichen eingelesen. \loop \typein[\anrede]{> \typein[\vorname]0 \typein[\name]{> \ t y p e i n [ \ s t r a s s e ] { > \typein[\plzort]{> \typein[\kennz]{> Falls das Kennzeichen = 1 ist, wird die Adresse und der Briefkopf sowie der Brief ausgegeben und es wird eine neue Seite begonnen. Die if-Abfrage endet bei \ f i Man beachte hierbei, daß die \vspace-Commands immer erst hinter dem nächsten \ n e v l i n e wirksam werden. Es wird nun wieder eine Tabelle gebildet, die so breit ist wie die Textbreite. In diese wird der Brieftext gestellt. \ifx\kennz\keins \anrede\nevline \vomame\ \name\nevline \strasse\nevline \vspace{2cm> \plzort\nevline
140
10.2. Verarbeiten von ASCII-Dateien
\vspace{lcm> \ h i i l l F r e i l a s i n g , den 16. A p r i l 1 9 8 8 \ n e w l i n e \vspace{0.5cm> Sehr g e e h r t e r H e r r \name , \ n e H l i n e \begin{tabularH«Op{\textwidth}«{}} \text \end{tabular} \newpage\fi Falls das Kennzeichen = 1 ist (dann handelt es sich um eine gültige Adresse) wird die Schleife weiter durchlaufen. Sonst ist das Programm zu Ende. \ifz\kennz\keins \repeat Dies ist ein Prinzip-Programm. In der Anwendung können die Erwartungen höher sein. Auch diese kann T^X erfüllen. Die Informatika GmbH, Hamburg, hat ein solches Programm entwickelt.
10.2.3
Programmsystem ITMS*
Das Programmsystem ITMS ^ I n t e g r i e r t e s T e x t M a n a g e m e n t System) ist ein Produkt der Informatika GmbH, Hamburg. Wir beschreiben im folgenden den Teilaspekt Schreiben von Mehrfachbriefen. Die Adressen werden in einer Daten verwaltet.*) Hier sind Adreßmanipulationen möglich: • Verändern der Adressaten in der Firma • Übernahme der Adressen aus anderen Adreßdateien • Vergabe von Codes zum Zusammenstellen von Gruppen Aus der Datenbank wird durch einen speziellen Menuepunkt ein Adreßauszug — z.B. nach Codes — gemacht. Bei der Bearbeitung muß der Bearbeiter noch folgende Informationen eingeben: 1. Name der Datei, in der sich der Brieftext befindet 2. Betreff des Briefes Das Adressenauswahlprogramm erzeugt dann eine Datei. Die Zeilen 1 und 2 der Datei sind folgendermaßen verwendet. 1. Zeile 2. Zeile
Name der Brieftext-Datei Betreff des Briefes
*)Das Programmsystem arbeitet mit einer Datenbank informix und mit TßX.
Kapitel 10. Schnittstellen von T^X zu anderen Systemen
141
Für jede Adresse befinden sich in der Datei 7 Zeilen. Diese haben folgenden Inhalt. 1. 2. 3. 4. 5. 6. 7.
Zeile Zeile Zeile Zeile Zeile Zeile Zeile
Anrede Name Branche 1 Branche 2 Straße und Hausnummer Postleitzahl und Ort Briefanrede
Die Stopp-Adresse wird hier daran erkannt, daß die 6. Zeile leer ist. Das Auszugsprogramm stellt hinter alle Adressen noch einmal die letzte Adresse, die allerdings dann in der 6. Zeile keine Eintragung enthält. Das Programm erwartet, daß der Brieftext in der angegebenen Datei steht. Für die Entwicklung des Brieftextes sind keine Einschränkungen gemacht. Am Ende dieser Datei muß \brieiende geschrieben werden. Für die Schreibung der Briefe ist eine spezielle Stilart entwickelt worden. Diese sorgt dafür, daß 1. erste und folgende Seiten mit unterschiedlichem Seiten-Layout geschrieben werden, 2. das Seiten-Layout auf den bestehenden Firmenkopfbogen abgestimmt ist, 3. das Briefdatum automatisch verwaltet wird, 4. auf den Folgeseiten die Seiten-Nummer und das Datum des Schreibens wiederholt werden, 5. Der Firmen-Name und die Zeile 'Mit freundlichem Gruß' im Block geschrieben werden. Folgende Abwicklung ist vorgesehen: 1. Erstellen des Brieftextes mit IfeX. 2. Auszug der Adressen aus der Datenbank (Erfassung des Dateinamens vom Brieftext und vom Betreff des Briefes). 3. Umsetzen der Umlaute in T^X-Umlaute. (Hierfür wird ein spezielles Programm eingesetzt.)
142
10.3. Verarbeiten von dvi-files
4. Erzeugen der Briefe durch ein Programm mit redirected input, wobei die eingezogene Datei die Datei der ausgezogenen Adressen mit den zwei Zusatzzeilen ist. Eine Abbildung eines solchen Briefes in verkleinerter Form stellt die Abbildung 10.1 auf Seite 142 dar.
Firma B.G. Teubner
GmbH
Geschäft sleitung Industriestr. IS 7000 S t u t t g a r t
SO
H i m b u r g , d e n 17. April Betrifft : Seminar
Professioneller Buchsats
Sehr geehrte Damen und
mit
1991
TfeX
Herren,
die K o m m u n i k a t i o n innerhalb u n d außerhalb des U n t e r n e h m e n s w i r d z u n e h m e n d w i c h t i g . H e u t e p r ä s e n t i e r e n w i r I h n e n ein S e m i n a r ü b e r d a s p r o f e s s i o n e l l e S & t z s y s t e m TfcX a l s E i n s t i e g i n d i e s e s e h r w i r t s c h a f t l i c h e M e t h o d e für den Satz von Bedienungsanleitungen Fachbüchern und -aufsitzen Hauszeitungen Werbebriefen S i e k ö n n e n d i e D o k u m e n t e auf e i n e m L a s e r - D r u c k e r a u s g e b e n . W e n n S i e a b e r h ö h e r e Q u a l i t ä t s a n s p r ü c h e h a b e n , d a n n k ö n n e n Sie — o h n e V e r ä n d e r u n g d e r Software oder der zentralen D a t e n v e r a r b e i t u n g — die A u s g a b e auch auf einem Foto-Belichter erzeugen. Die S o f t w a r e i s t l a u f f a h i g a u f j e d e m M S - D O S - R e c h n e r — u n d a u f m e h r a l s 15 UNIX-Rechnern. N a m h a f t e V e r l a g e s e t z e n diese S o f t w a r e e i n , u m F a c h b ü c h e r s e h r w i r t s c h a f t l i c h zu p r o d u z i e r e n . ( D e r A u t o r p r o d u z i e r t d e n S a t z b e i m Schreiben!) E i n e n A u s z u g a u s e i n e m Fachbuch als L e i s t u n g s b e s c h r e i b u n g von TfeX u n d e i n e S e m i n a r b e s c h r e i b u n g f ü g e n w i r d i e s e m S c h r e i b e n b e i . M i t f r e u n d l i c h e m Grufi Informatika GmbH
Schumann
Abbildung 10.1: Brief aus ITMS
10.3
Verarbeiten von dvi-files
Tf]X kann nicht nur mit konventionellen Systemen über ASCII-Dateien kommunizieren, sondern es können auch dvi-files aus anderen Systemen in die Tf?X-Dokumente eingemischt werden.
Kapitel 10. Schnittstellen von T£X zu anderen Systemen
10.3.1
143
Einmischen von Bildern
Um ein Bild der Breite 'breite' und der Höhe 'hoehe' an einer bestimmten Stelle einzumischen ist der Command \bild{dateiname}{grauMbreiteHhoehe} einzugeben. Dabei bedeuten die Parameter: dateiname grau breite hoehe
Name des dvi-files Graustufe (0 - 100) Breite des Bildes Höhe des Bildes
Dies soll an einem Beispiel demonstriert werden. Voraussetzung von allen Operationen ist, daß das einzumischende Bild als dvi-file v o r der Umwandlung des gesamten Dokuments zur Verfügung steht. Der eigentliche Vorgang des Einmischens wird von dem Treiber vorgenommen. TJrX hält nur den notwendigen Platz frei. Gegeben ist — als dvi-file — die Abbildung der Gauß'schen Normalverteilung. Das Bild hat eine Breite von 240pt und eine Höhe von 130pt. Die Datei hat den Namen bgauss.dvi. Das Bild soll mit einer Graustufe 8 unterlegt werden.Wir v e r w e n d e n die G r a u s t u f e n in diesem Abschnitt zur D e m o n s t r a t i o n der Größe des Bildes u n d seine Einpassung in das Dokument. Sie
schreiben:
\bild{bgaus s>{8>{240pt>{130pt> und
erhalten:
Das eingezogene Bild wird linksbündig verarbeitet. Selbstverständlich kann man dieses Bild auch zentrieren. Man schreibt dann:
144
10.3. Verarbeiten von dvi-files
\beginicenter} \bild{bgauss}{8H240ptHl30pt} \end{center> und erhält:
10.3.2
Erzeugen von dvi-files für Bilder
Die Erzeugung von Bildern, die z.B. mit Hilfe des bezier.sty erzeugt worden sind, haben eine hohe Umwandlungszeit. Aus diesem Grunde kann es durchaus sinnvoll sein, solche Bilder als dvi-files getrennt zu erzeugen. Dies verhindert auch in gewissen Fällen die Nachricht TgK capacity exceeded Um ein solches Bild zu erzeugen, ist folgende Form der Präambel zu wählen. \begin{documentstyle> [ \input{infmakro> \stbild{breiteHlaenge>
]{
>
Ybegin-Cdocument}
\end{document} Hierbei bedeuten breite und laenge die Breite und die Länge des Bildes. Es sollte dabei beachtet werden, daß in der Präambel exakt die Reihenfolge der Commands eingehalten wird, da \ s t b i l d ein Makro aus infmakro.tex ist. infmakro.tex muß also schon vorher existieren, bevor \ s t b i l d aufgerufen wird. Dies muß in jedem Fall noch in der Präambel geschehen. Das Bild der Gauß'schen Normalverteilung wird durch folgenden T^X-file erzeugt.
Kapitel 10. Schnittstellen von T^X zu anderen Systemen
145
\documentstyleilehrbuch} \input{makro} \stbild{130ptM240pt} \begin{document} \begin{picture>(240,130) \bezier{250>(0,0)(60,0)(80,72.59121) \bezier{250}(80,72.59121)(92.974424,119.68266)(100,119.68266) \bezier{250>(100,119.68266)(107.02558,119.68266)(120,72.5912) \bezier{250>(120,72.59121)(140,0)(200,0) \put(0,0){\vector(l,0){220» \put(225,0){x> \ p u t (100,0) { \ v e c t o r ( 0 , 1 ) { 1 3 0 » \put(103,125){y> \end{picture} \end{document>
10.3.3
Montage von zusätzlichen Texten
In vielen Anwendungen ist es notwendig, neben die Bilder noch Texte zu montieren. Bild und Text betrachten wir als Boxes (Rechtecke). Es kann nun gewünscht werden, daß die Texte neben dem Bild stehen und mit der oberen Bildkante beginnen. Es kann aber auch vorkommen, daß die Texte neben dem Bild zentriert (auf 'halber' Höhe) stehen oder daß die Texte mit der unteren Bildkante abschließen. Alle Fälle sind mit den bekannten Commands zu erreichen. Wir verwenden die Form des tabular environments mit p{} und setzen außerdem mit fiO vor jedem Parameter und hinter dem letzten alle Zwischenräume zwischen den Spalten auf Null. Als Grundparameter für die Bearbeitung sollte die Textbreite bekannt sein. In diesem Buch beträgt sie 330pt. Bild und Text gleicher Beginn oben Als Strukturelement wird ein tabular environment mit zwei Spalten verwendet. Schreibt
man:
\begin{tabular>{0Op{240pt}0{\lispace{5pt}}p{85pt}eO} \bild{bgaussH8M240ptHl30pt}ftHonnal Verteilung ( J . C . F . Gau\ss ) \ \ \end{tabular>
so erhält
man:
10.3. Verarbeiten von dvi-files
146 y
Normal — Verteilung (J.C.F. Gauß)
x Text auf mittlerer Hohe des Bildes Soll der Text auf mittlere Höhe des Bildes gesetzt werden, so kann man zwei tabular environments horizontal nebeneinandersetzen. Die Tabelle mit der geringeren Höhe wird dann immer zentriert gesetzt. Den Abstand zwischen den beiden Tabellen kann man entweder mit \ h i i l l erreichen oder man kann auch \hspace{..} verwenden. Schreibt
man:
\begin{tabular>{0{>p{240pt>«{» \bild{bgaussH8H240pt}{130pt}\\ \end{tabular> \hspace{5pt>
\begin{tabularHeOp{85pt}C{}} Normal Verteilung (J.C.F. Gau\ss )\\ \end{tabular} 50 erhält
man:
y
Normal — Verteilung (J.C.F. Gauß)
x Es sollte hier nicht untersucht werden, ob diese Anordnung sehr häufig gebraucht wird. Die Absicht war vielmehr zu zeigen, daß auch diese Positionierung grundsätzlich möglich ist.
Kapitel 10. Schnittstellen von T^X zu anderen Systemen
147
B i l d u n d T e x t gleiches E n d e u n t e n Um zu erreichen, daß Text und Bild unten gleich enden, ist noch ein zusätzliches environment, das environemnt bottom*), erforderlich. Es kann nur innerhalb eines tabular environments angewendet werden. Hier wird erreicht, daß der in das environment eingeschlossene Text auf den 'bottom' eine Tabelle gestellt wird, deren Länge in dem environment als Parameter angeben werden muß. Zur Realisierung der Positionierung kann dann eines der beiden vorgenannten Modelle verwendet werden. Es wird das Modell mit der Zentrierung verwendet. Diesmal legen wir \ h i i l zwischen die Tabellen und erreichen auf diese Weise, daß die volle Textbreite genutzt wird. Der Leerraum bleibt zwischen den Tabellen. Schreibt man: \begin{tabularM«Op{240pt}fl{}} \bild{bgauss}{8H240ptHl30pt}\\ \end{tabular> \hfil \begin{tabularM0{}p{85pt>0O} \begin{bottom}{130pt} HorVmal Ver\-tei\lung (J.C.F."Gau\ss) \end{bottom}\\ \end{tabular} Bitte beachten Sie dabei, daß das environment bottom als Parameter die Höhe der Box (130pt) benötigt. Durch diese Angabe ist es möglich, die Tabelle zunächst auf 130pt festzulegen und dann den Text a m unteren Ende zu positionieren, so erhält man:
Normal — Verteilung (J.C.F. Gauß) Allgemeinere Positionierungen von Bild u n d Text Es sind jetzt alle Werkzeuge aufgezählt, mit denen sich auch allgemeinere Positionierungen von Bildern und Text erzeugen lassen. Zum einen ist die Lage ''Makro aus infmakro.tex
148
10.4. Zusammenfassung
von Bild und Text nicht festgelegt (ebensogut könnte das Bild rechts stehen) zum anderen ist die Zahl der Boxes nicht beschränkt. Es muß lediglich darauf geachtet werden, daß die Textbreite nicht überschritten wird. In diesem Rahmen ist die Erzeugung von horizontalem Satz von mehreren Bildern und Texten unproblematisch.
10.4
Zusammenfassung
Es wurde demonstriert, wie kommunikativ T^X ist. Es kommuniziert praktisch mit allen Systemen, die Daten erzeugen. Damit eignet sich T^X auch als Ausgabe-System von Berichten aus komplexeren kaufmännischen Anwendungen. Die Berichte werden in ASCII geeignet erzeugt (Tabellen z.B. in der Form, wie sie von TßX direkt verarbeitet werden können) und dann von T^X weiterverarbeitet. Dies erspart erheblichen Programmieraufwand — weil das Auszählen von komplizierten Listen aufwendig ist — und sieht natürlich besser aus, zumal sich auch umfangreichere Listen auf DIN A4 besser ausgeben lassen. Da es sich bei dem Tj?X-System um ein ASCII-System handelt, können die TßX-Quelltexte auch von anderen Systemen, die ASCII-Dateien erzeugen können, selbst generiert werden. In diesem Bereich sind viele Anwendungen möglich, weil dann j a von einem Anwendungsfall zum anderen andere T^X-Programme erzeugt werden können. Dies steigert die Flexibilität noch einmal erheblich. 'IfcX ist ein kommunikatives Satzsystem mit der Möglichkeit des Einsatzes auch als komfortable Ausgabe für Berichte.
Teil 2
Quellentext
Kapitel 1. Ubersicht über Textbearbeitung
Kapitel 1 Ubersicht über Textbearbeitung
'/, '/. TEX Skript Kapitel 1
'/.
\input{pap} \chapter{Übersieht über Textbearbeitung} \section{Formen der Textbearbeitung} Im gesamten Bereich der Kommunikation spielen Texte eine entscheidende Rolle. Über Texte findet der gesamte Informationsaustausch zwischen Sender und Empfänger von Nachrichten statt. Texte stellen das Element in Informationssystemen dar. Für jede Art von Nachrichten findet eine Bearbeitung der Texte statt. Die Texte «erden so bearbeitet, daß Sender und Empfänger von Nachrichten optimal Informationen austauschen können. Hierzu ist es notwendig, die Texte so zu strukturieren, daß diese gut lesbar sind. Die Texte müssen so aufgebaut «erden, daß Mißverständnisse zwischen Sender und Empfänger weitgehend ausgeschaltet werden. Ybegin-fquote} {\em Es kommt nicht so sehr darauf an, daß Texte geometrisch gut gestaltet sind, sondern darauf, daß sie gut lesbar sind.} \end{quote> Es gibt viele Verfahren, wie man einen Text gut lesbar machen kann, wenn hierbei die Wahl der Sprache in die Optimierung mit einbezogen ist. Dieses Verfahren wird immer dann eingesetzt, wenn durch die Sprache Maschinen gesteuert werden sollen. Dies ist z.B. in der Datenverarbeitung der Fall. Hier soll ein Computer so gesteuert werden. In der Datenverarbeitung ist eine
151
152
Quelltext
Sprache, die keine Miß\-ver\-ständ\-nis\-se zuläßt, zwingende Voraussetzung, lur so ist eine Kommunikation mit dem Computer überhaupt möglich. Man erreicht eine mißverständnisfreie Kommunikation durch eine Reihe von Forderungen an die Sprache. \begin{itemize} \item {Die Sprache wird iür ein eingeschränktes Sachgebiet verwendet.} \item {Es werden nur wenige Sprachelemente ausgewählt.} \item {Die Sprache selbst wird formatisiert und strukturiert.} \end{itemize> In vielen Bereichen des täglichen Lebens, in denen Sender und Empfänger von Nachrichten kommunizieren, wird jedoch eine natürliche Sprache zur\linebreak[4] Kommunikation verwendet. Hier besteht die Aufgabe darin, die Texte so zu strukturieren, daß sie optimal lesbar sind. Die einzelnen Schritte der Erzeugung und Bearbeitung von Texten können mit Methoden der Datenverarbeitung unterstützt werden, wie das in Abb. \ref{unterst} erläutert wird. \begin{figure}[ht] \begin{center} \begin{tabular}{I1I1Ip{l.8in>I} \hline \multicolumn{3}{IcI}{Textbearbeitung}\\ \hline \hline Bearbeitung&HilfsmittelftBeschreibung \\ \hline Text-ErzeugungftEditorADer Text wird mit Hilfe einer Tastatur erzeugt.\\ \hline Text-Korrektur&Editorftlm Text können über die normale System-Tastatur Befehle erzeugt werden, welche Zeichen für Zeichen Einfügungen, Änderungen oder Löschungen gestatten. Zeilen können eingefügt und gelöscht werden. Gruppen von Zeilen können an andere Stellen kopiert oder verschoben werden. \\ \hline FormatierungftFormatiererftEine Strukturierung ist nur formal, d.h. im allgemeinen nur absatzweise möglich.\\ \hline Satztechnik&Software-System&Alle gebräuchlichen Schriftarten (Fonts), unterschiedliche Schriftgrö\ss en sowie satztechnische Methoden der Strukturierung unterstützen die gute Lesbarkeit des Textes.\\ \hline \end{tabular}
Kapitel 1. Ubersicht über Textbearbeitung \end{center} \caption{\label{unterst}Hilfsmittel} \end{figure} In neuerer Zeit sind Software-Werkzeuge auf den Markt gekommen, «eiche die satztechnische Bearbeitung von Texten ermöglichen. Hierbei soll unter 'satztechnischer Bearbeitung' verstanden «erden, daß Ybegin-Cenumerate}\item variable Seiten-Layouts möglich sind, \item Zeilen- und Seitenumbrüche automatisch durchgeführt «erden, \item unterschiedliche Schriftarten zur Verfügung stehen, \item einfache Strukturen (Einrückung, Aufzählung, Tabellen) erreicht «erden können, \item Inhaltsverzeichnis und Index automatisch erstellt «erden, \item einfache Graphik erstellt oder aus einem anderen System integriert «erden kann. \end{enumerate> Diese Software-Werkzeuge werden zusammen mit der hierfür notwendigen Hardware preislich so günstig angeboten, daß es möglich ist, alle Arbeits\-plät\-ze, die mit der Erstellung von Texten und deren satztechnischer Weiterbearbeitung befaßt sind, entsprechend auszustatten. Dies bedeutet auch, daß der Autor selbst mit solchen Werkzeugen arbeiten kann und muß. War es bisher notwendig, einen Text zu schreiben (vielleicht unter Benutzung eines üblichen Editors) und dann zu redigieren, um die entsprechende inhaltsgemäße Strukturierung zu erreichen, kann heute alles in einem Arbeitsgang geschehen. Es ist nun nicht mehr nötig, daß der Autor die Texte mit satztechnischen Markierungen versieht, sondern die satztechnischen Anweisungen werden beim Schreiben des Textes mit erzeugt. Dies hat den Vorteil, daß die satztechnischen Anweisungen zusammen mit dem Text entstehen, also zu einer Zeit, wenn der Autor mit den Strukturen der Kommunikation am besten vertraut ist. Inhalt und Struktur werden gemeinsam erdacht und bei Verwendung dieser Methode auch gemeinsam auf's Papier gebracht. Diese Art der Erzeugung von strukturierten Texten hat auch noch den Vorteil, daß routinemäßige Arbeiten wie
153
154 \begin {itemize} \item {Seiten-Formatierung} \item {Seiten-Numerierung} \item {Numerierung von Kapiteln und Abschnitten} \item {Silbentrennung} \item {Absatz-Formatierung} \end {itemize} automatisch vom System übernommen Verden. Dies erleichtert die Arbeit mit dem System erheblich. \section{Software-Werkzeuge} Editoren zur Bearbeitung von Texten sind in großer Anzahl am Markt vorhanden. Sehr bekannt sind \begin{itemize} \item{vi, der Standardeditor für UNIX-Systeme,} \index{vi} \item{Professional Editor für MS-DOS-Systeme,} \index{Professional Editor} \item{Wordstar 2000} \index{Wordstar} \end{itemize} Es wird im folgenden vorausgesetzt, daß ein Editor vorhanden ist, mit dem Texte, die aus ASCII-Zeichen aufgebaut sind, erzeugt und korrigiert werden können. Für die Lösung des Problems der Textbearbeitung gibt es auf dem Markt zwei grundsätzlich verschiedene Ansätze, die im folgenden Abschnitt genauer beschrieben Herden. \subsection{wysiwyg-Sy steine} \index{wysiwyg} Der Name ist eine ursprünglich witzig gemeinte Abkürzung aus dem Englischen. \begin{center} {\bf w}hat {\bf y}ou {Ybf s}ee {Ybf i}s, {\bf w}hat {\bf y}ou {\bf g}et \end{center} \begin{center} ''was Sie sehen, ist (das), was Sie bekommen'' \end{center} Der Text — besser: das Dokument — wird am Bildschirm entwickelt. Ein Abbild des Dokuments wird am Bildschirm erzeugt. Dieses Abbild entspricht dem endgültig erzeugten Dokument umso besser, je höher die Auflösung am Bildschirm ist. Das System ist tastaturorientiert. Die Steuerungen finden über die Tastatur statt. Der Vorteil dieser Systeme ist darin zu sehen, daß die Entwicklung des
Quelltext
Kapitel 1. Ubersicht über Textbearbeitung Dokuments an Bildschirm parallel verfolgt werden kann. Die durch die Tastatur erreichte Steuerung wird auch in der Textdatei als Markierung gespeichert. Diese systeminterne 'Markierung' bleibt auch beim Abspeichern der Datei erhalten. Dadurch ist sie auch beim Wiederaufruf der Datei vorhanden. Änderungen am Inhalt und an den 'Markierungen' der Datei sind beliebig möglich. Es werden alle satztechnischen Methoden unterstützt. Beispiele solcher Textbearbeitungssysteme sind \begin{itemize} \item{Ventura Publisher} \index{Ventura Publisher} \item{Page Maker} \index{Page Maker} \end{itemize> \sübsection{Systeme auf ASCII-Text-Basis} Systeme dieser Art arbeiten mit einer Steuersprache. Das Quelldokument besteht aus Steuersprache und Dokumententext. Die Steuersprache hat die Aufgabe, die Satztechnik zu steuern. Der Dokumententext enthält den eigentlichen Text des Dokuments. Befehle in der Steuersprache sind besonders gekennzeichnet. (Z.B. wird vereinbart, daß Befehle stets allein auf einer Zeile stehen müssen und als Kennzeichen einen vorangestellten Punkt (.) haben.) Diese Methode wird bei nroff und troff (Textbearbeitungssysteme von UNIX) verwendet. \newpage '/.erzwungener Seitenumbruch 28.03.90 Eine andere Methode besteht darin, alle Befehle (Commands) durch einen vorangestellten Schrägstrich ($ \backslash $) zu kennzeichnen. Dies ist die Methode von \TeX. Um aus den Quelldokumenten natürliche Dokumente zu erzeugen, ist ein Umwandlungsprozeß notwendig. Dies ist scheinbar ein Nachteil. Da aber die Quelldokumente zur Kontrolle des Inhaltes und der Struktur völlig ausreichen, ist diese Umwandlung nur selten erforderlich. Jetzt erweist sich der Hachteil als Vorteil, weil ohne jede Art von Umwandlung eine grobe Kontrolle des Geschriebenen jederzeit und an jeder Art von Bildschirm möglich ist. Beispiele solcher Textbearbeitungssysteme auf ASCII-Basis sind \begin{itemize} \item{nroff, das Textbearbeitungssystem von U¥IX} \index{nroff>
155
156
Quelltext
\item{troff, das Fotosatzsystem von UNIX} \index{troff} \item{\TeX, ein allgemeines System zum Satz von Büchern} \end{itemize} \sectioniUnterschiede der Textbearbeitungs-Systeme} Hat mein es mit der Auswahl von Textbearbeitungs-Systemen zu tun, dann ist auf keinen Fall allgemein zu sagen, daß eine der beiden Lösungsmethoden die bessere wäre. Viele Kriterien bestimmen die endgültige Wahl. Im folgenden Verden einige Kriterien genannt, die bei jeder Auswahl problem\-angepaßt untersucht werden müssen. \medskip {\parindent=3.Ocm \1 it em-CHardwar e} \wy-Systeme benötigen zur Erfüllung jeder Teilfunktion einen hochauflösenden Bildschirm an jedem Arbeitsplatz. Bei ASCII-Sy\-ste\-men ist dies nicht der Fall. M i t em{Schreiben} Bei \wy-Systemen (kann) muß die Darstellung des Textes kontrolliert werden. Dadurch sind \wy-Sys\-teme besser geeignet, kurze Dokumente, bei denen es entscheidend auf die Geometrie des Satzes ankommt, zu erzeugen. Für den Buchsatz, bei dem im wesentlichen die Formatierung, die Schriftart und die Schriftgröße festliegen, ist die über den Quelltext mögliche Kontrolle in jedem Falle ausreichend. \TeX\ führt auch eine genaue, digitale Kontrolle über alle Zeilenumbrüche durch. Die\-se werden absatzweise vom System automatisch vorgenommen. Venn dieser automatische Umbruch in Einzelfällen nicht gelingt, wird dies protokolliert. Das Protokoll ent\-hält dann eine Nachricht, aus der man z.B. unmittelbar erkennen kann, daß eine Zeile um 1.4 pt zu lang ist. Dies kann visuell auch bei Benutzung von hochauflösenden Bildschirmen nicht einfach festgestellt werden. '/, erzwungener Seitenumbruch 28.03.90 \newpage \1it em{Bedienung} Das ASCII-System ist leicht zu bedienen, weil keine anderen Tasten bedient werden müssen. Auch bei geringen Änderungen der Steuerungen von einem Absatz zum anderen ist das ASCII- System im Vorteil, weil dies
Kapitel 1. Ubersicht über Textbearbeitung durch ganz einfache Steuerbefehle mit wenigen Zeichen bewerkstelligt werden kann, während bei den \wy-Systemen spezielle Tasten oder Funktionen bedient werden müssen. \litem{Graphik)Bei komplexer Graphik insbesondere beim Freihandzeichnen sind die \wy-Systeme im Vorteil. Insbesondere, wenn die Systeme durch eine 'Maus' unterstützt werden, können hiermit schnell und sehr bequem Zeichnungen z.B. für Werbezwecke in Texte eingefügt werden. Für das Arbeiten mit einfacher Graphik (gerade Linien, Kreise, Rechtecke, Ovale, Darstellung von Funktionsverläufen), wie sie für den Einsatz in Fachbüchern notwendig ist, sind die ASCII-Systeme mit umfangreichen Makro-Bibliotheken ausgerü\-stet. Auch hierbei sind \wy-Systeme häufig überlegen. Die ASCII-Systeme gestatten aber in diesem Bereich auch eine hinreichend bequeme Handhabung. \litem-Cmath. Symbole} Hier entfalten die ASCII-Systeme ihre volle Flexibilität. Alle Arten von Zeichen und Darstellungen, die in mathematischen Texten gebraucht werden, werden in vollem Umfang unter\-stützt, während dies bei \wy-Sys\-te\-men nicht der Fall ist. Hier kann schon die Darstellung eines Doppelbruchs nur mit Schwierigkeiten möglich sein. \par> \section{Unterschiedliche Produktionsziele} Vor Beginn der Textbearbeitung und vor Beginn der Auswahl des zu benutzenden Software-Werkzeuges ist es notwendig, das Projektziel festzulegen. Es handelt sich um ein DV-unterstütztes Projekt. Hier muß immer vor der Auswahl der Werkzeuge fixiert werden, welches Ziel das Projekt haben soll. Im Falle der Textbearbeitung ist festzulegen, welche Produkte mit dem Werkzeug gefertigt werden sollen, und welche Sondereigenschaften hinsichtlich des Satzes das Dokument (Artikel, Buch, Reportage, Zeitungsartikel) haben soll. Es sind viele Projektziele denkbar. Einige Projektziele seien im folgenden genannt. Ybegin-fitemize} \item Erstellung von Werbeprospekten und Werbebriefen \item Erstellung von Fachskripten und Fachbüchern \item Erstellung von Fachskripten und Fachbüchern
157
158
Quelltext
mit einfacher Graphik \item Erstellung von Fachskripten u n d Fachbüchern mit mathematischen Formeln und Gleichungen \item Erstellung von Romanen und Novellen \item Erstellung von Zeitungen u n d Zeitschriften \item Erstellung von technischen Bedienungsanleitungen mit vielen graphischen Elementen \end{itemize} Unseren «eiteren Überlegungen liegt folgendes Projektziel zugrunde. \begin{f igure} [ht] \begin{center} \begin{tabular}{I p{l.0in}p{3in}I> \hline Projektziel & Es sollen Fachbücher u n d Fachskripten und Fachzeitungen aus den Bereichen \begin{itemize> \item Datenverarbeitung \item Programmierung \item DV-Organisation \item Mathematik \item Betriebswirtschaft \end{itemize} produziert Herden. \\ \hline \end{tabular} \end{center} \caption{\label{Projektziele>Proj ektziel} \end{figure} Daraus ergeben sich für ein Textbearbeitungs-System (Software-Verkzeug), welches hierfür verwendet werden soll, eine Reihe von Anforderungen, die in Abbildung \ref{anfor> als Anforderungskatalog zusammengestellt worden sind. Je genauer ein Dokument u n d sein Inhalt sowie die Strukturen bekannt sind, die verwendet werden sollen, desto besser lassen sich die Schreibweisen der Quelltexte vereinfachen. Durch Festlegung der zu verwendenden Strukturen wird außerdem erreicht, daß das Dokument nach Fertigstellung einheitlich wirkt. Z u viele Freiheiten in der Wahl der Strukturen (z.B. Einrückungen unterschiedlicher Länge) lassen ein Dokument sehr leicht 'zerrissen' erscheinen. Will m a n allgemein betriebwirtschaftliche Texte erzeugen,
Kapitel 1. Ubersicht, über Textbearbeitung dann kann man nur grobe Strukturen vorbereiten, die das Erzeugen von Quelltexten erleichtern. Ist bekannt, daß es sich um ein Skript handelt, welches im Format DIU A5 erzeugt werden soll, wobei sich der Inhalt des Skriptes mit tfarenwirtschaftssystemen befassen soll, dann kann man viel besser Strukturen unterstützen, die beiai Schreiben dieses Manuskripts die Arbeit erleichtern. \begin{center} \begin{tabular}{Ip{4.25in>I> \hline \begin{enumerate} \item Die Darstellung soll die Weiterverarbeitung bestehender ASCII-Texte ohne Erfassungsaufwand zulassen. Die Daxstellung selbst soll allein durch ASCII-Zeichen möglich sein. Damit ist die Erfassung der Quelltexte an allen tastaturorientierten Terminals möglich. \item Die Darstellung von mathematischen Texten und Texten mit Sonderzeichen aus internationalen Sprachen (z.B. französisch, dänisch, schwedisch, norwegisch, spanisch, griechisch) mufi zugelassen sein. \item Die Verarbeitung von ASCII-Dateien muß möglich sein. Damit können dann aus einem Softwarepaket ASCII-Dateien erzeugt werden (Auswertungen aus einer Datenbank), die von \TeX\ in Satz gebracht werden. \item Es muß ein ausreichend großer Vorrat von unterschiedlichen Schriftarten in verschiedenen Schriftgrößen vorhanden sein. Hierbei sind sowohl die Anforderungen des Dokuments wie auch der Ausgabegeräte zu beachten. \item Es müssen einfache Graphiken (gerade Linien, Kreise) systemintern bequem dargestellt werden können. Für in einem Dokument oft gebrauchte graphische Daxstellungen wie z.B. hierarchische Daxstellung oder Darstellung von Programmablaufplänen muß es möglich sein, abkürzende Darstellungen (Makros) zu verwenden. Es mu£ die Möglichkeit bestehen, die Ergebnisse eines Graphiksoftware-Pakets in die Texte zu integrieren. \item Es soll möglich sein, oft verwendete Strukturen (Tabellen, Ein\-rückun\-gen) zu speichern, so daß nicht immer wieder gleiche Strukturen neu geschrieben werden müssen, sondern durch Parameterwahl der jeweiligen Situation angepaßt werden können. Unterschiedliche Seiten-Layouts (z.B. einseitiger und zweiseitiger Satz, DIU A4, DIN A5) sollen durch Parameterwahl festgelegt werden
159
160
Quell text
können. \item Der Anwender muß solche Makros selbst erstellen können. Nur auf diese Weise wird es möglich, das Soltwaresystem an die Anforderungen des jeweiligen Dokuments anzupassen. Die Seiten-Layouts m ü s s e n vom Anwender auf die jeweiligen Erfordernisse des Dokuments abgeändert «erden können. \end{enumerat e} \\ \hline \end{tabular} \begin{figure}[ht] \caption -C\label{anfor}Anforderungen ein Softwarewerkzeuge} \end{figure} \end{center} \section{D ie Leistungsmerkmale von \TeX} \begin{center> \begin{tabular}{|p{4.3in}|} \hline \begin{enümerate} \item \TeX\ ist ein Textbearbeitungssystem auf ASCII-Basis \item Anweisungen, welche die Struktur festlegen, werden im Quelltext durch besonders gekennzeichnete Commands erzeugt. \item Mathematische und graphische Symbole sowie Symbole aus anderen Sprachen werden durch spezielle Schreibweisen, die der Umgangssprache ähnlich sind, dargestellt. Mit METAFONT, einem System zur Erzeugung von beliebigen Zeichen und Symbolen sowie ganzen Schriften, steht ein \TeX-ähnliches Software-System zur Verfügung, mit dessen Hilfe beliebige Schriften in praktisch jeder Größe konstruiert werden können. (Schriften bis zu einer Größe von 1 inch gehören z u den Standard-Schriften von \TeX ). \item Einfache Graphik (gerade Linien, Kreise, Ovale) \index{Graphik} sind im Rahmen der Sprache darstellbar. \item Die aus der Anwendung von Graphikpaketen wie z.B. t-jet der Firma DATAPAT, München, resultierenden \index{Graphikpaket> \index{t-jet} Zeichnungen können in die Texte integriert werden. \item Die aus einem Pixel-Editor erzeugten Scannerdat enf ormat e (Anschluß eines Bild-Scanners) können ebenfalls
Kapitel 1. Ubersicht über Textbearbeitung integriert werden, \item \TeX\ gestattet die Erzeugung und Abspeicherung von Makros für \index{Makros} häufig wiederkehrende Strukturen. \item Die iür \TeX\ konzipierte Steuersprache enthält z.B. folgende Statementklassen \begin{itemize} \item Einlesen und Ausgeben von Dateien, Übertragen \item Addieren, Subtrahieren, Multiplizieren, Dividieren \item Bedingte Ausführung von Operationen (if then eise) \item Wiederholte bedingte Ausführung (loop) \end{itemize> \end{enumerate} \\ \hl ine \end{tabular} \end{center> Bei der Auswahl eines Softwarewerkzeugs zur Erstellung von Buch- und Zeitungssatz ist darauf zu achten, daß dieses Werkzeug möglichst eine Ergänzung bereits in einem Standard-Betriebssystem (z. B. MS-DOS oder UNIX) vorhandener Softwarewerkzeuge darstellt. Aus Gründen der effektiveren Nutzung von Software-Werkzeugen ist es sicherlich sinnvoll, ein Werkzeug zu wählen, bei dem bereits vorhandene Systemprogramme wie der Editor wieder genutzt werden können. Auf diese Weise können Kenntnisse und Fertigkeiten, die z.B. beim Erstellen von Quellprogrammen bereits erworben worden sind, genutzt werden. Andererseits sollen vorhandene Softwarepakete in der Lage sein, die Softwaretechnik automatisch zu produzieren. So soll es also möglich sein, daß ein Datenbanksystem einen Report produziert, in dem die Satztechnik automatisch integriert ist. Damit könnte die Datenbank durch Standardtechniken (Report) Listen im Buchsatz automatisch erstellen. \varpar=3.5cm \begin{varlist> \item[\bf Zusammenfassung:] \TeX\ ist ein Textbearbeitungs-System, das wegen der Nutzung von DV-technischen Begriffen und Techniken eine Sprache darstellt, die in vielen Bereichen einsetzbar ist. Die Steuersprache ist sehr flexibel. Auf diese Weise sind alle Strukturen, die im Zeitungs- und Buchsatz vorkommen, erzielbar. Eine große Anzahl von Strukturen ist aber z.B. durch LA\TeX , ein
161
162
Quelltext
Stan\-dard-Makro-Pa\-ket zugänglich. Das System hat eine offene Schnittstelle zu Graphikpaketen. \index{Graphikpaketen} \end{varlist} \section{Beispiele für \TeX-Strukturen} In \TeX\ sind sehr viele Strukturen vorbereitet. Diese gestatten eine bequeme Schreibweise von Texten auch dann, wenn es sich nicht um Fließtext handelt. Diese Strukturen sind durch Makros vorbereitet. Hierbei versteht mein unter einer Makro einen Command, der aus mehreren primitiven Commands aufgebaut ist. Die Makros können mit Hilfe von Parametern auf den jeweiligen Anvendungsfall zugeschnitten verden. \subsection{Tabellen} Ein wichtiges Element zur übersichtlichen Darstellung von Sachverhalten ist die Tabelle. Als Beispiel einer mit \TeX\ konstruierten Tabelle diene die folgende Abbildung. \begin{center} \begin{tabular}{lllclclclcl} \hline t\multicolumn{4}{IcI}{Umsatz in Mio. DM}\\ \cline {2-5} Bereichftl.Quartalft2.Quartalft3.Quartalft4.QuartalW \hline Softwareftl.,2 ft 1..1 ft 0,.4 ft 1..6 \\ \hline Hardware&5. 4 ft 6,.8 ft 9 .3 ft 2,.6 \\ \hline ft 1..8 ft 2,.4 Beratungft2., 1 ft 1,.6 \\ \hline \end{tabular} \end{center} Hierbei sollte noch gesagt werden, daß die Spalten zentriert oder linksbün\-dig oder rechtsbün\-dig geschrieben werden können. Die Spalten können auch aus Text bestehen, der zeilenweise innerhalb der Spalten umgebrochen wird. Die Spaltenüberschriften können über eine Spalte oder über mehrere Spalten gehen. Es sind dicke und dünne Linien zur Abgrenzung der Spalten und der Zeilen möglich. \subsection{Einfache Strukturen} Unter einfachen Strukturen versteht man z.B. Einrückungen. \begin{quotation} Dieser Text ist eingerückt. Hierbei ist der Betrag der Ein\-rückung durch den Anwender beeinflußbar. Zum einen wird eine Stan\-dard-Ein\-rückung bei Festlegung der Stilart bestimmt. Es kann aber von Fall zu Fall ein neuer Betrag durch den Anwender durch Setzen eines Parameters bestimmt werden. (Vorsicht: Häufige Änderungen lassen
Kapitel 1. Ubersicht über T e x t b e a r b e i t u n g
163
das Dokument leicht unruhig erscheinen!) \end{quotation> Nun kehren vir wieder zum normalen Rand zurück. Es soll gezeigt Verden, daß man Aufzählungen unterschiedlich mit einer vorbereiteten Struktur darstellen kann. \begin{enumerate} \item Die einzelnen Elemente «erden numeriert. \item Die einzelnen Elemente Verden besonders gekennzeichnet. \item Die Element werden nur eingerückt. \end{enumerate} Wählt mein die zweite Form, dann kann z.B. folgende Darstellung entstehen. \begin{itemize} \item Die einzelnen Elemente werden numeriert. \item Die einzelnen Elmente werden besonders gekennzeichnet. \item Die Element werden nur eingerückt. \end{itemize} \subsection{Graphik} Um die Graphikfähigkeit des \TeX-Systems zu demonstrieren zeigen wir im folgenden eine hierarchische Darstellung mit beschrifteten Rechtecken, geraden Linien und Pfeilen. \begin{picture}(280,170) \put(20,0){\framebox(80,20){Ausgabegerät}} \put(180,0){\framebox(80,20){Eingabegerät}} \put(60,40){\vector(0,-1){20}} \put(220,20){\vector(0,1){20}} \put(20,40){\framebox(80,20){Puffer}} \put(180,40){\framebox(80,20){Puffer}} \put(100,80){\framebox(80,20){St euereinhe it}} \put(140,80){\vector(-4,-l){80}} \put(220,60){\vector(-4,1){80}} \put(140,110){\vector(0,1){10}} \put(140,110){\vector(0,-l){10}} \put(100,120){\framebox(80,20){Kanäle}} \put(100,140){\framebox(80,20){Zentraleinheit}} \end{picture} \medskip Venn bekannt ist, daß eine bestimmte Klasse von Graphik verlangt ist, dann kann man entsprechende Makros schreiben, welche dann die Darstellung in dem eingeschränkten Bereich sehr erleichtem. Anstelle die einzelnen geometrischen Grundelemente wie Gerade und Kreis durch Commands aufzurufen, stehen dann Makros für 'Abfrage', 'Sequenz', 'Trennstelle' und die anderen Elemente eines
164
Quelltext
Programmablaufplans zur Verfügung. Diese sind dann noch durch die Parameternerte (geometrische Lage der Kästchen, Text in den Kästchen) einzutragen. Dies ist für Darstellung von Programmablaufplänen bereits geschehen. Das Beispiel einer Anwendung wird im folgenden Bild dargestellt. \vspace+{-lcm} {\scriptsize {\unitlength=6.77pt \bpap{4}{5} \paptanf{4}{2}{1} \papliunt{3}{2}{n}{j}{L-menge\\ $\geq$\\B-menge> \papliunt{2}{l}{n}{j}{kreditwürdig} \papver{l}{l} \paphlver{2}{l} \paphlver{3}{2} \papend{0}{l}{ablehnen} \papabfr{l>{0>{j>{n>{Ma*.MengeW überschr.> \paphver{l}{l} \papend{0}{0}{freigeben} \papabfr{2}{2}{n}{j}{kreditwürdig} \papver{l}{2} \papend{0}{2}{ablehnen} \paphver{2}{3} \papliunt{l}{3}{j}{n}{Max. M e n g e W überschr. > \paphlver{l}{3} \papend{0}{3}{zurückst.> \epap » \subsection{Graphik mit gekrümmten Linien} In \TeX\ steht auch Graphik mit bliebig gekrümmten Linien zur Verfügung. Hierbei «erden intern Bezier-Funktionen zur Approximation verwendet. \begin{center} \begin{picture}(300,60) \put(20,0){\framebox(120,50){}} \put(20,0){\graybox{120}{50}} \put(50,40){\line(1,0){60}} \put(50,40){\line(0,-l){30}} \put(110,40){\line(0,-l){30}} \bezier{120}(50,10)(60,5)(64,5) \bezier{120}(63,5)(72.5,6.5)(80,10) \bezier{120}(80,10)(87.5,13.5)(94,15) \bezier{120}(93,15)(109.8,15)(109.8,10)
Kapitel 1. Übersicht über Textbearbeitung \ p u t ( 1 5 0 , 1 5 ) { \ s l Ausgabe e i n e r } \put(150,5){\sl Liste} \end-Cpicture} \end{center} (Die Kurve wird stückweise durch Polynome 3. Grades approximiert.) Man erreicht dadurch eine bessere Zeichengenauigkeit a l s durch den optimalen Einsatz eines handelsüblichen Kurvenlineals. Hierbei wurde die Zeichnung s e l b s t durch ein unterlegtes Grau besonders hervorgehoben. \subsection{Schriften} Das \TeX-System enthält einen großen S c h r i f t e n - V o r r a t . Die S c h r i f t e n reichen von einer sehr kleinen S c h r i f t \bigskip •CXtiny Das i s t die kleinste S c h r i f t } \bigskip b i s zu einer sehr großen S c h r i f t \bigskip \f ont\sgr=cminch •C\sgr UNIX} \bigskip Die S c h r i f t kann aber auch in i h r e r S c h r i f t a r t verändert werden, so g i b t es die S c h r i f t a x t ' b o l d ' ( f e t t ) \medskip •CNLarge { \ b f Das i s t f e t t e S c h r i f t } } \medskip oder die S c h r i f t a r t ' s l a n t e d ' (Schrägdruck) \medskip {\Large { \ s l Das i s t S c h r i f t in Schrägdruck}} \medskip Weitere gebräuchliche Schriften sind \begin{center} \begin{tabular}{ll} i t a l i c s fc { \ l a r g e { \ i t Das i s t S c h r i f t in i t a l i c s } } \ \ small caps Jt { \ l a r g e { \ s c Das i s t S c h r i f t in small c a p s } } \ \ sans s e r i f & { \ l a r g e { \ s f Das i s t S c h r i f t in sans s e r i f } } \ \ \end{tabular} \end{center} Dies sind die 'Standard-Schriften' von \TeX . Zusätzlich sind in \TeX\ noch eine Reihe von ' S p e z i a l - S c h r i f t e n ' vorhanden, die in s p e z i e l l e n Anwendungen, z.B. zu einer besonderen Hervorhebung oder in einer besonderen Ü b e r s c h r i f t , verwendet werden können. Wie die Standard-Schriften e x i s t i e r e n diese S p e z i a l - S c h r i f t e n in
165
166
Quelltext
mindestens 5 verschiedenen Schriftgrößen. Weiter gibt es noch 'Einzel-Schriiten'. Diese wurden konstruiert, um zu demonstrieren, «eichen Einfluß die Abänderung eines einzelnen Parameters in der Schrift auf die Schriftform hat. Jede dieser Einzel-Schriften existiert in \TeX\ nur in einer Größe. METAFOHT ist ein System, mit welchem der Anvender selbst spezielle Schriftfamilien (Schriften in 5 Schriftgrößen) konstruieren kann. Dabei kann man so vorgehen, daß man lediglich für eine vorhandene Schrift gewisse Parameter verändert und auf diese Weise eine neue Schrift erzeugt, oder man kann auch eine gesamte neue Schrift (256 Zeichen) konstruieren. Mit Hilfe von METAFOHT ist auch die Konstruktion von Firmen-Logos möglich. METAFOHT ist also ein ganz allgemeines Basis-Werkzeug zur Erzeugung von Schrift. Als Beispiel einer solchen Einzel-Schrift seien die calligraphischen Buchstaben genannt. Hier ist das Bild: \begin{center> {\large $\cal W0RT$> \end{center> Eine Besonderheit von \TeX\ ist die mühelose Behandlung von mathematischem Text. Dabei ist es gleichgültig, ob es sich um die Behandlung von Subskripten und Superskripten handelt wie in der folgenden Formel \[ x_l~2 + x_2*2 = R~2
\] oder um die Behandlung von Brüchen und Doppelbrüchen \[ z = Yfrac{x+yHl + \frac{y}{x + 1 » . \] Auch die Vervendung von typischen mathematischen Zeichen ist möglich, vie man an der folgenden Formel sehen kann \[ \Phi(x) = \frac{l>-C2\pi>\int_{-\infty>*{x> e*{-l/2x-{2>} \] Die Gleichungen können numeriert werden. Die Gleichungen können mit einem internen Label versehen werden. Es ist jederzeit möglich, sich im Text mit Hilfe dieser Labels auf eine Gleichung zu beziehen. \TeX\ setzt dann die Gleichungsnummer ein. Auch sehr spezielle Darstellungen
Kapitel 1. Ubersicht über Textbearbeitung wie \[ \underbrace{a_l + \overbrace{a_2 + \cdots + a_{14}}~{13} + a_{15})-_-{15} \] sind ohne weiteres möglich. Ganz allgemein kann gesagt werden, daß alle Zeichen Vorhemden sind, die zum Setzen von mathematischen Texten notwendig sind. Hierzu gehören ebenso $\Longleftarrow$ und $\Longrightarrow$ wie auch $ x = y \leadsto y = x$. Selbstverständlich sind auch alle logischen Operationen $\wedge, \vee $ und $\bar{a}$ vorhanden. \medskip Auch das Setzen von Text mit speziellen Zeichen aus anderen internationalen Sprachen bereitet keine Schwierigkeit. Hierfür sind gar\c{c}-on und sm\o rbr\o d sowie se\~{n}or Beispiele, die noch beliebig erweitert werden könnten.
167
Kapitel 2. T^X G r u n d l a g e n
Kapitel 2 T^gX-Grundlagen
\chapter{\TeX — Grundlagen} \section{Konzept und Realisierungen} Donald'E. Knuth entwickelte in den 80er Jahren an der Stanford University das Textbearbeitungs-System \TeX. Der Hame \TeX, der als Logo verwendet wird, steht f\ür das griechische $\tau\varepsilon\chi\ $ \index{Hame \TeX} (Abk\ürzung von $\tau\varepsilon\chi\nu\eta$ [techni]= Kunst, Geschick, Handwerk). Noch eine Bemerkung zur Aussprache. Wegen seiner griechischen Herkunft wird \TeX\ auch so gesprochen, da\ss\ das X wie $\chi$ gesprochen wird. (Sprich: \TeX\ wie Tech — und nicht wie Tex). \begin{figure}[ht] \begin{center} \begin{picture}(240,100) \put(0,80){\framebox(100,20){Quell-Programm}} \put(50,80){\vector(0,-1){20}} Yput(190,80H\vector(0,-lH20}} \put(0,40){\framebox(100,20){Compiler}} \put(50,40){\vector(0,-1){20}} \put(190,40){\vector(0,-1){20}} \put(0,0){\framebox(100,20){lauffNähiges Programm}} \put(140,80){\fraaebox(100,20) {\parbox[b]{lOOpt}{{\small \begin{center} Quelltext W C o m m a n d s \end{center}}}}} \put(140,40){\framebox(100,20){\TeX}} \put(140,0){\framebox(100,20){Dokument}} \end{picture} \caption{\label{konzept} Programmierung \TeX} \end{center} \end{figure} Betrachtet man das \TeX-System vom Standpunkt der
169
170
Quelltext
Datenverarbeitung, so handelt es sich um eine Sprache. Die Elemente der Sprache sind die Commands (Befehle). Diese legen fest, sie die Texte zu strukturieren sind. Damit erh\ält man den in Abb. \ref{konzept} dargestellten Zusammenhang zwischen Programmierung und Textbearbeitung. Vom Anwender wird ein Quellmodul \index{Quellmodul} erstellt. Dieser Modul enth\ält sowohl den eigentlichen Text wie (in Form einer Steuersprache) alle Anweisungen, die die Struktur des Textes bestimmen. Der Quellmodul wird ''Xübersetzt''. Dies bedeutet, da\ss\ die Texte in die durch die Steuersprache festgelegte Struktur gebracht werden. Die Steuersprache besteht aus Commands. Diese legen z.B. \index{Steuersprache} \begin{itemize> \item das Seiten-Layout (H\öhe und Breite der Seite, Layout des Seitenkopfes, Stand der Seitennummer) \item Wahl der Schriftart und Schriftgr\ö\ss e \item Strukturierung des Textes \end{itemize} fest. Die Commands werden durch Parameter n\äher erl\äutert. Commands sind durch vorangestellten \verb+\+ gekennzeichnet. Sowohl Texte wie auch Commands werden s\ämtlich durch Zeichenfolgen aus ASCII-Zeichen (mit einer Standardtastatur darstellbare Zeichen) gebildet. \index{Command}-\index{Parameter} Beispiel f\ür einen Command: \verb+\noindent+ (Bedeutung: Der nachfolgende Text soll ohne Paragraph-Einzug geschrieben werden.) Manche Commands ben\ötigen Parameter. Diese werden im allgemeinen in \verb+[ ]+ oder \verb+{ }+ eingeschlossen den Commands hintenangestellt. Beispiel f\ür einen Command mit Parameter: \verb+\vspace{lcm}+ (Bedeutung: Es soll ein vertikaler Leer-Raum von 1 cm erzeugt werden.) Das Dokument ist eine Datei, die satztechnisch aufbereitet zur Verf\ügung steht. Diese kann mit Hilfe eines ''Treibers'' auf ein Endger\ät (z.B. Laser-Drucker) ausgegeben werden. Hierbei werden die Informationen
Kapitel 2.
T^X-Grundlagen
nicht zeichenweise sonder 'punkt'-weise ausgegeben. Diese Punkte hei\ss en in der Fachsprache Pixel. F\ür die Ausgabe auf Laserdruckern wird die Information mit einer Aufl\ösung von 300 Pixel per inch (ca. 118 Pixel pro cm) ausgegeben. Zusammenfassend kann man sagen: \begin{graubox>{8>{3in> \TeX\ erzeugt durch eine 'Umwandlung' aus dem Quelltext mit Hilfe der Commands ein Dokument, das aus Pixel-Informationen aufgebaut ist. \endigraubox} \medskip Der gro\ss e Vorteil von \TeX\ ist darin zu sehen, da\ss\ eine gro\ss e Anzahl von primitiven Commands in \TeX\ existieren. Diese sind von Donald'E. Knuth unter dem Hamen {\bf Plain-\TeX> zusammengefa\ss t worden. Viele Autoren haben dieses Plain-\TeX\ erweitert. Dies ist deshalb so einfach, weil \TeX\ die Gestaltung von neuen Commands f\ür jeden Benutzer sehr einfach zul\ä\ss t. Diese gestalteten Commands hei\ss en {\bf Makros}. Mit der Zeit sind eine Reihe solcher Makros, zu Makropaketen zusammengefa\ss t, geschrieben worden. Die Makropakete sind entstanden, weil der Komfort von \TeX\ betr\ächtlich erh\öht werden kann, wenn mein Texte aus einem eingeschränkten Anwendungsbereich bearbeiten will. Meist beschr\änkt man sich dann beim Schreiben auf einige wenige Strukturen, die in dem gerade zu entwickelnden Dokument h\äufig vorkommen, und konstruiert hierf\ür komfortable Makros.\index{Makro> So gibt es z.B. Makros f\ür die immer wiederkehrende Aufgabe tabellarische Darstellungen satztechnisch richtig zu beschreiben. Oder es wurden Makros geschaffen, um die Aufgabe Programmablaufpl\äne darzustellen, \übersichtlich und in der Darstellung des Quelltextes bequem und nicht fehleranf\ällig zu l\ösen. Zwei Makropakete haben in letzter Zeit eine besondere Bedeutung erlangt, so da\ss\ sie zum Standard gez\ählt werden k\önnen. \varpar=2cm \beginivarlist> \item[\LaTeX\ ] \index{LaTeX > Leslie Lamport hat Makros geschaffen, welche hauptsächlich f\ür das Schreiben von Artikeln, Berichten und Fachb\üchern
171
172
Quelltext
konstruiert wurden. Viele Strukturen wie z.B. die Einteilung der Seite, die Seitennumerierung, die Zwischenräume zwischen den AbsNätzen, die Einteilung des gesamten Dokuments und die Festlegung der Gr\ö\ss e der \überschriften von Kapitel, Abschnitt, Unterabschnitt, Unter\-unter\-ab\-schnitt und Paragraph und vieles andere mehr sind (Nänderbar) festgelegt. Weil dies einem sehr allgemeinen Anspruch entspricht, haben wir uns diesem Standard angeschlossen. Einige zusätzliche Makros, von denen wir festgestellt haben, da\ss\ sie das Makropaket von Leslie Lamport noch schlagkr\äftiger und allgemeiner einsetzbar machen, haben wir in einem zusätzlichen Makropaket makro.tex zusammengefa\ss t. \item[{$\cal A$M$\cal M$>{$\cal S$}\TeX\ ] Das von der amerikanischen mathematischen Gesellschaft geschaffene Makro-Paket gestattet eine besonders komfortable Beschreibung von mathematischen Texten. Hierbei handelt es sich aber um solche mathematische Texte, die mit sehr vielen mathematischen Sonderzeichen zu schreiben sind, so da\ss\ man von Texten in mathematischer Sprache reden kann. \TeX\ selbst und erst recht \LaTeX\ lassen die Darstellung von mathematischen Schreibweisen zu, wenn keine extremen Anforderungen gestellt werden. \index{$\cal A$$\cal M$$\cal S$-\TeX> \end{varlist} Die Realisierung von \TeX\ ist auf vielen EDV-Systemen und Betriebssystemen erfolgt. Die verwendeten Sprachen sind Pascal oder C. F\ür IBM-kompatible PC's unter dem Betriebssystem MS-DOS sind zwei Realisierungen erh\ältlich. Die eine hei\ss t Mikro-\TeX\ (C-Realisierung), die andere PC-\TeX\ (Pascal-Realisierung). Auf UllX-Systemen sind mehrere Realisierungen bekannt. Im Jahre 1987 hat die Firma Datapat in M\ünchen eine Version f\ür UNIX-Systeme verschiedener Hersteller erstellt. Diese Version von \TeX\ liegt diesem Buch zugrunde. Bevor die Systeme vertrieben werden k\önnen, werden sie einem von Donald E. Knuth entwickelten Test unterworfen. Nur die Systeme, die diesen Test bestehen, d\ürfen unter dem Hamen \TeX\ vertrieben werden. Bei allen Realisierungen handelt es sich im Grunde um
Kapitel 2. T^X-G rundlagen Realisierungen von Plain-\TeX. Da es sich bei den Makro-Paketen um ASCII-Dateien handelt, sind alle Makro-Pakete unter den einzelnen Realisierungen so kompatibel Hie ASCII-Dateien. \section{Zeichen in \TeX> Texte sind aus Zeichen aufgebaut. In \TeX\ gibt es folgende Zeichenarten. \index{Zeichen} \index{Zeichenarten} \begin{figure}[ht] \begin{center> •C \baselineskip 13 pt \tabbox{11.5>{1.5> \begin{tabular}{|lp{3in}|} \hline Buchstaben^ A, B, C, .... , Z, a, b, c , z \\ \hline deutsche Zeichenft \Ä, \Ö, \Ü, \ä, \ö, \ü, \ss \\ \hline Ziffern ft 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 \\ \hline Sonderzeichenft A :\ ;\ ,\ \ !\ «\ '\ (\ )\ [\ ]\ -\ /\ *\ \\ \hline Spezialzeichenft \#\ \$\ \'/.\ \ft\ \"\ \_\ \'\ \verb+\+\ \{\ \> \\ \hline math. Zeichenft $+ = | < > $ \\ \hline Bindestricheft -(in Worten) — ( f \ ü r Zahlbereiche) , (Parenthese) \\ \hline \end{tabular> \caption{zugelassene Zeichen} > \end{center} \end {figure} \subsection{Schreibregeln} Es gelten die im folgenden genauer aufgeführten Schreibregeln \begin \begin \item Buchstaben, Ziffern und Sonderzeichen Verden ohne jede Ver\änderung geschrieben. \item F\ür deutsche Sonderzeichen (Umlaute und \ss ) gelten die in Abb. \ref{Schreibregeln} zusammengefa\ss ten
173
174
Quelltext
Schreibregeln. \begin{figure}[ht] \begin{center} { \baselineskip 13 pt \tabbox{11.5Hl.5} \begin{tabular}{I1I1I}\hline {\bf F\ür} b {\bf ist zu schreiben:} \\ \hline \ä ft \verb+ä+ \\ \hline \ ö k \verb+ö+ \\ \hline \ü Jt \verb+ü+ \\ \hline \Ä t \verb+Ä+ \\ \hline \Ö ft \verb+Ö+ \\ \hline \Ü * \verb+Ü+ \\ \hline \ss\ vor Leerzeichen ft\verb+\ss\ + \\ \hline \ss\ sonst t\verb+\ss + \\ \hline \end{tabular} > \caption{\label{Schreibregeln}Schreibregeln} \end{center} \end{figure} Zur Realisierung dieser komplizierten Schreibweise gibt es zwei AnsNätze. \begin{enumerate} \item Bei 8-Bit-Terminals (z.B. alle PC's): Es Verden alle Umlaute und \ss\ unge\ändert geschrieben. Kach der Erstellung des Quelltextes wird dieser durch ein Programm tr $$ ungesetzt und dieser umgesetzte Quelltext der \TeX -Umwandlung \übergeben. \item Bei 7-Bit-Terminals (z.B. alle UNIX-Systeme): Funktionstasten werden mit den deutschen Sonderzeichen beschriftet. Sie werden dann so belegt, da\ss\ durch Funktionstaste allein die f\ür den kleinen Buchstaben geltende Sequenz aus der obigen Tabelle eingesetzt wird, w\ährend Hoch\-steilung — Funktionstaste die Sequenz f\ür den entsprechenden gro\ss en Buchstaben liefert. Eine Funktionstaste wird f\ür \ss\ mit folgendem Leerzeichen und die Hochstellung dieser Funktionstaste f\ür \ss\ mit folgendem Zeichen, welches nicht das Leerzeichen ist, verwendet. \end{enumerate} \item Spezialzeichen m\üssen durch vorangestellten \verb+\+ besonders gekennzeichnet
Kapitel 2. T ^ X - G rundlagen
werden. (Also z.B. \verb+Y/,+ oder \verb+\fc+) \item Mathematische Zeichen m\üssen in \verb+$+ eingeschlossen werden. (Also z.B. x \verb+$ \item[\ ] \verb+- + f\ür Bindestrich in Worten (z.B.EDV-System) \item[\ 3 \verb+— + f\ür Zahlbereiche (z.B. 3 — 4 Leute) \item[\ ] \verb+ + i\ür Parenthese (z.B. \TeX\ das hier behandelte Textbearbeitungssystem i s t sehr flexibel.) \end{itemize} \end{enumerate} Will man verhindern, da\ss\ z.B. Hamen beim Zeilenumbruch auf zwei Zeilen geraten, dann hat man \verb+"+ in die Zwischenräume einzuf\ügen. Beispielsweise i s t dann \verb+Lothar"Schumann+ zu schreiben, um zu erreichen, da\ss\ dieser Käme als Ganzes betrachtet wird. Will man ein Leerzeichen erreichen, dann kann stets \verb+\ + geschrieben werden. Schreibt mein \verb2\verb*+\ +2, so erh\ält man das Zeichen \verb*+\ +. \end{quotation> \addt o c ount er { auf g } {1 )• {\parindent=3cm \litem { { \ b f Aufgabe \ t h e a u f g » B i t t e schreiben Sie folgende Texte. { \baselineskip 13 pt \tabboxill.5}{1.5} \begin{tabularMl> Diese Arbeit dauert 1 — 2 Minuten.\\ Die Firma hei\ss t K\ühne \ft\ Hagel. \\ ''Haben Sie a l l e s r i c h t i g verstanden?''\\ \end{tabular> > \par> \section{Seiten-Layout> L e s l i e Lamport hat in seinem \LaTeX\ Festlegungen f\ür eine parametrisierbare Strukturierung der Seiten in Form von Makros b e r e i t g e s t e l l t . Dieser Form der Bearbeitung von Texten und seinen Definitionen wollen wir uns an\-schlie\ss en. Dies geschieht vor allem
175
176
Quelltext
deshalb, weil die Makros genXügend Spielraum f\ür persXönliche Strukturierung lassen, zum anderen aber verhindern, da\ss\ die persXönliche Freiheit in Wildwuchs ausartet. \subsection{Definitionen} Realisierte Texte «erden {\bf Dokumente} Xindex{Dokument}genannt. FXür Dokumente Verden folgende {Xbf StilX-arten} unterstXützt. \index{St ilarten}'/, Xbegin-Cenumerate} \item article f\ür Artikel (Texte beschränkten Umfangs mit 1 — 5 Seiten und einseitigem Satz) \index{article-style> XindexiArtikel} Xitem report i\ür Berichte (Texte mit mehreren Seiten, mit einseitigem Satz, mit einer angemessenen Gliederung) \index{report-style>\index{Bericht> Xitem book fXür FachbXücher (Texte mit zweiseitigem Satz, mit automatischen SeitenXüberschriften) Xindex{book}\index{Fachbuch}*/, Xitem skript f\ür Fachskripten in DIH A5 (Texte mit zveiseitigem Satz, mit automatischen SeitenXüberschriften, links letzte AbschnittsXüberschrift und rechts letzte KapitelXüberschrift) Xindex{skript}\index{Skript}'/, Xitem buch f\ür FachbXücher in DIH A4 (Texte mit zveiseitigem Satz, mit automatischen SeitenXüberschriften, links letzte AbschnittsXüberschrift und rechts letzte Kapit elXüber s ehr if t ) X indexibuch}'/, Xendienumerate} Man beachte hierbei, daXssX fXür article-style und report-style stets zweiseitiger Satz (Vor- und RXückseite) gewXählt werden kann. FXür book, skript und buch ist allerdings zweiseitiger Satz fest vorgeschrieben. Die Gliederung des Dokuments ist hierarchisch. Folgende Stufen sind vorgesehen. \begin{center> Xbegin {itemize} Xitem paart Teil (eines Buches) Xindexipart} \index{Teil> Xitem chapter Kapitel Humerierung 1 Xindex{chapter} Xindex{Kapitel} Xitem section Abschnitt Humerierung 1.1 \index{section>
Kapitel 2. T^X-Grundlagen \index{Abschnitt> \item subsection Unterabschnitt Humerierung 1.1.1 \index{subsection} \index{Unterabschnitt> \item subsubsection Unterunterabschnitt Humerierung 1.1.1.1 \index{subsubsection> \index{Unterunterabschnitt} \item paragraph Paragraph keine Numerierung Fettdruck aui gleicher Zeile weiter \index{paragraph> \item subparagraph Unterparagraph keine Humerierung Fettdruck auf gleicher Zeile weiter \index{subparagraph} \end{itemize> \end{center} Die Tabelle \ref{ueberschr> aui Seite \pageref-Cueberschr} gibt einen NÜberblick \über die Verfolgbarkeit der einzelnen Gliederungsstufen in den 3 Stil\-arten. \begin{iigure} \begin{center> < \baselineskip 13 pt \tabbox{l1.5}{1.5> \begin{tabular}{111cIcIcI> \hline Gliederungsstufeftarticleftreportftbook, skript, buch\\ \hline \hline Part ft ft ftX \\ \hline Chapter ft ft ftX \\ \hline Section t I t l II \\ \hline Subsection ft X ft X ftX \\ \hline Subsubsection ft X ft X ftX \\ \hline Paragraph ft X ft X ftX \\ \hline Subparagraph ft X ft X ftX \\ \hline \end {tabular} > \end{center} \caption{\label{ueberschr> Gliederungsstufen bei Stil\-arten> \end{f igure} \subsection{Gliederungsstufen> F\ür die einzelnen Gliederungsstufen gelten folgende Definitionen. i\parindent=3cm \litem {\bf part> Teil eines Buches. Diese Einteilung kann bei einem Fachbuch verwendet werden. Hier k\önnen
177
178
Quelltext
einzelne Teile des Dokuments als h\öchste Stufe gekennzeichnet und numeriert werden, part ist nur bei book, skript oder buch zu\-l\ässig. \index{part} \litem {\bf chapter} Kapitel eines Buches. Die Kapitel-Einteilung kann f\ür Fachb\ücher verwendet werden. Sie ist die {\bf zwingend vorgeschriebene} h\öchste Gliederungsstufe bei den Stilarten book, skript und buch. \index{chapter>\index{Kapitel}Die Kapitel werden (automatisch) numeriert. Kapitel beginnen immer auf einer rechten Seite (mit ungerader Seitennummer). Dies kann zur Folge haben, da\ss\ eine Seite vor einem Kapitelbeginn leer bleibt. Der Name des Kapitels wird stets auf der rechten Seite eines Buches als Seitentitel angegeben. Diese Angabe unterbleibt jeweils auf der ersten Seite eines Kapitels, bei skript wird sie auch auf der ersten Seite eines Kapitels angegeben. \litem {\bf section} Abschnitt. Diese Einteilung kann f\ür alle Stil\-arten verwendet werden. Beim book style, beim skript style und beim buch style dient die \Überschrift des jeweiligen Abschnitts als Seitentitel auf den linken Seiten. \index{section}\index{Abschnitt}'/. \litem {\bf subsection} Unterabschnitt. Diese Einteilung kann f\ür alle Stil\-arten verwendet werden. \litem {\bf subsubsection} Unterunterabschnitt. Diese Einteilung kann f\ür alle Stil\-arten verwendet werden. \index{Unterabschnitt>\index{subsection}'/. \litem {\bf paragraph} Paragraph. Paragraphen k\önnen f\ür alle Stil\-arten verwendet werden. Die Paragraphen-\Überschrift wird fett gedruckt. Die zugehörigen Texte werden nicht abgesetzt. Die Paragraphen-\Überschrift beginnt gleichzeitig einen \linebreak[4] '/,erzwungen neuen Textabsatz, in dem sie aber au\ss er der Tatsache, da\ss\ sie in Fettdruck gesetzt wird, nicht weiter abgehoben wird. \index{paragraph> \litem {\bf subparagraph} Unter-Paragraph. Die Stufe Unter-Paragraph kann f\ür \linebreak[4] alle Stil\-arten verwendet werden. Die \Überschrift wird in Fettdruck gesetzt. Die zugeh\örigen Texte werden nicht abgesetzt. Die \Überschrift beginnt gleichzeitig einen neu\-en Textabsatz, in dem sie aber
Kapitel 2.
T^X-Grundlagen
au\ss er der Tatsache, da\ss\ sie in Fettdruck gesetzt wird, nicht weiter abgehoben wird. Die Unter-Paragraphen unterscheiden sich nicht von den Paragraphen. Lediglich, wenn man die Humerierungstiefe hoch setzt, kann man erreichen, da\ss\ sich die Unter-Para\-gra\-phen durch eine h\öhere Numerierungstiefe von den Paragraphen unterscheiden. \indexisubparagraph} \par> \section{Commands zur Erzeugung eines Dokuments} Ein Dokument besteht aus einer {\bf Pr\äambel} und aus einem {\bf Dokumentenk\örper>. In der PrNäambel werden grunds\ätzliche \index{Pr\äambel} Strukturierungen festgelegt. Hier wird z.B. entschieden, ob mit Absatz-Einzug gearbeitet wird oder nicht, welche Form der Seitennumerierung (arabisch, r\ömisch) gew\ählt wird und welche Makropakete verwendet werden sollen. Es wird auch Yüber die Stilart (article, report, book, skript, buch) entschieden. Der Dokumentenk\örper enth\ält den Text des Dokuments. \subsection{Grunds\ätzlicher Aufbau eines Dokuments} \begin{figure}[ht] \begin{center} \begin{tabular}{|p{4.0in}|} \hline \begin{verbat im} \do cument st y1e{skr ipt} \beginidocument} Steuerung der Strukturierung und Text des Dokuments \end{document} \end{verbatim} \\ \hline \end{tabular} \caption{\label{aufbau}Grunds\ätzlicher Aufbau documentstyle skript} \end{center} \end{figure} In der Abb. \ref{aufbau} auf Seite \pageref{aufbau} wird der grundsätzliche Aufbau eines Dokuments daxgestellt. Als Beispiel ist der skript-style ausgew\ählt. Diese Stilart wird diejenige sein, die in diesem Skript vorrangig gew\ählt wird.
179
180
Quelltext
Zu den verwendeten Commands «erden noch die folgenden Anmerkungen gemacht. \index{book-style} {\bf {\verb+\documentstyle{book}+}} Durch diesen Command wird die Stilart des Dokuments festgelegt. Es sind die Stil\-arten book, report, article, skript, buch mit gewissen Optionen zugelassen. \index{article-style} \index{report-style} \index{book-style} \index{skript-style} \index{buch-style} i\bf -{\verb+\begin{document}+}} Durch diesen Command wird der Anfang des Dokuments angezeigt. i\bf {\verb+\end{document}+}} Durch diesen Command wird das Ende des Dokuments angezeigt. \subsection{Texte in Dokumenten} Der Text wird ohne Berücksichtigung von Zeilenumbr\üchen geschrieben. Es ist also v\öllig gleich, ob die Zeilen einigerma\ss en im Block geschrieben werden oder ob z.B. jedes Wort auf eine Zeile geschrieben wird. Es ist auch gleichg\ültig, wieviel Zwischenraum (Leerstellen) zwischen den einzelnen Wör\-tern gelassen wird. Leerzeilen (und nur diese) erzeugen einen Absatz. Hierbei ist es wieder gleich\-g\ültig, wieviele Leerzeilen gelassen werden. In jedem Falle wird zwischen dem Text, der vor den Leerzeilen steht und dem Text, der nach den Leerzeilen steht, ein Standard-Absatzabstand gelassen. \centerline{ \TeX\ erzeugt aus den eingegebenen Texten stets einen Blocksatz.} Silbentrennung wird automatisch durchgeführt. Das eingebaute \index{Silbentrennung} Silbentrennungspaket arbeitet nach dem Muster-Verfahren. Es sind viele Muster von Silbentrennungen gespeichert. Die richtige Silbentrennung wird durch Vergleiche gefunden. Jederzeit kann eine bestimmte m\ögliche Silbentrennung vorgegeben werden. Hierf\ür ist die Zeichenkombination \verb+\-+ zu verwenden. So k\önnte man also schreiben \verb+'Sil\-ben\-tren\-nung'+, um zu erreichen, da\ss\ dieses Wort an jeder der angegebenen Stellen getrennt werden kann oder auch ungetrennt in den Blocksatz eingefYügt wird. Es wird vom System versucht, alle Abs\ätze dadurch in gut lesbaren Blocksatz zu verwandeln, da\ss\ die
Kapitel 2. T^X-Grundlagen Zwischenräume zwischen den einzelnen Wör\-tern variiert Verden. Venn dies auch mit Hilfe der Silbentrennung nicht gelingt, dann entstehen bei der \Übersetzung Waraings \nopagebreak[4] \centerline{ {\bf Overfull hbox} oder {\bf Underfull hbox}. > \index{Overfull hbox> \index{Underfull hbox} Bei Overfull hbox (hbox = horizontal box) wird der Absatz durch Angabe der Zeilennummern (Anfang — Ende) sowie der XÜberhang in pt (72.27 pt = 2.54 cm) angegeben. Das Bearbeitungsverfahren besteht dann einfach darin, da\ss\ in diesem Absatz Text in der Gr\ö\ss enordnung des \Überhanges durch Umgestaltung des Textes entfernt werden mu\ss . Bei Underfull hbox wird der Absatz durch Angabe der Zeilennummern (Anfang — Ende) gekennzeichnet. Der Grad der Unterbesetzung wird durch eine penalty angegeben. Hier handelt es sich um einen Wert zwischen 0 (keine Underfull box) und 10000 (leere Zeile). Das Bearbeitungsverfahren besteht dann einfach darin, da\ss\ der Absatz so umgestaltet werden mu\ss , da\ss\ der Block besser gef\üllt ist. \section{Ein einfacher Text} Mit den bereits bekannten Techniken und Commands soll nun ein beispielhafter Text geschrieben werden. Es wird zun\ächst im article-style der Text so dargestellt, wie er vom Anwender zu schreiben ist. \labelitextl} \begin{verbatim} \documentstyle{article} \begin{document} normalerweise erstellt ein Autor ein Manuskript. Er oder ein spezieller typographischer Designer legt meist durch Angabe von Steuerzeichen in Farbe oder am Rand des Manuskripts die Formatierung des Manuskripts fest. Hierbei wird das Seitenformat (Zeilenbreite und Zeilenzahl auf der Seite) fixiert. Es wird die Stilart bestimmt. Es wird bestimmt, wieviel Zwischenraum von einem Absatz zum anderen verwendet werden soll.
181
182 Es «erden eine Reihe von Instruktionen festgehalten, an die der Setzer sich zu halten hat. Der Setzer entscheidet im Rahmen dieser Richtlinien, wo die einzelnen Textelemente ihren Platz auf der Seite finden. Der Setzer produziert bei normalem Setzverfahren aus dem Satz eine Metall-Matrize, voraus die einzelne Seite erzeugt wird. Heute gehen vir anders vor. An Stelle der Metall-Matrize verwenden wir eine Datei. \LaTeX\ ist der typographische Designer und \TeX\ ist der Setzer. Die \LaTeX-Commands werden dabei in \TeX-Typensatz-Commands umgewandelt, dieses sind primitive (d.h. unzerlegbare) Commands zur Erzeugung von Typensatz. \end{document} \end{verbatim} Dies produziert den folgenden Text. \medskip normalerweise erstellt ein Autor ein Manuskript. Er oder ein spezieller typographischer Designer legt meist durch Angabe von Steuerzeichen in Farbe oder am Rand des Manuskripts die Formatierung des Manuskripts fest. Hierbei wird das Seitenformat (Zeilenbreite und Zeilenzahl auf der Seite) festgelegt. Es wird die Stilart bestimmt. Es wird bestimmt, wieviel Zwischenraum von einem Absatz zum anderen verwendet werden soll. Es werden eine Reihe von Instruktionen festgehalten, an die sich der Setzer zu halten hat. Der Setzer entscheidet im Rahmen dieser Richtlinien, wo die einzelnen Textelemente ihren Platz auf der Seite finden. Der Setzer produziert aus dem Satz eine Metall-Matrize, woraus die einzelne Seite erzeugt wird. Heute gehen wir anders vor. An Stelle der Metall-Matrize verwenden wir eine Datei. \LaTeX\ ist der typographische Designer und \TeX\ ist der Setzer. Die \LaTeX-Commands werden dabei in \TeX-Typensatz-Commands umgewandelt, dieses sind primitive (unzerlegbare) Commands zur Erzeugung von Typensatz. \section{Zus\ätzliche Commands und Optionen} \subsection{Zus\ätzliche Commands} Im Beispiel-Text wird das Logo \TeX\ verwendet. Vergleicht man Eingabetext und Ausgabe, so sieht man,
Quelltext
Kapitel 2. TfeX-Grundlagen da\ss\ man zur Erzielung des Logos \verb+\TeX+ schreiben mu\ss . Eine Kleinigkeit ist hierbei noch zu beachten. Das Logo beinhaltet nicht ein hintenangestelltes Leerzeichen. Wenn dies gew\ünscht wird, ist an das Logo noch \verb+\ + anzuf\ügen. Und es soll auch noch erw\ähnt werden, da\ss\ das ganze Skript mit dem in der Pr\äambel (vor \verb+\begin{document}-+) abgesetzten Command \begin{center> \verb+\parindent=Ocm+ \end{center> \index{parindent> arbeitet. Gibt man diesen Command nicht an, dann wird wie in der amerikanischen Literatur \iiblich bei jedem Absatz ein 'Absatz-Einzug' durchgeführt. (Die erste Zeile des Absatzes beginnt ca. 5 mm einger\ückt.) Diese zusätzliche Methode der Absatzhervorhebung wird auch in Deutschland mehr und mehr \üblich. (Beachten Sie bitte hierzu z.B. die Springer-Presse.) \subsection{Optionen des document-style} Der Command \verb+\documentstyle{art}+ wurde im vorigen Abschnitt behandelt. Seine endg\ültige Form lautet: \begin{center> \verb+\documentstyle+ \verbO[0$option_l,option_2 option_n$\verb2] {art}2 \end{center> \newpage '/.erzwungener Seitenumbruch 28.03.90 Folgende Stil\-arten sind zul\ässig. \begin{quote> airticle report book skript buch einseit \end{quote> \index{2urticle> \index{report> \index-[book> \index{skript} \index{buch> \index{einseit> Die lormalschriit ist 10 pt Roman. Diese Schrift wird auch in diesem Skript verwendet. Werden keine Optionen angegeben, dann wird als Schrift stets 10 pt Roman verwendet. \begin{figure}[ht] \begin{center>
183
184
Quelltext
{\bas elineskip=14pt \tabbox{10.5}{3.5> \begin{tabularK 1111 > \hline llptfcllpt Roman SchriftW 12pt*12pt Roman SchriftW twosideft2-seitiger Satz (Vor- und R\ückseite)\\ twocolumn*2-spaltiger SatzW leqnoftGleichungs-Humerierung links \\ bezier*Gekr\ümmte Linien \\ \hline \end{tabular> > \end{center> \caption{Optionen} \end{figure} \index{twoside> \index{twocolumn} Die anderen Optionen, die in eckige Klammern, durch Kommata getrennt geschrieben «erden, haben die eingegebene Wirkung. Erklärungen f\ür die einzelnen Optionen: \medskip \varpar=lin \begin{varlist> \item[llpt] Die Standardschriftgr\ö\ss e ist 11 pt Roman. Es wird ein dieser Schriftgr\ö\ss e entsprechendes Seitenlayout gew\ählt. Das betrifft z.B. die H\öhe von Kopf und Fu\ss\ der Seite. \item[12pt] Die Standardschriftgr\ö\ss e ist 12 pt Roman. Es wird ein dieser Schriftgr\ö\ss e entsprechendes Seitenlayout gew\ählt. Das betrifft z.B. die H\öhe von Kopf und Fu\ss\ der Seite. \item[twoside] Der Satz ist zweiseitig. Dies bedeutet, da\ss\ der linke Rand der ungeraden Seite mit dem rechten Rand der geraden Seite \übereinstimmt und der rechte Rand der ungeraden mit dem linken der geraden Seite. Auf diese Heise sind die Seiten, wenn man sie auf Gegenseiten des gleichen Blattes reproduziert, deckungsgleich. \item[twocolumn] Der Satz wird in zwei Spalten durchgef\ührt. Bei letzten Seiten (z.B. im Kapitel) wird die linke Spalte bis zum Seitenende gesetzt, die rechte Seite nimmt den Rest des Textes auf. \item[leqno] Normalerweise stehen die (vom System automatisch vergebenen Gleichungsnummern) rechtsb\ündig
K a p i t e l 2.
T^X-Grundlagen
auf der Zeile, auf der die zu numerierende Gleichung steht. Durch diese Option wird die Gleichungsnummer linksbündig geschrieben. Nnewpage '/.erzwungener Seitenumbruch 28.03.90 Nitem[bezier] Die in \TeX\ vorhandene Graphik beschrNänkt sich, wie schon gesagt, auf die Darstellung von Geraden und Kreisen. Um nun auch Kurven beliebiger Art darstellen zu kNönnen, ist die Option 'bezier' vorhanden. Hierdurch ist es m\öglich, eine Kurve durch StNücke von Bezier-Polynomen zu approximieren. Hierzu wird eine Kurve in mehrere StNücke eingeteilt. F\ür jedes StNück sind vorgebbar: Nbeginienumerate} Nitem der Anfangspunkt durch seine Koordinaten, \item die Richtung der Tangenten im Anfangspunkt, Nitem der Endpunkt durch seine Koordinaten, Nitem die Richtung der Tangenten im Endpunkt. Nend-Cenumerate} WNählt mein den Endpunkt des n-ten TeilstNücks als Anfangspunkt des TeilN-stNücks Hummer n+1 und ferner die Richtung im Endpunkt des n-ten TeilN-stNücks gleich der Richtung im Anfangspunkt der (n+l)-ten TeilstNücks, dann kann auf diese Weise ein Kurvenzug konstruiert Verden, der sin jeder Stelle der Kurve eine sich stetig Nändernde Richtung hat. (Die Kurve hat also keinen 'Knick'.) Diese mathematische Methode entspricht also dem Verfahren, das angewendet wird, wenn man mit einem Kurvenlineal eine Kurve zeichnet. Im Rahmen des Kapitels Nüber Graphik werden wir auf die Konstruktion noch genauer eingehen. Nend{varlist} Nmedskip A b i Beispiel:} Um im article-style in llpt zu schreiben und dabei gekrNümmte Linien verwenden zu kNönnen und wenn zusNätzlich zweiseitig, zweispaltig geschrieben werden soll, dann ist Nbegin{center} Nverb+NdocumentstyleCllpt,twocolumn,twoside,bezier]{article}+ Nend{center> zu schreiben. Nvspace{0.5cm> Naddtocounter{aufgMl> {Nparindent=3cm
185
186
Quelltext
\ l i t e m {{\bf Aufgabe \ t h e a u f g » B i t t e s c h r e i b e n S i e e i n e S k i z z e f \ ü r e i n Dokument, welches e i n B e r i c h t Verden s o l l . Es s o l l e i n e l l p t Roman S c h r i f t verwendet w e r d e n . Es i s t v o r z u s e h e n , d a \ s s \ d i e Ausgabe auf Vorund R \ ü c k s e i t e s t a t t f i n d e t . \par} \vspace{0.5cm> \ a d d t o c ount e r { auf g} {1 }• {\parindent=3cm \ l i t e m {{\bf Aufgabe \ t h e a u f g } } Was w\ürde s i c h \ ä n d e m , wenn d e r Anwender d a s M a n u \ - s k r i p t Abbildung \ r e f { t e x t l > auf S e i t e \ p a g e r e f { t e x t l } so g e s c h r i e b e n h \ ä t t e , d a \ s s \ es maximal 2 i n c h b r e i t i s t ? \par> \ s e c t i o n { \ Ü b e r s i c h t \ ü b e r a l l e v e r f \ ü g b a r e n S t i l a r t e n > Es h a t s i c h h e r a u s g e s t e l l t , d a \ s s \ es zweckm\ä\ss i g i s t , wenn s t a n d a r d m \ ä \ s s i g e i n e Reihe von S t i l a r t e n z u r V e r f \ ü g u n g stehen. E i n e \ Ü b e r s i c h t \ i i b e r a l l e S t i l a r t e n wird i n f o l g e n d e r T a b e l l e zusammengefa\ss t . \begin{center> •C\f o o t n o t e s i z e \begin{tabular}{|l|c|c|clclc|c|> \hline \ m u l t i c o l u m n { l M I c}{Kame} 4 \multicolumn{l}{|cMSchrift} 4 \multicolumn{lHIc>{Texth\öhe> 4 \multicolumn{lHIcMTextbreite} 4 \multicolumn{l}{|c}{ab Stufe} 4 \multicolumn{lMIcMeinseitig} 4 \multicolumn{lMlc|}{Kopfart} \ \ \hline book 4 lOpt 4 5 0 4 p t 4 4 . 5 i n 4 c h a p t e r 4 n e i n 4 S c h r \ ä g d r u c k \ \ \hline book 4 l l p t 4 5 3 0 . 4 p t 4 5 i n 4 c h a p t e r 4 n e i n 4 S c h r \ ä g d r u c k \ \ \hline book 4 12pt 4 5 3 6 . 5 p t 4 5 i n 4 c h a p t e r 4 n e i n 4 SchrNägdruck \ \ \hline r e p o r t 4 lOpt 4 5 2 8 p t 4 3 4 5 p t 4 s e c t i o n 4 j a k S c h r \ ä g d r u c k \ \ \hline r e p o r t k l l p t 4 5 3 0 . 4 p t 4 3 6 0 p t 4 s e c t i o n 4 j a 4 SchrNägdruck \ \ \hline r e p o r t 4 12pt 4 5 3 6 . 5 p t 4 3 9 0 p t 4 s e c t i o n 4 j a 4 S c h r \ ä g d r u c k \ \ \hline a r t i c l e 4 lOpt 4 5 2 8 p t 4 4 7 0 p t 4 s e c t i o n 4 j a 4 SchrNägdruck \ \ \hline
Kapitel 2.
TßX-Grundlagen
article k llpt &530.4ptJt360pt§ionJt ja t SchrXägdruck \\ \hline article t 12pt &536.5ptft390ptftsectionft ja k SchrXägdruck \\ \hline skript Jt lOpt &432ptft4.SinAchapterft nein k unterstrichen \\ \hline skript k llpt ft530.4ptft5inftchapterft nein Jt unterstrichen \\ \hline skript k 12pt 4536.5pt&5inftchapterft nein k unterstrichen \\ \hline buch Jt lOpt &528ptft470ptJtchapterJt ja k unterstrichen \\ \hline einseit k lOpt Ä529ptJt470ptftsectionJt ja k unterstrichen \\ \hline \end{tabular} > \end{center} F\ür die Einsatzgebiete der einzelnen styles soll folgende NÜbersicht hilfreich sein. \varpar=0.7in \begin{varlist> \item[book] Amerikanisches Buchformat. Das Verh\ältnis von langer zu kurzer Rechteckseite ist gr\ö\ss er als bei DINA5. \item[report] Amerikanisches gro\ss es Format zum Schreiben von Berichten geeignet. \item[article] Amerikanisches Format f\ür einzelne Aufs\ätze. \item[skript] Dieses Format eignet sich zum Entwickeln von Skripten im Format DIN A5. \item[buch] Dieses Format eignet sich zum Entwickeln von DIH A4 gro\ss en B\üchern z.B. f\ür Bedienungsanleitungen. \item[einseit] Dieses Format eignet sich zum Entwickeln von Einzelartikeln im Format DIH A4. \end{varlist> Die Zahl der Stilarten kann beliebig erweitert werden. Grundsätzlich ist es nicht schwierig, eine neue Stilart zu erzeugen. Es kann aber nicht Aufgabe dieses Lehrbuchs sein, hier weitere Stilarten vorzustellen, weil man im allgemeinen mit den angebotenen Stilarten auskommt. \addtocounter{aufg>{l> \varpar=3cm \begin{varlist> \item [{\bf Aufgabe \theaufg}] Bitte schreiben Sie den documentstyle-Command für folgende Anforderungen.
187
188 \begin{enumerate} \item Bedienungsanleitung \item 12pt SchriftgröXss e \item Verwendung von Bezier-Stil \end{enumerate} \end{varlist}
Quelltext
Kapitel 3. Schriftformate
Kapitel 3 Schriftformate
\iont\logo=logolO \chapter{Schriftformate> \section{\Überblick> In \TeX\ k\önnen unterschiedliche Schriftarten in unterschiedlichen Schriftgr\ö\-\ss en verwendet werden. Unter einer Schriftart versteht man hierbei die geometrische Gestalt einer Schrift (roman, bold (fett), slanted (Schr\ägdruck) usw.). Die Schriftgr\ö\ss e ist ein Ma\ss\ f\ür die Gr\ö\ss e der einzelnen Zeichen. Sie wird in pt gemessen. '/.\bgraubox{8>{3. 5in> \begin{center> \begin{tabularHlp{3.5in}|> \hline Eine Schriftaxt in einer bestimmten Gr\ö\ss e (z.B. lOpt) wird eine -C\bf Schrift} genannt. \TeX\ enth\ält zur Zeit 75 Schriften. \\ \hline \end{tabular} \end{center} 'Aegraubox \TeX\ bietet grundsätzlich beliebige Schriften an. Das Prinzip der Definition von Zeichen f\ür eine bestimmte Schrift schlie\ss t sich dem allgemeinen \TeX-Prinzip sin. Es gibt eine Reihe von primitiven Commands, mit denen mein die geometrische Gestalt der einzelnen Zeichen (im allgemeinen 256 pro Schrift) festlegt. Hierbei werden gewisse Grundparameter verwendet. Dies sichert, da\ss\ alle Zeichen einer Schrift zueinander passen und da\ss\ unterschiedliche Schriftgrö\ss en durch einfache Vergrö\ss erung aus dem Grundtyp erstellt werden. \medskip '/.erzwungener Absatz Einige Parameter von solchen Schriften sind mit ihrer
189
190
Quelltext
Bedeutung in Abbildung \rei{zeichenpar} zusammengestellt. \begin{figure}[ht] \hfil \begin{tabular}{ll} body-height4Zeichenh\öhe\\ asc-height&H\öhe von Klein-Buchstaben mit Oberl\ängen (b,d,i)\\ cap-heightftH\öhe der Gro\ss -BuchstabenW fig-heightftH\öhe der Z i f f e r n W x-height&H\öhe von Kleinbuchstaben ohne Oberl\ängen (a,c,e,m)\\ desc-depthftTiefe von Kleinbuchstaben mit Unterl\ängen (g,j,p)W comma-depthfcTiefe des KommasW math-axisfcMitte der ParantheseW bar-heightftH\öhe des BindestrichsW \end{tabular} \hfil \caption{\label{zeichenpar}Zeichen-Parameter}\end{figure} Dies sind nur einige der Parameter, die bei der D e f i n i t i o n von Zeichen f\ür bestimmte Schriften n\ötig sind. Hierf\ür i s t das System {\logo METAFOHT} ent\-wik\-kelt worden, somit die Entwicklung von Schriften und auch speziellen Logo's m\öglich gemacht wird. Vir unterscheiden hierbei unterschiedliche Klassen von Schriften. \begin{enumerate} \item -CStandardschriften:} In \LaTeX\ werden eine Reihe von Schriftarten ausgew\ählt, die in verschiedenen Schriftgr\ö\ss en benutzt werden k\önnen. J e d e \ h f i l l d e r \ h f i l l 7 \ h f i l l verschiedenen\hfill \ h f i l l Schriftarten\hfill hat\hfill einen\hfill von\hfill L e s l i e \ h f i l l Lamport \newpage f e s t g e l e g t e n symbolischen Namen. Jede S c h r i f t a r t kann in 10 verschiedenen Gr\ö\ss en, die ebenfalls standardisierte Hamen haben, gewNählt werden. Damit stehen also 7 $\times$ 10 = 70 verschiedene Standardschriften zur Verf\ügung. Diese werden in allgemeinen ausreichen, um den Satz f\ür ein Dokument durchzuf\ühren. \item { Z u s ä t z l i c h e S c h r i f t e n } sind Schriften, die den Umfang der Standardschriften erweitern. Sie sind in \TeX\
K a p i t e l 3. Schrift formate
vorhanden. Jede Schrift ( S c h r i f t a r t + Schriftgr\ö\ss e ) erh\ält vom Anwender einen f r e i w\ählbaren Namen. Dadurch wird der Umfang der Schriften f a s t verdoppelt. \end{enumerate> \section{Standardsehriftarten} Die Basis-Schrift i s t Roman. Dieses Skript i s t in Roman g e s e t z t . Sollen bestimmte Text-Teile in einer anderen Schrift gesetzt werden, so sind die T e x t - T e i l e in geschweifte Klammern \verb+{}+ zu schreiben. M\ögliche Schriftarten sind in der folgenden Tabelle \übersichtlich zusammengestellt. (Diese Tabelle wird laufend e r w e i t e r t ! ) \beginifigure}[ht] \begin{center} Ybegin-CtabularMIllllcl} \hline SchriftartftText&CommandW \hline Roman&Dieser Text i s t roman&\verb+\rm+\\ BoldJt{\bf Dieser Text i s t bold}ft\verb+\bf+\\ SlantedJt{\sl Dieser Text i s t slanted}ft\verb+\sl+\\ Seins s e r i f k { \ s f Dieser Text i s t sans Serif}i\verb+\sf+\\ Typewriter*{\tt Dieser Text i s t Typewriter}ft\verb+\tt+\\ I t a l i c s f c { \ i t Dieser Text i s t italics}fc\verb+\it+\\ Small Capsfc{\sc Dieser Text i s t small caps} \index{bold} \index{typewriter> \ i n d e x { i t a l i c s } \index{slanted} \index{small caps> \caption{\label{schriftart}Schriftarten} \end{figurej \newpage '/.erzwungener SSeitenumbruch 29.03.90 Wenn keine Festlegung der S c h r i f t vorgenommen wird, i s t die S c h r i f t a r t roman gewählt. Die Schriftgr\ö\ss e i s t im documentstyle gew\ählt. Wenn nichts gesagt wird, i s t die Schriftgr\ö\ss e 10 pt. Auf die S c h r i f t a r t bold ( ' f e t t ' ) kann durch die Angabe von \verb+\bf+ übergegangen werden. Diese S c h r i f t a r t g i l t , bis wieder eine neue Anweisung geschrieben wird, die die Schrifteurt f e s t l e g t . \bf Dieser Satz i s t in bold g e s e t z t . Die S c h r i f t a r t bold wird solange beibehalten, bis eine andere S c h r i f t a r t gew\ählt wird. \ i t Hun i s t die S c h r i f t a r t i t a l i c s gew\ählt. Diese wird wiederum solange
191
192 verwendet, bis im Text wieder eine andere Schrift a u s g e w ä h l t wurde, z.B. wieder roman durch \verb+\rm+. \rm Will man erreichen, da\ss\ ein bestimmter Textteil in einer anderen Schriftart gesetzt wird, dann ist dieser Textteil, wie oben bereits ausgef\ührt, in geschweifte K l a m m e m zu setzen. Schreibt man also \begin{quote} \begin{verbatim} Die Bundesrepublik Deutschland ist eine {\bf parlamentarische Demokratie}. Der {\bf Bundeskanzler} bestimmt die Richtlinien der Politik. \end{verbatim} \end{quote} so erzielt man den folgenden Text: \begin{quote} Die Bundesrepublik Deutschland ist eine {\bf parlamentarische Demokratie}. Der {\bf Bundeskanzler} bestimmt die Richtlinien der Politik. \end{quote} \addtocounter{aufg}{l} {\parindent=3cm Nlitem {{\bf Aufgabe \theaufg}} Bitte schreiben Sie den folgenden Text \newline \hfill Es ist nicht sinnvoll, immer mal die {\bf Schrift zu wechseln}, um zu zeigen, wieviele {\it Schriften} im Schriftvorrat sind. Vielmehr soll das Geschriebene {\it\bf gut lesbar} sein. \par} \section{Standardschriftgr\ö\ss en} \begin{f igure}Cht] {\baselineskip=22pt \tabbox{18.5}{3.5} \begin{center} \begin{tabular}{I1I1I1I} \hline Schriftgr\ö\ss eftTexttCommandW \hline Tiny*{\tiny Information}4\verb+\tiny+\\ \hline Scriptsize*{\scriptsize Information}* \verb+\scriptsize+\\ \hline Footnotes izefc{\footnot es ize Information}ft \verb+\footnotesize+\\ \hline Small*{\small Information}* \verb+\small+\\ \hline Hormais ize*{\normals iz e Inf ormat ion}*
Quelltext
Kapitel 3. Schriftformate
\verb+\normalsize+\\ \hline large4{\large Information}ft\verb+\large+\\ \hline Large&{\Large Information}ft\verb+\Large+\\ \hline LARGE&{\LARGE Information}ft\verb+\LARGE+\\ \hline hugeJt{\huge Information}ft\verb+\huge+\\ \hline Huge*{\Huge Information}&\verb+\Huge+\\ \hline \end{tabular} \end{center} > \index{tiny} \index{scriptsize} \index{footnotesize} \index{small} \index{normalsize} \index{large} \index{Large} \index{LARGE} \index{huge> \index{Huge> \caption{\label{schriftgr}Schriftgr\ö\ss en> \end{figure} Die Schriftgr\ö\ss e wird in pt (=point) gemessen. Hierbei ist 1 pt = 0.35146 nun, 72.27pt = 1 inch. Die Schriftgr\ö\ss e in diesem Skript betr\ägt 10 pt. Main spricht auch von 10-pt-Schrift. Die Schriftgr\ö\ss e kann mit folgenden Commands ver\ändert «erden. Die Auswirkungen der Commands auf die Schriftgr\ö\ss e k\önnen aus der Abb. \ref{schriftgr} entnommen werden. \smallskip \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aufgabe \theaufg}} Bitte schreiben Sie als Entwurf f\ür einen Briefkopf \smallskip {\Huge Klaus Haller KG.} \newline \hspace*{3cm} {\large Export und Import von Tee und Kaffee} \newline \hspace*{3cm} Schauenburger Allee 9, 2 Hannover 1 \par} \newpage '/,erzwungener Seitenumbruch 29.03.90 \section{Zus\ätzliche Schriften} Soll in einem Dokument eine 'zus\ätzliche' Schrift verwendet werden, so ist in der PrNäambel oder jedenfalls vor erstmaliger Verwendung der Schrift im Dokument zu schreiben: \begin{verbatim} \font\IAME=SCHRIFTART scaled \magstepH \end{verbatim} Hierbei bedeuten: \begin{center}
193
194
Quelltext
\begin{tabularHll} H A H E ft ein vom Anwender zu vergebender Harne \\ SCHRIFTART ft der Name der Schriftart in \TeX \\ K ft Vergr\ö\ss erungsstufe \\ \end{tabular} \end{center} Damit wird die SCHRIFTART (standardisierte Bezeichnung in \TeX ) einem Anwendernamen (SAME) zugeordnet. Durch den 'scaling-factor' wird eine Schriftvergr\ö\ss erung festgelegt. Die Vergr\ö\ss erungen der Schriften gehen hierbei traditionell in Stufen von 1.2 vor sich. Dies bedeutet: \begin{center> \ b e g i n { t a b u l a r H 111 > \hline \verb+\+magstepN $ = \mbox{Vergr\ö\ss erung > 1.2"H$ \\ \hline \end{tabular} \end{center} Es sind folgende Vergr\ö\ss erungsstufen vorgesehen. \setcounter{chapter}{3} \setcounter{section}{4} \markbothiKapitel 3. Schriftformate}{3.4. Zusätzliche Schriften} \begin{center} \begin{tabular}{I1I1I1I} \hline \multicolumn{3>{IcI>{Vergr\ö\ss erungsstufen} \\ \hline H k magstepH ft Faktor \\ \hline 0 ft magstepO ft 1.00000 \\ \hline half ft magstephalf ft 1.09545 \\ \hline 1 ft magstepl ft 1.20000 \\ \hline 2 ft magstep2 ft 1.44000 \\ \hline 3 ft magstep3 ft 1.72800 \\ \hline 4 ft magstep4 ft 2.07360 \\ \hline 5 ft magstep5 ft 2.44832 \\ \hline \end{tabular} \end{center} Wenn 1 = 0 , dann k a n n die Klausel 'scaled \verb+\+magstep0' wegfallen. Die Wirkung der eingegebenen Commands zeigen vir an dem Beispiel der Schriftart cmb. Es handelt sich um eine Computer Modern Bold Roman. Sie unterscheidet sich von der Standardschrift \verb+\bf+ dadurch, da\ss\ die Breite der Schrift (width) nicht erweitert ist. Die Schrift 'l\äuft nicht so breit' wie die Schrift
Kapitel 3. Schriftformate
\verb+\bf+. Von dieser Schriftaxt gibt es die Schriftgr\ö\ss e lOpt. Damit hei\ss t die S c h r i f t also cmblO. Schreibt man nun: \beginiverbatim} \font\bo=cmblO \font\boh=cmblO scaled \magstephalf \font\boe=cmblO scaled \magstepl \font\boz=cmblO scaled \magstep2 \font\bod=cmblO scaled \magstep3 \font\bov=cmblO scaled \magstep4 \font\bof=cmblO scaled \magstep5 {\bo Das i s t Vergr\ö\ss erung 1} {\boh Das i s t Vergr\ö\ss erung 1.09545} {\boe Das i s t Vergr\ö\ss erung 1.20000} {\boz Das i s t Vergr\ö\ss erung 1.44000} {\bod Das i s t Vergr\ö\ss erung 1.72800} {\bov Das i s t Vergr\ö\ss erung 2.07360} {\bof Das i s t Vergr\ö\ss erung 2.44832} \end{verbatim} So erh\ält mein: \medskip \font\bo=cmbl0 \font\boh=cmbl0 scaled \magstephalf \font\boe=cmbl0 scaled \magstepl \font\boz=cmbl0 scaled \magstep2 \font\bod=cmbl0 scaled \magstep3 \font\bov=cmbl0 scaled \magstep4 \font\bof=cmbl0 scaled \magstep5 {\bo Das i s t Vergr\ö\ss erung 1} {\boh Das i s t Vergr\ö\ss erung 1.09545} {\boe Das i s t Vergr\ö\ss erung 1.20000} {\boz Das i s t Vergr\ö\ss erung 1.44000} {\bod Das i s t Vergr\ö\ss erung 1.72800} •CXbov Das i s t Vergr\ö\ss erung 2.07360} {\bof Das i s t Vergr\ö\ss erung 2.44832} \medskip \varpar=3cm \beginive^rlist} \item[HinHeis 1:] Durch die Vergr\ö\ss erung z.B. einer 10-pt-Schrift entsteht nur nNäherungsweise eine zur 12-pt-Schrift \äquivalente S c h r i f t . W\ährend die 12-pt-Schrift durch Wahl der geeigneten Werte f\ür die einzelnen Parameter konstruiert wurde, handelt es sich bei
195
196
Quelltext
der Vergr\ö\ss erung mit dem Faktor 1.2 um eine reine Skalierung. \item[Hinveis 2:] Um die \Übersichtlichkeit der Anwendernamen zu erhalten, wird vorgeschlagen, die einzelnen Vergr\ö\ss e\-rungs\-stu\-ien einer Schriit so zu benennen, da\ss\ die Schriitart und die Vergr\ö\ss erungsstufe deutlich Verden. Da Ziffern im Anvendernamen nicht zugelassen sind, empfiehlt sich das oben versendete Verfallren: der Käme aller Schriften wird durch die gleiche Zeichenkette eingeleitet (im Beispiel: bo). Die Vergr\ö\ss erungsstufen werden durch die folgenden Einzelzeichen dargestellt. \begin{center> \begin{tabular}{Ic11I} \hline Zeichen * \multicolumn{lH I c 1HBedeutung}\\ \hline ft (scaled \verb+\+magstepO) \\ h ft scaled \verb+\+magstephalf \\ e ft scaled \verb+\+magstepl \\ z ft scaled \verb+\+magstep2 \\ d ft scaled \verb+\+magstep3 \\ v ft scaled \verb+\+magstep4 \\ f ft scaled \verb+\+magstep5 \\ \hline \end{tabular> \end{center} Die Zeichen entsprechen hierbei den ersten Buchstaben der Ziffern 1 — 5. \end{varlist> \section{Symbole> \TeX\ gestattet die Darstellung unterschiedlicher Symbole. Eine Auswahl ist in der Tabelle \ref{Spezialz} zusammengestellt. \begin{f igure>[ht] \begin{center> Ybegin-CtabularMllllllll} \'{o>ft\verb+\'{o}+ft\"{o}t\verb+\"{o}+ft\v{o}ft \verb+\v{o>+&\c{o>ft\verb+\c{o>+\\ \'{o>ft\verb+\'{o>+ft\={o>ft\verb+\={o>+ft\H{o>ft \verb+\H{o>+ft\d{o>ft\verb+\d{o>+\\ \oe ft\verb+\oe+ft\AAft\verb+\AA\+ft\aeft\verb+\ae+ ft\o ft \verb+\o+\\ \"{o>ft\verb+\-{o>+ft\.-Co>ft\verb+\.{o>+ft\tioo>ft \verb+\t{oo>+ft\copyrightft\verb+\copyright+\\ \b{o}ft\verb+\b{o}+ft\Sft\verb+\S+ft\c{c}ft\verb+\c{c}+ ft\poundsft\verb+\pounds+\\
Kapitel 3. Schrift formate \öft\verb+\ö+fc\ss\ 4\verb+\ss+ fr fr fr fr \\ \end{tabular} \caption{\label{Spezialz}Symbole} \end{center} \end{figure} \subsection{Symbole aus anderen Sprachen} In der Schrift kommen auch besondere Symbole vor. \TeX\ ist hier sehr flexibel. F\ür alle vorkommenden Symbole sind SchreibmNöglichkeiten geschaffen norden. Das Prinzip ist sehr einfach. Symbole aus anderen Sprachen und Spezialsymbole werden durch einen vorangestellten \verb+\+ und eine AbkYürzung dargestellt. Im folgenden sind hierf\ür einige Beispiele dargestellt. Aus der letzten Zeile ist hierbei zu entnehmen, wie die deutschen Umlaute und \ss\ geschrieben werden k\önnen. Der Anwender unserer \TeX -Realisierung braucht sich hierum nicht zu k\ümmern. Bei 8-bit-Terminals wird die Umschl\üsselung durch ein vorgeschaltetes Umsetzungsprogramm vorgenommen. Bei 7-bit-Terminals werden Funktionstasten mit den entsprechenden Sequenzen belegt, so da\ss\ durch {\bf einen} Tastendruck (eventuell mit Hochstellung) die den deutschen Umlauten und \ss\ entsprechenden Sequenzen erzeugt werden. \subsection{Spezialsymbole} Auch \über die Sprachsymbole hinaus kann \TeX\ noch andere Symbole darstellen. Die Mathematik hat eine gro\ss e Anzahl von Symbolen vorr\ätig, die alle auch in \TeX\ verwendet werden k\önnen. Mathematische Symbole werden in dem Kapitel ''Mathematischer Satz'' behandelt. Soweit es sich aber um Symbole handelt, die auch in der Datenverarbeitung oder Organisation sowie im allgemeinen Sprachgebrauch verwendet werden, sollen sie hier angegeben werden. Zur Schreibweise bei diesen Symbolen ist zu beachten, da\ss\ sie nur dann gYiiltig sind, wenn sich das System im mathematischen Satz befindet. Aus diesem Grunde m\üssen die Symbole in \$ eingeschlossen werden. Es ist also zu schreiben \verb+$\abk$+, und hierbei ist f\ür das Symbol \verb+\abk+ die entsprechende AbkNürzung zu verwenden. \begin{figure}Cht] \begin{center} \begin{tabularHllll}
197
198 $\bullet$*\verb+$\bullet$+ft $\ast$*\verb+$\ast$+\\ $\star$*\verb+$\star$+ft $\circ$fc\verb+$\circ$+\\ $\cdot$A\verb+$\cdot$+* $\diamond$A\verb+$\diamond$+\\ $\bigtriangleup$k\verb+$\bigtriangleup$+k $\leftarrow$fc\verb+$\leftarrow$+\\ $\uparrow$*\verb+$\uparrow$+A $\Leftarrow$t\verb+$\Leftarrow$+\\ $\Longleitarrow$4\verb+$\Longleftarrow$+fc $\LongrightarroH$ft\verb+$\LongrightarroB$+\\ $\dosnarrow$ft\verb+$\doHnarrow$+ft $\DownarroH$Jfc\verb+$\Downarrow$+\\ $\Longleftrightarrow$Jt\verb+$\Longleftrightarrow$+ft $\flat$ft\verb+$\ilat$+\\ $\sharp$*\verb+$\sharp$+ft $\leq$A\verb+$\leq$+\\ $\geq$ft\verb+$\geq$+t$\equiv$ft\verb+$\equiv$+\\ $\neq$*\verb+$\neq$+ft $\times$*\verb+$\times$+\\ $\div$*\verb+$\div$+* $\infty$ft\verb+$\infty$+\\ $\partial$A\verb+$\partial$+& $\ll$Jk\verb+$\ll$+\\ $\gg$*\verb+$\gg$+ft $\approx$Jt\verb+$\approx$+\\ $\vee$fc\verb+$\vee$+4 $\wedge$*\verb+$\Hedge$+\\ $\neg$ft\verb+$\neg$+ft $\cap$ft\verb+$\cap$+\\ $\cup$*\verb+$\cup$+t $\subset$*\verb+$\subset$+\\ $\supset$fc\verb+$\supset$+Jt $\subseteq$*\verb+$\subseteq$+\\ $\supseteq$*\verb+$\supseteq$+4 $\in$4\verb+$\in$+\\ $\ni$A\verb+$\ni$+k $\exists$*\verb+$\exists$+\\ \end{tabular> \caption{Spezialzeichen> \end-Ccenter} \end{iigure} Es wird davon ausgegangen, da\ss\ vor etilem Herzen von
Quelltext
Kapitel 3. Schriftformate Mathematikern h\öher schlagen, wenn sie die vielen mathematischen Symbole sehen, die in \TeX\ dargestellt werden k\önnen. Manchmal w\äre es ganz n\ützlich, venn die Bedeutung der normierten Zeichen einer gr\ö\ss eren Gruppe von Schreibern und Lesern gel\äufig «\äre, «eil dann manche Kommunikation besser geschehen k\önnte. Insbesondere f\ür Mathematiker sei noch erw\ähnt, da\ss\ auch das gesamte griechische Alphabet (als mathematische Zeichen eingeschlossen in \$) geschrieben «erden kann. Als Abk\iirzung «erden die \üblichen Abk\ürzungen verwendet. Wir nennen dafYiir beispielsweise \begin{center> \begin{tabular>{llll> $\alpha$ft\verb+$\alpha$+ft $\beta$ft\verb+$\beta$+\\ $\gamma$ft\verb+$\gamma$+fc $\delta$ft\verb+$\delta$+\\ $\varepsilon$i\verb+$\varepsilon$+it $\epsilon$ft\verb+$\epsilon$+\\ $\pi$*\verb+$\pi$+Ä $\phi$fc\verb+$\phi$+\\ $\varphi$4t\verb+$\varphi$+ft $\sigma$Jt\verb+$\sigma$+\\ $\Pi$ft\verb+$\Pi$+ft $\Phi$*\verb+$\Phi$+\\ \end{tabular> \begin{figure}[h] \caption{Griechische Buchstaben} \end{figure} \end{center} \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aufgabe \theaufg}} Bitte schreiben Sie folgenden Text, wobei Sie bitte keine Umlaute verwenden sollen, sondern die in Abb. \ref{Spezialz} eingegebenen ASCII-Verschl\üsselungen. \newline \hfill Um zu zeigen, wie gut er die franz\ösische Sprache beherrscht, rief er dem Kellner zu ''Allez gar\c{c}on!'', um ihn zur Eile zu treiben. Er h\ätte auch gar nichts anderes sagen k\önnen, weil es die einzigen Worte waren, die er perfekt beherrschte. \par>
199
200
Quelltext
\section{Schriften} In diesem Abschnitt wird eine \Übersicht Yiiber a l l e zur Z e i t in \TeX\ verf\ügbaren Schriften gegeben. Dabei unterteilen wir wieder in Staadardschriften diese sind 'preloaded' (d.h. sie sind mit dem Laden von \LaTeX\ in der beschriebenen Weise verfNügbar) und z u s ä t z l i c h e Schriften. \subsection{Standardschriften)\font\ssi=cmssilO \font\sltt=cmsltt10 \font\ssbx=cmssbxlO \def\st{$\backslash$> \vfill \hfill \begin \hline \multicolumn-(2M I c I MComputer Modern Roman Name: \st rm} \\\hline S c h r i f t k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmr5 k \ \ \hline cmr6 k \\ \hline cmr7 Jt 4 \\ \hline cmr8 k \ \ \hline cmr9 k \\ \hline cmrlO * 2,3,4,5,6 \\ \hline cmrl2 * \\ \hline cmrl7 k \\ \hline \multicolumn-(2Klp{4.3in>l> { Schriftprobe in 10-pt-Schrift:>\\ \hline \multicolumn{2Hlp{4.3in}|} { Gallia est omnis divisa in partes t r e s , quarum unaai incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua G a l l i appellantur.> \\ \hline \end{tabular> \hfill \vfill \hfill \begin{tabular>{|1|1|> \hline \multicolumn{2}{IcIHComputer Modern Bold Extended Roman »ame: \st bf> \Whline S c h r i f t k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmbx5 k \ \ \hline cmbx6 k \ \ \hline
Kapitel 3. Schrift formate cmbx7 Jt 4\\ \hline cmbx8 k \\ \hline cmbx9 fc \\ \hline cmbxlO k 2,3,4,5,6 \\ \hline cmbxl2 * \\ \hline \multicolumn{2Hlp{4.3in}|} < Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2Hlp{4.3in}|} { {\bf Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.» \\ \hline \end{tabular> \hfill \vfill \hfill \begin{tabular>{I1I1I> \hline \multicolumn{2>{Icl>{Computer Modern Typewriter Haine: \st tt> \\\hline Schriit k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmtt8 k \\ \hline cmtt9 k \\ \hline cmttlO k 2 \\ \hline cmttl2 k \\ \hline \multicolumn{2Klp{4.3in>|> { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolnmn{2HIp{4.3in>I} { {\tt Gallia est omnis divisa in paxtes tres, quarum unam\hfil\newline incolunt Belgae, aliam Aquitani, tertieim, qui in ipsorum\hfil\newline lingua Galli appellantur.» \\ \hline \end{tabular> \hfill \vfill \hfill \begin{tabular> \hline \multicolumn{2>{|cl>{Computer Modern Italics Harne: \st it> \\\hline Schrift k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmit7 k \\ \hline cmit8 k \\ \hline cmit9 k \\ \hline cmitlO k \\ \hline
201
202
Quelltext
cmitl2 k \\ \hline cmitl7 k \\ \hline \multicolumn{2}{Ip{4.3 i n } I } { Schriitprobe in 1 0 - p t - S c h r i f t : } \ \ \hline \multicolumn{2}{|p{4.3in}|} { { \ i t G a l l i a est omnis d i v i s a in partes t r e s , quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua G a l l i appellantur.>} \\ \hline \end{tabular> \hfill \vfill \hfill \begin{tabular>{I1I1I> \hline \multicolumn{2>{IcIHComputer Modern Sans S e r i f Same: \st si> \\\hline S c h r i f t k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmss8 k \\ \hline cmss9 k \\ \hline cmsslO k \\ \hline cmssl2 * \\ \hline cmssl7 k \\ \hline \multicolumn{2>{|p{4.3in>|> { Schriftprobe in 1 0 - p t - S c h r i f t : } \ \ \hline \multicolumn{2Hlp{4.3in>|> { -C\sf G a l l i a est omnis d i v i s a in partes t r e s , quanus unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua G a l l i a p p e l l a n t u r . » \\ \hline \end{tabular} \hfill \vfill \hfill \begin{tabularH H i l l } \hline \multicolumn{2}{|c|}{Computer Modern Slanted Name: \st sl> \\ \hline S c h r i f t k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmsl8 k \\ \hline cmsl9 * \\ \hline cmsllO k \\ \hline cmsll2 Jt \\ \hline \multicolumn{2Klp{4.3in}|> { Schriftprobe in 1 0 - p t - S c h r i f t : } \ \ \hline
Kapitel 3. Schrift formate \multicolunn{2Klp{4.3in>l> { { \ s l G a l l i a e s t omnis d i v i s a i n p a r t e s t r e s , quarum unam i n c o l u n t B e l g a e , a l i a a A q u i t a n i , t e r t i a n , q u i i n ipsorum l i n g u a Galli appellantur.}} \ \ \hline \end{tabular} \hfill \setcounter{chapterH3> \setcounter{section}{6} \ m a r k b o t h { K a p i t e l 3. S c h r i f t f o r m a t e } { 3 . 6 . S c h r i f t e n } \font\logo=logolO \font\ssi=cmssilO Yfont\sltt=cmslttlO \font\ssbx=cmssbxlO \iont\b=cmblO \font\bxsl=cmbxsllO \ f o n t \ b x t i=cmbxt i 1 0 \font\dunh=cmdunhlO \font\inch=cminch \font\itt=cmittlO \font\mi=cmmilO \font\mib=cmmiblO \font\ssq=cmssq8 \iont\ssqi=cmssqi8 \font\ssdc=cmssdclO \iont\u=cmulO \iont\vtt=cmvttlO \def\ko-C-C\rm , » \def\pu{{\rm . » \def\st{$\backslash$} \dei\le{{\rm\hspace*{10pt>» \iont\sltt=cmslttlO \font\bsl=cmbsllO \def\st{$\backslash$> \vfill \hfill \begin{tabular>{11111> \ h l i n e \ m u l t i c o l u m n { 2 } { | c l H C o m p u t e r Modern Small Caps Harne: \ s t sc> \ \ \hline S c h r i t t k V e r g r \ ö \ s s e r u n g s t s t u f e n a u \ s s e r 0 , 1, h a l f \ \ \hline cmsl8 k \ \ \ h l i n e cmsl9 * \ \ \ h l i n e cmsllO * \ \ \ h l i n e
203
204
Quelltext
cmsll2 fc \\ \hline \multicolumn{2Hlp{4.3in}|} { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2}{lp{4.3in}|> { {\sc Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli a p p e l l a n t u r . » \\ \hline \end{tabular} \hfill \subsection{Zus\ätzliche Schriften} Bei der Generierung von \LaTeX\ Verden die bisher gezeigten Schriften automatisch generiert. HierfYiir mu\ss\ aber entsprechen Raum im Hauptspeicher freigehalten werden. Es werden ganze Schriftfamilien mit einem Namen versehen (z.B. rm). F\ür diese Familien stehen die genannten Vergr\ö\ss erungsstufen (z.B. large, smalll) zur Verf\ügung. Im allgemeinen wird man mit den Standardschriften beim Satz von B\üchern auskommen. Bei den z u s ä t z l i c h e n Schriften ist hingegen stets nur eine Schrift definierbar. Es mu\ss\ sowohl der Name wie auch die Gr\ö\ss e angegeben werden. Der Name in \TeX\ ist frei w\ählbar. Die Definition sollte in der PrXäambel erfolgen. Hierbei ist zu beachten, da\ss\ aus zwei GrYiinden die Zahl der verwendeten Schriften beschr\änkt bleiben sollte. Zum einen wirkt das Dokument unruhig, wenn zu viele Schrifteen eingesetzt werden, zum anderen ist der Platz zum Speichern der Schriften im Hauptspeicher begrenzt. Bei zu vielen verwendeten Schriften kommt es zum SpeicherXüberlauf. \bigskip \begin-CtabularK 11111 > \hline \multicolumn{2}{IcI}{Computer Modern Sans Serif Bold Extended > \Whline Schrift Jt Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmssbxlO * 2, 3, 4, 5, 6\\ \hline \multicolumn{|p{4.3in>|> { Schriftprobe in 10-pt-Schrift:>\\ \hline \multicolumn{2>{|p{4.3in>|> { {\ssbx Gallia est omnis divisa in partes tres, quarum unam\hfil\newline incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum\hfil\newline lingua Galli a p p e l l a n t u r . » \\ \hline \end{tabular>
Kapitel 3. Schriftformate
\medskip \begin{tabularH 11111 > \hline \multicolumn{2HIcIHComputer Modern Sans Serif Bold > \\\hline S c h r i f t ft Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmbsllO » 2 , 3, 4, 5, 6\\ \hline \multicolumn{2Hlp{4.3in}|} i Schriftprobe in 10-pt-Schrift:>\\ \hline \multicolumn{2Hlp{4.3in}|} { {\bsl Gallia est omnis divisa in partes t r e s , quarum unam\hfil\newline incolunt Belgae, alian Aquitani, tertiam, qui in ipsorum\hfil\newline lingua G a l l i a p p e l l a n t u r . » \\ \hline \end{tabular> \hfill \vfill \hfill Ybegin-CtabularHIllll} \hline \multicolumn{2}{|clHComputer Modern Slanted Sans S e r i f } \\\hline S c h r i f t k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmssi8 k \\ \hline cmssi9 * \\ \hline cmssilO k \\ \hline cmssil2 k \\ \hline cmssil7 k \\ \hline \multicolumn{2>{|p{4.3in>|> { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2}{Ip{4.3in}I} { { \ s s i Gallia est omnis divisa in partes t r e s , quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua G a l l i a p p e l l a n t u r . » \\ \hline \end{tabular} \hfill \vfill \hfill \ b e g i n { t a b u l a r K l l l l | > \hline \multicolumn{2>{|c|>{Computer Modern Bold> NWhline Schrift k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmblO 4k \\ \hline \multicolumn{2>{|p{4.3in>|> {
205
206
Quelltext
Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2Klp{4.3in>l> { {\b Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.}} \\ \hline \end{tabular} \hfill \viill \hfill \begin{tabularHll|l|} \hline \multicolumn{2}{IcI}{Computer Modern Bold Extended Slanted} \\\hline Schrift k Vergr\ö\ss erungststufen au\ss er 0, 1, hall \\ \hline cmbxsllO k \\ \hline \multicolumn{2Mlp{4.3in}|} { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2Hlp{4.3in}|} i {\bxsl Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.» \\ \hline \end{tabular} \hfill \vfill \hfill \begin{tabularH 11111 > \hline \multicolumn{2}{Ic|MComputer Modern Bold Extended Text Italic} \\\hline Schrift k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmbsylO k \\ \hline \multicolumn{2}{Ip{4.3in}I} { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2}{Ip{4.3in}I} { {\bxti Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.}} \\ \hline \end{tabular} \hfill \vfill \hfill \begin{tabular}{11111} \hline \multicolumn{2KlclHComputer Modern Dunhill Roman} \\\hline Schrift k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\
Kapitel 3. Schrift formate \hline cmdunhlO k \\ \hline \multicolumn{2}{|p{4.3in}|} { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2Hlp{4.3in}|} { {\dunh Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.}} \\ \hline \end{tabular} \hfill \vfill \hfill \begin-CtabularHll|l|} \hline \multicolumn{2M I c I H C o m p u t e r Modern Inch} \\\hline Schriit k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cminch k \\ \hline \multicolumn{2Hlp{4.3in}|} { Schriftprobe in l-inch-Schrift:}\\ \hline \multicolumn{2H I p{4. 3in} I} { {\inch GALLI » \\ \hline \end{tabular} \hfill \vf ill \hfill \begin{tabularHll|l|} \hline \multicolumn{2HlclHComputer Modern Typewriter Italic} \\\hline Schrift k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmittlO k \\ \hline \multicolumn{2}{Ip{4.3in}I} { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2}{Ip{4.3in}I} { {\itt Gallia est omnis divisa in partes tres, quarum unam \hfill\newline incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum\hfill\newline lingua Galli appellantur.}} \\ \hline \end{tabular} \hfill \vfill \hfill \begin{tabular}{11111} \hline
207
208
Quelltext
\multicolumn{2}{ I clHComputer Modem Mathematics I t a l i c } \\\hline S c h r i f t t Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmnuni5 k \\ \hline cmmmi6 Jt \\ \hline cmmmi7 k \\ \hline cmmmi8 k \\ \hline cmmmi9 k \\ \hline cmmmilO k \\ \hline cnuiunil2 k \\ \hline \multicolumn{2}{|p{4.3in}|} { Schriftprobe in 10-pt-Schrift:>\\ \hline \nmlticolumn{2Hlp{4.3in>l> { {\mi G a l l i a \ l e est\le omnis\le divisa\le in\le pairtesXle tres\ko\le quajrumXle unam\hfill\newline incolunt\le Belgae\ko\le aliam\le Aquitani\ko\le tertiam\ko\le qui\le in\le ipsoruBiXhfillNnesline lingua\le G a l l i \ l e appellantur\pu» \\ \hline \enditabular} \hfill \vf i l l \hfill \begin-Ctabular>{|l|l|} \hline \nmlticolumn{2HlclHComputer Modern Bold Mathematics I t a l i c } \\\hline S c h r i f t k Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmmmiblO k \\ \hline \multicoluinn{2}{Ip{4.3in}I} { Schriftprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2MIp{4.3in}I} { {\mib G a l l i a \ l e est\le omnis\le divisa\le in\le partes\le tres\ko\le queunim\le\hfill\newline unam incolunt\le Belgae\ko\le aliam\le Aquitani\ko\le terti2un\ko\le\hfill\newline qui\le in\le ipsorum lingua\le G a l l i \ l e appellantur\pu}} \\ \hline \end{tabular} \hfill \vfill \hfill \begin{tabular}{11111} \hline \multicolumn{2}{|cIHComputer Modern Sans Serif Quotation} NWhline S c h r i f t k Vergr\ö\ss erungststuf en au\ss er 0, 1,
Kapitel 3. Schrift formate
half \\ \hline cmssq8 t \\ Nhline \multicolumn{2}{|p{4.3in}|} { Schriftprobe in 8 - p t - S c h r i f t : } \ \ \hline \multicolumn{2}{|p{4.3in}|} { {\ssq Gallia est omnis divisa in partes t r e s , quarum unam incolunt Belgae, a l i am Aquitani, tertiam, qui in ipsorum lingua G a l l i a p p e l l a n t u r . » \\ \hline \end{tabular} \hfill \vfill \hfill \ b e g i n { t a b u l a r H l l | l | } \hline \multicolumn{2H I c I }{Computer Modern Seins Serif Quotation I t a l i c } \\\hline S c h r i f t t Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmssqi8 k \\ \hline \multicolumn{2}{|p{4.3in}|} { Schriftprobe in 8-pt-Schrift:>\\ \hline \multicolumn{2}{|p{4.3in}|} { {\ssqi Gallia est omnis divisa in partes t r e s , quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Gelili a p p e l l a n t u r . » \\ \hline \end{tabular> \hfill \vfill \hf i l l \begin{tabular}{11111> \hline \multicolumn{2>{IcIHComputer Modern Sans Serif Demi Bold} \\\hline S c h r i f t fc Vergr\ö\ss erungststufen au\ss er 0, 1, half \\ \hline cmssdclO k \\ \hline \multicolumn{2}{Ip{4.3in}I} { Schriftprobe in 1 0 - p t - S c h r i f t : } \ \ \hline \multicolumn{2}{Ip{4.3in}I} { {\ssdc Gallia est omnis divisa in partes t r e s , quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua G a l l i a p p e l l a n t u r . } } \\ \hline \end{tabular} Yhfill
209
210
Quelltext
\vfill \hfill \begin{tabularHUIll} \hline \multicolumn{2HlclHComputer Modern Unslanted Text Italic}\\\hline Schriit k Vergr\ö\ss erungststuien au\ss er 0, 1, hali \\ \hline cmulO ft \\ \hline \multicolumn{2}{|p{4.3in}|} { Schriitprobe in 10-pt-Schrift:}\\ \hline \multicolumn{2}{|p{4.3in}|} { {\u Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.}} \\ \hline \end{tabular} \hfill \viill \hf ill \begin{tabular}{ 11111} \hline \multicolumn{2}{|clHComputer Modern Typewriter Variable Type}\\\hline Schriit k Vergr\ö\ss erungststuien au\ss er 0, 1, half \\ \hline cmvttlO k \\ \hline \multicolumn{2>{|p{4.3in>|> { Schriitprobe in 10-pt-Schrift:>\\ \hline \multicolumn{2}{|p{4.3in}|} { {\vtt Gallia est omnis divisa in partes tres, quarum unam incolunt Belgae, aliam Aquitani, tertiam, qui in ipsorum lingua Galli appellantur.}} \\ \hline \end{tabular} \hfill \vfil \varpar=3cm \addtocounter{auig}{l} \begin{varlist} \item[Aufgabe \theaufg] Welche Commands müssen geschrieben werden, wenn man 'Computer Modern Sans Serif Demi Bold' verwenden möchte? Welches ist dann die grö\ss te Schriftgrö\ss e? \end{varlist}
Kapitel 4. Einfache Strukturen
Kapitel 4 Einfache Strukturen
\chapter{Einfache Strukturen} Strukturierung eines Textes bedeutet definitionsgem\ä\ss\ die sachgem\ä\ss e Anordnung eines Textes, so da\ss\ der Sinnzusammenhang dadurch besonders gut wiedergegeben wird. Bitte beachten Sie, da\ss\ es bei einem Text immer darauf ankommt, da\ss\ er gut gelesen Verden kann, da\ss\ also eine optimale Kommunikation zwischen Schreiber und Leser zustande kommt. In Texten kommt es h\äufig vor, da\ss\ bestimmte Erl\äuterungen erfolgen m\üs\-sen, die den Text zus\ätzlich erkl\ären. Diese sollen vom Xübrigen Text abgehoben werden. Man erreicht das dadurch, da\ss\ man z.B. den erl\äuternden Text einr\iickt. Unter Einr\ückungen oder Absatz-Einzug wollen wir dabei den Sachverhalt verstehen, da\ss\ Zeilen nicht am linken Textrand, sondern um ein kleines St\ück nach rechts verschoben beginnen. Manchmal bestehen diese Erl\äuterungen aus verschiedenen Textteilen, bei denen ein Begriff hervorgehoben werden soll. Diesen Begriff stellt man dann an den Anfang des Textteils. In anderen FNällen ist es wichtig, die einzelnen Erl\äuterungen zu numerieren, um etwa die Priorit\ät der einzelnen Punkte besonders zu betonen. Es kann manchmal vorkommen, da\ss\ man ErlXäuterungen geben mNöchte, die zweigeteilt sind. Zum einen sollen nur die Elemente (wie in einer Liste) aufgez\ählt und dabei vielleicht betont werden. Zum anderen sollen die einzelnen Elemente noch erl\äutert werden. F\ür alle genannten Strukturen hat \TeX\
211
212 grundsätzliche Elemente \indexienvironment} f\ür den Satz von Texten vorbereitet. Sie hei\ss en {\bf environment}, «as soviel vie Umgebung hei\ss t, und im Sinne der Textbearbeitung vielleicht mit Erl\äuterung \übersetzt werden k\önnte. In der Steuersprache «erden die environments durch die in Abb. \ref{struktur} daxgestellte Grundstruktur geschrieben. Folgende Strukturen sind vorgesehen. \label{enumer} \beginienumerate} \item quote f\ür Einr\ückungen \index{quote} \item quotation lYiir Einr\ückungen mit mehreren Abs\ätzen \index{quotation} \item description i\ür Einr\ückungen mit hervorgehobenen Elementen \index{description} \item itemize f\ür markierte Einr\ückungen \index{itemize} \item enumerate f\ür numerierte Einr\ückungen \index{enumerate} \item varlist für variable Listen (2-spaltig) \item graubox für grau unterlegte Texte \item verbatim für unübersetzte Texte \indexivariable Listen} \end-fenumerate} Dies ist gleichzeitig auch die Gliederung f\ür das vorliegende Kapitel. Die einzelnen Strukturen werden im folgenden getrennt vorgestellt. \begin{figure}[ht] \begin{center} \begin{verbatim} \begin{name-env} Text in normaler ASCII-Form mit beliebig vielen Zeilen \end{name-env} \end{verbatim} \end{center} \caption{\label{struktur}environment} \end{figure} Der name-env identifiziert die Art der Erl\äuterung. \section{'environment quote'} Diese Struktur wird verwandt, um Strukturen im Text einzur\ücken. Der name-env ist quote. \index{quote}
Quell text
K a p i t e l 4. Einfache S t r u k t u r e n Im folgenden wird ein Beispiel f\ür die Anwendung gegeben. \medskip {\em Sie schreiben:} \begin{verbatim} Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \beginiquote} Informationseinheiten sind Bit, Byte, Wort und Halbwort, Doppelwort. Mehrere aufeinanderfolgende Bytes werden als Feld verarbeitet. \end{quote} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \end{verbatim} i\em und erhalten hieraus nach der \Übersetzung:} \medskip Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \begin{quote} Informationseinheiten sind Bit, Byte, Wort und Halbwort, Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. \end{quote} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \begin{grauboxH8}{0. 8\hsize} Schreibt man zwei environments, also: \begin{verbatim} \begin{quote} TEXT1 \begin{quote} TEXT2 \end{quote) \end{quote} \end{verbat im} so wird TEXT1 einmal, TEXT2 zweimal einger\ückt. {\bf Allgemein kann gesagt werden: Die Environments auch unterschiedliche k\önnen beliebig 'geschachtelt' werden.} \end{graubox} \section{'environment quotation'}
213
214
Quelltext
\index{quotation} Diese Struktur wird verwandt, um Strukturen im Text einzurNucken. Der Text darf hierbei aus mehreren Abs\ätzen bestehen. Der name-env ist quotation. Im folgenden wird ein Beispiel f\ür die Anwendung gegeben. \medskip {\em Sie schreiben:} \begin{verbatim} Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. Ybeginiquotation} Informationseinheiten sind Bit, Byte, Hort und Halbwort, Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. Adressierbare Informationseinheiten sind Byte, Wort, Feld und Halbwort, Doppelwort. \end{quotation} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \end{verbatim} {\em und erhalten hieraus nach der NÜbersetzung:} \medskip Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \begin{quotat ion} Informationseinheiten sind Bit, Byte, Wort und Halbwort, Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. Adressierbare Informationseinheiten sind Byte, Wort, Feld und Halbwort, Doppelwort. \end{quotation} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \section{'environment itemize 1 } \index{itemize} Diese Struktur wird verwandt, um Strukturen im Text einzurXücken und jeweils den Absatzanfang zu markieren. Der name-env ist itemize. Der Text darf aus mehreren Abs\ätzen bestehen. Die einzelnen Abs\ätze werden folgenderma\ss en geschrieben.
K a p i t e l 4.
Einfache Strukturen
\begin{verbatim} \item[markierung] text \end{verbatim} F\ür markierung kann jedes beliebige Zeichen oder eine Zeichenfolge versendet «erden. Hiermit beginnt der jeweilige Absatz. Wird der Parameter markierung weggelassen, dann wird als Markierung $\bullet$ (\verb+$\bullet$+) verwendet. \medskip '/.erzwungener Absatz Im folgenden wird ein Beispiel f\ür die Anwendung gegeben. \medskip {\em Sie schreiben:} \begin{verbatim> Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \begin{itemize} \item [$\star$] Informationseinheiten sind Bit, Byte, Wort und Halbwort und Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. \newpage '/,erzwungener Seitenumbruch 29.03.90 \item [$\star$] Adressierbare Informationseinheiten sind Byte, Wort,Feld und Halbwort, Doppelwort. \end{itemize} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \end{verbatim> i\em und erhalten hieraus nach der \Übersetzung:} \medskip Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \begin{itemize> \item [$\star$] Informationseinheiten sind Bit, Byte, Wort und Halbwort und Doppelwort. Mehrerere aufeinanderfolgende Bytes werden als Feld verarbeitet. \item [$\star$] Adressierbare Informationseinheiten sind Byte, Wort, Feld und Halbwort, Doppelwort. \end{itemize> Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \section{'environment description'} \index{description>
215
216 Diese Struktur wird verwandt, um Strukturen im Text einzur\ücken und jeweils am Absatzanfang in Fettdruck den Absatztitel anzugeben. Der name-env ist description. Der Text darf aus mehreren Abs\ätzen bestehen. Die einzelnen Abs\ätze werden folgenderma\ss en geschrieben. \beginiverbatim} \item[absatztitel] text \end{verbatim} Als absatztitel kann jedes beliebige Zeichen oder eine Zeichenfolge verwendet werden. Hiermit beginnt der jeweilige Absatz. Der Parameter ist erforderlich. Im folgenden wird ein Beispiel f\ür die Anwendung gegeben. \medskip {\em Sie schreiben:} Ybegin-Cverbat im} Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \newpage '/.erzwungener Seitenumbruch 29.03.90 \begin{description} \item [Bit] Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf. \item [Byte] Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. Das Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken. \it em [Wort] Das Wort ist in Vortmaschinen die kleinste adressierbare Informationseinheit. Das Wort hat 16 oder 32 bit. \item [Feld] Das Feld ist eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes ist meist auf 256 begrenzt. \end{description} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \end{verbatim} {\em u n d erhalten hieraus nach der NÜbersetzung:} \medskip Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der
Quelltext
Kapitel 4. Einfache Strukturen Maschinensprache gegeben. Ybegin-fdescription} \item [Bit] Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf. \item [Byte] Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. Das Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken. \item [Wort] Das Wort ist in Wortmaschinen die kleinste adressierbare Informationseinheit. Das Wort hat 16 oder 32 bit. \item [Feld] Das Feld ist eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes ist meist auf 256 begrenzt. \end{description} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \begin{graubox>{8>{0.8\hsize> Die description ist eine sehr spezielle Form der Listen mit Absatztitel, bei der auf gute Ausnutzung des Platzes geachtet wird. Zeilen sind jeweils um einen bestimmten Betrag einger\ückt. Die Einr\ückung der ersten Zeile richtet sich nach der L\änge des Absatztitels. Die erste Zeile beginnt ca. 1 em (Breite eines 'm') nach dem Ende des Absatztitels. \end{graubox} \section{'environment enumerate'} \index{enumerate} Diese Struktur wird verwandt, um Strukturen im Text einzur\ücken und jeweils die einzelnen Abs\ätze fortlaufend zu numerieren. Der name-env ist enumerate. Parameter werden nicht verwendet. Der Text darf aus mehreren AbsXätzen bestehen. Die einzelnen Abs\ätze werden folgenderma\ss en geschrieben. \begin{verbatim> \item text \end{verbat im} Im folgenden wird ein Beispiel f\ür die Anwendung gegeben. \medskip {\em Sie schreiben:} \begin{verbatim} Projekte werden in Phasen eingeteilt. In dem normalen
217
218
Quelltext
Phasenmodell unterscheidet mein folgende Phasen. \b eg in{enumerate} \item Vorstudie \item Istaufnahme und InformationsbedarfsbeStimmung \item Grobkonzept \item Detailkonzept \item Systemimplementierung \item System-Test \end{enumerate} Nach Ende des Grobkonzepts wird \end{v erbat im} {\em und erhalten hieraus nach der \Übersetzung:> \medskip Projekte «erden in Phasen eingeteilt. In dem normalen Phasenmodell unterscheidet man folgende Phasen. \begin{enumerate} \item Vorstudie \item Istaufnähme und Informationsbedarfsbestimmung \item Grobkonzept \item Detailkonzept \item Systemimplementierung \item System-Test \end{enumerate} Nach Ende des Grobkonzepts wird \medskip Jedes item kann unterteilt Verden. Hierzu verwendet man ein weiteres enumerate environment. In der n\ächsten Stufe «erden dann die items z.B. durch 2.1, 2.2, us«. numeriert, wenn der Hauptabsatz die Numerierung 2 besa\ss . Schreibt man zum Beispiel: \begin{verbatim} \begin{enumerate} \item Hauptteil \begin{enumerate} \item Unterteil \item Unterteil \end{enumerate} \item Hauptteil \begin{enumerate} \item Unterteil \begin{enumerate} \item Unterunterteil \item Unterunterteil \item Unterunterteil
Kapitel 4. Einfache S t r u k t u r e n \end{enumerate} \item Unterteil \item Unterteil \end{enumerate} \item Hauptteil \end{enumerate} \end{verbat im} So erh\ält man \medskip Ybegin-Cenumerate} \item Hauptteil \newpage '/.erzwungener Seitenumbruch 29.03.90 \begin-Cenumerate} \item Unterteil \item Unterteil \end{enumerate} \item Hauptteil \beginienumerate} \item Unterteil \begin{enumerate} \item Unterunterteil \item Unterunterteil \item Unterunterteil \end{enumerate} \item Unterteil \item Unterteil \end{enumerate} \item Hauptteil \end{enumerate} Die gestufte Schreibweise ist s e l b s t v e r s t ä n d l i c h nicht notwendig. Sie wurde nur eingesetzt, um die \Übersicht\-lich\-keit zu erh\öhen. \section{'environment varlist'$\ast$} \index{v2irlist} \begin{graubox}{8}{0.8\hsize} Diese Struktur i s t , wie a l l e Makros, die mit einem $\ast$ gekennzeichnet sind, in einem Makropaket 'infmakro.tex' enthalten, das von der Informatika GmbH Hamburg als Zusatz angeboten wird. Das Makropaket i s t in Text-Code (ASCII) und damit in jedem System verwendbar. Hierf\ür mu\ss\ in der Pr\äambel \begin{verbat im} \input{infmakro} \end{verbatim}
219
220
Quelltext
geschrieben «erden. \end-Cgraubox} Ybigskip Diese Struktur wird\fussnote{Makro aus infmakro.tex} verwandt, wenn die jeweiligen Absatztitel in der ersten Spalte und die zugehörigen Abs\ätze in der zweiten Spalte stehen sollen. Diese Struktur i s t immer dann sehr Yiibersichtlich, wenn einerseits die A b s a t z t i t e l in ihrer Gesamtheit eine Information daxstellen, wenn aber g l e i c h z e i t i g , gewisserma\ss en als D e f i n i t i o n , die Erl\äuterungen f\ür die einzelnen A b s a t z t i t e l eine zu anderem Zweck ben\ötigte Information darstellen. Der name-env i s t v a r l i s t . Der Text darf aus mehreren Abs\ätzen bestehen. Es handelt sich um eine variable L i s t e . Die Spaltenbreite der ersten Spalte ( A b s a t z t i t e l ) kann vom Anwender f e s t g e l e g t werden. Die zweite Spalte (die Texte) erhält dann den restlichen Platz auf der Seite. Vor dem Aufruf des environments sind noch eine Reihe von Vorkehrungen zu t r e f f e n . \begin{enumerate}\item In der Pr\äambel i s t eine L\ängenvariable zu definieren. Dies geschieht durch \begin{center} \verb+\newlength{\varpar}+. \end{center} \item Vor dem Command \verb+\begin{varlist}+ i s t diese Variable auf die vorgesehene Spaltenbreite zu setzen. Dies geschieht durch \begin-Ccenter} \verb+\setlength{\varparHlaenge}+. \end{center} Hierbei kann die L\änge in \begin{itemize} \item pt (Punkt) \item in (inch) \item cm (Zentimeter) \end{itemize> angegeben werden. \end-Cenumerat e } Insgesamt ergibt sich also f\ür das envirorunent v a r l i s t die folgende schematische Schreibweise. \begin{verbat im}
Kapitel 4. Einfache S t r u k t u r e n vor \begin{document} . . . . \newlength{\varpar} bei jeder variablen Liste \setlength{\varpar}{xxpt} oder \setlength{\varpar}{xxin} oder \setlength{\varpar}{xxcm} \begin{varlist} \item[titell] textl \item[titel2] text2 \end{varlist} \end{verbatim} An einem Beispiel s o l l der Sachverhalt noch einmal erl\äutert «erden. \medskip i\em Sie schreiben:} \medskip \begin{verbatim} Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \setlength{\varpar}{2cm} \begin{varlist} \item [ B i t ] Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf. \item [Byte] Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. Das Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken. \it em [Vort] Das Wort i s t in Vortmaschinen die kleinste adressierbare Informationseinheit. Das Vort hat 16 oder 32 b i t . \item [Feld] Das Feld i s t eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes i s t meist auf 256 begrenzt. \end{varlist} Die Instruktionen, welche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \end{verbat im} {\em und erhalten hieraus nach der \Übersetzung:} \medskip
221
222 Im folgenden wird eine Beschreibung der Informationseinheiten und ihre Bearbeitung in der Maschinensprache gegeben. \setlength{\varpar}{2cm} \begin-Cvarlist} \it em [Bit] Das Bit ist die kleinste Informationseinheit. Alle anderen Informationseinheiten bauen auf dem Bit auf. \item [Byte] Das Byte ist in Byte-Maschinen die kleinste adressierbare Informationseinheit. Das Byte besteht aus 8 Datenbits und einem Parity-Bit zu Kontrollzwecken. \item [Wort] Das Vort ist in Wortmaschinen die kleinste adressierbare Informationseinheit. Das Wort hat 16 oder 32 bit. \item [Feld] Das Feld ist eine Byte-Folge. Seine Adresse ist die Adresse des linken Bytes. Die Anzahl von Bytes ist meist auf 256 begrenzt. \end{varlist} Die Instruktionen, «eiche Bits, Bytes, Felder und Worte verarbeiten, sind sehr unterschiedlich \addtocounter{aufg>il> \vspace{0.5cm> {\parindent=3cm \litem {{\bf Aufgabe \ t h e a u f g » Bitte schreiben Sie folgende Texte. \par> Eine Ausbildung zum Informatiker mu\ss\ aus folgenden Hauptgebieten bestehen: \begin{itemize} \item [$\cdot$] Datenverarbeitung \item [$\cdot$] Programmierung \item [$\cdot$] DV-Organisation \item [$\cdot$] Betriebswirtschaft \item [$\cdot$] Mathematik \end-Citemize} Bitte beantworten Sie auch noch folgende Zusatzfragen: \begin{enumerate> \item Wie w\ürde das Textst\ück aussehen, wenn die Teile fortlaufend zu numerieren w\ären? \item Wie k\önnte man erreichen, da\ss\ vor den einzelnen Abschnitten als Markierung ein $\bullet$ ist? \end{enumerate} \addtocounter{aufg}{l}
Quelltext
Kapitel 4. Einfache S t r u k t u r e n {\parind ent=3 cm \litem {{Xbf Aufgabe \theaufg}> Bitte geben Sie an, welche Vorkehrungen Sie t r e f f e n m\üs\-sen, wenn eine variable Liste geschrieben «erden s o l l , deren erste Spalte 2.54 cm breit ist. \par> \addtocounter{aufg}{l} {\parindent=3cm \litem { { \ b f Aufgabe \ t h e a u f g » Bitte schreiben Sie den Text auf Seite \pageref{enumer} von ''Folgende Strukturen'' bis . . . . ''im folgenden getrennt v o r g e s t e l l t . ' ' \par} \addtocounter{aufgHl> {\parindent=3cm \litem { { \ b f Aufgabe \ t h e a u f g » Es i s t auch m\öglich, die environments beliebig zu verschachteln. Hierbei sind dann die \verb+\begin{name-env} . . . \end{name-env]-+ wie ge\öffnete bzw. geschlossene Klammer zu betrachten. Es sind also z.B. folgende Strukturen denkbar. \begin{verbatim} \begin{name-envl}\item textl \begin{name-envll} \item textll \item textl2 \end{name-envll} \item text2 \item text3 \endiname-envl} \end{verbat im> Bitte schreiben Sie nun den folgenden Text. \par> \medskip Ein DV-Projekt wird in mehreren Phasen abgewickelt. Dabei sind eine Reihe von Untersuchungen in den einzelnen Phasen durchzuführen. \begin{enumerate> \item Vorstudie \begin{itemize> \item Projektziel \item Durchf\ührbarkeit \item Wirtschaftlichkeit
223
224
Quelltext
\end{itemize} \item Istaufnahme und InformationsbedarfsbeStimmung \begin{itemize} \item Istaufnähme \item Schwachstellenanalyse \item Informationsbedaxf \end{itemize} \end{enumerate} \section{'environment graubox'$\ast$} \index{graue Box> \index{graubox} Diese Struktur\fussnote{Makro aus infmakro.tex} wird verwandt, um besondere Hervorhebungen im Text zu erreichen. Es wird eine umrahmte Box mit Text zentriert erzeugt. Die Breite der Box und die Graustufe (0 — 100) k\önnen vom Anwender als Parameter gew\ählt werden. Hierbei ist die Graustufe 0 = wei\ss\ (keine Unterlegung), die Graustufe 100 ist schwarz. Dies kann nicht gew\ählt werden, weil sonst die darunterliegende Schrift nicht mehr zu sehen ist. In diesem Buch ist als Graustufe 8 gew\ählt. Dieses environment hat zwei Parameter. \varpar=3cm \begin{varlist} \item[Graustufe] Werte: 0(wei\ss ) — lOO(schwarz) gibt die Schw\ärze der unterlegten Farbe an. \item[Breite der Box] Werte: xxin (Es sind aber auch Angaben wie 0.8\verb+\+textwidth m\öglich. Damit w\ürden 80 Y/, der Textbreite f\ür die Breite der Box genutzt. \end{varlist} Die Struktur hat also folgende Gestalt: \begin{verbatim} \begin{graubox}{Graustufe}{Breite der Box} Text, der in der Box stehen soll .... \end{graubox} \end{verbatim} {\em Wenn Sie schreiben:} \medskip Ybeginiverbatim} \begin{graubox}{8H0.85\textwidth} Die Bundesrepublik Deutschland ist eine parlamentarische Demokratie. Der Bundeskanzler bestimmt die Richtlinien der Politik. \end-fgraubox}
K a p i t e l 4.
Einfache Strukturen
\end{verbatim} \medskip •[\em Hann erh\ält man hieraus nach der \Übersetzung:} \medskip \begin{grauboxH8}{0.85\textwidth} Die Bundesrepublik Deutschland i s t eine parlamentarische Demokratie. Der Bundeskanzler bestimmt die Richtlinien der P o l i t i k . \end-Cgraubox}
\medskip \section{'environment verbatim'$\ast$} \index{verbatim} \index{verb} Gelegentlich kommt es vor, da\ss\ man einmal beschreiben m\öchte, wie die einzelnen Commands zu schreiben sind. Mein w i l l also erreichen, da\ss\ bestimmte St\ücke des Textes nicht ' Yiibersetzt' werden. Wie in diesem Buch zu sehen i s t , handelt es sich hierbei um ein sehr n\ützliches H i l i s m i t t e l . Das environment verbatim setzt also den \Übersetzungsvorgang aus. Die innerhalb stehenden Texte «erden in \verb+\+tt (Typewriter) unge\ändert g e s e t z t . Die Struktur hat die folgende Gestalt: \verb+\begin{verbatim}+ \begin{verbatim} Texte, die nicht ver\ändert werden sollen \end{verbatim} \verb+\end{verbatim}+ \medskip {\em Wenn Sie schreiben:} \medskip \verb+\begin{verbatim}+ {\tt Das sind die Befehle, die stehen bleiben und l e d i g l i c h in Typewriter gesetzt werden. Es f i n d e t kein Umbruch s t a t t . } \verb+\end{verbatim}+ \medskip {\em damn erh\ält man hieraus nach der '\Übersetzung':} \medskip \begin{verbat im} Das sind die Befehle, die stehen bleiben und l e d i g l i c h in Typewriter gesetzt werden. Es f i n d e t kein Umbruch s t a t t .
225
226
Quelltext
\end{verbatim} \varpar=3cm \index{verb} \begin{varlist} \item[Hinweis:] Soll im Text erreicht werden, da\ss\ einzelne Zeichen oder Zeichenketten unNübersetzt bleiben, dann kann m a n Ybegin{verbat im} \verb+Zeichenkette Zeichenkette+ \end{verbatim} Es wird damit die Wirkung erzielt, da\ss\ alle zwischen + u n d + stehenden Zeichen un\übersetzt (d.h. in \verb+\+tt) bleiben. Dieses Verfahren kann man anwenden, wenn m a n z.B. einen Command schreiben m\öchte, ohne die Wirkung des Commands im Text z u erzielen, dann kann mein \begin{verbatim} \verb+\+Command \end{verbatim} schreiben. Es wird dadurch \verb+\+Command erzeugt. Anstelle des '+' kann auch ein anderes Zeichen verwendet werden, welches in der Zeichenkette nicht vorkommt. \end{varlist} \section{Weitere Hilfsmittel} Im System gibt es eine Reihe weiterer Hilfsmittel, die manchmal eingesetzt werden k\önnen, u m eine Struktur zu verbessern. In der folgenden \Über\-sicht werden einzelne Commands mit der jeweiligen Wirkung dargestellt. \setlength{\varpar}{lin} \begin{varlist} \item[$\backslash$newline] Wird der Command geschrieben, so \index{newline} wird an dieser Stelle ein Zeilenumbruch erzeugt. Es beginnt eine neue Zeile. \item[$\backslash\backslash$] Wird der Command geschrieben, so wird an dieser Stelle ein Zeilenumbruch erzeugt. Es beginnt eine neue Zeile. \item[$\backslash$newpage] Wird der Command geschrieben, so \index{newpage} wird an dieser Stelle ein Seitenumbruch erzeugt. Es beginnt eine neue Seite. Bit\-te beachten Sie, da\ss\ auf diese Weise in die Gesamtordnung des Dokuments (gesteuert durch d e n document-style) eingegriffen wird. \item[$\backslash$hspace\{lae\}] Der Command w i r d benutzt, um horizontal Leer-Raum z u erzeugen. Die Gr\ö\ss e des Raumes wird durch lae angegeben.
Kapitel 4.
Einfache Strukturen
Hierbei kann lae in der Form Ybegin-fitemize} \item[]xx pt \item[]xx in \item[]xx cm \end{itemize> angegeben «erden, wobei xx immer eine Zahl mit Dezimalpunkt oder eine ganze Zahl i s t . Diese Zahl kann auch negativ sein, dann bewirkt sie eine horizontale Verschiebung nach links. \verb+\hspace{0.5in}+ e r z i e l t also einen Leer-Raum von 0.5 inch. Nindex-Qispace} Hierbei i s t aber zu beachten, da\ss\ Leer-Raum am Anfang oder Ende einer Z e i l e nicht erzeugt wird, auch wenn ein \verb+\hspace+-Command abgesetzt wurde. Diese Einschränkung g i l t nicht am Anfang oder Ende eines Absatzes. Wenn Leer-Raum erzeugt werden s o l l , der unge\ändert stehen bleiben s o l l , dann i s t \verb+\hspace*{lae}+ zu schreiben. \item[$\backslash$vspace\{lae\>] Der Command wird benutzt um vertikalen Leer-Raum zu erzeugen. Die Gr\ö\ss e des Raumes wird durch lae angegeben. Hierbei kann lae in der Form \begin{itemize> \item[]xx pt \item[]xx in \item[]xx cm \end-Citemize} eingegeben werden, wobei xx immer eine Zahl mit Dezimalpunkt oder eine ganze Zahl i s t . Die Zahl kann auch negativ sein, dann bewirkt sie eine Verschiebung nach oben. Dieser Command wird hauptsächlich benutzt, um Leer-Raum zwischen Abs\ätzen zu schaffen. Venn der Command auf einer Z e i l e gegeben wird, dann wird der Leer-Raum nach Vollendung dieser Z e i l e angelegt. \verb+\vspace{0.5in}+ e r z i e l t also einen Leer-Raum von 0.5 inch. \index{vspace> Hierbei i s t aber zu beachten, da\ss\ Leer-Raum am Anfang oder Ende einer Seite nicht erzeugt wird, auch wenn ein \verb+\vspace+-Command abgesetzt wurde. Wenn Leer-Raum erzeugt werden s o l l , der unge\ändert stehen bleiben s o l l , dann i s t \verb+\vspace*{lae}+ zu schreiben. \item[$\backslash$fill] Wird in einem Text
227
228 an irgendeiner Stelle \verb+\iill+ geschrieben, so wird a n dieser Stelle zun\ächst horizontaler Leer-Raum der L\änge lull gelassen. Stellt das System aber beim Satz also bei der Umwandlung lest, da\ss\ eine Underfull Box entsteht, dann wird an der Stelle, wo das \verb+\fill+ steht, Leer-Raum gelassen, u n d zwar soviel, da\ss\ der restliche Text optimale AbstNände hat. \item[$\backslash$hfill] Dieses ist eine Abk\ürzung f\ür \verb+\hspace{\fill>+. \verb+\hfill+ ist also eine je nach den Satzbed\ürfnissen dehnbare Anzahl v o n Leerzeichen. Es sei noch bemerkt, da\ss\ zwei dehnbare Leer-R\äume sich d e n freien Platz {\em gleichm\ä\ss ig} teilen. Aus diesem Grunde entsteht aus \begin{verbatim} Das ist \hiill ein \hfill Versuch. \end{verbatim} die Zeile Das ist \hfill ein \hfill Versuch. \item[$\backslash$dotfill] Die Wirkung dieses Commands entspricht exakt der von \verb+\hfill+. Es werden lediglich Punkte a n Stelle von Leerzeichen eingesetzt. Aus diesem Grunde entsteht aus \beginiverbat im} Das ist \dotiill ein \dotlill Versuch. \end{verbatim} die Zeile Das ist \dotfill ein \dotfill Versuch. \item[$\backslash$hrulefill] Die Wirkung dieses Commands entspricht exakt der von \verb+\hfill+. Es w i r d lediglich eine horizontale Linie an Stelle von Leerzeichen eingesetzt. Aus diesem Grunde entsteht aus \begin{verbatim} Das ist \hruleiill ein \hrulefill Versuch. \end{v erbat im} die Zeile Das ist \hrulefill ein \hrulefill Versuch. \end{varlist} \addtocounter{aufg}{l} \vspace{0.5cm} {\parindent=3cm \litem {{\bi Aufgabe \theaufg}} Bitte schreiben Sie folgenden Text.
Quelltext
Kapitel 4. Einfache Strukturen \par> Dies ist \hfill Herr Schmidt \hfill aus Hamburg. \newline Dies ist \dotfill Herr Schmidt \dotfill aus Hamburg. \addtocounter{aufg}{l> \vspace-C0.5cm} {\parindent=3cm \litem {{\bf Aufgabe \ t h e a u f g » Bitte erzeugen Sie folgende Box mit grauer Unterlegung. Bitte wählen Sie als Breite der Box 90 V/, der Textbreite. Versuchen Sie verschiedene Graustufen. Achten Sie aber bitte darauf, da\ss\ Sie die Zeilenbreite innerhalb der grauen Box also temporär auf 90 \'/. der Textbreite verändern müssen. Dies erreichen Sie durch \b eg in{v erbatim} \linewidth=0.9\textsidth \end{verbatim> \par> \begin{graubox}{8}{0•9\hsize> Environments gestatten die Strukturierung von Dokumenten. Strukturierungen sind für die gute Lesbarkeit sehr wichtig. i\linewidth=0.9\textwidth \begin{enumerate} \item quote für Einrückungen \item quotation für Einrückungen mit Absätzen \item description für Absätze mit Absatztitel \item itemize für markierte Einrückungen \item enumerate für numerierte Einrückungen \item varlist für variable Listen \item graubox für grau unterlegte, umrahmte Texte \item verbatim für unübersetzte Texte \end{enumerat e} > \end{graubox>
229
Kapitel 5. Tabellen
Kapitel 5 Tabellen
/ '. '/. %
Kapitel 5
Tabellen
\chapter{Tabellen} Tabellen sind ein H i l f s m i t t e l zur \übersichtlichen Darstellung von Zusammenhängen. In v i e l e n Bereichen lassen sich Tabellen zur Nübersichtlichen Darstellung von Funktionen von bis zu zwei Variablen d a r s t e l l e n . Damit sind Tabellen ein vesentliches Werkzeug bei der Texterstellung \iiberhaupt. \section{Beschreibung von Tabellen} Tabellen haben allgemein folgenden Aufbau. \begin{figure}[ht] \( \begin{array>[b]{lc> \hspace{30pt}ft Spalten \\ \hspace{30pt}fc \overbracei\rule{233pt>{0pt» \end{array>
\\ Zeilen \left\{ \begin{array>[t]{c} \begin{tabular} {\tabpl clc|c|c|c|c|c \tabpr> \tabline \tabanf»TabelleftHr.ItHr.2*Hr.3&Hr.4&Hr.5ftHr.6ft\tabend\\ \tabline \tabanfftlr.i*$\star$i$\star$A$\star$i$\star$&$\star$ft $\star$*\tabend\\ \hline \tabanf*Hr.2fc$\star$*$\star$ft$\star$i$\star$&$\star$ft $\star$*\tabend\\ \hline
231
232 \tabanf*Ir.3*$\star$ft$\star$ft$\star$ft$\star$A$\star$ft $\star$*\tabend\\ \hline \tabanfMr .4*$\star$4$\star$&$\star$ft$\star$ic$\star$it $\star$*\tabend\\ \hline \ t a b a n f Mr.SJt$\star$&$\star$&$\star$&$\star$&$\star$fc $\star$*\tabend\\ \tabline \end{tabular} \end{array} \right. \) \caption{\label{basistabelle}Tabellen> \end{figure} Dies i s t eine Tabelle mit 5 Zeilen und 6 Spalten. Z u s \ ä t z l i c h gibt es eine Z e i l e , die a l s NÜberschriftszeile und eine Spalte, die a l s Besehreibttngsspalte verwendet wird. S o l l eine Tabelle in \TeX\ beschrieben werden, dann sind folgende Funktionen zu unterstNützen. \begin{itemize} \item Tabellengr\ö\ss e \subitem Anzahl Zeilen \subitem Anzahl Spalten \ i t e m Einrahmung der Tabelle \subitem Kormalstrichst\ärke ( 0 . 4 p t ) \subitem F e t t s t r i c h s t X ä r k e ( 1 . 2 p t ) \subitem keine Umrahmung \ i t e m Senkrechte und waagerechte Linien \subitem I o r m a l s t r i c h s t \ ä r k e ( 0 . 4 p t ) \subitem keine senkrechten oder waagerechten Linien \ i t em Element - Stellung im Tabellenfeld (Box) \subitem Element i s t eine Zeile \subsubitem linksbNündig \subsubitem r e c h t s b ü n d i g \subsubitem z e n t r i e r t \subitem Element i s t eine Box \subsubitem linksbNündig \subsubitem rechtsb\ündig \subsubitem z e n t r i e r t \end{itemize> \addtocounter{aufg}{l> {\parindent=3cm \ l i t e m { { \ b f Aufgabe \ t h e a u f g » B i t t e s t e l l e n Sie f e s t , wie s i c h die Standardtabelle \ r e f { b a s i s t a b e l l e } S e i t e
Quelltext
Kapitel 5. Tabellen \pageref{basistabelle} durch diese eingegebenen Funktionen beschreiben l\ä\ss t. \par> \section{Standardmodell zur Tabellenbeschreibung} Es g\äbe grunds\ätzlich viele Möglichkeiten, in \TeX\ Tabellen zu beschreiben. Auch hier f\ührt die Vielzahl der Beschreibungsm\öglichkeiten zu besonderen Schwierigkeiten. Zum einen mu\ss\ man darauf achten, da\ss\ nicht durch eine Vielzahl von Formaten das ganze Dokument sehr unruhig wirkt. Zum anderen mu\ss\ auch bei der Auswahl von Formaten beachtet werden, da\ss\ sie sich bequem beschreiben lassen, so da\ss\ m\öglichst wenig Beschreibungsfehler auftreten, weil diese ja immer mit Testaufwand verbunden sind. Aus diesem Grunde werden hier in diesem Skript zun\ächst sogenannte \begin{center} {\bf Standard-Tabellen} \end{center} \index{Standard-Tabelle} behandelt. Diese sollen dazu dienen, Tabellen zu setzen, wie sie in einem Fachtext vorkommen. Auf alle satztechnischen Techniken zur 'Ver\-sch\ö\-ne\-rung' wird verzichtet. Die Standard-Tabelle ist \begin{itemize} \item[] flexibel \item[] bequem zu setzen \item[] \übersichtlich. \end{itemize} In einem weiteren Abschnitt werden wir {\em eine} m\ögliche Erweiterung angeben. Mit dem Tabellenmodell f\ür gehobenere Anspr\üche an die SchNönheit ist es mit geringem zusätzlichen Satzaufwand m\öglich, Einrahmungen f\ür die ganze Tabelle und f\ür Tabellenteile durchzuführen, was in einigen FXällen die Lesbarkeit erh\öhen kann. Hierbei wird es auch m\öglich, XÜberschriften noch besser von Tabellen-Eintr\ägen abzusetzen und Tabellenteile durch Doppel-Linien besonders zu kennzeichnen. Dieses Tabellenmodell soll \begin{center} {\bf erweiterte Standard-Tabelle} \end{center} \index{erweiterte Tabelle}
233
234 hei\ss en. Alle Tabellen in diesem Skript wurden als Standard-Tabelle oder als erweiterte Standardtabelle gesetzt. \subsection{Definition der Standard-Tabelle}Die Standard-Tabelle ist eine Auswahl aus m\öglichen Tabellen-Modellen. Dies bedeutet unter anderem, da\ss\ die im vorigen Abschnitt beschriebenen Funktionen nicht v o l l s t ä n d i g unterstNützt werden. Folgende das Modell der Standard-Tabelle beschreibende Funktionen werden unterstNützt. \begin{itemize} \item Tabellengr\ö\ss e \subitem Anzahl Zeilen \subitem Anzahl Spalten \item Einrahmung der Tabelle \subitem SormalstrichstNärke (0.4 pt) \subitem keine Umrahmung \item Senkrechte und waagerechte Linien \subitem Iormalstrichst\ärke (0.4 pt) \subitem keine senkrechten oder waagerechten Linien \item Element-Stellung im Tabellenfeld (Box) \subitem Element ist eine Zeile \subsubitem linksb\ündig \subsubitem rechtsbündig \subsubitem zentriert \subitem Element ist eine Box \subsubitem linksb\ündig \subsubitem rechtsbXündig \subsubitem zentriert \end{itemize> \subsection{'environment tabular'} Zur Darstellung von Tabellen wird ein environment verwendet. Das environment hei\ss t \begin{center> \index{tabular> {\bf tabular} \end{center}Das environment verwendet einen erforderlichen Parameter. Dieser Parameter dient zu folgenden Beschreibungen. \begin{itemize> \index{tabular parameter} \item[] Festlegung der Anzahl der Spalten
Quelltext
Kapitel 5. Tabellen
\item[] Festlegung der Anzahl und Lage der senkrechten Linien \item[] Festlegung der Positionierung der Tabellenelemente in den einzelnen Spalten \end{itemize} Der Korpus des environments wird in einen bestimmten Format geschrieben, welches sp\äter erl\äutert wird. Der Korpus dient zu folgenden Beschreibungen. \begin{itemize} \index{tabular Korpus} \index{tabular Z e i l e n } \item[] Festlegung der Anzahl der Zeilen \item[] Festlegung der Anzahl und Lage der waagerechten Linien \item[] Festlegung des Inhalts der Tabellenelemente in den einzelnen Zeilen \end{itemize} Das environment hat dabei folgende g r u n d s ä t z l i c h e Gestalt. \begin{f i g u r e } [ h t ] \begin{verbatim} \begin{tabular}{parameter} Korpus des environments (Tabellenzeilen) \end{tabular} \end{verbat im} \caption{\label{tabular-env}'environment t a b u l a r ' } \end{figure} {\bf Parameter von tabular} \medskip Der Parameter von tabular i s t in mehrere Unterparameter \begin{center} $upar_l, upar_2, \ldots , upar.n $ \endicenter} unterteilt. Jeder Unterparameter $upar_i$ geh\ört dabei zu j e einer Spalte. Die Unterparameter k\önnen folgende Werte annehmen. \begin{center} \( upar_i = \leftYC \begin{arrayHcl} l*\mbox{linksb\ündige Elemente in dieser Spalte}\\ r*\mbox{rechtsb\ündige Elemente in dieser Spalte}\\ c*\mbox{zentrierte Elemente in dieser S p a l t e }
235
Quelltext
236 \end{array} \right.
\) \end{center} Die Struktur der Spalten ist erst dann v o l l s t ä n d i g beschrieben, wenn auch die zwischen den Spalten anzubringenden senkrechten Linien beschrieben sind. Hierf\ür gibt es folgende einlache Festlegung. Ist zwischen zwei Spalten $i$ und $i+l$ eine senkrechte Linie vorzusehen, dann wird zwischen die Unterparameter $upar_i$ und $upar_{i+l}$ das Zeichen \verb+|+ geschrieben. Ist keine senkrechte Linie vorzusehen, dann werden die Unterparameter l\ückenlos nebeneinander geschrieben. \paragraph{Beispiel 1} Es sei eine Tabelle mit 5 Spalten zu bearbeiten, wobei alle Elemente zentriert und alle Spalten durch senkrechte Linien getrennt werden sollen, dann ist als Parameter \begin{center> paramet er = \verb+|c|c|c|c|c| + \end-Ccenter} zu schreiben. Bitte beachten Sie auch, da\ss\ stets f\ür die linksseitige Einrahmung der Tabelle vor alle Spalten ein Zeichen \verb+l+ und f\ür die rechtsseitige Einrahmung hinter die letzte Spalte ebenfalls ein Zeichen \verb+l+ zu schreiben ist. \paragraph{Beispiel 2} Es soll eine Tabelle mit 7 Spalten bearbeitet werden, wobei alle Elemente l i n k s b ü n d i g in den Spalten anzuordnen sind. Ferner ist vorgeschrieben, da\ss\ die Tabelle eingerahmt werden soll, da\ss\ aber sonst auf alle Spaltentrennungen verzichtet werden soll, dann ist \begin{center} parameter = \verb+I1111111|+ \end{center} zu schreiben. {\bf Zeilenbeschreibung von tabular} \medskip Zur Strukturierung der Zeilen einer Tabelle werden noch zwei zusNätzliche Ende-Zeichen verwendet. \begin{center} \begin{description> \item[\ft] Ende eines Zeilen-Elements
Kapitel 5. Tabellen
\item[$\backslash\backslash$] Ende einer Z e i l e \end{des cript i o n } \end{center} Die Beschreibungen der Zeilen haben dann folgende Gestalt, \begin{center} $elem_l$\ \4\ $elem_2$\ \4\ $\ldots$\ \4\ $elem_n$\ $\backslash\backslash$ \end{center} f a l l s n Elemente in einer Zeile stehen. Die Tabelle hat dann also n Spalten. Die $elem_i$ sind dabei Texte, die in den Tabellenfeldern stehen. \paragraph{Beispiel} Eine Z e i l e k\önnte also folgendermaXss en aussehen \begin{center} TabelleN \4 \ Hr.l\ \4\ I r . 2 \ \4\ Kr.3\ \4\ Hr.4\ \4 \ Hr.5\ \4\ Nr.6 $\backslash\backslash$ \end{center> Als l e t z t e s Beschreibungselement f\ür einfache Standardtabellen i s t noch eine Makro f\ür die Erzeugung von horizontalen Linien vorhanden. Hierf\ür kann Ybeginicenter} \indexihline} \beg i n { v erbat im} \hline \end{verbat im} \end{center} geschrieben «erden. \medskip {\bf Beispiel f\ür eine einfache Standard-Tabelle} \medskip {\em Schreibt mein:} \begin{center} \begin{verbatim} \begin{tabular}{|c|c|c|c|c|clc|c|c|c|c|> \hline mal 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10\\ \hline 1 t l t 2 t 3 t 4 t 5 t 6 t 7 t 8 t 9 t 10\\ \hline 2 4 2 4 4 4 6 4 8 410 412 414 »16 418 4 20\\ \hline 3 4 3 4 6 4 9 412 415 418 421 424 427 4 30\\ \hline 4 4 4 4 8 412 416 420 424 428 432 436 4 40\\ \hline 5 4 S 410 415 420 425 430 435 440 445 4 50\\ \hline 6 4 6 412 418 424 430 436 442 448 454 4 60\\ Nhline
237
238
Quelltext
7 4 7 414 421 428 435 442 449 456 463 4 70\\ \hline 8 4 8 416 424 432 440 448 456 464 472 4 80\\ \hlirie 9 4 9 418 427 436 445 454 463 472 481 4 90\\ \hline 10 410 420 430 440 450 460 470 480 490 4 1 0 0 W \hline \end{tabular} \end{verbat im> \end{center} {\em so erh\ält man die folgende Tabelle.} \begin{f igure} [h] \begin{center} \begin{tabular}{|c|c|c|c|c|c|clc|clclcl> \hline mal 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10\\ \hline 1 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10\\ \hline 2 4 2 4 4 4 6 4 8 410 412 414 416 418 4 20\\ \hline 3 4 3 4 6 4 9 412 415 418 421 424 427 4 30\\ \hline 4 4 4 4 8 412 416 420 424 428 432 436 4 40\\ \hline 5 4 5 410 415 420 425 430 435 440 445 4 5 0 W \hline 6 4 6 412 418 424 430 436 442 448 454 4 6 0 W \hline 7 4 7 414 421 428 435 442 449 456 463 4 70\\ \hline 8 4 8 416 424 432 440 448 456 464 472 4 8 0 W \hline 9 4 9 418 427 436 445 454 463 472 481 4 90\\ \hline 10 410 420 430 440 450 460 470 480 490 4 1 0 0 W \hline \end{tabular} \end{center} \caption{\label{einmaleins}Kleines Einmaleins} \end{figure} Hier an dieser Stelle sei noch einmal besonders betont, da\ss\ es sich bei dem 'environment tabular' um eine Schreibhilfe handelt. Das System \TeX\ pr\üft alle Anwenderangaben auf Richtigkeit. Der Anwender mu\ss\ aber selbst darauf achten, da\ss\ die Zahl der Elemente in einer Zeile exakt mit der Anzahl der Spalten Xübereinstimmt, die im Parameter definiert wurden. Wenn n Unterparameter definiert wurden, wurde\hbadness=10000 festgelegt, da\ss\ die Zahl der Spalten"n\linebreak[4] \newpage '/.erzwungener Seitenumbruch 29.03.90 \hbadness=1000 betr\ägt. Das bedeutet, da\ss\ auch in jeder Zeile n Elemente definiert werden m\üssen. (Dies bedeutet, da\ss\ n 1 Element-Ende-Kennzeichen \4\ geschrieben werden m\üssen und genau ein Zeilen-Ende-Kennzeichen $\backslash\backslash$). Da dem Anwender Nüberlassen bleibt, wo er horizontale Linien einf\ügen will, kann das System auch nicht das
Kapitel 5. Tabellen
Fehlen einer einzelnen horizontalen Linie f e s t s t e l l e n . Horizontale Linien k\önnen nur am Anfang, nach dem Ende einer Z e i l e und am Ende der Tabelle (aber noch vor dem \verb+\end{tabular>+-Statement geschrieben werden. \addtocounter{aufg}-Cl} {\parindent=3cm \litem { { \ b f Aufgabe \ t h e a u f g » B i t t e setzen Sie folgende Tabelle. \par> \begin{center> \begin{tabular}{111cIcIcI> \hline GliederungsstufeftarticleftreportftbookW \hline Part ft * ftX \\ \hline Chapter ft ft &X \\ \hline Section k X k X ftX \\ \hline Subsection ft X k X ftX \\ \hline Subsubsection ft X ft X ftX \\ \hline Paragraph ft X ft X ftX \\ \hline Subparagraph ft X ft X ftX \\ \hline \end { t a b u l a r } \end{center} \addtocounter{aufg}{l} •C\parindent=3cm \litem { { \ b f Aufgabe \ t h e a u f g » B i t t e setzen Sie auch noch folgende Tabelle. \par> \begin{center> \begin{tabular>{ll> body-heightftZeichenh\öhe\\ asc-heightftH\öhe von Klein-Buchstaben mit Oberl\ängen (b,d,f)\\ cap-heightftH\öhe der GroXss -BuchstabenW f ig-heightftH\öhe der Z i f f e r n W x-height*H\öhe von Kleinbuchstaben ohne OberlXängen (a,c,e,m)\\ desc-depthftTiefe von Kleinbuchstaben mit Unterl\ängen (g,j.p)W comma-depthftTiefe des KommasW math-azisftNitte der P2u:enthese\\ bar-height*H\öhe des BindestrichsW \end{tabulaar} \end{center} \section{Erweiterte StandeLrdtabelleJ Bei den Tabellen kommt es vor (z.B. bei
239
240 \Überschriften), da\ss\ Texte \über mehrere Spalten hinweglaufen mYüssen. Gleichfalls kommt es vor, da\ss\ horizontale Linien nur \über einige Spalten und nicht \über die gesamte Breite der Tabelle laufen m\üssen. Hierf\ür sind von Leslie Lamport zwei z u s ä t z l i c h e Makros entwickelt worden, diese «erden im n\ächsten Abschnitt behandelt. Durch diese Makros wird die Anwendbarkeit des tabular environment noch erheblich erweitert. Insbesondere ist es mit diesen Makros auch m\öglich, unterschiedliche Positionierungen von Elementen verschiedener Zeilen aber gleicher Spalte vorzunehmen. \newpage '/.erzwungener Seitenumbruch 29.03.90 \subsection{Mehrspalten-Elemente multicolumn > Das Makro \begin{center> \index{multicolumn} \begin{verbatim> \multicolumn{anzahl}{parameter}-{element} \end-Cverbatim} \end{center} gestattet die Angabe von Elementen, die \iiber mehrere Spalten gehen. An Stelle eines einfachen Elements wird hier ein Mehrfachelement angegeben. Dabei haben die 3 Parameter des Commands die folgende Bedeutung. \begin{center} \( {\baselineskip=15pt \begin{arrayHll> \mbox{anzahl}fc\mbox{Anzahl der Spalten}\\ \mbox{parameter> = ft\left\{ \begin{arrayHcl> l*\mbox{linksb\ündige Elemente in dieser S p a l t e J W r*\mbox{rechtsb\ündige Elemente in dieser S p a l t e J W c*\mbox{zentrierte Elemente in dieser Spalte} \end{arrayj \right. \\ \mbox{elementJft\mbox{Text f\ür das Anzahl Spalten \überspannende E l e m e n t J W \end{arrayj > \) \end{centerj
Quelltext
Kapitel 5. Tabellen
Oft kommt es vor, da\ss\ die Spalten\überschriften anders ausgerichtet sein m Missen (z.B. z e n t r i e r t ) als die Tabellenelemente (z.B. rechtsb\ündig). Auch in diesem Falle kann der multicolumn-Command gute Dienste l e i s t e n . Dies sieht mein an folgendem Beispiel: \medskip Ybeginicenter} \begin-CtabularM 111 r I r I r I r I > \hline ft\multicolumn{4Hlc|}{Umsatz in Mio. DM}\\ \cline { 2 - 5 } Bereich* \multicolumn{lHc I } { 1 . Quartal}* \multicolumn{l}{cI>{2.Quartal}* \multicoluinn{lHc I H 3 . Quartal}* \multicolumn{l}{cI}{4.Quartal}\\ \hline Softwarefcl..2 * 1..1 0,.4 * & 1..6 \\ \hline Hardware*5..4 * 6..8 9. .3 * \\ \hline * 2..6 Beratung*2..1 * 1,.8 .4 * .6 \\ \hline * 2, 1. \end{tabular} \end{center} Diese Form der Tabelle Wirde aus Demonstrationsgr\iinden in dieser Form d a r g e s t e l l t . Deutlich i s t die unterschiedliche Ausrichtung der Spal\-ten\-\über\-schrif\-ten und der Tabellenelemente zu sehen. Um dies zu erreichen, mu\ss\ man schreiben: \medskip \begin{verbatim} Ybegin-Ccenter} \begin{tabularM 111 r I r I r I r I } \hline *\multicolumn{4}{IcIMUmsatz in Mio. DM}\\ \cline { 2 - 5 } Bereich* \multicolumn{lHc I } { 1 . Quartal}* \multicolumn{lMc I } { 2 . Quartal}* \multicolumn{l}{cI}{3.Quartal}* \multicolumn{lHc I } { 4 . Quartal}\\ \hline Softsare*1.2 * 1 . 1 * 0.4 * 1.6 \\ \hline Hardware*5.4 * 6.8 * 9.3 * 2.6 \\ \hline Beratung*2.1 * 1.8 * 2.4 * 1.6 \\ \hline \end{tabuliLr} \end{center} \end{verbatim} \begin{graubox}{8}{0.8\textwidth} Der multicolumn-Command dient dazu, \Überschriften \über mehrere Spalten zu setzen, er kann aber auch verwendet werden, wenn unterschiedliche Positionierungen der
241
242
Quelltext
\ U b e r s c h r i f t e n und Tabellenelemente einer Spalte vorzunehmen sind. \end{graubox> \ s u b s e c t i o n { H o r i z o n t a l e Linien \über n Spalten cline} Um h o r i z o n t a l e Linien auch \über die B r e i t e von einigen Spalten setzen zu k\önnen, i s t der Command \begin{center} \ i n d e x { h o r i z o n t a l e Linie c l i n e } \begin{verbatim} \cline{spanf-spend} \end{verbatim} \end{center} zu schreiben. Hierbei i s t \begin{center} \begin{tabular}{ll} spanf&Spaltennummer Beginn horizontale LinieW spendftSpaltennummer Ende horizontale LinieW \end{t abular} \end{center} Als B e i s p i e l f \ ü r die Anwendung des multicolumn-Commands s o l l gezeigt werden, wie die Tabelle \ r e f { e i n m a l e i n s } S e i t e \ p a g e r e f { e i n m a l e i n s } mit einer \ Ü b e r s c h r i l t versehen werden kann. Hierzu i s t folgendes zu schreiben. \b eg i n { v erbatim} \begin{tabular}{lclc|c|clc|clclclclc|c|} \hline \multicolumn{ll}{IcI} {Kleines E i n m a l e i n s } \ \ \ h l i n e mal » 1 » 2 » 3 » 4 » 5 » 6 » 7 » 8 » 9 » 10\\ \hline 10\\ \hline 1 t l t 2 t 3 i 4 t 5 t 6 t 7 t 8 t 9 t 9 » 9 »18 »27 »36 445 454 »63 »72 »81 » 9 0 \ \ \ h l i n e 10 »10 420 »30 »40 »50 »60 »70 »80 »90 » 1 0 0 \ \ \ h l i n e \end{tabular} \end{verbatim} Man e r h \ ä l t dann die folgende Tabelle \begin{center} \begin{tabular}{|c|clclc|clc|c|c|c|c|cl> \hline \multicolumn{ll}{IcI} {Kleines E i n m a l e i n s } \ \ \ h l i n e mal » 1 » 2 » 3 » 4 » 5 » 6 » 7 » 8 » 9 » 10\\ \hline 1 » 1 » 2 » 3 » 4 » 5 » 6 » 7 » 8 » 9 » 10\\ \hline 2 » 2 » 4 » 6 & 8 »10 »12 »14 »16 »18 » 2 0 \ \ \ h l i n e 3 » 3 » 6 * 9 »12 »15 »18 »21 »24 »27 » 3 0 \ \ \ h l i n e
Kapitel 5. Tabellen
4 » 4 t 8 »12 »16 »20 »24 »28 »32 »36 » 40\\ \hline 5 & 5 fclO »15 »20 »25 »30 »35 »40 »45 & 50\\ \hline 6 & 6 fcl2 »18 »24 »30 »36 »42 »48 »54 » 60\\ \hline 7 k 7 »14 »21 »28 »35 »42 »49 »56 »63 » 70\\ \hline 8 & 8 *16 »24 »32 »40 »48 »56 »64 »72 » 80\\ \hline 9 & 9 »18 »27 »36 »45 »54 »63 »72 »81 » 90\\ \hline 10 410 »20 »30 »40 »50 »60 »70 »80 »90 »100W \hline \end-Ctabular} \end{center} Die Anwendung des Commands c l i n e « i r d an folgendem Beispiel erl\äutert. \medskip {\em S c h r e i b t man:} \b e g in { v erb a t im} \begin{tabular}{|l|c|c|c|c|> \hline fc\multicolumn{4MI clHUmsatz in Mio. DM>\\ \ c l i n e { 2 - 5 } B e r e i c h » ! . Q u a r t a l » 2 . Q u a r t a l » 3 . Q u a r t a l » 4 . Q u a r t a l W \hline Softwareftl. ,2 » 1..1 & 0,.4 » 1..6 \\ \hline Hardware»5. 4 » 6..8 & 9..3 » 2..6 \\ \hline Beratung»2. .1 » 1,.8 » 2..4 » 1,.6 \\ \hline \end{tabular} \end{verbatim} \smallskip {\era so e r h \ ä l t man:} \begin{f i g u r e } [ h t ] \label{umsatz} \begin{tabular}{|l|c|c|c|c|> \hline »\multicolumn{4}{Ic I HUmsatz in Mio. DM}\\ \ c l i n e { 2 - 5 } B e r e i c h » ! . Q u a r t a l » 2 . Q u a r t a l » 3 . Q u a r t a l » 4 . Q u a r t a l W \hline ft 1..1 Softwareftl.2 » 0..4 » 1,.6 \\ \hline Hardwareft5.4 » 6 .8 » 9 .3 » 2 .6 \\ \hline Beratungft2.1 fc 1..8 » 2..4 » 1,.6 \\ \hline \end{tabular} \end{figure} \subsection{Boxes a l s Tabellen-Elemente p\{\}} \index{box} Eine z u s \ ä t z l i c h e Erweiterung der E i n s a t z b r e i t e von T a b e l l e n i s t dadurch gegeben, da\ss\ d i e Unterparameter auch noch Boxes bestimmter B r e i t e s e i n k\önnen. Hierbei verstehen wir unter Box e i n Rechteck bestimmter h o r i z o n t a l e r B r e i t e (width) und v e r t i k a l e r L\änge ( l e n g t h ) . Zum B e i s p i e l i s t eine S e i t e e i n e s o l c h e Box. S i e hat eine B r e i t e (die L\änge e i n e r T e x t z e i l e ) und eine
243
244 L\änge ( d i e Seitenl\änge). In solch einer Box kann die Satzrichtung entweder h o r i z o n t a l sein, dann spricht man von einer horizontalen Box, s i e kann \index{box, h o r i z o n t a l e } \index{box, vertikale}- aber auch v e r t i k a l sein, dann spricht man von einer v e r t i k a l e n Box. Damit i s t es also m\öglich, mehrzellige Texte als Tabellen-Elemente zu versenden. Hierbei i s t a l l e r d i n g s zu beachten, da\ss\ Hegen sonst entstehender Umbruchprobleme d i e Box-Breite nicht zu k l e i n gew\ählt werden s o l l t e . Es hat sich h e r a u s g e s t e l l t , da\ss\ 2 inch eine noch eben praktikable B r e i t e i s t , um ohne gr\ö\ss ere Umbruchprobleme Tabellen mit Boxes zu setzen. Formal wird d i e M ö g l i c h k e i t dadurch e r \ ö i i n e t , da\ss\ einstelle eines Unterparameters geschrieben werden kann \begin{verbatim> pibreite} \end{verbatim} \index{Parameter-Box} Hierbei i s t i\ür b r e i t e , die B r e i t e der Box in L\ängeneinheiten anzugeben. (z.B. 2in). Hierdurch wird es m\öglich, v a r i a b l e Listen auch a l s Tabellen zu setzen. Wir demonstrieren das an einem Beispiel. \newpage '/,erzwungener Umbruch 29.03.90 {\em Sie s c h r e i b e n : } Ybegin{verbatim} Ybegin{tabularHlp{3. 5in}} {\bf B i t } fc Das B i t i s t die k l e i n s t e Informationseinheit, Informationen werden in Bit gemessen.\\ {\bf B y t e } k Das Byte i s t d i e k l e i n s t e adressierbare Einheit. Ein Byte besteht aus 8 Datenbits und einem Control-Bit.\\ {\bf Wort} t Das Wort i s t d i e k l e i n s t e adressierbare Einheit b e i Wortmaschinen. Das Wort hat 16 oder 32 Bit \\ \end{tabular} \end{verbatim} '/Asmallskip und erhalten \medskip \begin{tabular}{lp{3. 5in}} {\bf B i t } k Das B i t i s t die k l e i n s t e
Quelltext
Kapitel 5. Tabellen Informationseinheit, Informationen Verden in Bit gemessen.\\ {\bf Byte} k Das Byte i s t die k l e i n s t e adressierbare Einheit. Ein Byte besteht aus 8 Datenbits und einem Control-Bit.W {\bf Wort} k Das Wort i s t d i e k l e i n s t e adressierbare Einheit bei Wortmaschinen. Das Wort hat 16 oder 32 B i t .
w
\end{tabular} \addtocounter{aufg}{l} \medskip i\parindent=3cm \litem -C{\bf Aufgabe \ t h e a u f g } } B i t t e setzen Sie folgenden Text a l s Tabelle. \par} \medskip Die systematische Entwicklung eines Projektes f i n d e t nach einem sogenannten {\bf Phasenmodell} s t a t t . Dieses wird im folgenden u n t e r g l i e d e r t d a r g e s t e l l t . \begin{center} \ b e g i n { t a b u l a r H I 1 I p { 3 . O i n } I } \hline VorstudieftZiel des P r o j e k t e s W \cline{2-2} *Durchf\ührbarkeit\\ \cline{2-2} fcWirtschaf t l i c h k e i t W \hline Istaufnahme k IstzustandW \cline{2-2} k SchvachstellenanalyseW \cline{2-2} k InformationsbedarfsbestinunungW \hline Grobkonzept k Z i e l des Projektes \\ \cline{2-2} k Wirtschaftlichkeit \cline{2-2} k DatenmodellW \cline{2-2} k FunktionenmodellW \cline{2-2} k Mengenger\üst\\ \hline Detailkonzeptk DatenbeschreibungW
245
Quelltext
246
\cline{2-2> k AufgabenbeschreibungW \cline{2-2> k TerminplanW \hline Implementierung* ProgrammerungW \cline{2-2> * TestW \hline \end{tabular} \end{center> \subsection{Zus\ätzliche Hilfsmittel der Gestaltung} In diesem Abschnitt soll \über solche Hilfsmittel der Gestaltung berichtet Verden, mit denen man \begin{itemize> \item[] die Ausrichtung der Tabelle im Text \item[] den Abstand der Tabellenzeilen \item[] die Stellung eines Tabellenelements in der Tabelle \end{itemize} beeinflussen kann. \subsubsection{'environment center'} \index{zentrieren} \index{center} Das environment center kann verwendet werden, um z.B. eine Tabelle zu zentrieren. Mit Hilfe der Schreibweise Ybegin-Cverbat im} \begin{center} \begin{tabular}{ }
\end{tabular} \end{center} \end{verbatim} entsteht eine in bezug auf die gesamte Textbreite zentrierte Tabelle. Will man die Zentrierung von normalem Text durchführen, dann hat man zu beachten, da\ss\ die Zentrierung zeilenweise geschieht. Die Zeilen sind jeweils durch \verb+\\+ abzuschlie\ss en. Dies ist aus folgendem Beispiel zu sehen. Es wird folgender Text geschrieben. \begin{verbatim} \begin{center}
Kapitel 5. Tabellen Das ist die erste geschriebene Zeile.\\ Das ist die zweite Zeile.\\ Und das ist die letzte Zeile. \end{center} \end{verbat im} Hieraus entsteht nach der \ÜberSetzung. \begin{center} Das ist die erste geschriebene Zeile.\\ Das ist die zweite Zeile.\\ Und das ist die letzte Zeile. \end{center} \subsubsection{* environment centerb'$\ast$} \index{zentrieren im Block} M\öchte man eine Zentrierung im Block erreichen, dann mu\ss\ das 'environment centerb' verwendet werden\fussnote{Makro aus infmakro.tex}. Es handelt sich um ein zusätzliches environment mit zwei Parametern. Der erste Parameter ist die Blockbreite. Der zweite Parameter ist der Text. Man beachte, da\ss\ aus diesem Grunde der Text in geschweifte Klammern einzuschlie\ss en ist. Soll der im vorigen Beispiel verwendete Text im Block der Breite 1.8 inch zentriert werden, dann ist \begin{verbatim} \begin{centerb}{l.8in} {Das ist die erste geschriebene Zeile. Das ist die zweite Zeile. Und das ist die letzte Zeile.} \end{centerb} \end{verbatim} zu schreiben. Hieraus entsteht nach der NÜbersetzung. \medskip \begin{centerb}{l. 8in} {Das ist die erste geschriebene Zeile. Das ist die zweite Zeile. Und das ist die letzte Zeile.} \end{centerb} \subsubsection{Zentrierung von anderen environments} Es sei noch erw\ähnt, da\ss\ die Zentrierung nicht auf das 'environment tabular' beschr\änkt ist. Jedes andere environment (z.B. itemize, quote, quotation, description, enumerate) kann zentriert werden. Allerdings mu\ss\ hier das 'environment centerb' benutzt werden. Die ist darin zu sehen, da\ss\ die anderen environments
247
248
Quelltext
s\ämtlich als Breite die Zeilenbreite verwenden. Damit h\ätte die Zentrierung mit dem 'environment center' keine Wirkung. Im 'environment centerb' wird als die Zentrierung mit der als Parameter angegebenen Block-Breite d u r c h g e f ü h r t . Hierbei ist allerdings zu beachten, da\ss\ diese vom Anwender so gew\ählt Verden mu\ss , da\ss\ die l\ängste Zeile darin untergebracht werden kann andernfalls entstehen 'Overfull Boxes'. \bigskip i\em Schreibt man z.B.:} \begin{verbatim} Die Scholle schmeckt am besten in den Monaten ohne 'r' also: \begin{centerb>{2cm> Ybegin-Citemize} \item Mai \item Juni \item Juli \item August \end{itemize} \end{centerb} \end{verbatim} {\em so erh\ält daraus:} Die Scholle schmeckt am besten in den Monaten ohne 'r' also: \begin{centerb}{2cm} Ybegin-C itemize} \item Mai \item Juni \item Juli \item August \end{itemize} \end-Ccent erb} Ohne die Zentrierung w\äre: Die Scholle schmeckt am besten in den Monaten ohne 'r' also: \begin{itemize} \item Mai \item Juni \item Juli \item August \end{itemize} \medskip entstanden.
Kapitel 5. Tabellen
249
\begin{grauboxH8}{0.8\textwidth} Environments au\ss e r dem ' t a b u l a r environment' k\önnen nur mit dem ' c e n t e r b environment' z e n t r i e r t werden. Die Zentrierung mit dem ' c e n t e r environment' b l e i b t wirkungslos. \end{graubox} \subsubsection{Ver\änderung des Z e i l e n a b s t a n d s } \index{Zeilenabstand} Der Zeilenabstand i s t mit 12 pt v o r b e s e t z t . D i e s e r Wert wird in einem L\ängenregister g e s p e i c h e r t , das b a s e l i n e s k i p hei\ss t . Der Zeilenabstand kann ge\ändert werden, indem man \begin{center} \verb+\baselineskip=xxpt+ \end{center} s c h r e i b t . Hierbei i s t xx der Zeilenabstand in p t . Damit d i e s e r Zeilenabstand nur in e i n e r T a b e l l e wirksam wird und n i c h t von da ein im gesamten Dokument, wird d i e s e Setzung und das 'environment t a b u l a r ' in geschweifte Klammern e i n g e s c h l o s s e n . Die T a b e l l e auf S e i t e \pageref{umsatz} hat die folgende G e s t a l t , wenn man s i e mit einem Zeilenabstand von 18 pt s c h r e i b t . \begin{center} {\baselineskip=18 pt \tabbox{12.5}{5.5} \ b e g i n { t a b u l a r } { l l l c | c | c | c | } \hline ft\multicolumn{4}{IcIMUmsatz in Mio. DM}\\ \ c l i n e { 2 - 5 } B e r e i c h t l . Q u a r t a l * 2 . Q u a r t a l f t 3 . Q u a r t a l f t 4 . Q u a r t a l \ \ \hline Softwareftl. .2 & 1 .1 k k 0 .4 1..6 \\ \hline Hardwareft5. 4 ft 6 .8 k 9,.3 k 2..6 \\ \hline Beratung&2. .1 t 1,.8 k 2 , .4 k 1,.6 \\ \hline \end{tabular} } \end{center} Dies wurde durch d i e Schreibweise \begin{verbatim} { \ b a s e l i n e s k i p = 1 8 pt \tabbox{12.5}{5.5} \ b e g i n { t a b u l a r } { I 1 I c I c I c I c I } \hline ft\multicolumn{4}{IcI}{Umsatz in Mio. DM}\\ \ c l i n e Bereichftl.Quartalft2.Quartalft3.quartalft4.QuartalW Softwareftl.2 * 1.1 fc 0.4 ft 1.6 \\ Hardware&5.4 t 6.8 t 9.3 t 2.6 \\
{2-5} \hline \hline \hline
250
Quelltext
Beratung«.1 \end{tabular} >
t
1.8
fc
2.4
*
1.6
\\ \hline
\end{verbatim} erreicht. \subsubsection{Stellung der Tabellenelemente} \index{Tabellen-Element} \TeX\ a r b e i t e t mit Boxes. Jeder Satz i s t eine Zusammensetzung von Boxes. Die k l e i n s t e Box, die man e r z i e l e n kann, i s t die Box eines einzelnen Zeichens. \begin{figure>[ht] Ybegin-Ccenter} \[ \mbox{baselineskip} \ l e f t \ { \begin{array}{c} \begin{tabular}{ I c I } \hline $\uparrow$ \\
\\
$\longleftarroH$ width $\longrightarrow$ \\ height
\]
\\
\\
\\
$\downarrow$\\ \hline $\uparrow$ \\ depth \\ $\downarrow$\\ \hline \end{tabular}\\ \endiarray> \right.
\caption{\label{box}Box eines Zeichens} \end{center} \end{figure} \index{baselineskip} Hierbei bedeuten Ybegin-fcenter} \begin{tabularMll} baselineskiptZeilenabstandW heightft H\öhe eines Zeichens \über B a s i s l i n i e \\ depthft T i e f e eines Zeichens unter B a s i s l i n i e W widthft B r e i t e eines Zeichens \end{tabular} \end{center}
Kapitel 5. Tabellen \index{height} \index{depth} Hierbei ist stets Ybegin-Ccenter} {\bf baselineskip = height + depth} \end{center} und es gelten folgende Standardwerte \begin{center} \begin{tabular}{ll} baselineskipfcl2pt\\ height&8.5pt\\ depth* 3. 5pt\\ \end{tabular} \end{center} Diese Standardeinstellungen k\önnen durch den Command \index{tabbox} \beginicenter} \verb+\tabbox{height}{depth}+ \end{center} lokal bei jeder Tabelle ver\ändert werden. Abbildung \rei{standardmodell} zeigt ein Muster f\ür die vollst\ändige Gestaltung einer erweiterten Standardtabelle. \index{Standard-Tabelle} \begin{f igure}[ht] \b eg in{v erbatim} {\baselineskip=xx pt \tabbox{height}{depth} \begin{tabular}{ } \end{tabular} } \end{verbatim} \caption{\label{standardmodell}Standard-Tabelle mit Variation} \end{figure} An einem Beispiel soll diese Technik erl\äutert werden. Wir gehen von einer Standardtabelle aus. \index{Oberl\änge}\index{Unterl\änge} \begin{center} YbeginitabularH 11111 }\hline Ziff ernftO,1,2,3,4,5,6,7,8,9\\ \hline
251
252 Buchstaben mit Oberl\ängen&I, A, b, d, i , h, k, 1, t\\ \hline UmlauteJtNä, \ö, \ü, \Ä, \Ö, \Ü\\ \hline Buchstaben mit UnterlNängenftg, j , p, q, y\\ \hline Buchstaben ohne b e i d e s i a , c, e, i , m, n, o, r , s\\ \hline \end{tabular} \end{center} Wie man s i e h t , sto\ss en die Buchstaben mit Oberl\ängen (gro\ss e Umlaute) ein die horizontalen Linien. Dies kann vermieden Verden, wenn man zur Gestaltung der Tabelle folgende ZusXätze verwendet. \begin{itemize} \item[] height wird um 2 pt erh\öht \item[] depth wird um 2 pt erh\öht \item[] baselineskip wird um 4 pt = 2 pt + 2 pt erh\öht \end{itemize} Dann erh\ält man die folgende G e s t a l t . Ybeginicenter} {\baselineskip=16pt \tabbox{10.5>{5.5> \begin{tabular>{I1I1I}\hline Ziffernft0,l,2,3,4,5,6,7,8,9\\ \hline Buchstaben mit Oberl\ängenftI,A, b, d, f , h, k, 1, t\\ \hline Umlauteft\ä, \ö, \ü, \Ä, \Ö, \Ü\\ \hline Buchstaben mit Unterl\ängenftg, j , p, q, y\\ \hline Buchstaben ohne beides&a, c, e, i , m, n, o, r , s\\ \hline \end{tabular> > \end{center} \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aufgabe \theaufg}} B i t t e geben Sie die Parameter-Setzungen f\ür die obige Tabelle ein. \par} \addtocounter{aufg}{l} •f\parindent=3cm
Quelltext
Kapitel 5. Tabellen \litem {{\bf Aufgabe \theaufg}} Bitte setzen Sie die folgende Tabelle. Der Zeilenabstand soll 13 pt betragen, die Oberl\änge (height) 11.5 pt. (Wie gro\ss\ ist dann die Unterl\änge (depth)?) \par> \begin{center} { \baselineskip 13 pt \tabbox{11.5>{1.5> \begin{tabular}{Ilp{2.95 in}|} \hline Buchstaben* A, B, C, , Z, a, b, c, z \\ \hline deutsche Zeichen* \Ä, \Ö, \Ü, \ä, \ö, \ü, \ss \\ \hline Ziffern * 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 \\ \hline Sonderzeichen* A :\ ;\ ,\ \ !\ (\ )\ [\ ]\ -\ /\ *\ \\ \hline Spezialzeichenfc \#\ \$\ \'/.\ \*\ \'\ \_\ \'\ \verb+\+\ \{\ \> \\ \hline math. Zeichen* $+ = I < > $ \\ \hline Bindestriche* - (in Worten) — (Zahlbereiche) , (Parenthese) \\ \hline \end{tabular> > \end{center> \subsubsection{Verst\ärkte horizontale und vertikale Linien} In einigen F\ällen kann es v\ünschensvert sein, bestimmte horizontale bzs. vertikale Linien zu verst\ärken. Das gilt auch f\ür die aus horizontalen und vertikalen Linien zusammengesetzte Einrahmung. \index{verst\ärkte Linien} \index{Tabellen-Einrahmung} \index-f Einrahmung} Das Prinzip dieser Technik ist sehr einfach. \begin{center} \begin{tabular}{Ip{4.Oin}I}\hline \begin{enumerate}
253
254 \item An Anfang des Parameters steht \verb+\tabpl+ am Ende \verb+\tabpr+, wenn eine verst\äxkte Einrahmung gew\ünscht wird, \newline Beispiel: \verb+{\tabpl c|c \tabpr}+ \item In jeder Zeile ist als erstes Element \verb+\tabanf+ einzutragen, als letztes Element \verb+\tabend+, wenn eine verst\ärkte Einrahmung gew\ünscht wird, \newline Beispiel: \verb+\tabanf416.0412.44\tabend\\+ \item Horizontale verst\ärkte Linien entstehen durch \verb+\tabline+. \end{enumerate>
\\ \hline \end{t abular} \end{center} Ein Beispiel f\ür die Anwendung dieser Technik stellt die bereits als Beispiel verwendete Tabelle dar. \begin{center> \begin{tabularM\tabpl 11 c I c I c I c\tabpr> \tabline \tabanf44\multicolumn{4HlcHUmsatz in Mio. DM}4\tabend \\ \cline {3-7} \tabanf4Bereich41.Quartal42.Quartal43.Quartal44.Quartal 4\tabend\\ \tabline \tabanf4Software41.2k 1.14 0.44 1,64\tabend\\ \hline \tabanf4Hardware45.44 6.84 9.34 2.64\tabend\\ \hline \tabanf4Beratung42.14 1.84 2.44 1.64\tabend\\ \tabline \end{tabular} \end{center} \addtocounter{aufg}{l} i\parindent=3cm \litem {{\bf Aufgabe \theaufg» Bitte setzen Sie die die obige Tabelle. \par> \medskip \addtocounter{aufg}{l> {\parindent=3cm \litem {{\bf Aufgabe \theaufg» Auch das folgende Beispiel ist mit Hilfe der Tabellen gesetzt. Damit die umrahmte Box zentriert wird, verwenden Sie
Quelltext
Kapitel 5. Tabellen
das environment center. Eine umrahmte Box k\önnen Sie als Tabelle mit nur einem Element auffassen, welches durch \verb+pO+ beschrieben wird. V\ählen Sie b i t t e eine Breite von 40 \'/, der Textbreite. \par> \begin-Ccenter} \begin-CtabularH I p { 0 . 4 \ t e x t w i d t h } I > \ h l i n e
Die Bundesrepublik Deutschland i s t eine parlamentarische Demokratie. Der Bundeskanzler bestimmt die Richtlinien der P o l i t i k . \\ \hline \end{tabular> \end-Ccent e r } {\parindent=3cm \litem { { \ b f Z u s a t z f r a g e : » Mit welcher im vorigen Abschnitt behandelten Technik h\ätten Sie den gleichen Effekt erzielen kNönnen? Sie sehen daraus, da\ss\ \TeX\ Werkzeuge b e r e i t s t e l l t , die l\ückenlos das Aufgabengebiet des Satzes abdecken. (Die beiden Methoden sind ja nicht gleichwertig, sie k\önnen nur f\ür {\bf diese> Aufgabe beide benutzt werden.!!) \par> \medskip \addtocounter{aufg}{i} {\parindent=3cm \litem { { \ b f Aufgabe \ t h e a u f g » B i t t e setzen Sie auch noch die folgende Tabelle. \medskip \begin{tabular} {\tabpl c|c|c|c|c|c|c \tabpr} \tabline \t abanffcTabelle&Hr.lfcHr.2&Nr.3ftNr.4ftHr.5tNr.6ft\tabend\\ \tabline \tabanfftNr.lfc$\star$*$\star$ft$\star$ft$\star$ft$\star$fc $\star$ft\tabend\\ \hline \tabanf &Sr. 2ft$\star$A$\star$&$\star$ \medskip •C\parindent=3cm \litem O Vach dem nächsten Abschnitt werden Sie hieraus die volle Abbildung \ref{basistabelle} konstruieren k\önnen! \par>
Kapitel 6. Mathematische Texte
Kapitel 6 Mathematische Texte
%
'/,
'/.
Kapitel 6 Mathematische Texte
\chapter{Mathematische Texte} \index{Mathemat ik} Das \TeX-System ist auf den Satz mathematischer Texte vorbereitet. Eine gro\ss e Anzahl von besonderen Schriftzeichen, die nur in der Mathematik verwendet Verden, sind als Standard vorhanden. Besondere, in der Mathematik verwendete Strukturen werden standardm\ä\ss ig in \TeX\ unterst\ützt. So sind besondere Verfahren vorhanden, die das Schreiben von Gleichungen und Theoremen unterst\ützen. Jederzeit kann auf solche Gleichungen und Theoreme als Referenz wieder zugegriffen werden. Die Behandlung in diesem Skript soll aber etwas eingeschränkt werden. Zum einen soll das Skript auch f\ür solche Anwender lesbar sein, die BezXüge zur h\öheren Mathematik nicht nachvollziehen kVönnen. Zum anderen ist die Flexibilit\ät von \TeX\ gerade auf dem mathematischen Sektor so hoch, da\ss\ bei vollständiger Behandlung der Rahmen dieses Buches gesprengt w\ürde. Das wird auch dadurch erhellt, da\ss\ es eine spezielle Realisierung von \TeX\ gibt, die sich allein mit dem Satz von mathematisch-technischen Texten befa\ss t. \index{mathematischer Text} Aus diesem Grunde beschr\änkt sich dieses Skript auf die Darstellung folgender Sachverhalte. \begin{itemize} \item[] Subskripte und Superskripte
257
258
Quell text
\item[] BrYiiche und Wurzeln \item[] Gleichungen \item[] Summen mit Summenzeichen \item[] Vertikal ausgerichtete Strukturen \end{itemize} \section{Verarbeitungsarten in \TeX\ (processing mode)} Wenn \TeX\ Text \iibersetzt, dann liegen eine von drei Verarbeitungsarten vor. {\parindent=4cm \litem{\bf paragraph mode} Paragraph mode ist die \index{paragraph mode} normale Verarbeitungsart. Dieser Text ist in paragraph mode geschrieben. \TeX\ betrachtet den Quelltext als eine Folge von Worten in S\ätzen. Diese Folge wird in Zeilen, Abs\ätze (Paragraphen) und Seiten umgebrochen. \litem{\bf mathematical mode} In dieser \index-Cmathematical mode} Verarbeitungsart bearbeitet \TeX\ mathematischen Text. Text wird als mathematisch erkannt, wenn dieser innerhalb eines mathematical environment steht (mathematische environments siehe nXächsten Abschnitt). In diesem Falle wird der Quelltext als eine Folge von Symbolen interpretiert. Leerzeichen bleiben unberücksichtigt. Z.B. \linebreak[4] Verden Zeichenkombinationen 'i s' als das Produkt $i s$ geschrieben und 'i+s' als $i+s$. (Man beachte, da\ss\ hier also zusätzlicher Leer-Raum um das Zeichen '+' eingef\ügt wurde. \litem{\bf LR mode} Dieser mode verarbeitet \index{LR mode} L(eft) (to) R(ight). Der Quelltext wird als Folge von Worten und Leerzeichen aufgefa\ss t. Jedoch wird niemals ein Zeilen\-um\-bruch durchgeführt. Die Verarbeitungsrichtung ist fortlaufend von links nach rechts. liemals wird eine neue Zeile begonnen. Diese Verarbeitungsart wird in einem sp\äter zu be\-han\-deln\-den Makro \linebreak [4] '/.erzwungener Umbruch (mbox) verwendet. Hierdurch ist eine Methode vorhanden, innerhalb von mathematical mode Tex\-te in der im paragraph mode definierten Schrift zu setzen.
Kapitel 6. Mathematische Texte \par} \section{Das mathematische environment} Um im Text festzulegen, da\ss\ es sich um Mathematik-Satz handelt, sind mehrere environments m\öglich. Sind im Text nur kleine mathematische Teile (wie z.B. Gr\ö\ss en mit Indizes) eingeschlossen, dann wird das environment Ybegin-Ccenter} \verb+$ $+ \end{center} verwendet. Der Mathematik-Satz wird in \verb+$+ eingeschlossen. F\ür mathematische Textteile, die im Mathematik-Satz erstellt werden sollen, ist als environment \begin{center> \begin{verbatim} \( \) \end{verbatim} \end{center} vorzusehen. Hier handelt es sich um mathematischen Satz, der inmitten von anderem Text auftritt. Die Schriftgr\ö\ss e ist so gew\ählt, da\ss\ der mathematische Satz in der Gr\ö\ss e zum umgebenden Text pa\ss t. Der gesetzte Text wird in \verb+\(+ und \verb+\)+ eingeschlossen. F\ür unnumerierte Textteile, die im Mathematik-Satz erstellt werden sollen, ist als environment \begin{center} \beginiverbatim} \[
\] \end{verbatim} \endicenter} vorzusehen. Hier handelt es sich um mathematischen Satz, der von anderem Text getrennt auftritt. Der Satz geschieht in einer anderen Schriftgr\ö\ss e. Die Schriftgr\ö\ss e mu\ss\ nicht im Rahmen des Zeilenabstands des umgebenden Textes passen. Der gesetzte Text wird in \verb+\[+ und \verb+\]+ eingeschlossen.
259
260
Quelltext
Eine numerierte Gleichung Bird durch das \index{Gleichung} \index{equation} 'environment equation' erzielt. Die Numerierung der Gleichungen geschieht automatisch vom System. Es ist jederzeit m\öglich, auf die Gleichungen u n d ihre Nummern Bezug zu nehmen, \newline Das environment w i r d durch \begin{center} \b eg in{v erbatim} Ybegin-Cequation}
\end{equation} \end{v erbat im} \end{center} beschrieben. Die Gleichungsnummern stehen rechts. Hill m a n die G1eichungsnummern links haben, so mu\ss\ man in den Optionen \verb+leqno+ schreiben. Ein report k\önnte dann also durch Ybegin-f verbat im} \documentstyle[1lpt,leqno]{report} \end{verbatim} beschrieben «erden. \section{Subskripte und Superskripte} \index{Subskript} \index{Superskript} Subskripte sind tiefgestellte Ziffern, Buchstaben oder Sonderzeichen oder Kombinationen hieraus. Superskripte sind hochgestellte Ziffern, Buchstaben oder Sonderzeichen oder Kombinationen hieraus. Um sicherzustellen, da\ss\ Subskripte bzw. Superskripte vom System erkannt werden k\öimen, ist ein mathematisches environment zu w\ählen. Wir benutzen in diesem Abschnitt stets das environment \verb+$ $+, aber s e l b s t v e r s t ä n d l i c h werden Subskripte u n d Superskripte vom System auch erkannt, wenn das 'environment \verb+\[..,\]+' oder das 'environment \verb+\(...\)+' oder das 'environment equation' gew\ählt wurde. \hbadness=10000 \medskip {\parindent=3cm
Kapitel 6. Mathematische Texte \litem {\bi Subskript)• Voraussetzung ist, da\ss\ eines \index{Subskript} der mathematischen enviroiunents vorliegt. Das Subskript wird dadurch angegeben, da\ss\ ein Zeichen \verb+_+ gegeben wird. Das Subskript selbst wird dann in \verb+{}+ eingeschlossen, \newline Schreibt man also: \verb+$x_{l}$+ so wird $x_{l}$ gesetzt. Es k\ön\-nen als Subskript auch arithmetische AusdrYiicke gesetzt werden. Schreibt man: \verb/$x_{i+j+3}$/, so erh\ält man \linebreak[4] $x_{i+j+3}$ \litem {\bf Superskript} Voraussetzung ist, da\ss\ eines \index{Superskript} der mathematischen enviromsents vorliegt. Das Superskript wird dadurch angegeben, da\ss\ ein Zeichen \verb+*+ gegeben wird. Das Superskript selbst wird dann in \verb+{}+ eingeschlossen.\newline Schreibt man also: \verb+$x~{l}$+ so wird $x'{l}$ gesetzt. Es k\ön\-nen als Subskript auch arithmetische Ausdr\ücke gesetzt werden. Schreibt man: \verb/$x~{i+j+3}$/, so erh\ält mein \linebreak[4] $x~{i+j+3}$. \par> \hbadness=1000 \medskip \section{Br\üche} \index{Bruch> F\ür die Schreibweise von Br\üchen oder gebrochen rationalen Funktionen ist das Makro \verb+\frac{zaehler}{nenner}+ vorhanden. Voraussetzung f\ür die Anwendung ist wiederum, da\ss\ dieses Makro nur in einem mathematischen environment benutzt werden kann. Im Text kann z.B. ein echter Bruch $\irac{l}{2>$ in der Form \verb+$\frac{l}{2}$+ geschrieben werden. Hill man ganze Formeln schreiben, so kann man z.B. \index-tirac} \begin-[verbat im} Ybeginiquote}
\[
z = \frac{x~2 + y*2}{2x + 5> \] \end{quote} \end{verbatim>
261
262
Quell text
schreiben. Man erh\ält dann \begin{quote} \[ 2 = \frac{x"2 + y*2H2x + 5>
\]
\end{quote} {\bf Hinweis f\ür den Satz:} Wenn in einem Text BrYiiche vorkommen, ist es zweckm\ä\ss ig, diese durch das 'environment \verb+\[...\]+' auf getrennten Zeilen zu setzen. W\ürde man den obigen Bruch inmitten von Text setzen, dann w\ürde man etwa den folgenden Satz erzielen. Anfang des Textes \dotfill Anfang des Textes\newline .... Und es entsteht \( z = \frac{x~2 + y"2}{2x + 5} \) aus den oben gemachten Angaben. Dabei ist noch zu berücksichtigen, da\ss\ .z.B. durch \verb+\newline+ eine Zeile begonnen werden mu\ss , damit \verb+\dotfill+ wirksam wird, wie im folgenden:\newline Ende des Textes \dotfill Ende des Textes. \vspace{0,5cm} Dieses Beispiel macht deutlich, da\ss\ bei normalem mathematischen Satz Formeln stets au\ss erhalb des normalen Satzes gesetzt werden sollten, da sonst die Lesbarkeit stark beeinträchtigt wird. \vspace{0.5cm} \addtocounter{aufg>{l> {\parindent=3cm \litem {{\bf Aufgabe \theaufg}} Bitte schreiben Sie folgenden Text. \par> \[ (a + b)'{2> = a*{2> + 2ab + b*{2> \] ist eine der wichtigsten Formeln aus der Mathematik. F\ür Ihr Alter ist es aber auch wichtig, da\ss\ Sie wissen, da\ss\ eine Rente nach n Jahren einen Endwert von \[ K = r\frac{q-n - lMq - 1} \] besitzt, wenn r die j\ährliche Einzalilung und p der Prozentsatz und $ q = 1 + \frac{p}{100} $ ist. \vspace{0.5cm} Zur Darstellung von Wurzeln ist ebenfalls ein sehr bequemes Makro vorhanden. Es lautet \indexiWurzel} \beginiverbatim}
Kapitel 6. Mathematische Texte \sqrt{radikand} \end{verbatim> \index{sqrt} Schreibt man zum Beispiel \begin{verbatim} \[ a + b = \sqrt{a"{2} + 2ab + b " { 2 » \] \end{verbatim} so erh\ält man die folgende Darstellung \vspace{0.5cm} \[ a + b = \sqrt{a*{2} + 2ab + b ' { 2 » \] \section{'environment equation'} Alle Darstellungen, die bis jetzt genannt worden sind, lassen sich auch innerhalb des 'environment equation' setzen. Es wird geschrieben \index{Gleichung} \begin{verbatim} Die beiden Gleichungen \b eg in { e quat i on} (a + b)*{2} = a"{2} + 2ab + b*{2} \end{equation} und \begin{equation} a + b = \sqrt{a*{2} + 2ab + b"{2}} \end{equation} sind gleichsertig. \end{verbatim} Hierf\ür erh\ält man den iolgenden Satz. Die beiden Gleichungen \begin{equation} (a + b)*{2} = a'{2} + 2ab + b'{2} \end{equation} und \begin{equation} a + b = \sqrt{a'{2} + 2ab + b"{2}} \end{equation} sind gleichwertig. \medskip Wie man sieht, sind die Gleichungen jetzt rechts \index{Gleichung, numeriert} numeriert. Die erste Nummer bedeutet dabei das Kapitel, die zweite die Nummer der Gleichung innerhalb des Kapitels. Es wird im n\ächsten Kapitel gezeigt werden, wie
263
264 man sich im Text auf diese Gleichungs-Nummern beziehen kann. \section{Summen mit Summenzeichen} In der h\öheren Mathematik wird zur Abk\ürzung der Schreibweise i\iir Summen ein Summenzeichen mit einer bestimmten Bedeutung benutzt. So kann man dann schreiben. \index{Summenzeichen} \medskip
\[ a_{l> + a_{2} + \ldots + a_{n> = \sum_{i=l>*n a_{i> \] \medskip Um diese Gleichung schreiben zu k\önnen, sind noch zwei Definitionen n\ötig. \begin{enumerate> \item \verb+\ldots+ erzeugt ''Fortsetzungs''-Punkte, die soviel bedeuten wie 'es geht so weiter bis' \item \verb+\sum_{unten}~{oben}+ erzeugt ein Summenzeichen
\[ \sum_{unten}*{oben} \] wobei ersichtlich 'unten' den Text enthalten mu\ss , der unter das Summenzeichen zu schreiben ist, und 'oben' den Text, der \über das Summenzeichen zu schreiben ist. \end{enumerate} \section{Vertikal ausgerichtete Strukturen - array} Xicht nur in der Mathematik ist es h\äufig erwMinscht, bestimmte Texte vertikal ausgerichtet auszugeben. Hierf\ür ist in \TeX\ das environment \begin{center> {\bf array} \end{center} \index{array} vorhanden. Hiermit kann ein array (=Bereich) vertikal ausgerichtet gesetzt werden. Das 'environment array' hat einen Parameter, der dem Parameter aus dem 'environment tabular' entspricht. Die Zahl der Unterparameter entspricht genau der Anzahl der Spalten des Arrays. F\ür jeden Unterparameter sind folgende Eintragungen m\öglich. \[ \mbox{Unterparameter} = \left\{
Quelltext
Kapitel 6. Mathematische Texte \begin{tabular}{cl} l*linksb\ündige Elemente in dieser S p a l t e W r&rechtsbYündige Elemente in dieser S p a l t e W eftzentrierte Elemente in dieser Spalte \\ p\{brei\}*Box der Breite brei \end{tabular} \right.
\] Die Trennung der einzelnen Elemente in den Zeilen wird wie beim 'environment tabular' durch \ft\ erreicht, durch \verb+\\+ wird das Zeilenende markiert. (\verb+\hline+ ist nicht zugelassen!) Umrahmungen der Spalten und der ganzen Tabelle sind nur beim 'environment tabulax' m\öglich. Alle Tabellen-Elemente werden im normalen Satz gesetzt. Venn mathematischer Satz gew\ünscht vird, mu\ss\ dies elementweise besonders angegeben werden, z.B. durch \verb+$$+-Umrahmung. Beim 'environment array' findet der gesamte Satz in einem mathematischen environment statt. Alle Elemente werden im mathematical mode gesetzt. \newline Falls normaler Textsatz in einem Element gew\ünscht wird, ist \index{mbox} \begin{verbatim} \mbox{normaltext} \end{verbatim} zu schreiben. Ein array-Element kann ein 'environment tabular' sein. Dieses arbeitet dann wie eine mbox. (Der mode innerhalb des 'environment tabular' ist paragraph mode.) \vspace{0.4cm} Das 'environment array' wird verwendet, wenn erreicht werden soll, da\ss\ z.B. linke Seiten oder rechte Seiten von Gleichungen senkrecht untereinander stehen. Beispiel: Schreibt man \begin{verbatim} \( \begin{array}{ll} a+bJt=\sqrt{a-{2}+2ab+b"{2}}\\ (a+b)"{2}*=a-{2}+2ab+b"{2} \end{array} \)
265
266
Quelltext
\end{verbatim} so ist damit sichergestellt, da\ss\ die '=' untereinanderstehen. \vspace{0.2cm} \( \begin{arrayHll} a+b*=\sqrt{a"{2}+2ab+b-{2}}\\ (a+b)-{2}fc=a-{2}+2ab+b*{2} \end{array} \) \vspace{0.2cm} Ist ein Element von einem array ein 'environment tabular', damn Verden Einzelelemente in der H\öhe zentriert gesetzt. Dies erl\äutert folgendes Beispiel \begin{verbatim} \( \begin{array}{ll} Einzelzeileft \begin{tabular}{111 c I} Erstens* l.ZeileW Zweitens* 2.Zeile\\ Drittens* 3.Zeile \end{tabular} \end{array}
\) \end{v erbat im} Dies f\ührt n\ämlich zu \[ \begin{array}{ll} Einzelzeile* \begin{tabular}{I1|cI} \hline Erstens* l.ZeileW \hline Zweitens* 2.Zeile\\ \hline Drittens* 3.Zeile \\ \hline \end{tabular} \end{array> \] Nein beachte hierbei, da\ss\ 'Einzelzeile' im mathematical mode, die Tabelle aber im paragraph mode gesetzt wird. Wollte man Einzelzeile auch im paragraph mode setzen, dann ist \verb+\mbox{Einzelzeile}+ zu schreiben. \section{Klammem als Strukturelemente} \begin{f igure}[ht] \index{Klammern} \begin{tabular}{1111111} \hline
Kapitel 6. Mathematische Texte \multicolumn{3}{ I c I }{Klammern}\\ \hline BameftCommand*Wirkung\\ \hline \Überklammerfc\verb+\overbrace{element}+fc $\overbrace{\rule{0.5in}{0in}}$\\ \hline Unterklammerft\verb+\underbrace{element}+& $\underbrace{\rule{0.5in}{0in}}$\\ \hline geschweifte Klammer aufit\verb+\left\{{element}+ft $\left\{{\rule{0in}{0.25in»\right. $\\ \hline geschweifte Klammer zuft\verb+{element}\right\}+ft $\left. {\rule{0in}{0.25in»\right\>$\\ \hline Klammer aufft\verb+\left({element}+Ä $\left ({\rule{0in}{0.25in»\right. $\\ \hline Klammer zuk\verb+{element}\right)+* $\left. {\rule{0in}{0.25in»\right)$\\ \hline \end{tabular} \caption{\label{Klammem}Klammera}\end{figure} H\äufig kommt es vor, da\ss\ Klammern oder andere graphische Zeichen benutzt Verden sollen, um gewissen Z u s a m m e n h ä n g e zu verdeutlichen. Hierbei wird zun\ächst an die Symbole Abb. \ref{Klammern} Seite \pageref{Klammern} gedacht. F\ür die Anwendung werden noch folgende Hinweise gegeben. \begin{enumerate} \item Die Verwendung von Klammern dieser strukturierenden Art setzt immer ein mathematisches Environment voraus. Dieses wird in folgender Reihenfolge geschrieben. \begin{enumerate} \item Environment-Anfang (\$ oder \verb+\(+ oder \verb+\[+) \item \verb+\left+ gefolgt von einem Symbol f\ür die zu verwendende Klammer (das k\önnte auch eine schlie\ss ende Klammer sein!) \item Das Element (Text oder tabular environment oder array environment) \item \verb+\right+ gefolgt von einem Symbol f\ür die zu verwendende Klammer (das k\önnte auch eine \öffnende Klammer sein!) \item Environment-Ende (\$ oder \verb+\)+ oder \verb+\]+) \end{enumerate} \item Es mu\ss\ darauf geachtet werden, da\ss\ die Klammern, die mit left bzw. right geschrieben werden, paarweise auftreten. Falls man eine einzelne Klammer
267
268 erzeugen m\öchte, i s t bei einer left-Klammer s t e t s \begin{center> \verb+$\right.$+ \end{center> •C\bf h i n t e r } \verb+{element}+ zu schreiben, bei einer right-Klammer i s t \begin{center> \verb+$\left.$+ \end{center> {\bf v o r } \verb+{element}+ zu schreiben. \item Als Elenente k\önnen dabei \begin{enumerate} \item Tabellenelemente \item ganze Tabellen \item arrays \end{enumerate} Verwendung linden. \item Es k\önnen a l l e mathematischen environments verwendet werden. \end{enumerate} Schreibt man \begin{verbatim} \[ \mbox{Unterparameter} = \ l e f t \ { \begin{tabularMcl} lfelinksb\ündige Elemente in d i e s e r SpalteW rftrechtsb\ündige Elemente in d i e s e r SpalteW eftzentrierte Elemente in d i e s e r Spalte \ \ p\{brei\}ftBox der Breite b r e i \end{tabular} \right.
\] \end{verbatim} so e r h \ ä l t man \[ \mbox{Unterparameter} = \ l e f t \ { \begin{tabular}{cl} lftlinksb\ündige Elemente in d i e s e r SpalteW rftrechtsb\ündige Elemente in d i e s e r SpalteW cfczentrierte Elemente in d i e s e r Spalte \ \ p\{brei\}ftBox der Breite b r e i \end{tabular} \right.
\]
Quelltext
Kapitel 6. Mathematische Texte \addtocounter{aufgHl} {\parindent=3cm \litem {{\bf Aufgabe \ t h e a u f g » Bitte schreiben Sie folgenden Text. \par> In einem Fuhrpark-Informationssystem fahren die Lkw die Touren nach vorgegebenen Fahrbefehlen ab. Die Touren sind durch Verbindungen von Knoten festgelegt. Hierbei haben Knoten unterschiedliche Bedeutung. \[ Knoten \left\{ \begin{arrayHl> Depot
\\
Kundenort
{
\\
Endpunkt \left\{ \begin{array}{l> Fahrer-EndpunktW Lager \end{array> \right.
>
\end{array>
\]
\right.
\addtocounter{aufg>{l> {\parindent=3cm \litem {{\bf Aufgabe \theaufg}} Der Text der vorigen Aufgabe soll nun noch in folgender Form geschrieben werden. Welche NÄnderungen m\üssen dazu angebracht werden (-(\bf zwei> prinzipielle NÄnderungen!) \par> \vspace{0.4cm> \( \mbox{Knoten}\left\{ \begin{array}{l> \mbox{Depot}
\\ \mbox{Kundenort>
\\ •C \mbox{Endpunkt}\left\{ \begin{array}{l> \mbox{Fahrer-Endpunkt}\\ \mbox{Lager>
269
Quelltext
270 \end{array}
>
\right. \end{array}
\right. \) \vspace{0.4cm} Aus diesen beiden Beispielen ist zu sehen, selche Vorteile die mathematische Satztechnik auch f\ür andere Bereiche hat. Hierdurch vird insbesondere die M\öglichkeit des strukturierten Schreibens (und vorher: Denkens) erheblich unterstNützt. \medskip \begin{grauboxH8}{0.8\textsidth} Immer, wenn •C\linewidth=0.8\textwidth \begin{itemize} \item Zeichen, die zum mathematischen Satz gehören \item mathematische Gleichungen \item mathematische Strukturen (array) \item Strukturklammern \end{itemize} > gesetzt werden sollen, ist ein mathematisches environment \nesline \$ \verb+\+( \verb+\+) oder \verb+\+[ \verb+\+] zu versenden. \end{graubox}
Kapitel 7. Graphik
271
Kapitel 7 Graphik
y>
'/.
%
Kapitel 7
Graphik
\chapter{Graphik} \newcount\i \dei\db{\i=20 \loop \put(\number\i,50){\line(1,0){10» \advance \i by 20 \ilnum\i < 180 \repeat \i=0 \loop \put (170, \number\i) { M i n e (0,1) { 1 0 » \advance \i by 20 \ilnua\i < 60 \repeat
} \section{Abbildungen — 'environment figure'} \index{figure> \index{Abbildungen> Abbildungen spielen in Texten eine besondere Rolle. Es ist m\öglichst automatisch abzusichern, da\ss\ der Text oder die Graphik, die zusammengeh\ört, auch auf einer Seite des Dokuments abgebildet wird. In \TeX\ ist hierf\ür das 'environment figure' vorhanden. Schreibt man \begin{figure}[h] \begin{verbatim} \begin{figure}[ort]
272
Quelltext
\caption{\label{kennung}Beispiel einer Bildunterschrift} \end{figure} \end{verbat im} \caption{\label{kennung}Beispiel einer Bildunterschrift} \end{figure} \index{Unterschrift einer Abb.} \index{caption} \index{Kennung einer Abb.} \index{label} so wird hiermit eine Abbildung mit der Bildunterschrift 'Beispiel einer Bild\-unterschrift' definiert. Der Text 'kennung' mu\ss\ die Abbildung eindeutig identifizieren. Die Abbildung vird auf einer Seite des Dokuments gesetzt. Mit dem Parameter ort kann der Anwender dar\über entscheiden, am welcher Stelle die Abbildung im Dokument auftaucht.
\[
\mbox{ort} = \left\{ \begin{tabularMcl} hfthier — an der laufenden TextstelleW tftam Kopf der n\ächsten SeiteW bftam Fu\ss\ der n\ächsten SeiteW ptauf einer Sonderseite \end{tabular} \right.
\]
Im Parameter ort Verden alle der zugelassenen Parameter in der Reihenfolge der Priorit\ät eingegeben. Wird kein Parameter angegeben, so gilt als Standard htbp. Die Abbildung vird also entveder am Kopf der n\ächsten Seite oder, venn das bereits durch eine andere Abbildung besetzt ist, am Fu\ss\ oder auf einer getrennten Seite am Ende des Dokuments gesetzt. Normalerveise vird man ht w\ählen, vomit erreicht vird, da\ss\ die Abbildung entveder direkt gesetzt vird oder auf die folgende Seite oben. Es sei allerdings angemerkt, da\ss\ dies nur zul\ässig ist, venn abgesichert ist, da\ss\ auf diese Heise keine Konkurrenzsituation erzeugt wird. In diesem Falle v\ürde p gev\ählt, die Abbildung auf Seiten am Ende des Dokuments verschoben.
Kapitel 7. Graphik Mit Hille der im label angegebenen kennung, ist im «eiteren Text jederzeit ein Bezug auf die Abbildung m\öglich. Schreibt man \begin{verbatim} \ref{kennung} \end{verbatim} so erh\ält mein mit \begin{center} \ref{kennung} \end{center} \index{ref} \index{Referenz einer Abb.} die Abbildungsnummer. Schreibt man \begin{verbatim} \pagerei{kennung} \end{verbatim} \index{pageref} \index{Referenzseite} so erh\ält man mit \begin{center} \pagerei{kennung} \end{center} die Seite, auf der die Abbildung vorkommt. \medskip \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aufgabe \theaufg}} Bitte schreiben Sie ein environment f\ür eine Abbildung, die m\öglichst an der Textstelle auftreten soll, sonst auf der n\ächsten Seite oben. Die Bildunterschrift soll ''Tabelle der Projekte'' lauten. Mit der Referenz ''projekte'' soll man sich im Text stets auf diese Tabelle beziehen k\önnen. \par} \section{Grunds\ätzliches \über Graphik} F\ür die Gestaltung von Graphik mit den Elementen \begin{itemize} \item[] Gerade \item[] Vektor \item[] Rechteck \item[] Kreis (bis 40 pt Durchmesser) \item[] Oval
273
274 \end{itemize} sind Makros vorhanden, selche die komfortable Gestaltung von Graphik gestatten, wenn nur normale Anforderungen gestellt werden. Es wurde insbesondere daf\ür gesorgt, da\ss\ in der Datenverarbeitung und Organisation auftretende Strukturelemente bequem gesetzt «erden k\önnen. HierfYiir wurden zusätzliche Makros geschaffen. Diese «erden im n\ächsten Kapitel behandelt. \section{Gr\ö\ss e der Abbildung und Lage der Elemente} Das 'environment picture' ist dafYiir geschaffen worden, um Zeichnungen setzen zu kNönnen, die aus den oben genannten Elementen aufbaubar sind. \index{picture} \begin{figure}[ht] \begin{picture}(320,100) \put (20,0 HNvector ( 0 , 1 K 1 0 0 » \put(20,105){y} \put (20,0){\vector(1,0) {300» \put(325,0){x} \put(2 0,0){\dashbox(100,50){}} \put(120,50){\circle*{2}} \put(122,52){Punkt x=100, y=50> \put(110,-12){\makebox(20,12) [c]{\centerline{100»> \put(10,44){\makebox(10,12)[c]{\centerline{50»> \end{picture} \newline \caption{\label{koord}Koordinaten-System beim 'environment picture'} \end{figure} Das Prinzip der Darstellung ist sehr einfach. Das 'environment picture' gestattet die Angabe einer Abbildungs-Gr\ö\ss e (Rechteck mit Breite und L\änge) lind von Elementen innerhalb dieses Rechtecks. Um die Lage der Elemente angeben zu k\önnen, wird ein \übliches rechtwinkliges Koordinatensystem innerhalb des Rechtecks zugrundegelegt. F\ür jedes 'environment picture' werden \begin{itemize} \item Breite (x-Richtung) \item L\änge (y-Richtung) \end{itemize} des Rechtecks vom Anwender vorgegeben. Und es ist
Quelltext
Kapitel 7. Graphik \medskip \begin{center} \begin{tabularH 1111 > \hline Ursprungftdie linke untere Ecke des Rechtecks \\ L\ängeneinheit*\verb+\+unitlength (standardin\ä\ss ig 1 pt) \\ \hline \end{tabular} \end{center} \medskip Graphisch wird also die Abb.\ref{koord} Seite \pageref{koord} mit dem gezeichneten Koordinatensystem zugrunde gelegt, venn man eine Breite von 325 Einheiten und eine L\änge von 100 Einheiten vorsieht. \section{'enviromnent picture'} Das Haupthilfsmittel i\ür die Gestaltung von einfacher Graphik stellt das 'environment picture' dar. Das 'environment picture* legt gevisserma\ss en das Koordinatensystem fest. Hierzu «erden \begin{graubox}{8}{0. 5\textwidth} {\linewidth=0.5\textwidth \begin{itemize} \item Koordinaten-Ursprung \item Breite und L\änge der Abbildung \item LNängeneinheit der Darstellung \end{itemize>
>
\end{graubox)festgelegt. \medskip i\em Schreibt man:> \begin{verbatim} \beginipicture>(breite,laenge)
\endipicture} \end{verbatim} so wird hierdurch beginnend bei der jeweiligen Textstelle als obere linke Ecke des Rechtecks ein Rechteck der Breite breite und der L\änge laenge als Koordinatensystem festgelegt. F\ür Breite und L\änge gilt als Einheit die durch Ybegin-fcenter}\verb+\+unitlength
275
276
Quelltext
\end{center} \index{picture L\ängeneinheit} \index{unitlength} festgelegte Angabe. Standardm\ä\ss ig ist \begin{center} \verb+\+unitlength = lpt \end{center} vorbesetzt. Dies k a n n aber auch lokal durch Benutzung von geschweiften Strukturklammern durch \begin{center} \verb+\+unitlength = xxpt \end{center} auf xxpt gesetzt werden. Der Koordinaten-Ursprung($x=0,y=0$) ist stets der linke untere Eckpunkt des durch das 'environment picture' definierten Rechtecks. Es ist g\ünstig, wenn vor dem 'environment picture' (z.B. durch eine eingeschobene Leerzeile) abgesichert wird, da\ss\ dieses auf Zeilenanfang beginnt. Dann liegt der Koordinaten-Ursprung auf dem linken Textrand soweit von d e m zuletzt geschriebenen Text entfernt, wie es die im 'environment picture* eingetragene L\änge eingibt. Wenn n a c h dem 'environment picture' wieder auf dem Zeilenanfang begonnen werden soll, ist wiederum eine Leerzeile im Quelltext anzubringen. \section{Basis-Makro put} Zur Lokalisierung von graphischen Elementen innerhalb eines 'environment picture' dient das Makro put. \index{put} Das Makro put hat den folgenden Aufbau Ybegin-Cverbat im> \put(x-koordinate,y-koordinate){element} \end{verbatim} D u r c h x-koordinate wird die x-Koordinate, durch y-koordinate wird die y-Koordiante f\ür den Bezugspunkt des graphischen Elements angegeben. In den folgenden Unterabschnitten werden die graphischen Elemente u n d ihre Schreibweise behandelt. Dabei ist dann jeweils der Bezugspunkt anzugeben. F\ür die Lage des Elements ist das put-Makro verantwortlich. Dieses legt den Bezugspunkt fest. \subsection{Text} F\ür das Element Text gelten folgende Regeln.
Kapitel 7. Graphik {\parindent=3cm \litem i\bf Wirkung} An einer bestimmten Stelle des 'environment picture' ist Text zu positionieren. \litem {\bf Bezugspunkt} Der Text wird in einer horizontalen Box gesetzt, die links\-b\ün\-dig und oben bei x-koordinate, y-koordinate beginnt. \par} Schreibt man \begin{verbatim} \begin{picture}(300,100) \put(150,50){text} \end{picture} \end{verbatim} so erh\ält man \smallskip \begin{picture}(320,110) \put(170,50){t ext} '/, Koordinaten \put(20,0){\vector(0,l){100}} \put(20,105){y} \put(20,0){\vector(l,0){300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]-C\centerline{150}}} \put(10,44H\makebox(10,12)[cH\centerline{50}}} \endipicture} \bigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie Verden durch das environment nicht erzeugt. \newpage '/, erzwungener Seitenumbruch \subsection{Umrahmtes Rechteck} F\ür das Element umrahmtes Rechteck gelten folgende Regeln. \index{framebox} \index{Rechteck} i\parindent=3cm \litem {\bi Wirkung} Es soll an einer bestimmten Stelle des 'environment picture' ein umrahmtes Rechteck mit Text stehen. \litem {\bf Bezugspunkt} Der linke untere Eckpunkt des Rechtecks ist der Bezugspunkt. \litem {\bf Makro} F\ür die Darstellung des
277
278 umrahmten Rechtecks wird das Makro \begin{center} \begin{verbatim} \framebox(breite,laenge)[ort]{text} \ end{ v erbat im} \end{center} verwendet. Hierbei bedeuten \begin{center} \begin{tabular}{ll} breiteftBreite des RechtecksW laengeftL\änge des RechtecksW textftText, der in dem RechteckW ¿stehen soll \end{tabular} \end{center} Und f\ür den ort (Plazierung des Textes) gibt es folgende Festlegungen \begin{center> \[ \mbox-Cort} = \leit\{ \begin{tabularHcl} l&linksb\ündig\\ r&rechtsb\ündig\\ c&zentriertW t&vertikal 'oben' \\ bftvertikal 'unten' \end{tabular} \right.
\]
\end{center} Es m\üssen stets horizontale und vertikale Positionierung angegeben werden, wenn nicht c (zentrieren) gew\ählt wird, \newline Beispiel: bl positioniert den Text linksb\ündig am unteren Rand. \par> Schreibt man Ybeginiverbatim} \begin{picture}(300,100) \put(150,50){\framebox(50,20){t ext}} \end{picture} \end{verbatim} so erh\ält man \medskip \begin{picture}(320,110)
Quelltext
Kapitel 7. Graphik \put (170,50){\framebox (50,20) [c] {text}} '/, Koordinaten \put (20,0){\vector(0,1) { 1 0 0 » \put(20,105){y} \put(20,0){\vector(l,0){300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150}}} \put(10,44){\makebox(10,12)[c]{\centerline{50}}} \end{picture} \bigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. \medskip Wenn das umrahmte Rechteck z.B. mit dem Paramter lt (Text links oben positionieren) versehen wird, dann erh\ält man die folgende Darstellung. \medskip \begin{picture}(320,110) \put(170,50){\framebox(50,20)[lt]{t ext}} '/. Koordinaten \put(20,0){\vector(0,1){100}} \put(20,105){y} \put(20,0){\vector(l,0){300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150}}} \put(10,44){\makebox(10,12)[c]{\centerline{50}}} \end{picture} \bigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie «erden durch das environment nicht erzeugt. Soll in dem eingerahmten Rechteck Zeilenumbruch stattfinden, dann kann mein an Stelle von text \begin{verbatim} \begin{minipage}[pos]{breite} text \end{minipage} \end{verbatim} schreiben. Hierbei bedeuten
279
Quelltext
280 \index{minipage} \beg in{c ent er> \begin{tabular}{ll} breiteiBreite der minipage = Breite posfcPositionierang = ort framebox \end{tabular} \end{center}
frameboxW
Dies w i r d an einem Beispiel demonstriert, vobei als Text \begin{centerb}{80pt} {erste Z e i l e W zweite Z e i l e W dritte Zeile} \end{centerb} gev\ählt wurde. Die Box ist jetzt 80 pt breit. Schreibt m a n \beg in{ v erbatim} \begin{picture}(300,100) \put(150,50){Yframebox(80,40)[lt] { \begin{minipage} [lt] -C80pt} 1. Text 2. Text 3. Text 4. Text \end{minipage} }
} \end{picture} \end{verbatim} so erh\ält m a n \medskip \begin{picture}(320,110) \put(170,50){Vf ramebox(85,40)[lt]{ \begin{minipage}[lt]{80pt} 1. Text 2. Text 3. Text 4. Text \end{minipage} }
} '/, Koordinaten \put(20,0){\vector(0,1){100}} \put(20,105){y} \put(20,0){\vector(l,0){300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150}}} \put(10,44){\makebox(10,12)[c]{\centerline{50}}}
Kapitel 7. Graphik \end{picture} \bigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. Hinweis: Arbeitet mein praktisch mit dem 'environment minipage', dann ist es gut, die Breite ca. 5 pt kleiner zu w\ählen, als die Breite der framebox, um \Überschneidungen zu vermeiden. \subsection{Rechteck ohne Rahmen} F\ür das Element Rechteck ohne Rahmen gelten folgende Regeln. \index{makebox} \index{Rechteck} {\parindent=3cm \litem {\bf Wirkung} Es soll an einer bestimmten Stelle des 'environment picture' ein Rechteck ohne Rahmen mit Text stehen. \litem {\bf Bezugspunkt} Der linke untere Eckpunkt des Rechtecks ist der Bezugspunkt. \litem {\bf Makro} Als Makro i\ür die Darstellung des Rechtecks ohne Rahmen wird \begin{center} \begin{verbatim} \makebox(breite,laenge)[ort]{text} \endiverbatim} \end{center} verwendet. Hierbei bedeuten \begin{center} \begin{tabular}{ll} breiteftBreite des R e c h t e c k s W laenge&L\änge des R e c h t e c k s W textftText, der in dem R e c h t e c k W Jtstehen soll \end{tabular} \end{center} Und f\ür den ort gibt es folgende Festlegungen \begin{center} \[ \mbox{ort} = \left\i \beg in{tabular H c l } lÄlinksb\ündig\\ rftr e cht sb\ündig\\
281
Quell text
282 ctzentriertW t J t v e r t i k a l 'oben' \ \ bAvertikal 'unten' \end{t abular} \right. VJ \end{center} Es m\üssen s t e t s h o r i z o n t a l e und v e r t i k a l e P o s i t i o n i e r u n g angegeben werden, wenn n i c h t c ( z e n t r i e r e n ) gew\ählt wird, \newline B e i s p i e l : bl p o s i t i o n i e r t den Text linksb\ündig am unteren Rand. \par> S c h r e i b t man Ybegin-Cverbat im} \begin{picture}(300,100) \put(150,50){\makebox(50,20Htext}} \end{picture} \end{verbatim> so erhNält man \medskip \begin{picture}(320,110) \put ( 1 7 0 , 5 0 ) {\makebox(50,20) [c] { t e x t » '/, Koordinaten \put(20,0)-[\vector(0,l)il00}> \put(20,105){y> \put(20,0)i\vector(l,0){300» \put(325,0){x> \db \put(160,-12)-C\makebox(20,12)[c]{\centerline{150>}> \put(10,44){\makebox(10,12)[c]{\centerline{50>}> \end{picture> \bigskip Das Achsenkreuz, d i e g e s t r i c h e l t e n Linien und d i e Koordinaten sind l e d i g l i c h zur Orientierung a n g e b r a c h t , s i e werden durch das environment nicht erzeugt. \medskip '/.erzwungener Absatz Die b e i der framebox gemachten E r \ ö r t e r u n g e n g e l t e n genau s o . W i r d e man das l e t z t e B e i s p i e l mit e i n e r makebox g e s t a l t e n , dann e r h i e l t e man d i e folgende Graphik. Die Lage der Box i s t dabei g e s t r i c h e l t angegeben. Au\ss erdem wurde h i e r a l s P o s i t i o n i e r u n g z e n t r i e r e n verwendet. \medskip
Kapitel 7.
Graphik
\begin{picture}(320,110) \put(170,50){\dashbox(85,40)[c]{ \begin{minipage}[c]{85pt> 1. Text 2. Text 3. Text 4. Text \end{minipage} >
> '/. Koordinaten \put (20,0){\vector(0,1 ) { 1 0 0 » \put(20,105){y} \put (20,0) •CXpaxindent=3 cm \litem {\bf Wirkung} Es s o l l ein einer bestimmten Stelle des 'environment picture' ein Rechteck mit gestrichteltem Rahmen mit Text stehen. \litem {\bf Bezugspunkt} Der linke untere Eckpunkt des Rechtecks i s t der Bezugspunkt. \litem {\bf Makro} Als Makro f\ür die Darstellung des Rechtecks mit gestricheltem Rahmen vird \begin{center} \beg in{v erbatim} \dashbox(breite,laenge)[ort]{text} \end{verbat im} \end{center} verwendet. Hierbei bedeuten \begin{center} Ybegin-CtabularHll}
283
284 b r e i t e f t B r e i t e des RechtecksW laengefcL\änge des RechtecksW textfcText, der in dem RechteckW »stehen s o l l \end{tabular> \end{center> Und f \ ü r den o r t gibt es folgende Festlegungen \beginicenter}
\[
\mbox{ort> = \ l e f t \ { \begin{tabular>{cl> l*linksb\iindigW rfcrechtsb\ündigW cfczentriertW tfcvertikal 'oben' \ \ bfcvertikal 'unten' \end{tabular> \right.
\]
\end{center} Es m\üssen s t e t s horizontale und v e r t i k a l e Positionierung angegeben werden, wenn nicht c ( z e n t r i e r e n ) gew\ählt wird, \newline B e i s p i e l : bl p o s i t i o n i e r t den Text linksb\ündig am unteren Rand. \par> Schreibt man \begin{verbatim} \begin{picture}(300,100) \put(150,50){\dashbox(50,20){text » \end{picture> \end{verbatim} so e r h \ ä l t man \medskip \begin{picture}(320,110) \put ( 170,50 ) Adashbox ( 50,20 ) [c] { t ext » */, Koordinaten \put(20,0H\vector(0,l){100» \put(20,105){y} \put(20,0H\vector(l,0){300» \put(325,0){x> \db \put(160,-12){\makebox(20,12) [ c ] { \ c e n t e r l i n e { 1 5 0 » > \put ( 1 0 , 4 4 ) {\makebox(10,12) [ c ] { \ c e n t e r l i n e { 5 0 } } } \end{picture}
Quelltext
Kapitel 7. Graphik \medskip Das Achsenkreuz, die gestrichelten Linien, die auf die Koordinaten hinweisen und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. Die gestrichelten Linien, die die Begrenzung der box darstellen, entstehen aus dem command \verb+\dashbox+. Die bei der framebox gemachten Er\örterungen gelten genau so. V\ürde man das letzte Beispiel mit einer dashbox gestalten, bei der als Positionierung 'rechts unten' rb verwendet wird, dann erhielte man die folgende Graphik: \begin{picture}(320,110) \put(170,50){\dashbox(50,20)[rb]{text} > '/, Koordinaten \put (20,0) {\vector (0,1) { 1 0 0 » \put(20,105){y> \put(20,0){\vect or(1,0){300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150»> \put(10,44){\makebox(10,12) [c]{\centerline{50}}} \end{picture} \medskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. \medskip \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aufgabe \ t h e a u f g » Bitte entwickeln Sie ein doppelt gerahmtes Schild der Breite 80 pt und der L\änge 40 pt, welches zentriert im Text auftritt. Der Abstand der inneren Linien von den \äu\ss eren sei jeweils 2 pt. \par> \begin{center> \begin{picture}(80,40) \put(0,0){\framebox(80,40){Informat i k a » \put(2,2){\framebox(76,36){» \end{picture> \end-Ccenter)-
28-5
286
Quelltext
\ s u b s e c t i o n { G r a u - U n t e r l e g u n g von B o x e s $ \ a s t $ } W i l l man e i n e g r a u e U n t e r l e g u n g von B o x e s \ f u s s n o t e { M a k r o aus i n f m a k r o . t e x } e r r e i c h e n , dann i s t d i e s f \ ü r a l l e A r t e n von Boxes m \ ö g l i c h , d i e b i s h e r g e n a n n t wurden. \medskip •C\em S c h r e i b t man:} \begin{verbatim} \begin{picture}(breite,laenge) \put(x,y){\...box(breite-box,l\änge-box)[ort]{....text...}} \put(x,y){\gr{grau}{breite-box}{l\änge-box}} \end{picture} \ e n d { v e r b a t im} {\em so e r h \ ä l t man} \medskip e i n e . . . b o x , d i e mit d e r Graustuie \ c e n t e r l i n e { g r a u (0(=wei\ss ) — 100(=schwarz))} unterlegt ist. Wir d e m o n s t r i e r e n d i e s an dem B e i s p i e l e i n e s umrahmten R e c h t e c k s . \medskip {\em S c h r e i b t man:} Ybegin-Cverbat im} \begin{picture}(300,100) \put(100,50){\framebox(50,20){t ext}} \ p u t (100,50) { \ g r { 8 H 5 0 H 2 0 } } \end{picture} \end{verbatim} {\em so e r h \ ä l t man:} \begin{picture}(35,120) \put(170,50){\framebox(50,20)[c] {text}} \ p u t (170,50) {\gr{ 8H50H20}} '/. K o o r d i n a t e n \put(20,0){\vector(0,l){100}} \put(20,105){y} \ p u t ( 2 0 , 0 ) { \ v e c t o r ( 1 , 0 ) {300}} \put(325,0)ix} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150}}} \put(10,44){\makebox(10,12)Cc]-[\centerline{50}}} \end{picture} \bigskip Das A c h s e n k r e u z , d i e g e s t r i c h e l t e n L i n i e n und die Koordinaten sind l e d i g l i c h zur Orientierung a n g e b r a c h t , s i e werden durch das e n v i r o n m e n t
Kapitel 7. Graphik nicht erzeugt. \medskip \begin{graubox}{8}{0.8\textwidth} Soll ein Rechteck grau unterlegt «erden, so sind stets zwei Zeilen zu schreiben. Die erste Zeile spezifiziert die Boxart und den Inhalt der Box, die zweite Zeile spezifiziert die Graustufe. In der zweiten Zeile m\üssen die Koordinaten sowie Breite und L\änge des Rechtecks aus der ersten Zeile Nübernommen werden. \end{graubox} \subsection{Gerade Linie} F\ür das Element gerade Linie gelten folgende Regeln. \index{line} \index{Linie, gerade} {\parindent=3.2cm \litera {\bf Wirkung} Es soll eine gerade Linie vom Punkt $P_0$ mit den Koordinaten $(x_0,y_0)$ in der Richtung (x,y) gezogen werden, deren Projektion in x-Richtung eine L\änge von 1 hat. \litem {\bf Bezugspunkt} Der Anfangspunkt $P_0$ ist der Bezugspunkt. \litera i\bf Makro} Als Makro f\ür die Darstellung der geraden Linie wird \verb+\line(x,y){l}+ verwendet. \newpage '/.erzwungener Umbruch \litem i\bf Einschränkungen} Hinsichtlich x und y gelten folgende Einschränkungen, x und y sind ganzzahlig. x und y unterliegen der B e s c h r ä n k u n g $-6 \leq x,y \leq 6$. x und y d\ürfen keinen gemeinsamen Teiler besitzen. F\ür vertikale Linien ist $x=0,y=+l$ oder $y=-l$ und 1 ist die L\änge der Linie. \par} \begin{figure}[ht] \begin{picture}(320,150) '/, Koordinaten \put(170,50){\line(5,4){70}} \put(20,0){\dashbox(220,106){}} \put(240,106){\circle»{5}} \put(170,50)i\circle*i5}} \put(160,60){\bf$P_0$} \put(250,116){\bf$P_1$}
287
288
\put(190,50){\vector(-l,0){20» \put (190,45) {\makebox (10,10) { x » \put(200,50){\vector(l,0){20» \put (200,20) {\vector ( - 1 , 0 ) { 3 0 » \put(200,15){\makebox(10,10){l» \put(210,20){\vector(l,0){30}} \put(220,60){\vector(0,-lHl0» \put(220,70){y} \put(220,80){\vector(0,l){10» \put(20,0){\vector(0,l){150» \put(20,155){y} \put(20,0){\vector(l,0){300» \put(325,0){x> \db \put(160,-12){\makebox(20,12)[c]{\centerline{$x_0$}}} \put(10,44){\makebox(10,12)[c]{\centerline{$y_0$}}} \end{picture} \caption{\label-{xyl}Bedeutung von Richtung (x,y) und L\änge (1)> \endifigure} \medskip Die Koordinaten f\ür den Anfangspunkt, die \label{formelline} Richtung und die Projektion der L\änge bestimmen die Koordinaten f \ ü r den Endpunkt wie folgt. \[ \begin{arrayMlll} P_0&= (x_0,y_0)*\mbox{der Anfangspunkt} \\ undfc&W (x,y)&* \mbox{die Richtung}\\ sowie&ftW l&ft \mbox{die L\änge der Projektion} \\ \end{array} \] dann i s t \[ \begin{array}{ll> x_l x_0 + 1\\ y_l »= y_0 + Y f r a c { l M x } y \end{array> \]
Quelltext
Kapitel 7. Graphik und $P_1 = (x_l,y_l)$ ist der Endpunkt. Die Abbildung \ref{xyl} auf Seite \pageref{xyl} veranschaulicht die Bedeutung der Parameter x,y,l. \newline An einem Beispiel sei dies noch einmal erl\äutert. Der Anfangspunkt sei (80,20) die Richtung (3,4) und die L\änge sei 60. Die Richtung ist zul\ässig, denn beide Zahlen liegen zwischen 1 und 6 und au\ss er\-dem sind die Zahlen 3 und 4 teilerfremd. Dann ist also gem\ä\ss\ den getroffenen Vereinbarungen Yiiber die Bezeichnungen: \[ \begin{array}{ll} x_0 ft= 80 \\ y_0 ft= 20 \\ x *= 3 \\ y *= 4 \\ 1 *= 60 \\ \end{array> \] Setzt man diese Gr\ö\ss en in die obigen Formeln ein, so erh\ält mein: \[
\beginiarrayHll} x_lk=140\\ y_lfc=100 \end{array> \] Der Endpunkt hat also die Koordinaten (140,100). \begin{grauboxM8}{0.8\textwidth} LA\TeX\ verwendet eine 'Schrift', um die Geraden darzustellen. Die Geraden werden aus Elementen zusammengestellt, die kleine Geradenstücke sind, die in einer bestimmten Richtung geneigt sind. Nicht alle Richtungen sind in der Schrift implementiert. D.h. es können nicht alle Geraden zwischen 2 Punkten dargestellt werden. Dies ist eine Einschränkung, aber in allen praktisch wichtigen Fällen der Erstellung von Dokumenten ist das ausreichend. \end{graubox} \medskip Schreibt man: \begin{verbatim} \begin{picture}(300,130) \put (80,20H\line (3,4){60»
289
290
Quell text
\end{picture} \end{verbatim} so erh\ält man \medskip \begin{picture}(320,130) \put(100,20){\line(3,4){60» '/. Koordinaten \put(20,0){\vector(0,1){120» \put(20,125){y} \put(20,0){\vector(l,0){300» \put(325,0){x> \put(20,0){\dashbox(80,20){» \put (90,-12){\makebox(20,12) [c] {\centerline{80»> \put (10,14){\makebox(10,12) [c] {\centerline{20»> •/.\put(20,0){\dashbox(140,100){» \put(150,-12){\makebox(20,12)[c] {\centerline{140}» \put(6,94){\makebox(10,12) [c] {\centerline{100»} \end{picture> \medskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie «erden durch das environment nicht erzeugt. \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aulgabe \theaufg» Bitte setzen Sie mit Hilfe des picture environments den nachfolgend abgebildeten Rhombus, \newline Folgende Hinweise f\ür die Ma\ss e werden gegeben. Breite der Zeichnung 200 pt, L\änge 100 pt. Die Punkte haben die Koordinaten $1=(0,75)$ $2=(100,150)$ $3=(0,200)$ $4=(100,0)$. \pcür} \begin{center> \begin{picture>(200,100) \put(0,50){\line(2,1){100» \put(100,100){\line(2,-l){100» \put(200,50){\line(-2,-l){100» \put(100,0){\line(-2,l){100» \end{picture> \end{center} \subsection{Vektoren Pfeile} \index{vector}\index{Pfeil} F\ür das Element Vektor (Pfeil) gelten folgende Regeln. {\parindent=3.2cm
Kapitel 7. Graphik
\litem {\bf Wirkung} Es s o l l ein Vektor vom Punkt $P_0$ mit den Koordinaten $(x_0,y_0)$ in der Richtung ( x , y ) gezogen werden, deren Projektion in x-Richtung eine L\änge von 1 hat. \litem {\bf Bezugspunkt} Der Anfangspunkt $P_0$ i s t der Bezugspunkt. \litem {\bf Makro} Als Makro f\ür die Darstellung der geraden Linie wird \ v e r b + \ v e c t o r ( x , y ) { l } + verwendet. \litem {\bf Einschränkungen} Hinsichtlich x und y gelten folgende Einschränkungen. x und y sind ganzzahlig. x und y unterliegen der Beschr\änkung $-6 \leq x \leq 6$ und $-4 \leq y \leq 4$. x und y d\ürfen keinen gemeinsamen T e i l e r besitzen. F\ür v e r t i k a l e Linien i s t $x=0,y=+l$ oder $y=-l$ und 1 i s t die L\änge der L i n i e . \par> Die Bedeutung der Parameter x , y , l kann der Abbildung \ r e f { x y l } entnommen werden. Die Berechnungsformeln f\ür die Koordinaten des Endpunkts gelten so wie bei der geraden Linie (siehe Seite \ p a g e r e f { f o r m e l l i n e } ) . Schreibt man \begin-fverbatim} \begin{picture}(300,130) \put (80,20) {\vector (3,4) { 6 0 » \end{picture} \end{verbat im} so erh\ält man \medskip \begin{picture}(320,130) \put(100,20){\vector(3,4){60}} '/. Koordinaten \put(20,0H\vector(0,lHl20}} \put(20,125){y} \put(20,0H\vector(l,0){300}} \put(325,0){x} Yput(20,0){\dashbox(80,20)0} \put(90,-12){\makebox(20,12)[c]{\centerline{80}}} \put(10,14){\makebox(10,12)[c]{\centerline{20}}} '/.Yput (20,0) {\dashbox (140,100 ) { } } \put(150,-12){\makebox(20,12)[c]{\centerline{140}}} \put(6,94){\makebox(10,12)[c]{\centerline{100}}} \end{picture} \medskip
291
292 Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie Verden durch das environment nicht erzeugt. \addtocounter{aufg}{l} {\parindent=3cm \litem {{\bf Aufgabe \theaufg» Bitte setzen Sie mit Hilfe des 'environment picture' die nachfolgend abgebildete Windrose, \newline Folgende Hinweise f\ür die Ma\ss e Verden gegeben. Breite der Zeichnung 120 pt, L\änge 120 pt. Die Endpunkte der Pfeile haben die Koordinaten $1=(10,60)$ $2=(60,110)$ $3=(110,60)$ $4=(60,10)$. \par> \begin{center} \begin{picture}(200,120) \put(60,60){\vector(0,1){50» \put(60,60){\vector(1,0){50}} \put(60,60){\vector(0,-1){50» \put (60,60) {\vector (-1,0) { 5 0 » \put (0,55){\aakebox(10,10){W» \put(110,55){\makebox(10,10){0» \put (5 5,110 ) {\mak ebox (10,10) { ¥ » \put(55,0){\makebox(10,10){S» \end{picture> \end{center} \subsection{Kreise} F\iir das Element Kreis gelten folgende Regeln. \index{circle> \index{Kreis} {\parindent=3.2cm \litem {\bf Wirkung} Es soll an einer bestimmten Stelle des 'environment picture' ein Kreis mit vorgegebenem Durchmesser stehen. \litem {\bf Bezugspunkt} Der Mittelpunkt des Kreises ist der Bezugspunkt. \litem{\bf Einschränkungen} Der Durchmesser des Kreises darf maximal 40 pt betragen. \litem {\bf Hakro} Als Makro f\ür die Darstellung des Kreises wird \begin{center} \begin{verbatim} \circle{durchm} Kreis oder
Quelltext
Kapitel 7. Graphik \circle*{durchm} Kreisscheibe \end{verbat im} \end{center} versendet. Hierbei bedeuten \begin{center> \begin{tabularHll} durchm&Durchmesser \end{tabular} \end{center} \par} Schreibt man \begin{verbatim} \begin{picture}(300,100) \put (150,50) {\circle-C20» \end{picture} \end{verbat im} so erhNält man \medskip \begin{picture}(320,110) \put(170,50){\circle{20}} '/. Koordinaten \put(20,0){\vector(0, lHlOO}} \put(20,105){y} \put(20,0H\vector(l,0H300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150}}} \put(10,44){\makebox(10,12)[c]{\centerline{50}}} \end{picture} \bigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie «erden durch das environment nicht erzeugt. \medskip '/,erzwungener Absatz Wird anstelle von circle circle* verwendet, so wird der Kreis ausgef\üllt. Es entsteht dann \medskip \begin{picture}(320,110) \put (170,50) •C\circle*{20}} '/, Koordinaten \put(20,0){\vector(0,l){100}} \put(20,105){y} \put(20,0){\vector(1,0){300}}
293
294 \put(325,0){x} \db \put(160,-12H\makebox(20,12) Cc]{\centerline-Cl50>» \put (10,44) {\makebox(10,12) [c] {\centerline{50}}} \end{picture} Ybigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind lediglich zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. \subsection{Ovale} Unter Ovalen Verden in \TeX\ Figuren vestanden, die aus Rechtecken entstehen, nenn man die vertikalen Seiten des Rechtecks durch Halbkreise ersetzt. Es entstehen dann Figuren der folgenden Gestalt. \begin{center} \begin{picture>(90,40) \put(45,20){\oval(90,40)> \end{picture} \end-Ccent er} Der Symmetrie-Mittelpunkt der Figur wird als Mittelpunkt definiert. Die Breite des umschriebenen Rechtsecks hei\ss t Breite des Ovals, die L\änge des umschriebenen Rechtecks hei\ss t L\änge des Ovals. F\ür das element Oval gelten folgende Regeln. \index{oval} {\parindent=3.2cm \litem {\bf Wirkung} Es soll an einer bestimmten Stelle des 'environment picture' ein Oval mit vorgegebenem Durchmesser stehen. \litem {\bf Bezugspunkt} Der Mittelpunkt des Kreises ist der Bezugspunkt. \litem{\bf Einschränkungen} Der Durchmesser der begrenzenden Kreise darf maximal 40 pt betragen, deshalb darf die L\änge des Ovals ebenfalls maximal 40 pt gro\ss\ sein. \litem {\bf Makro} Als Makro f\ür die Darstellung des Ovals wird Ybegin-Ccenter} \beginiverbat im} \oval(breite,laenge) \end{verbatim} \end{center} verwendet. Hierbei bedeuten
Quelltext
K a p i t e l 7.
Graphik
\begin{center> \begin{tabular}{ll} breiteftBreite des umschriebenen RechtecksW laenge&L\änge des umschriebenen RechtecksW \end{tabular} \end{center} \par> Schreibt man \begin{verbatim> \begin{picture}(300,100) \put(150,50){\oval(60,20)> \end{picture} \end{verbatim} so erh\ält man \medskip \begin{picture}(320,110) \put(170,50){\oval(60,20)} '/, Koordinaten \put(20,0){\vector(0,l){100» \put(20,105){y> \put (20,0) {\vector (1,0) { 3 0 0 » \put(325,0){x> \db \put(160,-12){\makebox(20,12) [ c ] { \ c e n t e r l i n e { 1 5 0 } } > \put(10,44){\makebox(10,12) [ c ] { \ c e n t e r l i n e { 5 0 } } } \end{picture} \bigskip Das Achsenkreuz, die gestrichelten Linien und die Koordinaten sind l e d i g l i c h zur Orientierung angebracht, sie werden durch das environment nicht erzeugt. \medskip '/.erzwungener Absatz Eine Sonderform der Ovale g e s t a t t e t auch noch, Rechtecke mit abgerundeten Ecken zu konstruieren. Dies wird dadurch erreicht, da\ss\ noch ein z u s ä t z l i c h e r Parameter verwendet wird. Dann hat das Oval-Makro die folgende Gestalt. \begin{center> \begin{verbatim> \oval(breite,laenge)[ort] \end{verbatim} \end{center} Und f\ür den ort gibt es folgende Festlegungen \begin{center>
295
296
\[ \mbox{ort} = \ l e f t \ { \begin{tabular}{cl} 1 * l i n k e EckeW r t r e c h t e EckeW t t o b e r e EckeW bfcuntere Ecke' \end{tabular} \right.
\]
\end{center} Die m\öglichen Parameter sind I t , r t , l b , r b . A l s B e i s p i e l i Y i i r e i n e m \ ö g l i c h e Anwendung s e i e i n von v e r t i k a l e r R i c h t u n g i n h o r i z o n t a l e R i c h t u n g a b k n i c k e n d e r P f e i l d a r g e s t e l l t , b e i dem d i e Ecke abgerundet i s t . S c h r e i b t man \begin{verbatim} \begin{picture}(320,100) \put ( 1 2 0 , 8 0 ) { \ l i n e ( 0 , - 1 ) { 3 0 » \put(140,50){\oval(40,40)[lb]> Vput ( 1 4 0 , 3 0 ) { \ v e c t o r ( 1 , 0 ) { 4 0 » \end{picture} \end{v e r b a t im} s o e r h \ ä l t man \begin{center} \begin{picture}(320,100) \put(20,0){\vector(0,1){100}} \put(20,105){y} \put(20,0){\vector(l,0){300}} \put(325,0){x} \db \put(160,-12){\makebox(20,12)[c]{\centerline{150}}} \put(10,44){\makebox(10,12)[c]{\centerline{50}}} \put(120,80){\line(0,-l){30» \put(140,50){\oval(40,40)[lb]} \put(140,30){\vector(1,0){40}} \end{picture} \end{center} Das A c h s e n k r e u z , d i e g e s t r i c h e l t e n L i n i e n und d i e Koordinaten sind l e d i g l i c h zur Orientierung angebracht, s i e werden d u r c h d a s e n v i r o n m e n t n i c h t e r z e u g t . \newbox\bildbox \newbox\textbox
Quelltext
Kapitel 7. Graphik \newdimen\la \la=\linewidth \advance\la by -115pt \section{Kurven> \subsection{Geometrische Lösung} In den Anwendungen kann es vorkommen, da\ss\ au\ss er den graphischen G r u n d V e l e m e n t e n (Gerade, Rechteck, Kreis, Pfeil, Oval) noch komplexere Abbildungen dargestellt werden sollen. Auch hierf\ür ist {\bf integriert in \TeX > ein Werkzeug vorhanden. \begin{grauboxH8}{0 • 8\textwidth> Beliebige Kurven k\önnen in \TeX\ mit Hilfe von BEZIER-\-Po\-ly\-no\-men (kubische Parabeln) approximiert daxgestellt «erden. \end{graubox} \medskip Das Verfahren wird im folgenden im einzelnen erl\äutert. Es handelt sich hierbei um ein Verfahren, welches dem Verfahren nachgebildet ist, welches mein verwendet, wenn Kurven mit einem Kurvenlineal von Hand gezeichnet werden sollen: \begin{enumerate} \item Man zerlegt die Kurve in mehrere Teile, \item Man zeichnet mit dem Kurvenlineal ein Kurvenst\ück. Dabei sucht man eine geeignetes St\ück des Kurvenlineals aus, welches in diesem Bereich den meist durch einzelne Punkte bekannten Kurvenverlauf approximiert, \item Beim NÜbergang auf das n\ächste Kurvenst\ück achtet man darauf, da\ss\ die Kurven an der Ansatzstelle keinen Knick erhalten. (Die Tangente im Endpunkt eines TeilstVücks sollte gleich der Tangente im Anfangspunkt des Folgest\ücks sein. \end{enumerate} Bei der Approximation mit BEZIER-Polynomen geht man \ähnlich vor. \begin{enumerate} \item Man zerlegt die Kurve in mehrere Teile. Dabei soll die Kurve sich in dem TeilstYiick durch eine kubische Parabel approximieren lassen. \item Die Kurve geht durch die Punkte $P_a$ und $P_e$ (Dies sind Anfangspunkt und Endpunkt des Teilst\ücks.) \item Die Tangente im Anfangspunkt soll $P_a$ — $P_t$ sein, die Tangente im Endpunkt $P_t$ — $P_e$. Dies
297
298
Quelltext
entspricht dem Anlegen des richtigen Teils des Kurvenlineals. \end{enumerate} Der Sachverhalt ist in der folgenden Abbildung noch einmal erl\äutert. \begin{figure}[ht] Ybegin-Ccenter} \begin{picture}(150,150) \bezier{400}(20,0)(120,100)(120,0) \put(20,0){\line(l,l){100}} \put (120,0){\line (0,1 H l O O » \put(20,0){\circle*{5}} \put(120,0){\circle*{5}} \put(120,100){\circle*{5» \put(30,0){$P_a$> \put(130,0){$P_e$} \put(130,100){$P_t$} \end{picture} \end{center} \caption{\label{bezier}Approximation durch BEZIER-Polynome} \end{figure} Die Kurve hat als Anfangspunkt $P_a$ und als Endpunkt $P_t$. Die Anfsingstangente ist die 45$~{\circ}$—Linie. Die Tangente im Endpunkt ist eine Senkrechte. Die beiden Geraden schneiden sich in $P_t$. Sei \[ P_a = (0,0) \mbox{ und } P_e = (100,0) \] so ist die Tangente im Anfangspunkt \[ y = x
\]
und die Tangente im Endpunkt
\[
x = 100 \] Der Schnittpunkt der beiden Tangenten ist also \[ P_t = (100,100) \] \subsection{Lösung in \TeX } Die Lösung in \TeX\ ist au\ss erordentlich einfach. Soweit das m\öglich ist, wurden die Operationen durch einfach anzuwendende Makros unterstYützt.
K a p i t e l 7.
Graphik
\begin{enumerate} \item Es mu\ss\ dafür gesorgt Verden, da\ss\ die Option ' b e z i e r . s t y ' versendet wird. Dies geschieht im documentstyle durch {\tt\centerline{$\backslash$documentstyle[bezier]\{ \}}} Hierbei i s t iür ' ' die j e w e i l i g e S t i l a r t einzusetzen. ( b e z i e r . s t y lä\ss t sich in jeder S t i l a r t verwenden.) Diese Technik i s t im \LaTeX\ standardm\ä\ss ig vorgesehen. \item Es mu\ss\ ein 'picture environment' verwendet werden. \item Die Funktion lautet: {\tt\centerline{$\backslash$bezier\{anzahl\} $(x_a,y_a)(x_t,y_t)(x_e,y_e)$}} Hierbei g i l t : Ybegin-Ccenter} \begin{tabular}{lcl} anzahl&=4Anzahl der PunkteW $(x_i,y_i)$*=*Koordinaten des Punktes $P_i$, $i = a,t,e$\\ \end{tabular} \end{center} Die Kurven werden durch eine Aneinanderreihung von Punkten erzeugt. 'anzahl' gibt die Anzahl der verwendeten Punkte f ü r das j e w e i l i g e Teilstück ein. Man s o l l t e eine Anzahl von ca. 100 Punkte per inch verwenden. \end{enumerate} \subsection{Anwendungsbeispiel} In diesem Abschnitt s o l l nun als Anwendungsbeispiel die folgende Abbildung erzeugt werden. Die Figur wurde ausgewählt, um zu zeigen, wie das Verfahren a r b e i t e t , wenn etwas komplexere Kurven darzustellen sind. \begin{figure}Cht] \begin{center} \bild{btex7lH8Ml00ptHl00pt} \end{center} \caption{\label{herz}Darzusteilende Abbildung} \end{figure} Die Grauunterlegung wurde l e d i g l i c h gewählt, um die Grö\ss e der Abbildung und ihre Einmischung in das gesamte Dokument zu demonstrieren. Die Gesamtgrö\ss e beträgt lOOpt $\times$ lOOpt. \medskip {\bf 1. S c h r i t t } \setbox\bildbox=\vbox{\hsize=100pt*/, Ybild{btex75}{8}{100pt}{lOOpt}} \setbox\textbox=\vbox{\hsize=\la
299
300
Quelltext
Im ersten Schritt findet die Aufteilung der Gesamtkurve in Teilstücke statt. Die so eingezeichneten \linebreak[4] Punkte markieren die Teilstücke. 3 Teilstücke «erden betrachtet. Wir befassen uns wegen der Symmetrie der Kurve zunächst nur mit dem linken Teil der Kurve. Die Anfangs- bzw. Endpunkte der Teilstücke haben folgende Koordinaten (alle Angaben in pt) \( (x_l,y_l)=(50,0)\) \( (x_2,y_2)=(0,75)\) \( (x_3,y_3)=(25,100)\) \( (x_4,y_4)=(50,75)\)> \hbox to \textwidth{\vtop{\hrule height Opt \vskip 8.5pt \box\bildbox>y. \hfil\vtop{\hrule height Opt \box\textbox}} \bigskip {Ybf 2. Schritt} \medskip In diesem Schritt werden hintereinander die Teilstücke bearbeitet. \setbox\bildbox=\vbox{\hsize=100pt'/. \bild{btex72>{8>{100pt>{100pt» \s etbox\t extbox=\vbox{\hsize=\la Im zweiten Schritt werden die Teilstücke bearbeitet. Wir bearbeiten das 1. Teilstück. Die Punkte haben nun die folgenden Koordinaten \( (x_a,y_a)=(50,0)\) \( (x_t,y_t)=(0,50)\) \( (x_e,y_e)=(0,75)\) > \hbox to \textwidth{\vtop{\hrule height Opt'/, \vskip 8.5pt \box\bildbox>7. \hfil\vtop{\hrule height Opt \box\textbox}} \medskip \setbox\bildbox=\vbox{\hsize=100pt'/, \bild{btex73>{8>{100pt>il00pt» \setbox\textbox=\vbox{\hsize=\la Im zweiten Schritt werden die Teilstücke bearbeitet. Wir bearbeiten das 2. Teilstück. Die Punkte haben nun die folgenden Koordinaten
Kapitel 7. \( \( \( >
Graphik
(x_a,y_a)=(0,75)\) (x_t,y_t)=(0,100)\) (x_e,y_e)=(25,100)\)
\hbox to \textwidth{\vtop{\hrule height Opt \vskip 8.5pt \box\bildbox>'/. \hfil\vtop{\hrule height Opt \box\textbox}} \medskip \setbox\bildbox=\vbox{\hsize=100pt'/. \bild{btex74H8Hl00ptMl00pt}} \setbox\textbox=\vbox{\hsize=\la Im zweiten Schritt Verden die Teilstücke bearbeitet. Wir bearbeiten das 3. Teilstück. Die Punkte haben nun die folgenden Koordinaten \( (x_a,y_a)=(25,100)\) \( (x_t,y_t)=(45,100)\) \( (x_e,y_e)=(50,75)\) > \hbox to \textwidth{\vtop{\hrule height Opt \vskip 8.5pt \box\bildbox>'/. \hfil\vtop{\hrule height Opt \box\textbox}} \medskip Die geometrischen Überlegungen sind damit abgeschlossen. Alle Koordinaten für Punkte sind bestimmt. \medskip {Ybf 3.Schritt} \medskip {\em Schreibt man also:} \begin{verbatim} \begin{center} \begin{picture}(100,100) \bezier{400}(50,0)(0,50)(0,75) \bezier{100}(0,75)(0,100)(25,100) Nbezieri100}(25,100)(45,100)(50,75) \endipicture} \end{center} \end{verbatim} {\em so erh\ält man:} \medskip \begin{center}
301
302
Quell text
\begin{picture}(100,100) \bezier{400}(50,0)(0,50)(0,75) \bezier{100}(0,75)(0,100)(25,100) \bezier{100}(25,100)(45,100)(50,75) \end{picture} \end{center} \medskip Damit ist die eine Hälfte der Darstellung z u Ende. Will m a n die Darstellung für die andere Hälfte durchführen, braucht man die gesamte Rechnung nicht z u Biederholen. D a $x = 50$ die Symmetrielinie ist, werden alle Punkte folgenderma\ss en transformiert. \[ \begin{arrayMlcl} y_i&=&y_i \\ x_i&=&50 - x_i\\ \end{array}
\] \addtocounter{aufg}{l} \varpar=3cm \begin{varlist} \item[Aufgäbe \theaufg] Bitte führen Sie die Transformationen durch und zeichnen Sie nun die Darstellung Abbildung \ref{herz}. \end{varlist> \section{Zusanfflienf assung} Die in LA\TeX\ enthaltenen graphischen Elemente reichen völlig aus, um die in üblichen Dokumentationen anfallenden Graphiken darstellen z u können. Wir werden im nächsten Kapitel sehen, da\ss\ die Schreibweise noch ganz erheblich vereinfacht werden kann, wenn in einem eingeschränkten Bereich graphische Daxstellungen gewünscht werden. In diesem Falle kann man durch Schaffen von Makros sehr schlagkräftige Werkzeuge jeweils problemangepa\ss t erzeugen. Selbstverständlich reichen diese Hilfsmittel nicht aus, wenn m a n in einem Bereich der Technik eine Dokumentation erstellen mu\ss , die im wesentlichen aus technischen Zeichnungen u n d graphischen Darstellungen besteht. Dies gilt auch, wenn in mathematischen Abhandlungen Funktionsdaxstellungen gewünscht sind. Für beide Anwendungsfälle empfiehlt sich dann das folgende Vorgehen. Man verwende ein getrenntes Softwarepaket zum Erzeugen der Zeichnungen mit hohen Anforderungen an die
Kapitel 7. Graphik Graphikfähigkeit. Die einzige Bedingung für die Auswahl eines solchen Softvarepaketes besteht dann darin, d a \ s s \ als Ergebnis \newdimen\lb \settowidth{\lb}{ein dvi-file} \advance\lb by 20pt \begin{graubox>{\lb> \hfil ein dvi-file\hfil \end{graubox} \medskip erzeugt wird. Wir werden im Kapitel 'Schnittstellen von \TeX\ zu anderen Systemen' sehen, da\ss\ hier sehr einfache Möglichkeiten bestehen, diese Ergebnisse in \TeX\ zu verarbeiten.
303
Kapitel 8. Spezielle Graphik für EDV-Anwendungen
Kapitel 8 Spezielle Graphik für EDV-Anwendungen
\input{pap} •/. */.
'/.
Kapitel 8 Spezielle Graphik f\ür EDV
\chapter{Spezielle Graphik i\ür EDV-Anwendungen*} \section{Ziel und versendete Methodik} In der EDV werden spezielle Symbole verwendet, um Programmablaufpl\äne zu erstellen. F\ür dieses Aufgabengebiet wurden von Informatika spezielle Makros\fussnote{Hakropaket pap.tex von Informatika} entwickelt, die die Erstellung von solchen Programmablaufpl\änen sehr erleichtern. \begin{figure} [ht] {\unitlength=6.75pt \scriptsize \bpap{3}{6} \i=0 \loop \put(\number\i,0){\line(0,1){48}} \advance \i by 12 \ifnum\i < 37 \repeat \i=0 \loop \put(0,\number\i){\line(1,0){36}} \advance \i by 8 \ifnum\i < 49 \repeat \papsequ{5}{0}{Sequenz\\bis zu 2 Zeilen} \papwsequ{4}{0}{Sequenz\\bis zu 2 Zeilen} \papabfr{3}{0}{j}{n}{Abfrage}
305
306 \papliunt{2}{0}{ j HnMAbf rage} \papea{ 1 HOHEingabe} \papOea{OHO}{Ein/Aus} \papein{5Hl>{l> \papaus{4Kl>{9> \papanf{3HlHAnfang> \paphor{2}{l} \papvhor{lMl} \paphver{0}{l} \papend{5H2}{Ende} \paptend{4M2}{4} \paptanf{3>{2>{3> \papver{2}{2} \papchor{l}{2} \paphlver{0}{2} \ p u t ( 7 . 5 , 0 . 5 ) -CpapO e a> \put(7.5,8.5){papea} \put(7.5,16.5){papliunt} \put(7.5,24.5){papabfr> \put(7.5,32.5){papwsequ} \ p u t ( 7 . 5 , 4 0 . 5 ) i p a p s equ> \put(19.5,0.5){paphver} \put(19.5,8.5){papvhor} \put(19.5,16.5){paphor} \put(19.5,24.5){papani} \put(19.5,32.5){papaus} \put(19.5,40.5){papein} \ p u t ( 3 1 . 5 , 0 . 5 ) -Cpaphlver} \ p u t ( 3 1 . 5 , 8 . 5 ) -Cpapchor } \ p u t ( 3 1 . 5 , 1 6 . 5 ) -Cpapver} \put(31.5,24.5){paptanf} \put(31.5,32.5){paptend} \ p u t ( 3 1 . 5 , 4 0 . 5 ) {papend} \epap \ c a p t i o n { " T o o l - K a s t e n " f \ ü r PAP} } \end{figure} Die v e r w e n d e t e Methodik z e i g t a u c h , d a \ s s \ es immer m \ ö g l i c h i s t , \TeX\ auf e i n e ganz s p e z i e l l e Anwendung v o r z u b e r e i t e n . Hierzu i s t es n u r n o t w e n d i g , e i n e e n t s p r e c h e n d bequeme S c h r e i b w e i s e f \ ü r den Q u e l l t e x t f e s t z u l e g e n und d i e n \ ö t i g e n Makros zu e n t w i c k e l n , \ n e w l i n e Es s o l l h i e r m i t auch an einem B e i s p i e l g e z e i g t werden,
Quelltext
Kapitel 8. Spezielle Graphik für EDV-Anwendungen da\ss\ \TeX\ umso mehr flexibel einsatzf\ähig wird, je gr\ö\ss er die Anzahl der entwickelten Makros ist. \section{Tool-Box} F\ür die L\ösung des beschriebenen Problems wurden die folgenden einzelnen Rechtecke durch Makros erzeugt. Die Hamen der Makros stehen jeweils in den einzelnen Bildchen aufgef\ührt. (Dies ist auch gleichzeitig die Referenz zu dem weiteren Text, der die Anwendung noch weiter erl\äutern soll.) Das Prinzip der Erstellung von Programmablaufpl\änen ist nun sehr einfach. Der zu erstellende Programmablaufplan ist in Zeilen und Spalten aufzuteilen. Hierdurch entstehen Rechtecke. Diese Rechtecke sind (von unten nach oben) durch Zeilen-Hummern (von 0 beginnend) und (von links nach rechts) durch Spaltennummern (von 0 beginnend) identifiziert. Der Anwender legt folgende Daten fest. \begin{enumerate> \item Zeicheneinheit (unitlength) \item Anzahl der Spalten des Programmablaufplans \item Anzahl der Zeilen des Programmablaufplans \item F\ür jedes Unter-Rechteck (Bildchen) \subitem Keane des Symbols (des Makros) \subitem Text, der eingesetzt werden soll \subitem Zusatzangaben (z.B. bei papabfr) \end{enumerate} \section{Erzeugung von Programm-Ablaufpl\änen} \begin{figure}[ht] \begin{center> \unitlength=6.75pt \bpap{3}{5> \i=0 \loop \put (\number\i, 0) {\line (0,1) { 4 0 » \advance \i by 12 \ifnum\i < 37 \repeat \i=0 \loop \put (0, \number\i){\line(1,0) { 3 6 » \advance \i by 8 \ifnum\i < 41 \repeat
307
Quell text
308
\j=4 \iz=0 \loop \put(5,\number\j){0,\number\iz} \advance \j by 8 \advance \ i z by 1 \ifnum\iz < 5 \repeat \j=4
\iz=0 \loop \put (17, \number\j) { 1 , \number\iz} \advance \j by 8 \advance \ i z by 1 \ifnum\iz < 5 \repeat \j=4
\iz=0 \loop \put(29,\number\j){2,\number\iz} \advance \j by 8 \advance \iz by 1 \ifnum\iz < 5 \repeat \epap \end{center> \caption-C\label{gnmdmuster}Gmiidiniister eines PAP} \end{figure} In diesem Abschnitt «erden die einzelnen Schritte, die zur Erzeugung eines Programmablaufplans notwendig sind, genauer erl\äutert. Im einzelnen sind das: \beginienumerate)\item Festlegung der unitlength \item Erzeugung der Grundstruktur ( w i e v i e l Zeilen, Spalten?) \item Erzeugung des Makros bpap \item Eintragung der einzelnen Makros in die Grundstruktur \end{enumerate}\subsection{Festlegung von unitlength} Aus der Anzahl der Spalten und Zeilen i s t die L\äingeneinheit unitlength zu bestimmen. Die L\ängeneinheit i s t dabei so zu w\ählen, da\ss \[ \mbox{Anzahl Spalten}\times unitlength \leq
28pt
Kapitel 8. Spezielle Graphik für EDV-Anwendungen
\] ausfallen mu\ss , um die Textbreite nicht zu Yiiberschreiten. Sind 3 Spalten vorgesehen, dann folgt hieraus, da\ss \[ 3 \times unitlength \leq 28 pt
\] Setzt man \verb+unitlength=6.7Spt+, so ist diese Forderung erf\üllt. \subsection{Erzeugung Grundstruktur} ZunNächst werden aus dem Konzept die Anzahl Zeilen und die Anzahl Spalten f\ür den Progranunablaufplan festgelegt. F\ür einen Progranunablaufplan mit 5 Zeilen und 3 Spalten erh\ält man das Grundmuster \ref{grundmuster} auf Seite \pageref{grundmuster}. Die Beschriftungen der K\ästchen sind jeweils Zeilen-Hummer, Spalten-Nummer. \subsection{'environment bpap' und 'environment epap'} \index-fbpap} \index{epap} Die Graphik eines Programmablaufplans wird durch das Makro \verb+\bpap+ eingeleitet. Das Makro hat zwei Parameter. Der erste Parameter ist die Anzahl der Spalten, der zweite die Anzahl der Zeilen. Hierbei ist zu beachten, da\ss\ stets \[ \mbox{Anzahl Spalten}\times unitlength \leq 28 pt \] ausfallen mu\ss , um die Textbreite nicht zu \iiberschreiten. Das environment wird durch \verb+\epap+ abgeschlossen. Hieraus ergibt sich folgender Grundaufbau. \b eg in{v erbatim} \bpap{Anzahl SpaltenHAnzahl Zeilen}
\epap \end{verbatim} \subsection{Makros f\ür die Elemente} Die Erzeugung des Programmablaufplans geschieht nun elementweise. Jedes Element erh\ält als Hauptparameter die Zuweisung der Zeilen und Spalten gem\ä\ss\ der Festlegung im Grundmuster
309
Quelltext
310 \ref{grundmuster} Seite \pageref{grundmuster}. \Über die Art des Elements entscheidet der Element-Harne, der auch der Makro-Name ist. \subsubsection{Sequenz papsequ} \index{papsequ} \[ \begin{array}{ll} \mbox{Name des Elements}ft\mbox{papsequ}\\ \mbox{Anzahl Parameter}&3\\ \mbox{Format}fc\verb+\papsequ{Zeile}{Spalte}{text}+\\ * \\
{
\unitlength=6.75pt \begin{picture>(12,8) \put(0,0){\makebox(12,8) [tl]{Element}} \end{picture} }& {\unitlength=6.75pt \begin{picture}(12,8) \scriptsize \papsequ{0}{0}{text} \end{picture} } \end{array} \] Der Text kann zweizeilig geschrieben werden. In diesem Falle sind die beiden Zeilen durch \verb+\\+ zu trennen. Die Zeilen werden dann einzeln links-rechts-zentriert. Eingang und Ausgang sind oben bzw. unten, (vgl. auch papwsequ). \subsubsection{Sequenz papwsequ} \index{papwsequ} \[ Ybegin{array}{ll} \mbox{Name des Elements}ft\mbox{papwsequ}\\ \mbox{Anzahl Parameter}&3\\ \mbox{Format}fc\verb+\papwsequ{Zeile}{Spalte}{text}+\\
{
&
\\
\unitlength=6.75pt \begin{picture}(12,8) \put (0,0) {\makebox(12,8) [tl] {Element}} \end{picture} }&
Kapitel 8. Spezielle Graphik für EDV-Anwendungen
{\unitlength=6.75pt \begin{picture}(12,8) \scriptsize \papwsequ{0}{0Htext} \end{picture} > \end{array>
\] Der Text kann z w e i z e i l i g geschrieben «erden. In diesem F a l l e sind die beiden Zeilen durch \verb+\\+ zu trennen. Die Zeilen werden dann einzeln l i n k s - r e c h t s - z e n t r i e r t . Eingang und Ausgang sind links bzw. rechts ( ' w ' = waagerecht), ( v g l . auch papsequ). Die Länge der Ein- bzw. Ausgänge sind so g e s t a l t e t , da\ss\ auch mehrere Rechtecke papwsequ von links nach rechts aneinandergekettet werden können. \subsubsectioniEingabe papea} \index{papea} \[ YbeginiarrayHll} \mbox{Name des Elements)-&\mbox{papea}\\ \mbox{Anzahl Parameter}fc3\\ \mbox{Format}ft\verb+\papea{Zeile>{Spalte>{text>+\\ & \\ •C
\unitlength=6.75pt \begin{picture>(12,8) \put(0,0){\makebox(12,8)[tl]{Element» \end{picture} {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \papea{0H0}{text} \end-Cpicture} > \end{aürray} \] Der rechte Ausgang wird f\ür Ende-Bedingungen benutzt. \subsubsection{Eingabe/Ausgabe papOea} \index{papOea} \C
\begin{airray>-(ll> \mbox{Name des Elements}ft\mbox{papOea}\\
311
312
Quellt ext
\mbox{Anzahl Parameter}ft3\\ \inbox{Format>*\verb+\papOea{Zeile}{Spalte}{text}+\\
{
ft
\\
\unitlength=6.75pt \begin{picture>(12,8) \put (0,0){\makebox(12,8) [tl] { E l e m e n t » \end{picture> }A {\unitlength=6.75pt \begin{picture}(12,8) \scriptsize \pap0ea{0}{0}{text} \end{picture> > \end{array} \] Es ist k e i n Ausgang f\ür Ende-Bedingung vorgesehen. Hierf\ür soll papea versendet «erden. \subsubsection{Abfrage papabfr} \ind ex{papabf r}
\[ \begin{array}{ll> \mbox{Name des Elements}i\mbox{papabir}\\ \mbox{Anzahl Parameter}A5\\ \mbox{Format3'Jt\verb +\papabfr{Zeile}{Spalte}{unt.>{re.}{text>+\\ ft \\
{
\unitlength=6.75pt \begin{picture>(12,8) \put (0,0){\makebox(12,8) [tl] { E l e m e n t » \end{picture> }& {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \papabfr{0>{0>{unt.>{re.>{text> \end{picture> > \end{array} \] In den Parametern rechts bzw. unten werden die Texte (z.B. j, J, H, n) angegeben, die an dem rechten bzw. unteren
K a p i t e l 8. Spezielle Graphik für E D V - A n w e n d u n g e n
Ausgang angebracht werden. Die Ausg\änge sind rechts und unten. ( v g l . auch papliunt) \subsubsection{Abfrage papliunt} \index{papliunt> \[ \begin{array}{ll> \mbox{Name des Elements}ft\mbox{papliunt}\\ \mbox{Anzahl Parameter}fc5\\ \mbox{Format>k\verb +\papliunt{Zeile}{Spalte}{unt.}{li.}{text}+\\ k \\
{ \unitlength=6.75pt \begin{picture> (12,8) \put (0,0){\makebox(12,8) [ t l ] { E l e m e n t » \end{picture} >& {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \papliunt{0}{0}{unt • H l i • H t e x t } \end{picture} > \end{array} \] In den Parametern links bzw. unten werden die Texte (z.B. j , J, H, n) angegeben, die an dem linken bzw. unteren Ausgang angebracht werden. Die Ausg\änge sind links und unten, ( v g l . auch papabfr) \subsubsection{Programm-Anfang papanf} \index{papanf> \[ \begin{array}{ll> \mbox{Hame des Elements}k3\\ \mbox{Format}fc\verb+\papanf{Zeile}{Spalte}{text}+\\ fc \\
{ \unitlength=6.75pt \begin{picture}(12,8) \put(0,0){\makebox(12,8) [ t l ] { E l e m e n t » \end{picture} {\unitlength=6.75pt
313
314 \begin{picture>(12,8) \scriptsize \papanf{0>{0>{text> \end{pictuxe} > \end{array> \] Dieses Symbol s o l l t e l e d i g l i c h am Programmanfang oder am Anfang einer Unterprogramms verwendet werden. \subsubsection{Programm-Ende papend} \index{papend> \[ \begin{arrayHll} \mbox{Name des Elements}4\mbox{papend}\\ \mbox{Anzahl Parameter}*3\\ \mbox{Format}fc\verb+\papend{Zeile}{Spalte}{text}+\\ * \\
i \unitlength=6.75pt \begin{picture>(12,8) \put (0,0){\makebox(12,8) [ t l ] { E l e m e n t » \end{picture} }& {\unitlength=6.75pt \begin{picture}(12,8) \scriptsize \papend{0>{0>{text> \end{picture}> \end{array>
\] Dieses Symbol s o l l t e nur am Ende eines Programms oder am Ende eines Unterprogramms (dann mit der Eintragung RETURX) verwendet werden. \subsubsection{Programmteil-Anfang paptanf} \index{paptanf> \[ \begin{array>{ll> \mbox{Name des Elements}k\mbox{paptanf}\\ \mbox{Anzahl Parameter>k3\\ \mbox{Format}Jt\verb+\paptanf{Zeile}{SpalteMnr}+\\ ft \\ C
\unitlength=6.75pt
Quell text
K a p i t e l 8. Spezielle Graphik für E D V - A n w e n d u n g e n
\begin{picture}(12,8) \put (0,0) {\makebox(12,8) [tl] {Element» \end{picture> }ft {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \paptanf{0}{0}{nr> \end{picture)> \end{array> \] Dieses Symbol bezeichnet eine Eingangsschnittstelle für einen Teilprogramm-Eingang nach unten. \subsübsection{Programmteil-Ende paptend} \index{paptend> \C \begin{array}{ll} \mbox{Name des Elements}ft\mbox{paptend}\\ \mbox{Anzahl Parameter>ft3\\ \mbox{Format}ft\verb+\paptend{Zeile}{Spalte}{nr}+\\ ft \\
{
\unitlength=6.75pt \begin{picture}(12,8) \put(0,0){\makebox(12,8) [tl]{Element» \end{picture> {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \paptend{0>{0>{nr> \end{picture} > \end{array> \] Dieses Symbol bezeichnet eine Eingangsschnittstelle für einen Teilprogranun-Ausgang von oben. \subsubsection{Konnektor Eingang papein} \index{papein} \[ \begin{array>{ll> \mbox{Hame des Elements}ft\mbox{papein)-\\ \mbox{Anzahl Parajneter>*3\\
315
316
Quell text
\mbox{Format}t\verb+\papein{Zeile>{Spalte>{nr>+\\ *
\\
{ \unitlength=6.75pt \begin{picture>(12,8) \put (0,0){\makebox(12,8) [ t l ] { E l e m e n t » \end{picture} {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \papein{0}{0Hnr> \end{picture> > \end{array} \] Es handelt sich um einen Teilprogramm-Eingang von l i n k s . Die I d e n t i f i k a t i o n des Symbols, vor dem der Einsprung erfolgen s o l l , s e i Zeile z und Spalte s. Der Konnektor papein e r h \ ä l t dann ebenfalls a l s Zeile z und a l s Spalte s . \subsubsection{Konnektor Ausgang papaus} \index-Cpapaus}\[ \begin{arrayHll> \mbox{Name des Elements}fc\mbox{papaus}\\ \mbox{Anzahl Parameter>k3\\ \mbox{Fonaat}k\verb+\papaus{ZeileHSpalte}{nr}+\\ *
\\
{ \unitlength=6.75pt \begin{picture}(12,8) \put (0,0){\makebox(12,8) [ t l ] { E l e m e n t » \end{picture} {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \papaus{0H0>{nr> \end{picture} > \end{array} \] Es handelt sich um einen Teilprogramm-Ausgang nach r e c h t s .
Kapitel 8. Spezielle Graphik für EDV-Anwendungen Die Identifikation des Symbols, vor dem der Einsprung erfolgen soll, sei Zeile z und Spalte s. Der Konnektor papein erh\ält dann ebenfalls als Zeile z und als Spalte s. \subsubsection{horizontale Verbindung paphor} \index{paphor} \[
\begin{arrayHll} \mbox{Name des Elements} >Ä
{\unitlength=6.75pt \begin{picture>(12,4) \scriptsize \paphor{0}{0} \end{picture} > \end{array} \] \subsubsection{vertikale Verbindung papver} \index{papver} \[ \begin{array}{ll> \mbox{Hame des Elements}Jt\mbox{papver}\\ \mbox{Anzahl Parameter>k2\\ \mbox{Format}fc\verb+\papver{Zeile}{Spalte>+\\ ft \\
{
\unitlength=6.75pt \begin{picture}(12,8) \put (0,0){\makebox(12,8) [tl] {Element» \end{picture} >ft {\unitlength=6.75pt \begin{picture>(12,8) \scriptsize \papver{0>{0>
317
318
Quelltext
\end{picture} > \end{array} \] \subsubsection{h.orizontal-vertikale Ecke \index{paphver}
paphver}
\[ \beginiarrayMll} \mbox{Name des Elements}4\mbox{paphver}\\ \mbox{Anzahl Parameter}42\\ \mbox{Format}4\verb+\paphver{Zeile}{Spalte}+\\ 4 \\
{ \unitlength=6.75pt \begin{picture}(12,4) \put (0,0){\makebox(12,4) [tl] { E l e m e n t » \end{picture> >4 {\unitlength=6.75pt \begin{picture}(12,4) \scriptsize \paphver{0}{0} \end{picture> > \end{array} \] \subsubsection{horizontal(links)-vertikale Ecke paphlver} \index{paphlver}-
\[ \begin{array}{ll} \mbox{Name des Elements}4\mbox{paphlver}\\ \mbox{Anzahl Parameter}42\\ \mbox{Format}4\verb+\paphlver{Zeile}{Spalte}+\\ 4 \\
{ \unitlength=6.75pt \begin{picture>(12,4) \put (0,0){\makebox(12,4) [tl] { E l e m e n t » \end{picture> >4 {\unitlength=6.75pt \begin{picture}(12,4) \scriptsize
Kapitel 8. Spezielle Graphik für EDV-Anwendungen \paphlver{0}{0} \end{picture> > \end{array} \] \subsubsection{vertikal-horizontale Ecke - papvhor} \index{papvhor> \C \begin{array}{ll> \mbox{Hame des Elements>ft\mboxipapvhor}\\ \mbox{Anzahl Parameter }-ft2\\ \mbox{Format}ft\verb+\papvhor{Zeile}{Spalte}+\\ ft \\
{ \unitlength=6.75pt \begin{picture>(12,8) \put (0, 0){\makebox(12,8) [tl] { E l e m e n t » \end{picture> >4 {\unitlength=6.75pt \begin{picture}(12,8) \scriptsize \papvhor{0}{0} \end{picture} > \end{array} \] \subsubsection{horizontale Verbindung \index{papchor> \[
papchor}
\begin{array}{ll> \mbox{Name des Elements}t\mbox{papchor)A\ \mbox{Anzalil Parameter}*2\\ \mbox{Format}fc\verb+\papchor{Zeile}{Spalte}+\\ ft \\
{ \unitlength=6.75pt \begin{picture}(12,4) \put (0,0){\makebox( 12,4) [tl] { E l e m e n t » \end{picture} }* {\unitlength=6.75pt \begin{picture>(12,4) \scriptsize
319
320
Quell text
\papchor{0}{0} \end{picture} > \end{array}
\] \begin{grauboxH8}{0.8\textwidth> Die hier aufgeführten Makros wurden von der Informatika GmbH Hamburg entwickelt. Sie werden in einem von infmakro.tex getrennten Makropaket pap.tex zusammengestellt. Dieses Makropaket kann in der Präambel durch \begin{centerb}{0.8in> Vv erb+\input{pap}+ \end{centerb} aufgerufen werden. Die Trennung der beiden Makropakete erfolgte, um infmakro.tex ohne pap.tex laden zu können. Dieses Hakropaket ist ein Beispiel für die Methodik von \TeX . Für sehr viele Strukturen sind bequeme Schreibhilfen (Makros) im Standard-\TeX\ vorhanden. Diese werden noch durch Makros aus LA\TeX\ ergänzt. Wenn aber in einem Arbeitsgebiet so wie hier bei der Erstellung von Progranunablaufplanen spezielle Strukturen vorkommen, dann müssen auch entsprechende Werkzeuge (Makros) konstruiert werden. Dies ist allerdings eine Anforderung an optimale Arbeitsplanung. \end{graubox> \section{Anwendungsbeispiel} Dieses Anwendungsbeispiel stellt einen Programmablaufplan f\ür einen einfachen Gruppenwechsel mit dieser Methodik dar. Der Programmablaufplan liege als Skizze vor. Er soll mit \TeX\ gesetzt werden. Aus der Skizze ist zu entnehmen, da\ss\ die Grundstruktur \centerline{3 Spalten und 9 Zeilen} haben wird. Als Ma\ss einheit wird \ c enterl ine-tun itl engt h = 6.25pt} gewählt. Damit ist die in 8.3.1 angegebene Forderung mit \centerline{3 $\times$ unitlength = 18.75 pt $\leq$ 28pt> erfüllt. Nun werden die Symbole den einzelnen Rechtecken des Grundmusters zugewiesen. Dies ist sehr einfach, wenn man vorher auf der Skizze die einzelnen Zeilen von unten beginnend von 0 bis 8 numeriert und von links beginnend die
Kapitel 8. Spezielle G r a p h i k für E D V - A n w e n d u n g e n Spalten von 0 b i s 2 . Damit e n t s t e h t dann das folgende Dokument. \beginiverbatim} \begin{figure}[ht] \scriptsize \bpap{3>{9> \papanf{8}{0HProgramm-Start} \pap0ea{7}{0HEr\öffnen} \papsequ{6}{0}{Schalter ein} \papea{5}{0}{Einlesen Satz} \papein{5H0K4} \papabfri4H0HnHjMSchalter ein} \papabf r { 3 H 0 } { n } { j M Gruppen».} \papein{2H0H3} \papsequ{2}{0}-CEinzelverarb.} \ p apt e n d { 1 } { 0 } { 4 } \paptanf{8}{1}{1} \pap0ea{7}{l}{Abschlu\ss } \papend{6}il}iProgramm-Ende} \papaus{5}{l}{l} \paphor{4}{l} \paphver{3}{l} \papsequ{2}{l}{Gruppen-Verarb.} \papsequ{l}{l}{Vorb.n.Gruppe} \paptend{0HlM3} \paphver{4}{2} \ p a p s e q u { 3 } { 2 H S c h a l t e r aus} \papver{2}{2} \papchor{2}{l} \epap \end{figure} \ e n d { v erbat im} \begin{grauboxH8}{0.8\textwidth} Man beachte auch, d a \ s s \ s i c h d i e s e r Programmablaufplan sehr bequem ändern l ä \ s s t , was bei k o n v e n t i o n e l l e r s t e l l t e n Programmablaufplanen j a gerade n i c h t g i l t . \end{graubox} \addtocounter{f igureMl} {\unitlength=6.25pt \begin{figure}[ht] \smallskip \scriptsize \bpap{3}{8} \papanf{8H0}{Programm-Start} \pap0ea{7}{0}{Er\öffnen} \papsequ{6}{0}{Schalter ein} \papea{5M0}{Einlesen Satz} \papein{5H0}{4}
321
322
Quelltext
\papabfr{4H0HnMjHSchalter ein} \papabf r { 3 } { 0 } { n } { j MGruppen». > \papein{2H0>{3> \papsequ{2H0}{Einzelverarb.> \paptend{l}{0}{4} \paptanf{8HlHl} \pap0ea{7Hl}{Abschlu\ss > \papend{6Hl}{Programin-Ende} \papaus{5}{lMl} \paphor{4Hl> \paphver{3>{l> \papsequ{2}{l}{Gruppen-Verarb.> \ p a p s e q u - f l M l M V o r b . n . Gruppe} \paptend{0}{lH3} \paphver{4}{2} \ p a p s e q u { 3 } { 2 } { S c h a l t e r aus} \papver{2M2} \papchor{2}{l} \ p u t ( 1 0 , 2 ) { \ n o r m a l s i z e A b b A t h e f i g u r e \ Prograaunablaufplan Gruppenwechsel} \epap \end{figure} }
Kapitel 9. Organisation von Buchsatz
Kapitel 9 Organisation von Buchsatz
'/. '/.
'/,
Kapitel 9
\chapter{Organisation von Buchsatz} \section{\Übersieht} Die Forderung nach m\öglichst gro\ss er \Übersicht betrifft zun\ächst das gesamte Erzeugnis. Um XÜbersichtlichkeit zu erreichen, werden im Buchsatz eine Reihe von Hilfsmitteln eingesetzt, die s\ämtlich unter \TeX\ unterst\ützt werden. \begin{itemize} \item[] Titelseiten \item[] Inhaltsverzeichnis \item[] Schlagwortregister (Index) \item[] Referenzen \subitem Rückverweis mit Angabe der Seite \subitem Rückverweis mit Angabe der Abbildungsnummer \item[] Fu\ss noten \end{itemize} Diese Techniken sollen in diesem Kapitel dargestellt werden. Bei der Produktion eines Buches treten aber auch Produktionsprobleme auf. Insbesondere wird es notwendig, das gesamte Dokument in mehrere Teile aufzuteilen, um besser Korrekturen und AbXänderungen vornehmen zu k\önnen, ohne jedesmal das gesamte Dokument manchmal mehr als 100 Seiten zu bearbeiten. Hierbei sollte erw\ähnt werden, da\ss\ die Bearbeitungszeit (=\Übersetzungszeit) selbstverständlich proportional zur Anzahl von zu erzeugenden Buchseiten ist. Auch der ben\ötigte Hauptspeicherplatz steigt mit
323
324
Quelltext
der Anzahl der z u bearbeitenden Seiten eigentlich besser: mit der Anzahl der unterschiedlichen Strukturen. Letztere nehmen aber in der Regel mit der Anzahl der Seiten des Dokuments zu, so da\ss\ auch hierdurch die lotwendigkeit gegeben sein kann, das Dokument aufzuteilen. Auch diese Produktionstechniken sollen in diesem Kapitel dargestellt Verden. \sectioniTitelseiten}\index{Titel}\index{Titelseiten} Am Anfang eines gro\ss en Dokuments «erden sogenannte Titelseiten benötigt. Diese Verden d e m Dokument unnumeriert vorangestellt. Für diese Aufgabe gibt es in \TeX\ einen modifizierbaren Standard. Der Vorteil der Benutzung ist vor allen Dingen darin z u sehen, da\ss\ dann aufwendige Layout-Betrachtungen entfallen können. Zur Erzeugung einer oder mehrerer Titelseiten stehen Makros zur Verfügung. \varpar=4.5cm \begin{varlist> \item[$\backslash$title\{text\}] Es wird 'text' als Titel verwendet. Als Markierung von Zeilenenden kann \verb+\\+ verwendet Verden. \item[$\backslash$author\{name\}] Es wird 'name' als Name des Autors vervendet. Als Markierung von Zeilenenden kann \verb+\\+ vervendet Verden. \item[$\backslash$date\{datum\}-] Es vird 'datum' als Datum verwendet. Hier kann auch eine Jahreszahl eingetragen werden. Wenn keine Eintragung erfolgt, vird automatisch das Datum (TT.Monat.19JJ) der Übersetzung des Dokuments eingesetzt. \item[titlepage environment] Durch das environment \begin{verbatim} \begin{titlepage} .... text .... \end-Ctitlepage} \end{verbatim} wird stets eine neue Seite produziert. Innerhalb des environments sind alle Strukturen, die in diesem Buch beschrieben wurden, zugelassen. Der Anvender legt Inhalt und Layout dieser Seite(n) selbst fest. \item[$\backslash$maketitle] Dieser Command generiert die Titelseite. Es wird vorausgesetzt, da\ss\ vorher alle Parameter, die oben angegeben sind, besetzt worden sind.
Kapitel 9. Organisation von Buchsatz Falls das titlepage environment verwendet wird, dann ist auch dieses noch {\bf vor} den Command \verb+\maketitle+ zu plazieren. \end{varlist} \section{Inhaltsverzeichnis> \index{Inhaltsverzeichnis} Der Command \begin{verbatim} \tableofcontents \end{verbatim} produziert ein Inhaltsverzeichnis. Im einzelnen Verden durch diesen Command folgende Funktionen ausgefYiihrt. \begin{enumerate} \item Es wird eine Datei datei.toc erzeugt. (datei= Name der zu bearbeitenden Datei). Hierin wird alle Information abgespeichert, die n\ötig ist, ein Inhaltsverzeichnis zu produzieren. \item Alte Inhaltsverzeichnisse werden bei dieser Bearbeitung aufdatiert. Es wird stets das letzte Inhaltsverzeichnis gespeichert. \end{enumerate} In das Inhaltsverzeichnis werden alle Hierarchie-NÜberschriften (part, chapter, section, subsection, subsubsection) zusammen mit der Seiten-Nummer aufgenommen. Durch \begin{verbatim} \s et count er {t o c n u m d e p t h H n r } \end{verbatim} kann festgelegt werden, ob eine Hierarchie-XÜberschrift in das Inhaltsverzeichnis aufgenommen wird. Die Nummer nr z\ählt von part her. Hat nr den Wert 3, dann werden nur die XÜberschriften bis zu section-\Überschrift in das Inhaltsverzeichnis aufgenommen. Der Command \verb+\tableofcontents+ steht am Ende des Documents. Will man die Seiten-Numerierung neu beginnen lassen, dann kann z.B. durch einen Command \begin{verbatim} \pagenumbering{art} \end{verbatim} die Schriftart festgelegt werden. Als Schriftarten
325
326 sind zugelassen
\[ \mbox{art} = \ l e f t \ { \begin{tabularMll} arabicftArabische Z i f f e r n W Roman&R\ömische Z i f f e r n W alph&Kleinbuchstaben\\ Alph&GroNss buchstaben \end{tabular} \right.
\]
Der Command \verb+\pagenumbering+ beginnt die Seitennumerierung von vorn. Es wird h\äufig die Methode benutzt, das Inhaltsverzeichnis durch r\ömische Z i f f e r n zu numerieren. Dann wird am Ende des Programms geschrieben \begin{verbatim} \pagenumbering{Roman} \tableofcontents \end{verbatim} Die Seiten werden dann auch am Ende des Dokuments produziert. Normalerveise m\öchte mein das Inhaltsverzeichnis vorn haben. Das i s t dann j a aber j e d e r z e i t durch Umlegen der Seiten m\öglich, da die Seiten unabh\ängig vom Nübrigen Dokument numeriert sind. Auf die gleiche Weise erh\ält man auch eine L i s t e der Abbildungen. (Die Abbildungen erhalten eine Nummer. Diese i s t eine Nummer mit Punkt. Vor dem Punkt steht die Kapitel-Nummer, hinter dem Punkt eine fortlaufende Nummer der Abbildung innerhalb des Kapitels. Diese Nummer wird automatisch b e i Anwendung des Commands \verb+\caption+ e r z e u g t . ) Der Command zur Erzeugung der Liste der Abbildungen lautet \begin{verbatim} \listoffigures \end{verbatim} Hierdurch wird eine Datei d a t e i . l o f erzeugt. Diese wird wie oben f\ür die datei.toc f\ür das Inhaltsverzeichnis bearbeitet. Auch hier kann durch einen Command \verb+\pagenumbering+ die Seitennumerierung neu begonnen werden, mein kann aber
Quelltext
Kapitel 9. Organisation von Buchsatz auch die Seitennumerierung f\ür das Inhaltsverzeichnis weiterverwenden, wenn die Liste der Abbildungen hinter das Inhaltsverzeichnis gelegt wird. \section{Titelseite> \section{Schlagwortregister Index} \index{Schlagwortregister} \index{Index} In der Pr\äambel ist in allen \TeX-Dokumenten, in denen ein Index erzeugt werden soll \begin{verbatim} Xmakeindex \end{v erbat im} \index{makeindex} zu schreiben. Hierdurch wird erreicht, da\ss\ bei jedem Eintrag, den der Anwender macht, ein Satz in die Datei datei.idx geschrieben wird. Der Anwender nimmt direkten Einflu\ss\ darauf, selcher Begriff in das Schlagwortregister gestellt wird. An jeder beliebigen Stelle kann vom Anwender geschrieben werden Ybegin-fverbat im} \index{begriff} \end{verbatim} Dies hat die Wirkung, da\ss\ dieser Begriff zusammen mit der Seiten-Nummer in eine Datei datei.idx gestellt wird. An jeder beliebigen Stelle kann vom Anwender aber auch geschrieben werden \b eg in{v erbatim} \hindex{begriff} \end{verbatim} Dies hat die Wirkung, da\ss\ dieser Begriff zusammen mit der Seiten-Hummer in Fettdruck in die Datei datei.idx gestellt wird. Die Datei datei.idx ist eine ASCII-Datei. Direkte Weiterverarbeitungen werden allerdings von \TeX\ nicht angeboten. Informatika hat deshalb ein Verfahren entwickelt, welches sehr einfach auf allen Betriebssystemen realisiert werden kann. Das Verfahren geht in 3 Schritten vor. \setlength{\varpar}{0.8in} \beginivarlist} \item[datei.idx] F\ür jeden Indexeintrag stellt \TeX\ einen Dateisatz der Form
327
328
Quelltext
\verb+\indexentry{Begrifi}{Seiten-Iummer}{art}+ ab. Da bei jedem Eintrag des Anwenders ein solcher Satz erzeugt wird, ist die Reihenfolge zun\ächst die der Eintr\äge. (Hierbei ist art = 1, ialls es sich um einen Yiiber \verb+\index{begriff}+ erzeugten Eintrag handelt, sonst ist art = 2, wenn der Eintrag \über \verb+\hindex+ erzeugt wurde.) (Die indexentrys stehen also in der Reihenfolge aufsteigender Seiten-Hummern und danach nach Zeilen-Kummer aufsteigend.) Die S e i t e n n u m m e m sind \iiberdies linksb\ündig ohne Leerzeichen geschrieben. \item[tri] Das Programm tri (Transformation index) liest jeden einzelnen Satz und ersetzt die Seiten-Hummer durch eine 4-stellige r e c h t s b ü n d i g geschriebene Seiten-Hummer, die mit führenden Leerzeichen aufgef\üllt wird. Dadurch ist die Datei sortierf\ähig. Das Programm arbeitet als Filter. (Standard-Eingabe wird \linebreak[4] V, erzwungen durch das Programm zu Standardausgabe.) \item[Sortieren] Die so entstandene Datei kann mit einem \üblichen Sor\-tier\-pro\-gramm, wie es in jedem Betriebssystem vorhanden ist, (z.B. MS-DOS Programm SORT) sortiert werden. Die Ergebnisdatei mu\ss\ texs.idx hei\ss en. \iteraCindex.tex] Die so entstandene Datei wird als Eingabedatei f\ür das Satzprogramm index.tex verwendet, welches in \TeX\ geschrieben ist. Es wird ein zweispaltiger Index erzeugt. \end{varlist} \section{Referenzen} \index{Referenz> Jederzeit kann der Anwender Referenzpunkte bilden. Dies geschieht mit dem Command \begin{verbatim} \label{kennung} \end{verbatim} \index{label} Hierbei ist kennung eindeutig zu verwenden. Schreibt man nun in dem Dokument Ybegin{verbatim} \ref{kennung} \end{verbatim} \index{ref}
Kapitel 9. Organisation von Buchsatz so wird an dieser Stelle die hierarchische lummer gesetzt, die der Stelle entspricht, HO \verb+\label{kennung}+ steht, also z.B. 5.4.3 f\ür Kapitel 5, Abschnitt 4, Unterabschnitt 3. Schreibt man nun in dem Dokument \begin{verbatim} \pageref{kennung} \end-Cverbatim} \index{pageref} so wird an dieser Stelle die Seitennummer gesetzt, die der Stelle entspricht, vo \verb+\label{kennung}+ steht. Eine Besonderheit ist noch bei Abbildungen zu beachten. Steht der Command \verb+\label{kennung}+ etwa am Anfang eines 'environment figure', dann erh\ält man ebenfalls durch \begin{verbatim} \ref{kennung} \end{verbatim} die hierarchische Kummer, also z.B. 5.4.3 f\ür Kapitel 5, Abschnitt 4, Unterabschnitt 3. Wird aber der Command \verb+\label{kennung}+ innerhalb eines Commands \verb+caption+ angewendet, dann wird durch \begin{verbatim} \ref{kennung} \end{verbatim} die Nummer der Abbildung erzeugt, also 5.2 f\ür die zweite Abbildung im Kapitel 5. F\ür diese Form ist der Command \verb+\caption+ folgenderma\ss en zu schreiben. \begin{verbatim} \caption{\label{kennung} bildunterschrift} \end{verbatim} \index{caption} \section{Fu\ss noten} Fu\ss noten werden am Ende der Seite eingefügt. Hierdurch wird der Platz für den eigentlichen Text reduziert. (alle Seiten auch solche mit Fu\ss noten sind gleich lang.) Es sind zwei Verfahren vorgesehen. \subsection{Fu\ss noten werden durch '$\ast$)' gekennzeichnet*} In vielen Dokumenten werden Fu\ss noten\fussnote{Makro aus
329
330
Quell text
infmakro.tex} so gekennzeichnet, da\ss\ lediglich ein '$\ast$' angebracht wird, sie das gerade hier geschehen ist. Dies erreicht man mit dem Makro \begin{verbatim} \fussnote{ fussnotentext } \end{verbat im} Kommen mehrere Fu\ss noten auf einer Seite vor, dann werden diese zeilenweise mit einer immer höheren Anzahl von '$\ast$' gekennzeichnet. Die Anzahl beginnt auf jeder Seite wieder mit einem Stern. \subsection{Fu\ss noten werden numeriert} Fu\ss noten können aber auch numeriert werden. Die Numerierung geschieht dann im ganzen Dokument fortlaufend. Ein Beispiel dieser Art von Fu\ss noten sehen Sie auf dieser Seite\footnoteiDas ist ein Beispiel einer numerierten Fu\ss note}. Dies erreicht man mit dem Makro \begin{verbatim} \footnote{ fussnotentext } \endiverbatim} Kommen mehrere Fu\ss noten auf einer Seite vor, dann werden diese zeilenweise ausgegeben. Die Numerierung wird automatisch fortgeschrieben. \sectioniBearbeitung langer Dokumente} \TeX\ unterst\ützt die Verarbeitung langer Dokumente. Dokumente k\önnen gut in kleinere Teile aufgeteilt werden, wenn hierbei beachtet wird, da\ss\ die Teile von \TeX\ stets so \übersetzt werden, da\ss\ ein Teil des Dokuments stets auf einer neuen Seite beginnt. Da Kapitel aber stets auf einer neuen Seite und zwar auf einer mit ungerader Seiten-Nummer beginnen, ist eine Aufteilung eines Dokuments in Kapitel unproblematisch. Drei Commands unterst\ützen diese Aufteilung. \setlength{\varpar}{2.4cm} \begin{varlist} \item[input] Durch den Command \verb+\input{datei}+ \index{input} wird dort, wo der Command plaziert wird, die Datei datei.tex eingelesen. Dieses Verfahren kann man verwenden, wenn z.B. Makros f\ür einen bestimmten Verwendungszweck in getrennten Dateien gehalten werden und man nun in einem Programm die Auswahl aus mehreren dadurch trifft, da\ss\ man sie
Kapitel 9. Organisation von Buchsatz durch input einliest. \item[include] Durch den Command \verb+\include{datei}+ \index{include> wird dort, HO der Command plaziert wird, die Datei datei.tex eingelesen. Insoweit unterscheidet sich dieser Command nicht von dem Command \verb+\input{datei}+. Der entscheidende Unterschied besteht darin, da\ss\ der Einlese-Vorgang (und der VerarbeitungsVorgang) nur dann vorgenommen wird, wenn der Dateiname in einem Command \verb+\includeonly+ vorkommt. \item[includeonly] In der Pr\äambel (hinter dem Command \verb+\documentstyle+ und noch vor dem Command \verb+\begin{document}+ wird der Command \verb+\includeonly{teill,teil2,teil3,...}+ abgesetzt, lur diejenigen Teile, die in dem Command aufgef\ührt sind, werden verarbeitet. F\ür alle anderen Teile des Dokuments Verden die insoweit abgespeicherten Versionen verwendet. \index-fincludeonly} \end{varlist} Daraus ergibt sich, da\ss\ f\ür gro\ss e Dokumente eine spezielle Organisation verwendet werden mu\ss . Es hat sich in der Praxis herausgestellt, da\ss\ es zweckm\ä\ss ig ist, ein Hauptprogramm zu haben, in welchem die Steuerungen f\ür die gesainte Produktion aufgehoben werden. Die Teile des Dokuments befinden sich in den getrennten Dateien. Das Hauptprogramm f\ür die Steuerung dieses Buches wird im folgenden dargestellt. \begin-f verbat im} \documentstyle [bezier] {lehrbuchj\input-Cinfmakro} \input{infpap} \makeindex \includeonly{texO, texl, tex2, tex3, tex4, tex5, tex6, tex7,'/, tex8,tex9,texl0> \begin-Cdocument} % \include{texO> %
'/, Titelseiten
\include{texl>
'/, Kapitel 1
\include{tex2>
'/, Kapitel 2
'/.
331
Quelltext
332
'/. \include{tex3>
'/, Kapitel 3
\include{tex4> '/. \include{tex5>
'/, Kapitel 4
\include{tex6>
'/, Kapitel 6
\include{tex7>
'/, Kapitel 7
%
% X
'/, Kapitel 5
'/, \include{tex8>
'/. Kapitel 8
'/. \include{tex9>
'/. Kapitel 9
\include{texlO>
'/. Kapitel 10
'/,
'/,
\newpage '/, leue Seite \pagenumbering{Roman} '/, Mumerierungsart YtableofContents '/, Inhaltsverzeichnis \listoffigures '/, Liste der Abbildungen \end{document} \end{verbatim> \begin{graubox}{8M0.8\textwidth> Hain beachte, da\ss\ gro\ss e Kapitel auch innerhalb des Kapitels unterteilt «erden können. Allerdings kann das immer nur bei einer Seitengrenze geschehen, weil ein Modul stets mit einer neuen Seite beginnt \end{graubox}
Kapitel 10. Schnittstellen von TßX zu anderen Systemen
333
Kapitel 10 Schnittstellen von
zu anderen Systemen
'/. '/.
•/,
Kapitel 10
\chapter{Schnittstellen von \TeX\ zu anderen Systemen} \index{Schnittstellen} \section{Anforderungen} Die Einsatzmöglichkeit eines Systems wie \TeX\ hängt in hohem Na\ss e auch davon ab, welche Zusammenarbeit mit anderen Systemen möglich ist. Da andere Systeme wie \TeX\ mit Eingabedaten arbeiten und Ausgabedaten erzeugen, wird es also nötig sein zu prüfen, «eiche Datenformate bzw. Dateiformate \TeX\ verarbeiten kann, und welche Datenformate bzw. Dateiformate von \TeX\ erzeugt werden können. Im Bereich der Verarbeitung von Zeichen sind überhaupt nur zwei Datenformate bzw. Dateiformate von Belang. \begin{enumerate} \item ASCII-Format (zeichenorientiertes Format 256 Zeichen) \item dvi-Format (Eingabeformat für Treiber der Endgeräte wie z.B. Laser-Drucker oder Graphik-Bildschirm-Ausgabe) \end{enumerate} \index{ASCII-Format} \index{dvi-file} Wenn \TeX\ also mit anderen System kommunizieren soll, dann mu\ss\ es sowohl möglich sein, ASCII-Texte, die von anderen Systemen erzeugt wurden, in die Quelltexte aufzunehmen. Es mu\ss\ aber auch möglich sein, zur Verarbeitungszeit von anderen Systemen erzeugte ASCII-Dateien satzweise zu verarbeiten. Ferner mu\ss\ es möglich sein, die von anderen Systemen (Hardware oder Software) erzeugten dvi-Dateien so zu
334
Quelltext
verarbeiten, da\ss\ diese in aus \TeX\ erzeugte dvi-Dateien an der richtigen Stelle in der richtigen Grö\ss e eingemischt Verden, so da\ss\ am Ende ein komplettes Dokument entsteht. Diese Möglichkeiten hat \TeX . \section{Verarbeiten von ASCII-Dateien} Da\ss\ \TeX\ ASCII-Dateien in die Quelltexte einmischen kann, ist bei diesem System unproblematisch, da es sich selbst um ein ASCII-System handelt. Jederzeit können auf anderen Systemen vorbereitete Texte in die Quelltexte eingemischt Verden. Die Umvandlung von \TeX\ bearbeitet dann die Gesamtdateien. Die Strukturierung der Texte soveit sie durch \TeX -Commands beeinflu\ss t Verden soll, mu\ss\ dann allerdings nachträglich noch erfolgen. Soll \TeX\ auch ASCII-Daten einlesen, dann mu\ss\ der bisher bekannte Satz von Commands noch erveitert Verden. \subsection{Die Commands $\backslash$typein $\backslash$typeout> \index{typein} \index{ASCII-Eingabe} Diese beiden Commands stellen Bindeglieder von \TeX\ zu Ta\-sta\-tur (\verb+\typein+) und Bildschirm (\verb+\typeout+) dar. Durch \verb+\typein+ vird einer Variablen ein Wert zugeviesen. Der \verb+\typein+-Command hat folgendes Format: \beginiverbatim} \typein[\variable]{prompt-text} \end{verbatim} Hierbei bedeuten: Ybegin-fcenter} \begin{tabularHll} variable & Hamen einer Variablen (Kur Zeichen zugelassen!)\\ prompt-text & Text, der bei der Eingabe als Prompt vervendet virdW \end{tabular} \end{center} {\em Schreibt man:} \begin{verbat im} \typein[\name]-(Bitte Heimen eingeben:} Der Harne ist \name. \end{verbatim} so erhält man vährend der Übersetzung die Möglichkeit, einen Text unterschiedlich zu gestalten, je nachdem, velche Eingabe getätigt vurde. Der im Dokument enthaltene Text lautet jetzt also
Kapitel 10. Schnittstellen von T^X zu anderen Systemen \centerline{Der Harne ist Meyer} oder \centerline{Der Harne ist Müller} je nachdem, «eiche Eingabe getätigt wurde. Dieser Command entfaltet aber seine eigentliche Stärke erst, wenn man bedenkt, da\ss\ \TeX\ die Eingaben statt von der Tastatur auch über 'redirected input' über eine Datei erhalten kann. \index{redirected input} Lautet das Betriebssystem - Statement zur Umwandlung norm eil erweise \centerline{tex programm} wenn programm.tex den Quelltext enthält, so schreiben wir jetzt: \centerline{tex programm $ Daraus entsteht: \medskip
'/.
'/,
'/.
Einlesen Adresse
\def\anrede{Herrn> \def\vorname{Franz Xaver) \def\name{Grantner} \def\strasse{Regensburger Str. 18} \def\plzort{8000 München} •/, '/.
'/.
Brieftext
\anrede \vorname\ \name \strasse \plzort \vspace*{lcm} \hfill Freilasing, den 16. April 1988\newline \vspace*{lcm} Sehr geehrter Herr \name , zu unserem Bedauern müssen vir Ihnen leider mitteilen, da\ss\ vir den vorgesehenen Liefertermin für den von Ihnen bestellten \centerline{Kleiderschrank M16900} per 25. April 1988 nicht einhalten können. Wegen gro\ss em Arbeitsanfall in der Fabrik wird sich die Lieferzeit um 2 - 3 Wochen verzögern. Wir bitten Sie um Ihr Verständnis.
K a p i t e l 10. Schnittstellen von TfeX zu anderen Systemen
\vspace{0.5cm} Mit freundlichem Gru\ss Möbelfabriken Meyer Sohn \vspace*{3cm} \index{typeout> \index{Bildschirmausgabe} Der Command \verb+\typeout+ kann benutzt werden, um Informationen während der Übersetzung an den Bildschirm auszugeben. Der Command hat das Format \begin-f verbat im} \typeout{ausgabe-text} \endiverbatim> \subsection{Mehrfachbriefe} P r o f e s s i o n e l l einsatzfähig i s t dieses Programm allerdings erst dann, wenn auf diese Veise Mehrfachbriefe geschrieben werden können. Hierzu sind allerdings noch 3 Commands n ö t i g , um das erreichen zu können. \begin{enumerate} \item Zum einen braucht man einen Command zur Abwicklung einer S c h l e i f e (dies i s t der {\bf loop-Command mit r e p e a t } ) \item Mit einer if-Abfrage i s t zu prüfen, ob die S c h l e i f e noch weiterlaufen s o l l ({\bf i f > ) . \item Es wird eine Schleife ausgeführt solange eine Bedingung e r f ü l l t i s t . Dazu mu\ss\ es möglich sein eine Konstante zu definieren ({\bf d e f } ) . \end{enumerate} \medskip {\bf D e f i n i t i o n einer Konstanten} \ i n d e x { d e f } \index{Konstante D e f i n i t i o n } \medskip In \TeX\ kann man mit \begin{verbatim} \def\variable{wert} \end{verbatim} einer alphanumerischen Konstanten 'variable* einen Vert zuweisen. B e i s p i e l : Durch \verb+\abk{Makro aus infmakro.tex}+ i s t der Variablen abk der Wert 'Makro aus infmakro.tex' zugewiesen. Man kann also die D e f i n i t i o n von alpahnumerischen Konstanten zur Schreibvereinfachung verwenden. \medskip {\bf Abfrage auf alphanumerische Konstante der Länge 1} \ i n d e x { i f } \index{ifx} \index{if-Abfrage}
337
338 \medskip Die if-Abfrage hat folgendes Format Ybegin-Cverbatim} \ifx\variable\konstante commands \fi \end{verbatim} Wenn die Variable 'variable' den Wert der Konstanten 'konstante' hat, dann «erden die '.... commands ...' ausgeführt. Wenn dies nicht der Fall ist, wird nichts ausgeführt. \medskip {Ybf loop repeat} \index-floop} \index{repeat} \index{Schleife} \medskip Eine Schleife wird durch den Command \verb+\loop+ eingeleitet. Ihm folgen die Commands, die in der Schleife ausgeführt Verden. Die Schleife vird durch den \verb+\repeat+ abgeschlossen. Dieser Command steuert über eine if-Abfrage ähnlich der obigen if-Abfrage, ob die Schleife noch weiter durchlaufen werden soll oder nicht. Die gesamte Schleife hat damit folgendes Format. Ybegin-Cverbatim} \loop ... Commands, die in der ... Schleife ausgeführt ... werden sollen \ifx\variable\konstante \repeat \end{verbatim} Die Schleife wird solange ausgeführt, wie \centerline{Variable = Konstante} Wenn diese Bedingung nicht mehr gilt, wird die Schleife abgebrochen. \begin{graubox}{8}{0.8\textwidth} Bei Anwendung des loop-Commands ist aber zu beachten, da\ss\ die in loop — if-Abfrage eingeschlossenen Informationen ohne Absatz geschrieben werden müssen. Solange es sich um Commands handelt, ist dies keine Einschränkung. Wenn allerdings Texte geschrieben werden sollen, die dann ja auch Absätze erhalten, mu\ss\ eine bestimmte Organisation angewendet werden. Man kann folgenderma\ss en vorgehen. {\linewidth=0.8\textwidth Ybegin{enumerate}
Quelltext
K a p i t e l 10. Schnittstellen von T ^ X zu anderen Systemen
339
\item Der Text wird in ein tabular environment geschrieben, velch.es aus einer Spalte besteht, die mit p\{\} beschrieben i s t . \item Diese Tabelle wird mit def einer Variablen text zugewiesen. \item Im loop — repeat wird als Statements f ü r den Text eingefügt: \begin{verbatim} \begin{tabularH«{}p{\textwidth}«{}} \text \end{tabular} \end{verbatim> \end{enumerate} > \end{graubox} \bigskip \medskip {\bf Ein Programm zur Erzeugung von Hehrfachbriefen} \index{Mehrfachbriefe} \medskip Es wird mit folgender Konzeption g e a r b e i t e t . \begin{enumerate} \item Die Adressen sind in einer Datei gespeichert. Die Adressen enthalten zeilenweise folgende Daten: \begin{center} Ybegin-CtabularHll} 1. Z e i l e k AnredeW 2. Z e i l e t VornameW 3. Z e i l e k Iame\\ 4. Z e i l e k Stra\ss e und HausnummerW 5. Z e i l e k P o s t l e i t z a h l und Ort\\ 6. Z e i l e k Kennzeichen ' 1 ' oder ' O ' W \enditabular} \end{center} \item A l l e Adressen enthalten in der 6. Z e i l e eine ' 1 ' . Als Datei-Ende enthält die Datei eine 'Stopp-Adresse', dies i s t eine g ü l t i g e Adresse mit dem Kennzeichen ' 0 ' . \end{enumerate} Das Programm wird nun in einzelnen Programmteilen d a r g e s t e l l t . Den einzelnen Programmteilen sind die entsprechenden Erklärungen vorausgestellt. Die Konstante 1 wird als '\verb+\+keins' d e f i n i e r t . Der Text wird in ein s p e z i e l l e s tabular environment g e s t e l l t . Normalerweise sind in einem tabular environment j e Spalte
340
Quelltext
Zwischenräume vorgesehen. Diese betragen am Anfang und am Ende der Spalte 6pt. Durch Eintragung von \verb+C{\hspace{xxpt}}+ kann dieser Zwischenraum verändert werden. Nacht man keine Eintragung, dann ist dieser Zwischenraum Opt. In der folgenden Eintragung des tabular environment ist also die Tabellenbreite gleich der vollen Textbreite. Der Brieftext wird in einer Tabelle gespeichert. Er kann durch Angabe von \verb+\text+ aufgerufen werden. \begin{verbatim} \def\keinsil} \def\text{\begin{tabular>{«{>p{\textwidth>fiO> zu unserem Bedauern müssen wir Ihnen leider mitteilen, da\ss\ wir den vorgesehenen Liefertermin für den von Ihnen bestellten \centerline{Kleiderschrank M16900} per 25. April 1988 nicht einhalten können. Wegen gro\ss em Arbeitsanfall in der Fabrik wird sich die Lieferzeit um 2 - 3 Wochen verzögern. Wir bitten Sie um Ihr Verständnis. \vspace{0.5cm} Mit freundlichem Gru\ss Möbelfabriken Meyer \4 Sohn \end{tabular} \end{verbat im} \medskip Bier beginnt die Schleife. Am Anfang der Schleife wird die Adresse und das Kennzeichen eingelesen. \begin{verbatim} \loop \typein [\anrede] {} \typein [\vomame] {} \typein[\name]{} \typein[\strasse]{} \typein[\plzort]O \typein[\kennz]{} \end{v erbat im} \medskip Falls das Kennzeichen = 1 ist, wird die Adresse und der Briefkopf sowie der Brief ausgegeben und es wird eine neue Seite begonnen. Die if-Abfrage endet bei \verb+\fi+ Man beachte hierbei, da\ss\ die \verb+\vspace+-Commands immer erst hinter dem nächsten \verb+\newline+ wirksam werden. Es wird nun wieder eine Tabelle gebildet, die so breit ist wie die Textbreite. In diese wird der Brieftext gestellt. \begin-(verbat im} Nifx\kennz\keins
K a p i t e l 10. Schnittstellen von T £ X zu anderen Systemen
\anrede\newline \vorname\ \name\newline \strasse\newline \vspace{2cm> \plzort\newline \vspace{lcm} \ h f i l l F r e i l a s i n g , den 16. April 1988\newline \vspace{0.5cm> Sehr geehrter Herr \name ,\newline \begin-Ctabular>-Ce{>p{\textwidth>«{>> \text \end{t abular} \newpage\fi \end{verbatim> \medskip Falls das Kennzeichen = 1 i s t (dann handelt es sich um eine g ü l t i g e Adresse) wird die S c h l e i f e weiter durchlaufen. Sonst i s t das Programm zu Ende. \begin{verbatim} \ifx\kennz\keins \repeat \end{verbatim} Dies i s t ein Prinzip-Programm. In der Anwendung können die Erwartungen höher sein. Auch diese kann \TeX\ e r f ü l l e n . Die Informatika GmbH, Hamburg, hat ein solches Programm entwickelt. \subsection{Programmsystem ITMS$\ast$> \index{Mehrfachbriefe> \index{ITHS> Das Programmsystem ITHS (={\bf I n t e g r i e r t e s {\bf Tjext {Ybf M}anagement {\bf S}ystem) i s t ein Produkt der Informatika GmbH, Hamburg. Vir beschreiben im folgenden den Teilaspekt Schreiben von Mehrfachbriefen. Die Adressen werden in einer Daten verwaltetAfussnote{Das Programmsystem arbeitet mit einer Datenbank informix und mit \TeX . } Hier sind Adre\ss \-ma\-ni\-pu\-la\-ti\-o\-nen möglich: \index{Datenbank> \index{inionnix> \beginiitemize} \item Verändern der Adressaten in der Firma \item Übernahme der Adressen aus anderen Adre\ss dateien \item Vergabe von Codes zum Zusammenstellen von Gruppen \end{itemize> Aus der Datenbank wird durch einen s p e z i e l l e n Menuepunkt ein Adre\ss auszug z.B. nach Codes gemacht.
341
342
Quelltext
Bei der Bearbeitung mu\ss\ der Bearbeiter noch folgende Informationen eingeben: \begin{enumerate} \item Harne der Datei, in der sich der Brieftext befindet \item Betreff des Briefes \end{enumerate} Das Adressenauswahlprogramm erzeugt dann eine Datei. Die Zeilen 1 und 2 der Datei sind folgenderma\ss en verwendet. \begin{center} \begin{tabular}{ll} 1. Z e i l e k Name der Brieftext-Datei \\ 2. Z e i l e k Betreff des Briefes \\ \end{tabular} \end{center> Für jede Adresse befinden sich in der Datei 7 Zeilen. Diese haben folgenden Inhalt. \begin{center} Ybegin-CtabularHll} 1. Z e i l e k AnredeW 2. Z e i l e k Iame\\ 3. Z e i l e * Branche 1\\ 4. Z e i l e * Branche 2\\ 5. Z e i l e t Stra\ss e und HausnummerW 6. Z e i l e k Postleitzahl und Ort\\ 7. Z e i l e k Briefanrede \\ \end{tabular} \end{center} Die Stopp-Adresse wird hier daran erkannt, da\ss\ die 6. Z e i l e leer i s t . Das Auszugsprogramm s t e l l t hinter a l l e Adressen noch einmal die l e t z t e Adresse, die allerdings dann in der 6. Zeile keine Eintragung enthält. \medskip Das Programm erwartet, da\ss\ der B r i e f t e x t in der angegebenen Datei steht. Für die Entwicklung des B r i e f t e x t e s sind keine Einschränkungen gemacht. Am Ende dieser Datei mu\ss\ \begin{verbatim} \briefende \end{verbatim} geschrieben werden. \medskip Für die Schreibung der Briefe i s t eine s p e z i e l l e S t i l a r t entwickelt worden. Diese sorgt dafür, da\ss\
Kapitel 10. Schnittstellen von T£X zu anderen Systemen
343
\begin{enumerate} \item erste und folgende Seiten mit unterschiedlichem Seiten-Layout geschrieben Verden, \item das Seiten-Layout auf den bestehenden Firmenkopfbogen abgestimmt ist, \item das Briefdatum automatisch verwaltet wird, \item auf den Folgeseiten die Seiten-Nummer und das Datum des Schreibens wiederholt werden, \item Der Firmen-Hame und die Zeile 'Hit freundlichem Gru\ss ' im Block geschrieben werden. \end{enumerat e} Folgende Abwicklung ist vorgesehen: \begin{enumerate} \item Erstellen des Brieftextes mit \TeX . \item Auszug der Adressen aus der Datenbank (Erfassung des Dateinamens vom Brieftext und vom Betreff des Briefes). \item Umsetzen der Umlaute in \TeX -Umlaute. (Hierfür wird ein spezielles Programm eingesetzt.) \item Erzeugen der Briefe durch ein Programm mit redirected input, wobei die eingezogene Datei die Datei der ausgezogenen Adressen mit den zwei Zusatzzeilen ist. \ end-C enum er at e } Eine Abbildung eines solchen Briefes in verkleinerter Form stellt die Abbildung \ref{brief} auf Seite \pageref{brief} dax. \begin{figure}[ht] \begin{center} \bild-CbtexlOMOH\textwidthKll. 5cm} \end{center} \caption{\label{brief} Brief aus ITHS} \end{figure} \section{Verarbeiten von dvi-files} \index{dvi-files} \TeX\ kann nicht nur mit konventionellen Systemen über ASCII-Dateien kommunizieren, sondern es können auch dvi-files aus anderen Systemen in die \TeX -Dokumente eingemischt werden. \subsection{Einmischen von Bildern} \index{Einmischen Bilder} Um ein Bild der Breite 'breite' und der Höhe 'hoehe' an einer bestimmten Stelle einzumischen ist der Command \beg in{verbat im} \bild{dateiname}{grau}{breite}{hoehe} \end{verbatim} einzugeben. Dabei bedeuten die Parameter:
344
Quelltext
\begin{center} Ybegin-CtabularHll}
dateiname * laue des dvi-files \\ grau k Graustuie (0 — 100)\\ breite k Breite des Bildes \\ k Höhe des Bildes \\ hoehe \end{tabulax} \end{center} Dies soll an einem Beispiel demonstriert «erden. \begin{graubox}{8}{0.8\textwidth} Voraussetzung von allen Operationen ist, da\ss\ das einzumischende Bild als dvi-file {\bf vor} der Umwandlung des gesamten Dokuments zur Verfügung steht. Der eigentliche Vorgang des Einmischens wird von dem Treiber vorgenommen. \TeX\ hält nur den notwendigen Platz frei. \end{graubox} \medskip Gegeben ist als dvi-file die Abbildung der Gau\ss 'sehen Hormalverteilung. Das Bild hat eine Breite von 240pt und eine Höhe von 130pt. Die Datei hat den Hamen bgauss.dvi. Das Bild soll mit einer Graustufe 8 unterlegt werden.{\bf Wir verwenden die Graustufen in diesem Abschnitt zur Demonstration der Grö\ss e des Bildes und seine Einpassung in das Dokument.> \medskip •C\em Sie schreiben:} \begin{verbatim} Ybild{bgaussH8}{240pt}{130pt}
\end{verbatim} \index{bild} \medskip {\em und erhalten:} \medskip \bild{btexl01}{8M240ptHl30pt} \medskip Das eingezogene Bild wird linksbündig verarbeitet. Selbstverständlich kann man dieses Bild auch zentrieren. Man schreibt dann: \beginiverbatim} \begin{center} \bild{bgaussH8}{240ptMl30pt} \end{center} \end{verbatim}
Kapitel 10. Schnittstellen von T£X zu anderen Systemen und erhält: \begin{center}
\bild-Cbtexl0lH8M240ptHl30pt} \end{center} \subsection{Erzeugen von dvi-files für Bilder> Die Erzeugung von Bildern, die z.B. mit Hilfe des bezier.sty erzeugt worden sind, haben eine hohe Umwandlungszeit. Aus diesem Grunde kann es durchaus sinnvoll sein, solche Bilder als dvi-files getrennt zu erzeugen. Dies verhindert auch in gewissen Fällen die Nachricht \index{dvi-files für Bilder} \centerline{\TeX\ capacity exceeded} Um ein solches Bild zu erzeugen, ist folgende Form der Präambel zu wählen. \beginiverbatim} \begin{documentstyle} [ ]{ } \input{infmakro} \stbild{breite}{laenge} \begin{document}
\endido cument} \endiv erbat im} Hierbei bedeuten breite und laenge die Breite und die Länge des Bildes. \medskip Es sollte dabei beachtet werden, da\ss\ in der Präambel exakt die Reihenfolge der Commands eingehalten wird, da \verb+\stbild+ ein Makro aus infmakro.tex ist. infmakro.tex mu\ss\ also schon vorher existieren, bevor \verb+\stbild+ aufgerufen wird. Dies mu\ss\ in jedem Fall noch in der Präambel geschehen. Das Bild der Gau\ss 'sehen Mormalverteilung wird durch folgenden \TeX -file erzeugt. \begin{verbatim} \documentstyle{lehrbuch} \input{makro} \stbild{130pt}{240pt} \begin{document} \begin{picture}(240,130) \bezier{250}(0,0)(60,0)(80,72.59121)
345
346
Quelltext
\bezier{250}(80,72.59121)(92.974424,119.68266)(100,119.68266) \bezier{250}(100,119.68266)(107.02558,119.68266)(120,72.5912) \bezier{250}(120,72.59121)(140,0)(200,0) Yput(0,0){\vector(1,0){220» \put(225,0){x} \put (100,0){\vector(0,1) { 1 3 0 » \put(103,125){y> \end{picture} \end{document} \end{verbatim> \subsection{Montage von zusätzlichen Texten} \index{Montage von Bildern} In vielen Anwendungen ist es notwendig, neben die Bilder noch Texte zu montieren. Bild und Text betrachten wir als Boxes (Rechtecke). Es kann nun gewünscht werden, da\ss\ die Texte neben dem Bild stehen und mit der oberen Bildkante beginnen. Es kann aber auch vorkommen, da\ss\ die Texte neben dem Bild zentriert (auf 'halber' Höhe) stehen oder da\ss\ die Texte mit der unteren Bildkante abschlie\ss en. Alle Fälle sind mit den bekannten Commands zu erreichen. Wir verwenden die Form des tabular environments mit p\{\} und setzen au\ss erdem mit \verb+C{}+ vor jedem Parameter und hinter dem letzten alle Zwischenräume zwischen den Spalten auf Hull. Als Grundparameter für die Bearbeitung sollte die Textbreite bekannt sein. In diesem Buch beträgt sie 330pt. \medskip {\bf Bild und Text gleicher Beginn oben} \index{Montage von Bildern} \medskip Als Strukturelement wird ein tabular environment mit zwei Spalten verwendet. {\em Schreibt man:} \begin{verbatim} \begin{tabular}{0{}p{240pt}«{\hspace{5pt»p{85pt}C{» \bild{bgauss}{8}{240pt}{130pt}k»ormal Verteilung (J.C.F. Gau\ss ) \\ \end{tabular} \end{verbatim} \medskip {\em so erh\ält man:}
Kapitel 10.
Schnittstellen von T^jX zu anderen Systemen
347
\medskip \begin{tabularH«Op{240pt}C{\hspace{5pt}}p{85pt}«{}} \bild{btexl0lH8H240ptMl30pt}ftKormal — Verteilung ( J . C . F . Gau\ss ) \\ \end{tabular} \medskip {\bf Text aui m i t t l e r e r Höhe des B i l d e s } \index{Montage von Bildern} \medskip S o l l der Text auf m i t t l e r e Höhe des Bildes gesetzt werden, so kann man zwei tabular environments horizontal nebeneinandersetzen. Die Tabelle mit der geringeren Höhe wird dann immer z e n t r i e r t g e s e t z t . Den Abstand zwischen den beiden Tabellen kann man entweder mit \verb+\hfill+ erreichen oder man kann auch \verb+\hspace{..}+ verwenden. \medskip {\em Schreibt man:} \begin{verbatim} \begin{tabularM«Op{240pt}«O} \bild{bgaussH8M240pt}{130pt}\\ \end{tabular} \hspace{5pt} \begin{tabularH«Op{85pt}«{}} Hormal Verteilung ( J . C . F . Gau\ss )\\ \end{tabular} \end{v erbat im} \medskip {\em so erh\ält man:} \medskip \begin{tabular}{i{}p{240pt}C{}} \bildibtexl01}{8}{240pt}{130pt}\\ \end{tabular} \hlil \begin{tabular}{C{}p{85pt}«{}} Hormal Verteilung ( J . C . F . Gau\ss )\\ \end{tabular} \medskip Es s o l l t e h i e r nicht untersucht werden, ob diese Anordnung sehr häufig gebraucht wird. Die Absicht war vielmehr zu zeigen, da\ss\ auch diese Positionierung grundsätzlich möglich i s t .
348
Quelltext
\medskip {\bf Bild und Text gleiches Ende unten} \index{Montage von Bildern} \medskip Um zu erreichen, da\ss\ Text und Bild unten gleich enden, ist noch ein zu\-sätz\-li\-ches environment, das environemnt bottom\fussnote{Makro aus infmakro.tex}, erforderlich. Es kann nur innerhalb eines tabular environments angewendet werden. Hier wird erreicht, da\ss\ der in das environment eingeschlossene Text auf den 'bottom' eine Tabelle gestellt wird, deren Länge in dem environment als Parameter angeben werden mu\ss. Zur Realisierung der Positionierung kann dann eines der beiden vorgenannten Modelle verwendet werden. Es wird das Modell mit der Zentrierung verwendet. Diesmal legen wir \verb+\hfil+ zwischen die Tabellen und erreichen auf diese Weise, da\ss\ die volle Textbreite genutzt wird. Der Leerraum bleibt zwischen den Tabellen. {\em Schreibt man:} \begin{verbatim} \beginitabular}{«{}p{240pt}«{}} \bildibgaussH8}{240ptH130pt}\\ \end{tabular} \hfil \begin{tabularM«Op{85pt}«{}} \begin{bottom}{130pt} HorN-mal Ver\-tei\lung (J.C.F."Gau\ss) \end{bottom}\\ \end{tabular} \end{verbatim} Bitte beachten Sie dabei, da\ss\ das environment bottom als Parameter die Höhe der Box (130pt) benötigt. Durch diese Angabe ist es möglich, die Tabelle zunächst auf 130pt festzulegen und dann den Text am unteren Ende zu positionieren. {\em so erh\ält man:} \medskip Ybegin{tabularH«Op{240pt}e{}} \bild{btexl0lH8H240pt}{130pt}\\ \end{tabular} \hfil \begin{tabular}{«{}p{8Spt}e{}} \begin{bottom}{130pt}
Kapitel 10. Schnittstellen von T£X zu anderen Systemen Hor\-mal Ver\-tei\lung (J.C.F."Gau\ss) \end{bottom}-\\ \end{tabular} \medskip {\bf Allgemeinere Positionierungen von Bild und Text} \medskip Es sind jetzt alle Werkzeuge aufgezählt, mit denen sich auch allgemeinere Positionierungen von Bildern und Text erzeugen lassen. Zum einen ist die Lage von Bild und Text nicht festgelegt (ebensogut könnte das Bild rechts stehen) zum anderen ist die Zahl der Boxes nicht beschränkt. Es mu\ss\ lediglich darauf geachtet werden, da\ss\ die Textbreite nicht überschritten wird. In diesem Rahmen ist die Erzeugung von horizontalem Satz von mehreren Bildern und Texten unproblematisch. \index{Montage von Bildern} \s ect ion-CZusammenf assung} Es wurde demonstriert, wie kommunikativ \TeX\ ist. Es kommuniziert praktisch mit allen Systemen, die Daten erzeugen. Damit eignet sich \TeX\ auch als Ausgabe-System von Berichten aus komplexeren kaufmännischen Anwendungen. Die Berichte werden in ASCII geeignet erzeugt (Tabellen z.B. in der Form, wie sie von \TeX\ direkt verarbeitet werden können) und dann von \TeX\ weiterveraxbeitet. Dies erspart erheblichen Programmieraufwand weil das Auszählen von komplizierten Listen aufwendig ist und sieht natürlich besser aus, zumal sich auch umfangreichere Listen auf DIN A4 besser ausgeben lassen. D a es sich bei dem \TeX -System um ein ASCII-System handelt, können die \TeX -Quelltexte auch von anderen Systemen, die ASCII-Dateien erzeugen können, selbst generiert werden. In diesem Bereich sind viele Anwendungen möglich, weil dann ja von einem Anwendungsfall zum anderen andere \TeX -Programme erzeugt werden können. Dies steigert die Flexibilität noch einmal erheblich. \medskip \begin{grauboxH8H0.8\textwidth> \TeX\ ist ein kommunikatives Satzsystem mit der Möglichkeit des Einsatzes auch als komfortable Ausgabe für Berichte. \end{graubox}
349
350
INDEX
INDEX ,4A4S-T|.>\ 19 Abbildungen 89 Abschnitt 22, 23 a r r a y 85 article-style 22, 24 article 28 Artikel 22 A S C I I - E i n g a b e 134 A S C I I - F o r m a t 133 baselineskip 75 Bericht 22 B i l d s c h i r m a n s g a b e 136 bild 143 bold 32 book-style 24 book 22, 28 box, horizontale 70 box, vertikale 70 box 70 b p a p 116 Bruch 82 buch-style 21 buch 22, 28 caption 89, 130 center 72 c h a p t e r 22, 23 circle 104 C o m m a n d 18 d a s h b o x 98 D a t e n b a n k 110 def 137 d e p t h 76 description 45, 49 D o k u m e n t 22 dvi-files für Bilder 144
dvi-Hies 142 dvi-file 133 Einmischen Bilder 143 E i n r a h m u n g 77 einseit 28 e n u m e r a t e 46, 50 e n v i r o n m e n t 45 e p a p 116 e q u a t i o n 81 e r w e i t e r t e Tabelle 63 Fachbuch 22 figure 89 foot.notesize 34 f r a c 82 f r a m e b o x 94 Gleichung, n u m e r i e r t 84 Gleichung 8 1 , 8 3 G r a p h i k p a k e t e n 12 G r a p h i k p a k e t 11 G r a p h i k 11 g r a u b o x 56 g r a u e Box 56 height 76 h line 66 horizontale Linie cline 69 h s p a c e 58 Huge 34 h u g e 34 if-Abfrage 137 ifx 137 if 137 includeonly 131 include 131 I n d e x 128 i n f o r m i x 140
351
INDEX Inhaltsverzeichnis 126 input 131 italics 32 itemize 46, 48 I T M S 140 Kapitel 22, 23 Kennung einer Abb. 89 Klammern 86 Konstante Definition 137 Kreis 104 label 89, 129 L A R G E 34 Large 34 large 34 LaTeX 19 line 100 Linie, gerade 100 loop 137 LR mode 80 makebox 96 makeindex 128 Makros 11 Makro 19 mathematical mode 80 Mathematik 79 mathematischer Text 79 mbox 85 Mehrfachbriefe 138, 140 minipage 95 Montage von Bildern 145,146,147, 148 multicolumn 68 Name TßX 17 newline 58 newpage 58 normalsize 34 nrofif 7 Oberlänge 76 oval 106 Overfull hbox 25 Page Maker 6 pageref 90, 130 papOea 117 papabfr 118
papanf 119 papaus 120 papchor 122 papea 117 papein 120 papend 119 paphlver 121 paphor 121 paphver 121 papliunt 118 papsequ 116 paptanf 119 paptend 120 papver 121 papvhor 122 papwsequ 117 paragraph mode 79 paragraph 22, 24 Parameter-Box 70 Parameter 18 parindent 27 part 22, 23 Pfeil 103 picture Längeneinheit 92 picture 91 Professional Editor 5 Präambel 24 p u t 93 Quellmodul 17 quotation 45, 47 quote 45, 46 Rechteck 94, 96, 98 redirected input 134 Referenz einer Abb. 90 Referenzseite 90 Referenz 129 ref 90, 129 repeat 137 report-style 22, 24 report 28 roman 32 Schlagwortregister 128 Schleife 137 Schnittstellen 133
INDEX
352 scriptsize 34 section 22, 23 Silbentrennung 25 skript-style 24 Skript 22 skript 22, 28 slanted 32 small caps 32 small 34 sqrt 83 Standard-Tabelle 62, 76 Steuersprache 18 Stilarten 22 s u b p a r a g r a p h 23, 24 subsection 22, 24 Subskript 81 subsubsection 22 Summenzeichen 84 Superskript 81, 82 t-jet 11 tabbox 76 Tabellen-Einrahmung 77 Tabellen-Element 75 tabular Korpus 64 tabular parameter 64 tabular Zeilen 64 tabular 64 Teil 22 tiny 34 Titelseiten 126 Titel 126 troff 7 twocolumn 28 twoside 28 typein 134 typeout 136 typewriter 32 Underfull hbox 25 unitlength 92 Unterabschnitt 22, 24 Unterlänge 76 Unterschrift einer Abb. 89 Unterunterabschnitt 22 variable Listen 46
varlist 52 vector 103 Ventura Publisher 6 verbatim 57 verb 57 verstärkte Linien 77 vi 5 vspace 59 Wordstar 5 Wurzel 83 wysiwyg 6 Zeichenarten 20 Zeichen 20 Zeilenabstand 74 zentrieren im Block 73 zentrieren 72