..Dies ist die Dokumentation im HyperMake (MakeIPF)-Format. ..Aus dieser Datei kann eine HTML oder IPF-Datei ..erzeugt werden. Lesen Sie bitte README.1ST. ..Falls Sie trotzdem den Rohtext als "Anfänger" anschauen möchten, ..folgende Hinweise: ..Punktbefehle beginnen mit einem Punkt und werden nur interpretiert, ..wenn sie unmittelbar am Anfang der Zeile stehen. In diesem Text werden ..viele Punktbefehle absichtlich ausgedruckt und nicht interpretiert, ..weil davor noch ein Leerzeichen steht. ..Kapitelüberschriften wird ein .n vorangestellt, wobei n die Hierarchie ..angibt (1 bis 6). Das Zeichen µ markiert Wörter für den Index und als ..Querverweis-Ziel, µ:Wort1 Wort2: markiert einen Ausdruck. ..Die restlichen Sonderzeichen sind Umschalter (Toggles), z. B. für ..fette Schrift. .TI Dokumentation HyperMake 2.91 .fu[] .bt¿ reddot .ft¿ .stµ .1 Einführung HyperMake (früher MakeIPF) dient der einfachen Erstellung von Dateien im HTML- und IPF-Format. Statt direkt HTML-Dateien oder IPF-Dateien zu editieren, wird ein ASCII-Rohtext erstellt, der weitaus weniger Kommandos erhält. Querverweise werden automatisch gezogen, mit nur einem Befehl werden Fenster verschiedener Gliederungsebenen gleichzeitig angezeigt ("Frames"), am Ende eines Kapitels wird automatisch auf Unterkapitel verwiesen und vieles mehr. Die neue Version 2.9 ist die erste Version, die auch HTML-Dateien erzeugen kann. Aus nur einem Quelltext lassen sich sowohl HTML- als auch wie bisher IPF-Dateien erzeugen. Neu in 2.9 ist auch eine Rückwärts-Konvertierung von IPF nach HyperMake. Dies ist dann sinnvoll, wenn eine Dokumentation schon im IPF-Format vorliegt. Künftige HyperMake-Versionen wird es unter verschiedenen Betriebssystemen geben. HyperMake ist nicht in erster Linie dafür gedacht, eine einzelne Homepage zu schreiben. Seine Stärke liegt in der Erstellung größerer Dokumente wie wissenschaftliche Arbeiten oder Programmdokumentationen mit Inhaltsverzeichnis und Stichwortverzeichnis (Index). Wenn Sie HyperMake verwenden, müssen Sie lediglich das vergleichsweise einfache HyperMake-Format erlernen. Sie können HyperMake Quelltexte erstellen mit ¶ einem ASCII-Editor mit autom. Zeilenumbruch ¶ einem ASCII-Editor ohne autom. Zeilenumbruch ¶ oder einem alten DOS WordStar Version 3.4 oder 4. HyperMake hat einige leistungsstarke Features zu bieten: ¶ ©Automatische Querverweis- und Index-Erstellung© Das Markieren eines Wortes oder eines Ausdrucks mehrerer Wörter mit einem speziellen Zeichen hat zur Folge: - Querverweise (engl. links) von allen gleichlautenden Ausdrücken im Text zur markierten Textstelle hin - einen entsprechenden Eintrag im Index (zu deutsch Stichwortverzeichnis). .IF HTMLDOC ¶ ©Automatische Zerlegung in zahlreiche HTML-Dateien© Beim Erzeugen von HTML-Dateien wird eine Quelldatei in zahlreiche einzelne HTML-Dateien zerlegt. Dies führt zu höherer Performance bei der Benutzung von Browsern. Weder der Autor des Textes noch der Betrachter merkt etwas davon. .END .IF IPFDOC ¶ ©Automatische Erstellung von Helptables© Für OS/2 HLP-Dateien dürfen in den HyperMake ASCII-Quelltext direkt ID Konstanten wie "ID_buttonOK" eingetragen werden, um eine Verbindung zwischen dem Knopf und der erläuternden Textpassage herzustellen. HyperMake generiert eine Helptable-Datei, die in die RC-Datei eingebunden werden kann. .END ¶ ©Automatische Erstellung von Querverweisen zu Unterkapiteln© .sno Am Ende eines Hauptkapitels, vor dem ersten Unterkapitel, werden Querverweise zu allen Unterkapiteln und zum nächsten Hauptkapitel erstellt. .sn ¶ ©Automatische Anordnung von Kapiteln verschiedener Gliederungsebenen am Bildschirm© Mit nur einem kurzen Befehl erhalten die folgenden Kapitel je nach Gliederungsebene verschiedene Positionen und Größen am Bildschirm - es werden also Kindfenster (engl. Frames) generiert. Zwei oder gar drei Fenster verschiedener Gliederungsebenen, also Kapitel, Unterkapitel, Unterunterkapitel, erscheinen so gleichzeitig, vgl. Beispiel Fensteranordnung. ¶ ©Einfache Erstellung von Fußnoten© ¶ ©Automatisches Linienziehen, um Kästchen zu erstellen© ¶ ©Kurze, einfache Befehle© - für Kapitelüberschriften und deren Gliederungsebene - um Schriften auszuwählen - um Grafiken allein oder im Fließtext auszugeben - um unsortierte Listen / sortierte Listen (engl. unordered lists / ordered lists) zu generieren. (Dies hier ist eine zweistufige unsortierte Liste.) In dieser Version 2.9 fehlt noch die Unterstützung von Tabellen (Tables) sowohl für HTML als auch für IPF. Dies ist für 3.0 vorgesehen. .2 HTML-Dateien, Web-Browser und Internet .in Dateiformat HTML .in HTML-Datei Die µ:Hypertext-Markup-Language HTML: ist ein plattformübergreifendes Dateiformat für Texte. Es handelt sich um einen ASCII-Text, in den mit spitzen Klammern <> Kommandos eingestreut sind. Wichtigstes Merkmal sind die Querverweise, sog. Links. Um HTML-Dateien zu betrachten, benötigt man Browser. In der Regel befinden sich die Dateien nicht lokal auf dem eigenen Rechner, sondern im Internet. Trotzdem aber läßt sich das HTML-Format dazu benutzen, lokal gespeicherte Daten wie Programmdokumentationen oder Nachschlagewerke anzuschauen. Der aktuelle Entwicklungsstand von HTML ist 3.2. Dieser Stand wird von HyperMake unterstützt. Die wichtigste Neuerung sind Frames (Fensteranordnung). Mit HyperMake erzeugte HTML-Dateien, die Frames enthalten, können auch mit älteren Browsern betrachtet werden, dann natürlich ohne Frames. .2 IPF, INF und HLP-Dateien .in Dateiformat IBM INF .in Dateiformat IBM HLP .in Dateiformat IBM IPF .in IPF-Datei HTML Browser sind langsam und schwerfällig. IBM INF und HLP Dateien sind kompakte Binärdateien. Der Viewer (Betrachter) ist klein und sehr schnell. IBM INF Viewer gibt es für OS/2 (das Format aller OS/2-Programmdokumentationen), für Win16 und für DOS. Der Win16 Viewer ist Teil des Pakets "Just add Warp"; es werden die Dateien LIBIPFX.DLL, VIEW.EXE und VIEWH.HLP benötigt. Der DOS Viewer ist in IBM DOS 7 enthalten und es gibt auch ein Freewareprogramm (VIEW01.ZIP Compuserve OS2DF1). Um IBM INF-Dateien zu erstellen, benötigen Sie den IBM IPFC Compiler (von IPF nach INF). Dieser ist Bestandteil von OS/2-Entwicklungssystemen, es soll ihn aber auch für Windows geben.[Die Windows-Version ist Bestandteil des IBM Visual Age C++ Entwicklungssystems.] Im Vergleich zu HTML-Browsern haben die IBM INF Viewer einige leistungsstarke Features, die vor allem bei großen Dokumenten zum Tragen kommen: ¶ der Index ist Bestandteil des binären INF Formates ¶ ebenso das Inhaltsverzeichnis, Kapitelüberschriften lassen sich wie Verzeichnisbäume auf- und zuklappen ¶ sehr schnelle Such-Funktion: Da intern jedes Wort nur einmal gespeichert ist und Zeiger auf die tatsächlichen Textstellen zeigen, können mehrere MB pro Sekunde nach bestimmten Wörtern abgesucht werden. Der Benutzer erhält dann ein Auswahlfenster mit allen Kapiteln, in denen der Suchbegriff vorkommt. ¶ Mehrere INF-Dateien können per Kommandozeilenparameter "zusammengehängt" werden, so daß für den Benutzer eine große Hilfedatei mit entsprechend vergrößertem Inhaltsverzeichnis und Index entsteht. Die wichtigen HTML-Features wie Tables, Frames, Bilder usw. sind alle auch im IBM INF-Format enthalten. Der Inhalt von IBM INF- und HLP-Dateien wird in einer Sprache namens IPF eingegeben, ähnlich HTML. Es ist ein mächtiges Werkzeug, mit dem praktisch alles machbar ist, was in einem solchen Hypertext denkbar ist. Allerdings ist diese Eingabesprache ziemlich umständlich und hat kaum eine Eigenintelligenz. Deshalb findet man als OS/2-Anwender häufig farblose Hypertexte, die z. B. fast keine Querverweise enthalten. Die Dokumentation zum IPF-Format gibt es nur in englischer Sprache, so daß manche Benutzer dabei ihre Schwierigkeiten haben. HyperMake erleichtert Ihnen die Erstellung von IBM INF-Dateien[Das IBM information format ist ein Hypertext-Format, insbesondere für Programmdokumentationen.] und HLP-Dateien[Das HLP-Format ist ähnlich dem INF-Format, ermöglicht aber Verbindungen zwischen dem zu beschreibenden Programm und dem Hypertext. HLP-Dateien sind sozusagen Bestandteil des Anwenderprogramms.]. HyperMake generiert IPF[Das IPF Format (Information Presentation Facility) ist der Ausgangstext, um INF- oder HLP-Dateien zu erstellen.] Dateien von einem speziellen HyperMake ASCII-Format. Aus einer solch automatisch erstellten IPF-Datei wird dann mit dem IBM-Programm µIPFC[IPFC ist Bestandteil jedes OS/2 Programm-Entwicklungssystems. Auf meinem Rechner sind es die Dateien IPFC.EXE, IPFC20.INF und IPFCEXMP.INF sowie ein Verzeichnis IPFC mit länderspezifischen Informationen.] die INF- oder HLP-Datei erzeugt. .1 Erstellen eines HyperMake Quelltextes .in Erstellen eines HyperMake Quelltextes .FA verti 25 .2 Grundlagen .3 Punktbefehle Das HyperMake-Format verwendet µ:Punktbefehl:e wie der gute alte DOS WordStar. Ein Punktbefehl benötigt eine eigene Zeile und beginnt mit einem Punkt, zum Beispiel .snb .SN .sn stellt die Normalschrift auf den Standardwert (engl. default). Punktbefehle können sowohl mit Klein- als auch mit Großbuchstaben geschrieben werden. Viele Punktbefehle erwarten die Eingabe von Parametern, z. B. .snb .LM10 .sn verstellt den linken Rand auf 10. Dabei darf auch ein Leerzeichen zwischen Punktbefehl und Parameter stehen. Die Zeile .snb ..Kommentar .sn wird ignoriert. .IF IPFDOC .snb .:IPFbefehl. .:IPFbefehl. Ausdruck .sn Sie können IPF-Befehle direkt eingeben (was jedoch eher die Ausnahme ist, da alle wichtigen Kommandos Bestandteil des einfacheren HyperMake Formates sind.) .END IPFDOC .IF HTMLDOC .snb .HTML Fließtext usw. .HYPERMAKE .sn Sie können auch direkt HTML-Text und -Kommandos schreiben - z. B. für µ:Java-Skript:s, er wird ohne Änderung übernommen. .END HTMLDOC Wenn Punktbefehle aus mehr als zwei Buchstaben bestehen, müssen Sie nur die ersten zwei Buchstaben unbedingt schreiben. Beginnt ein Punktbefehl nicht in der ersten Spalte, so wird er nicht interpretiert, sondern erscheint im Fließtext. In diesem Hypertext befindet sich ein Verzeichnis aller Punktbefehle. .3 Umschaltzeichen .in Umschaltzeichen .in toggle .in Zeichen für Umschalter In der Ini-Datei können Sie einige ¡Umschaltzeichen¡ (engl. toggle) definieren. Zwischen zwei identischen Umschaltzeichen wird eine bestimmte Funktion aktiviert, beispielsweise "fett". Wenn Sie in der Ini-Datei "*" für "fett" und " @" für "italic" (d. h. schräg) eingestellt haben, können Sie schreiben: .snb Dieser *Teil des Satzes* ist besonders wichtig. .sn Sie erhalten dann: Dieser ©Teil des Satzes© ist besonders wichtig. Sie können Umschaltzeichen auch überlagert verwenden: .snb Das ist *fett und @gleichzeitig italic* und nur italic@. .sn Das ist ©fett und ¡gleichzeitig italic© und nur italic¡. Aber achten Sie darauf, daß Sie die Umschaltzeichen nicht anderweitig im Text verwenden. Sie müssen sich also Zeichen überlegen, die Sie auf jeden Fall im Text nicht benötigen. Sinnvoll sind bei der Verwendung der IBM Codepage die Steuerzeichen unter ASCII dezimal 32, wenn der verwendete Editor diese unterstützt,[natürlich ohne 0x0A, 0x0D, 0x1A (dezimal 10, 13, 26)] und bei HTML die Zeichen oberhalb von ASCII dezimal 127. .3 Bedeutung von Returns .in Bedeutung von Returns .in ASCIIHARDRET .in ASCIISOFTRET Wenn Sie einen HyperMake-Quelltext ÷mit einem ASCII Editor÷ schreiben, können Sie zwischen zwei verschiedenen Arten wählen, wie Returns (Zeilenvorschübe) interpretiert werden sollen. Mit der ASCIIHARDRET Einstellung in der Ini-Datei, Abschnitt source format, wird jeder Return auch tatsächlich als eine neue Zeile verstanden. Wählen Sie diese Einstellung, wenn Ihr Editor zu lange Zeilen automatisch in die neue Zeile umbricht, ¡ohne¡ aber selbständig Return-Steuerzeichen in den Text zu schreiben. Der OS/2 E und EPM Editor unterstützen dies ("Optionen - Zeilenumbruch ein"). Andernfalls verwenden Sie besser ASCIISOFTRET. Das interpretiert ein Return-Steuerzeichen nur dann als wirkliche neue Zeile, wenn ¶ zwei Returns direkt aufeinander folgen (also eine Leerzeile eingefügt ist) ¶ das letzte Zeichen in der vorangegangenen Zeile . ! ? : ; ist. .IF WORDSTARDOC Wenn Sie den Quelltext ÷mit einem DOS WordStar÷ schreiben, gibt es solche Probleme nicht, weil WordStar zwischen harten und weichen Returns unterscheidet. .END .2 Textanfang Jedes Dokument hat einen µTitel. Dieser erscheint als Titel des Hauptfensters und auch in der Fensterliste. .snb .TI Dokumentation von meinem Programm .sn legt den Titel der HTML-Datei bzw. INF-Datei fest. Jeder HyperMake-Quelltext, mit dem eine INF-Datei erstellt wird, muß mit einem solchen Titel beginnen, noch vor der ersten Kapitelüberschrift. .IF HTMLDOC HyperMake erzeugt aus nur einer Quelldatei mehrere HTML-Dateien. Jede HTML-Datei erhält den selben Titel. .END .IF IPFDOC Bei HLP-Dateien wird der Titel über den Programm-Quelltext festgelegt (siehe function InitHelp). Der Titel-Punktbefehl im HyperMake-Quelltext wird ignoriert. In HLP-Dateien werden standardmäßig die Tasten "Inhalt", "Zurück" und "Vorwärts" ausgeblendet. Wenn Sie die gleichen Tasten wie bei INF-Dateien haben wollen, so verwenden Sie am Textanfang den folgenden Punktbefehl: .snb .<> .sn .END .2 Kapitel Die mit HyperMake erzeugten HTML-Dateien und IBM INF-Dateien verfügen über ein µInhaltsverzeichnis. .IF IPFDOC Wenn man eine INF-Datei aufruft, erhält man zu Beginn ein Inhaltsverzeichnis, bei dem man wie in einem Verzeichnisbaum Kapitelüberschriften auf- und zuklappen kann. Der Text, der unter jeder µKapitelüberschrift steht, erhält ein eigenes Fenster. .END .IF HTMLDOC Erzeugt HyperMake HTML-Dateien, dann erhält man unter dem Dateinamen INDEX.HTML ein Inhaltsverzeichnis. .END Es lassen sich µKapitel und Unterkapitel wie in einer wissenschaftlichen Arbeit gliedern: .snA Hauptüberschrift Erste Unterüberschrift Zweite Unterüberschrift Erste Unterunterüberschrift Zweite Unterunterüberschrift Dritte Unterüberschrift .sn Im HyperMake Quelltext schreiben Sie Kapitelüberschriften wie folgt: .snb .1 Erste Hauptüberschrift .2 Erste Unterüberschrift .2 Zweite Unterüberschrift .3 Erste Unterunterüberschrift .3 Zweite Unterunterüberschrift .2 Dritte Unterüberschrift .1 Zweite Hauptüberschrift .sn Unter dem Punktbefehl, in dem sie die µGliederungsebene angeben, schreiben Sie den Text der Kapitelüberschrift. Der Text darf mehr als eine Zeile lang sein. Wenn Sie als Quelltextformat ASCIISOFTRET gewählt haben, müssen Sie zwei Returns (also eine Leerzeile) nach der Kapitelüberschrift eingeben. In einem normalen, ausgedruckten Schriftstück würde man stattdessen z. B. Dezimalklassifiation verwenden: 1. Erste Hauptüberschrift 1.1 Erste Unterüberschrift 1.2 Zweite Unterüberschrift 1.2.1 Erste Unterunterüberschrift 1.2.2 Zweite Unterunterüberschrift 1.3 Dritte Unterüberschrift 2. Zweite Hauptüberschrift .IF IPFDOC Der Text hinter dem Gliederungsebenen-Punktbefehl ist auf etwa 200 Buchstaben begrenzt[Der IPFC Compiler würde eine Fehlermeldung erzeugen.], aber man sieht im Fenstertitel nur etwa 70 bis 120 Buchstaben, abhängig von der Breite des Fensters auf dem Bildschirm. .END Zu Beginn des HyperMake-Quelltextes kann normaler Text erst nach der ersten Kapitelüberschrift eingegeben werden.[Jede Kapitelüberschrift steht für ein Fenster. Ohne Fenster kann kein normaler Text dargestellt werden, der IPFC Compiler würde Fehlermeldungen erzeugen.] Es dürfen bis zu 6 Gliederungsebenen verwendet werden. Wenn ein Kapitel Unterkapitel hat, werden automatisch Verweise zu Unterkapiteln und ein Verweis auf das nächste Hauptkapitel generiert. .3 Gleichzeitiges Anzeigen mehrerer Fenster .in Fensteranordnung .in Frames Mit nur einem einmalig zu verwendenden Punktbefehl sind Sie in der Lage, das Hypertext-Fenster in zwei oder drei Abschnitte zu teilen, so daß zwei oder drei Kapitel verschiedener Gliederungsebenen gleichzeitig angezeigt werden. .snL Gleichzeitiges Anzeigen zweier Gliederungsebenen .sn Wenn Sie den Punktbefehl ¡Fensteranordnung¡ .snb .FA verti 30 .sn vor einem normalen Gliederungsebenen-Punktbefehl schreiben, wird das Hauptfenster ¡vertikal¡ in ein linkes Fenster (30% der Bildschirmbreite) und ein rechtes Fenster (die verbleibenden 70%) unterteilt. Im linken Fenster erscheint das Fenster, dessen Kapitelüberschrift nach dem FA Punktbefehl geschrieben wurde (im folgenden "Hauptkapitel" genannt); im rechten Fenster erscheint das Unterkapitel. Geben Sie bitte zwischen den Parametern des FA Punktbefehls ein Leerzeichen ein. Wenn Sie die Fensteranordnungs-Funktion verwenden, empfehle ich dringend, die automatischen Querverweise zu Unterkapitel nicht auszuschalten. .snb .FA hori 40 .sn unterteilt das Hypertext-Hauptfenster ¡horizontal¡. Das Hauptkapitel erhält das obere Fenster (40% der Gesamthöhe), das Unterkapitel das untere Fenster (die verbleibenden 60%). Sie dürfen Prozentwerte von 10 bis 90 eingeben. Für ein Beispiel zur zweiteiligen Fensteranordnung siehe Verzeichnis aller Punktbefehle und Ini-Datei. .snL Gleichzeitiges Anzeigen dreier Gliederungsebenen .sn Diese Funktion steht bislang nur bei der Erstellung von IPF-Dateien zur Verfügung. .IF IPFDOC In gleicher Art und Weise können Sie auch drei Gliederungsebenen gleichzeitig anzeigen lassen. Dabei müssen Sie eine Angabe zu ¡hori¡ und zu ¡verti¡ machen: .snb .FA hori 40 verti 30 III .sn .sab Die erste hori/verti-Angabe unterteilt das Hauptfenster auf ganzer Länge von links nach rechts bzw. von oben nach unten. Die zweite Angabe unterteilt einen der Teile wiederum in zwei Teile, so daß Sie drei Fenster erhalten: zwei kleinere und ein größeres. Sie können wählen, welche Gliederungsebene das größere Fenster bekommt, wobei Sie zwischen ~I~ und ~III~ einstellen können. So können Sie zwischen insgesamt vier Arten der Fensteranordnung wählen: .liXY verti hori hori verti +-----+----------+ +----------------+ | | II | | I | I | I +----------+ +-----+----------+ | | III | | II | III | | | | | | | +-----+----------+ +-----+----------+ +-----+----------+ +-----+----------+ | I | | | I | II | +-----+ | +-----+----------+ III | | III | | | | II | | | III | | | | | | +-----+----------+ +----------------+ .li ~I~ ist das Hauptkapitel, ~II~ das Unterkapitel, ~III~ das Unterunterkapitel. Der Punktbefehl Fensteranordnung gilt nur über ein Hauptkapitel mit seinen Unter- und Unterunterkapiteln. Die Fensteranordnung arbeitet nur, wenn der Benutzer direkt das Hauptkapitel aufruft. Wenn über einen Querverweis direkt ins Unterunterkapitel gesprungen wird (~III~), wird das Hauptfenster nicht entsprechend unterteilt. Bei einem Querverweis ins Unterkapitel (~II~) erscheint zwar auch die Ebene ~III~, jedoch bleibt der für ~I~ reservierte Platz ungenutzt. Wenn Sie drei Gliederungsebenen gleichzeitig angezeigt haben wollen, aber nicht jedes Kapitel über die dritte Gliederungsebene verfügt, sollte immer Ebene ~I~ das größte Fenster erhalten, also ~I~ und nicht ~III~ im FA-Punktbefehl stehen. Dann nimmt das Kapitel der Ebene II den sonst für III reservierten Platz mit ein. .4 Beispiel Fensteranordnung - Quelltext .snz .FA verti 50 hori 40 I .4 Beispiel Fensteranordnung - Ergebnis Das Hauptkapitel mit Querverweisen zu Unterkapiteln. .5 Erstes Unterkapitel Das erste Unterkapitel mit Querverweisen zu Unterunterkapiteln. (3-fach-Unterteilung für HTML wird in HyperMake 2.9 noch nicht unterstützt.) .6 Erstes Unterunterkapitel Das erste Unterunterkapitel vom ersten Unterkapitel. .6 Zweites Unterunterkapitel Das zweite Unterunterkapitel vom ersten Unterkapitel. .5 Zweites Unterkapitel Das zweite Unterkapitel. .6 Erstes Unterunterkapitel Das erste Unterunterkapitel vom zweiten Unterkapitel. .6 Zweites Unterunterkapitel Das zweite Unterunterkapitel vom zweiten Unterkapitel. .sn .FA verti 40 hori 50 I .4 Beispiel Fensteranordnung - Ergebnis .in Beispiel Fensteranordnung Das Hauptkapitel mit Querverweisen zu Unterkapiteln. .5 Erstes Unterkapitel Das erste Unterkapitel mit Querverweisen zu Unterunterkapiteln. (3-fach-Unterteilung für HTML wird in HyperMake 2.9 noch nicht unterstützt.) .6 Erstes Unterunterkapitel Das erste Unterunterkapitel vom ersten Unterkapitel. .6 Zweites Unterunterkapitel Das zweite Unterunterkapitel vom ersten Unterkapitel. .5 Zweites Unterkapitel Das zweite Unterkapitel. .6 Erstes Unterunterkapitel Das erste Unterunterkapitel vom zweiten Unterkapitel. .6 Zweites Unterunterkapitel Das zweite Unterunterkapitel vom zweiten Unterkapitel. .END .FA verti 75 .2 Schriften .in Schrift .in font .snL µ:Schrift Normal: .sn Mit dem Punktbefehl ¡Schrift Normal¡ .sab ~.SNX~ können Sie eine Schrift auswählen, wobei ~X~ für einen Schrift-Buchstaben (A bis Z und a bis z) steht; Groß- und Kleinbuchstaben werden unterschieden! Ein Schrift-Buchstabe steht für eine bestimmte ¶ Schrifttyp (nur IPF) (Courier, Tms Rmn, Helv usw.) ¶ Size (Schriftgröße) ¶ Codepage (nur IPF) ¶ Phrase Element (nur HTML) ¶ Vordergrundfarbe ¶ Hintergrundfarbe (nur IPF). Sie können jedem der 2 x 26 Schrift-Buchstaben in der Ini-Datei verschiedene Schriften, Größen und Farben zuordnen. Es gibt noch zwei andere Schrift-Einstellungen in der Ini-Datei: ~OmitLinks~ ist beschrieben in Querverweise, ¡Unterdrücken von Querverweisen¡, ~LineStandard~ in Linienziehen. Um Schrift Normal auf den Standardwert (default) zu setzen, schreiben Sie einfach den Punktbefehl ohne weitere Parameter: ~.SN~ .IF HTMLDOC .snL µ:Phrase Element: .sn Eine besondere Erläuterung benötigen die Phrase Elements von HTML. Bei HTML können Sie nicht direkt die Schriftart "Courier", "Helvetica" usw. auswählen, denn das zugrundeliegende Konzept ist ein anderes - schließlich wird vielleicht der Text auf einem Rechner angeschaut, der gar keine "Courier" Schrift verwendet. Die Schrift soll der Benutzer einstellen können. Als Autor des HTML-Textes können Sie stattdessen mittels Phrase Elements den ¡Zweck des Textes¡ angeben: etwa CODE für Programmcode (es wird Schrift in festen Schritten verwendet). Der Browser wählt dann eine passende Schrift dazu aus. Es gibt die folgenden Phrase Elements: PRE ADDRESS EM STRONG DFN CODE SAMP VAR CITE PRE spielt dabei eine Sonderrolle: Wenn eine Schrift mit Phrase Element PRE gewählt ist, bleiben die Zeilenumbrüche aus dem Rohtext alle erhalten - die automatische Formatierung von Fließtext ist dann ausgeschaltet. Die restlichen Phrase elements haben die folgende Bedeutung: ~EM~ Standard-Hervorhebung, meist kursiv dargestellt ~STRONG~ starke Hervorhebung, meist fett dargestellt ~DFN~ für Definitionen ~CODE~ für Programm-Quellcode ~SAMP~ für Programm-Beispielsausgaben ~VAR~ für Variablen oder Parameter von Befehlen ~CITE~ für Zitate .END .snL Formatier-Attribute .sn Mit dem ~center~ Attribut in der Ini-Datei wird eine Schrift immer zentriert ausgegeben. Der Punktbefehl Output Centered läßt sich so sparen. .IF IPFDOC Für IPF läßt sich mit dem Attribut ~PRE~ die automatische Formatierung abstellen, beispielsweise für Quelltexte. Der entsprechende Punktbefehl Formatierung ist in diesem Fall nicht mehr nötig. .END .snL µ:Schrift Alternativ: .sn .in Zeichen für Schrift Alternativ Ähnlich ~.SN~ ist der Befehl ~.SA~ ¡Schrift Alternativ¡ zu verwenden. Die alternative Schrift wird mit Hilfe des Umschaltzeichens (Toggle) "Alternativ" gesetzt. Das Alternativ-Umschaltzeichen wird in der Ini-Datei gesetzt. So lassen sich Schrift und Farbe innerhalb des Fließtextes umschalten: .saZ Das schaut ziemlich ~d~ä~m~l~i~c~h~ aus. .sab .IF IPFDOC Der IPFC Compiler erlaubt nicht mehr als 14 Schriften in einer Datei. Ich empfehle, nicht mehr als 3 oder 4 verschiedene Schriften zu verwenden. Außerdem möchte ich Ihnen nahelegen, den Standardwert auch wirklich für den überwiegenden Teil des normalen Fließtextes zu verwenden. weil der Standardwert eine vernünftig lesbare Schrift auf ¡jedem¡ Bildschirm ist. .END Eine ausgewählte Schrift ist bis zum nächsten Schrift-Punktbefehl aktiv, selbst über Kapitel hinweg. Alternative Schriften sollten nur innerhalb eines Absatzes verwendet werden. Wenn Sie mehrere Absätze mit einer anderen Schrift schreiben wollen, verwenden Sie besser den ~.SN~-Befehl. .IF HTML .3 Phrase element Beispiele Phrase element Befehle werden von Browser zu Browser unterschiedlich dargestellt. .HTML
Beispielstext mit Phrase element ADDRESS

