% ASCREEN-3.2-HANDBUCH --- Anhang D (HyperTeX)
% Copyright (C) 1992 by Anselm Lingnau
%
\chapter{\HyperTeX} \label{a:hyper}

\section{Was ist \HyperTeX?}

Seit einiger Zeit gibt es eine neue Art,
Dokumente f�r den Gebrauch mit Computern zu strukturieren:
{\em Hypertext\/} nennt man einen Text,
bei dem gewisse Stichw�rter mit anderen Stellen des Textes
"`verbunden"' sind,
so da� man bequem an diese Stellen gelangen kann.
Referenzen wie "`siehe oben"' und "`vergleiche Tabelle~5"'
lassen sich so leicht verfolgen.
Hypertext macht es aber auch m�glich,
das Dokument in einer fast beliebigen Reihenfolge durchzugehen
--- B�cher dagegen unterst�tzen im wesentlichen
nur das Lesen von vorne nach hinten, alles andere ist m�hselig.
Ein anderes oft geh�rtes Stichwort ist {\em Hypermedia\/};
das Dokument enth�lt dann auch Bilder, T�ne und andere "`Effekte"',
die sich leicht abrufen lassen.

W�re es nicht sch�n, Hypertext mit \TeX\ zu erstellen?
Onlinedokumentation zum Beispiel w�re damit viel bequemer zu benutzen
und w�rde au�erdem nett aussehen.
Tats�chlich gibt es verschiedene Ans�tze f�r Hypertext mit \TeX.
Einer davon ist \HyperTeX, das von \ASCREEN\ unterst�tzt wird.
\HyperTeX\ besteht aus einer Stiloption f�r \LaTeX\
und einem Perl-Programm, das gewisse Hilfsarbeiten erledigt.
Die prinzipielle Vorgehensweise ist wie folgt:
\begin{enumerate}
\item Sie schreiben Ihren Text wie �blich in \LaTeX\
	und zeichnen die Querverbindungen mit besonderen Kommandos aus.
\item Beim \LaTeX-Lauf wird au�er der {\tt aux}-Datei auch eine
	{\tt hyp}-Datei angelegt,
	die Informationen �ber die Querverbindungen enth�lt.
\item Die {\tt hyp}-Datei wird mit dem Perl-Programm {\tt hyp.pl}
	zu einer {\tt hl}-Datei gemacht.
	Diese enth�lt die Querverbindungen in sortierter
	und f�r \ASCREEN\ verdaulicher Form.
\item Sie schauen sich die \DVI-Datei mit \ASCREEN\ an.
	Sie k�nnen sie auch ausdrucken;
	gute Treiber m��ten die Querverbindungen ignorieren.
\end{enumerate}

\HyperTeX\ unterscheidet zwischen der {\em Definition\/} eines Begriffs
und einem {\em Verweis\/} auf den Begriff.
Angenommen, Sie schreiben ein Dokument �ber elementare Geometrie.
Die Definition des "`Satzes von Pythagoras"'
w�re dann die Stelle, wo der Satz eingef�hrt wird.
An verschiedenen Stellen im Dokument,
wo der Satz benutzt wird, k�nnen Sie dann auf die Definition verweisen.
So ist es leicht, den Satz bei Bedarf "`nachzuschlagen"'.

Begriffe, f�r die Querverbindungen existieren,
werden von \ASCREEN\ auf dem Bildschirm eingerahmt.
Dr�cken Sie die linke Maustaste,
w�hrend der Zeiger sich innerhalb eines solchen Rahmens befindet,
so erhalten Sie nicht das �bliche Popupmen�,
sondern ein weiteres mit den folgenden Eintr�gen:
\begin{description}
\item[Definition]
	Wenn Sie diesen Men�punkt w�hlen,
	bringt \ASCREEN\ Sie in die N�he der Definition des Begriffs.
	\ASCREEN\ versucht,
	die Definition so gut wie m�glich in die Mitte des Fensters
	zu bringen.
\item[N�chster Verweis]
	\ASCREEN\ springt zum n�chsten Verweis auf den Begriff,
	d.\ h.\ auf den in Richtung auf das Dokumentenende n�chstliegenden.
\item[Voriger Verweis]
	\ASCREEN\ springt zum vorigen Verweis auf den Begriff,
	d.\ h.\ auf den in Richtung Dokumentanfang n�chstliegenden.
\item[Zur�ck]
	\ASCREEN\ springt an die Stelle zur�ck,
	von der aus zuletzt eine Definition oder ein Verweis aufgesucht
	wurde.
	Mit dieser Funktion kann man eine Kette von Spr�ngen
	"`zur�ckspulen"',
	um an den Ausgangspunkt zur�ckzukehren
	und in der Lekt�re des Dokuments fortzufahren.
	\ASCREEN\ merkt sich die Spr�nge f�r jedes Fenster einzeln.
