..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 "Anfnger" anschauen mchten,
..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.
..Kapitelberschriften wird ein .n vorangestellt, wobei n die Hierarchie
..angibt (1 bis 6). Das Zeichen  markiert Wrter fr den Index und als
..Querverweis-Ziel, :Wort1 Wort2: markiert einen Ausdruck.
..Die restlichen Sonderzeichen sind Umschalter (Toggles), z. B. fr
..inverse Schrift.

.TI Dokumentation HyperMake 2.9
.fu[]
.st
.1
Einfhrung

HyperMake (frher 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 erhlt. 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 Rckwrts-Konvertierung von IPF nach HyperMake. Dies ist dann sinnvoll, wenn eine Dokumentation schon im IPF-Format vorliegt.

Knftige HyperMake-Versionen wird es unter verschiedenen Betriebssystemen geben.

.IF HTMLDOC
Falls Sie diesen Text im HTML-Format betrachten, so erscheint derzeit noch statt Funoten der Funotentext in eckigen Klammern im Flietext.
.END

HyperMake ist nicht in erster Linie dafr gedacht, eine einzelne Homepage zu schreiben. Seine Strke liegt in der Erstellung grerer Dokumente wie wissenschaftliche Arbeiten oder Programmdokumentationen mit Inhaltsverzeichnis und Stichwortverzeichnis (Index).

Wenn Sie HyperMake verwenden, mssen Sie lediglich das vergleichsweise einfache HyperMake-Format erlernen. Sie knnen 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 Wrter mit einem speziellen Zeichen hat zur Folge:
- Querverweise (engl. links) von allen gleichlautenden Ausdrcken 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 fhrt zu hherer Performance bei der Benutzung von Browsern. Weder der Autor des Textes noch der Betrachter merkt etwas davon.
.END

.IF IPFDOC
 Automatische Erstellung von Helptables
Fr OS/2 HLP-Dateien drfen in den HyperMake ASCII-Quelltext direkt ID Konstanten wie "ID_buttonOK" eingetragen werden, um eine Verbindung zwischen dem Knopf und der erluternden 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 nchsten 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 Gren 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 Funoten

 Automatisches Linienziehen, um Kstchen zu erstellen

 Kurze, einfache Befehle
- fr Kapitelberschriften und deren Gliederungsebene
- um Schriften auszuwhlen
- um Grafiken allein oder im Flietext 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 ist fr HTML die Funotenfunktion noch nicht enthalten, auerdem fehlt noch die Untersttzung von Tabellen (Tables) sowohl fr HTML als auch fr IPF. Beides ist fr 3.0 vorgesehen.

.2
HTML-Dateien, Web-Browser und Internet

.in Dateiformat HTML
.in HTML-Datei
Die :Hypertext-Markup-Language HTML: ist ein plattformbergreifendes Dateiformat fr 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, bentigt man Browser.

In der Regel befinden sich die Dateien nicht lokal auf dem eigenen Rechner, sondern im Internet. Trotzdem aber lt 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 untersttzt. Die wichtigste Neuerung sind Frames (Fensteranordnung). Mit HyperMake erzeugte HTML-Dateien, die Frames enthalten, knnen auch mit lteren Browsern betrachtet werden, dann natrlich 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 schwerfllig. IBM INF und HLP Dateien sind kompakte Binrdateien. Der Viewer (Betrachter) ist klein und sehr schnell. IBM INF Viewer gibt es fr OS/2 (das Format aller OS/2-Programmdokumentationen), fr Win16 und fr DOS. Der Win16 Viewer ist Teil des Pakets "Just add Warp"; es werden die Dateien LIBIPFX.DLL, VIEW.EXE und VIEWH.HLP bentigt. 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, bentigen Sie den IBM IPFC Compiler (von IPF nach INF). Dieser ist Bestandteil von OS/2-Enwicklungssystemen, es soll ihn aber auch fr Windows geben.[Leider bin ich ber die Bezugsquelle der Windows-Version nicht informiert.]

Im Vergleich zu HTML-Browsern haben die IBM INF Viewer einige leistungsstarke Features, die vor allem bei groen Dokumenten zum Tragen kommen:

 der Index ist Bestandteil des binren INF Formates
 ebenso das Inhaltsverzeichnis, Kapitelberschriften lassen sich wie Verzeichnisbume auf- und zuklappen
 sehr schnelle Such-Funktion: Da intern jedes Wort nur einmal gespeichert ist und Zeiger auf die tatschlichen Textstellen zeigen, knnen mehrere MB pro Sekunde nach bestimmten Wrtern abgesucht werden. Der Benutzer erhlt dann ein Auswahlfenster mit allen Kapiteln, in denen der Suchbegriff vorkommt.
 Mehrere INF-Dateien knnen per Kommandozeilenparameter "zusammengehngt" werden, so da fr den Benutzer eine groe Hilfedatei mit entsprechend vergrertem 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 mchtiges Werkzeug, mit dem praktisch alles machbar ist, was in einem solchen Hypertext denkbar ist. Allerdings ist diese Eingabesprache ziemlich umstndlich und hat kaum eine Eigenintelligenz. Deshalb findet man als OS/2-Anwender hufig 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 fr Programmdokumentationen.] und HLP-Dateien[Das HLP-Format ist hnlich dem INF-Format, ermglicht 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 lnderspezifischen 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 bentigt eine eigene Zeile und beginnt mit einem Punkt, zum Beispiel

.snb
 .SN
.sn

stellt die Normalschrift auf den Standardwert (engl. default). Punktbefehle knnen sowohl mit Klein- als auch mit Grobuchstaben 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 knnen 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

 <HTML-Kommandos> Flietext usw.

 .HYPERMAKE
.sn

Sie knnen auch direkt HTML-Text und -Kommandos schreiben - z. B. fr :Java-Skript:s, er wird ohne nderung bernommen.
.END HTMLDOC

Wenn Punktbefehle aus mehr als zwei Buchstaben bestehen, mssen Sie nur die ersten zwei Buchstaben unbedingt schreiben.

Beginnt ein Punktbefehl nicht in der ersten Spalte, so wird er nicht interpretiert, sondern erscheint im Flietext.

In diesem Hypertext befindet sich ein Verzeichnis aller Punktbefehle.

.3
Umschaltzeichen

.in Umschaltzeichen
.in toggle
.in Zeichen fr Umschalter
In der Ini-Datei knnen Sie einige Umschaltzeichen (engl. toggle) definieren. Zwischen zwei identischen Umschaltzeichen wird eine bestimmte Funktion aktiviert, beispielsweise "fett". Wenn Sie in der Ini-Datei "*" fr "fett" und " @" fr "italic" (d. h. schrg) eingestellt haben, knnen Sie schreiben:

.snb
Dieser *Teil des Satzes* ist besonders wichtig.
.sn

Sie erhalten dann:

Dieser Teil des Satzes ist besonders wichtig.

Sie knnen 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 mssen sich also Zeichen berlegen, die Sie auf jeden Fall im Text nicht bentigen.

Sinnvoll sind z. B. die Steuerzeichen unter ASCII dezimal 32, wenn der verwendete Editor diese untersttzt,[natrlich 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, knnen Sie zwischen zwei verschiedenen Arten whlen, wie Returns (Zeilenvorschbe) interpretiert werden sollen. Mit der ASCIIHARDRET Einstellung in der Ini-Datei, Abschnitt source format, wird jeder Return auch tatschlich als eine neue Zeile verstanden. Whlen Sie diese Einstellung, wenn Ihr Editor zu lange Zeilen automatisch in die neue Zeile umbricht, ohne aber selbstndig Return-Steuerzeichen in den Text zu schreiben. Der OS/2 E und EPM Editor untersttzen 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 eingefgt 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 Kapitelberschrift.

.IF HTMLDOC
HyperMake erzeugt aus nur einer Quelldatei mehrere HTML-Dateien. Jede HTML-Datei erhlt 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 standardmig die Tasten "Inhalt", "Zurck" und "Vorwrts" 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 verfgen ber ein Inhaltsverzeichnis.

.IF IPFDOC
Wenn man eine INF-Datei aufruft, erhlt man zu Beginn ein Inhaltsverzeichnis, bei dem man wie in einem Verzeichnisbaum Kapitelberschriften auf- und zuklappen kann. Der Text, der unter jeder Kapitelberschrift steht, erhlt ein eigenes Fenster.
.END

.IF HTMLDOC
Erzeugt HyperMake HTML-Dateien, dann erhlt man unter dem Dateinamen INDEX.HTML ein Inhaltsverzeichnis.
.END

Es lassen sich Kapitel und Unterkapitel wie in einer wissenschaftlichen Arbeit gliedern:

.snA
Hauptberschrift
    Erste Unterberschrift
    Zweite Unterberschrift
         Erste Unterunterberschrift
         Zweite Unterunterberschrift
    Dritte Unterberschrift
.sn

Im HyperMake Quelltext schreiben Sie Kapitelberschriften wie folgt:

.snb
 .1
 Erste Hauptberschrift

 .2
 Erste Unterberschrift

 .2
 Zweite Unterberschrift

 .3
 Erste Unterunterberschrift

 .3
 Zweite Unterunterberschrift

 .2
 Dritte Unterberschrift

 .1
 Zweite Hauptberschrift   
.sn

Unter dem Punktbefehl, in dem sie die Gliederungsebene angeben, schreiben Sie den Text der Kapitelberschrift.

Der Text darf mehr als eine Zeile lang sein. Wenn Sie als Quelltextformat ASCIISOFTRET gewhlt haben, mssen Sie zwei Returns (also eine Leerzeile) nach der Kapitelberschrift eingeben.

In einem normalen, ausgedruckten Schriftstck wrde man stattdessen z. B. Dezimalklassifiation verwenden:

1. Erste Hauptberschrift
   1.1 Erste Unterberschrift
   1.2 Zweite Unterberschrift
           1.2.1 Erste Unterunterberschrift
           1.2.2 Zweite Unterunterberschrift
   1.3 Dritte Unterberschrift
2. Zweite Hauptberschrift

.IF IPFDOC
Der Text hinter dem Gliederungsebenen-Punktbefehl ist auf etwa 200 Buchstaben begrenzt[Der IPFC Compiler wrde eine Fehlermeldung erzeugen.], aber man sieht im Fenstertitel nur etwa 70 bis 120 Buchstaben, abhngig von der Breite des Fensters auf dem Bildschirm.
.END

Zu Beginn des HyperMake-Quelltextes kann normaler Text erst nach der ersten Kapitelberschrift eingegeben werden.[Jede Kapitelberschrift steht fr ein Fenster. Ohne Fenster kann kein normaler Text dargestellt werden, der IPFC Compiler wrde Fehlermeldungen erzeugen.]

Es drfen bis zu 6 Gliederungsebenen verwendet werden.

Wenn ein Kapitel Unterkapitel hat, werden automatisch Verweise zu Unterkapiteln und ein Verweis auf das nchste 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 Kapitelberschrift 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 erhlt das obere Fenster (40% der Gesamthhe), das Unterkapitel das untere Fenster (die verbleibenden 60%).

Sie drfen Prozentwerte von 10 bis 90 eingeben.

Fr 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 Verfgung.

.IF IPFDOC
In gleicher Art und Weise knnen Sie auch drei Gliederungsebenen gleichzeitig anzeigen lassen. Dabei mssen 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 Lnge 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 greres. Sie knnen whlen, welche Gliederungsebene das grere Fenster bekommt, wobei Sie zwischen ~I~ und ~III~ einstellen knnen. So knnen Sie zwischen insgesamt vier Arten der Fensteranordnung whlen:

.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 fr ~I~ reservierte Platz ungenutzt. 

Wenn Sie drei Gliederungsebenen gleichzeitig angezeigt haben wollen, aber nicht jedes Kapitel ber die dritte Gliederungsebene verfgt, sollte immer Ebene ~I~ das grte Fenster erhalten, also ~I~ und nicht ~III~ im FA-Punktbefehl stehen. Dann nimmt das Kapitel der Ebene II den sonst fr 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 fr HTML wird in HyperMake 2.9 noch nicht untersttzt.)

 .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 fr HTML wird in HyperMake 2.9 noch nicht untersttzt.)


