summaryrefslogtreecommitdiff
path: root/dviware/dvi-augsburg/manual/dvigra.tex
diff options
context:
space:
mode:
Diffstat (limited to 'dviware/dvi-augsburg/manual/dvigra.tex')
-rw-r--r--dviware/dvi-augsburg/manual/dvigra.tex761
1 files changed, 761 insertions, 0 deletions
diff --git a/dviware/dvi-augsburg/manual/dvigra.tex b/dviware/dvi-augsburg/manual/dvigra.tex
new file mode 100644
index 0000000000..d0dd9cafb5
--- /dev/null
+++ b/dviware/dvi-augsburg/manual/dvigra.tex
@@ -0,0 +1,761 @@
+\chapter{Die Grafikbefehle von \dvi\ und \dvilw}
+Als letzter Aspekt der Treiber bleibt noch die Erkl"arung der
+Gra\-fik\-m"og\-lich\-kei\-ten. \dvi\ und \dvilw\ zeichnen sich hier durch
+besondere F"ahigkeiten aus. Sowohl zwei Fremdgrafikformate, als auch
+ein Satz von eingebauten Befehlen werden unterst"utzt. Um die
+Kompatibilit"at des \TeX-Eingabetextes zu wahren, werden alle Grafikbefehle
+von \TeX\ mittels {\tt $\backslash$special}-Befehlen angesteuert, auch
+die eingebauten Befehle.
+
+\section{Specials}
+\attention Um unn"otige Wiederholungen zu vermeiden, wird im folgenden jeweils nur
+der {\tt $\backslash$special}-Text beschrieben, obwohl in der Eingabedatei
+jeweils
+
+\begin{compout}
+$\backslash$special\{{\it \<befehl> \<argumente>}\}
+\end{compout}
+
+stehen mu"s, um die korrekte \TeX-Syntax zu erhalten.
+
+\attention Beachten Sie bitte unbedingt die Klein-/Gro"sschreibung der
+Befehle, da die Treiber bei unbekannten Specials keine Warnung ausgeben
+und bei eigenen Befehlen Klein-/Gro"sschreibung beachten! Falls Sie
+also keine Grafikausgabe erhalten, sollten Sie einmal die genaue
+Syntax beachten.
+
+\subsection{Fremdgrafikformate}
+Zwei Fremdformate werden unterst"utzt. Zum einen die \imgg\ von
+{\sc Gem}, zum anderen \ps.
+
+\subsubsection{\it graphic~img~\<filename>}
+An der aktuellen Seitenposition wird die in der Datei {\it \<filename>}
+gespeicherte \img-Grafik eingef"ugt. Die linke obere Ecke der Grafik
+kommt dabei am sog.\ \glqq current point\grqq\ zu liegen. Der \glqq
+current point\grqq\ wird nicht ver"andert. Der Benutzer hat selbst von
+\TeX\ aus f"ur Platz f"ur die Grafik zu sorgen.\seealso{\ref{lmacro}}
+
+\subsubsection{\it ps~\<filename>}
+An der aktuellen Position im \ps-Code wird der Inhalt der Datei
+{\it \<filename>} eingef"ugt. Naturgem"a"s funktioniert dieser
+Befehl nur mit \dvilw, da \dvi\ (vorerst) keinen eingebauten
+\ps\ Interpreter hat. Es liegt vollkommen in Ihrer Hand, was Sie
+in die Datei schreiben\seealso{\ref{lmacro}}. Sie sollten aber auf den
+Aufbau der \TeX-Seite achten, d.h.\ mit \verb|\hbox|- und \verb|\vbox|-Befehlen
+gen"ugend Platz f"ur die Grafik reservieren. Der Inhalt der Datei
+wird "ubrigens in ein \verb|gsave|/\verb|grestore|-Paar eingebunden und der
+\verb|showpage|-Operator lahmgelegt, so da"s der \TeX-Teil der Ausgabeseite
+nicht manipuliert werden kann.
+
+\subsubsection{\it postscript~\<commands>}
+Die \ps-Befehle aus {\it \<commands>} werden in das \ps-Pro\-gramm
+ein\-ge\-f"ugt, das die aktuelle Druckseite beschreibt. Sehr geeignet f"ur
+Unsinn jeglicher Art! Auch dieser Befehl ist nur unter \dvilw\ verf"ugbar.
+Ein Anwendungsbeispiel f"ur diesen Befehl ist folgender \TeX/\LaTeX-Code:
+
+\begin{verbatim}
+\vbox to 100bp{\vss % a bp is the same as a PostScript point
+\special{postscript newpath 0 0 moveto 100 100 lineto
+354 0 lineto closepath gsave 0.8 setgray fill grestore
+stroke}}
+\end{verbatim}
+
+Das Ergebnis ist Abbildung~\ref{llitps}. Das Beispiel stammt "ubrigens aus
+der Anleitung von {\tt DVIPS} von Tomas Rokicki. Die Befehle werden "ubrigens
+zur Sicherheit in ein \verb|gsave|/\verb|grestore|-Paar eingebunden.
+
+\begin{figure}[hbtp]\centering
+\vbox to 100bp{\vss % a bp is the same as a PostScript point
+\special{postscript newpath 0 0 moveto 100 100 lineto
+394 0 lineto closepath gsave 0.8 setgray fill grestore
+stroke}}
+\caption{Anwendungsbeispiel f"ur das {\it postscript\/}-Special}\label{llitps}
+\end{figure}
+
+\subsubsection{\it \"~\<commands>}
+Bedeutung wie {\it postscript~\<commands>} und nur aus Kompatibilit"atsgr"unden
+zu {\tt DVIPS} von Tomas Rokicki vorhanden.
+
+\subsubsection{\it ps:~\<commands>}
+Die \ps-Befehle aus {\it \<commands>} werden in das \ps-Pro\-gramm
+ein\-ge\-f"ugt, das die aktuelle Druckseite beschreibt. Sehr geeignet f"ur
+Unsinn jeglicher Art! Auch dieser Befehl ist nur unter \dvilw\ verf"ugbar.
+Die \ps-Befehle werden "ubrigens
+{\it nicht\/} zur Sicherheit in \verb|gsave| und \verb|grestore| eingebunden,
+so da"s Sie wirklich Unsinn anstellen k"onnen. Die Anzahl der Doppelpunkte
+im {\it ps:\/}-Kommando ist "ubrigens --- wiederum aus Kompatibilit"atsgr"unden
+--- freigestellt.
+
+In Bild~\ref{lps2} folgt noch ein Beispiel f"ur dieses Special, das wiederum der Anleitung
+von {\tt DVIPS} von Tomas Rokicki entnommen wurde. Wie im Original wird auch
+hier auf jeglichen Kommentar verzichtet!
+
+\begin{quote}
+\begin{verbatim}
+\def\rotninety{\special{ps:currentpoint currentpoint
+translate 90 rotate neg exch neg exch translate}}
+\font\huge=cmbx10 at 14.4truept
+\setbox0=\hbox to0pt{\huge A\hss}\vskip16truept
+\centerline{\copy0\special{ps:gsave}\rotninety\copy0
+\rotninety\copy0\rotninety\box0\special{ps:grestore}}
+\vskip16truept
+\end{verbatim}
+\end{quote}
+
+\begin{figure}[hbtp]
+{\def\rotninety{\special{ps:currentpoint currentpoint translate 90
+rotate neg exch neg exch translate}}\font\huge=cmbx10 at 14.4truept
+\setbox0=\hbox to0pt{\huge A\hss}\vskip16truept\centerline{\copy0
+\special{ps:gsave}\rotninety\copy0\rotninety\copy0\rotninety
+\box0\special{ps:grestore}}\vskip16truept}
+\caption{Spa"s mit \ps}\label{lps2}
+\end{figure}
+
+\subsubsection{\it PSFile=\<filename> llx=\<llx> lly=\<lly> urx=\<urx> ury=\<ury> rwi=\<rwi>}
+"Ahnlich dem {\it ps}-Special wird an der aktuellen Position im \ps-Code
+der Inhalt der Datei {\it \<filename>} eingef"ugt. Allerdings mu"s "uber eine
+Reihe weiterer Parameter die Bounding Box des Bildes und die tats"achliche
+Breite des Bildes in \ps-Punkten angegeben werden. Aus diesen Angaben wird
+dann das Bild richtig skaliert und positioniert. Direkte Verwendung dieses
+Special erscheint nicht sinnvoll, da "uber die {\tt EPSF.STY}-Macros f"ur
+\TeX\ und \LaTeX\ die Verwendung automatisiert ist. Lesen Sie hierf"ur
+bitte Abschnitt~\ref{lepsf}.
+
+Naturgem"a"s funktioniert das {\it PSFile\/}-Special nur mit \dvilw, da
+\dvi\ (vorerst) keinen eingebauten \ps\ Interpreter hat.
+
+\subsection{Eingebaute Grafikbefehle}
+Die eingebauten Grafikbefehle werden alle durch {\tt gr} eingeleitet.
+Danach kann eine Liste von verschiedenen Grafikbefehlen kommen, die jeweils
+durch \cstok{;} getrennt werden m"ussen. Nat"urlich kann man auch jeden
+Befehl einzeln mit {\tt $\backslash$special\{gr \dots\}} abschicken.
+
+\attention Die direkte Angabe der \verb|\special|-Befehle, so wie im Tutorial
+aus didaktischen Gr"unden geschehen, f"uhrt zu Problemen mit dem \verb|\put|-Befehl
+(siehe dazu Abschnitt~\ref{lbildmac}). Es wird dringendst empfohlen, die
+{\tt BILDMAC}-Macros zu verwenden!
+
+\attention Nachfolgend erkl"arte Befehle erwarten meistens Parameter eines
+bestimmten Typs. Es werden die Parameterbezeichnungen {\it real\/} f"ur
+Gleitpunktzahlen und {\it dimen} f"ur L"angenangaben in
+\TeX-"ahnlicher-Syntax (wie
+z.B.\ -5.33~{\it cm\/} oder 5.1~{\it pt\/}) bzw.\ ebenfalls
+Gleitpunkzahlen verwendet. Im Unterschied zu \TeX\ ben"otigen die Treiber
+zum korrekten Erkennen der Bema"sungseinheiten Leerzeichen zwischen
+syntaktischen Einheiten. So ist z.B.\ in \TeX\ die Angabe von
+\verb|1 truecm| zul"assig, mu"s aber in der Treibersyntax als \verb|1 true cm|
+geschrieben werden. Andererseits verstehen die Treiber als Zahlenwerte bei
+L"angenangaben Ausdr"ucke aus den vier Grundrechenarten und Klammern,
+w"ahrend \TeX\ wirklich eine Zahl erwartet.
+
+\attention Alle Einstellungen der Grafikparameter sind nur auf der
+Druckseite g"ultig, auf der sie ver"andert wurden. Durch einen Seitenumbruch
+werden alle Parameter wie durch ein {\tt setdefaults}-Kommando
+zur"uckgesetzt.
+
+\subsubsection{\%}
+Wie in \TeX\ dient das \%-Zeichen dazu, den Rest der Eingabezeile als
+Kommentar zu markieren.
+
+\subsubsection{def}
+Das Schl"usselwort {\tt def} dient zum Definieren von Variablen und
+Funktionen. Die Syntax einer Variablendefinition/-"anderung ist
+wie folgt:
+
+\begin{compout}
+def \<identifier>=\<expression>;
+\end{compout}
+
+wobei {\tt identifier} ein beliebiger Name ist. Falls der Name schon
+vorhanden sein sollte, wird der bisherige Wert durch die neue Definition
+"uberschrieben.
+
+Eine Funktionsdefinition sieht wie folgt aus:
+
+\begin{compout}
+def \<identifier>(\<p1>,$\dots$,\<pn>)=\<expression>;
+\end{compout}
+
+wobei {\tt identifier} ein noch nicht benutzter Name ist. Die Parameter
+{\tt p1} bis {\tt pn} d"urfen schon als Variablen benutzt sein. In diesem
+Fall wird aber eine lokale Kopie beim definierenden Ausdruck {\tt expression}
+verwendet, so da"s die Variable nicht ver"andert wird und auch nicht zur
+Definition herangezogen werden kann.
+
+Der definierende Ausdruck {\tt expression} hat in beiden F"allen folgenden
+rekursiven Aufbau:
+
+\begin{quote}\begin{verbatim}
+<expression>::=<expression>+<expression> |
+ <expression>-<expression> |
+ <expression>*<expression> |
+ <expression>/<expression> |
+ <factor>
+
+<factor>::=<real number> |
+ <identifier> |
+ <function evaluation> |
+ (<expression>)
+
+<function evaluation>::=<identifier(<exp1>,...,<expn>)
+\end{verbatim}\end{quote}
+
+Zahlreiche Variablen und Funktionen sind schon vordefiniert. Bitte
+informieren Sie sich durch Abbildung~\ref{lkofu}.
+
+\subsubsection{Tx,Ty}
+Es gibt zwei vordefinierte Funktionen {\tt Tx} und {\tt Ty}, die bei
+Angabe von Offsets bei {\tt setpoint} Kommandos dazu dienen, eine
+Koordinatentransformation nach folgender Formel durchzuf"uhren:
+
+\begin{compout}
+setpoint x[a,b] $\longrightarrow$ setpoint x[Tx(a,b),Ty(a,b)]
+\end{compout}
+
+Diese Funktionen sind als
+
+\begin{compout}
+def Tx(a,b) = a;\\
+def Ty(a,b) = b;
+\end{compout}
+
+vordefiniert. Im Normalfall wird also beim Erzeugen eines {\tt setpoint}-Offsets
+durch die Funktion {\tt Tx} der $x$-Koordinatenanteil ausgeblendet, durch
+die Funktion {\tt Ty} der $y$-Koordinatenanteil. Durch Umdefinition dieser
+Abbildung lassen sich Effekte wie Transformationen, Skalierungen, Drehungen,
+etc.\ auf einfache Weise erzeugen. Konsultieren Sie f"ur diese M"oglichkeiten
+am Besten ein Buch zur grafischen Datenverarbeitung wie {\em Computer Graphics:
+Principles and Practice\/} von Foley/van Dam/Feiner/Hughes.
+
+\subsubsection{undef}
+Mit dem Schl"usselwort {\tt undef} lassen sich mittels {\tt def}
+vereinbarte Variablen und Funktionen wieder l"oschen.
+
+\subsubsection{setdefaults}
+Stellt die wichtigsten Parameter auf die Standardwerte zur"uck, wie in
+Abbildung~\ref{la101} zu sehen. Au"serdem werden alle Variablen- und
+Funktionsdefinitionen gel"oscht!
+
+\begin{figure}[hbtp]
+\begin{center}
+\begin{tabular}{|l|l|}
+\hline
+Liniendicke & $0.4$ {\it pt\/}\\
+Linienmuster & durchgezogen\\
+Pfeilspitze & $1.2$ {\it pt\/} breit, $6.4$ {\it pt\/} lang\\
+Pfeilart & Geradenst"ucke, keine Ablenkung\\
+Punktdicke & $2.4$ {\it pt\/}\\
+Linienenden & abgerundet (round)\\
+Punktz"ahler & $0$\\
+\verb|\unitlength| & $1$ {\it pt\/}\\
+\hline
+\end{tabular}
+\end{center}
+\caption{Standardwerte der Grafikparameter}\label{la101}
+\end{figure}
+
+\subsubsection{setunitlength~\<{\it dimen}>}
+Stellt den multiplikativen Faktor auf den Offset des {\tt setpoint}-Befehls ein
+und bestimmt dadurch die Gr"o"se des Bildes. Beachten Sie bitte, da"s per
+Voreinstellung durch {\tt setdefaults} ein Wert von 1~{\it pt\/} eingetragen
+wird und deshalb auch relative Faktoren in der Form von Gleitpunktwerten
+jederzeit benutzt werden k"onnen. Bei Verwendung von expliziten Ma"sangaben
+wird dieser Faktor nat"urlich {\em nicht\/} aufmultipliziert!
+
+\subsubsection{setdotsize~\<{\it dimen}>}
+Stellt den Punktdurchmesser auf \<{\it dimen}>.
+
+\subsubsection{setlinewidth~\<{\it dimen}>}
+Stellt die Liniendicke auf \<{\it dimen}>.
+
+\subsubsection{setdash~{\it \<dimen>~\<dimen>~\dots}}
+Stellt das Linienmuster ein. Ohne Parameter wird das Muster zur"uckgesetzt
+auf durchgehend gezeichnete Linien. Ansonsten geben die Parameter abwechselnd
+die Strecken an, die schwarz bzw.\ wei"s gezeichnet werden. Wird nur
+ein Parameter angegeben, ist das Muster gleichf"ormig schwarz-wei"s, wie
+z.B.\ bei \verb|setdash 2pt|.
+
+\subsubsection{defpattern~{\it \<byte>,\<byte>,\<byte>,\<byte>,%
+\<byte>,\<byte>,\<byte>,\<byte>}}
+Definiert ein $8\times 8$-F"ullmuster f"ur den {\tt patclip}-Befehl.
+Die Parameter sind Dezimalzahlen im Bereich 0--255. Jedes gesetzte
+Bit in der Bin"ardarstellung der Zahl ergibt ein gesetztes Pixel im
+F"ullmuster. Jede Zahl stellt eine Zeile des F"ullmusters dar, wobei
+die erste Zahl der obersten Zeile entspricht. Es m"ussen zur Zeit genau
+acht Zahlen angegeben werden!
+
+\subsubsection{setlinecap~{\it \<plain\/$\vert$round\/$\vert$arrow\/%
+$\vert$wedge\/$\vert$triangle>~\<plain\/$\vert$round\/$\vert$arrow\/%
+$\vert$wedge\/$\vert$triangle>}}
+Stellt das Aussehen von Linienenden ein. Der erste Parameter steht f"ur
+den Linienanfang, der zweite f"ur das Linienende. Die f"unf m"oglichen
+Werte bedeuten \glqq plain\grqq\ f"ur eine abgeschnittene Linie,
+\glqq round\grqq\ f"ur eine Linie mit abgerundeten Enden,
+\glqq arrow\grqq\ f"ur eine Linie mit geschlossener ausgef"ullter Pfeilspitze,
+\glqq wedge\grqq\ f"ur eine Linie mit offener Pfeilspitze ohne Abschlu"s und
+\glqq triangle\grqq\ f"ur eine Linie mit geschlossener ungef"ullter
+Pfeilspitze.
+
+\subsubsection{setarrowsize~{\it \<dimen>~\<dimen>}}
+Stellt die Gr"o"se von Pfeilspitzen ein. Der erste Parameter gibt an, wie
+weit sich die Schenkel des Pfeils vom Stamm entfernen, der zweite Parameter
+gibt die L"ange der Pfeilspitze an.
+
+\subsubsection{setarrowshape~{\it \<real>~\<real>}}
+Stellt das Aussehen von Pfeilspitzen ein. Die Schenkel und der Abschlu"s der
+Pfeilspitzen bestehen aus drei B\'ezierkurven mit doppeltem Kontrollpunkt
+auf halber L"ange der Kurve.
+Die beiden Parameter beeinflussen die Lage dieser Kontrollpunkte, wobei
+der erste Parameter die Schenkel, der zweite den Abschlu"s steuert. Die
+Parameter sind Gleitpunktzahlen, wobei das Vorzeichen "uber die Richtung der
+Ablenkung der B\'ezierkurven entscheidet. Positive Werte ziehen die Schenkel und
+den Abschlu"s nach innen in Richtung Schwerpunkt des Dreiecks, das die Pfeilspitze
+umschlie"st. Negative Werte dr"ucken entsprechend nach au"sen. Bei Aufruf ohne
+Parameter wird auf die Standardeinstellung
+zur"uckgesetzt (Pfeil aus Geradenst"ucken), bei Aufruf mit einem Parameter wird nur der
+Schenkelparameter gesetzt.
+
+\subsubsection{setarrowline~{\it\<dimen>}}
+Bei Linienenden von Typ {\tt triangle} steuert dieser Befehl die Liniendicke der
+Pfeilspitze.
+
+\subsubsection{setpoint~{\it \<point number> \<repeated> \<position>}~\dots}
+Setzt einen oder mehrere der 500--1000 internen Kontrollpunkte (je nach
+Ger"at). Der Parameter {\it point number\/}
+steht dabei f"ur die Nummer des zu definierenden Punktes.
+
+Falls mit einem {\tt setpoint}-Kommando mehrere Punkte definiert werden,
+k"onnen die definierenden Ausdr"ucke durch Leerzeichen oder, falls wegen
+Eindeutigkeit notwendig, durch \cstok{,} getrennt werden.
+
+Der Parameter {\it repeated\/} ist ein Wiederholfaktor, der
+die Erzeugung mehrerer Punkte mit aufeinanderfolgenden Indizes bewirkt.
+Ein Wiederholfaktor hat folgenden rekursiven Aufbau:
+
+\begin{quote}
+\begin{verbatim}
+<repeated>::=<> |
+ <repeated> |
+ <identifier>=<expr1>..<expr2>:<expr3>
+\end{verbatim}
+\end{quote}
+
+Der Wiederholfaktor kann also optional (leer) oder verschachtelt
+angegeben werden.
+Ein einfacher Wiederholfaktor besteht aus einem noch nicht definierten
+Bezeichner und drei Ausdr"ucken, wobei der erste {\tt expr1} und zweite
+{\tt expr2} den Parameterbereich des Bezeichners definieren und der
+dritte die Anzahl zu erzeugender Punkte. Der Parameterbereich wird in
+"aquidistante Abschnitte zerlegt und der Bezeichner erh"alt f"ur jeden
+erzeugten Punkt einen dieser Werte im Parameterbereich. Durch Verwendung
+des Bezeichners im folgenden {\it position\/}-Parameter k"onnen die
+Punkte auf diese Weise an verschiedene Positionen gesetzt werden.
+
+Optional
+kann in eckigen Klammern ein Offset zur aktuellen Position angegeben
+werden, der folgendes Aussehen hat:
+
+\begin{quote}
+\begin{verbatim}
+<position>::=<> |
+ [<expr1>,<expr2>] |
+ [<expr1>,<expr2>,<rotate>]
+
+<rotate>::=<expression> |
+ <expression>[<ex1>,<ex2>]
+\end{verbatim}
+\end{quote}
+
+In eckigen Klammern wird durch die Ausdr"ucke {\tt expr1} und {\tt expr2}
+ein Verschiebungsfaktor in $x$- und $y$-Richtung angegeben.
+Dieser Wert wird entweder mit dem mittels {\tt setunitlength}
+eingestellten Wert multipliziert oder absolut durch eine bema"ste Gr"o"se
+angegeben und ergibt den tats"achlichen Offset. Falls ein {\it repeated\/}
+Parameter vorausgegangen ist, kann durch Angabe eines Rotationsfaktors
+der erzeugte Punkt noch gedreht werden. Der Bezugspunkt f"ur die Drehung
+ist entweder der letzte eingegebene Punkt oder der durch {\tt ex1}
+und {\tt ex2} spezifizierte Punkt. Gedreht wird in beiden F"allen um
+den Winkel {\tt expression}, der im Bogenma"s angegeben werden mu"s.
+
+F"ur Beispiele lesen Sie bitte das Grafiktutorial, Anhang~\ref{lagratut}.
+
+\subsubsection{{\it \<pointlist>}}
+F"ur die nun folgenden Befehle wird als Parameter jeweils eine Punktliste
+erwartet. Die Punktliste bezieht sich auf die mit {\tt setpoint} vergebenen
+Nummern, falls ein direkter Bezug auf diese Punkte gew"unscht ist. Einzelne
+Punkte in der Punktliste k"onnen wegen Eindeutigkeit durch \cstok{,}
+getrennt werden. Bei Eindeutigkeit ist das Trennen durch Leerzeichen statthaft.
+Sollen mehrere
+direkt hintereinander definierte Punkte verwendet werden, reicht die
+Angabe des Bereichs, z.B.\ 105--113. Bereiche und Einzelpunkte k"onnen
+in der Punktliste beliebig gemischt werden.
+
+Gibt man statt einer Punktnummer den Ausdruck $[p,q]\lambda$ an, so wird
+damit der Punkt $p(1-\lambda)+q\lambda$ spezifiziert, also ein Punkt auf der
+Verbindungsgeraden von $p$ und $q$. F"ur $\lambda$ darf ein beliebiger
+Ausdruck aus den vier Grundrechenarten und runden Klammern eingesetzt werden.
+Selbstverst"andlich k"onnen die Punkte $p$ und $q$ wieder von der Form
+$[r,s]\mu$ sein.
+
+Eine weitere M"oglichkeit zur Angabe eines Punktes besteht in einem Ausdruck
+der Form $(p,q)$. In diesem Fall hat der erzeugte Punkt die
+$x$-Ko\-or\-di\-na\-te
+von $p$ und die $y$-Koordinate von $q$. Auch diese Notation darf wieder
+beliebig verschachtelt verwendet werden. Als Kurznotation ist statt
+der Angabe von $p$ oder $q$ das Zeichen {\verb|@|} zul"assig, das den zuletzt
+definierten Punkt der Punktliste einsetzt.
+
+Durch Angabe von \cstok{\verb|@|},
+direkt gefolgt von einer Zahl {\it \<n\/>}, bezieht man sich auf die
+{\it \<n\/>} zuletzt eingegebenen Punkte. Ohne Angabe einer Zahl bezieht sich
+\verb|@| auf den in der Liste vorangehenden Punkt. Ist der Betrag von {\it \<n\/>}
+negativ, wird au"serdem der Punktz"ahler um den Betrag von {\it \<n\/>}
+zur"uckgesetzt.
+
+Als Besonderheit kann man eine Punktliste auch mit einigen speziellen
+Parametern versehen, die das Zeichnen von Teilobjekten und das wiederholte
+Zeichnen von Objekten erlauben. Ein Linienbefehl mit einer solchen modifizierten
+Punktliste hat dann folgendes Aussehen:
+
+\begin{compout}
+\<command> \<pointlist> \<pieces> \<repeated> \<position>
+\end{compout}
+
+Das Aussehen der Parameter {\tt repeated} und {\tt position} entspricht
+den gleichbezeichneten Parametern des {\tt setpoint}-Kommandos. Allerdings
+ist die Bedeutung dahingehend ge"andert, da"s das "ubergeordnete Kommando
+{\tt command} entsprechend dem {\tt repeat}-Faktor wiederholt wird, und zwar
+an den durch den {\tt position}-Parameter bezeichneten Stellen. Ein
+{\tt position}-Parameter darf nur angegeben werden, falls ein
+{\tt repeated}-Parameter vorausgeht!
+
+Der Parameter {\tt pieces} kann verschachtelt angegeben werden und hat
+folgendes Aussehen:
+
+\begin{quote}
+\begin{verbatim}
+<pieces>::=:<expr1>..<expr2> |
+ :<expr1>..<expr2><pieces>
+\end{verbatim}
+\end{quote}
+
+Durch die Parameter {\tt expr1} und {\tt expr2} wird nur ein Teil der
+Punktliste zum Zeichen des mit {\tt command} erzeugten Objektes
+herangezogen. Die Werte k"onnen sich auf die Punktnummern der Punkteliste
+beziehen und d"urfen in diesem Fall bei $n$ Punkten im Bereich
+$0\le{\tt expr}\le n$ liegen. Bei bema"sten Werten wird das Zeichnen
+des Objekts bis zur Position {\tt expr1} unterdr"uckt und dann nur bis
+Position {\tt expr2} gezeichnet.
+
+F"ur Beispiele lesen Sie bitte das Grafiktutorial, Anhang~\ref{lagratut}.
+
+\subsubsection{dot~{\it \<pointlist>}}
+Die Punkte der Punktliste werden mit dem voreingestellten Durchmesser
+als gef"ullte Kreise dargestellt.
+
+\subsubsection{spline~{\it \<pointlist>}}
+Zeichnet einen nat"urlichen Spline, der durch die Kontrollpunkte in {\it \<pointlist>}
+definiert ist.
+
+\subsubsection{hermitespline~{\it \<pointlist>}}
+In der Praxis hat man h"aufig das Problem, Kurven zeichnen zu m"ussen, die
+eine bestimmte Anfangs- und/oder Endrichtung haben sollen.
+Der Grafikbefehl zum Setzen eines solchen Hermiteschen Splines ist ist analog
+zum {\tt spline}-Befehl, nur da"s er eben {\tt hermitespline} hei"st.
+Bitte lesen Sie die Abschlu"sbemerkung zu Hermiteschen Splines!
+
+\subsubsection{lefthermitespline, righthermitespline {\it \<pointlist>}}
+Es ist auch m"oglich, nur an einem Ende des Splines die Richtung vorzugeben,
+und am anderen Ende des Splines eine nat"urliche Randbedingung zu fordern.
+Dies ist durch Verwendung von {\tt lefthermitespline} und {\tt
+righthermitespline} m"oglich.
+
+\attention Die Befehle zum Zeichnen Hermitescher Splines haben als Parameter
+eine Kontrollpunktliste, wobei der erste bzw.\ letzte bzw.\ erste und letzte
+Punkt der Liste eine Richtung vorgeben, die umso st"arker ausgepr"agt ist,
+je weiter der Punkt von der Kurve entfernt ist.
+
+\subsubsection{closedspline~{\it \<pointlist>}}
+Durch diesen Befehl wird ein glatter geschlossener nat"urlicher Spline
+gezeichnet, wobei der erste und letzte Punkt der Punktliste miteinander
+verbunden werden.
+
+\subsubsection{poly, closedpoly {\it \<pointlist>}}
+Diese beiden Befehle zeichnen einen offenen bzw.\ geschlossenen Polygonzug,
+der durch die jeweilige Punktliste definiert ist.
+
+\subsubsection{defclip, clip, whiteclip, patclip, endclip}
+Diese Funktionen dienen zum Definieren eines Clippfades, bez"uglich dessen
+Begrenzungslinie bis zum {\tt endclip}-Kommando folgende \TeX-
+und Grafik-Ausgaben
+gekappt werden. Die Begrenzungslinie {\em mu"s\/} geschlossen und in
+einem durchgehendem St"uck definiert sein,
+unterliegt aber ansonsten keinerlei Be\-schr"an\-kun\-gen. \glqq Durchgehendes
+St"uck\grqq\ soll in diesem Zusammenhang bedeuten, da"s man nicht
+nachtr"aglich auseinanderklaffende St"ucke mit einem dritten schlie"st,
+sondern die Umri"slinie \glqq wie mit einem Pinselstrich\grqq\ erzeugt.
+Durch Angabe von
+{\tt defclip} wird der Beginn des Clippfades markiert. Alle folgenden
+Angaben definieren diesen Clippfad, bis
+ein {\tt clip}-, {\tt whiteclip}- oder {\tt patclip}-Kommando die Eingabe
+des Clippfades
+abschlie"st. Alle folgenden \TeX-Ausgaben, {\em also auch jeder Text\/},
+werden bez"uglich dieses Pfades gekappt, bis das {\tt endclip}-Kommando
+diesen Modus beendet.
+
+Beim Clippen beeinflussen die drei Clipbefehle die Ausgabe wie folgt:
+
+\begin{tabular}{ll}
+\tt clip & bisherige Elemente der Zeichnung werden nicht verdeckt\\
+\tt whiteclip & der Clipbereich wird gel"oscht\\
+\tt patclip & der Clipbereich wird mit dem durch {\tt defpattern}\\
+ & definierten F"ullmuster ausgef"ullt
+\end{tabular}
+
+
+\subsubsection{input~''\it{filename}''}
+Der Treiber liest die Grafikkommandos aus der Datei {\it filename\/}.
+Die Angabe des Dateinamens mu"s den Konventionen des verwendeten
+Betriebssystems entsprechen. Die Definition eines Pfades f"ur solche
+externen Grafikdateien ist m"oglich. Lesen Sie dazu die entsprechenden
+Kapitel beim verwendeten Treiber!
+
+Bitte beachten\attention\ Sie, das das ''-Zeichen bei manchen Macropaketen wie
+den Anpassungen an die deutsche Sprache {\tt german.sty} eine Spezialfunktion
+bekommen hat, die die normale
+Verwendung wie beim {\tt input}-Befehl unm"oglich macht! In solchen F"allen
+mu"s vor Absetzen des {\tt input} die Spezialbedeutung ausgeschaltet
+werden. Bei {\tt german.sty} beschieht das z.B.\ durch eine Klammerung
+mit \verb|\originalTeX| und \verb|\germanTeX| Befehlen.
+
+
+\section{Macros zur Grafikeinbindung}\label{lmacro}
+Um Ihnen das Kopfzerbrechen zu ersparen, alle {\tt $\backslash$special}-Befehle
+zu lernen bzw.\ Ihre Grafiken auszumessen und mit {\tt $\backslash$hbox} und
+{\tt $\backslash$vbox} Befehlen zu hantieren, um Platz f"ur Grafiken zu
+schaffen, gibt es eine ganze Anzahl vorgefertigter \TeX-Macros, die Ihnen
+diese Arbeit abnehmen. Diese Macropakete sollten im Standard-Suchpfad von
+\TeX\ liegen und k"onnen mit {\tt $\backslash$input \<name>} geladen werden,
+wobei {\tt name} f"ur {\tt graphic}, {\tt bildmac}, {\tt epsf}, etc.\ steht.
+
+\subsection{Die {\tt GRAPHIC}-Macros}\label{lgraph}
+Die Datei {\tt GRAPHIC.TEX} enth"alt die Macros zur Verwendung von
+Grafiken im Fremdformat.
+
+\imgg\ werden auf dem Atari~ST zun"achst
+mit {\tt IMGTOTEX.TTP} bearbeitet. Dabei wird die gew"unschte Auf\/l"osung
+der Grafik in dpi erfragt und in der Datei eingetragen und eine Zusatzdatei
+erstellt, die die Gr"o"se des Bildes in \TeX-Einheiten enth"alt. Als
+Richtwert zur Auf\/l"osung kann bei Laserdruckern ein Wert von 150 dpi f"ur
+Grafiken, die den ganzen Atari Bildschirm enthalten, angegeben werden. Die
+erzielte Gr"o"se im Ausdruck liegt in der Breite in etwa richtig f"ur
+ein \LaTeX-Dokument. Als Beispiel siehe Abbildung \ref{ldis}. In der
+\TeX-Eingabe wird die bearbeitete Grafik dann
+mittels {\tt $\backslash$includegraphic\{filename\}} eingebunden. Der
+Platz f"ur das Bild wird automatisch freigehalten. Zudem kann das Bild
+behandelt werden, wie ein einzelner Buchstabe, d.h.\ zentriert werden, etc.
+
+An der Universit"at Augsburg wurde im Rahmen einer Diplomarbeit das
+objektorientierte Zeichenprogramm {\tt PCDRAW} erstellt, das \ps-Code
+als Ausgabe erzeugen kann. Zudem ist ein "ahnlicher Mechanismus, wie f"ur
+\imgg\ auf dem Atari eingebaut. Mittels des Men"upunktes \glqq Picture
+to \TeX\grqq\ wird interaktiv die beabsichtigte Bema"sung abgefragt,
+der \ps-Code des Bildes passend abgespeichert und eine Zusatzdatei
+f"ur \TeX\ erstellt. Das
+Bild kann dann mittels {\tt $\backslash$psdraw\{filename\}} in den
+Text eingebunden werden. Auch hier kann das Bild wie ein einzelner Buchstabe
+behandelt werden. Genaueres entnehmen Sie bitte der Beschreibung
+von \pcd.
+
+Falls man selbst in \ps\ programmiert, kann man sein fertiges Bild per Hand
+ausmessen und in eine zweite Datei die Gr"o"seninformation folgenderma"sen
+ablegen:
+
+\begin{quote}
+\begin{verbatim}
+\grwd = 108.160 mm
+\grht = 67.600 mm
+\end{verbatim}
+\end{quote}
+
+Dabei mu"s \verb|\grwd| die Breite des Bildes und \verb|\grht| die H"ohe
+des Bildes zugewiesen bekommen.
+Wenn z.B.\ die erste Datei mit dem \ps-Bild unter {\tt ESCHER.PS}
+und die zweite Datei mit der Gr"o"seninformation unter {\tt ESCHER.TEX}
+abgespeichert sind, so kann durch den Aufruf
+
+\begin{compout}
+\verb|\includeps{ESCHER}|
+\end{compout}
+
+dieses Bild in einen \TeX-Text eingebunden werden, wobei automatisch
+ge\-n"u\-gend Platz freigehalten wird. Ein Beispiel f"ur diese Technik ist
+Bild~\ref{ebild} von Peter Henderson und Peter Bumbulis frei nach
+Maurits C.\ Escher.
+
+\begin{figure}[hbtp]\centering
+\centerline{\includeps{texfish}}
+\caption{Eine fl"achenf"ullende Grafik nach Escher}\label{ebild}
+\end{figure}
+
+Bitte beachten Sie, da"s dieser Mechanismus zum Einbinden von Bildern, die
+mittels \ps\ erstellt wurden,
+inzwischen veraltet ist und nur aus Kompatibilit"atsgr"unden unterst"utzt
+wird. Neue Projekte sollten gleich auf die {\tt EPSF}-Macros zur"uckgreifen
+(siehe Abschnitt~\ref{lepsf}),
+die "ubrigens von Tomas Rokicki und Donald E.~Knuth f"ur {\tt DVIPS}, einen
+anderen \ps-\dvi-Treiber, entwickelt wurden.
+
+\subsection{Die {\tt BILDMAC}-Macros}\label{lbildmac}
+Die Datei {\tt BILDMAC.TEX} enth"alt einige Macros zur Verwendung der
+eingebauten Grafikbefehle. Die Entwicklung an diesen Macros dauert noch
+an. Die Macros k"onnen jedoch als eine Anregung verstanden werden, eigene
+Macros zu definieren.
+
+Trotz der noch andauernden Entwicklung empfehlen die Autoren dringend
+die Verwendung dieser Macros anstelle der ausf"uhrlichen
+\verb|\special|-Befehle, da durch jeden \verb|\special|-Befehl mit
+anschlie"senden Zeilentrenner ein Leerzeichen erzeugt wird, das das
+ordnungsgem"a"se Funktionieren des \verb|\put|-Befehls beeintr"achtigt.
+
+Die Kompatibilit"at von neuen {\tt BILDMAC}-Dateien zu vorherigen Versionen
+wird ab Treiberversion~2.2 weitestgehend bewahrt. Falls dies aus irgendeinem
+Grund einmal nicht m"oglich sein sollte, ist im Handbuch eine M"oglichkeit
+angegeben, dieselben Ausgaben mit anderen Konstruktionen zu erreichen.
+
+Das prinzipielle Schema der {\tt BILDMAC}-Befehle ist immer gleich.
+Die jeden Grafikbefehl einleitende \verb|\special{gr|-Sequenz und
+etwaiger Leerraum, der den Befehlen folgt, wird herausgefiltert.
+Auf diese Weise wird
+
+\begin{compout}
+\verb|\special{gr setpoint 0}|
+\end{compout}
+
+zu
+
+\begin{compout}
+\verb|\setpoint{0}|$\,${\rm ,}
+\end{compout}
+
+usw. Bitte drucken Sie sich die Datei {\tt BILDMAC.TEX} aus und sehen selbst,
+welche Befehle zur Verf"ugung stehen. Macros, die "uber Textersatz hinausgehen,
+sind jeweils (hoffentlich) kommentiert.
+
+\subsection{Die {\tt EPSF}-Macros}\label{lepsf}
+In den Dateien {\tt EPSF.TEX} bzw.\ {\tt EPSF.STY} liegen Macros vor, die
+zur Einbindung von Bildern in Encapsulated \ps\ dienen. Wenn man eine
+\ps-Datei vorliegen hat, sollte man zun"achst feststellen, ob
+sie in Encapsulated \ps-Form vorliegt. Falls dies nicht der Fall ist, mu"s man
+die Datei in diese Form bringen. Laden Sie also die Datei mit der Grafik
+in einen Editor. Sollte es dabei Probleme mit der Zeilenl"ange geben, hat
+das erzeugende Programm den \ps-Standardzeilentrenner LF verwendet und Sie
+m"ussen die Datei mit {\tt UNIX2DOS} oder {\tt CRLF}\footnote{Quellcode
+wird mitgeliefert}
+bearbeiten, so da"s eine Standard-ASCII-Datei entsteht, die Ihr Dru"cker
+"ubrigens problemlos verdaut. Haben Sie die Datei erfolgreich geladen,
+sollte unter den ersten paar Dutzend Zeilen ein \ps-Kommentar
+
+\begin{quote}
+\begin{verbatim}
+%%BoundingBox: 1 2 3 4
+\end{verbatim}
+\end{quote}
+
+oder zumindest
+
+\begin{quote}
+\begin{verbatim}
+%%BoundingBox: (atend)
+\end{verbatim}
+\end{quote}
+
+zu finden sein. Im zweiten Fall kopieren Sie den richtigen {\tt Bounding Box}
+Kommentar vom Dateiende an den Dateianfang und l"oschen die jetzt obsolete
+{\tt atend}-Zeile. Die Datei ist jetzt problemlos durch \TeX\ und
+\dvilw\ zu verarbeiten.
+
+Haben Sie keinen {\tt \%\%Bounding Box}-Kommentar gefunden, m"ussen Sie selbst
+einen einf"ugen. Dazu steht Ihnen die Hilfsdatei {\tt BB.PS} von Bernie Cosell zur
+Verf"ugung. Kopieren Sie den Inhalt von {\tt BB.PS} und Ihres Bildes
+in eine neue Datei und drucken dieses Bild aus. Dazu m"ussen Sie evtl.\ am
+Ende der Datei ein {\tt showpage}-Kommando einf"ugen. Das neue Bild hat jetzt
+einen Rahmen und die notwendigen Parameter f"ur die {\tt Bounding Box} stehen
+am linken unteren Ende der Grafik. Laden Sie nun erneut das urspr"ungliche Bild
+und f"ugen irgendwo am Anfang der Datei eine Zeile
+
+\begin{quote}
+\begin{verbatim}
+%%BoundingBox: 1 2 3 4
+\end{verbatim}
+\end{quote}
+
+ein, wobei Sie anstelle von {\tt 1}, {\tt 2}, {\tt 3} und {\tt 4} die
+richtigen Werte von Ihrem Testausdruck "ubernehmen. Falls Ihre Datei eine
+{\tt showpage}-Anweisung enthielt, brauchen Sie diese nicht entfernen, da
+das Ausdrucken der Grafik jetzt im Zusammenhang mit dem \TeX-Text geschieht
+und die entsprechenden Befehle von \dvilw\ erzeugt werden, d.h.\ das
+{\tt showpage} wird lokal von \dvilw\ umdefiniert.
+
+Zum Setzen des Bildes im laufenden Text ben"otigt \TeX\ einige Macros, die
+--- wie schon vorher erw"ahnt --- in der Datei {\tt EPSF.STY}
+gespeichert sind. Laden Sie diese Datei durch
+
+\begin{quote}
+\begin{verbatim}
+\input epsf.sty
+\end{verbatim}
+\end{quote}
+
+(\TeX) oder durch
+
+\begin{quote}
+\begin{verbatim}
+\documentstyle[...,epsf,...]{...}
+\end{verbatim}
+\end{quote}
+
+(\LaTeX). Sie k"onnen nat"urlich in \TeX\ auch die Datei {\tt EPSF.TEX}
+werwenden und sich die Endung beim \verb|\input|-Befehl sparen. Der
+Inhalt der Dateien ist gleich! Jetzt k"onnen Sie Ihr Bild durch
+
+\begin{quote}
+\begin{verbatim}
+\epsfbox{bild.ps}
+\end{verbatim}
+\end{quote}
+
+setzen lassen, wobei durch \TeX\ bzw.\ \LaTeX\ automatisch durch die
+{\tt Bounding Box}-Anweisung gen"ugend freier Platz gelassen wird.
+Au"serdem haben Sie die M"oglichkeit, das \ps-Bild in der Gr"o"se
+dem Text anzupassen. Dazu m"ussen Sie lediglich {\em vor\/} dem
+\verb|\epsfbox|-Kommando\footnote{Achtung: in "alteren Versionen der
+{\tt EPSF}-Macros hei"st $\backslash${\tt epsfbox}
+$\backslash${\tt epsffile}.} eines der Kommandos
+
+\begin{quote}
+\begin{verbatim}
+\epsfxsize=<dimen>
+\epsfysize=<dimen>
+\end{verbatim}
+\end{quote}
+
+absetzen, um das Bild horizontal bzw.\ vertikal zu skalieren. Der Parameter
+\verb|<dimen>| ist eine g"ultige \TeX-Ma"seinheit wie 150pt oder 5.7cm.
+Falls Sie
+beide Kommandos absetzen, hat das \verb|\epsfxsize|-Kommando Vorrang.
+Dadurch k"onnen keine Verzerrungen entstehen! Ein g"unstiger Wert f"ur die
+horizontale Skalierung ist z.B.\ f"ur \TeX\ \verb|\hsize| bzw.\ f"ur
+\LaTeX\ \verb|\textwidth|. Dadurch ist das Bild genauso breit, wie der
+umgebende Text.
+
+Bei Verwendung\attention\ von \LaTeX\ kann es bei manchen
+Environments notwendig sein, unmittelbar vor das \verb|\epsfbox|-Kommando ein
+\verb|\leavevmode|-Kom\-man\-do zu stellen. Sie werden die entsprechende
+Fehlermeldung bekommen und k"onnen ganz gelassen reagieren!
+
+Durch Absetzen des Befehls \verb|\epsfverbosetrue| {\em vor\/} den
+\verb|\epsfbox|-Be\-feh\-len k"onnen Sie sich die Gr"o"se der eingebundenen
+\ps-Grafiken am Bildschirm anzeigen lassen.
+
+