WinHelp meint, daß *.rtf und *.hpj keine Hilfedatei sei?
Weder die eine noch die andere Datei ist eine fertige Hifedatei
für Windows. UDO erzeugt lediglich die Quelltexte einer
Hilfedatei, welche noch mit einem Hypertext-Compiler (HC.EXE,
HC31.EXE, HCP.EXE) übersetzt werden muß.
Woher bekomme ich den Hypertext-Compiler?
Den Hypertext-Compiler HC31.EXE bekommen Sie überall dort, wo
es auch UDO gibt (siehe Bezugsquellen). Sie finden ihn auch auf dem
FTP-Server von Microsoft (ftp.microsoft.com).
Warum will der HC einfach keine HLP-Datei erzeugen?
Dafür kann es zwei Gründe geben:
Der UDO-Quelltext beinhaltet Fehler. Schauen Sie sich also
zunächst die Fehlermeldungen von UDO in der Datei mit der Endung
.ulw an, beseitigen Sie etwaige Fehler und konvertieren Sie
dann den UDO-Quelltext neu. Falls UDO keine Fehlermeldungen ausgibt,
so kann es dennoch sein, daß der Quelltext Fehler enthält,
UDO diese Fehler aber nicht erkannt hat.
Der HC macht Murks. Beachten Sie das Errorfile mit der Endung
.err, welches vom HC angelegt wird. Leider kann ich keine
Hilfestellung zu den Fehlermeldungen des HC geben, da ich in den
meisten Fällen selbst nicht weiß, was da schiefläuft.
Wofür ist die Datei mit der Endung `hpj'?
UDO erzeugt automatisch eine zum Hypertext gehörende
Projektdatei mit der Endung .hpj, die dem HC übergeben
werden muß, um aus dem Quelltext eine fertige WinHelp-Datei zu
erstellen.
In dieser Projektdatei befinden sich Informationen wie der Titel
des Hypertextes, die zusätzlichen Schaltflächen, die
Ausmaße des Fensters nach dem Öffnen des Hypertextes etc.
UDO überschreibt vorhandene Projektdateien ohne
Rückfrage. Wenn Sie manuelle Änderungen an einer
Projektdatei vorgenommen haben und diese beibehalten möchten, so
schreibschützen Sie die Projektdatei.
Wie werden hier die Kopfzeilen erzeugt?
UDO erzeugt auf jeder Seite (mit Ausnahme der Titelseite und des
Inhaltsverzeichnisses) eine Kopfzeile. In dieser befindet sich der
Name des jeweiligen Kapitels. Kopfzeilen werden als
"non-scrolling-regions" angelegt, so daß man auch nach
dem Scrollen der Seite immer noch den Kapitelnamen erkennen kann.
Durch den Schalter "!no_headlines [win]" wird die
Ausgabe von Kopfzeilen unterdrückt.
Wie werden die Kontextstrings ermittelt?
Falls Sie von anderen WinHelp-Files auf ein mit UDO erzeugtes
WinHelp-File verzweigen möchten, müssen Sie den
Kontextstring des Kapitels kennen.
WinHelp erlaubt in Kontextstrings keine Sonderzeichen. UDO wandelt
daher die Namen der Kapitel folgendermaßen in Kontextstrings um:
Zunächst werden wie sonst auch Sonderzeichen durch die
RTF-Schreibweise ersetzt.
Leerzeichen werden in Unterstriche umgewandelt.
Alle anderen Zeichen (ausgenommen Ziffern und die Buchstaben des
Alphabets) werden durch Ihren hexadezimalen Wert in großer
Schreibweise mit einem vorangehenden Unterstrich ersetzt.
Ein Beispiel:
UDO: !node LaTeX-Einführung Teil 1
WinHelp: #{footnote # LaTeX_2DEinf_5C_27FChrung_Teil_1}
Erläuterungen:
Das Minuszeichen entspricht ASCII "0x2D", daher
wird es durch "_2D" ersetzt.
Das "ü" in Einführung lautet in
RTF-Schreibweise "\'FC." "\"
entspricht "0x5C", wird also durch
"_5C" ersetzt. "'" enspricht
"0x27", wird also durch "_27"
ersetzt.
Die Leerzeichen werden durch "_" ersetzt.
Siehe sehen, daß aus einem "ü" die ziemlich
lange Zeichenfolge "_5C_27FC" wird. Dies scheint auf
den ersten Blick mehr als umständlich und "doppelt
gemoppelt" zu sein, bringt aber den Vorteil, daß die
Vergabe von gleichen Kontextstrings bei ähnlichen Kapitelnamen
ziemlich unwahrscheinlich wird. Würde aus dem "ü"
lediglich "FC" gemacht, wären Probleme vorprogrammiert.
Entweder ist dies wirklich nicht möglich, Tabellen zentriert
auszugeben, oder aber ich habe bei meiner viertägigen Suche die
entscheidende Möglichkeit übersehen.
Die Tabellenfunktionen von WinHelp sind ziemlich mager. So ist es
unmöglich, Linien frei in einer Tabelle zu plazieren. Es ist nur
möglich, jede Tabellenzelle mit oder ohne Rahmen darzustellen.
Warum sind die Einrückungen bei Listen und Tabellen so groß?
UDO kennt die Zeichenbreiten der benutzten Zeichensätze
nicht. Daher benutzt es einen konstanten Wert für jedes Zeichen.
Damit ist die Einrückung auch bei kursiver fetter
Großschrift passend, bei reiner Proportionalschrift ist die
Einrückung und auch die Breite der Tabellenspalten etwas zu
groß, was jedoch eher zu verschmerzen ist, als eine zu geringe
Einrückung oder Spaltenbreite.
Wie kann ich DOS-Grafikzeichen darstellen?
Leider gar nicht.
WinHelp weigert sich, die Fonts "Terminal" und
"MS LineDraw" zur Anzeige des Textes zu verwenden.
Stattdessen benutzt WinHelp einen Ersatzfont aus der Roman-, Script-
oder Symbol-Familie, die leider alle keine DOS-Grafikzeichen
enthalten.
UDO ersetzt daher DOS-Grafikzeichen durch die ASCII-Zeichen
"+", "-" und "|", um z.B.
DOS-Screenshots halbwegs realistisch darzustellen.