% ASCREEN-3.2-HANDBUCH --- Kapitel 2 (ASCREEN starten)
% Copyright (C) 1992 by Anselm Lingnau
%
\chapter{\ASCREEN\ starten} \label{k:starten}

\section{Das Programm aufrufen}

Sie k�nnen \ASCREEN\ ganz einfach aufrufen,
indem Sie es auf dem Desktop zweimal anklicken.
Nach einer kurzen Weile pr�sentiert sich Ihnen
die Men�leiste von \ASCREEN\
(der unmi�verst�ndlichen Titel links oben verr�t es).
Jetzt k�nnen Sie mit dem Men�punkt \M{Datei �ffnen}
im Men� \M{Datei} eine \DVI-Datei aussuchen,
deren erste Seite dann wenig sp�ter in einem Fenster angezeigt wird.

Von einer kommandoorientierten Shell wie der {\em Mupfel\/} aus
k�nnen Sie \ASCREEN\ genauso �ber den Programmnamen, {\tt ascreen},
starten.
Da \ASCREEN\ ein GEM-Programm ist,
also die graphische Bedienoberfl�che des Atari-Computers benutzt,
kann es bei manchen Shells n�tig sein,
ein Kommando wie
\begin{typed}
gem ascreen
\end{typed}
zu geben.
Darauf weisen wir im folgenden nicht jedesmal hin.

Wenn Sie eine Shell benutzen,
werden Sie �blicherweise den Namen der \DVI-Datei,
die \ASCREEN\ zeigen soll,
gleich beim Aufruf mit angeben.
\begin{typed}
ascreen foo
\end{typed}
zeigt etwa die Datei {\tt foo.dvi} an.
Die \DVI-Datei sucht \ASCREEN\ in demjenigen Verzeichnis,
das in der \M{Pfade}-""Dialogbox bzw.\ in der Setupdatei
als \DVI-Pfad angegeben wurde.
Sie k�nnen aber auch einen kompletten Dateinamen (mit Pfad) angeben,
die Voreinstellung wird dann ignoriert.
Insbesondere sollten Sie etwas sagen wie
\begin{typed}
ascreen .\foo
\end{typed}
wenn Sie die Datei {\tt foo.dvi} im aktuellen Verzeichnis meinen,
Ihr \DVI-Pfad aber auf etwas anderes zeigt.

\begin{aha}
Wenn Sie einen modernen Desktopersatz wie GEMINI verwenden,
k�nnen Sie \ASCREEN\ auch als Icon auf dem Bildschirmhintergrund ablegen.
Dann k�nnen Sie Dateien anschauen,
indem Sie die betreffenden Icons auf das \ASCREEN-Icon ziehen.
\end{aha}
\begin{aha}
Was GEMINI angeht, so habe ich von Leuten geh�rt,
die eine Datei {\tt DVI.MUP} als Applikation f�r alle Dateien anmelden,
deren Namen mit {\tt .DVI} aufh�ren.
{\tt DVI.MUP} sieht ungef�hr so aus:
\begin{typed}
d:\tex\ascreen &d:\tex\ascreen.set $*
\end{typed}
Dadurch wird \ASCREEN\ automatisch gestartet,
wenn Sie eine \DVI-Datei doppelt anklicken.
(Dieser Tip wurde von Cornelius Krasel beigesteuert.)
\end{aha}

\begin{attention}
Damit \ASCREEN\ funktionieren kann,
braucht es eine passende {\em Resourcedatei}.
In dieser Datei, typischerweise {\tt ASCREEN.RSC} genannt,
sind die Elemente der graphischen Bedienoberfl�che definiert.
\ASCREEN\ sucht diese Datei mit der �blichen GEM-Methode.
Wenn Sie also die Resourcedateien aller Ihrer GEM-Programme
in einem besonderen Verzeichnis sammeln,
dann sollte das auch mit \ASCREEN\ funktionieren.
Normalerweise sind Sie aber auf der sicheren Seite,
wenn die Resourcedatei im selben Verzeichnis steht wie {\tt ASCREEN.PRG}.
\end{attention}
\begin{aha}
\ASCREEN\ ist so geschrieben,
da� s�mtliche landessprachlichen Zeichenketten in der Resourcedatei stehen.
Daher ist es einfach,
ausl�ndische Versionen von \ASCREEN\ zu machen,
denn man mu� nur die Resourcedatei �ndern.
Kapitel~\ref{k:tricks} hat hierzu einiges zu sagen.
In der Tat enth�lt die Distribution
eine fertige Resourcedatei f�r eine englische Bedienoberfl�che
(hallo Herbert!)
Um die englische Version zu benutzen,
k�nnen Sie zum Beispiel das (deutsche) {\tt ASCREEN.RSC}
in {\tt ASCREEN.GER}
und das (englische) {\tt ASCREEN.ENG} in {\tt ASCREEN.RSC} umbenennen.
Oder Sie tun den Dateinamen der englischen Resourcedatei
in die Umgebungsvariable {\tt ASCREENRSC}:
\begin{typed}
setenv ASCREENRSC d:\tex\ascreen.eng
\end{typed}
\ASCREEN\ sucht n�mlich in Wirklichkeit nur nach einer Datei {\tt ASCREEN.RSC},
wenn die Umgebungsvariable {\tt ASCREENRSC} nicht definiert ist,
sonst wird ihr Inhalt direkt als Dateiname benutzt.
Die zweite Variante macht es �brigens m�glich,
beide Sprachen gleichzeitig auf demselben Rechner zu installieren
und zu benutzen.
\end{aha}