.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~

knnen Sie eine Schrift auswhlen, wobei ~X~ fr einen Schrift-Buchstaben (A bis Z und a bis z) steht; Gro- und Kleinbuchstaben werden unterschieden! Ein Schrift-Buchstabe steht fr eine bestimmte

 Schrifttyp (nur IPF) (Courier, Tms Rmn, Helv usw.)
 Size (Schriftgre)
 Codepage (nur IPF)
 Phrase Element (nur HTML)
 Vordergrundfarbe
 Hintergrundfarbe (nur IPF).

Sie knnen jedem der 2 x 26 Schrift-Buchstaben in der Ini-Datei verschiedene Schriften, Gren und Farben zuordnen.

Es gibt noch zwei andere Schrift-Einstellungen in der Ini-Datei: ~OmitLinks~ ist beschrieben in Querverweise, Unterdrcken 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 Erluterung bentigen die Phrase Elements von HTML.
Bei HTML knnen Sie nicht direkt die Schriftart "Courier", "Helvetica" usw. auswhlen, denn das zugrundeliegende Konzept ist ein anderes - schlielich wird vielleicht der Text auf einem Rechner angeschaut, der gar keine "Courier" Schrift verwendet. Die Schrift soll der Benutzer einstellen knnen. Als Autor des HTML-Textes knnen Sie stattdessen mittels Phrase Elements den Zweck des Textes angeben: etwa CODE fr Programmcode (es wird Schrift in festen Schritten verwendet). Der Browser whlt 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 gewhlt ist, bleiben die Zeilenumbrche aus dem Rohtext alle erhalten - die automatische Formatierung von Flietext ist dann ausgeschaltet.

Die restlichen Phrase elements haben die folgende Bedeutung:

~EM~ Standard-Hervorhebung, meist kursiv dargestellt
~STRONG~ starke Hervorhebung, meist fett dargestellt 
~DFN~ fr Definitionen 
~CODE~ fr Programm-Quellcode 
~SAMP~ fr Programm-Beispielsausgaben
~VAR~ fr Variablen oder Parameter von Befehlen
~CITE~ fr Zitate
.END

.snL
Formatier-Attribute
.sn

Mit dem ~center~ Attribut in der Ini-Datei wird eine Schrift immer zentriert ausgegeben. Der Punktbefehl Output Centered lt sich so sparen.

.IF IPFDOC
Fr IPF lt sich mit dem Attribut ~PRE~ die automatische Formatierung abstellen, beispielsweise fr Quelltexte.
Der entsprechende Punktbefehl Formatierung ist in diesem Fall nicht mehr ntig.
.END

.snL
:Schrift Alternativ:
.sn

.in Zeichen fr 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 Flietextes 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. Auerdem mchte ich Ihnen nahelegen, den Standardwert auch wirklich fr den berwiegenden Teil des normalen Flietextes zu verwenden. weil der Standardwert eine vernnftig lesbare Schrift auf jedem Bildschirm ist.
.END

Eine ausgewhlte Schrift ist bis zum nchsten Schrift-Punktbefehl aktiv, selbst ber Kapitel hinweg.

