%
% This is the include file: csg-doc.tex
%
% It is part of the german documentation for the DVI-driver family 3.5cs
%
\def\lntyp#1#2{\hbox to 3.9cm{#1:\hfill}\special{CS!t#2}\special{CS!l200 0}}%
%

\section{Die CS-Grafik-Befehle}

Alle hier beschriebenen DVI-Treiber unterst"utzen die nachfolgenden
\verb|\special|-Befehle der CS-Grafik. Alle Punkte-Koordinaten sind
dabei in Einheiten der Unit-Length angegeben und haben als Bezugspunkt
die aktuelle Position in \TeX-Dokument ($ currentpos $).
$ currentpos $ wird dabei von keinem Befehl ver"andert.
Bei Zahlenangaben sind immer einfache Flie"skommazahlen ohne Exponentialteil
erlaubt; als Dezimalzeichen ist ein Punkt zu verwenden.

\nopagebreak\begin{description}
\item[CS!r] Reset. Die default-Parameter f"ur Linienart etc.\ werden
          eingestellt.
          Am Anfang jedes Bildes sollte ein \verb| \special{CS!r} | stehen.
          Dieser Befehl wird von \verb|\begin{draw}| automatisch aufgerufen.
\item[CS!u $d$] Set Unit-Length. Am Anfang jeder CS-Grafik innerhalb von
          \LaTeX\ sollte der CS-Grafik Befehl
          \verb| \special{CS!u\the\unitlength} | stehen.
          Dieser Befehl wird von \verb|\begin{draw}| automatisch aufgerufen
          (default: 1pt). Werte unter $1/1000$~pt werden ignoriert.
          Beispiel: \verb|\special{CS!u 1pt}|.
\item[CS!t $n$] Set Line-Type. $ 0 \le n \le 6 $. Dabei steht:
         \begin{description}
         \item[0] F"ur \lntyp{"`solid line"' (default)}{0}
         \item[1] F"ur \lntyp{"`long-dashed line"'}{1}
         \item[2] F"ur \lntyp{"`dotted line"'}{2}
         \item[3] F"ur \lntyp{"`dash-dot line"'}{3}
         \item[4] F"ur \lntyp{"`dashed line"'}{4}
         \item[5] F"ur \lntyp{"`dash-dot-dot line"'}{5}
         \item[6] F"ur \lntyp{"`wide-dotted line"'}{6}
         \end{description}
         Beispiel: \verb|\special{CS!t2}|.
\item[CS!l $dx$ $dy$] Draw Line to $ currentpos + (dx,dy) $.
         $dx$ und $dy$ sind dabei reelle Zahlen und z"ahlen in Einheiten
         der \verb|unitlength| des letzten \verb|CS!u| Befehls.
         Beispiel: Der \LaTeX--Befehl
         \verb|\line(1,2){12.3}| entspricht dem CS-Grafik Befehl
         \verb|\special{CS!l 12.3 24.6}|.

\item[CS!i $name$] Die \verb|.csg|--Datei $name$ wird an der aktuellen
          Position eingelesen. Eine \verb|.csg|--Datei besteht aus
          einer Liste von CS-Grafik Befehlen. Diese werden dann von
          \TeX\ nicht mehr einzeln behandelt, sondern als ein Block
          betrachtet. Das spart Platz und bringt -- besonders bei 
          intensiver Nutzung der CS-Grafik Befehle --
          erhebliche Geschwindigkeitsvorteile im \TeX-Lauf (s.u.).

\item[CS!g $f$ $name$] Die GEM Image (\verb|.img|) Datei $name$ wird an der
          aktuellen Position eingelesen. Mit dem Skalierungsfaktor $f$ kann
          die Gr"o"se des Bildes ver"andert werden (s.u.).

\noindent \hspace*{-\the\leftmargin}
Aus Kompatibilit"atsgr"unden gibt es derzeit noch:

\item[CS!G $f$ $name$] Die GEM Image Einbindung, alte Version (siehe unten).

\noindent \hspace*{-\the\leftmargin}
Der folgende Befehl funktioniert nur mit den neueren Atari-TOS-Versionen:

\item[CS!m $f$ $name$] Die GEM MetaFile (\verb|.gem|) Datei $name$ wird an der
          aktuellen Position eingelesen. F"ur diese Funktion
          wird eine neuere TOS-Version (mindestens 1.4 von 1989) ben"otigt.
          Mit dem Skalierungsfaktor $f$ kann  die Gr"o"se des Bildes
          ver"andert werden (s.u.).

{\leftmargin 0pt\item[]Der ab Treiber-Version~3.50 implementierte CSG Level~2
                       enth"alt zus"atzlich die nachfolgenden Befehle.}
\item[CS!w $d$] Set Line-Width. Die Liniendicke wird festgelegt
          (default: 0.4pt). In \LaTeX\ entspricht der Befehl \verb|\thinlines|
          einer Dicke von 0.4pt und \verb|\thicklines| entspricht 0.8pt.
          Erlaubt sind Werte im Bereich von~0.1~pt (ca.~0.035~mm) bis~3.2~pt 
          (ca.~1.1~mm). Zu gro"se oder zu kleine Werte werden auf den
          erlaubten Bereich eingeschr"ankt.
          Beispiel: \verb|\special{CS!w 1.5pt}|.

\item[CS!a $a$ $b$ $\varphi$ $\alpha$ $\beta$] Draw elliptical arc.
          Es wird eine Ellipse (oder ein Teil davon) gezeichnet.
          $a$ und $b$ sind die L"angen der Halbachsen, $\varphi$ ist die
          Inklination, also der Winken zwischen der X-Achse und der
          Halbachse $a$, $\alpha$ ist der Winkel (relativ zur Achse $a$),
          von dem an gezeichnet wird und $\beta$ ist der Zeichenwinkel, also
          die Differenz zwischen Anfangs- und Endwinkel. Alle Winkelangaben
          sind dabei in Grad.
 
\item[CS!b2 $dx1$ $dy1$ $dx2$ $dy2$] Draw b‚zier curve of order~2.
         Es wird eine B‚zier-Kurve 2.~Ordnung mit den
         St"utzpunkten $currentpos$, $currentpos + (dx1,dy1)$ und
         $currentpos + (dx2,dy2)$ gezeichnet.

\item[CS!b3 $dx1$ $dy1$ $dx2$ $dy2$ $dx3$ $dy3$] Draw b‚zier curve of order~3.
         Es wird eine B‚zier-Kurve 3.~Ordnung mit den
         St"utzpunkten $currentpos$, $currentpos + (dx1,dy1)$,
         $currentpos + (dx2,dy2)$ und $currentpos + (dx3,dy3)$ gezeichnet.

\item[CS!c $r$] Draw circle with radius $r$. Es wird ein Kreis mit Radius
         $r$ um den Mittelpunkt $ currentpos $ gezeichnet. Als Alternative
         dazu kann der Befehl auch in folgender Form verwendet werden:

\item[CS!c0 $d$] Draw circle with diameter $d$. Es wird ein Kreis mit
         Durchmesser $d$ um den Mittelpunkt $ currentpos $ gezeichnet.
         (Die Null sieht dem Durchmesser-Symbol "ahnlich; beachten Sie das
         Leerzeichen nach der Null.)
         $d$ ist dabei eine reelle Zahl und z"ahlt in Einheiten der
         \verb|unitlength| des letzten \verb|CS!u| Befehls.
         Beispiel: Dem CS-Grafik Befehl \verb|\special{CS!c0 1.2}| entspricht
         der \LaTeX--Befehl \verb|\circle{1.2}|.
         Erlaubt sind einfache Flie"skommazahlen ohne
         Exponential-Teil. Als Dezimalzeichen ist ein Punkt zu verwenden.
         $ currentpos $ wird von diesem Befehl nicht ver"andert.

         {\bf Achtung: Im Gegensatz zu "`CS!a"', "`CS!b"' und "`CS!l"' wird
         bei "`CS!c"' der Linien-Typ ignoriert !} Die Linien-Dicke wird jedoch
         beachtet.

