From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil4 | 2306 ++++++++++++++++++++++++ 1 file changed, 2306 insertions(+) create mode 100644 doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil4 (limited to 'doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil4') diff --git a/doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil4 b/doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil4 new file mode 100644 index 0000000..ecca7e6 --- /dev/null +++ b/doc/user-manual/1.7.3-pd/doc/pd.Handbuch.Teil4 @@ -0,0 +1,2306 @@ + EUMEL-Benutzerhandbuch + + TEIL 4: Textkosmetik und Druck + +TEIL 4: Textkosmetik und Druck + + +Vorwort + +Die Textkosmetik-Programme des EUMEL-Systems bieten eine einfach zu er- +lernende und zu bedienende Möglichkeit, Texte für den endgültigen Druck zu +gestalten (Programmtechnisch: #ib#formatieren#ie#). Die Textkosmetik ermög- +licht zusätzlich, Texte in einer Art und Weise zu manipulieren, die auf +preiswerten Terminals zur Zeit nicht darstellbar ist, wie z.B. verschieden- +artige Schriften. "Nebenbei" erledigt die Textkosmetik aufwendige Routine- +arbeiten, wie z.B. Seitennumerierung und die Plazierung von Fußnoten. + +Die Textkosmetik-Programme bearbeiten Dateien, die durch den EUMEL-Editor +erstellt wurden. Darum sollte man sich zuerst mit dem EUMEL-Editor vertraut +machen. + +Für die meisten Aufgaben ist kein Benutzereingriff erforderlich, darum sind +die Programme so konstruiert, daß sie durch in den Text eingefügte Anweisun- +gen gesteuert werden. Einige Arbeiten erfordern den Benutzereingriff, wie +z.B. die Kontrolle von Silbentrennungen bei fremdsprachigen Texten und die +Plazierungen von Seitenenden. Diese Arbeiten werden auf einfache Weise +interaktiv vorgenommen. Die Form der Anweisung ist für die Textkosmetik und +den EUMEL-Drucker gleich und entspricht der ELAN-Syntax. Man beachte den +Unterschied zwischen einem Kommando und einer Text-Anweisung: während ein +Kommando direkt ausgeführt wird, wird eine im Text eingebettete Text-Anwei- +sung (im weiteren kurz "#ib#Anweisung#ie#" genannt) erst nach dem Aufruf von +Textkosmetik-und Drucker-Programmen wirksam. + +Die Wirkungsweise der Textkosmetik-Anweisungen ist leicht zu erlernen und +kann vor allen Dingen stufenweise erfolgen. Deshalb ein guter Rat für An- +fänger: Lesen Sie diesen Teil des Benutzer-Handbuchs erst oberflächlich, so +daß Sie ungefähr Bescheid wissen, welche Möglichkeiten die Textkosmetik-Pro- +gramme bieten. Dann können Sie diejenigen Teile der Textkosmetik auswählen +und bei Bedarf anwenden, die sie für Ihre spezielle Anwendung benötigen. + +Zum Schluß noch eine Warnung: Die Regeln, Konventionen und Wirkungsweisen +des EUMEL-Systems und der Textkosmetik-Programme muß ein Nutzer beherrschen, +will er das System gut nutzen. Der Lernaufwand erfordert etwas Zeit und Mühe, +der aber bei der Benutzung einer jeden Maschine erforderlich ist. Soll nur +ein kurzer Brief geschrieben werden, ist man mit einer Schreibmaschine +besser bedient. Beherrscht man dagegen die Benutzung des EUMEL-Systems +einigermaßen, so kann auch die Erstellung eines kurzen Briefes schneller +erfolgen als auf einer Schreibmaschine. + + + +1. Einführung in die Benutzung der Textkosmetik + +In diesem Kapitel wird eine Übersicht über die verfügbaren Programme der +Textkosmetik gegeben. + + + +Schreiben, Gestalten und Drucken von Texten + +Im EUMEL-System unterscheiden wir zwischen drei Stufen einer Textbehandlung: +Erstellung, Gestaltung und Druck. Die Trennung in verschiedene Arbeitsstufen +hat den Vorteil, daß man sich zu einem Zeitpunkt nur auf einen Arbeits- +schritt konzentrieren muß. + + +a) Texterstellung bzw. Textbearbeitung + +Das Schreiben von Texten wird mit Hilfe des Editors erledigt. In dieser Stufe +der Texterstellung kann ein Benutzer sich ausschließlich auf das Schreiben +und die inhaltliche Korrektheit seines Textes konzentrieren. Wird ein Text +ohne Anweisungen gedruckt, dann erscheint er so, wie er mit dem Editor ge- +schrieben wurde. Bei der Erstellung des Textes können bereits Textkosmetik- +Anweisungen in den Text eingefügt werden. + +Texte sollten im 'Fließtext'-Modus erstellt werden, d.h. Worte, die über +Zeilengrenzen gehen würden, werden ohne Silbentrennung vom Editor in die +nächste Zeile gebracht. + + +b) Textkosmetik bzw. Textgestaltung + +Nachdem ein Text geschrieben wurde, kann man ihn mit Textkosmetik-Programmen +gestalten, ohne ihn inhaltlich zu verändern. Dies kann auch vor oder nach +eventuellen Korrekturen erfolgen. Die Textkosmetik bietet zur Zeit drei +Programme an, die je nach Bedarf eingesetzt werden können: + +I) 'autoform/lineform' formatiert einen Text zeilenweise und vollzieht + eine Silbentrennung. Weiterhin erlaubt 'autoform/lineform' die Verwen- + dung unterschiedlicher Schrifttypen und Schrifthöhen. + +II) 'pageform' gestattet die Formatierung eines Textes in Seiten (drucktech- + nisch: "Paginieren"). Es ist mit 'pageform' u.a. möglich, die Seiten- + einteilung zu bestimmen, eine Seite in Spalten zu formatiern ("Zeitungs- + format"), Zeilen am Anfang bzw. Ende jeder Seite einfügen zu lassen, + eine Seitennummerierung zu erhalten und Fußnoten zu gestalten. + +III) 'index' erlaubt die Erstellung von Stichwort- und Inhaltsverzeichnissen. + + +c) Drucken + +Zu jedem Zeitpunkt der Textbehandlung kann gedruckt werden. Um Drucker mit +unterschiedlichen Eigenschaften betreiben zu können, wurde der (Fachausdruck: +"virtuelle") EUMEL-Drucker als Schnittstelle zwischen dem EUMEL-System und +(echten) Druckern geschaffen. Der EUMEL-Drucker beachtet die gleichen An- +weisungen wie die Textkosmetik-Programme und noch einige zusätzliche, die +nur für die Druckaufbereitung notwendig sind. Spezielle Druckleistungen, wie +z.B. verschiedenartige Schrifttypen, können nur auf besonderen Druckern er- +zeugt werden. Verfügt ein Drucker nicht über eine bestimmte Hardware-Eigen- +schaft, wird die vom Benutzer geforderte Leistung ignoriert. Somit ist es +möglich, Probedrucke für Korrekturen auch auf preiswerten Druckern herzu- +stellen. + +Merke: Der EUMEL-Editor übernimmt die Texterstellung; 'lineform' formatiert +zeilenweise; 'pageform' formatiert seitenweise; 'index' erstellt Stich- und +Inhaltsverzeichnisse; der EUMEL-Drucker ist eine Software-Anpassung an +unterschiedliche Ausgabe-Geräte. + + + +Anweisungen für die Textkosmetik und den Drucker + +In diesem Abschnitt wird beschrieben, wie Anweisungen für die Textkosmetik- +Programme in einen Text eingefügt werden. + +Die Ausführung von 'lineform', 'pageform', 'index' und EUMEL-Drucker wird +mit Hilfe von Anweisungen gesteuert, die man in den Text an geeigneter +Stelle einfügt. Anweisungen haben die Form + + #kommando# + +Beachte, daß jede Anweisung von #-Zeichen eingeschlossen sein muß, damit +die Anweisung vom eigentlichen Text unterschieden werden kann. Beispiele: + + #page# (* aber auch z.B.: # page # *) + #free (3.0)# + #type ("elitedeutsch")# + +Das "#"-Zeichen darf nur für Anweisungen verwandt werden, also sonst nicht +im Text vorkommen. (Wird das "#"-Zeichen benötigt, muß das Zeichen mit ESC # +geschrieben werden. Vergl. auch die Tastenbelegung in der Editor-Beschrei- +bung). + +Die von '#'-Zeichen eingeschlossenen Anweisungen sind so konstruiert, daß +sie - wie alle anderen Kommandos im EUMEL-System auch - der ELAN-Syntax +entsprechen (u.a. müssen sie klein geschrieben werden; Parameter in runden +Klammern; mehrere Parameter werden durch Kommata getrennt; TEXT-Parameter +in Anführungsstrichen; REAL-Parameter mit Dezimalpunkt usw.). Leerzeichen +spielen (außer in TEXT-Parametern) keine Rolle und können zur besseren Les- +barkeit beliebig verwandt werden. + +Man beachte den Unterschied zwischen einer Anweisung und einem Kommando: +während es nur eine beschränkte Anzahl von Anweisungen gibt, die nur von den +Textkosmetik-Programmen ausgeführt werden (also sonst nicht in Programmen +oder Monitor benutzt werden können), kann ein Benutzer ein Kommando in der +Regel in einem Programm, im Editor oder im Monitor verwenden. Hinzu kommt, +daß neben dem vom EUMEL-System zur Verfügung gestellten Kommandos in der +Regel noch installationsspezifische und/oder benutzereigene Kommandos gibt. + +Anweisungen dürfen im allgemeinen überall auf einer Zeile stehen (wie z.B. +in der nächsten Zeile). #on("underline")#Ausnahmen#off("underline")# werden +bei der Beschreibung der Anweisungen speziell erwähnt. Alle Anweisungen +werden zum frühest möglichen Zeitpunkt ausgeführt, haben also u.U. bereits +Auswirkungen auf die Zeile, in der sie stehen. + +Die Zeichen, aus denen eine Anweisung besteht, werden bei der Formatierung +einer Zeile oder Seite nicht mitgezählt und vom EUMEL-Drucker nicht gedruckt. +Eine Zeile, die nur aus Anweisungen besteht, wird ebenso behandelt. + +Merke: Anweisungen steuern die Verarbeitung der Textkosmetik-Programme. Sie +müssen in '#'-Zeichen eingeschlossen sein und dürfen in der Regel überall +auf einer Zeile stehen. Sie werden an der Stelle ausgeführt, an der sie +stehen. + + + +Aufruf der Textkosmetik-Programme + +In diesem Abschnitt wird beschrieben, wie die Textkosmetik-Programme +aktiviert werden. + +Die Textkosmetik-Programme werden durch Kommandos aktiviert (d.h. in der +'gib kommando:'-Ebene). Die Aktivierung (Fachausdruck: "Aufruf") erfolgt - +ebenso wie beim Editor - durch den Namen des Programms und die Angabe +der Datei. Beispiele: + + autoform ("meine datei") + lineform ("text1"); + pageform ("1. Kapitel") + index ("Buch.p") + +Das Programm 'pageform' erzeugt aus der Eingabedatei eine Druckdatei, die +entsprechend umgeformt wird (Fußnoten werden an die richtige Stelle plaziert, +Seitenummern eingesetzt u.a.m.). Diese Druckdatei bekommt den Namen der +angegebenen Eingabedatei mit dem Zusatz '.p'. Beispiel: 'pageform ("text")' +erzeugt eine Datei 'text.p'. Es ist auch erlaubt, 'pageform' durch die Angabe +eines zweiten Parameters mitzuteilen, wie die Druckdatei heißen soll: + + pageform ("mein text", "erste Druckdatei") + +Ähnlich verhält es sich mit dem Programm 'index', welches bis zu 9 Stichwort- +bzw. Inhaltsverzeichnisse erstellen kann. Da in den Verzeichnissen die +Seitennummern aufgeführt werden, kann 'index' nur Druckdateien bearbeiten. +Beispiel: + + index ("handbuch.p") + +Das Programm 'index' erstellt die angeforderten Verzeichnisse in Dateien, +die mit dem Zusatz '.i' gekennzeichnet werden. Beispiele (für den +obigen Aufruf): + + 'Handbuch.i1', 'Handbuch.i2' + +usw.. + +Merke: Die Textkosmetik-Programme werden durch Kommandos aufgerufen mit der +Angabe der Dateinamen als Parameter. + + + +Vorzeitiger Abbruch und Fehlermeldungen + +Alle Textkosmetik-Programme können vorzeitig vom Benutzer abgebrochen werden. +Eventuelle Fehlermeldungen werden durch den Paralleleditor angezeigt. + +Durch die Taste SV und das Supervisor-Kommando 'halt' können die Textkosme- +tik-Programme jederzeit vorzeitig abgebrochen werden. Die Eingabedatei steht +dann unverändert zur Verfügung. Ein vorzeitiger Abbruch kann notwendig sein, +wenn ein Programm mit einer falschen Datei aufgerufen wurde oder zu viele +Fehler gemeldet wurden. + +Alle Textkosmetik-Programme melden Fehler, wenn eine oder mehrere Anweisun- +gen falsch benutzt werden. Die Fehlermeldungen werden auf dem Bildschirm +angezeigt. Bei Beendigung eines Programms wird - falls Fehler entdeckt +wurden - die Fehlermeldungen im oberen Fenster des Paralleleditors angezeigt, +während im unteren Fenster die Eingabedatei zur Korrektur angeboten wird. + +Merke: Vorzeitiger Abbruch eines Programms durch SV und 'halt'. (Die Eingabe- +datei steht unverändert zur Verfügung.) Fehlermeldungen werden im Parallel- +editor angezeigt. + + + +2. Zeilenweises formatieren: 'autoform/lineform' + +Die Programme 'autoform' oder 'lineform' formatieren einen Text zeilenweise +(ggf. mit Silbentrennung), unter Berücksichtigung von Schrifttyp und Zeilen- +breite. + + + +Eine Datei formatieren: 'autoform/lineform'-Kommando + +Die Programme 'lineform/autoform' werden unter Angabe der Datei aufgerufen. +Beispiel: + + lineform ("meine datei") + autoform ("Brief vom 24.12.") + + + +Unterschied von 'autoform' und 'lineform' + +Zur Zeilenformatierung werden zwei Programme angeboten, die sich nur in der +Art der Behandlung von Silbentrennungen unterscheiden: + +a) autoform: + Zeilenformatierung mit automatischer Silbentrennung. 'autoform' sollte + nur bei deutschen Texten eingesetzt werden, weil die Silbentrennung bei + fremdsprachigen Texten nach anderen Regeln erfolgen muß. + +b) lineform: + Zeilenformatierung mit Silbentrennung "per Hand", wobei (nach deutschen + Trennregeln) ein sinnvoller Trennvorschlag gemacht wird. Die Trennstelle + kann interaktiv soweit verschoben werden, wie das zu trennende Wort noch + auf die Zeile paßt. + +Merke: 'autoform' nimmt eine automatische Silbentrennung vor, während +'lineform' die #ib#Silbentrennung "per Hand"#ie# erlaubt. + + + +Übersicht über 'autoform'/'lineform' + +'autoform'/'lineform' formatieren eine Datei zeilenweise. Dabei werden +Zeilen möglichst vollständig aufgefüllt. + +'autoform'/'lineform' haben im wesentlichen vier Aufgaben: + +a) Auffüllen von Zeilen: + 'autoform'/'lineform' können besonders gut nach Korrekturen eingesetzt + werden, bei denen - nach Einfügungen oder Löschungen - nicht vollstän- + dige oder zu lange Zeilen in der Datei stehen bleiben können. + +b) Erstellen von Zeilen mit unterschiedlichen Schrifttypen: + Werden in einer Datei mehrere Schriftarten ('type'-Anweisung) verwandt, + berechnen 'autoform'/'lineform' nach der eingestellten Zeilenbreite die + Anzahl Zeichen, die auf eine Zeile passen. + +c) Erstellen von unterschiedlichen Zeilenlängen: + Manchmal ist es notwendig, die Breite von Zeilen zu verändern ('limit'- + Anweisung). Dies wird von 'autoform'/'lineform' berücksichtigt. + +d) Silbentrennung: + Automatische ('autoform') und interaktive Silbentrennung ('lineform'). + Sofern notwendig, werden Silbentrennungen rückgängig gemacht. + +'autoform'/'lineform' beachten nur wenige Anweisungen: + +Anweisung Zweck + + limit Zeilenbreite einstellen + off Schrifttyp-Modifikation ausstellen + on Schrifttyp-Modifikation einstellen + type Schrifttyp einstellen + + +'autoform'/'lineform' akzeptieren als Eingabe eine Datei und verändern diese. +Dafür wird eine (interne) Zwischendatei benötigt. Deshalb ist darauf zu +achten, daß noch ausreichend Platz auf dem System ist, der jedoch nur +zwischenzeitig für den Formatierungsschritt benötigt wird. + +'autoform'/'lineform' fragen nach ihrem Aufruf an, auf welche Zeilenbreiten +und mit welchem Schrifttyp die Datei formatiert werden soll. Diese Informa- +ionen werden von 'autoform'/'lineform' in Form von 'limit'- und 'type'-An- +weisungen in der Datei vermerkt, so daß die Anfragen bei weiteren Datei- +Bearbeitungen entfallen. + +Bei Zeilen, die länger als die angegebene Zeilenbreite sind, werden die- +jenigen Worte, die über die Zeilenbreite hinausgehen, in die nächste Zeile +umgebrochen. Kürzere Zeilen werden aus der nachfolgenden Zeile bis zur +Zeilenbreite aufgefüllt. Worte werden jedoch nicht über Absatzgrenzen hinweg +verschoben. Deshalb ist vor Anwendung von 'lineform' darauf zu achten, daß +Absätze richtig markiert wurden. Fehlende Markierungen sollte man nachträg- +lich einfügen (RETURN am Ende einer Zeile), andernfalls werden Zeilen über +Absatzgrenzen zusammen gezogen. Dies gilt insbesondere für Tabellenzeilen. + +Einrückungen (Leerzeichen am Anfang einer Zeile) werden von 'autoform'/'line- +form' ebenfalls bei der Formatierung von Zeilen eingehalten. +Dabei behandelt die Prozedur 'autoform'/'lineform' Einrückungen in einem +speziellen Fall nicht so, wie ein Benutzer es erwarten würde. Bei ein- +zeiligen Absätzen wird - falls die Zeile länger als das eingestellte Limit +ist und der "überschüssige" Teil in eine neue Zeile umgebrochen werden muß +- die Einrückung der aktuellen Zeile beibehalten. Das ist meist das +"richtige" Verhalten, während es bei Aufzählungen falsch ist, weil die +zweite Zeile einer Aufzählung oft eingerückt wird. Beispiel: + + - Diese Zeile war zu lang und wurde unter + das "-"-Zeichen umgebrochen. + +Man sollte daher - nach Verarbeitungsende - die Datei nach solchen Fällen +durchsuchen. + +Merke: 'autoform'/'lineform' vervollständigen zu kurze Zeilen oder brechen +zu lange Zeilen um. Dabei werden Absätze beachtet. + + + +Interaktive Silbentrennung mit 'lineform' + +'lineform' trennt Silben interaktiv. 'lineform' sollte deshalb für fremd- +sprachige Texte angewandt werden. + +Paßt ein Wort nicht mehr ganz auf eine Zeile, dann wird dieses Wort inter- +aktiv zur Trennung angeboten. Die Umgebung dieses Wortes wird zur Er- +leichterung des Trennvorgangs mit angezeigt. Das Trennzeichen erscheint an +einer sinnvollen Stelle im zu trennenden Wort. Beispiel: + + Text vor dem Trennwort; das + Trenn-wort steht mit nachfolgendem Text in dieser Zeile + +Der Benutzer hat die Möglichkeit, das Trennzeichen mit Hilfe der Positionie- +rungstasten innerhalb des "Trennbereichs" (das ist der markierte Bereich, der +noch auf die Zeile passen würde), zu verschieben. An der gewünschten Trenn- +position (der Wortteil, der noch auf die Zeile kommen soll, steht links vom +Trennstrich) kann die RETURN-Taste betätigt werden. RETURN zeigt dem Pro- +gramm 'lineform' an, daß an dieser Stelle die Trennung erfolgen soll. 'line- +form' fügt an den ersten Teil des Wortes das "-"-Zeichen an und schreibt den +abgetrennten Wortteil in die nächste Zeile. +Hinweis: Das Trennzeichen "-" hat einen anderen Code als der "normale" +Bindestrich (vergl. dazu die Codetabelle), da Trennungen ggf. bei erneuten +Änderungen wieder rückgängig gemacht werden müssen. + +Es stehen folgende Operationen bei der interaktiven Trennung zur Verfügung: + + Taste Bedeutung + + RETURN Trennen. + LINKS Trennstelle um ein Zeichen nach links verschieben. + RECHTS Trennstelle um ein Zeichen nach rechts verschieben. + HOP LINKS Trennstelle vor das Wort setzen (das Wort wird an dieser + Position nicht getrennt). + HOP RECHTS Trennstelle in die ursprüngliche Position setzen. + BLANK Trennzeichen wird von "-" auf " " umgeschaltet. + Dies kann verwandt werden, um Worte, die nicht zusammen + geschrieben werden sollen, beim Trennvorgang in zwei + Worte aufzuspalten. + - Schaltet das Trennzeichen von Leerzeichen (" ") wieder auf + den Trennstrich ("-") um. + +Zwei Sonderbedingungen sind bei der interaktiven Trennung noch zu beachten: + + - Bei Worten mit Bindestrich wird die Trennstelle hinter dem Bindestrich als + Leerzeichen angezeigt. Die Trennstelle vor dem Bindestrich wird bei + weiterem Positionieren nach links übersprungen. Das verhindert, daß Worte + mit führendem Bindestrich im Text erscheinen. + + - Bei einer Trennposition zwischen den Zeichen "ck" wird das Zeichen "c" in + ein "k" umgewandelt. Beispiel: + + Druk-ker +Hinweis: Das umgewandelte "k" hat einen anderen Code als das "normale" +"k" (vergl. dazu die Codetabelle). Das ist notwendig, um bei späteren +Änderungen solche Trennungen wieder rückgängig machen zu können. + +Sofern für die Zeilenformatierung notwendig, macht die Prozedur 'lineform' +bereits erfolgte Trennungen rückgängig (das Trennzeichen wird entfernt und +die Wortteile wieder zusammengefügt), wenn sich das getrennte Wort nicht mehr +am Zeilenende (etwa durch Korrekturen oder Veränderungen der Zeilenbreite) +befinden sollte. + +Merke: 'lineform' bietet Worte zur Silbentrennung an. Die "Trennstelle" kann +durch den Nutzer verschoben werden. + + + +Automatische Silbentrennung mit 'autoform' + +'autoform' arbeitet wie 'lineform', nur werden die Silbentrennungen auto- +matisch vorgenommen. + +Ist eine Silbentrennung bei der Formatierung notwendig, übernimmt 'autoform' +diese automatisch und gibt diese zur Kontrolle auf dem Bildschirm aus. Die +automatische Silbentrennung arbeitet mit einer hohen Trenngüte; allerdings +nur für deutsche Texte. Trotzdem kann es vorkommen, daß einige Trennungen +(insbesondere bei Fremdworten) falsch vorgenommen werden. In diesem Fall +muß man diese nachträglich mit dem Editor korrigieren. Dabei sollte man das +oben erwähnte Trennzeichen verwenden (ESC -). + + +Wenige oder viele Silbentrennungen: Trennpunkt einstellen + +Viele Silbentrennungen in einem Text erschweren das Lesen. Würde man nun +keine Silbentrennungen vornehmen, wird der rechte Rand stark "ausgefranst" +oder beim Blocksatz ("rechter Randausgleich") müssen viele Zwischenräume +zwischen den Worten eingefügt werden. Durch das Kommando + + hyphenation width (prozentuale angabe) + +kann der Trennpunkt, ab dem die Silbentrennung einsetzen soll, eingestellt +werden. Die Angabe erfolgt in Prozenten der Zeilenbreite. Beispielsweise +stellt 'hyphenation width (5)' den Trennpunkt auf 5% der Zeilenbreite ein +(Voreingestellt ist 7). Bei einer Angabe von 20 werden sehr wenige Worte zur +Silbentrennung angeboten, während bei einer Angabe von '3' ungefähr jede +dritte Zeile eine Silbentrennung versucht wird. Die Einstellung des Trenn- +punktes bestimmt also, ab wann ein Wort zur Silbentrennung untersucht wird. +Andererseits bestimmt die Einstellung auch, wieviel Zwischenraum zwischen +Worten eingefügt werden muß, um einen rechten Randausgleich zu erzielen. + +Merke: 'hyphenation width' bestimmt, an welchem Punkt Worte zur Silbentren- +nung angeboten werden. + + +Mit unterschiedlichen Schriften schreiben: 'type' + +Unterschiedliche Schrifttypen#ie# werden mit der 'type'-Anweisung ange- +fordert. + +Es ist möglich, mit 'lineform' verschiedenartige Schrifttypen (kurz Typen +genannt) verarbeiten zu lassen. Jeder Typ hat - neben dem speziellen Aus- +sehen der Zeichen - die Eigenschaft, daß jedes Zeichen eine bestimmte Breite +und Höhe hat. + +Es gibt zwei Arten von Schriften: bei äquidistanten Schriften sind alle +Zeichen gleich breit (wie bei einer "normalen" Schreibmaschine). Proportio- +nalschrift findet man in gedruckten Büchern. Hier haben unterschiedliche +Zeichen auch unterschiedliche Breiten. Die Zeichen ".", "i", "!" sind z.B. +schmaler als die Zeichen "w", "o", "m" usw. + +Mit der Anweisung + + type ("schriftname") + +kann auf einen anderen Schrifttyp umgeschaltet werden (auch mehrmals inner- +halb einer Zeile). Dieser Typ gilt solange, bis wieder ein neue 'type'-An- +weisung gegeben wird. Beispiel: + + \#type("basker12")\#Jetzt schreiben wir in einer Schrift. Und jetzt + schalten wir um auf\#type ("modern12")\# noch eine andere Schrift. + +Welche Schriftarten zur Verfügung stehen, hängt natürlich von dem verfügbaren +Drucker ab. Sie können die Schrifttypen bei Ihrer EUMEL-Installation er- +fragen. +Schrifttypen können modifiziert gedruckt werden (vergl. dazu den nächsten Ab- +schnitt). Durch die Angabe einer 'type'-Anweisung werden alle Modifikationen +ausgeschaltet. + +Merke: Eine 'type'-Anweisung gibt einen gewünschten Schrifttyp an. + + + +Kursiv, fett, unterstrichen, revers drucken: 'on/off' + +Mit der 'on'- und 'off'-Anweisung ist es möglich, einen Schrifttyp zu modi-f +izieren. Die Schrift wird zwar nicht gewechselt, aber verändert gedruckt. +Zur Zeit ist unterstrichen, fett, kursiv und der Druck von weiß auf schwarz +möglich (abhängig vom eingesetzten Drucker). + +Die 'on'/'off'-Anweisung wirkt wie ein Schalter, der die gewünschte Schrift- +typ-Modifikation ein- bzw. ausschaltet. Beispiel: + +... Das EUMEL-System ermöglicht es, +\#on("italic")\#kursiv\#off("italic")\# +und +\#on("underline")\#unterstrichen\#off("underline")\# +und +\#on("bold")\#fett\#off("bold")\# +und +\#on("revers")\#revers\#off("revers")\# +zu schreiben. + +Die Anweisung 'on' schaltet die Modifikation ein, 'off' schaltet sie aus. +Folgende Modifikationen sind z.Zt. implementiert: + + bold (Fettdruck) + italic (Kursivdruck) + underline (Unterstreichung) + revers (Weiß auf Schwarz) + +Dabei ist folgendes zu beachten: + +a) Ein 'type'-Anweisung schaltet eine Modifikation immer aus. + +b) Eine Modifikation sollte nicht über einen Absatz gehen ('lineform' er- + zeugt eine Warnung). Somit ist es gewährleistet, daß das Ausschalten + einer Modifikation nicht vergessen wird. + +c) Nicht alle Drucker können die hier angegebenen Modifikationen auch + drucken. Bitte erkundigen Sie sich bei Ihrer Installation. + +d) Welche Modifikationen gleichzeitig eingeschaltet werden können, ist + ebenfalls druckerabhängig. + +Merke: Die Anweisungen 'on' und 'off' schalten eine Modifikation an- und aus. + + + +Gesperrt schreiben + +Wird ein Wort g e s p e r r t geschrieben, muß natürlich verhindert werden, +daß dieses Wort beim Formatieren getrennt wird. Andere Worte, wie z.B. in +Formeln, sollten ebenfalls zusammen auf eine Zeile geschrieben werden (z.B. +'sin (x)'). + +Dies kann man erreichen, indem man nicht das Leerzeichen zwischen die Zeichen +schreibt, denn das Leerzeichen bedeutet für 'autoform'/'lineform' immer das +Ende eines Wortes. Man nimmt stattdessen ESC blank. ESC blank erscheint auf +dem Bildschirm zur besseren Identifizierung als Unterstreichungsstrich (oder +invers:  ) Beim Drucken wird jedoch wieder ein Leerzeichen produziert. +Beispiel: + + g_e_s_p_e_r_r_t (auf dem Terminal) + g e s p e r r t (auf Papier) + +Wir nennen dieses Leerzeichen auch "geschütztes Leerzeichen". + +Merke: G e s p e r r t wird mit dem geschützten Leerzeichen geschrieben. + + + +Tabellen und Aufzählungen schreiben + +Aufzählungen und Tabellen werden automatisch richtig formatiert und gedruckt, +wenn man sich an einige einfache Regeln hält. + +Verwendet man eine Proportionalschrift beim Tabellenschreiben, so sind die +Spalten in der Regel unterschiedlich breit, selbst wenn eine gleiche Anzahl +Zeichen in jeder Spalte geschrieben wird. Dies kann man durch das Schreiben +von einem "Doppelblank" vermeiden. Beispiel: + + nnnnn | zweite Spalte + mmmmm | steht nicht untereinander + +aber mit Doppelblank: + + nnnn | zweite Spalte + mmmm | stehen jetzt untereinander + +Das Doppelblank dient 'lineform/autoform' und dem Drucker als Zeichen, daß +die Positionen speziell berechnet ('lineform') und beim Druck berücksichtigt +werden müssen. In seltenen Fällen (insbesondere beim Einsatz von Schriftypen, +die in der Größe stark voneinander abweichen) kann es vorkommen, daß diese +Tabellenautomatik nicht funktioniert und Spalten übereinander gedruckt +werden. In solchen Fällen muß man die Anzahl der trennenden Doppelblanks +erhöhen. + +Praktischer Tip: +Beachte, daß für das Funktionieren der "Tabellenautomatik" bei proportionalen +Schriften es erforderlich ist, das jede Tabellenzeile eine Absatzzeile ist. +Man sollte diese Zeilen vor dem Druck daraufhin überprüfen oder durch 'line- +form/autoform' die Datei bearbeiten lassen. Sollte durch die zeilenweise +Formatierung einmal zwei Zeilen zusammengezogen sein (wegen fehlender Absatz- +kennzeichnung), kann man diese leicht mit dem Editor wieder "auseinander- +brechen" (zweimaliges HOP RUBIN). + +Ähnliches gilt bei Aufzählungen. Beispiel: + + 1) Das ist die erste Aufzählung. + Dieser Satz wird bündig gedruckt. + 2) Hier auch. + +Auch in solchen Fällen wird der gedruckte Text in der Regel richtig einge- +rückt. Die Aufzählungsautomatik wirkt nur nach einem Absatz und bei Propor- +tionalschriften. Die Regeln sind etwas kompliziert, so daß sie hier nicht +einzeln aufgeführt werden (siehe S. #topage("block")# unter dem Kommando +'block'). Trifft man auf einen der seltenen Fälle, wo die Einrückungsautoma- +tik nicht funktioniert, kann man immer das Doppelblank der Tabellenautomatik +verwenden. + +Merke: Die Tabellen- und die Aufzählungsautomatik sorgen dafür, daß Tabellen- +spalten und Aufzählungen bündig gedruckt werden. + + + +Zeilenbreite einstellen: 'limit' + +Mit der 'limit'-Anweisung kann die Zeilenbreite eingestellt werden. + +Die 'limit'-Anweisung gibt (in cm) an, wie breit die Zeile sein soll. Be- +achte, daß die Angabe der Zeilenbreite nichts mit dem LIMIT-Kommando des +Editors zu tun hat. Dieses gibt an, wieviel Zeichen einer äquidistanten +Schrift beim Schreiben auf eine Bildschirmzeile passen sollen. + +Die Zeilenbreite wird zusammen mit dem Schrifttyp beim erstmaligen Aufruf von +'autoform'/'lineform' interaktiv erfragt und als 'limit'-Anweisung (zusammen +mit der 'type'-Anweisung) in die erste Zeile der Datei eingetragen. Es kann +in einer Datei mehrmals verändert werden. Die Zeilenbreite gilt immer ab der +Zeile, in der die 'limit'-Anweisung steht. Beispiel: + + \#limit(10.0)\#Mit der 'limit'-Anwei­ + sung kann man Paragraphen in einem + anderen Format leicht gestalten. + Die rechte Schreibgrenze wird durch + die 'limit'-Anweisung eingestellt, + während der linke Rand durch eine + entsprechende Einrückung gestaltet + wird. \#limit(13.5)\# + +Man beachte, daß als Parameter in der 'limit'-Anweisung eine Zahl mit Dezi- +malpunkt angegeben werden muß. + +Die folgende Tabelle gibt sinnvolle 'limit'-Einstellungen für die am +häufigsten verwandten Papiergrößen an: + + + Format 'limit' Verbleibender + (Zeilenbreite) Rand + + DIN A4 16.0 cm je 2.65 cm + + DIN A5 12.0 cm je 1.42 cm + + DIN A4 quer 25.0 cm je 2.35 cm + +Merke: Die 'limit'-Anweisung stellt die Zeilenbreite in cm ein, während das +'LIMIT'-Kommando des Editors die Zeilenbreite in Anzahl Zeichen angibt. + + + +3. Seitenweises formatieren: 'pageform' + +'pageform' formatiert eine Datei seitenweise, wobei Routinearbeiten, wie +etwa die Plazierung von Fußnoten, Seitennummerierung usw. ebenfalls von +'pageform' erledigt werden. + + + +Eine Datei in Seiten teilen: 'pageform'-Kommando + +Das Programm 'pageform' wird mit dem Kommando + + pageform ("Buch") + +aufgerufen. 'pageform' erzeugt aus der Eingabedatei (hier: 'Buch') eine +Druckdatei, deren Name durch ein angehängtes '.p' gebildet wird (in unserem +Beispiel: 'Buch.p'). + + +Übersicht über die Arbeitsweise von 'pageform' + +'pageform' erzeugt aus einer Eingabedatei eine Druckdatei, wobei z.B. Fuß- +noten und Seitennummern an den richtigen Stellen eingefügt werden. + +'pageform' akzeptiert als Eingabe eine Datei und produziert eine neue Datei, +die "Druckdatei". Die Druckdatei besteht aus der Eingabedatei mit ggf. neu +eingefügten Zeilen. Die eingesetzten Zeilen stammen aus 'head'-, 'bottom' +oder 'footnote'-Anweisungen. Dadurch erhöht sich die Zeilenanzahl der Datei +(bis zu 15%). + +Durch 'pageform' ist es möglich, am Anfang und am Ende jeder Seite Zeilen +einfügen zu lassen. Solche Textzeilen aus Kopf- bzw. Fußbereichen sowie +Zeilen aus Fußnoten werden in der Druckdatei in jede Seite an entsprechender +Stelle eingefügt. + +Es ist möglich, in Kopf- oder Fußzeilen Seitennummern aufzunehmen. Diese Sei- +tennummern werden von 'pageform' bei Seitenwechseln automatisch erhöht und +an eine vom Benutzer gekennzeichnete Stelle eingesetzt. Fußnoten können auch +durch Nummern gekennzeichnet werden. Querverweise sind ebenfalls möglich. + +'pageform' berechnet die Anzahl von Zeilen, die auf eine Seite passen sollen, +aus den Angaben für die Seitenlänge, eingestellten Zeilenvorschub und even- +tuelle Kopf-, Fuß- und Fußnotenzeilen. Bei der Berechnung wird von der je- +weiligen Schrifthöhe des eingestellten Schriftyps ('type'-Anweisung) ausge- +gangen. Dann zeigt 'pageform' das errechnete Seitenende auf dem Bildschirm +an. Das Seitenende kann interaktiv verschoben werden, um es an eine ge- +wünschte Stellen zu plazieren oder es können Leerzeilen eingefügt/gelöscht +werden, um Seiten gleich lang zu machen. Zusätzlich ist es auch möglich, +Seiten in Spalten ("Zeitungsdruck") aufzuteilen und diese interaktiv zu +formatieren. + + Anweisungs-Übersicht + + bottom Fußzeilen *) + bottomeven " *) + bottomodd " *) + columns Spaltenformatieren + columnsend Spalten ausschalten + count Zähler erhöhen und einsetzen + end Beendet 'head', 'bottom' und *) + 'foot'-Bereiche + foot Fußnote *) + free Zeilen freilassen *) + goalpage Seitenverweis (Ziel) + head Kopfzeilen *) + headeven " *) + headodd " *) + linefeed Zeilenabstand *) + page Neue Seite anfangen *) + pagelength Seitenlänge setzen + pagenr Seitennummer bzw. -zeichen + setcount Zähler setzen + topage Seitenverweis (Ursprung) + value Wert des Zählers einsetzen + +*) Diese Anweisungen dürfen nur allein oder als letztes auf einer Zeile stehen. + + +Merke: 'pageform' erlaubt nicht nur eine Seitenformatierung, sondern auch +Spaltenformatierung, Fußnoten-Plazierung, Kopf- und/oder Fußzeilen, Seiten- +numerierung und Querverweise. 'pageform' erzeugt eine neue Datei, die +"Druckdatei" mit dem Namen der Eingabedatei, an den ".p" angefügt wird. + + + +Seitenende interaktiv verschieben#ie# mit 'pageform' + +In diesem Abschnitt wird beschrieben, welche interaktiven Möglichkeiten +'pageform' bietet, um Seiten zu gestalten. + +Auf dem Bildschirm wird das von 'pageform' errechnete jeweilige Seitenende +unter Angabe der aktuellen Seitennummer angezeigt. Das Seitenende erscheint +ungefähr in der Mitte des Bildschirmes und wird durch eine von 'pageform' ge- +kennzeichnete Zeile markiert, die auch - nach erfolgter Seitenformatierung - +in der Druckdatei zu sehen ist. (Der EUMEL-Drucker druckt diese Zeile nicht.) +Beispiel: + +\#page\#\#--------------------- Ende Seite 1 ---\# + +Über der Markierung erscheinen die letzten Zeilen der bereits verarbeiteten +Seite, darunter Zeilen der nächsten Seite. Es ist nun mit Hilfe der Positio- +nierungstasten möglich, die Markierung und damit das Seitenende nach "oben +zu verschieben". Somit kann vermieden werden, daß logisch zusammengehörender +Text auseinandergerissen wird und z.B. "Waisenkinder" entstehen (letzte +Zeile eines Abschnittes kommt noch auf die neue Seite). + +Bei der interaktiven Seitenformatierung kann die Markierung nicht über das +errechnete Ende einer Seite nach "unten" oder über das vorherige, bereits +verarbeitete Seitenende nach "oben" verschoben werden. Die Markierung kann +auch nicht in einen Fußnotenbereich plaziert werden, weil Fußnoten sinn- +vollerweise nicht geteilt werden sollten. + +Entstehen Leerzeilen bei der Seitenformatierung am Anfang einer Seite (z.B. +durch Plazierung des Seitenendes zwischen zwei Absätzen), so werden diese +von 'pageform' automatisch aus der Druckdatei entfernt. Will man Leerzeilen +am Anfang einer Seite#ie#, dann sollte das 'free' in Verbindung mit der +'page'-Anweisung verwandt werden. + +Zusätzlich ist es möglich, Leerzeilen in eine Seite der Druckdatei einzu- +fügen und/oder beliebige Zeilen zu löschen (vergl. b)). + +Folgende Operationen stehen bei der interaktiven Seitenformatierung zur +Verfügung: + +a) Seitenende verschieben: + +'pageform' berechnet das "rechnerische" Seitenende und zeigt dieses auf dem +Bildschirm durch die Markierung an. Die Markierung kann interaktiv verschoben +werden: + + Taste Bedeutung + + RETURN Seitenende an diese Stelle plazieren. + OBEN Seitenende eine Zeile nach oben verschieben. + UNTEN Seitenende eine Zeile nach unten verschieben + (wenn vorher nach "oben" verschoben). + HOP OBEN Seitenende um einen Bildschirm nach oben verschieben. + HOP UNTEN Seitenende um einen Bildschirm nach unten verschieben. + +b) Leerzeilen einfügen und/oder Zeilen löschen + +Ergeben die Berechnungen von 'pageform', daß der bearbeitete Text nicht +richtig auf der Seite plaziert ist, können in die Seite (der Druckdatei!) +Leerzeilen eingefügt und/ oder Zeilen gelöscht werden. Dies kann beispiels- +weise sinnvoll sein, wenn durch die Löschung einer Zeile ein Absatz noch auf +die Seite passen würde oder durch die Einfügung von Leerzeilen ein Absatz +auf der letzten Zeile der Seite endet. Oft ist es auch sinnvoll, daß alle +Seiten gleich lang sind. In diesem Fall sollten vor Kapiteln und Absätzen +Leerzeilen eingefügt oder gelöscht werden. + +Um Leerzeilen einzufügen und/oder Zeilen zu löschen, muß die Markierung (wie +unter a) beschrieben) an die Stelle plaziert werden, an der die Änderung +vorgenommen werden soll. Abschließend berechnet 'pageform' die Seite erneut. + + Taste Bedeutung + + HOP RUBIN Leerzeilen einfügen. + Anstatt der Markierung können durch (u.U. mehrmaliges) + RETURN Leerzeilen eingefügt werden. HOP RUBIN beendet + den Vorgang (wie Zeileneinfügen im Editor). + + HOP RUBOUT Zeile löschen. + Die Zeile unmittelbar oberhalb der Markierung wird + gelöscht. + +'page'-Anweisung bestätigen/löschen + +Wird von der Prozedur 'pageform' eine 'page'-Anweisung angetroffen, so wird +das so gewünschte Seitenende auf dem Bildschirm des Benutzers angezeigt. Die +'page'-Anweisung kann entweder bestätigt oder gelöscht werden. + + Taste Bedeutung + + RETURN Seitenende bestätigen. + + RUBOUT 'page'-Anweisung ignorieren. Die Prozedur 'pageform' + bearbeitet in diesem Fall die Datei weiter, als ob + keine 'page'-Anweisung angetroffen wurde. + +Merke: Ein Seitenende wird von 'pageform' auf dem Bildschirm angezeigt. Dies +kann man mit den Positionierungstasten verschieben. Es können in die Seite +Leerzeilen eingefügt oder Zeilen gelöscht werden. Eine 'page'-Anweisung kann +man bestätigen oder löschen. + + + +Seitenlänge einstellen: 'pagelength' + +'pageform' ist auf eine Seitenlänge von 25.0 cm eingestellt (entspricht +einem DINA4-Schreibfeld). Ist eine andere Seitenlänge erwünscht, muß die +'pagelength'-Anweisung in den Text eingefügt werden. + +Beispiel: + + \#pagelength (20.0)\# + +stellt die Seitenlänge auf 20 cm ein. Man beachte, daß der Dezimalpunkt bei +der Seitenlänge mit angegeben werden muß. + +Die folgende Tabelle gibt die Seitenlänge für die am häufigsten gewählten +Papiergrößen an: + + Format Seitenlänge oberer und + (in cm) unterer Rand + + DIN A4 25.0 je 2.35 cm + + DIN A5 18.0 je 2.15 cm + + DIN A4 quer 18.0 je 2.15 cm + +Merke: Mit der 'pagelength'-Anweisung kann die Seitenlänge (in cm) einge- +tellt werden. + + + +Zeilenabstand einstellen: 'linefeed' + +Die 'linefeed'-Anweisung stellt einen Zeilenvorschub relativ zu der Schrift- +höhe des eingestellten Schrifttyps ein. + +'pageform' berechnet die Anzahl Zeilen/Seite immer in Abhängigkeit vom einge- +stellten Schrifttyp. Hat man z.B. eine Schrift gewählt, die doppelt so hoch +wie z.B. eine Schreibmaschinenschrift ist, bekommt man auch entsprechend +weniger Zeilen auf eine Seite. Um diesen Berechnungsvorgang braucht sich ein +Nutzer in der Regel nicht zu kümmern. + +Anders verhält es sich, wenn ein anderer Zeilenvorschub als der "normale" +Abstand zwischen Zeilen vorgenommen werden soll. In diesem Fall muß man wis- +sen, daß die "Höhe" einer Zeile sich aus der Schrifttypgröße errechnet plus +(ca.) 10%, welches den Abstand zwischen den Zeilen darstellt. + +Soll nun ein anderer Abstand eingestellt werden, wird die 'linefeed'-An- +weisung eingesetzt. Der Parameter gibt an, um wieviel eine Zeilenhöhe erhöht +oder verringert werden soll. Beispiel: + + \#linefeed (2.0)\# + +Nach Antreffen dieser Anweisung wird die Zeilenhöhe durch 2 * eingestellte +Schrifttypgröße errechnet. Es wird also der Zeilenabstand zwischen den Zeilen +entsprechend vergrößert, da die Schriftgröße gleich bleibt. Dies entspricht +dem zweizeiligen Schreiben bei einer Schreibmaschine (wenn man davon absieht, +daß hier auch unterschiedliche Schrifthöhen berücksichtigt werden). Ein +1 1/2 zeiliges Schreiben wäre mit + + \#linefeed (1.5)\# + +einzustellen. + + \#linefeed (0.5)\# + +stellt die Zeilenhöhe = 1/2 * eingestellte Schrifthöhe ein, so daß die Zeilen +teilweise ineinander gedruckt werden. Bei 'linefeed (0.0)' werden Zeilen +übereinander gedruckt (druckerabhängig). + +Man beachte, daß die Angabe in der 'linefeed'-Anweisung relativ erfolgt. Bei +allen anderen Anweisungen der Textkosmetik werden Angabe in Zentimeter ver- +langt. Die 'linefeed'-Anweisung bildet somit eine Ausnahme (von der Regel). + +Merke: Wieviel Zeilen auf eine Seite passen, ist von den Höhen der einge- +stellten Schrifttypen abhängig. Diese Berechnung erfolgt automatisch durch +'pageform'. Die 'linefeed'-Anweisung stellt einen Zeilenvorschub relativ zum +eingestellten Schrifttyp ein. + + + +Platz freihalten: 'free' + +Mit der 'free'-Anweisung kann man einen zusammenhängenden Teil auf einer +Seite freihalten. + +Die 'free'-Anweisung wird an solchen Stellen im Text eingesetzt, an denen - +nach dem Druck - Zeichnungen, Tabellen und ähnliches eingeklebt werden sol- +len. Es wird der in der 'free'-Anweisung angebene Platz freigehalten. Bei- +spiel: + +\#free (2.0)\# +hält zwei Zentimeter frei. Paßt der angeforderte Platz nicht mehr auf die +Seite, so wird der angeforderte Platz auf der nächsten Seite reserviert +('pageform' plaziert das Seitenende vor die 'free'-Anweisung). + +Merke: Die 'free'-Anweisung hält einen Platz auf dem Papier frei (Angabe in +cm). + + + +Neue Seite beginnen: 'page' + +An einigen Stellen im Text, z.B. zu Beginn eines neuen Kapitels, soll unbe- +ingt eine neue Seite angefangen werden. + +Dies erreicht - wie bereits erwähnt - man mit der 'page'-Anweisung. 'page- +form' meldet im diesem Fall, nach wieviel cm auf der Seite die Anweisung an- +getroffen wurde. Man kann nun mit RETURN das Seitenende bestätigen, oder die +Anweisung (in der Druckdatei) löschen. Im letzteren Fall berechnet 'page- +form' die Seite neu (als ob die 'page'-Anweisung nicht dagewesen wäre). + +Gleichzeitig ist es möglich, mit Hilfe der 'page'-Anweisungs eine neue Sei- +tennummer#ie# für die neue Seite einzustellen (vergl. die nächsten Ab- +chnitte). + +Merke: Die 'page'-Anweisung bewirkt eine neue Seite und muß beim Formatieren +bestätigt werden. + + + +Kopf- und Fußzeilen: 'head/bottom' + +Mit den 'head'- und #ib#'bottom'-Anweisung#ie#en ist es möglich, Zeilen am +Anfang und Ende jeder Seite einfügen zu lassen. + +Zeilen am Anfang ("Kopfzeilen") und Ende ("Fußzeilen") jeder Seite werden +nur einmal geschrieben und mit Anweisungen gekennzeichnet. Diese Zeilen fügt +'pageform' dann an den entsprechenden Stellen ein. Beispiel: + +\#head\# + Unser EUMEL-Benutzerhandbuch + +\#end\# + +Diese zwei Zeilen (also die zwischen den 'head'- und 'end'-Anweisungen ein- +geschlossenen Zeilen) werden unverändert von 'pageform' an den Anfang jeder +Seite in die Druckdatei plaziert. Man beachte, daß zweckmäßigerweise (minde- +stens) eine Leerzeile nach einer solchen Kopfzeile in den 'head'-Bereich ein- +gefügt werden sollte, um die Kopfzeile von dem eigentlichen Text der Seite zu +trennen. + +Entsprechendes gilt für Fußzeilen, die zwischen 'bottom' und 'end' einge- +chlossen werden müssen: + +\#bottom\# + Autor: I. Listig +\#end\# + +Praktischer Tip: Man füge nach einer Schriftzeile mindestens eine Leerzeile +ein (in einem 'head') bzw. vor der Schriftzeile (in einem 'bottom'), um den +eigentlichen Text von den Kopf- bzw. Fußzeilen abzuheben. + +'pageform' zählt die Seiten, beginnend mit der Seitennummer '1'. (Wie man +Seitennummern in die Kopf- und Fußzeilen bekommt, verraten wir im nächsten +Abschnitt). Es ist nun möglich, getrennte Kopf- und Fußzeilen für gerade und +ungerade Seiten zu gestalten (wie in diesem Benutzerhandbuch). Dies erfolgt +mit den Anweisungen 'headeven' und 'headodd' für Seiten mit geraden und un- +geraden Seitennummern; ('bottomeven' und 'bottomodd' dito). + +Diese Anweisungen müssen ebenfalls jeweils mit einer 'end'-Anweisung be- +endet werden. + +Es ist möglich, Kopf- und Fußzeilen mehrmals innerhalb einer Datei zu +wechseln, um unterschiedliche Beschriftungen zu erhalten (z.B. kapitelweise). +Dies ist jedoch nur sinnvoll, wenn dies auf einer neuen Seite erfolgt, also +unmittelbar nach einer 'page'-Anweisung in den Text eingefügt wird. Beispiel: + + \#page\# + \#head\# + Neuer Seiten Kopf + + \#end\# + +"Fußzeilen" sollen überall gleiches Aussehen haben, unabhängig davon, welche +Anweisungen im restlichen Text gegeben werden. Darum werden die bei der De- +finition einer Fußzeile aktuellen Werte für + + limit + type + linefeed + +bei dem Einsetzen der Zeilen berücksichtigt. Es ist somit erlaubt, einen +anderen Schrifttyp (z.B. als der restliche Text) für Fußzeilen zu verwenden, +indem die 'type'-Anweisung innerhalb des 'bottom'-Bereiches gegeben wird. +Beachte, daß nach 'head'-, 'bottom' und auch 'foot'-Bereiche die o.a. Kom- +mandos nicht automatisch zurückgestellt werden. Darum sollte vor der 'end'- +Anweisung wieder auf den im übrigen Text verwandten Schrifttyp zurückge- +stellt werden. Gleiches gilt für die 'limit'- und 'linefeed'-Anweisung. +Beispiel: + + \#bottom\# + \#type ("besonders schoen")\# + Autor: I. Listig + + (Schriftyp zurückstellen): \#type ("normal")\# \#end\# + +Merke: Kopf- und Fußzeilen können durch die Anweisungen 'head' bzw. 'bottom' +oder 'headeven', 'headodd' bzw. 'bottomeven', 'bottomodd' definiert werden. +Die Zeilen müssen jeweils durch die 'end'-Anweisung beendet werden. + + + +Seiten numerieren + +In den Kopf- und Fußzeilen steht das '%'-Zeichen für die aktuelle Seiten- +nummer. + +Erscheint das '%'-Zeichen innerhalb eines Kopf- oder Fußbereiches, wird von +'pageform' beim Einsetzen dieser Zeilen auf jeder Seite die aktuelle Seiten- +nummer#ie# eingesetzt (sind mehrere '%'-Zeichen vorhanden, wird die Seiten- +nummer mehrmals eingesetzt). Beispiel: + +\#head\# + Seite: - % - + +\#end\# + +Durch einen Fußbereich kann man die Seitennummern auch am Ende einer Seite +haben. Man beachte, daß sich bei mehrstelligen Seitennummern durch das Ein- +setzen die Zeilenlänge vergrößert. + +Manchmal ist es notwendig und sinnvoll, einen Text in mehreren Dateien zu +halten. Bei einer Folgedatei muß die Seitennummer dann neu gesetzt werden. +Das erfolgt mit der 'page'-Anweisung. Beispiel: + +\#page (4)\# + +vollzieht eine neue Seite. Die Seitennummer der neuen Seite ist '4'. + +Bei einigen Spezialanwendungen benötigt man mehr als eine Seitennummer. +Beispielsweise soll ein Text nicht nur absolut, sondern auch jede Seite in +jedem Kapitel separat durchgezählt werden. Eine andere Anwendung ist die +Benennung einer Folgeseite, wie in diesem Beispiel: + +\#page (4711)\# +\#head\# + Mein Buch Seite: % + +\#end\# +\#pagenr ("$", 4712)\# +\#bottom\# + + Nächste Seite: $ +\#end\# + +Durch die 'pagenr'-Anweisung gibt man ein neues "Seitenzeichen" (hier: '$') +und den Anfangwert für diese Seitennummer (hier: '4712'), der ebenfalls wie +das '%'-Seitenzeichen von 'pageform' bei jeder neuen Seite um '1' erhöht und +ggf. in die Kopf- und Fußzeilen eingesetzt wird. Es sind zwei zusätzliche +Seitenzeichen (neben dem '%') möglich. + +Merke: In den Kopf- und Fußzeilen wird ein '%'-Zeichen von 'pageform' durch +die aktuelle Seitennummer ersetzt. Die Seitennummer kann durch das 'page'- +Anweisung neu gesetzt werden. + + + +Fußnoten schreiben: 'foot' + +Fußnoten werden direkt im Text durch die Anweisungen 'foot' und 'end' ge- +kennzeichnet. Die Fußnoten plaziert 'pageform' an das Ende einer Seite. + +Fußnoten werden vom Benutzer direkt in den Text geschrieben, am besten nach +einem Absatz. Die Fußnote wird von 'pageform' an das Ende einer Seite, ggf. +vor Fußzeilen plaziert. Für die Kennzeichnung von Fußnoten und die ent- +sprechende Markierung im Text ist der Benutzer selbst zuständig. Allerdings +wird von 'pageform' bei dem Einsetzen einer Fußnote am Ende einer Seite +Unterstreichungsstriche vor die Fußnoten eingefügt, damit Fußnoten vom +"normalen" Text abgehoben werden. + +\#foot\# +*) Das ist die erste Anmerkung auf dieser Seite. +\#end\# + +Mehrere Fußnoten innerhalb einer Seite werden von 'pageform' in der Reihen- +folge ihres Auftretens gesammelt und am Ende der Seite plaziert. Für eine +entsprechende Trennung der Fußnoten voneinander (z.B. durch Leerzeilen) hat +der Benutzer selbst zu sorgen. + +Man sollte eine Fußnote unmittelbar hinter den Absatz schreiben, in der die +Markierung für die Fußnote erscheint, denn u.U. paßt die Fußnote nicht mehr +auf die aktuelle Seite und muß somit von 'pageform' auf die nächste Seite +gebracht werden. 'pageform' geht davon aus, daß die Kennzeichnung der Fuß- +note in der Zeile unmittelbar vor der Fußnote steht und bringt diese Zeile +ebenfalls auf die neue Seite. + +Merke: Fußnoten werden direkt hinter einem Absatz in den Text mittels der +Anweisungen 'foot' und 'end' geschrieben, die 'pageform' an das Ende der +Seite einfügt. Die Kennzeichnung der Fußnoten hat der Benutzer selbst vorzu- +nehmen oder man kann sie mit Hilfe von 'count'- und 'value'-Anweisungen +durchnumerieren (siehe nächsten Abschnitt). + + + +Fußnoten numerieren: Zählen lassen + +Bei vielen Fußnoten in einem Text ist es nicht möglich, die Fußnoten beim +Schreiben des Textes entsprechend zu beschriften. Für diesen Fall und um auf +die Fußnote im Text nochmals Bezug nehmen zu können, bietet 'pageform' die +Möglichkeit an, die Fußnoten zu numerieren. + +Durch die 'count'-Anweisung wird 'pageform' veranlaßt, einen internen Zähler +(beginnend bei dem Wert 0) zu erhöhen und diesen Wert anstatt der 'count'- +Anweisungen in den Text einzusetzen. Beispiel: + +\#count\# + +setzt den Wert 1 anstatt der Anweisung ein (Anmerkung: trifft 'lineform' auf +eine 'count'-Anweisung, so wird die Zeile berechnet, als ob drei Ziffern +anstatt der Anweisung ständen). Jede weitere 'count'-Anweisung erhöht den +internen Zähler und der Zählerwert wird wiederum eingesetzt: + +\#count\# + +setzt den Wert 2 ein usw. Dadurch ist es möglich, beliebige Textteile +(Kapitel, mathematische Sätze u.a.m.) fortlaufend zu numerieren, ohne auf +die Numerierung beim Schreiben und Ändern des Textes zu achten. + +Mit der 'value'-Anweisung kann man den letzten erreichten count-Wert noch- +mals einsetzen. Das ist insbesondere für Fußnoten sinnvoll einsetzbar. +Beispiel: + + Bla Bla Bla (\#count\#) + \#foot\# + Eine Fußnote + \#end\# + ... + +Das Resultat würde folgendermaßen aussehen: + + Bla Bla Bla (3) + .... + + _____ + (3) Eine Fußnote + +Man beachte, daß in diesem Fall die 'value'-Anweisung der 'count'-Anweisung +folgen muß, ohne das eine weitere 'count'-Anweisung dazwischen steht. Das +liegt - wie bereits erwähnt - daran, daß die 'value'-Anweisung immer den +letzten 'count' Wert einsetzt. + +Das kann man umgehen, indem die 'count'- und 'value'-Anweisungen mit einem +TEXT-Parameter versehen werden, der als Kennzeichnung dient. Beispiel: + + \#count ("Merk1")\# + +arbeitet ebenso wie 'count' ohne Parameter (setzt also hier den Wert 4 ein), +aber zusätzlich vermerkt 'pageform' den aktuellen Zählerwert neben dem Kenn- +zeichen. Nun ist es mit der 'value'-Anweisung möglich, den vermerkten Zähler- +wert durch Angabe des Kennzeichens an beliebigen Stellen im Text zu reprodu- +zieren (auch wenn der interne Zähler weitergezählt wurde). Beispiel: + + \#count\#\#count\# + \#value("Merk1")\# + +Die ersten zwei 'count'-Anweisungen produzieren - wie beschrieben - die +Werte 5 bzw. 6. Die 'value'-Anweisung dagegen setzt den vermerkten Wert 4 +ein. + +Dies ist insbesondere sinnvoll, wenn man im Text auf eine Fußnote verweisen +will. Beispiel: + + Bla Bla. Siehe auch Anmerkung (\#value ("Waldschrat")\#). Bla + ... + ... + Bla Bla Bla (\#count ("Waldschrat")\#) + \#foot\# + (\#value ("Waldschrat")\#) Waldschrate kommen in vier Farben vor: + Rot, schwarz, grün und blau/gelb. + \#end\# + +Manchmal ist es notwendig (ebenso wie bei der Seitennummer), den internen +Zähler neu zu setzen. Beispiel: + + \#setcount (13)\#\#count ("aha!")\# + +produziert den Wert 13. + +Merke: Die 'count'-Anweisung setzt einen internen Zähler in die Druckdatei +ein. Durch die #ib#'value'-Anweisung#ie# werden gespeicherte Werte einge- +setzt, was man bei Fußnoten ausnutzen kann. + + + +Querverweise mit 'topage'/'goalpage' + +Mit den Anweisungen 'topage' und 'goalpage' sind Querverweise möglich, die +von 'pageform' in die Druckdatei eingefügt werden. + +Mit Hilfe von Querverweisen soll auf andere Stellen im Text verwiesen werden, +was nur bei längeren Texten üblich ist. Um dem Leser die mühselige Suche +nach der Textstelle zu ersparen, gibt man in der Regel die Seitennummer an. +Leider steht die Seitennummer vor der Fertigstellung des Textes meist noch +nicht fest. Auch in diesem Fall kann 'pageform' helfen. Die 'topage'- An- +weisung verweist auf eine andere Seite im Text, an der sich eine Anweisung +'goalpage' befinden muß. Anstatt der Anweisung 'topage' wird die Seitennum- +mer der Seite eingesetzt, auf der sich 'goalpage' befindet. Damit jedes +'topage' auch (sein) entsprechendes 'goalpage' findet, wird bei beiden An- +weisungen ein TEXT-Parameter angegeben. Beispiel: + + Man schreibt: ... siehe auch auf Seite \#topage("verweis1")\# + ... + Auf einer anderen Seite befindet sich \#goalpage("verweis1")\# + +Nach 'Seite' wird die entsprechende Seitennummer eingesetzt. + +Es ist möglich, mehrmals auf die gleiche (Ziel-) Seite zu verweisen, man muß +nur darauf achten, daß immer das gleiche Merkmal (TEXT-Parameter) verwandt +wird. + +Merke: Mit den 'topage'- und 'goalpage'-Anweisungen sind Seitenquerverweise +möglich. Für 'topage' wird die Seitennummer eingesetzt, auf der 'goalpage' +steht. + + + +Formatierung von Spalten: 'columns' + +Mit der 'columns'-Anweisung ist es möglich, einen Text in Spalten zu forma- +tieren ("Zeitungsdruck"). + +Durch die Angabe der 'columns'-Anweisung wird 'pageform' aufgefordert, den +Text in Spalten zu formatieren. Die Spaltenbreite muß der Benutzer mit der +'limit'-Anweisung einstellen. Beispiel: + + \#limit (18.0)\# + ... + \#columns (2, 2.0)\#\#limit (8.0)\# + ... + +Anfangs schreibt der Benutzer mit einer Zeilenbreite von 18 cm. Dann fordert +er mit der 'columns'-Anweisung zweispaltigen Druck an (zwischen den Spalten +soll 2 cm Abstand sein). Somit muß die 'limit'-Anweisung auf 8 cm einge- +stellt werden. + +Die interaktive Spaltenformatierung wird von 'pageform' wie gewohnt vorgenom- +men. Auf dem Bildschirm erscheint nun das Spaltenende, wobei die Nummer der +Spalte angezeigt wird. Fußnoten werden spaltenweise eingeordnet und müssen +somit die gleiche Zeilenbreite haben, wie die restlichen Spalten. + +'pageform' erzeugt in der Druckdatei die Spalten hintereinander. Das folgende +Beispiel zeigt einen Ausschnitt aus der Druckdatei mit Kopf- und Fußzeilen +bei einem zweispaltigen Druck: + + head-Zeilen + xx + xx + xx + bottom-Zeilen + \#page\#\#------- Ende Seite 1 Spalte 1 ----\# + xx + xx + xx + \#page\#\#------- Ende Seite 1 Spalte 2 ----\# + +Die zweite Spalte erscheint also ohne Kopf- und Fußzeilen, die jedoch bei der +Berechnung berücksichtigt werden. Man beachte, daß die Kopf- und Fußzeilen +über die Spalten gehen können. Dies erreicht man durch geeignete 'limit'- +Anweisungen in den genannten Bereichen. Hochwertige Drucker plazieren die +zweite Spalte im Druckbild neben die erste. Bei preiswerteren Druckern muß +man die Spalten nebeneinander kleben. + +Es ist zwar prinzipiell möglich, die Spalten in der Druckdatei nebeneinander +zu schreiben. Jedoch hätte das Druckerprogramm Schwierigkeiten, diese neben- +einander zu drucken, ohne daß z.B. ein Schrifttypwechsel in einer Spalte +Auswirkungen auf eine Benachbarte hat. Praktischer Tip: Bei Druckern mit +"Traktorführung" kann man erst alle ersten Spalten drucken, dann das Papier +"von Hand" zurückdrehen und die zweiten Spalten drucken usw. + +Alle Anweisungen funktionieren beim spaltenweisen Formatieren wie üblich. Die +'free'-Anweisung z.B. hält entsprechenden Platz in einer Spalte frei. Eine +Ausnahme bildet die 'page'-Anweisung. Sie vollzieht hier ein Spaltenende. Die +'page'-Anweisung mit einem Parameter (welcher die Seitennummer der nächsten +Seite angibt), vollzieht dagegen ein Seitenende. + +Die 'columns end'-Anweisung beendet die spaltenweise Formatierung. Es ist +zweckmäßig, unmittelbar vor der 'columns'- und hinter der 'columns end'- +Anweisung eine 'page'-Anweisung zu schreiben. + +Überschriften (bzw. Textblöcke) über mehrere Spalten hinweg sind nur in der +ersten Seite direkt hinter der 'columns'-Anweisung möglich. Beispiel: + + \#page\# + \#limit (18.0)\# + HEAD + Breite Überschrift + \#columns (2, ...)\#\#limit (8.0)\# + XX + XX + XX + Bottom + \#page\#\#------- Ende Seite 1 Spalte 1 ----\# + XX + XX + XX + \#page\#\#------- Ende Seite 1 Spalte 2 ----\# + +Die Zeilen für die zweispaltige Überschrift werden berücksichtigt. Dies gilt +jedoch nur unmittelbar hinter der 'columns'-Anweisung. Will man diesen Effekt +nochmals haben, beendet man mit 'columns end', schreibt die 'page'-Anweisung, +die breite Überschrift und schaltet die 'columns'-Anweisung wieder ein usw. + +Merke: Die Anweisungen 'columns'- und 'columns end' bewirken ein spalten- +weises Formatieren des Textes durch 'pageform'. Die Spaltenbreite ('limit'- +Anweisung) hat der Benutzer selbst einzustellen. + + + +4. Stichwortverzeichnisse erstellen: 'index'-Kommando + +Das Programm 'index' kann Stichwort- und Inhaltsverzeichnisse erstellen. +Stichwortverzeichnisse#ie# können sortiert werden. Mehrere Stichwortver- +zeichnisse können durch 'index merge' zusammengeführt werden. + + + +Übersicht über die Arbeitsweise von 'index' + +Durch den Aufruf von + + index ("datei.p") + +werden durch Indexanweisungen gekennzeichnete Worte in Dateien, den soge- +nannten Indexdateien, gespeichert. + +Anweisung Zweck + + ib Anfang Index + (folgende Worte werden bis zur 'ie'-Anweisung in den + Index übernommen) + ie Ende eines Index + +Solche Verzeichnisse von Worten werden im EUMEL-System allgemein als Index +bezeichnet. Nachdem eine oder mehrere Indexdateien aus einer Druckdatei +erstellt sind, werden die Indexdateien auf Anfrage alphabetisch sortiert. +Bei einem Inhaltsverzeichnis sollte man die Sortierung natürlich ablehnen. + +Nach der Sortierung werden gleiche Einträge automatisch zusammengefaßt und +die entsprechenden Seitennummern nacheinander aufgeführt. + +Praktischer Tip: Will man nur eine Sortierung, aber keine Zusammenfassung +von Einträgen, dann lehnt man die Sortieranfrage ab. Anschließend kann man +die Indexdatei mit 'lex sort ("indexdatei namen")' sortieren. Hierbei +bleiben gleiche Einträge erhalten. + +Das Programm + + index merge ("index.i1", "index.i2") + +erlaubt es, zwei durch 'index' erzeugte Verzeichnisse zusammenzuführen. +'index' kann ebenfalls benutzt werden, um ein Inhaltsverzeichnis und/oder +ein Verzeichnis aller Abbildungen zu erstellen oder Literaturhinweise zu +überprüfen. + +Die Worte, die durch 'index' in einen Index übernommen werden sollen, müssen +in der Eingabedatei (der Druckdatei aus 'pageform') für 'index' durch An- +weisungen gekennzeichnet werden. Die Form der Anweisungen entspricht der +ELAN-Syntax (analog den Anweisungen für 'lineform', 'pageform' und EUMEL- +Drucker). Solche #ib(1,"ff")#Indexanweisungen#ie# werden von den anderen +Textbe- und -verarbeitungs Programmen ('lineform', 'pageform', EUMEL- +Drucker) ignoriert. Man kann also bei dem Schreiben mit dem Editor gleich +festlegen, welche Worte in einen Index aufgenommen werden sollen. + + + +Worte kennzeichnen: 'ib'/'ie' + +Da in einem Index - neben dem eigentlichen Worteintrag - die Seitennummer +enthalten sein soll, arbeitet das Programm 'index' nur mit einer Druckdatei, +d.h. einer Ausgabedatei von 'pageform'. Die Indexworte werden in Indexda- +teien gesammelt. Die Indexdateien erhalten den Namen der zu bearbeitenden +Datei, an den ".i" und die Nummer des Index angefügt wird. Beispiel: + + ... Hier wird eine Eigenschaft des \#ib(1)\#EUMEL-Systems\#ie(1)\# beschrieben. + +(Die durch die Anweisungen 'ib' und 'ie' gekennzeichneten Worte werden mit +der dazugehörigen Seitennummer in die erste Indexdatei geschrieben.) + +Die Einträge in einer Indexdatei werden von den Seitennummern durch min- +destens drei Punkte getrennt. + +Werden diese nicht gewünscht, kann man sie leicht mit dem Editor entfernen. +Beachte, daß man nur bei einer äquidistanten Schrift ein rechtsbündiges +Verzeichnis erhalten kann. + +Es gibt die Möglichkeit, bis zu neun unterschiedliche Indexdateien zu er- +stellen, z.B. durch + + \#ib (1)\# und \#ie (1)\# + +gekennzeichnete Worte gehen in die Indexdatei mit der Nummer 1, durch + + \#ib (9)\# und \#ie (9)\# + +gekennzeichnete Worte gehen in die Indexdatei mit der Nummer 9. Als Erleich- +terung für diejenigen, die nur einen Index erstellen müssen, dürfen die 'ib'- +und 'ie'-Anweisungen ohne Parameter benutzt werden, welches gleichbedeutend +ist mit 'ib(1)' und 'ie(1)'. + +Die durch 'ib'- und 'ie'-Anweisungen gekennzeichneten Worte können auch über +Zeilengrenzen (mit Silbentrennungen) gehen. Beispiel: + + .... \#ib\#schöne Index-An- + weisungen\#ie\# ... + +'index' zieht getrennte Worte zusammen (hier: 'schöne Index-Anweisungen'). +Will man einige Worte in verschiedenen Indexdateien haben, darf man die 'ib'- +und 'ie'-Anweisungen auch "schachteln". Dies kann man besonders bei Kapitel- +überschriften nutzen. Beispiel (vergl. auch die Überschrift dieses Ab- +schnitts): + + \#ib(9)\#Worte kennzeichnen: '\#ib\#ib\#ie\#'/'\#ib\#ie\#ie\#'\#ie(9)\# + +In diesem Beispiel wird das Inhaltsverzeichnis in die Indexdatei '9' ge- +bracht, während der "allgemeine" Index in der Indexdatei '1' gesammelt wird. + + + +Nebeneinträge erzeugen + +Es ist möglich, an die Seitennummer eines Eintrags einen beliebigen Text +anfügen zu lassen. Beispiele: + + EUMEL-System ... 27ff. + Monitor ........ 13(Def.) + EUMEL-Editor ... 2(Kap.4) + +Dies wird durch die generische Form der 'ib'-Anweisung ermöglicht: + + ... der \#ib(1,"(Kap.4)")\#EUMEL-Editor\#ie\# ist gut geeignet, + Texte zu erstellen ... + +(erzeugt den letzten obigen Eintrag). + +An einen Eintrag kann ein weiterer TEXT angefügt werden, um etwa Unterein- +träge zu bilden: + + EUMEL-System .............. 27 + EUMEL-System, kapitales ... 28 + EUMEL-System, schönes ..... 29 + +Das wird ebenfalls durch eine andere Form der 'ie'-Anweisung ermöglicht: + + ... ist das \#ib\#EUMEL-System\#ie(1,", schönes")\# wirklich ein + schönes System ... + +(erzeugt den letzten obigen Eintrag). + +Nach der Erstellung einer Indexdatei können - nach interaktiver Anfrage - die +Einträge sortiert werden. Die Sortierung erfolgt alphabetisch nach DIN 5007, +Abschnitt 1 und 3.2 (Umlaute werden "richtig" eingeordnet). + +Wie bereits erwähnt, kann 'index' vielseitig eingesetzt werden: + +a) Erstellung von Stichwortverzeichnissen: + Wie bereits beschrieben. + +b) Erstellung von Inhaltsverzeichnissen: + Kapitelüberschriften mit eigenen Indexanweisungen klammern und durch + 'index' wie beschrieben verarbeiten. Beispiel: + + \#ib(8)\#9.1.3 Das abenteuerliche Leben von Micky Maus unter + besonderer Berücksichtigung seiner Geburtsstadt Entenhausen\#ie(8)\# + + Dann ist man sicher, daß das Inhaltsverzeichnis bezüglich Seitennummern + und Kapitelüberschriften korrekt ist. + +c) Erstellung von Abbildungsverzeichnissen: + Abbildungsüber- bzw. -unterschriften wie Inhaltsverzeichnisse verarbeiten. + +d) Überprüfung von Literaturhinweisen auf Vollständigkeit: + Man klammert alle Literaturhinweise mit extra Indexanweisungen (Beispiel: + \#ib(9)\#/Meier82/\#ie(9)\#) und überprüft dann mit Hilfe dieser Indexdatei + die Literaturverweise. Dann ist man sicher, daß alle Literaturverweise im + Text auch in der Literaturaufstellung stehen. + + + +Indexdateien zusammenführen: 'index merge' + +Durch das Programm 'index merge' kann eine Indexdatei in eine zweite "einge- +mischt" werden. Es ist somit möglich, einen Index zu erstellen, der sich über +mehrere Dateien erstreckt, indem man 'index' die Druckdateien dieser Dateien +bearbeiten läßt und anschließend die entstandenen Indexdateien mit 'index +merge ' zusammenfaßt. Indexdateien können ggf. mit dem Editor bzw. 'lineform' +und/ oder 'pageform' bearbeitet und anschließend gedruckt werden. Beispiel: + + index merge ("1.kapitel.i1", "2.kapitel.i1") + +Hier wird die Indexdatei des '1.kapitel' in die Indexdatei des '2.kapitel' +eingeordnet und auf Wunsch sortiert. + +Beachte, daß 'index' und 'index merge' Kommandos und keine Anweisungen sind. + +Merke: 'index' verarbeitet eine Druckdatei (Zusatz: ".p") und erzeugt eine +oder mehrere Indexdateien (Zusatz: ".i"). Die in einen Index zu +übernehmenden Worte müssen im Text durch die 'ib'- und 'ie'-Anweisungen +eingefaßt sein. + + + +5. Drucken: 'print' + +Der EUMEL-Drucker, der mit dem Kommando 'print' angesprochen wird, ist eine +Software-Schnittstelle zu einem angeschlossenem Drucker. In diesem Kapitel +wird erklärt, wie man mit dem EUMEL-Drucker eine Datei druckt und welche +speziellen Anweisungen den Drucker steuern. + +Jeder Drucker erbringt "hardwaremäßig" unterschiedliche Leistungen (z.B. +Randausgleich, Unterstreichung). Diese Leistungen werden durch Eingabe +spezieller Zeichenfolgen veranlaßt, die zwar genormt sind, aber von den Druk- +kerherstellern nicht eingehalten werden oder unterschiedlich interpretiert +werden. + +Um vom EUMEL-System unterschiedliche Drucker auf gleiche Weise ansprechen +zu können, wurde eine Software-Schnittstelle geschaffen, die EUMEL-Drucker +genannt wird. Der EUMEL-Drucker akzeptiert eine Datei und veranlaßt, daß +diese in geeigneter Weise gedruckt wird. Weiterhin beachtet der EUMEL- +Drucker die Anweisungen der Textkosmetik. Die Form der Anweisungen der +Textkosmetik und des EUMEL-Druckers sind gleich. + + + +Eine Datei drucken: 'print'-Kommando + +Mit dem Kommando + + print + +kann dem EUMEL-Drucker eine Datei zum Drucken übergeben werden. Beispiel: + + print ("Drucker Beschreibung") + +In der Regel ist im EUMEL-System (Multi-User) ein "Spooler" installiert, so +daß sofort mit der Arbeit fortgefahren werden kann. Der EUMEL-Drucker ar- +beitet in diesem Fall parallel zu anderen Arbeiten des Nutzers. + + + +Anweisungen für den EUMEL-Drucker + +Ein Text (eine Datei) kann vom Drucker auch ohne Anweisungen gedruckt +werden, etwa für Probedrucke. Für diesen Fall hat der Drucker vernünftige +Voreinstellungen. Für einen "normalen" Text braucht ein Benutzer keine spe- +ziellen Druckeranweisungen in den zu druckenden Text einzufügen, denn die +Anweisungen für die Textkosmetik reichen zur Druckersteuerung aus. Nur wenn +besondere Leistungen verlangt werden, wie z.B. Blocksatz oder den gedruckten +Text an eine bestimmte Stelle zu plazieren, sind Druckeranweisungen notwen- +dig. + +Werden vom Drucker Leistungen verlangt, die hardwaremäßig nicht vorhanden +sind, so sorgt der EUMEL-Drucker dafür, daß eine möglichst äquivalente +Leistung erbracht wird. Wird beispielsweise ein nicht vorhandener Schrifttyp +angefordert, wird mit dem Standard-Schrifttyp der jeweiligen Installation +gedruckt. + +Damit ist es möglich, einen Text auf einem Drucker zu drucken, der den ge- +forderten Typ nicht kennt und der eigentlich für einen anderen Drucker +bestimmt ist. + +Wie bereits erwähnt, beachtet der EUMEL-Drucker die gleichen Anweisungen wie +die Textkosmetik-Programme. Eine 'type'-Anweisung beispielsweise, welches +einen bestimmten Schrifttyp anfordert, wird also auch vom EUMEL-Drucker als +Befehlsfolge an den angeschlossenen Hardware-Drucker übergeben (sofern der +Schrifttyp auf dem Drucker realisierbar ist). Wie die Anweisungen ge- +schrieben werden müssen, wird in der Beschreibung der Textkosmetik ge- +schildert. + +Anweisungen werden nicht gedruckt. Besteht eine Zeile nur aus Anweisungen, +so wird diese Zeile vom EUMEL-Drucker nicht gedruckt. Im Gegensatz zu den +Programmen der Textkosmetik werden unbekannte oder fehlerhafte Anweisungen +vom EUMEL-Drucker ohne Fehlermeldung "verschluckt". Alle Anweisungen werden +zum frühest möglichen Zeitpunkt ausgeführt, haben also u.U. bereits Aus- +wirkungen auf die Zeile, in der sie stehen. + +Einige Anweisungen sind speziell nur für den EUMEL-Drucker vorhanden. +Diese werden in diesem Kapitel erklärt bzw. werden in der Anweisungs-Über- +sicht mit aufgeführt. + +Neben den "normalen" Anweisungen, die nur in "\#"-Zeichen eingeschlossen +werden, gibt es noch zwei andere Formen: + +a) Kommentar-Anweisungen: + Werden in "\#-" und "\#"-Zeichen eingeschlossen. Solche Anweisungen + werden ignoriert. Beispiel: + + \#---- Ende der Seite 1 ---\# + +b) Spezielle Druckeranweisungen: + Werden in "\#/" und "\#"-Zeichen eingefaßt. Die von diesen Anweisungs- + Zeichen eingeschlossenen Druckerbefehlen werden unverändert (ohne die + "\#/" und "\#"-Zeichen) an den Drucker weitergereicht. Beispiel: + + \#/C05\# (* C05 geht an den Drucker *) + + Solche Anweisungen werden manchmal benötigt, um spezielle Druckereigen- + schaften auszunutzen, die schwer oder garnicht im EUMEL-Drucker reali- + sierbar sind. + +Anmerkung: Diese Anweisungen werden, wie die normalen Anweisungen auch, bei +der Berechnung einer Zeile nicht berücksichtigt und nicht gedruckt. + +Merke: Der EUMEL-Drucker übernimmt die Anpassung an spezielle Hardware- +Drucker. Er beachtet die gleichen Anweisungen wie die Textkosmetik-Programme. +Zusätzlich gibt es noch einige wenige spezielle Druckeranweisungen. + + + +Blocksatz drucken: 'block' + +Die Anweisung 'block' bewirkt einen Blocksatz beim Druck. + +Fügt man in den Text (meist am Anfang einer Datei) die Anweisung + + \#block\# + +ein, druckt der Drucker ab dieser Stelle alle Zeilen, die nicht mit einem +Absatzkennzeichen versehen sind, im Blocksatz. Dies heißt, daß durch Ver- +größern der Wortabstände alle Zeilen an der gleichen Position enden (rechter +Randausgleich). Preiswerte Drucker können dies nur durch Einfügen ganzer +Leerzeichen zwischen den Worten vornehmen, was sich oft beim Lesen störend +bemerkbar macht. Bei qualitativ hochwertigen Druckern wird dagegen der +Blocksatz durch Einfügen kleinerer Abstände zwischen den Worten oder sogar +zwischen den Zeichen erreicht. + +Merke: Die Anweisung 'block' bewirkt den Blocksatz beim Druck. + + +Schreibfeld verschieben: 'start' + +Durch die Anweisung 'start' ist es möglich, das Schreibfeld beim Druck auf +dem Papier an eine andere Stelle zu plazieren. + +Der EUMEL-Drucker plaziert das Schreibfeld auf einem Drucker automatisch der- +art, daß ein genügender Rand verbleibt. Diese Voreinstellung ist natürlich +abhängig vom Drucker und der Installation. Mit der 'start'-Anweisung kann +die automatische Einstellung verändert werden. Beispiel: + + \#start (1.0, 2.0)\# + +legt die linke, obere Ecke des Schreibfeldes fest (vom linken Rand 1 cm, vom +oberen Rand 2 cm). + +Merke: Die 'start'-Anweisung legt den linken oberen Rand des Schreibfeldes +fest. + + + +Zentrieren + +Mit dem '#ib#center#ie#'-Kommando kann man eine Zeile in der Mitte der Zeile +drucken lassen. + +Das 'center'-Kommando zentriert die Schrift einer Zeile. Beispiel: + +\#center\#Diese Zeile ist zentriert + +Dies Kommando ist nur bei Proportionalschriften sinnvoll einzusetzen, da man +bei einer äquidistanten Schrift man direkt auf dem Bildschirm sehen kann, +wie der Text auf einer Zeile plaziert ist. + +Merke: 'center' zentriert eine Zeile beim Drucken. + + + +6. Textkosmetik-Makros + +Makros dienen als Abkürzung für immer wiederkehrende Textteile und/oder +Kommandos. + +Textkosmetik-Makros kommen zum Einsatz bei + +- immer wiederkehrenden Textteilen; + +- immer wiederkehrenden Anweisungssequenzen; + +- bei der Erstellung von Manuskripten, deren endgültige Form man anfänglich + noch nicht weiß oder die man noch ändern will. + +Die Definition von einem oder mehreren Makros wird mit dem Editor vorgenom- +men. Diese Makro-Datei wird dann geladen. Von diesem Augenblick an "kennen" +'lineform'/'autoform' und 'pageform' die Makros (d.h. die Textzeilen und/ +oder Anweisungen, die sich unter dem dem Makronamen "verbergen"). + +'lineform'/'autoform' beachten die Anweisungen, die in den Makros enthalten +sind. Man beachte, daß die Anweisungen und Textzeilen, die in den Makros ent- +halten sind, nicht in der Datei erscheinen. Erst 'pageform' setzt diese in +die Druckdatei ein. + + +Ein Beispiel + +Hier wird ein einfaches Beispiel für einen Briefkopf gezeigt. + +Angenommen, die Firma 'Meier' schreibt mit dem EUMEL-System ihre Geschäfts- +briefe. Sie hat einen Drucker zur Verfügung, mit dem man auch die Briefköpfe +erstellen kann. Für den Briefkopf schreibt die Junior-Chefin ein Makro'kopf' +in eine Datei 'macro definitionen': + + \#*kopf\# + \#type("fett und gross")\# Firma Meier + \#type("fett")\# Gemischtwaren in kleinen Mengen + \#type("klein")\# Straße + Stadt + \#type ("normal")\# + \#*macro end\# + +Der Name des Makros ist 'kopf'. Man beachte, daß eine Makro-Definition mit +dem Namen des Makros beginnen müssen. Der Makroname muß mit einem '*' +gekennzeichnet werden, um ihn von "normalen" Text-Anweisungen unterscheiden +zu können. Jedes Makro wird mit einer 'macro end'-Anweisung beendet +(es dürfen mehrere Makros hintereinander in die Datei geschrieben werden). + +Nun muß die Junior-Chefin das so definierte Makro 'laden': + + load macros ("macro defintionen") + +Zur Kontrolle kann sie sich die "geladenen" Makros in einen Datei ausgeben +lassen: + + list macros ("kontroll datei") + +Nun kann die Junior-Chefin ihrem Sekretär sagen, daß er von jetzt ab ein +neues Kommando zur Verfügung hat, welches einen Briefkopf in jeden Brief +drucken kann (mit dem Namen 'kopf'). Der Sekretär schreibt also nun +folgenden Brief: + +\#kopf\# + +Sehr geehrte Frau .... +usw. + +Nachdem er mit 'lineform' den Brief zeilenweise formatiert hat, kontrolliert +er die formatierte Datei. Hier hat sich noch nichts verändert, die neue An- +weisung 'kopf' steht unverändert in der Datei. ('lineform' beachtet zwar +alle Anweisungen und Textzeilen eines Makros, setzt diese jedoch nicht in +die Datei ein). + +Nun formatiert der Sekretär die Datei, welche den Brief enthält, mit 'page- +form'. In der Druckdatei ist nun die Anweisung 'kopf' verschwunden, dafür +stehen aber nun die Zeilen des Makrorumpfes ('pageform' setzt die Zeilen des +Makros in die Druckdatei ein): + + \#type("fett und gross")\# Firma Meier + \#type("fett")\# Gemischtwaren in kleinen Mengen + \#type("klein")\# Straße + Stadt + \#type ("normal")\# + + + Sehr geehrte Frau ... + usw. + +Merke: Makros sind bei der Verwendung von wenigen Text- und/oder Anweisungs- +folgen nützlich, die immer in der gleichen Form benötigt werden. + + +Ein Beispiel mit Makro-Parametern + +Unsere Junior-Chefin fällt nun auf, daß sie ihr Makro noch etwas verbessern +kann. Sie will noch das Datum mit in den Briefkopf aufnehmen. Somit editiert +sie ihre Makro-Datei folgendermaßen (man beachte die '$'-Zeichen): + + \#*kopf ($1)\# + \#type("fett und gross")\# Firma Meier + \#type("fett")\# Gemischtwaren in kleinen Mengen + \#type("klein")\# Straße + Stadtname + \#type ("normal")\# + + Stadtname, den $1 + \#*macro end\# + +Damit hat sie dem 'kopf'-Makro einem Parameter gegeben ('$1'; die Parameter +werden numeriert. Ein zweiter Parameter würde '$2' heißen usw.). + +Der Sekretär muß nun die Anweisung 'kopf' mit dem jeweiligen Datum in einen +Brief schreiben: + + \#kopf ("9.1.1984")\# + +'pageform' setzt nun das angegebene Datum direkt hinter 'Stadtname, den' in +den Briefkopf ein (in der Druckdatei). Beachte, daß nur TEXT-Denoter als +aktuelle Parameter eines Makros erlaubt sind. + +Merke: Durch die Makro-Parameter ist es also möglich, immer wiederkehrende +Textteile in Schriftstücke einsetzen zu lassen, die sich nur in Kleinigkei- +ten unterscheiden. + + +Ein Beispiel für Manuskripte + +Hier wird gezeigt, wie man mit Makros Anweisungen formulieren kann, die aus- +sagen, um was es sich bei einem Text handelt und nicht, wie es behandelt +werden soll. + +Bei Manuskripten für Artikel, Bücher und Manuals weiß ein Autor oft vorher +nicht, in welchem Format das Manuskript gedruckt werden wird. Zu diesem +Zweck ist es ebenfalls nützlich, die Makros zu verwenden. Beispiel: + + \#*kapitel anfang ($1)\# + \#free (2.0)\# + \#type ("gross und fett")\#\#ib (9)\#$1\#ie (9)\#\#type ("normal")\# + + \#*macro end\# + +In diesem Beispiel wird ein Makro für den Anfang eines Kapitels definiert. +Zwischen zwei Kapiteln soll hier zwei cm Zwischenraum bleiben, die Kapitel- +Überschrift (als Parameter) wird in einer grösseren Schrift gedruckt. Zu- +sätzlich wird die Überschrift in den 9. Index aufgenommen für ein Inhalts- +verzeichnis. Nach der Überschrift wird eine Leerzeile eingeschoben, bevor +der "richtige" Text anfängt. + +Ein(e) Anwender(in) dieses Makros schreibt also z.B. folgende Anweisung: + + \#kapitel anfang ("Ein Beispiel fuer Manuskripte")\# + +(Beachte, daß die Kapitel-Überschrift nicht länger als eine Textzeile sein +darf. Das liegt daran, das 'lineform'/'autoform' zwar die Zeile bearbeitet, +aber nicht in den Text einsetzt. 'pageform' setzt also die unveränderte +- nicht aufgebrochene Textzeile - ein). + +Man kann nun Makros für die meisten Textstrukturen definieren. Schreibkräfte +brauchen dann in der Regel die meisten der Text-Anweisungen nicht zu kennen, +sondern nur noch eine Anzahl von einfachen Makro-Anweisungen. + +Die Makro-Definitionen können jederzeit geändert werden, um wechselnden +Bedürfnissen angepaßt zu werden (z.B. wenn ein Verlag ein bestimmtes +Schreibformat verbindlich vorschreibt). In diesem Fall brauchen nicht alle +Text-Dateien geändert zu werden, sondern nur die Makro-Definitionen. + +Ein weiterer Vorteil einer solchen Vorgehensweise ist, daß die Makro-Anwei- +sungen in diesem Fall angeben, was eine bestimmte Text-Struktur ist, und +nicht, wie die Struktur behandelt werden soll. + +Anmerkung: +In eine Makro-Definition sollte man ggf. 'limit'-, 'type'- und 'linefeed'- +Angaben einsetzen, um die Makros unabhängig von der Aufrufstelle zu machen. +Ggf. sollte man die Datei vorher mit 'lineform' bearbeiten, um Trennungen +vorzunehmen. + +Merke: Makros dienen zur flexiblen Behandlung von Text-Strukturen, indem +Makros definiert werden, die angeben, um was es sich dabei handelt. + + + +Beschreibung der Makro-Kommandos + +Mit dem Kommando + + load macros ("macro datei") + +kann eine Datei, in denen die Makro-Definitionen enthalten sind, in den +Makro-Speicher des Textsystems geladen werden. Ist dies fehlerfrei erfolgt, +kann man 'lineform'/'autoform' Dateien übergeben, die die definierten Makro- +Anweisungen "kennen" und befolgen. 'pageform' setzt bei Antreffen einer +Makro-Anweisung den Makrorumpf in die Ausgabe-Datei ein. + +Die Definition eines Makros erfolgt mit dem Makronamen, der von Anweisungs- +zeichen eingeschlossen ist. Um Makro-Anweisungen von "normalen" Textkosmetik- +Anweisungen zu unterscheiden, müssen diese nach dem ersten Anweisungszeichen +mit einem '*' gekennzeichnet werden. Beispiel: + + \#*macro eins\# + Makrorumpf mit "normalen" Kommandos, wie z.B. + \#type ("x")\# + \#*macro end\# + +Der Aufruf eines Makros, welcher z.B. in einer von 'lineform' zu bearbeiten- +den Datei steht, unterscheidet sich nicht von einer "normalen" Textanweisung. +Beispiel: + + ... \#macro eins\# ... + +Hat das Makro Parameter (bei der Definition mit '$'-Zeichen durchnumeriert), +müssen beim Aufruf TEXT-Parameter eingesetzt werden (also in Anführungs- +strichen). Beispiel: + + \#*macro zwei ($1)\# + ... $1 ... + \#*macro end\# + + (* Aufruf: *) + + \#macro zwei ("ein einzusetzender Text")\# + +Anmerkung: +Bei Makros gibt es keine generischen Anweisungen. Makros, die gleiche Namen +haben, aber sich durch die Anzahl der Parameter unterscheiden, sind also +nicht erlaubt. + +Beachten Sie ferner, daß Makro-Texte so verwendet werden, wie diese mit +'load macros' geladen werden. Beispiel: + + \#*a\# + \#on("underline")\# + \#*macro end\# + + \#*b\# + \#off("underline")\# + \#*macro end\# + +Betätigt man in der Makro-Datei nach jeder Zeile die RETURN-Taste (Absatz), +dann erhält man bei folgender Verwendung Fehlermeldungen von 'lineform': + + ... \#a\#zu unterstreichender Text\#b\# ... + +weil hier Mitten im Satz Absätze erscheinen und 'lineform' bei jedem Absatz +prüft, ob noch Modifikationen "offen" sind. In solchen Anwendungen sollte +man also Makros ohne Absätze speichern. + + + +7. Anweisungs-Übersicht + +* block + Zweck: Blocksatz (rechter Randausgleich). Der Text einer Zeile wird durch + Vergrößern der Wortlücken auf die Zeilenlänge, die durch das + 'limit'-Kommando eingestellt ist, verlängert. Es gelten folgende + Bedingungen: + a) Leerzeichen werden nicht verbreitert bei + - Zeilen mit Absatzzeichen; + - Mehrfache Leerzeichen; + - führende Leerzeichen (Einrückung); + - ein Leerzeichen hinter dem ersten Wort einer Zeile, wenn es auf + die Zeichen "]", ")", ".", "-", ":" endet. + b) Einrückungen werden äquidistant berechnet (Anzahl Zeichen * + Breite eines "Standard-Blanks"). Dies gilt nur für Proportional- + schriften und vor einer Absatzzeile. Es gilt als Einrückung: + - "Spiegelstrich" (Bindestrich und Leerzeichen am Anfang der + Zeile); + - Doppelpunkt als Ende des ersten Wortes (Position < 20); + - Schliessende Klammer oder Punkt als Ende des ersten Wortes, + wenn eine Ziffer davor steht (Position < 7); + c) Tabellen werden auch äquidistant berechnet. Dies gilt ebenfalls + nur für Proportionalschriften und vor einer Absatzzeile. Es gilt + als Teil einer Tabelle: + - Position des letzten Mehrfachblank. + +* bottom + Zweck: Erzeugen von "Fußzeilen" am Ende jeder Seite in der Druckdatei für + Untertitel und Seitennummern. Die Textzeilen zwischen den Anwei- + sungen 'bottom' und 'end' werden von 'pageform' am Ende jeder Seite + eingesetzt. + +* bottom even + Zweck: Definition von Fußzeilen für Seiten mit geraden Seitennummern. Es + gilt das unter 'bottom' gesagte. + +* bottom odd + Zweck: Definition von Fußzeilen für Seiten mit ungeraden Seitennummern. Es + gilt das bei 'bottom' gesagte. + +* center + Zweck: Zentrieren einer Zeile (Absatzzeile). + +* columns (INT CONST anzahl, REAL CONST luecke) + Zweck: Einschalten der Spaltenformatierung. + +* columnsend + Zweck: Ausschalten der Spaltenformatierung. + +* count + Zweck: Erhöhung eines internen Zählers und Einsetzen des Wertes anstatt + der Anweisung in die Druckdatei. + +* count (TEXT CONST merkmal) + Zweck: Wie obiges 'count', jedoch wird der Wert des Zählers vermerkt, so + daß er mit 'value' wieder erfragt werden kann. + +* end + Zweck: Beendet die Defintion von 'head', 'bottom' oder Fußnotenbereichen. + +* foot + Zweck: Definieren von Fußnoten. Es werden die aktuellen Werte von 'limit', + 'linefeed' und 'type' für die Fußnote verwendet (vergl. 'bottom'- + Anweisung). + +* free (REAL CONST freier platz) + Zweck: Es werden 'freier platz' cm freigehalten. + +* goalpage (TEXT CONST merkmal) + Zweck: (Ziel-) Verweis für Seitenquerverweise in Verbindung mit der Anwei- + sung 'topage'. 'merkmal' muß mit dem Parameter des entsprechenden + 'topage' übereinstimmen. + +* head + Zweck: Definieren von Kopfzeilen, die von 'pageform' am Anfang jeder Seite + eingefügt werden. Es gilt das unter 'bottom' gesagte. + +* head even + Zweck: Definieren von Kopfzeilen für Seiten mit geraden Seitennummern. Es + gilt das unter 'bottom' gesagte. + +* head odd + Zweck: Definieren von Kopfzeilen für Seiten mit ungeraden Seitennummern. + Es gilt das unter 'bottom' gesagte. + +* ib + Zweck: Arbeitet wie 'ib (1)', man darf aber den Parameter weglassen. + +* ib (INT CONST index nummer) + Zweck: Indexanfang einer oder mehrerer Indexworte bis zur entsprechenden + 'ie'-Anweisung. Die Worte zwischen 'ib' und 'ie' werden in die + Indexdatei geschrieben. 'index nummer' gibt die Indexdatei an. + +* ib (INT CONST index nummer, TEXT CONST seitennummer zusatz) + Zweck: Indexanfang mit Zusatztext für die Seitennummer. Das oben gesagte + gilt entsprechend. 'seitennummer zusatz' wird unmittelbar hinter + die Seitennummer angefügt. 'seitennummer zusatz' muß in jeder 'ib'- + Anweisung neu gesetzt werden. + +* ie + Zweck: Arbeitet wie 'ie (1)', man darf aber den Parameter weglassen. + +* ie (INT CONST index nummer) + Zweck: Abschluß eines Index. Ein Index darf nicht über Absatz- und Seiten- + grenzen gehen. Ein Index über mehr als zwei Zeilen ist ebenfalls + aus Sicherheitsgründen (vergessene Abschlußanweisung) nicht erlaubt. + +* ie (INT CONST index nummer, TEXT CONST index zusatz) + Zweck: Es wird 'index zusatz' an die durch die Index-Anweisungen einge- + faßten Worte angefügt. Beispiel: + + \#ib (1)\#EUMEL-System\#ie(1, ", kapitales")\# ist + schön. + + Erscheint als 'EUMEL-System, kapitales ... 4' in der Indexdatei. + Diese Anweisung dient also dazu, auch Sub-Indizes zu ermöglichen. + +* limit (REAL CONST wert) + Zweck: Einstellen einer neuen Zeilenbreite in cm. Die Zeilenbreite gilt + solange, bis sie durch ein erneute 'limit'-Anweisung verändert wird. + +* linefeed (REAL CONST wert) + Zweck: Einstellen eines neuen Zeilenvorschubs in Abhängigkeit vom einge- + stellten Schrifttyp. + +* material (TEXT CONST mat) + Zweck: Angabe von installationsspezifischen Merkmalen für den Drucker. + +* off (TEXT CONST modification) + Zweck: Abschalten einer Modifikation. + +* on (TEXT CONST modification) + Zweck: Einschalten einer Modifikation. Folgende Modifikationen sind zur + Zeit möglich: + bold (Fettdruck) + italic (Kursivdruck) + underline (Unterstreichung) + revers (Weiß auf Schwarz) + +* page + Zweck: Anfang einer neuen Seite. 'page' muß als letztes auf einer Zeile + stehen. + +* page (INT CONST nr) + Zweck: Anfang einer neuen Seite mit 'nr' Seitennummer. + +* page length (REAL CONST cm) + Zweck: Einstellen der Seitenlänge in cm. + +* page nr (TEXT CONST seitennr zeichen, start) + Zweck: Einstellen eines neuen Seitennr-Zeichens und Anfangwerts bzw. + setzen der Seitennummer des bereits vorhandenen Seitenzeichens + ("%"). Neben dem vorhandenen "%"-Zeichen können zwei zusätzliche + (beliebige, aber von den "\#"-Zeichen unterschiedliche) Seiten- + zeichen definiert werden. + +* papersize (REAL CONST width, length) + Zweck: Angabe der Papiergröße des Druckers in cm. + +* print (INT CONST von, bis) + Zweck: Teilausdruck einer Datei. Der Drucker verarbeitet die Datei, bis er + an die Seite 'von' angelangt ist. Dann druckt er die Seiten bis + einschließlich 'bis'. Beachte, daß der EUMEL-Drucker die Seiten + immer ab 1 durchzählt (und eine eventuelle Seitennumerierung nicht + beachtet). + +* start (REAL CONST x, y) + Zweck: Legt den linken, oberen Eckpunkt des Schreibfeldes fest. Die + Angaben erfolgen in cm. + +* topage (TEXT CONST merkmal) + Zweck: Verweis auf eine Seite mit der Anweisung 'goalpage' und dem + gleichen 'merkmal'. Für 'topage' wird die Seitennummer von + 'goalpage' eingesetzt. + +* type (TEXT CONST schrifttyp name) + Zweck: Einstellen eines anderen Schrifttyps. Die verfügbaren Schriftarten + und deren Namen sind installationsspezifisch und deshalb hier nicht + beschrieben. + +* value + Zweck: Einsetzen des letzten 'count' Wertes. + +* value (TEXT CONST merkmal) + Zweck: Erfragen des mit 'count' gespeicherten Zählerwertes für 'merkmal' + und Einsetzen dieses Wertes durch 'pageform' in die Druckdatei. + + + +7. Kommando-Übersicht + +autoform + PROC autoform + Zweck: Aufruf von 'autoform' unter Verwendung des letzten eingestellten + Dateinamens. + + PROC autoform (TEXT CONST datei) + Zweck: 'lineform' mit automatischer Silbentrennung. Nur die vorgenomme- + nen Trennungen werden auf dem Bildschirm angezeigt. + + PROC autoform (FILE VAR f, TEXT CONST type name, REAL CONST width) + Zweck: Wie oben, jedoch auf einer Datei. + +index + PROC index (TEXT CONST eingabe datei) + Zweck: Erstellen von Indexdateien aus einer Druckdatei wie beschrieben. + Eine Indexdatei erhält den Namen der zu bearbeitenden Datei mit + dem Zusatz ".i" und der entsprechenden Indexnummer. Hat das + Programm 'index' die Druckdatei bearbeitet, werden die in die + Indexdatei geschriebenen Einträge alphabetisch sortiert (nach + Anfrage). Gleiche Einträge werden zusammengezogen: ein gleich- + lautender Eintrag wird entfernt, seine Seitennummer wird jedoch + an den bereits vorhandenen mit einem Komma aggefügt. + + Die Sortierung entspricht DIN 5007: + - Die Sortierreihenfolge enspricht 'ABC...Z', wobei große und + kleine Buchstaben gleich behandelt werden. + - Weitere Entsprechungen: + ö = oe, ä = ae, ü = ue + Ö = Oe, Ü = Ue, Ä = Ae, Ä = ä, Ü = ü, Ö = ö, ß = ss + Dadurch wird z.B. 'muß' vor 'Muster' einsortiert und 'Goethe' + ist gleich 'Göthe'. + - Alle Sonderzeichen (außer " " und "-") werden ignoriert. + - Ein Leerzeichen und ein Bindestrich zwischen Worten werden + gleich behandelt. Beispiel: + + 'EUMEL System' und 'EUMEL-System' sind also gleich. + + Es sind z.Z. max. neun unterschiedliche Indexdateien vorgesehen. + Der Name einer Indexdatei ergibt sich aus dem Namen der zu bear- + beitenden Druckdatei, wobei '.p' durch '.i' mit der entsprechen- + den Ziffer ersetzt wird. Beispiel (für Indizes mit + 'index nummer' = 1, z.B. \#ib\# ... \#ie\#): + + skript.p --> skript.i1 + +index merge + PROC index merge (TEXT CONST von, hinzu) + Zweck: Einmischen der Indizes der Indexdatei 'von' in die Indexdatei + 'hinzu'. Beide Indexdateien müssen vorhanden sein. Dabei wird + 'von' vor dem ersten Satz von 'hinzu' eingefügt und anschließend + ggf. sortiert. + +list macros + PROC list macros (TEXT CONST datei) + Zweck: Ausgabe der "geladenen" Makros in die Datei 'datei'. 'datei' darf + vorher nicht existieren, wird also von 'list macros' eingerichtet. + Die "geladenen" Makros bleiben unberührt. Man kann die mit 'list + macros' in die Datei 'datei' geschriebenen Makro-Definitionen ggf. + verändern und erneut mit 'load macros' laden. + Fehlerfall: + * file already exists + Ausgabe-Datei 'datei' ist bereits vorhanden. + +lineform + PROC lineform + Zweck: Der zuletzt verwandte Dateiname wird benutzt. Beispiel: + + edit ("test") + ... + lineform (* wird zu 'lineform ("test") *) + + PROC lineform (TEXT CONST dateiname) + Zweck: Formatieren einer Datei zeilenweise. + + PROC lineform (FILE VAR f, TEXT CONST type name, REAL CONST width) + Zweck: Aufruf von 'lineform' von einem Programm. + +load macros + PROC load macros (TEXT CONST datei) + Zweck: Lädt Makro-Definitionen in den Makro-Speicher des Textsystems. Die + Definitionen müssen in der Datei 'datei' enthalten sein (mit dem + Editor erstellen). Es können mehrere Definitionen in der Datei ent- + halten sein. Um den Makro-Speicher zu leeren, übergibt man eine + leere 'datei'. + + Eine Makro-Definition besteht aus einem + - Makro-Kopf: + Muß alleine auf einer Zeile stehen. Der Makro-Kopf fängt mit + '\#*'-Zeichen an und wird mit '\#' beendet. Beispiel: \#*ein macro\# + Der Name eines Macros muß (wie alle andern Anweisungen auch) + mit kleinen Buchstaben geschrieben werden. Leerzeichen spielen + keine Rolle. + Eventuelle Parameter müssen in Klammern (bei mehreren durch + Kommata getrennt) und mit einem $-Zeichen numeriert werden. + Beispiel: + \#*macro1 ($1)\# + \#*macro 2 ($1, $2)\# + + - Makro-Rumpf: + Besteht aus beliebig vielen Text-Zeilen, die Kommandos enthalten + können. Parameter (also das $-Zeichen mit anschließender Nummer) + werden bei Aufruf eines Makros ersetzt. In einem Makro-Rumpf + darf keine Makro-Anweisung erscheinen, die noch nicht definiert + wurde (sog. "Vorwärts-Referenzen"). + + - Makro-Ende: + besteht aus der Anweisung + \#*macro end\# + und muß wie der Makro-Kopf alleine auf einer Zeile stehen. + + Fehlerfälle: + * file does not exists + Die Eingabe-Datei 'datei' ist nicht vorhanden. + * macro store overflow (number lines) + Es passen zur Zeit nicht mehr als 1 000 Zeilen in den Makro-Speicher. + * macro store overflow (number macros) + Es passen zur Zeit nicht mehr als 100 Makro-Defintionen in den + Makro-Speicher. + +pageform + PROC pageform + Zweck: Wie beschrieben, jedoch ohne Parameter. Die zuletzt benutzte + Datei wird bearbeitet. Für die Druckdatei wird dieser Dateiname, + an den ".p" angehängt wird, eingesetzt. Beispiel: + + edit ("test") + ... + pageform (* wird zu 'pageform ("test", "test.p")' + ergaenzt *) + + PROC pageform (TEXT CONST dateiname) + Zweck: Wie beschrieben, wobei der Parameter für die Druckdatei ergänzt + wird (an 'dateiname' wird '.p' angehängt). Beispiel: + + pageform ("test") + (* wird zu 'pageform ("test", "test.p")' ergaenzt *) + + PROC pageform (TEXT CONST dateiname, druckdatei) + Zweck: Wie oben. + +print + PROC print (TEXT CONST datei) + Zweck: Druck der Datei 'datei' unter Berücksichtigung von Anweisungen. + + + -- cgit v1.2.3