Alternative Schriften sollten nur innerhalb eines Absatzes verwendet werden. Wenn Sie mehrere Abstze 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
<ADDRESS>Beispielstext mit Phrase element ADDRESS</ADDRESS><br>
<PRE>Beispielstext mit Phrase element PRE</PRE><br>
<EM>Beispielstext mit Phrase element EM</EM><br>
<STRONG>Beispielstext mit Phrase element STRONG</STRONG><br>
<DFN>Beispielstext mit Phrase element DFN</DFN><br>
<CODE>Beispielstext mit Phrase element CODE</CODE><br>
<SAMP>Beispielstext mit Phrase element SAMP</SAMP><br>
<VAR>Beispielstext mit Phrase element VAR</VAR><br>
<CITE>Beispielstext mit Phrase element CITE</CITE><br>
.HYPERMAKE 
.END

.3
Schrift-Beispiele

.in Schrift-Beispiele
.IF HTMLDOC
HTML untersttzt nur Size (Schriftgre), 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

</font><br>
<font size=4 color=Black>Black<br></font>
<font size=4 color=Silver>Silver<br></font>
<font size=4 color=Gray>Gray<br></font>
<font size=4 color=White>White<br></font>

<font size=4 color=Maroon>Maroon<br></font>
<font size=4 color=Red>Red<br></font>
<font size=4 color=Purple>Purple<br></font>

<font size=4 color=Fuchsia>Fuchsia<br></font>
<font size=4 color=Green>Green<br></font>
<font size=4 color=Lime>Lime<br></font>

<font size=4 color=Olive>Olive<br></font>
<font size=4 color=Yellow>Yellow<br></font>
<font size=4 color=Navy>Navy<br></font>

<font size=4 color=Blue>Blue<br></font>
<font size=4 color=Teal>Teal<br></font>
<font size=4 color=Aqua><br></font><font>
.HYPERMAKE

ltere Browser untersttzen 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)
- Schriftgre
 Schriftfarbe
- Vordergrundfarbe (default, blue, cyan, green, neutral, red, yellow, black)
- Hintergrundfarbe (gleiche Farben wie bei Vordergrundfarben).

Verndern Sie einmal die Breite des Fensters und beobachten Sie die Textformatierung. Ein solches Ergebnis lt sich nicht mit normalen Zeichen erzielen.

Die hier sichtbaren Auflistungszeichen knnen nicht beeinflut 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 untersttzt; sie knnen es aber mit Hilfe des Befehls automatischer Rand simulieren.

.IF WORDSTARDOC
.3
Eingabe mit DOS WordStar

.sab
WordStar verfgt ber ":weiche Leerzeichen;" ~~. Sie knnen 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 gelscht. Mit Tab (^I) lassen sich keine weichen Leerzeichen erzeugen.]

Es gibt keine bestimmten Auflistungszeichen fr die verschiedenen Auflistungsebenen wie bei der Eingabe mit einem ASCII Editor. Stattdessen mssen weiche Leerzeichen verwendet werden.

.snb
Schriftstil
-Schrift (default, Tms_Rmn, Helv, Courier, System_VIO)
-Schriftgre
Schriftfarbe
-Vordergrundfarbe (default, blue, cyan, green, neutral,
red, yellow, black)
-Hintergrundfarbe (gleiche Farben wie bei Vordergrundfarben).
.sn

Mit Ausnahme der ersten Auflistungsebene mssen 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 gewhlt worden ist, darf innerhalb der gleichen Liste dies nicht mehr gendert werden. Beim folgenden Beispiel wrde HyperMake Fehlermeldungen erzeugen:

.snb
Schriftstil
-Schrift (default, Tms_Rmn, Helv, Courier, System_VIO)
-Schriftgre (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, drfen Sie fr die nchste 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 fr Auflistungsebenen
In der Ini-Datei knnen Sie Auflistungszeichen definieren. Auflistungszeichen stehen am Anfang einer Zeile. Angenommen, in der Ini-Datei sind folgende Auflistungszeichen festgelegt: * fr die erste und = fr 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)
= Schriftgre
* Schriftfarbe
= Vordergrundfarbe (default, blue, cyan, green, neutral, red, yellow, black)
= Hintergrundfarbe (gleiche Farben wie bei Vordergrundfarben).
.sn

Sie knnen auch noch Auflistungszeichen fr 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 zulssig, zur eigenen bersicht weitere Leerzeichen zu verwenden. Das gleiche Ergebnis wie oben erhlt man deshalb mit der folgenden Eingabe:

.snb
  *   Schriftstil
      =   Schrift (default, Tms_Rmn, Helv, Courier, System_VIO)
      =   Schriftgre
.sn

.3
Sortierte Listen

.sv ordered list
.sv sortierte Liste
.sao
Eine sortierte Liste zhlt 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 lt 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

lt 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 fr 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" angehngt. IPFC untersttzt auerdem 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" angehngt, wenn der Grafikdateiname ohne Erweiterung angegeben wird.
.END

.sab
Statt eines Dateinamens knnen Sie mit den Schlsselwrtern ~MITTE~ ~LINKS~ ~RECHTS~ die Grafik ausrichten. Standardwert ist ~MITTE~. Um eine Grafik linksbndig zu bekommen, schreiben Sie also

.snb
 .BM LINKS
 .BM Dateiname
.sn

Mit einem zweiten Punktbefehl :bitmap text: lassen sich Grafiken in den Flietext integrieren:


.snb
 .BTX Dateiname
.sn

.bt box
.in Grafikzeichen
~X~ steht stellvertretend fr ein Sonderzeichen, das sonst nicht im Text verwendet wird (sog. Grafikzeichen). Dieses Sonderzeichen wird ersetzt durch die Grafik "Dateiname". Beachten Sie, da Grafiken  hher sind als Buchstaben, so da sich ein grerer Zeilenabstand ergibt, selbst wenn die Grafik so klein wie ein Buchstabe ist. Block-Zeichen wie  (Alt-219),  (Alt-220),  (Alt-223) sind besonders geeignet.

Es ist zulssig, 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 fr Index- und Querverweismarkierung

.3
Automatische Erstellung von Querverweisen und Indexeintrgen

Die Erstellung von Querverweisen ist die mchtigste Funktion von HyperMake. Wenn man eine HTML-Datei oder IPF-Datei direkt schreiben wrde, so mte 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 mte man selbst 1000 mal einen Querverweis programmieren... Letztlich wird dann auf sinnvolle Querverweise ganz verzichtet.

.IF HTMLDOC
Fr HTML wird ein alphabetischer Index in einer eigenen Datei erzeugt.
.END

Mit HyperMake mssen Sie lediglich einmal einen gewnschten Ausdruck (ein Wort oder mehrere Wrter) mit einem bestimmten Zeichen (dem Indexzeichen) markieren, und zwar an der Stelle, wo der Ausdruck erklrt 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.

.3
Markieren eines einzelnen Wortes, ndern des Indexzeichens

.in Indexzeichen
.snL
Markieren eines einzelnen Wortes
.sn

Um ein einzelnes Wort fr 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 Kapitelberschriften, benutzen Sie hierfr die Duplizierung von Kapitelberschriften.

.snL
ndern des Indexzeichens
.sn

Mit dem Punktbefehl Indexzeichen

.snb
 .IZ@
.sn

.sab
wird die aktuelle Einstellung fr das Indexzeichen aus der Ini-Datei, z. B. ~#~, in ~@~ gendert.

.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, knnen in der Ini-Datei unter extended letters definiert werden.)

Um einen Ausdruck mehrerer Wrter zu markieren, werden zustzlich zum Indexzeichen Doppelpunkte wie Klammern verwendet:

.snb
Heutzutage ist die #:Sicherheit von Computern: fast schon...
 ...
Trotzdem kann die #:Sicherheit von Grorechnern: nicht als...
 ...
Dafr hat die #:Benutzerfreundlichkeit von Computern; doch...
.sn

Im Index wird folgendes erscheinen:

.snC
Sicherheit
    von Computern
    von Grorechnern
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 :fhrende Wort:, ein "#:XXXX;" das letzte Wort. Das fhrende Wort wird im Index zuerst genannt und bestimmt somit die alphabetische Reihenfolge im Index. Die Wahl des fhrenden Wortes hat keine Auswirkung auf Querverweise.