\end{description}

\begin{attention}
\HyperTeX\ ist im Moment als "`experimentell"' anzusehen.
Insbesondere das Perl-Programm soll auf lange Sicht hin verschwinden
und durch zus�tzliche Intelligenz im Treiber ersetzt werden.
\end{attention}

\section{Die \LaTeX-Seite von \HyperTeX}

Um \HyperTeX\ in einem \LaTeX-Dokument benutzen zu k�nnen,
m�ssen Sie die Stiloption {\tt hypertex} einbinden,
indem Sie sie im optionalen Teil des \verb|\documentstyle|-""Befehls
auf"|f�hren.
Dadurch werden die folgenden Befehle definiert:
\begin{description}
\item[{\tt\char92 hyperdef\char123}\<Text>{\tt\char125}]
	"`Definiert"' den \<Text>.
\item[{\tt\char92 hyperto\char123}\<Text>{\tt\char125}]
	Richtet eine Verbindung auf \<Text> ein.
\end{description}
Die Datei {\tt HYPERTEX/HYPTEST.TEX} in
der \ASCREEN-""Distribution enth�lt ein Beispieldokument.

\section{Implementierung}

Die \verb|\hyper|\dots-""Makros schreiben einen \verb|\special|-""Befehl
in die \DVI-Datei,
der die Abmessungen des \<Text>es enth�lt.
Diese Informationen werden von \ASCREEN\ verwendet,
um beim Anzeigen einen Rahmen um den \<Text> zu zeichnen.
Der \<Text> kann keinen Zeilenumbruch enthalten.
\begin{aha}
Eigentlich kann der \<Text> aus einigerma�en beliebigem \LaTeX-Code bestehen.
Ungl�cklicherweise wird er aber in die {\tt hyp}-Datei geschrieben
und sollte daher nicht allzu lang sein.
\end{aha}
Die {\tt hyp}-Datei enth�lt nicht nur den Text des Querverweises,
sondern auch die Seitennummer, auf der der Verweis aufgetreten ist.
Das Perl-Programm {\tt hyp.pl} sortiert alle Eintr�ge in der {\tt hyp}-Datei
nach dem Text und sammelt die Seitennummern,
um \ASCREEN\ die Suche nach Verweisen und Definition zu erleichtern.
\ASCREEN\ selbst liest zu einer \DVI-Datei
auch die {\tt hyp}-Datei, sofern vorhanden,
und bietet die entsprechenden Querverweise zum Anklicken an.
Die Rahmen um die Verweise werden von \ASCREEN\ erzeugt,
was keinen besonders gro�en Aufwand darstellt
(Linien mu� er sowieso zeichnen k�nnen).
Man k�nnte sie auch von \LaTeX\ erzeugen lassen,
aber dann w�rden sie auch beim Ausdrucken erscheinen.
So kann man ein \HyperTeX-""Dokument immerhin ausdrucken,
ohne da� die dann nutzlosen Rahmen es entstellen;
allerdings d�rfte der Druckertreiber
die \HyperTeX-""\verb|\special|-""Befehle
als unbekannt monieren.

\section{Die Zukunft}

\HyperTeX\ ist, wie gesagt, experimentell
und wird sich sicherlich noch �ndern,
wenn ich die Zeit finde, das ganze umzuschmei�en und neu zu machen :-)
Insbesondere denke ich daran, das Perl-""Programm �berfl�ssig zu machen.
Ob \HyperTeX\ jemals Verbreitung f�r Onlinedokumentation finden wird,
halte ich f�r zweifelhaft,
denn schlie�lich ist das zum Anzeigen erforderliche \TeX-Paket
nicht �berall vorhanden,
und es w�re wohl etwas m�hsam, \TeX\ zu installieren,
nur um die Hilfe zu einem ganz anderen Programm lesen zu k�nnen.
Allerdings habe ich die Idee,
ein erweitertes \DVI-""Format zu implementieren,
in dem die ben�tigten Zeichens�tze f�r den Bildschirm
gut versteckt enthalten sind.
Eine solche "`{\tt DVJ}-Datei"' k�nnte durch einen Postprozessor
aus einer \DVI-Datei erzeugt
und mit einer "`Lightversion"' von \ASCREEN,
die nur die n�tigsten Features enth�lt,
angezeigt werden
--- auch wenn kein komplettes \TeX\ installiert ist!
Zeit m��te man haben!
Ich w�re an Kommentaren interessiert,
die mir einzusch�tzen helfen,
ob das eine Gute Idee ist
und ob Leute ein solches Paket gerne benutzen w�rden.
Ich m�chte auch ganz generell um Meinungen zu \HyperTeX\ bitten.

\begin{chapterquote}
O, what a tangled web we weave
When first we practise to deceive!
\author SIR WALTER SCOTT, {\sl Marmion\/} 6:17 (1808)
\end{chapterquote}
