!subnode Fragen zum WinHelp-Format
!ignore_links
!html_name faqwin

!begin_description

##################################################

!item [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ß.

##################################################

!item [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).

##################################################

!item [Warum will der HC einfach keine HLP-Datei erzeugen?] ~

Dafür kann es zwei Gründe geben:

!begin_enumerate
!item	Der UDO-Quelltext beinhaltet Fehler. Schauen Sie sich also
zunächst die Fehlermeldungen von UDO in der Datei mit der Endung
(!V).ulw(!v) 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.

!item	Der HC macht Murks. Beachten Sie das Errorfile mit der Endung
(!V).err(!v), 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.
!end_enumerate

#################################################

!item	[Wofür ist die Datei mit der Endung ''hpj''?] ~

UDO erzeugt automatisch eine zum Hypertext gehörende Projektdatei mit der
Endung (!V).hpj(!v), 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.

##################################################

!item	[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.

##################################################

!item	[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:

!begin_enumerate

!item	Zunächst werden wie sonst auch Sonderzeichen durch die
        RTF-Schreibweise ersetzt.
		
!item	Leerzeichen werden in Unterstriche umgewandelt.

!item	Alle anderen Zeichen (ausgenommen Ziffern und die Buchstaben des
        Alphabets) werden durch Ihren hexadezimalen Wert in großer
        Schreibweise mit einem vorangehenden Unterstrich ersetzt.

!end_enumerate

Ein Beispiel:

!autoref [off]
!begin_quote
!begin_verbatim
UDO:     !node LaTeX-Einführung Teil 1
WinHelp: #{footnote # LaTeX_2DEinf_5C_27FChrung_Teil_1}
!end_verbatim
!end_quote
!autoref [on]

Erläuterungen:

!begin_enumerate

!item	Das Minuszeichen entspricht ASCII ""(!T)0x2D(!t)"", daher wird es
        durch ""(!T)_2D(!t)"" ersetzt.

!item	Das ""ü"" in Einführung lautet in RTF-Schreibweise ""(!T)\'FC(!t).""
        ""(!T)\(!t)"" entspricht ""(!T)0x5C(!t)"", wird also durch
        ""(!T)_5C(!t)"" ersetzt. ""(!T)'(!t)"" enspricht ""(!T)0x27(!t)"",
        wird also durch ""(!T)_27(!t)"" ersetzt.

!item	Die Leerzeichen werden durch ""(!T)_(!t)"" ersetzt.

!end_enumerate

Siehe sehen, daß aus einem ""ü"" die ziemlich lange Zeichenfolge
""(!T)_5C_27FC(!t)"" 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.

##################################################

!item [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.

##################################################

!item [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.

##################################################

!item [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.

##################################################

!item [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.

##################################################

!end_description