Wenn ein fhrendes 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 schn ausschaut. Solche unschnen Endungen drfen Sie ausklammern:

.snb
Dafr hat die #:Benutzerfreundlichkeit von Computer;n doch...
 ...
hat gezeigt, da bei #:Computer:n
.sn

.3
Markieren eines Ausdruckes auerhalb des Flietextes

Mit dem Punktbefehl INdex

.snb
 .IN Ausdruck
.sn

knnen Sie ein Wort oder einen Ausdruck mehrerer Wrter im Index ablegen und Querverweise von gleichlautenden Ausdrcken anderer Textstellen zu dieser Stelle hin erzeugen. Das hat den Vorteil, da der Indexeintrag bzw. das Querverweis-Ziel nicht wortwrtlich im Flietext 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 fhrende Wort. Wenn dagegen das letzte Wort das fhrende 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 knnen sich dies ggf. zunutze machen.

.3
Querverweise bei leicht abweichenden Wrtern

.snL
:Verfahrensweise bei Wortendungen;
.sn

Was macht HyperMake, wenn das Wort "Maschinen" 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 "Maschinen" markiert wurde, so wird bei "Maschine" kein Querverweis gezogen. Markieren Sie deshalb die Wrter in schlichter Form (Singular, 1. Fall).

Um bei Wrtern, die mit Vokalen[Buchstaben a e i o u y] enden wie "Konto" "Konten" trotzdem die Gleichheit zu finden, krzt HyperMake vor dem Vergleich die Wrter erst einmal um den letzten Buchstaben, wenn er ein Vokal ist.

.snL
Gro- und Kleinschreibung
.sn

Querverweise werden unabhngig 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.[Es liee sich ein Funoten-Verzweigungsfenster programmieren, wo die verschiedenen Kapitelberschriften, wo der Ausdruck jeweils markiert wurde, als Querverweise erscheinen. Ist das ntig? Lassen Sie mich wissen, wenn Sie diese Funktion vermissen.]

.3
Unterdrcken von Querverweisen

.in omitting links
.in Unterdrcken von Querverweisen
Querverweise werden natrlich nicht gezogen, wenn sie auf das selbe Fenster (Kapitel) zeigen wrden. Querverweise werden auerdem nicht gezogen, wenn der Ausdruck mehrmals im gleichen Absatz vorkommt. Also beispielsweise Punktbefehl Punktbefehl Punktbefehl - nur das erste Vorkommen von "Punktbefehl" im Absatz erhlt den Querverweis.

Wenn Sie lieber mehrfache Querverweise vom gleichen Ausdruck nicht nur in einem Absatz, sondern gleich im gesamten Fenster (Kapitel) unterdrcken wollen, mssen Sie in der Ini-Datei den Schalter "no more links in" von PARAGRAPH in WINDOW ndern.

Es kann hin und wieder ntzlich sein, bei bestimmten Schriften - etwa Beispielstext - Querverweise grundstzlich zu unterdrcken. Das erreichen Sie in der Ini-Datei mit dem Schalter Font, Parameter ~OmitLinks~.

Natrlich ist es erlaubt, eine andere Schrift mit gleichen Einstellungen auer dem OmitLinks-Parameter zu definieren. Mit diesem Trick knnen Sie Querverweise unterdrcken, 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 mssen 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 Kapitelberschriften von eins fortlaufend durch. Da es unpraktisch wre, sich eine Nummer wie 237 zu merken und sich die Nummer eines bestimmten Kapitels schlielich ndert, wenn davor ein neues Kapitel eingeschoben wird, werden diese ID's (Identifikationsnummern) der Kapitelberschriften durch verstndlichere Bezeichnungen wie Kapitel_Einleitung ersetzt. Mit dem Befehl

.snb
 .ID Kapitel_Einleitung
.sn

in der Sprungziel-Datei erhlt 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 mglich 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 Flietext stehen.

Alle in der Sprungstart-Datei gefundenen Ausdrcke "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 aufgepat! Bei der Kurzbezeichnung hinter dem ID-Befehl wird Gro- und Kleinschreibung unterschieden!

Beachten Sie die Aktualitt 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 erhlt. 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 fr externe Querverweise knnen Sie Beispiel Externe Querverweise ausprobieren oder gleich hier auf die Worte Kanzler, SPD und CDU drcken. 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 knnen Sie bestimmte Wrter definieren, die grundstzlich zu einer bestimmten URL, also einer beliebigen Adresse im Internet, zeigen sollen. Wenn etwa alle Wrter "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 smtliche 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, knnen 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.

Drckt 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 knnen natrlich 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, mssen Umgebungsvariablen verwendet werden.

Sie knnen 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, mssen Punkt bzw. Klammern in der Ini-Datei unter extended letters aufgefhrt sein.

.4
Umgebungsvariablen

.in Umgebungsvariable
Bei externen Querverweisen und beim Starten von Programmen knnen 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 knnen Sie bei externen Querverweisen verfahren.

In den Fllen, 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 knnen Sie auch unter "SET" im OS/2-Referenzhandbuch nachschlagen.
.END IPFDOC

.2
Duplizierung von Kapitelberschriften

.in Duplizierung von Kapitelberschriften

Es ist hufig erforderlich, die Kapitelberschrift als Querverweis-Ziel zu deklarieren, in den Index aufzunehmen und - insbesondere bei IPF relevant - im Textfenster mit grerer oder farbiger Schrift zu wiederholen:

.snb
 .3
Kapitelberschrift

 .IN Kapitelberschrift
 .snX
Kapitelberschrift
 .sn
.sn

Diese Tipparbeit kann man sich sparen. Mit dem Punktbefehl DuPliziere

.snb
 .dpX
.sn

wird die Kapitelberschrift zu Beginn des Flietextes 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 knnen bestimmte Zeichen im Stichwortverzeichnis und bei der Duplizierung von Kapitelberschriften unterdrckt werden.

.snb
 .dp34X
.sn

fhrt die Duplizierung nur fr 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 Kapitelberschrifts-Textes im .IN -Punktbefehl kann man so sparen. Statt # lt sich auch das Stichwortzeichen aus der Ini-Datei verwenden.

.snb
 .dp##
.sn

nimmt den berschrifts-Text nicht nur als Querverweis-Ziel, sondern zustzlich noch im Index auf. Diese Funktion sollte nur mit Bedacht gewhlt werden, da die Information sowohl im Index als auch im Inhaltsverzeichnis auftaucht, also redundant ist.
.IF IPFDOC
brigens kann ein groer Index eine INF-Datei bei der Benutzung des Index sehr langsam machen.
.END

.snb
 .dp3##X,
 .3
Meier, Fritz
.sn

im Flietext 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" knnen beliebig kombiniert werden, wobei die Reihenfolge egal ist.

.3
Beispiel Duplizierung Kapitelberschriften - Quelltext

.snz
 .fa verti 30
 .dp4R#,
 .3
Beispiel Duplizierung Kapitelberschriften - 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 groe 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 Kapitelberschriften - Ergebnis

.in Beispiel Duplizierung von Kapitelberschriften
.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 groe 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 fr 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 fr das Zeichen, welches die Ecken eines Rechtecks markiert und Y fr den Beginn einer Unterteilung. Ein vorangestelltes Zeichen Z ergibt Doppelstriche (nur IPF). Verwenden Sie fr X, Y und Z Zeichen, die sie sonst in der Liniengraphik nicht bentigen.

Die standardmig eingestellte Schrift fr Linienziehen knnen 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 untersttzt. Falls Sie andere Codepages verwenden mssen, 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 knnen Sie die korrekte Ausrichtung des Rechtecks berprfen.

.END
.2
Funoten

