Weder die eine noch die andere Datei ist eine fertige Hilfedatei für Windows. UDO erzeugt nur die Quelltexte einer Hilfedatei, welche noch mit einem Hypertext-Compiler (HC.EXE, HC31.EXE, HCP.EXE) übersetzt werden muss.
Den Hypertext-Compiler HC31.EXE können Sie kostenlos vom FTP-Server von Microsoft (ftp.microsoft.com) herunterladen.
Dafür kann es zwei Gründe geben:
UDO erzeugt automatisch eine zum Hypertext gehörende Projektdatei mit das Suffix .hpj, das dem HC übergeben werden muss, 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 usw.
UDO überschreibt vorhandene Projektdateien ohne Rückfrage. Wenn Sie manuelle Änderungen an einer Projektdatei vorgenommen haben und diese beibehalten möchten, schreibschützen Sie die Projektdatei.
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, dass Sie auch nach dem Scrollen
der Seite immer noch den Kapitelnamen erkennen können.
Durch den Schalter !no_headlines [win]
wird die Ausgabe
von Kopfzeilen unterdrückt.
Falls Sie von anderen WinHelp-Dateien auf eine mit UDO erzeugte WinHelp-Datei 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 Kontext-strings um:
Beispiel:
UDO: !node LaTeX-Einführung Teil 1 WinHelp: #{footnote # LaTeX_2DEinf_5C_27FChrung_Teil_1}
Erläuterungen:
0x2D, daher wird es durch
_2Dersetzt.
üin
Einführunglautet in RTF-Schreibweise
\'FC.
\entspricht
0x5C, wird also durch
_5Cersetzt.
'entspricht
0x27, wird also durch
_27ersetzt.
_ersetzt.
Sie sehen, dass 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, dass die Vergabe von gleichen Kontextstrings bei
ähnlichen Kapitelnamen ziemlich unwahrscheinlich wird. Würde aus dem
ü
nur 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 platzieren. Es ist nur möglich, jede Tabellenzelle mit oder ohne Rahmen darzustellen.
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.
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.
Sie können die Laufzeit von UDO positiv beinflussen, wenn Sie Quelltexte für eine Windows-Hilfe gleich im Windows-Zeichensatz schreiben. UDO braucht in dem Falle keine aufwendige Zeichensatzkonvertierung vornehmen.
Achten Sie hierbei darauf, dass Sie z.B. den Schalter !code_source [iso] benutzen, um UDO anzuzeigen, dass die Texte nicht im DOS-Zeichensatz erstellt wurden.
Mit den Schaltern !win_medium_compression und !win_high_compression sorgen Sie dafür, dass der Help-Compiler die WinHelp-Datei komprimiert. Dadurch können Sie die Größe der Datei bis zu 50 % verringern, wobei sich allerdings die Laufzeit des Help-Compilers, besonders bei der hohen Komprimierungsrate, verlängert.