Home Wieso, weshalb, warum Fragen zum Turbo-Vision-Help-Format Bugs

Fragen zum WinHelp-Format

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:
 
  1. 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.
     
  2. 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:
 
  1. Zunächst werden wie sonst auch Sonderzeichen durch die RTF-Schreibweise ersetzt.
     
  2. Leerzeichen werden in Unterstriche umgewandelt.
     
  3. 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:
 
  1. Das Minuszeichen entspricht ASCII "0x2D", daher wird es durch "_2D" ersetzt.
     
  2. Das "ü" in Einführung lautet in RTF-Schreibweise "\'FC." "\" entspricht "0x5C", wird also durch "_5C" ersetzt. "'" enspricht "0x27", wird also durch "_27" ersetzt.
     
  3. 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.
 
Warum werden Tabellen nicht zentriert?
 
 
Entweder ist dies wirklich nicht möglich, Tabellen zentriert auszugeben, oder aber ich habe bei meiner viertägigen Suche die entscheidende Möglichkeit übersehen.
 
Warum werden in Tabellen keine Linien angezeigt?
 
 
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.
 

Home Wieso, weshalb, warum Fragen zum Turbo-Vision-Help-Format Bugs