.in Funote
.IF HTMLDOC
HyperMake 2.9 untersttzt bei HTML Funoten noch nicht, diese Funktion ist fr die nchste Version vorgesehen.
.END

Die Erstellung von Funoten geht mit HyperMake sehr leicht. Funoten drfen etwa in Klammern geschrieben werden wie {Inhalt der Funote}, nachdem Sie den Punktbefehl FUnoten verwendet haben:

~.FU{}~

Statt den Klammern und dem Funoteninhalt erscheint nur ein Sternchen[Inhalt der Funote], auf das Sie mit der Maus drcken knnen.

.fu{}
Andere brauchbare Funotenzeichen sind [ ], < > oder  (Alt-220)  (Alt-223) - sozusagen fette Gnsefchen.
.fu[]

Die Funotenfunktion kann zwischendurch auch wieder ausgeschaltet werden, indem keine Parameter dahinter geschrieben werden:

~.FU~

oder Sie knnen zwischendurch auch andere Funotenzeichen definieren. Standardmig sind gar keine Funotenzeichen definiert.

Wenn Sie statt einem "*" als Knopf zur Aktivierung des Funotenfensters einen anderen Text haben wollen, knnen Sie dies mit dem Punktbefehl Funoten Text ndern:

~.FT XXX~

Statt einem Sternchen erscheint dann der Text "XXX". Sie drfen dabei auch eine Grafik statt Text verwenden:

.snb
 .BT& Dateiname
 .FT&
.sn

(siehe Grafiken)

.FA hori 30
.2
Rnder 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 Einrckung auch in den folgenden Zeilen korrekt ist.

.LM20
Dies ist ein Beispielstext mit linkem Rand 20; beachten Sie, da die Einrckung auch in den folgenden Zeilen korrekt ist.

.LM1
Der linke Rand lt sich mit dem Punktbefehl Left Margin (linker Rand) verstellen:

~.LM n~

n steht fr 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 verndern. HyperMake simuliert die Verstellung des linken Randes unter Verwendung der HTML definition list. Das hat zur Folge, da der Rand nur in Fnferschritten gendert werdn kann. Left Margin 1 und 2 hat gar keine Wirkung, 4 bis 8 stellt ihn auf ca. 5 (abhngig vom Browser), 9 bis 13 auf 10 usw.
.END

.IF WORDSTARDOC
Beim DOS WordStar mssen 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 darber erzeugten weichen Leerzeichen. Genauso knnen Sie weiche Leerzeichen durch Tabulatoren (^OL) und der Absatzeinrckung (^OG) generieren; beim nachtrglichen Formatieren werden weiche Leerzeichen mit ^OG ^B erzeugt.]
.END

.3
Formatierung aus- und einschalten

.IF IPFDOC
.in Formatierung
Bei Erstellung von IPF-Dateien lt sich mit den Punktbefehlen Formatierung aus und Formatierung an

.snb
 .FM aus
.sn
.snb
 .FM an
.sn

der automatische Zeilenumbruch aus- und wieder einschalten. Standardmig ist die Formatierung eingeschaltet. Aus bedeutet, da die Formatierung (Zeilenvorschbe) so bleiben wie im Quelltext. Die Einstellung gilt bis zum nchsten Formatierungs-Befehl, selbst ber Kapitelberschriften 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 Eintrge im Index wrden 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
Fr HTML-Dateien gibt es keine Punktbefehle zum Ein- und Ausschalten des Zeilenumbruches. Wenn Sie einen Text nicht formatiert haben wollen, mssen Sie eine Schrift mit Phrase Element PRE verwenden.
.END

.IF IPFDOC
Bei IPF knnen Sie bei Festlegung der Schrift ~PRE~ in der Ini-Datei deklarieren, Sie knnen 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 knnen aber auch bei Festlegung der Schrift ~center~ schreiben, die eigenen Punktbefehle knnen Sie dann sparen.

.3
Automatischer Rand (auto margin)

.in definition list
.sv automatischer Rand
Sie knnen (z. B. fr Definitions-Listen) den linken Rand zwischendurch mit Hilfe von Leerzeichen.

.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 Gren 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 Gren von 14 bis 21 Zoll; Am Bildschirm sollte am wenigsten gespart werden.

Mit dem Punktbefehl :Auto Margin: (autom. Rand) lt 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 Flietext auf an lassen. Wird die erste Zeile eines Absatzes eingerckt, ndert das den Rand fr den einen Absatz. Sie mssen den AM Befehl nur dann unbedingt auf aus stellen, wenn Sie nur die erste Zeile eines Absatzes eingerckt haben mchten.

Wenn Sie einen ASCII-Editor mit ASCIIHARDRET verwenden, so sollte die Einrckung nur am Absatzanfang sein; die folgenden Zeilen, die vom Editor umgebrochen werden, drfen keine Leerzeichen am Anfang erhalten.

.IF WORDSTARDOC
WordStar-Dateien brauchen die Auto Margin Funktion gar nicht.[Sie knnen im WordStar jederzeit mit ^OG und weichen Leerschritten den linken Rand beeinfluen.]
.END

.2
If-Bedingungen

.in If-Bedingung
Mit Hilfe von If-Bedingungen lassen sich fr z. B. hnliche Programmversionen leicht unterschiedliche IPF- bzw HTML-Dateien aus dem selben Quelltext erstellen. Hierfr gibt es drei neue Punktbefehle:

.snb
 .IF BEDINGUNG
 .ELSE
 .END
.sn

Die Gro- oder Kleinschreibung der Bedingungen ist dabei egal. Der ELSE-Befehl ist natrlich optional.

Zum Kompilieren des Quelltextes wird in der Kommandozeile z. B. eingegeben:

.snp
.fu
[C:\myProject] HMAKE MeinDoku.txt #BEDINGUNG
.fu[]
.sn

Es knnen 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 (verknpft mit AND oder OR) werden nicht untersttzt.

Standardmig sind die Bedingungen #HTML bzw. #IPF gesetzt.

.1
Erstellung von Helptables

.IF HLPDOC
.in Helptable
.in Panel ID
Das wichtigste Merkmal einer HLP-Datei gegenber 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 erklrt werden soll. In HLP-Dateien lassen sich Verbindungen zwischen Programmfenstern oder Programmknpfen zu Kapiteln des Hypertexts herstellen. Drckt 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 Drcken von F1 mit dem entsprechenden Knopf (oder Menpunkt) aktiviert; statt F1 kann man auch auf einen speziellen Hilfe-Knopf drcken, dessen Flags BS_HELP | BS_NOPOINTERFOCUS gesetzt sind. Im Helptable ist eingetragen, welche Knpfe / Menpunkte 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 knnen auch bei textorientierten Programmen zum Einsatz kommen.

Ohne HyperMake mte also eine Helptable-Datei innerhalb der RC-Datei [Programmierer sollten RC-Dateien kennen; sonst knnen Sie dieses Kapitel berspringen, da nur INF-Dateien fr Sie in Frage kommen.] erstellt werden. Fr direkte Verbindungen mte 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 gedrckt 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 aufgepat! Bei der Kurzbezeichnung hinter dem ID-Befehl wird Gro- und Kleinschreibung unterschieden!

Sie knnen diese Punktbefehle irgendwo innerhalb des Kapitels verwenden, zu dem die Verbindung hergestellt werden soll. Ich empfehle jedoch, diese Befehle mglichst nah an die Stelle des Kapitels zu setzen, wo der entsprechende Knopf bzw. Menpunkt erklrt wird. Das hat den Vorteil, da wenn Sie spter 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 mssen.

Wenn Sie den RC-Punktbefehl verwenden, mssen Sie normalerweise zwei ID's eingeben: Die erste fr das Programmfenster, in dem sich der Knopf/Menpunkt befindet[zu verwenden ist der Konstanten-Name, der in der RC-Datei hinter MENU oder DIALOG steht], und die zweite fr die ID des Knopfes, Menpunktes, 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 beeinflut. Das bedeutet, Sie knnen bedenkenlos aus solch einer IPF-Datei eine INF-Datei statt einer HLP-Datei erstellen.