\item[CS!d $r$] Draw disk with radius $r$. Wie "`CS!c"', jedoch wird
         ein gef"ullter Kreis gezeichnet. Alternativ gibt es wieder
         die Form:

\item[CS!d0 $d$] Draw disk with diameter $d$. Wie "`CS!c0"', jedoch wird
         ein gef"ullter Kreis (wie bei \LaTeX\ \verb|\circle*|) gezeichnet.

\item[CS!e $a$ $b$] Draw filled ellipse. Es wird eine gef"ullte Ellipse
          gezeichnet. $a$ und $b$ sind die L"angen der Halbachsen;
          Eine Inklination der Hauptachse wird bei gef"ullten Ellipsen
          nicht unterst"utzt.
\end{description}

\bigskip

Der Satz von \verb|\special|-Befehlen ist (bis auf die MetaFile-Einbindung)
so klein und einfach, da"s er sich "uberall schnell implementieren
l"a"st. Andererseits ist er flexibel genug, auch komplexe Linien-Grafiken
zu erm"oglichen. F"ur Textfunktionen (Beschriftungen der Zeichnung etc.)
stehen dabei die vollen \TeX--M"oglichkeiten zur Verf"ugung. Insbesondere
kann mit \TeX\ die richtige Zentrierung eines Textes mittels
\verb|\makebox(0,0)| leicht bewerkstelligt werden
(vgl.\ Kopka:LaTeX -- eine Einf"uhrung).

In den Funktionen sind ab CSG Level~2 nun auch glatte Kurven enthalten.
Dies vereinfacht die Erstellung von kleinen Zeichnungen "`von Hand"'.
Im CSG Level~1 mu"sten glatte Kurven noch aus
einzelnen Linienst"ucken zusammengesetzt werden. Das ist von Hand etwas
m"uhsam, f"ur selbsentwickelte Grafikprogramme aber kein Problem.
 
Die Funktionen enthalten keine M"oglichkeit zum Zeichnen von beliebigen
gef"ullten Fl"achen. Da solche Routinen nicht ganz so trivial wie Linien
sind, wurden sie weggelassen. Funktionen f"ur gef"ullte Fl"achen verleiten
auch dazu, die Arbeit von Hidden-Line Algorithmen auf die Treiber abzuw"alzen.

Die \TeX--Funktionen f"ur gef"ullte Rechtecke (\verb|\hrule| und \verb|\vrule|)
k"onnen nat"urlich benutzt werden.

Bei der Arbeit mit der CS-Grafik hat sich herausgestellt, da"s der interne
Speicher von \TeX\ gelegentlich zu klein wird. Sollte Ihnen dies passieren,
so versuchen Sie, m"oglichst viele CS-Grafik Befehle in \verb|.csg|--Dateien
auszulagern.

\section{Splines et alia}

Dieser Abschnitt ist nur f"ur den/die mathematisch interessierten Leser/in
gedacht. Wenn Sie den Abschnitt nicht verstehen "uberspringen Sie ihn einfach,
oder lassen Sie sich den Sachverhalt von Ihrem Mathematik-Lehrer erkl"aren.

Mit den B‚zier-Kurven dritter Ordnung lassen sich beliebige ebene Kurven
dritter Ordnung darstellen. So k"onnen z.\,B. auch gew"ohnliche Splines
dritter Ordnung aus B‚zier-Kurven zusammengesetzt werden. Eine B‚zier-Kurve
der Ordnung $n$ beschreibt die folgende parametrisierte Kurve:

$$
   B_n(t) ~=~ \sum_{k=0}^{n}{n \choose k}t^k(1-t)^{n-k}P_k
%
\quad\quad
%
{\rm f"ur}\quad t \in [0,1] \quad ,
$$

wobei $P_0 \ldots P_n$ die Kontrollpunkte der B‚zier-Kurve sind.

Hat man also z.\,B. eine ebene Kurve beschrieben durch das Polynom

$$
   P(t) ~=~ a + bt + ct^2 + dt^3
%
\quad\quad
%
{\rm f"ur}\quad t \in [0,1] \quad ,
$$

so kann man aus einem Koeffizientenvergleich die Kontrollpunkte der
Darstellung derselben Kurve als B‚zier-Kurve dritter Ordnung wie folgt
berechnen:

$$
  P_0 = a \quad
  P_1 = a + \frac{1}{3}b \quad
  P_2 = a + \frac{2}{3}b + \frac{1}{3}c \quad
  P_3 = a + b + c + d \quad .
$$

Oder noch konkreter: Ist

$$
  a = {0 \choose 0} \quad
  b = {1 \choose 1} \quad
  c = {2 \choose 2} \quad
  d = {3 \choose 4} \quad ,
$$

so erh"alt man die Kontrollpunkte:

$$
  P_0 = {0 \choose 0} \quad
  P_1 = {1/3 \choose 1/3} \quad
  P_2 = {4/3 \choose 4/3} \quad
  P_3 = {6 \choose 7} \quad .
$$

Mit Hilfe der Bezier-Kurven lassen sich auch komplizierte Gebilde leicht
zusammensetzen; ein Beispiel soll dies im folgenden verdeutlichen.
Die \verb|tpic|-\verb|\special|s und der \verb|eepic|-Style bieten eine
"`Spline"'-Funktion an, die wie folgt funktioniert:

Seien $P_1 = (x_1,y_1) \ldots P_N = (x_n,y_n)$ Kontrollpunkte, und wir
bezeichnen mit $P_{a,b}$ den Mittelpunkt zwischen $P_a$ und $P_b$, also
$P_{a,b} = ( P_a + P_b ) / 2$. Ferner bezeichnen wir hier mit $l(a,b)$
die Linie zwischen $a$ und $b$ und mit $b(a,b,c)$ die B‚zier-Kurve
(2.~Ordnung) mit den Kontrollpunkten $a$, $b$ und $c$.

In dieser Notation setzt sich der Spline, der unter Benutzung des
\verb|eepic|-Styles mit dem Kommando
\begin{quote}\tt
	\verb|\spline|$(x_1,y_1)(x_2,y_2)\cdots(x_n,y_n)$
\end{quote}
erzeugt wird, aus den Segmenten
\begin{quote}
	$l(P_1,P_{1,2}) ~ b(P_{1,2},P_2,P_{2,3}) ~ b(P_{2,3},P_3,P_{3,4}) ~ 
	\cdots ~ b(P_{n-2,n-1},P_{n-1},P_{n-1,n}) ~ l(P_{n-1,n},P_n)$
\end{quote}
zusammen, ist also eine simple Aneinanderreihung von Linien- und
B‚zier-Elementen.

\section{Einbinden von \protect\verb|.csg|--Dateien}

Die \verb|.csg|--Dateien werden "uber den \verb|\special|--Befehl 
\verb|\special{CS!i datei_name}| eingebunden. Die \verb|.csg|--Dateien
k"onnen innerhalb eines Bildes verschiedene Grafikbefehle zusammenfassen.
\TeX\ sieht dann nicht mehr die vielen Einzelbefehle sondern nur noch den
einen \verb|\special|--Befehl.
Dadurch hat \TeX\ weniger Arbeit, arbeitet schneller und braucht
weniger Speicher.

Eine typische Anwendung von \verb|.csg|--Dateien sieht z.\ B.\ wie folgt aus:

\nopagebreak
\begin{verbatim}
     \begin{draw}{400.0}{250.0}{Die Sinusfunktion (CS-Grafik)}
      \put(0,0){\special{CS!i /tex/bilder/csg/sinus.csg}}  % Die Grafik
      \put(200,225){\makebox(0,0)[b]{\Large Die SINUS Funktion}}
      % usw. die Text-Befehle (Beschriftungen etc.) folgen hier ...
     \end{draw}
\end{verbatim}

Dabei enth"alt die \verb|.csg|--Datei eine Anzahl von Zeilen, die
jede einen CS-Grafik Befehl repr"asentieren.
Zur Erkennung sieht die 1.\ Zeile anders aus. Sie enth"alt die
Kennung
\begin{verbatim}
     CS-Graphics V 1
\end{verbatim}
\nopagebreak
(nicht mehr, nicht weniger). Richtig. Obwohl jetzt der CSG-Level~2
unterst"utzt wird, bleibt die "`\verb|V 1|"' in der Kennung.

Dann folgen beliebig viele Zeilen, die nach der folgenden Tabelle
zu den entsprechenden \TeX--Befehlen "aquivalent sind:

\begin{center}\begin{tabular}{|c|c|} \hline
\it \LaTeX--Befehl         & \it \verb|.csg|--Zeile \\ \hline\hline
\verb|\special{CS!r}|      & \verb|r| \\ \hline
\verb|\special{CS!u d}|    & \verb|u d| \\ \hline
\verb|\special{CS!t n}|    & \verb|t n| \\ \hline
\verb|\put(x,y){\special{CS!l dx dy}}| & \verb|x y l dx dy| \\ \hline
\multicolumn{2}{|c|}{\it oder allgemein} \\ \hline
\verb|\put(x,y){\special{CS!<Befehl>}}|  & \verb|x y <Befehl>| \\ \hline
\end{tabular}\end{center}

Zeilen, die mit einem Prozentzeichen (\verb|%|) beginnen, werden als
Kommentare gewertet, also ignoriert. Auch sonst kann am Ende einer
Befehlszeile ein durch ein Prozentzeichen abgetrennter Kommentar
stehen.

Die Befehle wirken dabei auf dem Papier (Bildschirm) so, als st"anden die
\TeX--"Aquivalente tats"achlich an dieser Stelle, d.\ h., "Anderungen des
Linientypes, der Unitlength usw.\ bleiben f"ur die nachfolgenden
CS-Grafik Befehle erhalten.

{\bf Achtung:} Die rekursive Einbindung von CSG-Dateien in CSG-Dateien wird
ab CSG Level~2 nicht mehr unterst"utzt. (Ich kenne sowieso niemanden, der
das je benutzt hat.) Sie k"onnen also nicht mehr innerhalb einer CSG-Datei eine
weitere CSG-Datei einbinden. Selbstverst"andlich k"onnen Sie aber nach wie vor
aus \TeX{} beliebig viele CSG-Dateien nacheinander einbinden.

\section{Einbinden von \protect\verb|.img|--Dateien (GEM Image)}

GEM Image Dateien k"onnen mit dem Befehl \verb|\special{CS!g f name}|
eingebunden werden.
Dabei kommt dann die linke untere Ecke des Bildes
auf die aktuelle Position zu liegen.

Die Gr"o"se des Bildes wird aus den Werten f"ur die Pixelbreite und
-h"ohe sowie den Pixelausma"sen des Bildes berechnet. Die Werte stehen
im Header jeder GEM Image Datei. Dann wird die Gr"o"se mit dem Faktor
$f$ multipliziert und das Bild dann auf das jeweilige Ausgabeger"at
umgerechnet ($f$ mu"s zwischen 0.1 und 10 liegen, normal ist 1.0).

Ein GEM Image Bild erscheint also auf jedem Ausgabeger"at
im Verh"altnis zum Text gleich gro"s.

Das GEM Image Format ist nicht an eine spezielle Bildgr"o"se gebunden.
Leider speichern manche Grafik-Programme aber immer eine ganze Grafikseite
ab, erzeugen also einen wei"sen Rand um das Bild. In diesem Fall
ist es g"unstig, wenn das Bild in der linken unteren Ecke plaziert ist.
Plaziert man es an anderer Stelle, so
verschiebt es sich bei jeder Vergr"o"serung und Verkleinerung, da diese
sich ja auf die ganze Darstellung (evtl. mit wei"sem Rand) bezieht.
Will man auf Nummer sicher gehen, so kann man den wei"sen Rand
des Bildes auch mit
\verb|GEM_UTIL.PRG| abschneiden.

\goodbreak
Eine typische Anwendung von \verb|.img|--Dateien sieht z.\ B.\ wie folgt aus:

\nopagebreak
\begin{verbatim}
     \begin{draw}{280.00}{270.00}{Ich bin Tiger (GEM Image)}
       \put(0.00,0.00){\special{CS!g 1 /tex/bilder/img/tiger.img}}
     \end{draw}
\end{verbatim}

\goodbreak
oder auch einfach nur:

\nopagebreak
\begin{verbatim}
     % Das Macro, falls DRAW.STY nicht eingebunden wurde:
     \def\GemImage#1#2#3{\leavevmode
                \vbox to #1{\vfil \hbox to #2{\special{CS!g 1.0 #3}\hfil}}}
     % Das Bild:
     \GemImage{9.35cm}{15cm}{/tex/bilder/img/tiger.img}

     % Und noch ein lustiges Macro fuer ICONs:
     \def\icon#1{\GemImage{1.3cm}{1.6cm}{/tex/bilder/img/#1.img}}
     % mit einer Anwendung:
     \icon{muell}
\end{verbatim}

Die Routinen sind ab Version \verb|2.9.28cs| v"ollig neu programmiert.
Sie liefern jetzt auf jedem Ger"at in jeder beliebigen Vergr"o"serung
ein streifenfreies, sattes Bild. Es ist nicht mehr notwendig,
und hat hier auch keine sichtbare Wirkung mehr, Bilder mit 
\verb|GEM_UTIL|
intensiver zu machen.

Sollte Ihnen das Bild aber vielleicht auf dem Nadel- oder Tintenstrahldrucker
zu intensiv erscheinen, so steht im Moment auch noch die alte Routine zur
Verf"ugung:

\section*{Einbinden von \protect\verb|.img|--Dateien (GEM Image)
          -- alte Version}

GEM Image Dateien k"onnen auch mit dem Befehl \verb|\special{CS!G f name}|
eingebunden werden. Dieser wirkt "ahnlich wie \verb|\special{CS!g f name}|,
jedoch wird auf die alte Weise nur jeweils ein Pixel auf dem Drucker
f"ur jeden schwarzen Bildpunkt gesetzt.
Dadurch wirkt das Bild eventuell nicht ganz so fett.

Diese Art der Einbindung ist aber nicht nur langsamer, sondern hat auch
einige Probleme, die bei der erstgenannten (neuen) Einbindung nicht auftreten:

Diese Umrechnung auf einheitliche Gr"o"se kann bei manchen Bildern
bei manchen Umrechnungsfaktoren unsch"one Ergebnisse bringen. So ist es
z.\ B.\ m"oglich, da"s das Bild von einem hellen oder dunklen Gittermuster
"uberlagert scheint.
Durch Wahl von geschickten Umrechnungsfaktoren kann man dies (jeweils f"ur
ein spezielles Ausgabeger"at) vermeiden.

Will man diese geschickte Wahl
nicht selber aust"ufteln, so kann man die DVI-Treiber durch Angabe eines
um 1000 erh"ohten Faktors dazu bewegen, selbst einen g"unstigen Faktor zu
suchen. Gibt man also z.\ B.\ 1000.5 statt 0.5 an, so sucht der DVI-Treiber
selbst einen g"unstigen Faktor in der N"ahe von 0.5. Dabei wird nat"urlich die
Gr"o"se des Bildes ver"andert. Das sch"one Aussehen wird also mit einer
vermutlich falschen Gr"o"se des Bildes erkauft.

Gelegentlich ist ein sch"ones Aussehen nur im letzten Schritt in der h"ochsten
Auf"|l"osung wichtig, und f"ur die niedrigeren Auf"|l"osungen m"ochte man
lieber die richtige Gr"o"se haben. Hier kann man durch addieren eines
Vielfachen von 1000 bewirken, da"s die Korrektur des Faktors erst bei
gro"sen Druckerauf"|l"osungen einsetzt. Gibt man in obigen Beispiel
2000.5 an, so findet die Anpassung des Faktors nur dann statt,
wenn die Druckerauf"|l"osung mindestens das doppelte der Bild-Auf"|l"osung
betr"agt. Bei 3000.5 wird die Anpassung nur aktiv, wenn die Druckerauf"|l"osung
mindestens das dreifache der Bildauf"|l"osung betr"agt (usw.).

Fazit: Die Umrechnung von Pixel-Bildern (wie z.\ B.\ GEM Image) auf eine
andere Auf"|l"osung ist --- in der alten Version --- kritisch.
Im Einzelfall mu"s die f"ur das jeweilige Bild optimale Vorgehensweise
durch Ausprobieren ermittelt werden.

\section{Einbinden von \protect\verb|.gem|--Dateien (GEM MetaFile)}

{\bf Wichtig: F"ur diese Funktion brauchen Sie TOS~1.4 oder TOS~1.6 und Sie
m"ussen den normalen Bildschirmtreiber des TOS~1.4 oder TOS~1.6 benutzen.
Sie d"urfen also w"ahrend der Einbindung im DVI-Treiber keinen
Gro"sbildschirm-Treiber (au"ser original Atari), kein \verb|TURBO-ST|,
kein \verb|OVERSCAN|, usw.\ geladen haben.

Das gilt nicht nur f"ur das Ansehen am Bildschirm; auch beim Drucken brauchen
Sie den richtigen Bildschirm-Treiber!}

GEM MetaFiles k"onnen mit dem Befehl \verb|\special{CS!m f name}|
eingebunden werden.
Auch hier wird das Bild an seiner linken unteren Ecke (die sich aus den
\verb|extents| ergibt) positioniert, und kann mit dem Faktor \verb|f|
vergr"o"sert oder verkleinert werden.

Die Einbindung wurde eine Zeit lang ganz aus den Treibern herausgenommen.
Aufgrund heftiger Proteste wurde sie wieder eingebaut, produziert aber
jetzt bei jedem Treiber-Lauf eine Warnung.

Die direkte Einbindung von MetaFiles ist aus mehreren Gr"unden schlecht:
Die Einbindung funktioniert nicht bei PostScript und verletzt so das Prinzip
der Ger"ateunabh"angigkeit (DVI=DeViceIndependent). Weiterhin funktioniert
sogar das {\em Ausdrucken\/} nicht, wenn nur ein falscher
{\em Bildschirm\/}treiber im Rechner aktiv ist.

Als bessere Alternative bietet sich die Konvertierung nach GEM Image und
die anschlie"sende Einbindung als GEM Image an.

\section{Die Datei \protect\verb|draw.sty|}

Die \LaTeX-Documentstyle Option \verb|draw| vereinfacht die Handhabung der
Grafiken ein wenig. So k"onnen Sie nun z.~B.\ einfach:

\begin{verbatim}
     \begin{draw}{280.00}{270.00}{Ich bin Tiger (GEM Image)}
       \put(0.00,0.00){\special{CS!g 1 /tex/bilder/img/tiger.img}}
     \end{draw}
\end{verbatim}

statt

\begin{verbatim}
     \special{CS!r}\special{CS!u\the\unitlength}
     \begin{center}
       \begin{picture}(280.00,270.00)
         \put(0.00,0.00){\special{CS!g 1 /tex/bilder/img/tiger.img}}
       \end{picture}
       \nopagebreak
     \end{center}
     \nopagebreak
     \begin{center}Bild 1: Ich bin Tiger (GEM Image)\end{center}
     \medskip
\end{verbatim}

schreiben. Wenn Ihnen der \verb|draw| Style nicht zusagt, k"onnen Sie
nat"urlich auch gern etwas eigenes verwenden.

Ab \verb|draw.sty| Version 0.7 k"onnen Sie auch \verb|\label|, \verb|\ref|
und \verb|\pageref| mit den Bildern benutzen.

Betrachten Sie den \verb|draw| Style als Anregung, und nicht als fertiges
Produkt.

% Watch the protected verbatim and the '\_' :
\section{Das Hilfsprogramm \protect\verb|GEM\_UTIL.PRG|}

\verb|GEM_UTIL.PRG|
ist ein kleines Programm, mit dem GEM Image und MetaFiles manipuliert werden
k"onnen. Mit dem Programm l"a"st sich allerlei Unfug treiben, da bewu"st auf
allzu viele Sicherheitsabfragen verzichtet wurde (schlie"slich sollen die
Funktionen auch mit den meisten noch so ulkigen Files funktionieren).

Alle Funktionen operieren direkt auf den Dateien, d.\ h.\ es werden
keine Sicherheitskopien der Originale erstellt. Wenn Sie Sicherheitskopien
w"unschen, m"ussen Sie diese vorher selbst anlegen.

\subsection*{Manipulationen an GEM Image Files}

\nopagebreak
Im Header von GEM Image Files k"onnen die Breite und H"ohe eines einzelnen
Bildpunktes (Pixels) ver"andert werden.
F"ur ein Bild in der hohen Auf"|l"osung des Atari ST (640x400 Punkte)
ist ein Wert von $372 / 1000$ Millimeter normal.
Bilder von anderen Systemen, Scannern usw.\ k"onnen aber auch ganz andere Werte
haben.

Der Faktor 1.4, der in der Vergangenheit einiges an Verwirrung gestiftet hat,
ist ab Version 2.9.60 (das ist die erste Version, bei der das automatische
Installationsprogramm dabei ist) ersatzlos gestrichen. Dies bedeutet, da"s Sie
die Vergr"o"serungsfaktoren f"ur eingebundene Bilder neu einstellen m"ussen.
\verb|GEM_UTIL| ber"ucksichtigt das ab Version 2.0.

Nun ergeben sich die Abmessungen des Bildes ganz einfach aus der Gr"o"se und
Anzahl der Pixel.
Beispiel: Ein Bild von 100~Pixel Breite, wobei jedes Pixel 0.2~mm breit ist,
hat bei Einbindung mit `\verb|CS!g 1.0|' die Breite $0.2*100=20$~mm.
Bei Einbindung mit `\verb|CS!g 0.334|' ergibt sich die die Breite zu
$0.334*0.2*100=6.68$~mm.
Da das Bild auf jedes Ausgabeger"at speziell umgerechnet wird, ist die
Gr"o"se des Bildes auf jedem Dru"cker gleich!

Manche Grafikprogramme speichern neben dem Bild noch einen wei"sen Rand
mit ab, der dann bei der Positionierung des Bildes l"astig ist.
Dieser Rand kann von dem Programm entfernt werden.

Wenn Ihnen das GEM Image Bild auf dem Papier zu schwach erscheint,
k"onnen Sie das Bild auch intensiver machen. Die Funktion verdoppelt die
Anzahl der schwarzen Punkte in jeder Bild-Zeile und -Spalte. Die Gr"o"se
des Bildes bleibt dabei gleich, da die Funktion die Header-Informationen
selbst"andig anpa"st.
Diese Funktion ist f"ur die neue Version der GEM-Einbindung wirkungslos.

\subsection*{Manipulationen an GEM MetaFiles}

\nopagebreak
Die wichtigste Manipulation an GEM MetaFiles ist das Eintragen der
korrekten "`Extents"', die leider von vielen Grafikprogrammen gar nicht oder
nicht richtig gesetzt werden.

Die Extents sollten Sie am besten von \verb|GEM_UTIL.PRG| automatisch
aus den Grafik-Informationen des MetaFiles berechnen lassen. Dazu schaut
das Programm in allen Grafikbefehlen die benutzten X- und Y-Koordinaten nach
und berechnet das Minimum und Maximum aller dieser Werte.

Weitere Manipulationen am MetaFile Header sind in der Regel weder notwendig
noch empfehlenswert.

\subsection*{Konvertieren von GEM MetaFiles in GEM Image Files}

\nopagebreak
{\bf Wichtig: F"ur diese Funktion von \verb|GEM_UTIL|
brauchen Sie TOS~1.4 oder TOS~1.6 und Sie m"ussen
den normalen Bildschirmtreiber des TOS~1.4 oder TOS~1.6
benutzen.
Sie d"urfen also w"ahrend der Konvertierung keinen Gro"sbildschirm-Treiber 
(au"ser original Atari), kein \verb|TURBO-ST|, kein \verb|OVERSCAN|,
usw.\ geladen haben.}

Nach der Konvertierung k"onnen die entstandenen Image files dann unter jeder
beliebigen TOS Version weiter bearbeitet und eingebunden werden.

"Ubrigens war \verb|GEM_UTIL| meines Wissens das erste Programm, das MetaFiles
nach Image konvertieren kann. Vielleicht suchten Sie so etwas schon lange.

Bei der Konvertierung kann man eine Drucker-Auf"|l"osung einstellen, auf die
das konvertierte Bild optimiert wird. Diese sollte ein m"oglichst glatter
Teiler der tats"achlichen Auf"|l"osung sein. Beispiel: F"ur den Epson FX-80
in 240x216 dpi w"ahlt man die Konvertierung in 120x108 dpi.

Die Auf"|l"osung sollte normalerweise ein glatter Teiler der Drucker-Auf"|l"osung
des Druckers sein, auf dem das fertige End-Resultat optimal aussehen soll.
Auf"|l"osungen zwischen 100 und 200 dpi kommen normalerweise auch mit
Text-Beschriftungen und F"ullmustern noch einigerma"sen zurecht. Wollen Sie
dagegen maximale Ausgabe-Qualit"at, und haben Sie keine Text-Funktionen im
MetaFile benutzt, so k"onnen Sie auch bis zur Auf"|l"osung des Druckers
hinaufgehen.

Zus"atzlich kann eine Vergr"o"serungsfaktor eingestellt werden, der dann
w"ahrend der Konvertierung ohne Qualit"atsverlust wirksam wird. Nur diesen
sollten Sie nach M"oglichkeit f"ur die Verg"o"serung des Bildes nutzen,
und das konvertierte Bild dann ohne nochmalige Vergr"o"serung mit
'\verb|CS!g 1.0|' einbinden.
(Bitte erschrecken Sie nicht, wenn das Bild als GEM Image etwas gr"o"ser
als erwartet ist. Bei der Konvertierung wird ein kleiner wei"ser Rand
um das Bild erzeugt, damit auch Objekte, die auf dem Rand liegen,
noch komplett mitkonvertiert werden.)

Eine kleine Einschr"ankung bei der automatischen Berechnung der \verb|extents|
besteht derzeit noch: Bei Text-Funktionen im MetaFile wird nur die
Position, nicht aber die Abmessungen des Textes erkannt. So kann es sein,
da"s Text, der z.\,B. rechts weit "uber die Zeichnung hinausragt, abgeschnitten
wird.
In diesem Falle setzen Sie bitte, nach jeder automatischen Berechnung der
Extents, bei den Extents den maximalen X-Wert von Hand etwas herauf.

\subsection*{Erzeugen von \TeX--Einbindungen f"ur Bilder}

Wie oben beschrieben ist die Einbindung von Bildern in \TeX\ eigentlich
recht einfach.
Um \TeX\ die richtige Gr"o"se mitzuteilen mu"ste man diese jedoch bisher aus
den Werten im Header errechnen oder auf dem Papier nachmessen.

\verb|GEM_UTIL| kann ab Version 1.4 nun auch automatisch eine \TeX-Einbindung
erstellen, die dann schon die richtigen Werte f"ur die Gr"o"se des Bildes
enth"alt. Die von
\verb|GEM_UTIL|
erzeugte Datei sieht z.~B.\ wie folgt aus:

\begin{verbatim}
       % TeX include file for 'e:/tex/bilder/img/tiger.img'
       % produced by GEM_UTIL Version 1.6.
       % Use with Atari PD TeX by Christoph Strunk.
       %
       % Call from your TeX file via:
       %
       % \input e:/tex/bilder/img/tiger.tex
       %
       \ifx\IncludeIMG\undefined\gdef\IncludeIMG#1#2#3{\leavevmode
        \vbox to #2{\vfil \hbox to #1{\special{CS!g 1.0 #3}\hfil}}}\fi
       %
       \IncludeIMG{100mm}{80mm}{e:/tex/bilder/img/tiger.img}
       % -eof-
\end{verbatim}

Die Datei wird dann einfach nur noch mit einem "`\verb|\input{<name>}|"'
oder "`\verb|\input <name>|"' in den \TeX--Text eingebunden (steht auch noch
einmal in der Datei selber).

\section{Einbinden von PostScript-Grafik}

Auf mehrfachen Wunsch kann \verb|DVI_PS| ab Version 2.9.63 PostScript-Grafiken
einbinden. Die Einbindung funktioniert allerdings {\em nur\/} bei PostScript;
alle anderen Treiber lassen hier freie Stellen auf dem Papier.

Die PostScript-Grafiken m"ussen im EPS-Format (Encapsulated PostScript)
vorliegen. Das bedeutet, da"s als Grafiken nur solche PostScript-Files
im Betracht kommen, die die globale Umgebung der Seite nicht ver"andern,
und beispielsweise die folgenden Befehle nicht enthalten:

\begin{verbatim}
    initmatrix        copypage      initgraphics      exitserver
    setmatrix         erasepage     grestoreall       quit
    initclip
\end{verbatim}

Der Befehl \verb|showpage| sollte genau einmal am Ende der Datei stehen.
Dieser Befehl wird bei der Einbindung ignoriert, er erm"oglicht es aber, die
Bilder auch direkt, also ohne erst eine Einbindung erstellen zu m"ussen,
auf den Drucker zu schicken. Diese Bilder funktionieren dann also sowohl
"`stand-alone"' als auch in der \TeX-Einbindung.

Die Einbindung ist mit der Hilfsdatei `\verb|epsf.tex|' ganz einfach, da
\TeX\ dann selbst die Gr"o"se der Grafik aus dem {\tt BoundingBox} Kommentar
ermittelt:

\begin{verbatim}
    \input epsf               % einmal am Anfang der Datei
    \epsfbox{filename}        % einbinden der Grafik-Datei 'filename'
\end{verbatim}

Bitte bedenken Sie aber, da"s die PostScript-Einbindung das Prinzip der
Ger"ateunabh"angigkeit verletzt
(\verb|DVI|={\bf d}e{\bf v}ice-{\bf i}ndependent=ger"ateunabh"angig).
Sie sollte daher nur dann eingesetzt werden,
wenn andere M"oglichkeiten nicht zum Erfolg f"uhren.

\section{Grafiken im Lindner-\protect\TeX-Format}

Ab Version 2.9.61 wird die GEM Image Einbindung des Lindner-\TeX\ erkannt.
Sie k"onnen also jetzt DVI-Files dieser \TeX-Version direkt komplett mit
Grafiken ausdrucken.

\section{Grafiken mit {\protect\tt tpic-$\backslash$special}s}

Ab Version 3.09 werden die vom \verb|eepic|-Style benutzten 
\verb|tpic-\special|s unterst"utzt, allerdings nur mit kleinen
Einschr"ankungen: Das Shading funktioniert nur bei Kreisen und
Ellipsen und erkennt keine Graustufen sondern nur Schwarz oder Wei"s,
und die Abst"ande bei "`dotted~line"' und "`dashed~line"' k"onnen nicht
eingestellt werden.

% -eof-