\section{Die Setupdatei}

Beim Programmstart liest \ASCREEN\ nicht nur die Resourcedatei,
sondern auch eine {\em Setupdatei}.
Diese enth�lt Voreinstellungen f�r viele Aspekte der Funktion von \ASCREEN,
zum Beispiel
\begin{itemize}
\item Pfadangaben f�r \DVI-Dateien, {\tt IMG}-Graphiken,
	Protokoll\allowhyphens- und Zeichensatzlistendateien
\item Suchpfade und Namensschablonen f�r Zeichens�tze
	und Zeichensatzbibliotheken
\item Parameter f�r die Speicher- und Zeichensatzverwaltung
\item Voreinstellungen f�r die Gestalt und Funktion der Bedienoberfl�che
\end{itemize}
und einiges mehr.
Alle einstellbaren Parameter und Optionen,
die innerhalb des Programms �ber Dialoge zug�nglich sind,
k�nnen Sie in einer Setupdatei permanent ablegen.

Der Name der Setupdatei, die \ASCREEN\ beim Programmstart liest,
kann auf eine von drei Arten festgelegt werden:
\begin{enumerate}
\item Sie tun gar nichts Besonderes.
	Dann sucht \ASCREEN\ im selben Verzeichnis,
	wo auch die Programmdatei {\tt ASCREEN.PRG} steht,
	nach einer Datei namens	{\tt ASCREEN.SET} 
\item Sie legen den vollst�ndigen Pfadnamen Ihrer Setupdatei
	in der Umgebungsvariablen {\tt ASCREENSET} ab,
	wie im Kapitel �ber die Installation beschrieben.
	Dieser Name hat Vorrang gegen�ber dem fest eingebauten Namen
	{\tt ASCREEN.SET}.
\item Sie geben den Dateinamen auf der Kommandozeile an,
	und zwar als erstes Argument unmittelbar hinter einem
	kaufm�nnischen Undzeichen ({\tt\&}). Etwa so:
\begin{typed}
ascreen &special.set foo
\end{typed}
	(Die Endung {\tt .SET} wird von \ASCREEN\ {\em nicht\/}
	selbst�ndig hinzugef�gt.)
	Wenn Sie gut mit \TeX\ Bescheid wissen,
	kennen Sie diese Syntax schon von den Formatdateien,
	in denen Voreinstellungen f�r \TeX\ abgelegt werden.
	Wie \TeX\ erkennt \ASCREEN\ dies nur,
	wenn die Angabe als allererstes Argument erscheint.
	Ein so angegebener Name hat Vorrang
	gegen�ber dem Inhalt von {\tt ASCREENSET}.
\end{enumerate}
\begin{aha}
Die letzte Methode ist vor allem sinnvoll,
wenn Sie eine Setupdatei haben, die Sie gew�hnlich benutzen
(und deren Name zum Beispiel in {\tt ASCREENSET} steht),
aber gelegentlich eine andere einsetzen m�chten.
Zum Beispiel kann \ASCREEN\ ein Dokument auch mit Ihren Druckerzeichens�tzen
anzeigen, wenn Sie mal etwas ganz genau �berpr�fen wollen.
Die daf�r n�tigen Voreinstellungen tun Sie einfach in eine andere Setupdatei,
deren Namen Sie bei Bedarf direkt im Aufruf nennen.
Siehe hierzu auch Abschnitt~\ref{a:dfonts}.
\end{aha}

Die Einstellungen in der Setupdatei haben Vorrang
gegen�ber den entsprechenden
im Programm fest vorgegebenen Standardwerten.
Was die Setupdatei konkret enth�lt
und wie die diversen Voreinstellungen angegeben werden,
erfahren Sie im Kapitel~\ref{k:setup}.

\section{Kommandooptionen}

Au�er dem Namen der Setupdatei und dem der \DVI-Datei
k�nnen Sie im Aufruf von \ASCREEN\ diverse {\em Kommandooptionen\/} angeben,
die es Ihnen gestatten,
die Funktion von \ASCREEN\ zu beeinflussen.
Kommandooptionen m�ssen zwischen dem Namen der Setupdatei (falls vorhanden)
und dem Namen der \DVI-Datei stehen.
Sie bestehen immer aus einem Minuszeichen gefolgt von einem Buchstaben.