Fr 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 enthlt die zwei neuen Punktbefehle Ressource connection und Panel ID:

.snz
 .1
Einfhrung

 .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 - knnen Sie OK drcken.

 .1
Verwendung des Cancel-Knopfes

 .RC ID_Kindfenster, ID_Cancel
Mit dem Cancel-Knopf knnen 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 // Einfhrung
}

HELPSUBTABLE SUBTABLE_ID_Kindfenster {
  HELPSUBITEM ID_OK, 2 // Verwendung des OK-Knopfes
  HELPSUBITEM ID_Cancel, 3 // Verwendung des Cancel-Knopfes
}
.sn

HyperMake erstellt auerdem 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 fr den HyperMake-Benutzer ohne Belang sind. In der Helptable-Datei werden deshalb noch als Kommentar die Kapitelberschriften eingetragen, so da sich die Helptable-Datei fr die Fehlersuche leichter lesen lt. (Normalerweise drften Sie kein Interesse haben, die Helptable und Panel ID -Datei zu lesen.)

Den Startwert fr die in der Helptable-Datei verwendeten Subtable ID's knnen Sie in der Ini-Datei unter der Einstellung ~Help Subtable Start ID~ ndern, auerdem knnen 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 mssen 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 gltig sein.

Im C Quelltext bentigt 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 natrlich schon definiert worden sein. Wenn Sie kein Standardwindow sondern nur eine Dialogbox als Programm haben, knnen 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 bentigt, 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 knnen, mssen Sie am Anfang folgendes eintragen:[Das kann Compiler-spezifisch sein; ich benutze Borland C]

.snb
#define INCL_HELP
.sn

.3
C Quelltext fr 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 mgliche Parameter fr SendHelpMessage
  HM_HELP_INDEX     zeigt Index
  HM_HELP_CONTENTS, zeigt Inhalt
  HM_DISPLAY_HELP   zeigt Hilfe fr 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 /* Einfhrung */
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 auerdem 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 fr den HyperMake-Benutzer ohne Belang sind. In der Helptable-Datei werden deshalb noch als Kommentar die Kapitelberschriften eingetragen, so da sich die Helptable-Datei fr die Fehlersuche leichter lesen lt. (Normalerweise drften Sie kein Interesse haben, die Helptable und Panel ID -Datei zu lesen.)

Den Startwert fr die in der Helptable-Datei verwendeten Subtable ID's knnen Sie in der Ini-Datei unter der Einstellung ~Help Subtable Start ID~ ndern, auerdem knnen 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 knnen.

.snb
DisplayHelpPanel (PanelID)
.sn

wird bentigt, 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 hngt 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

mssen Sie lediglich am Ende eine Zeile einfgen:

.snb
MainWindow^.InitWindowHelp ('MYPROG.HLP', 'Hilfeberschrift');
.sn

Das war's auch schon.

.3
Einbindung der Hilfefunktion auf konventionelle Weise

Zum Aktivieren und Deaktivieren der Hilfe-Funktion bentigen 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 natrlich schon definiert worden sein. Wenn Sie kein Standardwindow sondern nur eine Dialogbox als Programm haben, knnen 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 spter) 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 mgliche Parameter fr SendHelpMessage
   HM_HELP_INDEX     zeigt Index
   HM_HELP_CONTENTS, zeigt Inhalt
   HM_DISPLAY_HELP   zeigt Hilfe fr 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 nmlich die Kapitelberschriften einfach fortlaufend durch.
.ELSE
Das IBM IPF-Format wird bentigt, um kontextsenitive Programmdokumentationen (Erweiterung HLP) unter dem Betriebssystem OS/2 zu erstellen. HyperMake stellt hier fr die Verbindung Hypertext - EXE-Programm einige Funktionen zur Verfgung. Alle HyperMake Versionen verfgen ber diese Funktionen, die Dokumentation ist aber nur bei der OS/2-Version vorhanden, wenn der Hilfetext mit der Bedingung #HLPDOC erzeugt wurde.
.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 mgliche 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

 <HTML-Kommandos> Flietext 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-Benutzerknpfe "Inhalt", "Zurck" und "Vorwrts" zur Verfgung, die es sonst nur bei INF-Dateien gibt.
.END

.2
Kapitel

~.1~ bis ~.6~ definiert eine Gliederungsebene

~.1~
~Hauptberschrift~

Die Kapitelberschrift des ersten Punktes der ersten Gliederungsebene heit "Hauptberschrift".

~.FA~ (~.WA~)
~.FA hori 30~ 
~.FA hori 30 verti 40 III~

Mit Fensteranordnung knnen 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 fr 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 nchsten 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 Flietext statt dem Buchstaben X die Grafik dateiname.bmp.

.2
Querverweise und Index

~.IZX~  (~.ICX~)

whlt 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 fhrendes 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 Kapitelberschriften

~.dp34C~

Die Kapitelberschrift wird in Gliederungsebene 3 und 4 am Anfang des Flietextes mit Schrift C dupliziert.

~.dp##C~

In allen Gliederungsebenen wird die berschrift mit Schrift C im Flietext 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 fr die Ecken und Y fr Unterteilungen des Rechtecks. Ein Zeichen Z vor X oder Y macht Doppelstriche (nur IPF).

.2
Funoten

~.FU{}~

definiert die Zeichen, mit denen der Inhalt von Funoten eingeklammert wird. Die Eingabe

.snb
und Sie erhalten {Inhalt der Funote}.
.sn

fhrt zu:

und Sie erhalten [Inhalt der Funote].

~.FT XXX~

Funoten-Text: schreibt "XXX" statt dem standardmigen "*". Grafik statt Text ist erlaubt (Verwendung von Bitmap Text).

.2
Rnder 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 Fnfer-Schritten verstellt.
.END

.2
If-Bedingungen

.snb
 .IF BEDINGUNG
 .ELSE
 .END
.sn

bertrgt 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 60
.1
Ini-Datei

.in Ini-Datei
In der Ini-Datei knnen Sie einige dokumenten- und sprachspezifische Einstellungen vornehmen. Es empfiehlt sich, fr jedes Projekt eine eigene Ini-Datei anzulegen. Die Ini-Datei knnen Sie mit einem ASCII-Editor verndern, etwa dem OS/2-System-Editor (verwenden Sie nicht WordStar). Die erste Zeile wird nicht interpretiert.

.snb
Settings of HyperMake
.sn

Wie in C++ sind Zeilen, die mit zwei Schrgstrichen // beginnen, auch Kommentarzeilen. Die Reihenfolge der Schalter darf gendert 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 gendert werden. Rechts davon drfen Einstellungen gendert werden.

.snL
Einstellungen
.sn


.2
Zielformat

.in Zielformat
//possible settings: IPF, HTML
Target = HTML

Die Standardeinstellung kann durch die Kommandozeilenparameter IPF und HTML temporr berschrieben werden.

.2
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 gleichermaen interpretiert.

Programmiersprache (nur IPF)

Wenn Sie von HyperMake Panel ID und Helptable Dateien erstellen lassen, knnen Sie zwischen C und Pascal whlen.

.2
Registration key (Registrierungsschlssel)

.in Registration key
.in Registrierungsschlssel
.snb
Registration key = 0
.sn

Hier tragen Sie Ihren Registrierungs-Code ein, um Quelltexte von mehr als 20 kB verarbeiten zu knnen. Siehe auch Registrierung.

.2
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.

.2
List chars (Auflistungszeichen)

.snb
//only ASCII source
List chars = =-
.sn

Auflistungszeichen werden fr unsortierte Listen und sortierte Listen bentigt, wenn Sie Auflistungen mit einem ASCII-Editor erstellen wollen.

