%format latexg

\documentstyle[din_a4,draw,german]{article}
\topmargin 0pt \headheight 0pt \headsep 0pt \topskip 0pt
\raggedbottom
\parindent 0pt
\parskip 5pt plus 2pt minus 2pt

\def\eDatum{22.02.1992}   % Erstellungsdatum dieses Dokumentes
\def\eVersion{3.50cs}     % Zugeh"orige DVI-Treiber Version
\def\uVersion{2.6}        % Zugeh"orige GEM_UTIL
\def\dVersion{0.9}        % Zugeh"origes draw.sty

\begin{document}

\begin{center}\LARGE\bf
                             Bilder in \TeX
\end{center}

\TeX\ ist ein System zum Satz von {\em Texten}. Gelegentlich m"ochte man
aber auch zur Illustration Bilder bzw. Grafiken in den Text einf"ugen.
Hier ergibt sich ein Problem: \TeX\ kennt "`von Hause aus"' keine Befehle
zum Erzeugen von Bildern im Text.

Um diesem Mi"sstand abzuhelfen kann man verschiedene Wege einschlagen.

\subsubsection*{\LaTeX--Grafik}

\LaTeX\ bietet mit Hilfe von speziellen Fonts einfache Grafikbefehle
an. Diese werden dann intern in Text-Befehle f"ur die speziellen (Linien-
und Kreis--Fonts) "ubersetzt.

Das Gute an dieser L"osung ist, da"s sie voll
portabel, d.\ h.\ von den verwendeten Rechnern und Ausgabeger"aten unabh"angig
und auch ohne Manipulationen an den Treibern "uberall verf"ugbar ist.

Dies wird aber mit einigen Nachteilen erkauft:
\begin{enumerate}
\item Es stehen nur eingeschr"ankte Grafik--M"oglichkeiten zur Verf"ugung.
      Man hat nur eine begrenzte Anzahl von erlaubten Geradensteigungen,
      und Kreisradien. Dies reicht f"ur einfache Grafiken sicher aus;
      schwerwiegender ist schon:
\item Der interne Speicher des \TeX--Systems wird stark beansprucht.
      Gr"o"sere Bilder passen einfach nicht mehr in den Speicher.
\end{enumerate}

\LaTeX--Grafik ist also "uberall da angebracht, wo wenige einfache Skizzen
bei guter Portabilit"at in den Text eingebunden werden sollen.

\subsubsection*{PiC\TeX--Grafik}

Die PiC\TeX--Grafik ist vom Konzept der \LaTeX--Grafik sehr "ahnlich. Man
arbeitet mit speziellen Fonts und bleibt daher portabel. PiC\TeX\ bietet
aber weit mehr und m"achtigere Befehle als die \LaTeX--Grafik.

Bei PiC\TeX\ treten bei gr"o"seren Bildern allerdings erhebliche
Speicherplatzprobleme auf; PiC\TeX\ mit \LaTeX\ zu benutzen ist
nur bei winzigen Bildern m"oglich. Diese nutzen das System dann aber
bei weitem nicht aus.

Au"serdem werden die \TeX-Laufzeiten bei komplizierteren Sachen
(glatte Linien, gef"ullte Fl"achen etc.) schnell unertr"aglich.
Auch die \verb|.DVI|-files werden recht gro"s.