Beispielstext mit Phrase element PRE

Beispielstext mit Phrase element EM
Beispielstext mit Phrase element STRONG
Beispielstext mit Phrase element DFN
Beispielstext mit Phrase element CODE
Beispielstext mit Phrase element SAMP
Beispielstext mit Phrase element VAR
Beispielstext mit Phrase element CITE
.HYPERMAKE .END .3 Schrift-Beispiele .in Schrift-Beispiele .IF HTMLDOC HTML unterstützt nur Size (Schriftgröße), nicht direkt Font (Schrifttyp). .END .fm aus .snc Tms_Rmn 12 .snd Tms_Rmn 17 .sne Tms_Rmn 25 .snf Helv 12 .sng Helv 17 .snh Helv 25 .snb Courier 12 .snA Courier 15 .snk Courier 25 .sn .fm an .END IPFDOC .3 Farb-Beispiele .in Farb-Beispiele .IF IPF Farben bei IPF: ©Vordergrund© .:color fc=default. default .:color fc=blue. blue .:color fc=cyan. cyan .:color fc=green. green .:color fc=neutral. neutral .:color fc=red. red .:color fc=yellow. yellow .:color fc=black. black .:color fc=default. ©Hintergrund© DEFAULT .:COLOR BC=BLUE. BLUE .:COLOR BC=CYAN. CYAN .:COLOR BC=GREEN. GREEN .:COLOR BC=NEUTRAL. NEUTRAL .:COLOR BC=RED. RED .:COLOR BC=YELLOW. YELLOW .:COLOR BC=BLACK. BLACK .:color bc=default. .END IPF .IF HTML Farben bei HTML: .END .HTML
Black
Silver
Gray
White
Maroon
Red
Purple
Fuchsia
Green
Lime
Olive
Yellow
Navy
Blue
Teal