.2
Index char (Indexzeichen)

Siehe Erstellung von Querverweisen, Index und Indexzeichen. Mit dem Punktbefehl ~.IZX~ wird die Standardeinstellung mit dem Zeichen X berschrieben. 

.2
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 knnen in einem Absatz (paragraph) oder innerhalb eines gesamten Kapitels (window) unterdrckt werden.
siehe Querverweise, Unterdrcken von Querverweisen.

.2
Index Filter
.in index filter
.snb
//characters not shown in index and duplicated heading
index filter = ().
.sn

Es knnen bestimmte Zeichen im Stichwortverzeichnis und bei der Duplizierung von Kapitelberschriften unterdrckt werden.

.2
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 mssen immer alle zwlf Zeichen eingeben, auch wenn Sie IPF oder HTML nicht benutzen.

.IF WORDSTARDOC
Bei der Verwendung von WordStar-Steuerzeichen mssen Sie die Zeichen eingeben, die dem ASCII-Code entsprechen. [Also etwa fr ^PA Alt-1, fr ^PB Alt-2, fr ^PS Alt-19 usw.]
.END

.2
Font (Schriften)

.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 fr 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:

 Schriftgre: alle Zahlen, die kleiner als 200 sind
 Codepage: (nur IPF) alle Zahlen grer/gleich 200
 Vordergrundfarbe:
  - IPF: alle Farben in Kleinbuchstaben:
    default, blue, cyan, green, neutral, red, yellow, black.
  - HTML: beginnt mit Grobuchstabe, 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 Grobuchstaben: 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 mssen nur diejenigen Parameter eintragen, die vom Standardwert abweichen.

.IF IPFDOC
Die standardmig verwendete Codepage hngt 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 knnen, so da ein Schrift-Buchstabe sowohl das Outfit im IPF als auch im HTML-Format festlegen kann.

vgl. Schrift-Beispiele und Farb-Beispiele

.2
endings of words (Endungen von Wrtern)

.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 Ausdrcken verwenden, werfen Sie am besten die empfohlenen Endungen beider Sprachen zusammen:

.snb
ending of words = e s es n en 's
.sn

.2
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 mssen 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 Wrter. Die normale Markierung des Wortes "Kindergrten" htte dann einen Indexeintrag "Kinderg" zur Folge.

Damit eine Bezeichnung wie "CONFIG.SYS" oder "Eule (Film)" einen Querverweis bekommt, mssen Punkt bzw. Klammern in der Ini-Datei unter extended letters aufgefhrt sein. Gleichzeitig mssen 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 gewnschten 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, knnen Ausdrcke wie "Ini-Datei" einfach mit dem ..Indexzeichen markiert werden, ohne Doppelpunkt-Klammern; dafr 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
Text for link to (Text fr Querverweise zu ...) 

.snb
Text for link to subchapters = @Unterkapitel:@
Text for link to next chapter = @nchstes 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. hherer Gliederungsebene. Hier knnen Sie eintragen, was HyperMake ber solche automatischen ~Querverweise~ schreiben soll. Sie drfen nicht nur Buchstaben, sondern auch Umschalter oder Grafikzeichen verwenden.

Wenn Sie ein NO in Grobuchstaben eingeben, zieht HyperMake keine solchen Kapitel-Querverweise:

.snb
Text for link to subchapters = NO
Text for link to next chapter = NO
.sn