Es gibt zwei Arten von Kommandooptionen:
solche, die als {\em Schalter\/} funktionieren
und andere, die einen {\em Parameter\/} nach sich ziehen.
Schalteroptionen k�nnen gesammelt hinter einem einzigen Minus angegeben
werden:
\begin{typed}
ascreen -AIv
\end{typed}
ist �quivalent zu
\begin{typed}
ascreen -A -I -v
\end{typed}
Die letzte Option in einer solchen Gruppe darf sogar einen Parameter haben.

\begin{aha}
Sollte der Name Ihrer \DVI-Datei mit einem Minuszeichen beginnen
(pfui, pfui),
so k�nnen Sie mit einem doppelten Minus das Ende der Optionenliste
bekanntgeben:
\begin{typed}
ascreen -- -punkt
\end{typed}
zeigt die Datei {\tt -punkt.dvi} an.
\end{aha}

Die Kommandooptionen machen es m�glich,
alle in der Setupdatei enthaltenen Voreinstellungen
auch auf der Kommandozeile zu treffen.
Kommandooptionen haben dabei Vorrang
gegen�ber den Einstellungen in der Setupdatei.
Insbesondere gilt f�r Schalteroptionen,
da� sie den betreffenden Schalter immer {\em umlegen}.
Ein Schalter, der in der Setupdatei eingeschaltet wird,
wird durch die entsprechende Kommandooption also ausgeschaltet
und umgekehrt.
(Tritt die Kommandooption zweimal auf,
so heben die beiden Male sich gegenseitig weg.)
Bei Optionen mit Parameter gilt der letzte Wert,
falls dieselbe Option auf der Kommandozeile mehrfach auftaucht.
Damit k�nnen Sie \TeX-Shells austricksen,
die hartn�ckig eigene Ideen dar�ber haben,
welche Optionen ein Previewer erwartet.
Auch die Kommandooptionen werden im Kapitel~\ref{k:setup} aufgez�hlt.

\begin{attention}
Unter normalen Umst�nden k�nnen Kommandozeilen auf dem Atari
eine L�nge von h�chstens 125~Zeichen haben.
Das ist nicht allzu viel,
und darum wurde vor einiger Zeit von Atari ein Verfahren definiert,
das diese Grenze umgeht.
\ASCREEN\ unterst�tzt selbstverst�ndlich dieses sogenannte ARGV-""Verfahren
und kann deshalb in Zusammenarbeit mit geeigneten Shells,
zum Beispiel {\em GEMINI/Mupfel},
Kommandozeilen von nahezu beliebiger L�nge �bernehmen.
\end{attention}

\section{Probleme}

Vor allem Leute mit \TeX-Shells unterschiedlicher Provenienz
klagen ab und zu �ber Schwierigkeiten beim Aufrufen von \ASCREEN.
Das liegt in den allermeisten F�llen nicht an \ASCREEN,
sondern an unterschiedlich schlimmen "`Hirn"-sch�den"'
der betreffenden Shells.
(Das Problem mit {\tt-p=a4} in der Strunkschen {\em CTEX\/}-Shell
haben Sie ja schon im vorigen Kapitel kennengelernt.)
Die HKM-\TeX shell zum Beispiel besteht darauf,
jedem Treiber die Option {\tt-J} zu �bergeben,
ohne da� man das abschalten k�nnte.
\ASCREEN\ ignoriert diese Option daher ohne Fehlermeldung,
um un"-n�"-ti"-ge Verwirrung zu verhindern.
Wenn Ihre \TeX-Shell nicht so mitspielt, wie Sie das gerne h�tten,
dann sollten Sie zun�chst mit einem Programm wie
\begin{typed}
#include <stdio.h>
int main(int argc, char **argv) {
    while (*argv)
        printf("%s\n", *argv++);
    return 0;
}
\end{typed}
(oder etwas �quivalentem in einer anderen Programmiersprache als C)
anstelle des richtigen \ASCREEN\ nachschauen,
was genau \ASCREEN\ von Ihrer Shell als Kommandozeile �bergeben bekommt.
Meist k�nnen Sie so das Problem eingrenzen
und entweder selbst etwas dagegen tun
oder den Autor von \ASCREEN\ [mich] (oder den der Shell)
mit einem detaillierten Fehlerbericht begl�cken (siehe Anhang~\ref{a:kontakt}).

\begin{chapterquote}
--- I can call spirits from the vasty deep.
\medskip
--- Why, so can I, or so can any man;
But will they come when you do call for them?
\author WILLIAM SHAKESPEARE, {\sl King Henry IV, Part~1\/} (1598)
\end{chapterquote}