PiC\TeX--Grafik ist also eigentlich nur f"ur PLAIN-Benutzer mit viel
freiem Speicherplatz, schnellem Rechner (und/oder gro"ser Geduld)
und gro"ser Festplatte sinnvoll.

\subsubsection*{Systemspezifische Grafikeinbindung}

Manche Systeme bieten die M"oglichkeit Grafik-Dateien in genormtem Format
(PostScript, HPGL, GKS, GEM Metafile, GEM Image etc.) "uber
\verb|\special|--Befehle
direkt einzubinden. Diese nutzen dann in der Regel die vorhandenen
Grafik-M"oglichkeiten voll aus, sind aber zu 
anderen Computersystemen nicht mehr kompatibel.
 
\subsubsection*{CS--Grafik}

Das weiter unten vorgestellte Konzept der CS-Grafik ist nicht mehr voll
portabel, da es mit \verb|\special|--Befehlen arbeitet. Allerdings nutzt
es auch keine spezifischen Eigenschaften eines speziellen Systems aus und
ist f"ur den Programmierer der Ger"atetreiber "uberall schnell und einfach
zu implementieren.

Das System st"utzt sich auf wenige \verb|\special|--Kommandos, die einfach
zu implementieren sind, und die Funktionen anbieten, die die \LaTeX--Grafik
nicht beherrscht: Linien in beliebigen Winkeln und verschiedenen Stilarten.
Daher ist es eine ideale Erweiterung der \LaTeX--Grafik.

Bei Ausgabetreibern, die keine \verb|\special|-Befehle unterst"utzen,
bleiben statt der Bilder freie Stellen auf dem Papier.

\bigbreak

\begin{center}\LARGE\bf
                          Grafik auf dem Atari ST
\end{center}

Diese Beschreibung wurde am \eDatum\ erstellt und bezieht sich auf
die DVI-Treiber der Version \eVersion\ und das \verb|GEM_UTIL| Programm
Version \uVersion.

Die DVI-Treiber der Public Domain TeX Implementation auf dem Atari ST
unterst"utzen die Befehle der CS-Grafik. Ab der Version 1.6cs werden auch
das Einbinden von \verb|.csg|--Files sowie eine Erweiterung der CS-Grafik
f"ur Bilder im GEM Image Format unterst"utzt.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                                             %
%  Noch einmal: Die komplette Dokumentation                                   %
%                                                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\input csg-doc

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newpage
\section{Grafik-Beispiele}

\begin{draw}{400.0}{250.0}{Die Sinusfunktion (CSG)}
 \put(0.0,0.0){\special{CS!i/tex/bilder/csg/sinus.csg}}
 \put(0072.68,0032.67){\makebox(0,0)[t]{\small -3}}
 \put(0115.12,0032.67){\makebox(0,0)[t]{\small -2}}
 \put(0157.56,0032.67){\makebox(0,0)[t]{\small -1}}
 \put(0200.00,0032.67){\makebox(0,0)[t]{\small 0}}
 \put(0242.44,0032.67){\makebox(0,0)[t]{\small 1}}
 \put(0284.88,0032.67){\makebox(0,0)[t]{\small 2}}
 \put(0327.32,0032.67){\makebox(0,0)[t]{\small 3}}
 \put(0060.67,0048.07){\makebox(0,0)[r]{\small -1.0}}
 \put(0060.67,0086.54){\makebox(0,0)[r]{\small -0.5}}
 \put(0060.67,0125.00){\makebox(0,0)[r]{\small 0.0}}
 \put(0060.67,0163.46){\makebox(0,0)[r]{\small 0.5}}
 \put(0060.67,0201.93){\makebox(0,0)[r]{\small 1.0}}
 \put(0200.00,0225.00){\makebox(0,0)[b]{\Large Die SINUS Funktion}}
 \put(0200.00,0012.50){\makebox(0,0)[t]{\normalsize X-Achse}}
 \put(0016.00,0125.00){\makebox(0,0)[l]{\normalsize 
   \shortstack{Y\\-\\A\\c\\h\\s\\e}}}
\end{draw}

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

\newpage
\ifx \GemImage \undefined \def\GemImage#1#2#3{\leavevmode
  \vbox to #1{\vfil \hbox to #2{\special{CS!g 0.7 #3}\hfil}}}\fi
%
% Das \verb|\icon|-Kommando zeigt bespielhaft, wie kleine Bilder in den
% flie"senden Text eingebunden werden k"onnen:
%
\newcommand{\icon}[1]{\GemImage{1.3cm}{1.6cm}{/tex/bilder/img/#1.img}}
%
Papier geh"ort nach der Benutzung nicht in den
\icon{muell} sondern ins \icon{papier}.
(Die beiden Icons wurden mit einem Snapshot-Accessory ausgeschnitten,
und mit \verb|GEM_UTIL| der wei"se Rand abgeschnitten.)

Sehr sch"on sind auch die mit dem neuen CSG Level~2 verf"ugbaren
neuen M"oglichkeiten:

\begin{center}
\unitlength 1pt
\begin{minipage}{100pt}
\begin{picture}(100,100)
\special{CS!r}\special{CS!u\the\unitlength}\special{CS!w1mm}
\put(50,50){\special{CS!a 50 50 0 30 300}}
\put(50,50){\special{CS!l 43.3  25}}
\put(50,50){\special{CS!l 43.3 -25}}
\put(60,75){\special{CS!d 5}}
\end{picture}
\end{minipage}
\begin{minipage}{160pt}\begin{center}
\large  Da kommt Freude auf: \\
\Huge   CSG Level 2
\end{center}\end{minipage}
\begin{minipage}{100pt}
\begin{picture}(100,100)
\special{CS!r}\special{CS!u\the\unitlength}\special{CS!w1mm}
\put(50,50){\special{CS!a 50 50 0 210 300}}
\put(50,50){\special{CS!l -43.3  25}}
\put(50,50){\special{CS!l -43.3 -25}}
\put(40,75){\special{CS!d 5}}
\end{picture}
\end{minipage}
\end{center}

\section*{Anhang: Struktur der GEM File Header}

Die Werte in den Image Files werden im Motorola-Format (erst high-Byte)
abgespeichert, die Werte in den MetaFiles genau umgekehrt.
(Wer sich das wohl ausgedacht hat \ldots\ )

\begin{verbatim}
struct img_header {   /* Header of GEM Image Files */
    WORD Version;     /* should be 1 */
    WORD Length;      /* Header Length in words (8) */
    WORD Planes;      /* Number of Bit-Planes (1) */
    WORD Pat_Len;     /* Length of Patterns (2) */
    WORD pix_wid;     /* Pixel width in 1/1000 mmm (372) */
    WORD pix_hgt;     /* Pixel height in 1/1000 mmm (372) */
    WORD pix_num;     /* Pixel per line ==> (pix_num+7)/8 Bytes per line */
    WORD scan_num;    /* Total number of lines */
} img_info;
\end{verbatim}

\begin{verbatim}
struct meta_header {      /* Header of GEM MetaFiles */
    WORD MinusOne;        /* Magic number  (-1) */
    WORD HeaderLength;    /* Number of words in header (24) */
    WORD mf_version;      /* MetaFile version (100 or 101) */
    WORD coord_type;      /* 2 = RasterCoordinates, 0 = NDC */
    /* optional info: may be 0 */
    WORD min_x;           /* extents of picture's surrounding rectangle */
    WORD min_y;           /* extents of picture's surrounding rectangle */
    WORD max_x;           /* extents of picture's surrounding rectangle */
    WORD max_y;           /* extents of picture's surrounding rectangle */
    WORD size_x;          /* page size in 1/10 mm */
    WORD size_y;          /* page size in 1/10 mm */
    WORD ll_x;            /* coordinates of page's lower left corner */
    WORD ll_y;            /* coordinates of page's lower left corner */
    WORD ur_x;            /* coordinates of page's upper right corner */
    WORD ur_y;            /* coordinates of page's upper right corner */
    WORD img_flag;        /* 1: file contains a bit image */
    WORD reserved[9];     /* (0) */
    /* zeroes up to header length */
} meta_info;
\end{verbatim}

\end{document}