.2
First and last line (nur HTML) (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 =     zurck vorwrts Inhalt Stichwrter
function for last line =  FORWARD CONTENT INDEX
text for last line =      vorwrts Inhalt Stichwrter
.sn

HyperMake erzeugt zahlreiche HTML-Dateien. Der Benutzer sollte am Textende zur nachfolgenden Datei springen knnen (FORWARD) und am Anfang zur vorherigen Datei (BACK). Auerdem 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 Verfgung stehen sollen, kann hier eingestellt werden, auch die Reihenfolge der Funktionen sowie die Wrter, die den Querverweis darstellen (text for...).

Standardmig wird der Titel am Anfang jeder Datei wiederholt, dies kann mit

~title in every file = NO~

abgeschaltet werden.

.2
new file level (Gliederungsebene der Unterteilung in Dateien) (nur HTML)

.snb
//HTML text file is divided in several files.
//Enter heading level where new file begins (0 means only one HTML text file) (nur HTML)
new file level = 3
.sn

HyperMake erzeugt aus einer Quelldatei viele HTML-Dateien. Dies verbessert die Geschwindigkeit der Browser ganz erheblich. Mit dieser Einstellung knnen Sie beeinfluen, wieviel Dateien erstellt werden sollen. "3" bedeutet, da fr die Kapitel der Gliederungsebenen 1, 2 und 3 grundstzlich neue HTML-Dateien begonnen werden.

In Bereichen, in denen die Fensteranordnung (Frames) aktiv ist, erzeugt HyperMake jedoch fr alle Kapitel grundstzlich eigene Dateien.

Wenn 0 eingegeben wird, so wird nur eine HTML-Datei (plus Stichwortverzeichnis und Inhaltsverzeichnis) erstellt (falls keine Fensteranordnung verwendet wird.)

.2
horizontal rule level (Gliederungsebene der Trennung durch horizontale Striche) (nur HTML)

.snb
//Enter heading level up to which has to be divided by horizontal rules
//  (0 means no rules)
horizontal rule level = 4
.sn

HTML lt horizontale Striche ber das ganze Fenster hinweg zu. Diese knnen dazu genutzt werden, einzelne Kapitel voneinander zu unterteilen, falls sie ohnehin nicht in unterschiedlichen HTML-Dateien liegen. Der Wert fr "horizontal rule level" mu deshalb hher sein als der fr "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.

.2
pre filename (Beginn der Dateinamen) (nur HTML)

.snb
//pre filename = XYZ* let all HTML files begin with XYZ
pre filename = *
.sn

(Registrierung erforderlich) HyperMake erstellt aus einem Quelltext eine groe Zahl von Dateien. Diese Dateien haben Namen, die HyperMake festlegt. So werden einfach Nummern fr Dateinamen vergeben: N000.HTML, N001.HTML usw. Um in nur einem Pfad mehrere unterschiedliche Hypermake-Texte haben zu knnen, lt sich ein String eingeben, der all den Dateinamen incl. INDEX.HTML vorangestellt wird. Beispielsweise fhrt die Eingabe von ~XYZ*~ dazu, da die Dateinamen dann XYZN000.HTML, XYZN001.HTML usw. heien. 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
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, hren Sie einen Pieps. Sie knnen diesen Ton hier abstellen, indem Sie ~NO~ statt ~YES~ eingeben.

.2
Help Subtable Start ID (Startwert fr ID-Konstanten, nur IPF)

.snb
Help Subtable Start ID = 7000
.sn

Mit der Help Subtable Start ID knnen Sie einen Startwert fr die ID's angeben, die die Subtables definieren. Das brauchen Sie nicht zu ndern, auer Sie definieren in Ihrem Programm-Quelltext selber auch schon Konstanten mit Werten von 7001, 7002 usw.

.2
Filenames (Dateinamen, nur IPF)

.in Filenames
.snb
//files will be overwritten without warning
Helptable filename = HLPTABLE.RC
Panel ID filename  = PANELID.H
.sn

Hier knnen 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 gewhlt.

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 knnen, mssen 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 mssen 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 mssen 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 fr 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 knnen 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 temporr 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 Kapitelberschriften
Alle Kapitelberschriften bzw. Kapitel erhalten eine  Identifizierungsnummer.
 Indizieren der Querverweise 
Alle Wrter oder Ausdrcke, 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 Wrtern 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 Kapitelberschriften, Indizieren von Querverweisen und dem Schreiben der IPF-Datei erscheint fr jedes bearbeitete Kapitel (Fenster) ein Punkt am Bildschirm.

Ertnt 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 fr HTML-Dateien wird ".HTML" gewhlt. 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 vernnftige Batch-Datei zum Abarbeiten im Hintergrund ist die folgende:

.snb
@echo off
rem Erstellung eines Hypertextes mit HyperMake und IPFC
MAKEIPF %1.txt %1.ini >MakeIPF_errors
ipfc /inf %1.ipf /country=049 /language=deu >ipfc_errors
echo 
.sn

Die letzte Zeile enthlt zwei Zeichen Alt-7, das ergibt zwei Piepser.

Wenn Sie eine fehlerhafte INF- bzw. HLP-Datei erhalten, knnen Sie die ASCII-Dateien HyperMake_errors und ipfc_errors lesen (bzw. beim FAT-Dateisystem krzere 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 fr beides verwendet werden, selbst wenn Sie HLP-spezifische ressource connection und Panel ID Punktbefehle verwendet haben.

Wenn Sie mit Batchdateien nicht vertraut sind, so knnen Sie darber 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 mssen, weil Sie sie jederzeit aus dem HyperMake Quelltext reproduzieren knnen.

.IF HTMLDOC
Bei der Erstellung von HTML-Dateien lt sich eine Batchdatei schreiben, die zuerst die alten HTML-Dateien lscht und dann HyperMake aufruft:

.snb
del %1\*.html
MAKEIPF %1.txt #Bedingung >HyperMake_errors
edit HyperMake_errors
.sn
.END HTMLDOC

.1
Rckwrts-Konvertierung von IPF nach HyperMake

Wenn Sie einen Text schon im IPF-Format vorliegen haben, hilft Ihnen HyperMake bei der Rck-bersetzung ins HyperMake Quelltext-Format. Es gibt noch keinen vllig perfekten Quelltext, aber die wichtigsten Funktionen werden korrekt bersetzt.

Die Rckwrts-Konvertierung ist zu folgendem in der Lage:

 Umschalter (toggles)
 Kapitel
 unsortierte Listen, sortierte Listen
 die wichtigsten Formatierbefehle (paragraph, break, Formatieren ein/aus)
 Indexeintrge (nur i1 Ebene), sie werden auch gleich zum Querverweis-Ziel
 Grafiken.

Nicht funktioniert das folgende:

 Schriften
 Fensteranordnung
 Rnder
 Funoten
 definition list
 Panel ID's, die Verbindung zu einem EXE Programm.

Bei der Rckwrts-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 gengend "list char" definiert sind, also etwa vier Stck wenn im IPF-Text Listen mit bis zu vier Ebenen vorkommen.

.sab
Um die Rckwrts-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 grundstzlich 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 grere Quelltexte als 20 kB bearbeiten lassen mchten. Dafr mssen Sie einen Registrierungsschlssel anfordern. Kleinere Quelltexte als 20 kB lassen sich auch ohne Registrierungsschlssel compilieren, in diesem Fall ist es ~Freeware.~

Warum gerade 20 kB? Ich bin der Meinung, da fr die Erstellung kurzer HTML-Texte und INF- und HLP-Dateien fr einfache Freeware-Programme die Benutzung von HyperMake kostenlos sein sollte. Wenn Sie also Fehler finden und nicht registriert sind, drfen Sie mir gerne trotzdem eine Mail schicken.

Die Registrierungsgebhr betrgt ~60 Deutsche Mark~ oder ~40 Dollar~.

Beim Erwerb von mehreren Lizenzen erhalten Sie 30% Rabatt fr jede zustzliche Lizenz.

Wenn Sie Zugang zu Compuserve haben, knnen 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 Fremdwhrung! Ich mte 15 DM Umrechnungsgebhr an meine Bank zahlen! Schicken Sie mir dann lieber DM (oder zur Not Banknoten Ihrer Whrung) einfach per Post in einem Briefkuvert.

Wenn Sie sich registrieren lassen, erhalten Sie eine Rechnung ber den entsprechenden Betrag und ihren Registrierungsschlssel auf dem Postweg. Den Registrierungsschlssel tragen Sie in Ihren HyperMake Ini-Dateien unter "registration key" ein.

.2
Haftungsausschlu

Der Autor bernimmt keinerlei Haftung fr Schden, sei es durch fehlerhafte Bedienung oder durch Fehler im Programm. Es wird auch keine Garantie ber die Registrierungsgebhr 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, just for fun auch im IBM INF-Format).

.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 endgltigen (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"

Darber 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 Kapitelberschriften im Flietext, Kapitelberschrift als Querverweis-Sprungziel, Aufnahme von Kapitelberschriften 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" fhrte zu Programmabsturz
 Bei Verwendung der IPFC Version 2.1 von 1993 und der Einstellung "ASCIIHARDRET" fehlte in lngeren Abstzen nach ca. 200 Buchstaben ein Leerzeichen.
 Bei der Einstellung "ASCIIHARDRET" traten Probleme mit unsortieren Listen auf.

.snL
Neue Funktionen in HyperMake 2.9
.sn

 zustzlich HTML als Zielformat
 Rckwrts-Konvertierung von IPF nach HyperMake
 index filter
 mehrere Quelltexte (siehe Kommandozeilenparameter)
 erste Version auch als Win32-Programm verfgbar

.snL
Neue Funktionen in HyperMake 3.0 (in Planung)
.sn

 Funoten auch fr HTML; es wird wohl mit einem Funoten-Fenster per Frame realisiert. Dieses erscheint nur dann, wenn auch wirklich Funoten im aktiven Fenster vorkommen.
 Tables (Tabellen-Funktion) sowohl fr IPF als auch fr HTML
 andere Ergnzungen im Detail, die Ihnen abgehen! Kommentare erwnscht.

Knftige HyperMake-Versionen wird es unter verschiedenen Betriebssystemen geben.

Fr die Win32-Version plane ich, Microsofts neues kontextsensitives HTML zu untersttzen. Da es die alte Windows Hilfe denmnchst ersetzen soll, wird sich die Untersttzung des WinHelp Formates kaum mehr lohnen. Dafr werde ich aber wahrscheinlich eine Rckwrts-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 Januar oder Februar 1997 fertig zu werden. Mglicherweise gibt es davor schon eine Win32-Version 2.9.

.2
Wo Updates?

.snL
Wo Sie HyperMake finden
.sn

Sie finden die neueste HyperMake OS/2 Version in Compuserve OS2DF1 7 (development tools). Im Internet sind es die blichen OS/2-Adressen ftp-os2.nmsu.edu, ftp.cdrom.com/pub/os2 und auf dem Mnchner ftp.leo.org/pub/comp/os/os2.

Die OS/2-Version finden Sie unter Hmakeo*.ZIP.
Die Win32-Version finden Sie unter HmakeW*.ZIP.

Haben Sie Ideen zu neuen Funktionen fr 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.


.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. Fr die Zukunft ist noch Powermac, Linux und AIX geplant, so da es auch fr diese Plattformen HyperMake geben wird.

.2
Andere Progs

Ich habe noch einige kleine Programme  programmiert, es ist meist Freeware. Auer Textbuch sind es nur OS/2-Programme, alle Programme haben auch deutsche Dokumentation.

 PMCALC20 PmCalc 2.0, ein PM Taschenrechner mit automatischer Zwischenablagenuntersttzung, 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 knnen (auch in Deutsch)
 CD_SHORT CD Shortcut 2.0, Abkrzung fr den CD-Befehl. Statt vollstndiger Verzeichnisnamen gibt man nur Wortteile ein (Anleitung auch in Deutsch)
 CLEAR10G Clear 1.0, erzeugt Dateilisten zum zippen auf Disketten und zum Lschen, mit komplexen Auswahlkriterien
 TEXTBUCH 1.0 (auch DOS, nur deutsch).
Doppelte Buchfhrung fr Selbstndige 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 Buchungsstze 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