.HYPERMAKE Ältere Browser unterstützen noch keine Farben. .2 Unsortierte und sortierte Listen .in Auflistung .sv unsortierte Liste .sv unordered list Das folgende Beispiel ist eine unsortiere Liste: ¶ Schriftstil - Schrift (default, Tms_Rmn, Helv, Courier, System_VIO) - Schriftgröße ¶ Schriftfarbe - Vordergrundfarbe (default, blue, cyan, green, neutral, red, yellow, black) - Hintergrundfarbe (gleiche Farben wie bei Vordergrundfarben). Verändern Sie einmal die Breite des Fensters und beobachten Sie die Textformatierung. Ein solches Ergebnis läßt sich nicht mit normalen Zeichen erzielen. Die hier sichtbaren µAuflistungszeichen können nicht beeinflußt werden, da sie im IPFC Compiler bzw. im HTML-Browser festgelegt sind. Bei sortierten Listen wird ähnlich wie bei unsortierte Listen vorgegangen. Die HTML- und IPF-Funktion Definition List wird nicht unterstützt; sie können es aber mit Hilfe des Befehls automatischer Rand simulieren. .IF WORDSTARDOC .3 Eingabe mit DOS WordStar .sab WordStar verfügt über "µ:weiche Leerzeichen;" ~°~. Sie können im WordStar mit ^OG erzeugt werden.[Weiche Leerzeichen werden im WordStar entweder als ~°~, oder einem mittigen Punkt oder einem anderen Sonderzeichen dargestellt. Wenn ein Absatz mit ^B neu formatiert wird, werden weiche Leerzeichen gelöscht. Mit Tab (^I) lassen sich keine weichen Leerzeichen erzeugen.] Es gibt keine bestimmten Auflistungszeichen für die verschiedenen Auflistungsebenen wie bei der Eingabe mit einem ASCII Editor. Stattdessen müssen weiche Leerzeichen verwendet werden. .snb ¶°Schriftstil °°-°°Schrift (default, Tms_Rmn, Helv, Courier, System_VIO) °°-°°Schriftgröße ¶°Schriftfarbe °°-°°Vordergrundfarbe (default, blue, cyan, green, neutral, °°°°°red, yellow, black) °°-°°Hintergrundfarbe (gleiche Farben wie bei Vordergrundfarben). .sn Mit Ausnahme der ersten Auflistungsebene müssen sich alle Auflistungszeichen ¡zwischen¡ weichen Leerzeichen befinden; in der ersten Ebene muß dem Auflistungszeichen mindestens ein weiches Leerzeichen folgen. Wenn einmal die Position und das Zeichen des Auflistungszeichens einer Ebene gewählt worden ist, darf innerhalb der gleichen Liste dies nicht mehr geändert werden. Beim folgenden Beispiel würde HyperMake Fehlermeldungen erzeugen: .snb ¶°Schriftstil °°-°°Schrift (default, Tms_Rmn, Helv, Courier, System_VIO) °°°-°Schriftgröße ®(falsche Position)® ¶°Schriftfarbe °°-°°Vordergrundfarbe (default, blue, cyan, green, neutral, °°°°°red, yellow, black) °°*°°Hintergrundfarbe ®(falsches Zeichen)® .sn Nachdem Sie einen normalen Abstatz ohne Listen-Funktion geschrieben haben, dürfen Sie für die nächste unsortierte Liste wieder andere Auflistungszeichen-Positionen und -Zeichen verwenden. .3 Eingabe mit einem ASCII-Editor .END WORDSTARDOC .in Auflistungen mit einem ASCII-Editor .in Zeichen für Auflistungsebenen In der Ini-Datei können Sie Auflistungszeichen definieren. Auflistungszeichen stehen am Anfang einer Zeile. Angenommen, in der Ini-Datei sind folgende Auflistungszeichen festgelegt: * für die erste und = für die zweite Auflistungsebene. Um die unsortiere Liste von der letzten Seite zu erstellen, geben Sie ein: .snb * Schriftstil = Schrift (default, Tms_Rmn, Helv, Courier, System_VIO) = Schriftgröße * Schriftfarbe = Vordergrundfarbe (default, blue, cyan, green, neutral, red, yellow, black) = Hintergrundfarbe (gleiche Farben wie bei Vordergrundfarben). .sn Sie können auch noch Auflistungszeichen für weitere Ebenen definieren. Brauchbare Zeichen sind das Quadrat Alt-254, der Graphik-Doppelstrich Alt-205 und -Einfachstrich Alt-196 und der normale Strich -. Es ist zulässig, zur eigenen Übersicht weitere Leerzeichen zu verwenden. Das gleiche Ergebnis wie oben erhält man deshalb mit der folgenden Eingabe: .snb * Schriftstil = Schrift (default, Tms_Rmn, Helv, Courier, System_VIO) = Schriftgröße .sn .3 Sortierte Listen .sv ordered list .sv sortierte Liste .sao Eine sortierte Liste zählt in der ersten Auflistungsebene mit 1., 2., 3., und in der zweiten Ebene mit a., b., c. Die dritte Ebene ist dann wieder numerisch usw. Dies läßt sich nicht beeinflussen. Um eine sortierte Liste zu erstellen, geht man erst einmal genauso vor wie bei unsortierten Listen. ~Mit den Punktbefehlen ¡sortierte Liste¡ und ¡unsortierte Liste¡~ .snb .SL .UL .sn läßt sich zwischen sortierten und unsortierten Listen hin- und herschalten. Um einmalig eine sortierte Liste zu erhalten, wird diese mit dem SL und UL-Punktbefehl quasi eingeklammert. Die Voreinstellung ist ~¡unsortiere Liste¡.~ .2 Einbindung von Grafiken .in Zeichen für Grafiken Um eine µGrafik (µBitmap) zentriert erscheinen zu lassen, verwenden Sie den Punktbefehl ¡bitmap¡ .snb .BM Dateiname .sn .IF IPFDOC Wenn der Dateiname ohne Erweiterung geschrieben wird, wird bei IPF automatisch ".BMP" angehängt. IPFC unterstützt außerdem OS/2-MET-Dateien. [Um von GIF nach BMP zu konvertieren, bietet sich das Freeware-Tool GIF2BMP an (Graham Welland, September 1989, OS/2 16 bit).] .END .IF HTMLDOC Bei der Erstellung von HTML-Dateien wird automatisch ".GIF" angehängt, wenn der Grafikdateiname ohne Erweiterung angegeben wird. .END .sab Statt eines Dateinamens können Sie mit den Schlüsselwörtern ~LINKS~ ~RECHTS~ ~MITTE~ (MITTE nur IPF) die Grafik ausrichten. Standardwert ist ~LINKS~. Die Ausrichtung der Grafik gilt so lange, bis diese erneut geändert wird. Um eine Grafik rechtsbündig zu bekommen, schreiben Sie also .snb .BM RECHTS .BM Dateiname .sn Mit einem zweiten Punktbefehl ¡µ:bitmap text:¡ lassen sich Grafiken in den Fließtext integrieren: .snb .BTX Dateiname .sn .bt½ box .in Grafikzeichen ~X~ steht stellvertretend für ein Sonderzeichen, das sonst nicht im Text verwendet wird (sog. ¡Grafikzeichen¡). Dieses Sonderzeichen wird ersetzt durch die Grafik "Dateiname". Beachten Sie, daß Grafiken ½ höher sind als Buchstaben, so daß sich ein größerer Zeilenabstand ergibt, selbst wenn die Grafik so klein wie ein Buchstabe ist. Block-Zeichen wie Û (Alt-219), Ü (Alt-220), ß (Alt-223) sind besonders geeignet (bei IBM codepage). Es ist zulässig, verschiedene Grafikzeichen gleichzeitig zu definieren. Um eine Grafikzeichen-Definition wieder aufzuheben, wird eingegeben: .snb .BTX .sn ohne Dateiname. .fa hori 35 .2 Querverweise und Index .in Querverweis .in Index .in Zeichen für Index- und Querverweismarkierung .3 Automatische Erstellung von Querverweisen und Indexeinträgen Die Erstellung von Querverweisen ist die mächtigste Funktion von HyperMake. Wenn man eine HTML-Datei oder IPF-Datei direkt schreiben würde, so müßte man jeden Querverweis selbst ziehen - wenn also z. B. ein 1 MB langer Hypertext über Workgroup Computing geschrieben werden soll, und der Ausdruck "Workgroup Computing" tausend mal vorkommt, so müßte man selbst 1000 mal einen Querverweis programmieren... Letztlich wird dann auf sinnvolle Querverweise ganz verzichtet. Mit HyperMake müssen Sie lediglich ¡einmal¡ einen gewünschten Ausdruck (ein Wort oder mehrere Wörter) mit einem bestimmten Zeichen (dem Indexzeichen) markieren, und zwar an der Stelle, wo der Ausdruck erklärt wird bzw. wo es im Text um den Ausdruck geht (µ:Querverweis-Ziel:). Alle anderen Vorkommnisse des Ausdrucks im gesamten Hypertext erhalten automatisch einen Querverweis zu diesem Kapitel, wo der Ausdruck markiert wurde. Gleichzeitig wird der Ausdruck im Index (Stichwortverzeichnis) aufgenommen. .IF HTMLDOC .iv große Stichwortverzeichnis Für HTML wird ein alphabetischer Index in einer eigenen Datei erzeugt. Dieses Stichwortverzeichnis gibt es in einer großen und einer kleinen Ausgabe, abhängig von der Anzahl der Einträge. Das große Stichwortverzeichnis verfügt über Querverweise zu den Anfangsbuchstaben A bis Z. Ab wann das große und bis wann das kleine Stichwortverzeichnis angelegt werden soll, kann in der Ini-Datei unter extended index angegeben werden. .END .3 Markieren eines einzelnen Wortes, Ändern des Indexzeichens .in Indexzeichen .snL Markieren eines einzelnen Wortes .sn Um ein einzelnes Wort für die Querverweis- und Index-Erstellung zu markieren, wird das Indexzeichen vorangestellt: .snb Eine #Workgroup ist eine Gruppe von Personen, die... .sn ¡Achtung:¡ verwenden Sie Indexzeichen nicht in Kapitelüberschriften, benutzen Sie hierfür die Duplizierung von Kapitelüberschriften. .snL Ändern des Indexzeichens .sn Mit dem Punktbefehl ¡Indexzeichen¡ .snb .IZ@ .sn .sab wird die aktuelle Einstellung für das Indexzeichen aus der Ini-Datei, z. B. ~#~, in ~@~ geändert. .3 Markieren eines Ausdrucks Wenn Sie ein Wort mit dem Indexzeichen markieren, wird nur das eine Wort gekennzeichnet. Ein Wort endet mit dem ersten Zeichen, das kein Buchstabe ist. (Zeichen, die als Buchstaben behandelt werden sollen, können in der Ini-Datei unter ¡extended letters¡ definiert werden.) Um einen Ausdruck mehrerer Wörter zu markieren, werden zusätzlich zum Indexzeichen Doppelpunkte wie Klammern verwendet: .snb Heutzutage ist die #:Sicherheit von Computern: fast schon... ... Trotzdem kann die #:Sicherheit von Großrechnern: nicht als... ... Dafür hat die #:Benutzerfreundlichkeit von Computern; doch... .sn Im Index wird folgendes erscheinen: .snC Sicherheit von Computern von Großrechnern Computern, Benutzerfreundlichkeit von .sn Achten Sie auf den feinen Unterschied zwischen dem ersten/zweiten und dem dritten Beispiel: Die Eingabe von "#:XXXX®:®" verwendet das erste Wort des Ausdrucks als das µ:¡führende Wort¡:, ein "#:XXXX®;®" das letzte Wort. Das führende Wort wird im Index zuerst genannt und bestimmt somit die alphabetische Reihenfolge im Index. Die Wahl des führenden Wortes hat keine Auswirkung auf Querverweise. Wenn ein führendes Wort im Index nur einmal vorkommt wie .snC Computern Benutzerfreundlichkeit von .sn schreibt HyperMake im Index .snC Computern, Benutzerfreundlichkeit von .sn Ihnen wird schon aufgefallen sein, daß die Endung "Computern" nicht sehr schön ausschaut. Solche unschönen Endungen dürfen Sie ausklammern: .snb Dafür hat die #:Benutzerfreundlichkeit von Computer;n doch... ... hat gezeigt, daß bei #:Computer:n .sn .3 Markieren eines Ausdruckes außerhalb des Fließtextes Mit dem Punktbefehl ¡INdex¡ .snb .IN Ausdruck .sn können Sie ein Wort oder einen Ausdruck mehrerer Wörter im Index ablegen und Querverweise von gleichlautenden Ausdrücken anderer Textstellen zu dieser Stelle hin erzeugen. Das hat den Vorteil, daß der Indexeintrag bzw. das Querverweis-Ziel nicht wortwörtlich im Fließtext vorkommen muß. Manchmal kann die Verwendung eines Punktbefehls statt dem Indexzeichen mit Doppelpunkt-Klammern auch übersichtlicher sein. .in Index vertauscht Normalerweise ist das erste Wort des Ausdrucks das führende Wort. Wenn dagegen das letzte Wort das führende Wort sein soll wie bei der Verwendung der Doppelpunkt-Strichpunkt-Klammerung, verwenden Sie den Punktbefehl ¡Index Vertauscht¡ .snb .IV Benutzerfreundlichkeit von Computer .sn Wenn der Ausdruck in den Punktbefehlen ¡IN¡ und ¡IV¡ mit einem Leerzeichen endet, wird der Ausdruck zwar in den Index aufgenommen, Querverweise werden aber nicht gezogen. Sie können sich dies ggf. zunutze machen. .3 Querverweise bei leicht abweichenden Wörtern .snL µ:Verfahrensweise bei Wortendungen; .sn Was macht HyperMake, wenn das Wort "Maschine®n®" gefunden wird und an anderer Stelle das Wort "Maschine" ohne "n" markiert ist? Er zieht den Querverweis trotzdem, weil die Endung "n" in der Ini-Datei unter "endings of words" eingetragen ist (bzw. sein sollte). Dieser Eintrag ist sprachspezifisch. Wenn umgekehrt "Maschine®n®" markiert wurde, so wird bei "Maschine" kein Querverweis gezogen. Markieren Sie deshalb die Wörter in schlichter Form (Singular, 1. Fall). Um bei Wörtern, die mit Vokalen[Buchstaben a e i o u y] enden wie "Konto" "Konten" trotzdem die Gleichheit zu finden, kürzt HyperMake vor dem Vergleich die Wörter erst einmal um den letzten Buchstaben, wenn er ein Vokal ist. .snL Groß- und Kleinschreibung .sn Querverweise werden unabhängig von der Groß- bzw. Kleinschreibung des Anfangsbuchstabens gezogen. Wenn dagegen weitere Buchstaben in ihrer Groß- bzw. Kleinschreibung abweichen, wird der Querverweis nicht erstellt. Beispiel: .sab ~.IN Wort~ .sn Querverweise werden erstellt nach ~Wort~, ~wort~, aber nicht nach ~WORT~. .3 Mehrmalige Markierung eines Wortes HyperMake geht davon aus, daß Sie in einem Hypertext jedes Wort/jeden Ausdruck nur einmal markieren. Wenn er mehrmals markiert ist, erscheint er mehrmals im Index direkt untereinander und Querverweise werden an die erste markierte Stelle hin gezogen. .3 Unterdrücken von Querverweisen .in omitting links .in Unterdrücken von Querverweisen Querverweise werden natürlich nicht gezogen, wenn sie auf das selbe Fenster (Kapitel) zeigen würden. Querverweise werden außerdem nicht gezogen, wenn der Ausdruck mehrmals im gleichen Absatz vorkommt. Also beispielsweise Punktbefehl Punktbefehl Punktbefehl - nur das erste Vorkommen von "Punktbefehl" im Absatz erhält den Querverweis. Wenn Sie lieber mehrfache Querverweise vom gleichen Ausdruck nicht nur in einem Absatz, sondern gleich im gesamten Fenster (Kapitel) unterdrücken wollen, müssen Sie in der Ini-Datei den Schalter "no more links in" von PARAGRAPH in WINDOW ändern. Es kann hin und wieder nützlich sein, bei bestimmten Schriften - etwa Beispielstext - Querverweise grundsätzlich zu unterdrücken. Das erreichen Sie in der Ini-Datei mit dem Schalter Font, Parameter ~OmitLinks~. Natürlich ist es erlaubt, eine andere Schrift mit gleichen Einstellungen außer dem ¡OmitLinks¡-Parameter zu definieren. Mit diesem Trick können Sie Querverweise unterdrücken, ohne wirklich die Schrift zu wechseln. .IF IPFDOC .3 Externe Querverweise bei IPF (external links) µ:Externe Querverweise: sind Querverweise, die zu einem Kapitel eines anderen INF- oder HLP-Dokuments hin zeigen. Um solche externen Querverweise (external links) zu erzeugen, sind ¶ die Ini-Datei ¶ die Datei, zu deren Kapitel hin gesprungen werden soll (Sprungziel-Datei) ¶ die Datei, aus der heraus gesprungen werden soll (Sprungstart-Datei) zu editieren. Externe Querverweise nutzen die HyperMake Funktion der Erstellung von Panel ID's. Das Kapitel über Panel ID's müssen Sie aber nicht extra lesen. .snL 1. Ini-Datei .sn In der Ini-Datei muß unter "Panel ID filename =" eine Bezeichnung beginnend mit *. eingetragen werden, also etwa .snb Panel ID filename = *.PAN .sn Der Dateiname der Quelldatei mit der Erweiterung PAN wird so zur Panel ID Datei, die HyperMake beim Kompilieren der Sprungziel-Datei automatisch erstellt. Diese Panel ID Datei verwendet HyperMake dann wiederum beim Kompilieren der Sprungstart-Datei. .snL 2. Sprungziel-Datei .sn Beim Indizieren der Überschriften numeriert HyperMake die Kapitelüberschriften von eins fortlaufend durch. Da es unpraktisch wäre, sich eine Nummer wie 237 zu merken und sich die Nummer eines bestimmten Kapitels schließlich ändert, wenn davor ein neues Kapitel eingeschoben wird, werden diese ID's (Identifikationsnummern) der Kapitelüberschriften durch verständlichere Bezeichnungen wie ¡Kapitel_Einleitung¡ ersetzt. Mit dem Befehl .snb .ID Kapitel_Einleitung .sn in der Sprungziel-Datei erhält das Kapitel, wo der Punktbefehl steht, die Kurzbezeichnung "Kapitel_Einleitung", vgl. Datei BEISPIEL. Alle durch den ID-Punktbefehl deklarierten Kurzbezeichnungen speichert HyperMake in der Datei Quelldateiname.PAN oder einer anderen Erweiterung, je nach Eintrag in der Ini-Datei, ab. Auf diese Datei greift HyperMake dann zu, wenn die Sprungstart-Datei kompiliert wird. .snL 3. Sprungstart-Datei .sn In der Datei, aus der gesprungen werden soll, wird der ID-Punktbefehl aus der Sprungziel-Datei wiederholt und darunter werden die gewohnten IN- und IV- (Index vertauscht) Punktbefehle gesetzt. Das ganze wird zwischen zwei neue EX-Punktbefehle plaziert. .snb .EX Dateiname.inf .ID Kapitel_Einleitung .IN Ausdruck .EX .sn Hinter dem EXtern-Punktbefehl wird ein Dateiname angegeben, wobei sowohl die Erweiterung INF als auch HLP möglich ist. Alle folgenden ID, IN und IV-Befehle beziehen sich jetzt auf die externe Datei, bis .EX mit einem anderen Dateinamen oder ganz ohne Parameter dahinter geschrieben wird. Zwischen den beiden EX-Befehlen sollte kein Fließtext stehen. Alle in der Sprungstart-Datei gefundenen Ausdrücke "Ausdruck" erhalten einen externen Querverweis zu dem Kapitel der Datei Dateiname.inf, das mit dem ID Punktbefehl ".ID Kapitel_Einleitung" gekennzeichnet ist. Wo der .EX - .EX -Block in der Sprungstart-Datei steht, spielt überhaupt keine Rolle. Pascal-Programmierer aufgepaßt! Bei der Kurzbezeichnung hinter dem ID-Befehl wird ¡Groß- und Kleinschreibung unterschieden!¡ Beachten Sie die Aktualität der IPF-Dateien im Auge: bei einer Änderung der Sprungziel-Datei muß HyperMake erst die Sprungziel-Datei bearbeiten, so daß die Panel ID Datei den aktuellen Stand erhält. Erst dann kann die Sprungstart-Datei kompiliert werden. Bei der Angabe des Dateinamens .snb .EX Dateiname.inf .sn noch Pfade anzugeben, macht meist keinen Sinn, da sich die Datei bei verschiedenen Computern auf verschiedenen Pfaden und Laufwerken befinden kann. Wenn die Datei sich im gerade angemeldeten Pfad befindet, gibt es keine Probleme, auch nicht, wenn der Pfad bei SET BOOKSHELF der Datei CONFIG.SYS enthalten ist. Ist das jeweils nicht der Fall, sollten Sie Umgebungsvariablen verwenden. Als Beispiel für externe Querverweise können Sie Beispiel Externe Querverweise ausprobieren oder gleich hier auf die Worte Kanzler, SPD und CDU drücken. Beim Erstellen dieses Hypertextes (also der Sprungstart-Datei) habe ich an einer beliebigen Stelle den folgenden Befehlsblock geschrieben: .snb .EX Beispiel.inf .ID Kapitel_Kanzler .IN Kanzler .ID Kapitel_Parteien .IN SPD .IN CDU .EX .sn .EX Beispiel.inf .ID Kapitel_Kanzler .IN Kanzler .ID Kapitel_Parteien .IN SPD .IN CDU .EX In der Sprungziel Datei BEISPIEL finden sich in den Kapiteln über Kanzler und Parteien die zwei ID-Punktbefehle ebenfalls. .END IPFDOC .IF HTMLDOC .3 Externe Querverweise bei HTML (external links) Mit HyperMake können Sie bestimmte Wörter definieren, die grundsätzlich zu einer bestimmten µURL, also einer beliebigen Adresse im Internet, zeigen sollen. Wenn etwa alle Wörter "Netscape" und "Netscape-Browser" auf die Netscape-Seite im Internet zeigen sollen, dann geben Sie dies wie folgt ein: .snb .URL http://home.netscape.com .IN Netscape .IN Netscape-Browser .LOCAL .sn .URL http://home.netscape.com .IN Netscape .IN Netscape-Browser .LOCAL Achten Sie darauf, daß die gewohnten IN-Befehle zwischen einem URL-Befehl und einem LOCAL-Befehl quasi eingeklammert werden: Bevor normaler Text folgt, muß also ein LOCAL-Befehl geschrieben werden. Es ist sinnvoll, z. B. am Anfang des Textes sämtliche externe Links zu konzentrieren. .END HTMLDOC .IF IPFDOC .3 Programme per Querverweis starten (launching programs, nur IPF) .in Programme starten .in Starten von Programmen .in launching programs Ähnlich wie externe Querverweise kann auf externe Programme verwiesen werden, können also externe Programme gestartet werden. .snb .EX mppm.exe c:\mmos2\movies\macaw.avi .IN Papagei .EX e.exe BEISPIEL.TXT .IN Datei BEISPIEL .EX .sn .EX mppm.exe c:\mmos2\movies\macaw.avi .IN Papagei .EX e.exe BEISPIEL.TXT .IN Datei BEISPIEL .EX .sao Der Papagei ist ein Vogel. (Der Querverweis "Papagei" ist nur dann aktiv, wenn Sie OS/2 Multimedia installiert haben.) Der Querverweis zur Datei BEISPIEL, bei dem der Systemeditor gestartet wird, ist Ihnen vielleicht schon im vorangegangenen ~Kapitel~ aufgefallen. Drückt der Benutzer auf "Papagei" oder "Datei BEISPIEL", wird das entsprechende externe Programm gestartet. Im EX-Punktbefehl sind die Parameter hinter dem Programmnamen optional. Programmname und Parameter sind durch ein Leerzeichen getrennt. Die Erweiterung ~.EXE~ ¡muß¡ angegeben werden! Es können natürlich auch Batchdateien mit der Endung ~.CMD~ oder DOS-Dateien mit der Endung ~.BAT~ oder ~.COM~ gestartet werden. Wenn Daten nicht bei jedem Benutzer in einem bestimmten Pfad, z. B. C:\MMOS2\MOVIES, zu finden sind, müssen Umgebungsvariablen verwendet werden. Sie können einem EX-Punktbefehl auch mehrere IN-Punktbefehle folgen lassen, etwa um sowohl bei "Papagei" als auch bei "Papageienfilm" den Film starten zu lassen. Damit eine Bezeichnung wie "CONFIG.SYS" oder "Eule (Film)" einen Querverweis bekommt, müssen Punkt bzw. Klammern in der Ini-Datei unter extended letters aufgeführt sein. .4 Umgebungsvariablen .in Umgebungsvariable Bei externen Querverweisen und beim Starten von Programmen können Umgebungsvariablen sehr ratsam sein. Beim Verwenden einer INF-Datei auf verschiedenen Rechnern sollten bestimmte Datenpfade durch Umgebungsvariablen ersetzt werden, etwa %MMVIDEO%. Jeder Rechner, der Ihren Hypertext benutzt, sollte dann in der Datei CONFIG.SYS z. B. folgenden Eintrag haben: .snb SET MMVIDEO=C:\MMOS2\MOVIES .sn Im HyperMake-Quelltext schreiben Sie dann: .snb .EX mppm.exe %MMVIDEO%\macaw.avi .IN Papagei .EX .sn OS/2 ersetzt dann den Ausdruck %MMVIDEO% gegen den in der CONFIG.SYS angegebenen Laufwerks- und Pfadnamen. Genauso können Sie bei externen Querverweisen verfahren. In den Fällen, wo die Pfadbezeichnung mit einem Strichpunkt endet, etwa .snb SET MMBASE=C:\MMOS2; .sn funktioniert allerdings die Umgebungsvariable nicht mehr und der Querverweis wird nicht gezogen. .EX view.exe cmdref.inf .IN OS/2-Referenzhandbuch .EX Zum Thema Umgebungsvariablen können Sie auch unter "SET" im OS/2-Referenzhandbuch nachschlagen. .END IPFDOC .2 Duplizierung von Kapitelüberschriften .in Duplizierung von Kapitelüberschriften Es ist häufig erforderlich, die Kapitelüberschrift als Querverweis-Ziel zu deklarieren, in den Index aufzunehmen und - insbesondere bei IPF relevant - im Textfenster mit größerer oder farbiger Schrift zu wiederholen: .snb .3 Kapitelüberschrift .IN Kapitelüberschrift .snX Kapitelüberschrift .sn .sn Diese Tipparbeit kann man sich sparen. Mit dem Punktbefehl DuPliziere .snb .dpX .sn wird die Kapitelüberschrift zu Beginn des Fließtextes in Schrift C dupliziert, d.h. wiederholt, und zwar in ¡allen¡ Gliederungsebenen. .IF INFDOC Besonders vorteilhaft ist dies bei sehr langen Überschriftstexten, da bei INF-Dateien in der Fensterleiste meist nur die ersten 70 Buchstaben Platz finden. .END Mit Hilfe der Einstellung Index Filter in der Ini-Datei können bestimmte Zeichen im Stichwortverzeichnis und bei der Duplizierung von Kapitelüberschriften unterdrückt werden. .snb .dp34X .sn führt die Duplizierung nur für Gliederungshierarchie 3 und 4 aus. .snb .dp- .sn deaktiviert die Duplizierungs-Funktion über alle Gliederungsebenen. .snb .dp-234 .sn deaktiviert die Duplizierungs-Funktion in den Gliederungsebenen 2, 3 und 4. .snb .dp# .sn verwendet den Überschrifts-Text als Querverweis-Ziel; die Wiederholung des Kapitelüberschrifts-Textes im .IN -Punktbefehl kann man so sparen. Statt # läßt sich auch das Stichwortzeichen aus der Ini-Datei verwenden. .snb .dp## .sn nimmt den Überschrifts-Text nicht nur als Querverweis-Ziel, sondern zusätzlich noch im Index auf. Diese Funktion sollte nur mit Bedacht gewählt werden, da die Information sowohl im Index als auch im Inhaltsverzeichnis auftaucht, also redundant ist. .IF IPFDOC Übrigens kann ein großer Index eine INF-Datei bei der Benutzung des Index sehr langsam machen. .END .snb .dp3##X, .3 Meier, Fritz .sn im Fließtext wird "Fritz Meier" dupliziert, das ist auch das Querverweis-Ziel. Im Index, im Inhaltsverzeichnis und als Fenster-Überschrift erscheint aber "Meier, Fritz". Die Parameter hinter ".DP" können beliebig kombiniert werden, wobei die Reihenfolge egal ist. .3 Beispiel Duplizierung Kapitelüberschriften - Quelltext .snz .fa verti 30 .dp4R#, .3 Beispiel Duplizierung Kapitelüberschriften - Ergebnis Bundeskanzler seit 1949 (CDU, SPD und Kanzler sind externe Querverweise. Schrift R ist in Ini-Datei definiert.) .4 Adenauer, Konrad 1949-1963, CDU, war der erste Kanzler nach dem zweiten Weltkrieg. Ihm folgte Ludwig Erhard. .4 Erhard, Ludwig 1963-1966, CDU, Nachfolger von Konrad Adenauer. Zweiter Kanzler der Bundesrepublik. Ihm folgte Kurt Georg Kiesinger. .4 Kiesinger, Kurt Georg 1966-1969, dritter Kanzler der CDU, leitete die große Koalition von CDU und SPD. Nachfolger von Ludwig Erhard. .4 Brandt, Willy 1969-1974, erster Kanzler der SPD. .4 Schmidt, Helmut 1974-1982, Kanzler der SPD aus den Siebzigern. Nachfolger von Willy Brandt. .4 Kohl, Helmut amtierender Kanzler der CDU seit 1982. Nachfolger von Helmut Schmidt. .sn .fa verti 30 .3 Beispiel Duplizierung Kapitelüberschriften - Ergebnis .in Beispiel Duplizierung von Kapitelüberschriften .in Beispiel Externe Querverweise .dp4R#, Bundeskanzler seit 1949 (CDU, SPD und Kanzler sind externe Querverweise. Schrift R ist in Ini-Datei definiert.) .4 Adenauer, Konrad 1949-1963, CDU, war der erste Kanzler nach dem zweiten Weltkrieg. Ihm folgte Ludwig Erhard. .4 Erhard, Ludwig 1963-1966, CDU, Nachfolger von Konrad Adenauer. Zweiter Kanzler der Bundesrepublik. Ihm folgte Kurt Georg Kiesinger. .4 Kiesinger, Kurt Georg 1963-1966, dritter Kanzler der CDU, leitete die große Koalition von CDU und SPD. Nachfolger von Ludwig Erhard. .4 Brandt, Willy 1969-1974, erster Kanzler der SPD. .4 Schmidt, Helmut 1974-1982, Kanzler der SPD aus den Siebzigern. Nachfolger von Willy Brandt. .4 Kohl, Helmut amtierender Kanzler der CDU seit 1982. Nachfolger von Helmut Schmidt. .2 Linienziehen .in Zeichen für Linienziehen Da das µLinienziehen zur Erstellung von Umrandungen und Tabellen normalerweise eine recht aufwendige Angelegenheit ist, gibt es einen Punktbefehl, der Ihnen die Arbeit sehr erleichtert, wie Sie im folgenden Beispiel sehen werden: .snb .LIXY X X Operating systems Y Y X X Novell IBM Hardware Y Y X X DOS Netware OS/2 X X .LI .sn Und Sie erhalten: .snb .LIXY X X Operating systems Y Y X X Novell IBM Hardware Y Y X X DOS Netware OS/2 X X .LI .sn .sab Innerhalb des Punktbefehls ~.LIXYZ~ steht X für das Zeichen, welches die Ecken eines Rechtecks markiert und Y für den Beginn einer Unterteilung. Ein vorangestelltes Zeichen Z ergibt Doppelstriche (nur IPF). Verwenden Sie für X, Y und Z Zeichen, die sie sonst in der Liniengraphik nicht benötigen. Die standardmäßig eingestellte Schrift für Linienziehen können Sie in der Ini-Datei bei den Schriften (Font) verstellen, und zwar mit dem Parameter ~LineStandard~. .IF IPFDOC Kombinierte Einfach/Doppel-Striche werden nur mit Codepage 437 unterstützt. Falls Sie andere Codepages verwenden müssen, verwenden Sie bitte keine Doppelstriche. .END .IF WORDSTARDOC .3 Linienziehen und WordStar Das Zeichen Z im ~.LIXYZ~-Befehl zur Erstellung von Doppelstrichen muß ein ^P-Steuerzeichen sein (z. B. ^PE oder ^PR). Verwenden Sie den ^OD-Umschalter, um die ^P-Steuerzeichen unsichtbar zu machen; so können Sie die korrekte Ausrichtung des Rechtecks überprüfen. .END .2 Fußnoten .in Fußnote Die Erstellung von Fußnoten geht mit HyperMake sehr leicht. Fußnoten dürfen etwa in Klammern geschrieben werden wie {Inhalt der Fußnote}, nachdem Sie den Punktbefehl ¡FUßnoten¡ verwendet haben: ~.FU{}~ Statt den Klammern und dem Fußnoteninhalt erscheint nur ein Sternchen[Inhalt der Fußnote], auf das Sie mit der Maus drücken können. .fu{} Andere brauchbare Fußnotenzeichen sind [ ], < > oder Ü (Alt-220) ß (Alt-223) - sozusagen fette Gänsefüßchen (bei IBM codepage). .fu[] .IF HTMLDOC Sie können für das HTML-Fußnotenfenster eine andere Schrift wählen: ~.FU{}snX~ Für das HTML-Fußnotenfenster wird dann Schrift X verwendet. Mit dem Befehl ¡Fußnoten Size¡ ~.FS 30~ können Sie die Größe des Fußnotenfensters in Prozent verstellen. Standard ist 15 Prozent. Dieser Befehl muß vor einem neuen Kapitel, das die geänderte Fensteraufteilung haben soll, aktiviert werden. .END Die Fußnotenfunktion kann zwischendurch auch wieder ausgeschaltet werden, indem keine Parameter dahinter geschrieben werden: ~.FU~ oder Sie können zwischendurch auch andere Fußnotenzeichen definieren. Standardmäßig sind gar keine Fußnotenzeichen definiert. Wenn Sie statt einem "*" als Knopf zur Aktivierung des Fußnotenfensters einen anderen Text haben wollen, können Sie dies mit dem Punktbefehl ¡Fußnoten Text¡ ändern: ~.FT XXX~ Statt einem Sternchen erscheint dann der Text "XXX". Sie dürfen dabei auch eine Grafik statt Text verwenden: .snb .BT& Dateiname .FT& .sn (siehe Grafiken) .FA hori 30 .2 Ränder und Formatierung .in Rand .in margin .3 Linken Rand verstellen Das ist ein Beispielstext mit linkem Rand 1. .LM10 Dies ist ein Beispielstext mit linkem Rand 10; beachten Sie, daß die Einrückung auch in den folgenden Zeilen korrekt ist. .LM20 Dies ist ein Beispielstext mit linkem Rand 20; beachten Sie, daß die Einrückung auch in den folgenden Zeilen korrekt ist. .LM1 Der linke Rand läßt sich mit dem Punktbefehl ¡Left Margin¡ (linker Rand) verstellen: ~.LM n~ n steht für eine Zahl von 1 bis ca. 30; der Standardwert ist 1. Wenn ~.LM~ ohne Zahl eingegeben wird, wird auf den Standardwert 1 geschaltet. .IF HTMLDOC HTML ist nicht in der Lage, den linken Rand in feinen Schritten zu verändern. HyperMake simuliert die Verstellung des linken Randes unter Verwendung der HTML definition list. Das hat zur Folge, daß der Rand nur in Fünferschritten geändert werdn kann. Left Margin 1 und 2 hat gar keine Wirkung, 4 bis 8 stellt ihn auf ca. 5 (abhängig vom Browser), 9 bis 13 auf 10 usw. .END .IF WORDSTARDOC Beim DOS WordStar müssen weiche Leerzeichen statt dem Punktbefehl verwendet werden.[Der WordStar-Punktbefehl .LM generiert solche weichen Leerzeichen automatisch. HyperMake interpretiert nicht den LM-Befehl selbst, sondern nur die darüber erzeugten weichen Leerzeichen. Genauso können Sie weiche Leerzeichen durch Tabulatoren (^OL) und der Absatzeinrückung (^OG) generieren; beim nachträglichen Formatieren werden weiche Leerzeichen mit ^OG ^B erzeugt.] .END .3 Formatierung aus- und einschalten .IF IPFDOC .in Formatierung Bei Erstellung von IPF-Dateien läßt sich mit den Punktbefehlen ¡Formatierung aus¡ und ¡Formatierung an¡ .snb .FM aus .sn .snb .FM an .sn der automatische Zeilenumbruch aus- und wieder einschalten. Standardmäßig ist die Formatierung eingeschaltet. Aus bedeutet, daß die Formatierung (Zeilenvorschübe) so bleiben wie im Quelltext. Die Einstellung gilt bis zum nächsten Formatierungs-Befehl, selbst über Kapitelüberschriften hinweg. Beim Linienziehen ist die Formatierung automatisch ausgeschaltet. Verwenden Sie nicht Index/Querverweise, wenn Formatierung ausgeschaltet ist.[Und zwar wegen einem Fehler im IPFC 2.0 Compiler. Die Einträge im Index würden ein ASCII-10-Zeichen am Ende erhalten.] Klammern Sie in diesem Fall Index-Punktbefehle zwischen zwei Formatierungsbefehle ein: .snb .fm an .in Wort1 .in Wort2 .fm aus .sn .END IPFDOC .IF HTMLDOC Für HTML-Dateien gibt es keine Punktbefehle zum Ein- und Ausschalten des Zeilenumbruches. Wenn Sie einen Text nicht formatiert haben wollen, müssen Sie eine Schrift mit Phrase Element PRE verwenden. .END .IF IPFDOC Bei IPF können Sie bei Festlegung der Schrift ~PRE~ in der Ini-Datei deklarieren, Sie können sich die eigenen Punktbefehle dann sparen. .END .3 Zentrierter Text .in zentrierter Text Bei zentriertem Text ist die Formatierung immer ausgeschaltet. Zentrierten Text kann man ein- und ausschalten mit dem Punktbefehl ¡µ:Output Centered;¡ .snb .OC an .OC aus .sn Sie können aber auch bei Festlegung der Schrift ~center~ schreiben, die eigenen Punktbefehle können Sie dann sparen. .3 Automatischer Rand (auto margin) .in definition list .sv automatischer Rand Sie können (z. B. für Definitions-Listen) den linken Rand zwischendurch mit Hilfe von Leerzeichen verändern. .snb *Motherboard* Auf dem Motherboard befinden sich der Hauptprozessor, die RAM Speicherchips und einige weitere wichtige Teile des Computers. *Bildschirm* Computer-Bildschirme gibt es mit Größen von 14 bis 21 Zoll; Am Bildschirm sollte am wenigsten gespart werden. .sn ©Motherboard© Auf dem Motherboard befinden sich der Hauptprozessor, die RAM Speicherchips und einige weitere wichtige Teile des Computers. ©Bildschirm© Computer-Bildschirme gibt es mit Größen von 14 bis 21 Zoll; Am Bildschirm sollte am wenigsten gespart werden. Mit dem Punktbefehl ¡µ:Auto Margin:¡ (autom. Rand) läßt sich diese Interpretation von Leerzeichen am Zeilenanfang abschalten und wieder einschalten: .snb .AM aus .AM an .sn Die Standardeinstellung ist ¡an.¡. Man kann den AM Befehl in normalen Fließtext auf ¡an¡ lassen. Wird die erste Zeile eines Absatzes eingerückt, ändert das den Rand für den einen Absatz. Sie müssen den AM Befehl nur dann unbedingt auf ¡aus¡ stellen, wenn Sie nur die erste Zeile eines Absatzes eingerückt haben möchten. Wenn Sie einen ÷ASCII-Editor mit ASCIIHARDRET÷ verwenden, so sollte die Einrückung nur am Absatzanfang sein; die folgenden Zeilen, die vom Editor umgebrochen werden, dürfen keine Leerzeichen am Anfang erhalten. .IF WORDSTARDOC ÷WordStar÷-Dateien brauchen die Auto Margin Funktion gar nicht.[Sie können im WordStar jederzeit mit ^OG und weichen Leerschritten den linken Rand beeinflußen.] .END .2 If-Bedingungen .in If-Bedingung Mit Hilfe von If-Bedingungen lassen sich für z. B. ähnliche Programmversionen leicht unterschiedliche IPF- bzw HTML-Dateien aus dem selben Quelltext erstellen. Hierfür gibt es drei neue Punktbefehle: .snb .IF BEDINGUNG .ELSE .END .sn Die Groß- oder Kleinschreibung der Bedingungen ist dabei egal. Der ELSE-Befehl ist natürlich optional. Zum Kompilieren des Quelltextes wird in der Kommandozeile z. B. eingegeben: .snp .fu [C:\myProject] HMAKE MeinDoku.txt #BEDINGUNG .fu[] .sn Es können auch mehrere Bedingungen in die Kommandozeile eingegeben werden. Entscheidend ist das # Zeichen, nicht die Reihenfolge. IF bedeutet "wenn", ELSE bedeutet "andernfalls". Mit END endet die If-Bedingung. Mehrere Bedingungen in der If-Bedingung (verknüpft mit AND oder OR) werden ¡nicht¡ unterstützt. Standardmäßig sind die Bedingungen #HTML bzw. #IPF gesetzt. .1 Erstellung von Helptables .IF HLPDOC .in Helptable .in Panel ID Das wichtigste Merkmal einer HLP-Datei gegenüber einer INF-Datei ist die Verbindung von HLP-Dateien zu PM-orientierten Programmen. INF-Dateien treten alleine auf, HLP-Dateien nur in Verbindung mit einem Programm, das durch die HLP-Datei erklärt werden soll. In HLP-Dateien lassen sich Verbindungen zwischen Programmfenstern oder Programmknöpfen zu Kapiteln des Hypertexts herstellen. Drückt man bei einem solchen Programm auf den fraglichen Knopf und gleichzeitig F1, wird der HLP-Text mit dem entsprechenden Kapitel aufgerufen. Es gibt zwei verschiedene Arten solcher Verbindungen (engl. links): ¶ Verbindungen über Helptables ¶ direkte Verbindungen über Panel ID's. Helptable-Verbindungen werden durch gleichzeitiges Drücken von F1 mit dem entsprechenden Knopf (oder Menüpunkt) aktiviert; statt F1 kann man auch auf einen speziellen Hilfe-Knopf drücken, dessen Flags BS_HELP | BS_NOPOINTERFOCUS gesetzt sind. Im Helptable ist eingetragen, welche Knöpfe / Menüpunkte zu welchen Kapiteln des Hypertext verbunden sind. Direkte Verbindungen laufen nicht über einen Helptable, vielmehr verwenden sie direkt eine Funktion im Programm-Quelltext, die ein bestimmtes Kapitel aufruft; solche direkte Verbindungen können auch bei textorientierten Programmen zum Einsatz kommen. Ohne HyperMake müßte also eine Helptable-Datei innerhalb der RC-Datei [Programmierer sollten RC-Dateien kennen; sonst können Sie dieses Kapitel überspringen, da nur INF-Dateien für Sie in Frage kommen.] erstellt werden. Für direkte Verbindungen müßte eine Panel ID header-Datei mit den IPF-internen Kapitel (resource) ID's angelegt werden, assoziiert mit ausdrucksstarken Bezeichnern wie (Panel_Einfuehrung). .2 Erstellen des HyperMake Quelltextes .in ressource connection Im HyperMake Quelltext werden zwei neue Punktbefehle verwendet: ¡Ressource Connection¡ .snb .RC ID_window, ID_button_or_Menu_Item .sn bedeutet, daß wenn der Knopf "ID_button_or_Menu_Item", der sich im Kindfenster "ID_Window" befindet, zusammen mit F1 gedrückt wird, das Kapitel aufgerufen wird, wo der RC-Befehl plaziert ist. .sab ~ID_window~ ist die Konstante, die hinter ¡MENU¡ oder ¡DIALOG¡ in der RC-Datei steht. ¡Achtung:¡ ~ID_window~ ist ©nicht© die Konstante, die hinter ¡DLGTEMPLATE¡ steht.[Wenn Sie hinter DLGTEMPLATE und DIALOG die gleiche Konstante verwenden, ist das schon in Ordnung.] Und mit ¡Panel ID¡ .snb .ID Kapitel_Name .sn wird dem Kapitel, wo dieser Punktbefehl steht, die Kurzbezeichnung "Kapitel_Name" gegeben. Mit dem Aufruf von DisplayHelpPanel(Kapitel_Name) im Programm-Quelltext kann dieses Kapitel direkt aufgerufen werden. Pascal-Programmierer aufgepaßt! Bei der Kurzbezeichnung hinter dem ID-Befehl wird ¡Groß- und Kleinschreibung unterschieden!¡ Sie können diese Punktbefehle irgendwo innerhalb des Kapitels verwenden, zu dem die Verbindung hergestellt werden soll. Ich empfehle jedoch, diese Befehle möglichst nah an die Stelle des Kapitels zu setzen, wo der entsprechende Knopf bzw. Menüpunkt erklärt wird. Das hat den Vorteil, daß wenn Sie später das Kapitel in mehrere Unterkapitel aufteilen, automatisch die Verbindung zum neuen Unterkapitel hergestellt wird - ohne daß die RC- und IC-Punktbefehle an eine andere Stelle gesetzt werden müssen. Wenn Sie den RC-Punktbefehl verwenden, müssen Sie normalerweise zwei ID's eingeben: Die erste für das Programmfenster, in dem sich der Knopf/Menüpunkt befindet[zu verwenden ist der Konstanten-Name, der in der RC-Datei hinter MENU oder DIALOG steht], und die zweite für die ID des Knopfes, Menüpunktes, Eingabefelds usw. (engl. item). Wenn viele Items aus dem gleichen Programmfenster angegeben werden, muß man nicht die letzte Window ID wiederholen: .snb .RC , ID_button_or_Menu_Item .sn Vor dem Komma wird die letzte Window ID eingesetzt. Die HLP-spezifischen RC- und ID-Befehle haben nur Auswirkung auf die Helptable- und Panel-ID-Datei, die IPF-Datei wird dadurch nicht beeinflußt. Das bedeutet, Sie können bedenkenlos aus solch einer IPF-Datei eine INF-Datei statt einer HLP-Datei erstellen. Für jede Window ID sollten Sie den RC-Befehl ohne Angabe eines Items, also mit nur einem Parameter, verwenden. Alle Items eines solchen Windows, die keinen eigenen RC-Befehl haben, erhalten die Verbindung, die im RC-Befehl mit nur einem Parameter festgelegt ist. Wenn Sie den RC-Befehl allein mit zwei Parametern verwenden, gibt HyperMake eine Warnung aus. .in Helptable-Datei Der folgende HyperMake Quelltext enthält die zwei neuen Punktbefehle ¡Ressource connection¡ und ¡Panel ID:¡ .snz .1 Einführung .RC ID_Kindfenster .ID PANEL_Einfuehrung Das ist die Dokumentation von meinem Programm. .1 Verwendung des OK-Knopfes .RC ID_Kindfenster, ID_OK .ID PANEL_OK_Benutzung Mit dem OK-Knopf - stellen Sie sich nur vor - können Sie OK drücken. .1 Verwendung des Cancel-Knopfes .RC ID_Kindfenster, ID_Cancel Mit dem Cancel-Knopf können Sie den Befehl abbrechen. .sn .2 Einbindung in den C Programm-Quelltext HyperMake erstellt automatisch eine Datei ¡HLPTABLE.RC¡: .snb #define SUBTABLE_ID_Kindfenster 7001 HELPTABLE HELP_TABLE { HELPITEM ID_Kindfenster, SUBTABLE_ID_Kindfenster, 1 // Einführung } HELPSUBTABLE SUBTABLE_ID_Kindfenster { HELPSUBITEM ID_OK, 2 // Verwendung des OK-Knopfes HELPSUBITEM ID_Cancel, 3 // Verwendung des Cancel-Knopfes } .sn HyperMake erstellt außerdem eine Datei ¡PANELID.H¡: .snb /*****Panel ID's created by HyperMake*****/ #define PANEL_Einfuehrung 1 #define PANEL_OK_Benutzung 2 .sn Die Nummern 1, 2 und 3 sind die IPF-internen Kapitel-ID's, die für den HyperMake-Benutzer ohne Belang sind. In der Helptable-Datei werden deshalb noch als Kommentar die Kapitelüberschriften eingetragen, so daß sich die Helptable-Datei für die Fehlersuche leichter lesen läßt. (Normalerweise dürften Sie kein Interesse haben, die Helptable und Panel ID -Datei zu lesen.) Den Startwert für die in der Helptable-Datei verwendeten Subtable ID's können Sie in der Ini-Datei unter der Einstellung ~Help Subtable Start ID~ ändern, außerdem können Sie auch die Dateinamen der zwei erstellten Dateien ändern. Die Helptable-Datei und Panel ID -Datei wird einfach in den Programm-Quelltext eingebunden: .snb #include "HLPTABLE.RC" .sn etwa nach einem MENU oder DLGTEMPLATE-Block in der RC-Datei und .snb #include "PANELID.H" .sn zu Beginn des Programmtextes (eine C- oder CPP-Datei). In der eigentlichen header-Datei progname.h müssen Sie eine Konstante ¡HELP_TABLE¡ mit irgendeinem unbenutzten Wert definieren, z. B. ~#define HELP_TABLE 7000~ Diese Konstante muß in der RC- und in der C bzw. CPP-Datei gültig sein. Im C Quelltext benötigt man mindestens zwei Funktionen: .snb void InitHelp (hwnd) /*initialisiert den Help-Prozeß*/ void DestroyHelp () /*deaktiviert ihn*/ .sn diese verwenden die Konstante HELP_TABLE. Der Funktion InitHelp muß der window handle des Programms übergeben werden. Dieser muß natürlich schon definiert worden sein. Wenn Sie kein Standardwindow sondern nur eine Dialogbox als Programm haben, können Sie ¡InitHelp¡ unter WM_INITDLG und ¡DestroyHelp¡ unter WM_CLOSE aufrufen. Sonst rufen Sie die beiden Funktionen im Hauptprogramm vor und nach der Window-Message-Schleife ~while WinGetMsg...~ auf. Eine dritte Funktion .snb void DisplayHelpPanel (PanelID) .sn wird benötigt, um eine direkte Verbindung zwischen dem Programm und einem Hypertext-Kapitel herzustellen. Es ist die Programm-Seite des Panel ID Punktbefehls, den Sie im HyperMake Quelltext verwenden. Ich habe eine kompakte Version dieser drei Funktionen geschrieben. Um sie kompilieren zu können, müssen Sie am Anfang folgendes eintragen:[Das kann Compiler-spezifisch sein; ich benutze Borland C] .snb #define INCL_HELP .sn .3 C Quelltext für die drei Hilfe-functions .snb .in function InitHelp .in function DestroyHelp .in function DisplayHelpPanel #define HelpFilename "FILENAME.HLP" #define HelpWindowTitle "Überschrift des Hypertext-Fensters" BOOL fHelpEnabled; static HWND hwndHelpInstance; #define InfoBox(st) WinMessageBox (HWND_DESKTOP, HWND_DESKTOP, st, "", 0, MB_OK | MB_ERROR) /*wird vor die Hauptprogramm-Message-Schleife (while WinGetMsg...) gesetzt*/ VOID InitHelp (HWND hwndClientFrame) { HELPINIT hini; /* If we return because of an error, Help will be disabled */ fHelpEnabled = FALSE; /* Initialize help init structure */ hini.cb = sizeof(HELPINIT); hini.ulReturnCode = 0; /* If tutorial added, add name here */ hini.pszTutorialName = (PSZ)NULL; hini.phtHelpTable = (PHELPTABLE)MAKELONG(HELP_TABLE, 0xFFFF); hini.hmodHelpTableModule = 0; hini.hmodAccelActionBarModule = 0; hini.idAccelTable = 0; hini.idActionBar = 0; hini.pszHelpWindowTitle = HelpWindowTitle; hini.fShowPanelId = CMIC_HIDE_PANEL_ID; hini.pszHelpLibraryName = HelpFilename; /* Creating help instance */ hwndHelpInstance = WinCreateHelpInstance(hab, &hini); if(hwndHelpInstance == 0L || hini.ulReturnCode) { InfoBox("Failed to load help manager."); return; } /* Associate help instance with main frame */ if(!WinAssociateHelpInstance(hwndHelpInstance, hwndClientFrame)) { InfoBox("Failed to load help manager."); return; } /* Help manager is successfully initialized so set flag to TRUE */ fHelpEnabled = TRUE; return; } /*wird hinter die Hauptprogramm-Message-Schleife gesetzt*/ VOID DestroyHelp () { if(hwndHelpInstance != 0L) WinDestroyHelpInstance(hwndHelpInstance); return; } /* einige mögliche Parameter für SendHelpMessage HM_HELP_INDEX zeigt Index HM_HELP_CONTENTS, zeigt Inhalt HM_DISPLAY_HELP zeigt Hilfe für Hilfefunktion (help for help) */ VOID SendHelpMessage (LONG HelpMessage) { if(fHelpEnabled) if((LONG)WinSendMsg(hwndHelpInstance, HelpMessage, (MPARAM) 0, (MPARAM) 0)) InfoBox ("Failed to display help panel."); } /* Parameter sind die Panel ID's, definiert über die ID Punktbefehle im HyperMake Quelltext */ VOID DisplayHelpPanel (LONG PanelID) { if(fHelpEnabled) if((LONG)WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP, MPFROMLONG(MAKELONG(PanelID, NULL)), MPFROMSHORT(HM_RESOURCEID))) InfoBox ("Failed to display help panel."); } .sn .2 Einbindung in den Pascal Programm-Quelltext HyperMake erstellt automatisch eine Datei ¡HLPTABLE.RC¡: .snb CONST SUBTABLE_ID_Kindfenster = 7001 HELPTABLE 1000 BEGIN HELPITEM ID_Kindfenster, SUBTABLE_ID_Kindfenster, 1 /* Einführung */ END HELPSUBTABLE SUBTABLE_ID_Kindfenster BEGIN HELPSUBITEM ID_OK, 2 /* Verwendung des OK-Knopfes */ HELPSUBITEM ID_Cancel, 3 /* Verwendung des Cancel-Knopfes */ END .sn HyperMake erstellt außerdem eine Datei ¡PANELID.H¡: .snb { Panel ID's created by HyperMake } const PANEL_Einfuehrung = 1; PANEL_OK_Benutzung = 2; .sn Die Nummern 1, 2 und 3 sind die IPF-internen Kapitel-ID's, die für den HyperMake-Benutzer ohne Belang sind. In der Helptable-Datei werden deshalb noch als Kommentar die Kapitelüberschriften eingetragen, so daß sich die Helptable-Datei für die Fehlersuche leichter lesen läßt. (Normalerweise dürften Sie kein Interesse haben, die Helptable und Panel ID -Datei zu lesen.) Den Startwert für die in der Helptable-Datei verwendeten Subtable ID's können Sie in der Ini-Datei unter der Einstellung ~Help Subtable Start ID~ ändern, außerdem können Sie auch die Dateinamen der zwei erstellten Dateien ändern. Die Helptable-Datei und Panel ID -Datei wird einfach in den Programm-Quelltext eingebunden: .snb {$I HLPTABLE.RC} .sn etwa nach einem MENU oder DLGTEMPLATE-Block in der RC-Datei und .snb {$I PANELID.INC} .sn zu Beginn des Programmtextes (eine PAS-Datei). Es gibt nun erst einmal zwei Funktionen, mit denen Sie die HLP-Datei aufrufen können. .snb DisplayHelpPanel (PanelID) .sn wird benötigt, um eine direkte Verbindung zwischen dem Programm und einem Hypertext-Kapitel herzustellen. Es ist die Programm-Seite des Panel ID Punktbefehls, den Sie im HyperMake Quelltext verwenden. .snb SendHelpMessage (HM_HELP_CONTENTS) .sn ruft direkt das Inhaltsverzeichnis auf. Es gibt noch weitere HM_*-Konstanten, die bei SpeedPascal in der Unit PMHELP.PAS definiert sind. Die weitere Einbindung in den Programmtext hängt davon ab, ob Sie die SpeedPascal 1.5 OPML verwenden oder nicht. .3 Einbindung der Hilfefunktion bei Benutzung der OPML In der Methode .snb TApplication.InitMainWindow .sn müssen Sie lediglich am Ende eine Zeile einfügen: .snb MainWindow^.InitWindowHelp ('MYPROG.HLP', 'Hilfeüberschrift'); .sn Das war's auch schon. .3 Einbindung der Hilfefunktion auf konventionelle Weise Zum Aktivieren und Deaktivieren der Hilfe-Funktion benötigen Sie zwei Funktionen: .snb uses PMHELP; InitHelp (hwnd); {initialisiert den Help-Prozeß} DestroyHelp; {deaktiviert ihn} .sn Diese beiden Prozeduren sind ab SpeedPascal 1.5 in der Unit PMHELP definiert. Der Prozedur InitHelp muß der window handle des Programms übergeben werden. Dieser muß natürlich schon definiert worden sein. Wenn Sie kein Standardwindow sondern nur eine Dialogbox als Programm haben, können Sie ¡InitHelp¡ unter WM_INITDLG und ¡DestroyHelp¡ unter WM_CLOSE aufrufen. Sonst rufen Sie die beiden Funktionen im Hauptprogramm vor und nach der Window-Message-Schleife ~while WinGetMsg...~ auf. Unmittelbar vor der Prozedur "InitHelp" muß noch Variablen gesetzt werden: .snb HelpFilename := 'MYPROG.HLP'; HelpWindowTitle := 'Überschrift des Hypertext-Fensters'; HELP_TABLE := 1000; .sn Die Zahl 1000 kommt ebenfalls im HyperMake erstellten Helptable vor. Falls Sie kein SpeedPascal 1.5 (oder später) benutzen, habe ich die relevanten Variablen und Prozeduren zusammengestellt. .4 Pascal Hilfe-Quelltext .snb {Help manager helpers} FUNCTION InfoBox(st:STRING):LONGINT; BEGIN result:=WinMessageBox (HWND_DESKTOP, HWND_DESKTOP, st,'', 0, MB_OK | MB_ERROR); END; {wird vor die Hauptprogramm-Message-Schleife gesetzt} PROCEDURE InitHelp (hwndClientFrame:HWND); VAR hini:HELPINIT; { If we return because of an error, Help will be disabled } BEGIN fHelpEnabled := FALSE; { Initialize help init structure } hini.cb := sizeof(HELPINIT); hini.ulReturnCode := 0; { If tutorial added, add name here } hini.pszTutorialName := NIL; hini.phtHelpTable := PHELPTABLE(MAKELONG(HELP_TABLE, $FFFF)); hini.hmodHelpTableModule := 0; hini.hmodAccelActionBarModule := 0; hini.idAccelTable := 0; hini.idActionBar := 0; hini.pszHelpWindowTitle := @HelpWindowTitle; hini.fShowPanelId := CMIC_HIDE_PANEL_ID; hini.pszHelpLibraryName := @HelpFilename; { Creating help instance } hwndHelpInstance := WinCreateHelpInstance(AppHandle,hini); if ((hwndHelpInstance = 0 )OR(hini.ulReturnCode<>0)) THEN BEGIN InfoBox('Failed to load help manager.'); exit; END; { Associate help instance with main frame } if not WinAssociateHelpInstance(hwndHelpInstance, hwndClientFrame) THEN BEGIN InfoBox('Failed to load help manager.'); exit; END; { Help manager is successfully initialized so set flag to TRUE } fHelpEnabled := TRUE; END; {wird hinter die Hauptprogramm-Message-Schleife gesetzt} PROCEDURE DestroyHelp; BEGIN IF hwndHelpInstance <> 0 THEN WinDestroyHelpInstance(hwndHelpInstance); END; { einige mögliche Parameter für SendHelpMessage HM_HELP_INDEX zeigt Index HM_HELP_CONTENTS, zeigt Inhalt HM_DISPLAY_HELP zeigt Hilfe für Hilfefunktion (help for help) } PROCEDURE SendHelpMessage (HelpMessage:LONG); BEGIN if fHelpEnabled THEN if WinSendMsg(hwndHelpInstance, HelpMessage, 0, 0)<>0 then InfoBox ('Failed to display help panel.'); END; { Parameter sind die Panel ID's, definiert über die ID Punktbefehle im HyperMake Quelltext } PROCEDURE DisplayHelpPanel (PanelID:LONG); BEGIN if fHelpEnabled then if WinSendMsg(hwndHelpInstance, HM_DISPLAY_HELP, MPFROMLONG(MAKELONG(PanelID, 0)), MPFROMSHORT(HM_RESOURCEID))<>0 then InfoBox ('Failed to display help panel.'); END; .sn .2 Mehrere verschiedensprachige HLP-Dateien Falls Sie mehrere verschiedensprachige HLP-Dateien und nur eine EXE-Datei erstellen, reicht es aus, wenn Sie die ID- und RC-Punktbefehle in nur einem HyperMake-Quelltext eintragen. Wenn Sie dann im anderssprachigen HyperMake-Quelltext ¡exakt¡ die gleiche Gliederungsstruktur haben, gibt es keine Probleme. HyperMake numeriert nämlich die Kapitelüberschriften einfach fortlaufend durch. .ELSE Das IBM IPF-Format wird benötigt, um kontextsenitive Programmdokumentationen (Erweiterung HLP) unter dem Betriebssystem OS/2 zu erstellen. HyperMake stellt hier für die Verbindung Hypertext - EXE-Programm einige Funktionen zur Verfügung. Die Dokumentation darüber ist aber nur vorhanden, wenn der Hilfetext mit der Bedingung #HLPDOC erzeugt wurde. Für die von Microsoft geplante Windows HTML Programmhilfe werde ich in einer künftigen HyperMake Version vergleichbare Funktionen anbieten. .END HLPDOC .FA verti 40 .1 Verzeichnis aller Punktbefehle Hier finden Sie eine kurze Beschreibung aller HyperMake Punktbefehle. Die gleiche Kapitelstruktur finden Sie in Erstellen eines HyperMake Quelltextes. .in Verzeichnis aller Punktbefehle Einige Punktbefehle sind speziell deutsch und haben englische oder auch WordStar-Synonyme; diese zweite mögliche Schreibweise von Punktbefehlen ist in Klammern gesetzt und kann genauso verwendet werden. .2 Grundlagen .sab ~..Kommentar~ "Kommentar" wird nicht interpretiert. .IF IPFDOC .snb .:ipf-Kommando. .:ipf-Kommando. Ausdruck .sn Ein IPF-Kommando kann auch direkt eingegeben werden. .END .IF HTMLDOC .snb .HTML Fließtext usw. .HYPERMAKE .sn Direkte Eingabe von HTML Text. .END HTMLDOC .2 Textanfang ~.TI Hypertext-Titel~ setzt den Titel des Hypertexts. .IF IPFDOC ~.<>~ stellt HLP-Dateien die Hypertext-Benutzerknöpfe "Inhalt", "Zurück" und "Vorwärts" zur Verfügung, die es sonst nur bei INF-Dateien gibt. .END .2 Kapitel ~.1~ bis ~.6~ definiert eine Gliederungsebene ~.1~ ~Hauptüberschrift~ Die Kapitelüberschrift des ersten Punktes der ersten Gliederungsebene heißt "Hauptüberschrift". ~.FA~ (~.WA~) ~.FA hori 30~ ~.FA hori 30 verti 40 III~ Mit Fensteranordnung können mehrere Fenster verschiedener Gliederungsebenen gleichzeitig angezeigt werden. Der Punktbefehl muß vor dem ersten Gliederungsebenen-Punktbefehl geschrieben werden, der nur noch einen Teil des Bildschirms einnehmen soll. .2 Schriften ~.SNX~ (~.SFX~) ~.SAX~ (~.AFX~) Schrift Normal und Schrift Alternativ stellt die Schrift X ein. X steht für einen Buchstaben von A bis Z und von a bis z; es wird also Groß- und Kleinschreibung unterschieden. Die Bedeutung der Schriftbuchstaben werden in der Ini-Datei unter Fonts festgelegt. Schrift Alternativ gilt zwischen zwei Alternativ Umschaltzeichen, diese werden ebenfalls in der Ini-Datei festgelegt. .2 Listen ~.SL~ (~.OL~) macht aus den nächsten Auflistungen eine sortierte Liste ~.UL~ stellt wieder auf unsortierte Listen (Standardeinstellung). .2 Einbindung von Grafiken ~.BM Dateiname~ gibt eine Grafik dateiname.bmp (IPF) bzw. dateiname.gif (HTML) zentriert aus. ~.BTX Dateiname~ schreibt im Fließtext statt dem Buchstaben X die Grafik dateiname.bmp. .2 Querverweise und Index ~.IZX~ (~.ICX~) wählt das beliebige Zeichen X als Indexzeichen. ~.IN Ausdruck~ nimmt "Ausdruck" im Index auf; alle Vorkommnisse von "Ausdruck" im gesamten Hypertext erhalten einen Querverweis zu dem Kapitel, in dem der ¡.IN¡ Punktbefehl steht. ~.IV Ausdruck~ Index Vertauscht: wie ¡.IN¡, verwendet aber das letzte Wort des Ausdrucks als führendes Wort. .IF IPFDOC ©Externe Querverweise (IPF)© ~.EX extern.inf~ ~.ID Kapitel_Einleitung~ ~.IN Ausdruck~ ~.EX~ Alle Vorkommnisse von "Ausdruck" erhalten einen externen Querverweis zu dem Kapitel in der Datei extern.inf, das mit ~.ID Kapitel_Einleitung~ markiert wurde. .END IPFDOC .IF HTMLDOC ©Externe Querverweise (HTML)© ~.URL URL~ ~.IN Ausdruck~ ~.LOCAL~ Alle Vorkommnisse von "Ausdruck" erhalten einen externen Querverweis zu der URL "URL". .END HTMLDOC .IF IPFDOC ©Programme starten (IPF)© ~.EX Programmname.exe Parameter~ ~.IN Ausdruck~ ~.EX~ Alle Vorkommnisse von "Ausdruck" werden zu einem Querverweis, bei dem das Programm "Programmname" mit dem Parameter "Parameter" gestartet wird. .END .2 Duplizierung von Kapitelüberschriften ~.dp34C~ Die Kapitelüberschrift wird in Gliederungsebene 3 und 4 am Anfang des Fließtextes mit Schrift C dupliziert. ~.dp##C~ In allen Gliederungsebenen wird die Überschrift mit Schrift C im Fließtext dupliziert, als Querverweis-Ziel verwendet (erster #) und in den Index aufgenommen (zweiter #). ~.dp-34~ schaltet die Duplizierung in Gliederungsebene 3 und 4 wieder aus. .2 Linienziehen .snb ..LIÜÝ .LIXYZ X Y X +---+---+ | | | Y Ergebnis: +---+---+ | | | X X +---+---+ .LI ..li .sn Im Linienziehen Punktbefehl steht das beliebige Zeichen X für die Ecken und Y für Unterteilungen des Rechtecks. Ein Zeichen Z vor X oder Y macht Doppelstriche (nur IPF). .2 Fußnoten ~.FU{}~ ~.FU{}snX~ definiert die Zeichen, mit denen der Inhalt von Fußnoten eingeklammert wird; definiert zusätzlich noch eine Schrift X für das Fußnotenfenster. Die Eingabe .snb und Sie erhalten {Inhalt der Fußnote}. .sn führt zu: und Sie erhalten [Inhalt der Fußnote]. .IF HTMLDOC ~.FS 30~ Fußnoten Size: ändert den Standardwert der Aufteilung HTML-Textfenster / Fußnotenfenster von 85 zu 15 auf 70 zu 30. .END ~.FT XXX~ Fußnoten-Text: schreibt "XXX" statt dem standardmäßigen "*". Grafik statt Text ist erlaubt (Verwendung von Bitmap Text). .2 Ränder und Formatierung ~.LM 10~ setzt den linken Rand (left margin) vom Standardwert 1 nach 10. .IF IPFDOC ~.FM aus~ (~.FM off~) ~.FM an~ (~.FM on~) (nur IPF) Mit dem Punktbefehl Formatieren wird die Formatierung aus- und eingeschaltet. Standard ist ¡an¡. .END ~.OC an~ (~.OC on~) ~.OC aus~ (~.OC off~) schaltet zentrierten Text (Output Centered) an und aus. ~.AM aus~ (~.AM off~) ~.AM an~ (~.AM on~) verstellt den linken Rand dadurch, daß ein Absatz mit entsprechenden Leerzeichen beginnt. Standard ist ¡an¡. .IF HTMLDOC In HTML-Dateien wird der Rand nur in Fünfer-Schritten verstellt. .END .2 If-Bedingungen .snb .IF BEDINGUNG .ELSE .END .sn überträgt nur bestimmte Teile des Quelltextes ins IPF-Format. Die If-Bedingungen werden über die Kommandozeile gesetzt (Groß- oder Kleinschreibung egal) .snp .fu [C:\myProject] HMAKE MeinDoku.txt #BEDINGUNG .fu[] .sn .2 Erstellung von Helptables (nur IPF, zur Erstellung von IBM HLP-Dateien) .snb .RC ID_window .RC ID_window, ID_button_or_Menu_Item .RC , ID_button_or_Menu_Item .ID PanelID .sn RC Punktbefehle erzeugen einen Helptable mit dem Dateinamen HELPTABLE.RC, ID Punktbefehle eine Datei mit Panel ID's unter dem Dateinamen PANELID.H. .FA hori 40 .1 Ini-Datei .in Ini-Datei In der Ini-Datei können Sie einige dokumenten- und sprachspezifische Einstellungen vornehmen. Es empfiehlt sich, für jedes Projekt eine eigene Ini-Datei anzulegen. Die Ini-Datei können Sie mit einem ASCII-Editor verändern. Die erste Zeile wird nicht interpretiert. Wie in C++ sind Zeilen, die mit zwei Schrägstrichen // beginnen, auch Kommentarzeilen. Windows-konform können Kommentarzeilen auch mit ; beginnen. Die Reihenfolge der Schalter darf geändert werden, aber es muß jeder Schalter einmal vorkommen. Mit wenigen Ausnahmen wird in der Ini-Datei Groß- und Kleinschreibung nicht unterschieden. Der Text links vom Istgleich-Zeichen = ist der Name des Schalters; dieser darf nicht geändert werden. Rechts davon dürfen Einstellungen geändert werden. .2 general settings (Allg. Einstellungen) ©Registration key (Registrierungsschlüssel)© .in Registration key .in Registrierungsschlüssel .snb Registration key = 0 .sn Hier tragen Sie Ihren Registrierungs-Code ein, um Quelltexte von mehr als 20 kB verarbeiten zu können. Siehe auch Registrierung. ©Language (Sprache)© .snb //possible settings: ENGLISH, GERMAN, C, PASCAL Language = GERMAN C .sn ©Landessprache:© HyperMake kann entweder auf englisch oder auf deutsch Fehlermeldungen ausgeben; auf die erstellte HTML-Datei oder IPF-Datei hat dieser Schalter keine Wirkung. Diesen Hypertext gibt es auch auf englisch. Einige Punktbefehle weichen in der englischen Anleitung von den deutschen Befehlen ab; sie werden gleichermaßen interpretiert. ©Programmiersprache (nur IPF):© Wenn Sie von HyperMake Panel ID und Helptable Dateien erstellen lassen, können Sie zwischen C und µPascal wählen. ©beep (Pieps)© .snb //beep when finishing compiling - possible settings: YES, NO beep = YES .sn Wenn HyperMake eine IPF-Datei oder mehrere HTML-Dateien erfolgreich erstellt hat, hören Sie einen Pieps. Sie können diesen Ton hier abstellen, indem Sie ~NO~ statt ~YES~ eingeben. .2 format settings (Format-Einstellungen) ©Target (Zielformat)© .in Zielformat .snb //possible settings: IPF, HTML Target = HTML .sn Die Standardeinstellung kann durch die Kommandozeilenparameter IPF und HTML temporär überschrieben werden. ©Source format (Quelltext-Format)© .in source format .snb //possible Settings: ASCIIHARDRET, ASCIISOFTRET, WORDSTAR4 Source format = ASCIISOFTRET .sn Sie haben drei verschiedene Quelltext-Formate zur Auswahl. Siehe Bedeutung von Returns. ©Source Codepage (Quelltext-Zeichensatztabelle)© .snb //possible Settings: ISO, IBM source codepage = IBM .sn Zwei verschiedene Codepages (Zeichensatztabellen) können Sie für Ihre Quelltexte auswählen: ISO (ISO 8859-1), auch Latin1 genannt, oder IBM 850 bzw. 437. ISO ist für Windows und Unix üblich, IBM für DOS und für OS/2. Wenn Sie diese Einstellung falsch wählen, so werden Umlaute falsch angezeigt bzw. interpretiert. Wenn Sie diese Einstellung verändern, müssen Sie auch die Umlaute in der Ini-Datei, etwa unter extended letters, entsprechend anpassen. .2 specific characters (besondere Zeichen) ©List chars (Auflistungszeichen)© .snb //only ASCII source List chars = =- .sn Auflistungszeichen werden für unsortierte Listen und sortierte Listen benötigt, wenn Sie Auflistungen mit einem ASCII-Editor erstellen wollen. ©Index char (Indexzeichen)© .snb Index char = # .sn Siehe Erstellung von Querverweisen, Index und Indexzeichen. Mit dem Punktbefehl ~.IZX~ wird die hier festgelegte Standardeinstellung mit dem Zeichen X überschrieben. ©toggles (Umschalter)© .snb //highlighted char toggles //both HTML and IPF: 1 alternate 2 italic 3 bold 4 underlined //only IPF: 5 red 6 cyan 7 blue //only HTML: 8 strike 9 big 10 small 11 sub 12 sup // 123456789012 toggles = ************ .sn Hier lassen sich die Umschaltzeichen festlegen. Sie müssen immer alle zwölf Zeichen eingeben, auch wenn Sie IPF oder HTML nicht benutzen. .IF WORDSTARDOC Bei der Verwendung von WordStar-Steuerzeichen müssen Sie die Zeichen eingeben, die dem ASCII-Code entsprechen. [Also etwa für ^PA Alt-1, für ^PB Alt-2, für ^PS Alt-19 usw.] .END ©Index Filter© .in index filter .snb //characters not shown in index and duplicated heading index filter = (). .sn Es können bestimmte Zeichen im Stichwortverzeichnis und bei der Duplizierung von Kapitelüberschriften unterdrückt werden. ©Extended Letters (sprachspez. Zeichen, insb. Umlaute)© .in extended letters .sv sprachspezifische Zeichen .snb //language specific letters besides A...Z, a...z, 0...9 //english '- //german äöüßÄÖÜ- extended letters = äöüßÄÖÜ- .sn Sie müssen HyperMake die deutschen Umlaute mitteilen, die er als normale Buchstaben behandeln soll. Wenn Sie dies nicht tun, interpretiert HyperMake die Buchstaben links und rechts vom Umlaut als seperate Wörter. Die normale Markierung des Wortes "Kindergärten" hätte dann einen Indexeintrag "Kinderg" zur Folge. Damit eine Bezeichnung wie "CONFIG.SYS" oder "Eule (Film)" einen Querverweis bekommt, müssen Punkt bzw. Klammern in der Ini-Datei unter extended letters aufgeführt sein. Gleichzeitig müssen Sie aber dann aufpassen, wenn Sie etwa eine Markierung machen wie (#Wort). Dann wird nicht "Wort" markiert, sondern "Wort)." - Mit dem Effekt, daß die meisten gewünschten Querverweise nicht gezogen werden. Richtig ist dann die Markierung (#:Wort:). Sie sollten sich genau überlegen, ob Sie den Bindestrich "-" auch in dieser Liste aufnehmen. Ist der Bindestrich ein "extended letter", wird er also als Buchstabe behandelt, können Ausdrücke wie "Ini-Datei" einfach mit dem Indexzeichen markiert werden, ohne Doppelpunkt-Klammern; dafür wird aber beim Wort Datei, wenn es an anderer Stelle markiert wurde, kein Querverweis erstellt. Im anderen Fall wird mit Ini-Datei wie mit "Ini Datei" verfahren. .2 Font characters (Schrift-Buchstaben) .snb //Font chars from A to Z and from a to z (case-sensitive!) //both HTML and IPF: size Linestandard OmitLinks PRE center //only IPF: Fontname codepage foregroundcolor BACKGROUNDCOLOR //only HTML: PHRASEELEMENT Color Font A = 15 Courier CODE Font b = Courier 12 CODE black 437 Linestandard OmitLinks Font B = 30 Helv neutral Font Z = GREEN 30 Helv yellow Font G = 15 Helv black Font T = 18 Tms_Rmn Font C = black Font o = OmitLinks .sn Hier lassen sich Schriftbuchstaben für Schriften definieren, und zwar von A bis Z und von a bis z. Beachten Sie, daß zwischen Groß- und Kleinschreibung unterschieden wird. Die Reihenfolge der Einstellungen hinter dem = Zeichen ist egal. Kennzeichen der einzelnen Parameter hinter dem = sind: ¶ ©Schriftgröße:© alle Zahlen, die kleiner als 200 sind ¶ ©Codepage:© (nur IPF) alle Zahlen größer/gleich 200 ¶ ©Vordergrundfarbe:© - IPF: alle Farben in Kleinbuchstaben: default, blue, cyan, green, neutral, red, yellow, black. - HTML: beginnt mit Großbuchstabe, dann folgen Kleinbuchstaben: Black, Silver, Gray, White, Maroon, Red, Purple, Fuchsia, Green, Lime, Olive, Yellow, Navy, Blue, Teal, Aqua. ¶ ©Hintergrundfarbe:© (nur IPF) alle Farben in Großbuchstaben: DEFAULT, BLUE, CYAN, GREEN, NEUTRAL, RED, YELLOW, BLACK. ¶ ©Phrase element:© (nur HTML) ADDRESS, PRE, EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE. ¶ ©Schrift-Typ:© (nur IPF) Alle Eingaben, die nicht den bisherigen Kriterien entsprechen. Beachten Sie, daß statt Leerzeichen wie bei "Tms Rmn" ¡unbedingt ein Unterstrich¡ "_" geschrieben werden muß. Sie müssen nur diejenigen Parameter eintragen, die vom Standardwert abweichen. .IF IPFDOC Die standardmäßig verwendete Codepage hängt bei IPF von Einstellungen im OS/2-Betriebssystem bzw. vom Parameter hinter IPFC ab. .END Beachten Sie bitte, daß Sie IPF- und HTML-Kommandos hier mischen können, so daß ein Schrift-Buchstabe sowohl das Outfit im IPF als auch im HTML-Format festlegen kann. vgl. Schrift-Beispiele und Farb-Beispiele .2 link specific settings (Einst. bzgl. Querverweise) ©endings of words (Endungen von Wörtern)© .in endings of words .snb //endings in german words: e n en s es //endings in english words: s es 's ion ions ing ings ending of words = e n en s es .sn Siehe Querverweise, ¡Verfahrensweise bei Wortendungen¡. Wenn Sie einen deutschen Text mit vielen englischen Ausdrücken verwenden, werfen Sie am besten die empfohlenen Endungen beider Sprachen zusammen: .snb ending of words = e s es n en 's .sn ©Text for link to (Text für Querverweise zu ...)© .snb Text for link to subchapters = @Unterkapitel:@ Text for link to next chapter = @nächstes Hauptkapitel:@ //only HTML frames text for link to main chapter = zum Hauptkapitel .sn .IF HTMLDOC Werden HTML Frames erstellt, so werden zwei Gliederungsebenen gleichzeitig angezeigt. Im Fenster mit dem Unterkapitel wird zu Beginn ein Querverweis auf das Hauptkapitel gezogen; andere Querverweise wie "Inhalt" werden in solchen Fenstern nicht gezogen, da diese schon im Hauptkapitel-Fenster vorhanden sind. Der Querverweis zum Hauptkapitel ist erforderlich, um bei einem direkten Aufruf des Unterkapitels zum restlichen Dokument zu gelangen und kann nicht abgeschaltet werden. .END .in Querverweise zu Unterkapitel .in link to subchapters .sao HyperMake zieht automatisch ~Querverweise~ am Ende eines Kapitel-Fensters zu allen Unterkapiteln dieses Kapitels sowie zum nachfolgenden Kapitel gleicher Gliederungsebene bzw. höherer Gliederungsebene. Hier können Sie eintragen, was HyperMake über solche automatischen ~Querverweise~ schreiben soll. Sie dürfen nicht nur Buchstaben, sondern auch Umschalter oder Grafikzeichen verwenden. Wenn Sie ein NO in Großbuchstaben eingeben, zieht HyperMake keine solchen Kapitel-Querverweise: .snb Text for link to subchapters = NO Text for link to next chapter = NO .sn ©no more links in (keine weiteren Querverweise in ...)© .in no more links in .snb //possible Settings: PARAGRAPH, WINDOW no more links in = PARAGRAPH .sn Zweite und dritte Querverweise können in einem Absatz (paragraph) oder innerhalb eines gesamten Kapitels (window) unterdrückt werden. siehe Querverweise, ¡Unterdrücken von Querverweisen¡. .2 HTML specific settings (HTML-spezifische Einst.) ©title in every file© (Titel in jeder Datei) Standardmäßig wird der Titel am Anfang jeder Datei wiederholt, dies kann mit .snb title in every file = NO .sn abgeschaltet werden. ©First and last line (erste und letzte Zeile)© .snb //only HTML: first and last line in file title in every file = YES function for first line = BACK FORWARD CONTENT INDEX text for first line = zurück vorwärts Inhalt Stichwörter function for last line = FORWARD CONTENT INDEX text for last line = vorwärts Inhalt Stichwörter .sn HyperMake erzeugt zahlreiche HTML-Dateien. Der Benutzer sollte am Textende zur nachfolgenden Datei springen können (FORWARD) und am Anfang zur vorherigen Datei (BACK). Außerdem sollte aus jeder Datei heraus das Inhaltsverzeichnis (CONTENT) und Stichwortverzeichnis (INDEX) erreichbar sein. Ob alle derartigen Funktionen sowohl in der ersten Zeile (first line) als auch in der letzten Zeile (last line) zur Verfügung stehen sollen, kann hier eingestellt werden, auch die Reihenfolge der Funktionen sowie die Wörter, die den Querverweis darstellen (text for...). ©Buttons (Druckknöpfe)© .snb //you can use buttons BACK.GIF FORWARD.GIF CONTENT.GIF INDEX.GIF instead of text buttons = YES .sn Für die erste und letzte Zeile können die Querverweise "zurück vorwärts Inhalt Stichwörter" sowohl als Text als auch als Grafik-Buttons dargestellt werden. Die Namen der GIF-Dateien sind fix. Wenn sich die GIF-Dateien nicht in dem Verzeichnis befinden, das auch die HTML-Dateien enthält, dann erscheint statt den Buttons der Text, den Sie unter "text for first/last line" definiert haben. Wenn die Dateien sich auf einem Unix-Server befinden, wird Groß- und Kleinschreibung unterschieden! Schreiben Sie deshalb alle diese Dateinamen GROSS ! ©body tags ("body" Einträge)© .snb //enter tags or NO body tags = NO .sn Es können diverse HTML body tags eingetragen werden, etwa .snb body tags = background="backgr.gif" TEXT="#00FFFF" .sn .IN Farbe Hintergrund .IN Farbe Text Standard Gehen Sie behutsam mit body tags um! Wenn Sie etwa einen blauen Hintergrund wählen, sind die Querverweise nicht mehr sichtbar. Beachten Sie dabei, daß manche Benutzer andere Standardfarben gewählt haben wie Sie! Nur wenn Sie einen überwiegend weißen oder grauen Hintergrund wählen, gehen Sie kein Risiko ein. ©extended index (Großes Stichwortverzeichnis)© .in extended index .snb entries for extended index = 30 .sn Hier können Sie einstellen, ab welcher Zahl von Indexeinträgen das große Stichwortverzeichnis statt dem kleinen erzeugt werden soll. ©new file level (Gliederungsebene der Unterteilung in Dateien)© .snb //HTML text file is divided in several files. //Enter heading level where new file begins (0 means only one HTML text file) new file level = 3 .sn HyperMake erzeugt aus einer Quelldatei viele HTML-Dateien. Dies verbessert die Geschwindigkeit der Browser ganz erheblich. Mit dieser Einstellung können Sie beeinflußen, wieviel Dateien erstellt werden sollen. "3" bedeutet, daß für die Kapitel der Gliederungsebenen 1, 2 und 3 grundsätzlich neue HTML-Dateien begonnen werden. In Bereichen, in denen die Fensteranordnung (Frames) aktiv ist, erzeugt HyperMake jedoch für alle Kapitel grundsätzlich eigene Dateien. Wenn 0 eingegeben wird, so wird nur eine HTML-Datei (plus Stichwortverzeichnis und Inhaltsverzeichnis) erstellt (falls keine Fensteranordnung verwendet wird). ©horizontal rule level (Gliederungsebene der Trennung durch horizontale Striche)© .snb //Enter heading level up to which has to be divided by horizontal rules // (0 means no rules) horizontal rule level = 4 .sn HTML läßt horizontale Striche über das ganze Fenster hinweg zu. Diese können dazu genutzt werden, einzelne Kapitel voneinander zu unterteilen, falls sie ohnehin nicht in unterschiedlichen HTML-Dateien liegen. Der Wert für "horizontal rule level" muß deshalb höher sein als der für "new file level". "4" bedeutet, daß die Kapitel 1., 2., 3. und 4. Ordnung mit einem Strich getrennt werden, falls sie in derselben Datei abgelegt werden. ©pre filename (Beginn der Dateinamen)© .snb //pre filename = XYZ* let all HTML files begin with XYZ pre filename = * .sn (Registrierung erforderlich) HyperMake erstellt aus einem Quelltext eine große Zahl von Dateien. Diese Dateien haben Namen, die HyperMake festlegt. So werden einfach Nummern für Dateinamen vergeben: N000.HTML, N001.HTML usw. Um in nur einem Pfad mehrere unterschiedliche HyperMake-Texte haben zu können, läßt sich ein String eingeben, der all den Dateinamen incl. INDEX.HTML vorangestellt wird. Beispielsweise führt die Eingabe von ~XYZ*~ dazu, daß die Dateinamen dann XYZN000.HTML, XYZN001.HTML usw. heißen. Achten Sie bei alten FAT-Laufwerken bitte selbst darauf, daß die 8-Buchstaben-Begrenzung eingehalten wird. (Das bedeutet, der pre filename darf nicht mehr als 3 Buchstaben haben.) .2 IPF specific settings (IPF-spezifische Einst., nicht HTML) ©Help Subtable Start ID (Startwert für ID-Konstanten)© .snb Help Subtable Start ID = 7000 .sn Mit der Help Subtable Start ID können Sie einen Startwert für die ID's angeben, die die Subtables definieren. Das brauchen Sie nicht zu ändern, außer Sie definieren in Ihrem Programm-Quelltext selber auch schon Konstanten mit Werten von 7001, 7002 usw. ©Filenames (Dateinamen)© .in Filenames .snb //files will be overwritten without warning Helptable filename = HLPTABLE.RC Panel ID filename = PANELID.H .sn Hier können Sie die Dateinamen der Helptable- und Panel-ID-Datei ändern, die automatisch von HyperMake generiert werden. Wenn Sie als Dateiname *.XYZ eingeben, wird als Dateiname der Quell-Dateiname mit der entsprechenden Erweiterung gewählt. ©Achtung!© Die beiden Dateien werden ohne Vorwarnung überschrieben. .1 Starten des HyperMake Compilers Das HyperMake-Programm ist ein Compiler, der von der Kommandozeile gestartet wird, ähnlich IPFC. .in Installation .in kompilieren .in compiling .in Kommandozeilenparameter Bevor Sie HyperMake benutzen können, müssen Sie HMAKE.EXE in einen Pfad kopieren, der in der Datei CONFIG.SYS unter ¡PATH¡ vorkommt; die Datei KBDVIO32.DLL muß in einem Pfad sein, der unter ¡LIBPATH¡ vorkommt. Findet die EXE-Datei die DLL nicht, so erscheint die Fehlermeldung "µ:runtime error 217:". Sie müssen ein oder zwei Parameter übergeben: .snp .fu [C:\myProject] HMAKE MeinDoku.txt Meine.ini .sn .fu[] Die Reihenfolge der Parameter ist egal. Die Dateinamen-Erweiterungen müssen Sie aber auf jeden Fall angeben. Die Ini-Datei muß immer mit ".INI" enden, die Erweiterung des HyperMake Quelltextes ist beliebig. Wenn Sie ohne Erweiterung den gleichen Dateinamen für Text- und Ini-Datei verwenden wie etwa ¡MeinDoku.txt¡ und ¡MeinDoku.ini,¡ so reicht es aus, nur den Namen des HyperMake Quelltextes anzugeben - HyperMake sucht dann nach der entsprechenden Ini-Datei: .fu .snp [C:\myProject] HMAKE MeinDoku.txt .sn .snL Mehrere Quelltexte .sn Sie können Ihren Quelltext auf mehrere Dateien verteilen. HyperMake kopiert die Dateien dann zusammen, bevor es mit der eigentlichen Arbeit beginnt. Dabei gilt die Reihenfolge der Übergabeparameter. Wenn nicht explizit eine Ini-Datei angegeben wird, so wird der Name der Ini-Datei vom ersten Quelldateinamen abgeleitet. .snL HTML- oder IPF-Dateien erzeugen .sn Mit den Kommandozeilenparametern ~HTML~ und ~IPF~ kann die Standardeinstellung "target file" in der Ini-Datei temporär überschrieben werden. .fu[] .snL Wie HyperMake vorgeht .sn Nachdem HyperMake aufgerufen wurde, geht das Programm wie folgt vor: .sao ¶ ©Einlesen der Ini-Datei© ¶ ©Einlesen des Quelltextes© Der Quelltext wird mit einem Schlag in den Heap geladen ¶ ©Indizieren der Kapitelüberschriften© Alle Kapitelüberschriften bzw. Kapitel erhalten eine Identifizierungsnummer. ¶ ©Indizieren der Querverweise© Alle Wörter oder Ausdrücke, die mit dem Indexzeichen oder mit den entsprechenden Punktbefehlen markiert sind, werden im Heap abgelegt. ¶ ©Schreiben der IPF-Datei oder der HTML-Dateien© Zuletzt wird die IPF-Datei bzw. werden die HTML-Dateien erstellt, was die Hauptarbeit ist. Jedes Wort des Hypertextes muß mit den indizierten Wörtern aus dem Heap verglichen werden, um ggf. Querverweise zu ziehen. Hier werden auch die meisten Punktbefehle und Umschalter ausgewertet sowie Helptables im Heap erstellt. HTML-Dateien werden in einen ggf. neu anzulegenden Pfad gespielt. .IF HLPDOC ¶ ©Schreiben der Helptable-Datei© Bei der Verwendung von RC-Punktbefehlen im HyperMake Quelltext wird die im Heap angesammelte Information über den Helptable in der Helptable-Datei abgespeichert. .END Beim Indizieren von Kapitelüberschriften, Indizieren von Querverweisen und dem Schreiben der IPF-Datei erscheint für jedes bearbeitete Kapitel (Fenster) ein Punkt am Bildschirm. Ertönt ein tiefer µPiepston, so hat HyperMake einen so schweren Fehler gefunden, daß die IPF-Datei bzw. die HTML-Dateien nicht erstellt werden konnten. .IF HTMLDOC Als Dateinamen-Erweiterung für HTML-Dateien wird ".HTML" gewählt. Nur auf FAT-Laufwerken wird ".HTM" verwendet. .END .snL Schreiben von Batch-Dateien .sn .IF IPFDOC Weil das IPF-Format nicht mehr von Interesse ist, kann man HyperMake und IPFC über eine µ:Batch-Datei: (mit der Endung ".CMD") aufrufen. Eine vernünftige Batch-Datei zum Abarbeiten im Hintergrund ist die folgende: .snb @echo off rem Erstellung eines Hypertextes mit HyperMake und IPFC HMAKE %1.txt %1.ini >HyperMake_errors ipfc /inf %1.ipf /country=049 /language=deu >ipfc_errors echo  .sn Die letzte Zeile enthält zwei Zeichen Alt-7, das ergibt zwei Piepser. Wenn Sie eine fehlerhafte INF- bzw. HLP-Datei erhalten, können Sie die ASCII-Dateien ¡HyperMake_errors¡ und ¡ipfc_errors¡ lesen (bzw. beim FAT-Dateisystem kürzere Dateinamen). Wenn Sie hinter ¡ipfc¡ nicht /inf schreiben, so wird eine HLP-Datei statt einer INF-Datei erzeugt. Die von HyperMake erzeugte IPF-Datei kann immer für beides verwendet werden, selbst wenn Sie HLP-spezifische ressource connection und Panel ID Punktbefehle verwendet haben. Wenn Sie mit Batchdateien nicht vertraut sind, so können Sie darüber unter "OS/2-Befehle (nach Funktion sortiert), Stapeldatei- und Befehlsverarbeitung" im OS/2-Referenzhandbuch nachlesen. .END IPFDOC Denken Sie beim Sichern Ihrer Festplatte daran, daß Sie HTML-Dateien bzw. IPF-Dateien nicht sichern müssen, weil Sie sie jederzeit aus dem HyperMake Quelltext reproduzieren können. .IF HTMLDOC Bei der Erstellung von HTML-Dateien läßt sich eine Batchdatei schreiben, die zuerst die alten HTML-Dateien löscht und dann HyperMake aufruft: .snb del %1\*.html HMAKE %1.txt #Bedingung >HyperMake_errors edit HyperMake_errors .sn .END HTMLDOC .1 Rückwärts-Konvertierung von IPF nach HyperMake Wenn Sie einen Text schon im IPF-Format vorliegen haben, hilft Ihnen HyperMake bei der Rück-Übersetzung ins HyperMake Quelltext-Format. Es gibt noch keinen völlig perfekten Quelltext, aber die wichtigsten Funktionen werden korrekt übersetzt. Die µRückwärts-Konvertierung ist zu folgendem in der Lage: ¶ Umschalter (toggles) ¶ Kapitel ¶ unsortierte Listen, sortierte Listen ¶ die wichtigsten Formatierbefehle (paragraph, break, Formatieren ein/aus) ¶ Indexeinträge (nur i1 Ebene), sie werden auch gleich zum Querverweis-Ziel ¶ Grafiken. Nicht funktioniert das folgende: ¶ Schriften ¶ Fensteranordnung ¶ Ränder ¶ Fußnoten ¶ definition list ¶ Panel ID's, die Verbindung zu einem EXE Programm. Bei der Rückwärts-Konvertierung wird auch die Ini-Datei gelesen. Werfen Sie vorher schon einen Blick auf die Einstellungen "list char", "toggle char" and "Source format". Achten Sie vor allem darauf, daß genügend "list char" definiert sind, also etwa vier Stück wenn im IPF-Text Listen mit bis zu vier Ebenen vorkommen. .sab Um die Rückwärts-Konvertierung zu starten, geben Sie neben der Ini-Datei noch eine Datei mit der Erweiterung ~IPF~ ein. .snp .fu [C:\myProject] HMAKE meineDok.ipf meineDok.ini .sn .fu[] Es wird ¡grundsätzlich¡ eine HyperMake Quelldatei mit dem Namen HMSOURCE.TXT erstellt. .FA verti 25 .1 Über HyperMake .in HyperMake .2 Registrierung .saL .inRegistrierung .in Preis Dieses Programm ist ~Shareware~ wenn Sie größere Quelltexte als 20 kB bearbeiten lassen möchten. Dafür müssen Sie einen Registrierungsschlüssel anfordern. Kleinere Quelltexte als 20 kB lassen sich auch ohne Registrierungsschlüssel compilieren, in diesem Fall ist es ~Freeware.~ Warum gerade 20 kB? Ich bin der Meinung, daß für die Erstellung kurzer HTML-Texte und INF- und HLP-Dateien für einfache Freeware-Programme die Benutzung von HyperMake kostenlos sein sollte. Wenn Sie also Fehler finden und nicht registriert sind, dürfen Sie mir gerne trotzdem eine Mail schicken. Die Registrierungsgebühr beträgt ~60 Deutsche Mark~ oder ~40 Dollar~. Beim Erwerb von mehreren Lizenzen erhalten Sie 30% Rabatt für jede zusätzliche Lizenz. Wenn Sie Zugang zu Compuserve haben, können Sie diese Software über Compuserve registrieren lassen. Go ~SWREG~. Die Nummer (Registration ID) lautet ~9988~. Meine Kontoverbindung lautet: Dresdner Bank Ottobrunn (Deutschland), BLZ 700 800 00, Nr. 075 64 62 400 ©Bitte senden Sie mir keine Fremdwährung!© Ich müßte 15 DM Umrechnungsgebühr an meine Bank zahlen! Schicken Sie mir dann lieber DM (oder zur Not Banknoten Ihrer Währung) einfach per Post in einem Briefkuvert. Wenn Sie sich nicht über Compuserve registrieren lassen, erhalten Sie eine Rechnung über den entsprechenden Betrag und ihren Registrierungsschlüssel auf dem Postweg. Den Registrierungsschlüssel tragen Sie in Ihren HyperMake Ini-Dateien unter "registration key" ein. .2 Haftungsausschluß Der Autor übernimmt keinerlei Haftung für Schäden, sei es durch fehlerhafte Bedienung oder durch Fehler im Programm. Es wird auch keine Garantie über die Registrierungsgebühr hinaus gegeben. .2 Autor ..in Ich .in Autorenadresse Martin Vieregg, 30. Ich habe Betriebswirtschaft mit Schwerpunkt Verkehrswirtschaft studiert. Ich arbeite in einer Zwei-Mann-Beratungsgesellschaft. Unser Spezialgebiet ist der Öffentliche Verkehr, speziell Eisenbahn. Das Thema meiner Doktorarbeit lautet "Effizienzsteigerung im Schienenpersonenfernverkehr" (ISBN 3-929115-51-4). .sno Meine Mailadresse ist: .sn Martin Vieregg Compuserve 100661,626 vom Internet aus: Martin Vieregg 100661.626@COMPUSERVE.COM Meine Postanschrift lautet: Dr. Martin Vieregg Hubertusstr. 26 D-85521 Ottobrunn .2 Versionen .snL Gefundene Fehler und Verbesserungen MakeIPF Beta 0.91 nach 1.0 .sn ¶ Absturz "access denied" kommt nicht mehr vor; geringerer Speicherbedarf ¶ jetzt mit dem endgültigen (Nicht-Beta) SpeedPascal Compiler erstellt. (Datenumleitung jetzt o.k.) ¶ automatischer Rand .AM ¶ If-Bedingungen ¶ Verbesserung der automatischen Querverweise, insbes. Wortendungen ¶ diverse Fehler beseitigt .snL Bereinigte Fehler in MakeIPF 2.0 .sn .in neue Version ¶ Fehler beim Ausdrucken von INF/HLP-Texten (feste Schrift "tritt auf der Stelle") ¶ Fehlerhafte Anzahl von Returns bei "Formatieren aus" Darüber hinaus wurden zahlreiche kleinere Fehler beseitigt. .snL Neue Funktionen in MakeIPF 2.0 .sn ¶ externe Querverweise (external links) zu separaten HLP- und INF-Dateien hin ¶ Programme starten mittels Querverweise ¶ automatische Duplizierung von Kapitelüberschriften im Fließtext, Kapitelüberschrift als Querverweis-Sprungziel, Aufnahme von Kapitelüberschriften in den Index ¶ zahlreiche neue Fehlermeldungen, die sonst erst beim IPFC-Compiler kommen ¶ Tabs werden automatisch in die entsprechende Anzahl Leerzeichen verwandelt (nur bei Schrift mit festen Schritten sinnvoll) ¶ verbesserte Fensteranordnung (siehe letzten Absatz im besagten Kapitel) ¶ Registrierung über Compuserve .snL Bereinigte Fehler in (neuer Name) HyperMake 2.9 .sn ¶ "link to subchapters = NO" führte zu Programmabsturz ¶ Bei Verwendung der IPFC Version 2.1 von 1993 und der Einstellung "ASCIIHARDRET" fehlte in längeren Absätzen nach ca. 200 Buchstaben ein Leerzeichen. ¶ Bei der Einstellung "ASCIIHARDRET" traten Probleme mit unsortieren Listen auf. .snL Neue Funktionen in HyperMake 2.9 .sn ¶ zusätzlich HTML als Zielformat ¶ Rückwärts-Konvertierung von IPF nach HyperMake ¶ index filter ¶ mehrere Quelltexte (siehe Kommandozeilenparameter) ¶ (2.91) erste Version auch als Win32-Programm verfügbar ¶ (2.91) Fußnoten auch für HTML. .snL Neue Funktionen in HyperMake 3.0 (in Planung) .sn ¶ Tables (Tabellen-Funktion) sowohl für IPF als auch für HTML ¶ direkte Eingabe von URLs in den Fließtext, etwa für {HTTP://...} erscheint ein Globus-Icon ¶ Benutzer-Buttons in Ergänzung zu back, forward, content, index, sie zeigen dann auf bestimmte Kapitel ¶ Benutzer head tags, die in jede HTML-Datei kopiert werden ¶ andere Ergänzungen im Detail, die Ihnen abgehen! Kommentare erwünscht. Künftige HyperMake-Versionen wird es unter verschiedenen Betriebssystemen geben. Für die Win32-Version plane ich, Microsofts neues kontextsensitives HTML zu unterstützen. Da es die alte Windows Hilfe denmnächst ersetzen soll, wird sich die Unterstützung des WinHelp Formates kaum mehr lohnen. Dafür werde ich aber wahrscheinlich eine Rückwärts-Konvertierung nicht nur von IPF, sondern auch von RTF[Rich text format, bisheriges Eingabeformat der Windows-Hilfe] nach HyperMake anbieten. Ich stelle mir vor, mit 3.0 im Februar 1997 fertig zu werden. .2 Wo Updates? .snL Wo Sie HyperMake finden .sn Sie finden die neueste HyperMake OS/2 Version in Compuserve OS2UGER und OS2BVEN. Im Internet sind es die üblichen OS/2-Adressen ftp-os2.nmsu.edu, ftp.cdrom.com/pub/os2 und auf dem Münchner ftp.leo.org/pub/comp/os/os2. Die Win32-Version gibt es auf ftp.leo.org/pub/comp/os/win95 und im Compuserve in WINGER und GERWIN. Die OS/2-Version finden Sie unter Hmakeo*.ZIP. Die Win32-Version finden Sie unter HmakeW*.ZIP. Haben Sie Ideen zu neuen Funktionen für HyperMake? Ich freue mich über jeden Kommentar oder Verbesserungsvorschlag. .2 Warenzeichen IBM und OS/2 sind eingetragene Warenzeichen der International Business Machines Corp. WordStar ist eingetragenes Warenzeichen von MicroPro. SpeedPascal ist ein Warenzeichen von SpeedSoft GmbH. TurboPascal ist eingetragenes Warenzeichen von Borland Corp. Windows ist eingetragenes Warenzeichen von Microsoft. .2 Betriebssysteme .iv verschiedene Betriebssysteme Sie waren bestimmt von der Verarbeitungsgeschwindigkeit sehr angetan. Dabei gibt es eine kleine Überraschung: Ich habe das Programm nicht in C geschrieben, sondern mit Speed-Pascal[SpeedSoft, Chemnitz], einem TurboPascal-kompatiblen OS/2-Compiler mit IDE. Er erzeugt sowohl OS/2- als auch Win32-Programme. Für die Zukunft ist noch Powermac, Linux und AIX geplant, so daß es auch für diese Plattformen HyperMake geben wird. .2 Andere Progs Ich habe noch einige kleine Programme programmiert, es ist meist Freeware. Außer Textbuch sind es nur OS/2-Programme (bis jetzt...), alle Programme haben auch deutsche Dokumentation. ¶ ©PMCALC20© PmCalc 2.0, ein PM Taschenrechner mit automatischer Zwischenablagenunterstützung, hex und wissenschaftlichen Funktionen (auch in deutsch, Shareware) ¶ ©TINYALRM© TinyAlarm 2.1, Uhr mit Eieruhr als Schieber von 1 bis 60 and einem Wecker, bei dem man eine Weckzeit einstellen kann ¶ ©ZIPSHELL© Simple Zipshell, eine Handvoll kleiner Batch-Dateien, um mit ZIP- und ARJ-Dateien elegant über die WPS umgehen zu können (auch in Deutsch) ¶ ©CD_SHORT© CD Shortcut 2.0, Abkürzung für den CD-Befehl. Statt vollständiger Verzeichnisnamen gibt man nur Wortteile ein (Anleitung auch in Deutsch) ¶ ©CLEAR10G© Clear 1.0, erzeugt Dateilisten zum zippen auf Disketten und zum Löschen, mit komplexen Auswahlkriterien ¶ ©TEXTBUCH© 1.0 (auch DOS, nur deutsch). Doppelte Buchführung für Selbständige und kleine bis mittlere GmbH's. Arbeitet wie ein Compiler. Input und Output sind Textdateien. Umfangreiche INF-Datei (OS/2-Version), Textdatei (DOS-Version), HTML-Datei (Win32-Version). Shareware bei > 350 Buchungssätze pro Jahr. Sie finden die OS/2-Programme in Compuserve OS2UGER 7 und im Internet unter ftp.leo.org/pub/comp/os/os2. Ende des Hypertextes