\documentstyle[11pt,german,dina4,colordvi,colordjc,parskip]{article} \begin{document} \thispagestyle{empty} \begin{center} {\huge\sf Die DVIDJC--Treiber} \Large\sf f"ur die Tintenstrahldrucker\\ DeskJet 500, DeskJet 500C und DeskJet 550C \large\sf Wolfgang R.~M"uller, Friedhelm Sowa\\ Heinrich--Heine--Universit"at D"usseldorf\\ Universit"atsrechenzentrum \end{center} \vfill \huge \hskip 30mm The Winner is ... \vspace{10mm} \loadcmykpic[lionc,lionm,liony,lionb] \centerline{\cmykpic[lionc,lionm,liony,lionb]} \vspace{10mm} \hskip 70mm ...~\Huge\bf\TeX \vfill \normalsize \newpage \begin{abstract} Die Treiberprogramme {\tt dvi500}, {\tt dvi500c} und {\tt dvi550c} unterst"utzen die von Jim Hafner und Tom Rokicki eingef"uhrten Spezifikationen zur Ausgabe von farbigem Text in einem \TeX{}--Doku"-ment. Eine Modifikation von {\tt colordvi.sty} war jedoch insofern notwendig, als die Kommandos zur Festlegung einer Farbe auf den Treiber {\tt dvips} abgestimmt waren. Diese "Anderung wird mit {\tt colordjc.sty} vorgenommen. Die Kompatibilit"at dieser nunmehr ger"ateunabh"angigen Definitionen zu {\tt dvips} ist sichergestellt. Zusammen mit {\sf BM2FONT}, Version 3.0 vom Januar 1994, besteht die M"oglichkeit, farbige Graphiken in den Text zu integrieren. Dazu wird in vier Programml"aufen das Bild in seine Farbkomponenten Cyan, Magenta, Gelb und Schwarz (cmyk) separiert. {\sf BM2FONT} erzeugt vier Abbildungen, die gleiche Abmessungen haben und "ubereinandergelagert werden. \end{abstract} \section*{Das dvidjc--Paket} Das Paket besteht aus dem Source--Code {\tt dvidjc.c}, einem Makefile f"ur {\sc Unix}--Systeme sowie den analogen Dateien f"ur den GNU C--Compiler und den Turbo--C--Compiler von Borland f"ur DOS--PC's. In den Unterverzeichnissen {\tt djgpp} und {\tt turbo-c} sind die ausf"uhrbaren Programme {\tt dvi500.exe}, {\tt dvi500c.exe} und {\tt dvi550c.exe} enthalten. Das Unterverzeichnis {\tt example} beinhaltet diese Dokumentation sowie alle erforderlichen Dateien, die zur Erzeugung dieser Dokumentation notwendig sind. F"ur {\sc Unix} und MS--DOS stehen entsprechende Prozeduren zur Verf"ugung. \begin{verbatim} bm2font texlion.gif -u2 -wn -dn -jn -pn -flionb -kk bm2font texlion.gif -u2 -wn -dn -jn -pn -flionc -kc bm2font texlion.gif -u2 -wn -dn -jn -pn -flionm -km bm2font texlion.gif -u2 -wn -dn -jn -pn -fliony -ky bm2font kreis.gif latex coldoc \end{verbatim} Es wird davon ausgegangen, da"s {\sf BM2FONT} Version 3.0 zur Generierung der Graphik--Zeichens"atze verwendet wird. Zum gegenw"artigen Zeitpunkt (Feberuar 1994) steht noch kein aktualisiertes Handbuch zur Verf"ugung. Aus diesem Grund erfolgt an dieser Stelle die Erl"auterung der Optionen {\tt -j} und {\tt -k}: \begin{table}[hbt]\centering \begin{tabular}{lp{120mm}} {\tt -j}& F"ur farbige Graphiken ist es erforderlich, da"s die Farbausz"uge gleiche Dimensionen haben. Bisherige Versionen von {\sf BM2FONT} haben umrahmende wei"se Fl"achen, die aus nicht gesetzten Pixeln bestehen, aus der Graphik entfernt. Dies ist bei Farbausz"ugen nicht sinnvoll, es mu"s also die Option {-jn} benutzt werden.\\ {\tt -k}& Hiermit wird f"ur die aktuelle Verarbeitung festgelegt, f"ur welche Grundfarbe der Auszug angefertigt werden soll. Es steht {\tt -kk} f"ur Schwarz, {\tt -kc} f"ur Cyan, {\tt -km} f"ur Magenta und {\tt -ky} f"ur Gelb. \end{tabular} \end{table} Sowohl das {\tt dvidjc}--Paket als auch {\sf BM2FONT} sind auf dem DANTE--Server {\tt ftp.dante.de} ver"-f"ug"-bar. In K"urze werden die Softwarepakete auch auf dem zur Zeit noch im Aufbau befindlichen FTP--Server {\tt ftp.rz.uni-duesseldorf.de} des Universit"atsrechenzentrums der Heinrich--Heine--Universit"at D"us"-sel"-dorf bereit stehen. Aus aktuellem Anla"s sei darauf hingewiesen, da"s die "Ubernahme der Pakete in eine Mailbox oder in den Bestand eines Public--Domain--Verlages nur vollst"andig inklusive der Dokumentationen erfolgen darf. \section*{Die Optionen der Treiber} Bei Aufruf der Treiber ohne Parameter wird eine "Ubersicht der unterst"utzten Optionen ausgegeben: \begin{verbatim} -s (default: 1 i.e. first in file) -c (default: 9999 i.e. all) -m (default: from DVIfile) -h (default: 78 (pixels) -v (default: 156 (pixels) -f (default: /usr/TeX/lib/tex/fonts/) -t (default: /usr/TeX/lib/tex/fonts/) -o (default: prn) \end{verbatim} Die Einstellungen f"ur den Offset sind mit {\tt testa4.tex} ermittelt worden. F"ur abweichende Papierformate trifft diese Voreinstellung unter Umst"anden nicht zu. Die Ausgabe geht bei Voreinstellung {\tt prn} unter MS--DOS auf den Printerport, unter {\sc Unix} nach {\tt stdout}. Es empfiehlt sich also unter {\sc Unix} {\tt dvi550c coldoc | lpr -Plpxyz -}, wenn die Ausgabe direkt auf Papier erfolgen soll. \section*{Farbe ausw"ahlen} "Ublicherweise bedient man sich {\tt colordvi.sty} von Jim Hafner und Tom Rokicki, um Farbe in \TeX{} zu bringen. Diese Makros sind jedoch auf den PostScript--Treiber {\tt dvips} ausgerichtet, der die CMYK--Anteile der im Stylefile vordefinierten Farben aus der Datei {\tt color.pro} entnimmt, w"ahrend als Literal zum Beispiel f"ur die Farbe \verb?\Red? im \verb?\special?--Kommando {\tt color push cmyk Red} geschrieben wird. Da nicht unbedingt vorauszusetzen ist, da"s zu einem DeskJet--Drucker {\tt color.pro} geh"ort, schien es sinnvoll zu sein, die Definition f"ur \verb?\newColor? so abzu"andern, da"s schon in der DVI--Datei die Information "uber die CMYK--Farbanteile enthalten ist. Dies wird in {\tt colordjc.sty} vorgenommen: \begin{verbatim} \def\newColor #1 #2{\expandafter\def\csname #1\endcsname##1{\special {color push cmyk #2}##1\special{color pop}} \expandafter\def\csname text#1\endcsname{\subdef{#1} \special{color #1}}}% \end{verbatim} Entsprechend sind die vordefinierten Farben mit zum Beispiel \begin{verbatim} \newColor Mahogany {0 0.85 0.87 0.35 } \newColor Maroon {0 0.87 0.68 0.32 } \newColor BrickRed {0 0.89 0.94 0.28 } \newColor Red {0 1 1 0 } \newColor OrangeRed {0 1 0.50 0 } \newColor RubineRed {0 1 0.13 0 } \newColor WildStrawberry {0 0.96 0.39 0 } \end{verbatim} \noindent festgelegt. Diese Farbanteile sind aus {\tt color.pro} entnommen. Zu Anfang eines \LaTeX{}--Dokuments setzten die dvidjc--Treiber also eine Stilbeschreibung voraus, die diese Modifikation aktiviert: \begin{center} \verb?\documentstyle[...,?\Green{{\tt colordvi,colordjc}}\verb?,...]{article}? \end{center} Um nun einen \Blue{Text} blau zu drucken, ist lediglich \Color{0 1 1 0 }{{\tt\char92{}Blue\char123{}Text\char125}} anzugeben. Der in den geschweiften Klammern gesetzte Text wird nach dem {\em push and pop}--Prinzip gef"arbt, soda"s auch eine \Red{Schachtelung \RoyalBlue{von} Farben} einfach m"oglich ist. Bei F"arbung gr"o"serer Textpassagen ist im Fall von Seitenumbr"uchen nicht gew"ahrleistet, da"s Kopf-- oder Fu"szeilen in der urspr"unglich vorgesehenen Farbe gedruckt werden, da die Farbwahl nicht an einen Zeichensatz gebunden ist, sondern auf den Text wirkt, der zwischen den Operationscodes f"ur \verb?\special? in der DVI--Datei steht. \section*{Farbige Bilder} Die Integration von farbigen Abbildungen in \TeX{} und \LaTeX{} kann in der gegenw"artigen Version nur "uber Farbausz"uge erfolgen, die mit {\sf BM2FONT} erzeugt wurden. Im Augenblick ist noch nicht entschieden, ob eine Unterst"utzung der \verb?\special?--Kommandos der Treiber aus dem em\TeX{}--Paket implementiert werden soll oder auf eine normierte Schnittstelle gewartet wird. In {\tt colordjc.sty} sind die Makros \verb?\cmykpic? und \verb?\fcmykpic? definiert, die die Farbausz"uge mit oder ohne schwarze Umrandung "ubereinander setzen. Als Argumente der Makros werden die Namen der Farbausz"uge, getrennt durch Kommata, erwartet. Zuvor sind mit \verb?\loadcmykpic? die Makros zum setzen der Ausz"uge zu laden. \begin{center} \verb?\loadcmykpic[fractc,fractm,fracty,fractb]? \end{center} \loadcmykpic[fractc,fractm,fracty,fractb] \small \begin{tabular}{|c|c|} \hline &\\ \cmykpic[fractc,fractm,fracty,fractb]& \fcmykpic[fractc,fractm,fracty,fractb]\\ \verb?\cmykpic[fractc,fractm,fracty,fractb]?& \verb?\fcmykpic[fractc,fractm,fracty,fractb]?\\ \hline \end{tabular} \normalsize Wie bereits erw"ahnt, werden vom Treiber {\tt dvips} die modifizierten Kommandos zur Farbauswahl unterst"utzt. Der generierte PostScript--Code unterscheidet sich jedoch in der Wirkung bei der Ausgabe von den Ausdrucken, die mit den dvidrv--Treibern erzeugt werden, wenn explizit --- wie im Fall von Farbbildern --- Fl"achen in den Grundfarben Cyan, Magenta, Gelb oder Schwarz "ubereinander gesetzt werden. Dazu ein Beispiel, wie es von den dvidjc--Treibern erzeugt wird: \input kreis \unitlength1mm \begin{center} \begin{picture}(127,52) \put(0,12){ \vbox to 30mm{\hsize=30mm\Yellow{\hrule height 30mm depth0pt}\vskip-30mm \hrule height0pt depth0pt\vfill \ \hfill{\Magenta{\huge\TeX}}\hfill\ \vfill}} \put(35,17){\Cyan{\copy\kreisbox}} \put(58,17){\Magenta{\copy\kreisbox}} \put(45,0){\Yellow{\copy\kreisbox}} \put(97,12){ \vbox to 30mm{\hsize=30mm\Yellow{\hrule height 30mm depth0pt}\vskip-30mm% \hrule height0pt depth0pt\vfill% \ \hfill{\Cyan{\huge\LaTeX}}\hfill\ \vfill} } \end{picture} \end{center} Die Abbildung zeigt links die Mischfarben, die enstehen, wenn Gelb und Magenta "ubereinandergedruckt werden. In der Mitte zeigen die "uberlagerten Fl"achen die Komplement"arfarben von Cyan, Magenta und Gelb. Hier ist anzumerken, da"s beim DeskJet500 und auch bei Laserdruckern mit PCL--Unter"utzung die Farben durch entsprechende Graustufen dargestellt werden. Rechts ist die Mischung von Gelb und Cyan zu sehen. Aufgrund dieses Prinzips ergeben die mit {\sf BM2FONT} erzeugten Abbildungen eine, den M"oglichkeiten der Drucker entsprechende, nat"urliche Widergabe der Bilder. Die obige Abbildung, ausgegeben "uber {\tt dvips} auf einem PostScript--Farbdrucker, sieht wie folgt aus: \begin{center} \begin{picture}(127,52) \put(0,12){\vbox to 30mm{\hsize=30mm\Yellow{\hrule height 30mm depth0pt}% \vskip-30mm\hrule height0pt depth0pt\vfill \ \hfill{\White{\huge\TeX}}\hfill\ \vfill \hrule height0pt depth0pt\vskip-30mm \hrule height0pt depth0pt\vfill \ \hfill{\Magenta{\huge\TeX}}\hfill\ \vfill}} \put(35,17){\Cyan{\copy\kreisbox}} \put(58,17){\White{\copy\kreisbox}} \put(58,17){\Magenta{\copy\kreisbox}} \put(45,0){\White{\copy\kreisbox}} \put(45,0){\Yellow{\copy\kreisbox}} \put(97,12){ \vbox to 30mm{\hsize=30mm\Yellow{\hrule height 30mm depth0pt}% \vskip-30mm% \hrule height0pt depth0pt\vfill% \ \hfill{\White{\huge\LaTeX}}\hfill\ \vfill \hrule height0pt depth0pt\vskip-30mm% \hrule height0pt depth0pt\vfill% \ \hfill{\Cyan{\huge\LaTeX}}\hfill\ \vfill} } \end{picture} \end{center} Es enstehen keine Mischfarben, weil PostScript die Fl"achen nicht transparent "ubereinander setzt. Dies ist der Grund, warum farbige Komponenten nicht in gleicher Weise von {\tt dvips} und den dvidjc--Treibern widergegeben werden, wenn sie explizit "ubereinandergesetzt werden. Um mit den dvidjc--Treibern gleiche Effekte wie mit {\tt dvips} zu erzielen, ist das vorherige Ausstanzen einer Fl"ache notwendig, um dorthinein den Text der anderen Farbe zu setzen. Dies wurde in obiger Abbildung innerhalb einer \LaTeX{}--picture--Umgebung f"ur die linke Fl"ache wie folgt realisiert: \begin{verbatim} \put(0,12){\vbox to 30mm{\hsize=30mm\Yellow{\hrule height 30mm depth0pt}% \vskip-30mm\hrule height0pt depth0pt\vfill \ \hfill{\White{\huge\TeX}}\hfill\ \vfill \hrule height0pt depth0pt\vskip-30mm \hrule height0pt depth0pt\vfill \ \hfill{\Magenta{\huge\TeX}}\hfill\ \vfill}} \end{verbatim} Die Kreise wurden mit den folgenden Kommandos in die Abbildung gesetzt: \begin{verbatim} \put(35,17){\Cyan{\copy\kreisbox}} \put(58,17){\White{\copy\kreisbox}} \put(58,17){\Magenta{\copy\kreisbox}} \put(45,0){\White{\copy\kreisbox}} \put(45,0){\Yellow{\copy\kreisbox}} \end{verbatim} \section*{Farbenpracht} \advance\textwidth 5mm \advance\hsize 5mm \begin{tabular}{|l|llll|l|llll|} \hline Farbe&\multicolumn{4}{c|}{Farbanteile}& Farbe&\multicolumn{4}{c|}{Farbanteile}\\ \cline{2-5}\cline{7-10} &c&m&y&k& &c&m&y&k\\ \hline {\bf\GreenYellow{GreenYellow}} &0.15&0&0.69&0& {\bf\Yellow{Yellow}} &0&0&1&0\\ {\bf\Goldenrod{Goldenrod}} &0&0.10&0.84&0& {\bf\Dandelion{Dandelion}} &0&0.29&0.84&0\\ {\bf\Apricot{Apricot}} &0&0.32&0.52&0& {\bf\Peach{Peach}} &0&0.50&0.70&0\\ {\bf\Melon{Melon}} &0&0.46&0.50&0& {\bf\YellowOrange{YellowOrange}} &0&0.42&1&0\\ {\bf\Orange{Orange}} &0&0.61&0.87&0& {\bf\BurntOrange{BurntOrange}} &0&0.51&1&0\\ {\bf\Bittersweet{Bittersweet}} &0&0.75&1&0.24& {\bf\RedOrange{RedOrange}} &0&0.77&0.87&0\\ {\bf\Mahogany{Mahogany}} &0&0.85&0.87&0.35& {\bf\Maroon{Maroon}} &0&0.87&0.68&0.32\\ {\bf\BrickRed{BrickRed}} &0&0.89&0.94&0.2& {\bf\Red{Red}} &0&1&1&0\\ {\bf\OrangeRed{OrangeRed}} &0&1&0.50&0& {\bf\RubineRed{RubineRed}} &0&1&0.13&0\\ {\bf\WildStrawberry{WildStrawberry}} &0&0.96&0.39&0& {\bf\Salmon{Salmon}} &0&0.53&0.38&0\\ {\bf\CarnationPink{CarnationPink}} &0&0.63&0&0& {\bf\Magenta{Magenta}} &0&1&0&0\\ {\bf\VioletRed{VioletRed}} &0&0.81&0&0& {\bf\Rhodamine{Rhodamine}} &0&0.82&0&0\\ {\bf\Mulberry{Mulberry}} &0.34&0.90&0&0.02& {\bf\RedViolet{RedViolet}} &0.07&0.90&0&0.34\\ {\bf\Fuchsia{Fuchsia}} &0.47&0.91&0&0.0& {\bf\Lavender{Lavender}} &0&0.48&0&0\\ {\bf\Thistle{Thistle}} &0.12&0.59&0&0& {\bf\Orchid{Orchid}} &0.32&0.64&0&0\\ {\bf\DarkOrchid{DarkOrchid}} &0.40&0.80&0.20&0& {\bf\Purple{Purple}} &0.45&0.86&0&0\\ {\bf\Plum{Plum}} &0.50&1&0&0& {\bf\Violet{Violet}} &0.79&0.88&0&0\\ {\bf\RoyalPurple{RoyalPurple}} &0.75&0.90&0&0& {\bf\BlueViolet{BlueViolet}} &0.86&0.91&0&0.0\\ {\bf\Periwinkle{Periwinkle}} &0.57&0.55&0&0& {\bf\CadetBlue{CadetBlue}} &0.62&0.57&0.23&0\\ {\bf\CornflowerBlue{CornflowerBlue}} &0.65&0.13&0&0& {\bf\MidnightBlue{MidnightBlue}} &0.98&0.13&0&0.43\\ {\bf\NavyBlue{NavyBlue}} &0.94&0.54&0&0& {\bf\RoyalBlue{RoyalBlue}} &1&0.50&0&0\\ {\bf\Blue{Blue}} &1&1&0&0& {\bf\Cerulean{Cerulean}} &0.94&0.11&0&0\\ {\bf\Cyan{Cyan}} &1&0&0&0& {\bf\ProcessBlue{ProcessBlue}} &0.96&0&0&0\\ {\bf\SkyBlue{SkyBlue}} &0.62&0&0.12&0& {\bf\Turquoise{Turquoise}} &0.85&0&0.20&0\\ {\bf\TealBlue{TealBlue}} &0.86&0&0.34&0.02& {\bf\Aquamarine{Aquamarine}} &0.82&0&0.30&0\\ {\bf\BlueGreen{BlueGreen}} &0.85&0&0.33&0& {\bf\Emerald{Emerald}} &1&0&0.50&0\\ {\bf\JungleGreen{JungleGreen}} &0.99&0&0.52&0& {\bf\SeaGreen{SeaGreen}} &0.69&0&0.50&0\\ {\bf\Green{Green}} &1&0&1&0& {\bf\ForestGreen{ForestGreen}} &0.91&0&0.88&0.12\\ {\bf\PineGreen{PineGreen}} &0.92&0&0.59&0.2& {\bf\LimeGreen{LimeGreen}} &0.50&0&1&0\\ {\bf\YellowGreen{YellowGreen}} &0.44&0&0.74&0& {\bf\SpringGreen{SpringGreen}} &0.26&0&0.76&0\\ {\bf\OliveGreen{OliveGreen}} &0.64&0&0.95&0.40& {\bf\RawSienna{RawSienna}} &0&0.72&1&0.45\\ {\bf\Sepia{Sepia}} &0&0.83&1&0.70& {\bf\Brown{Brown}} &0&0.81&1&0.60\\ {\bf\Tan{Tan}} &0.14&0.42&0.56&0& {\bf\Gray{Gray}} &0&0&0&0.50\\ {\bf\Black{Black}} &0&0&0&1& {\bf\White{White}} &0&0&0&0\\ \hline \end{tabular} \newpage \section*{Preview} F"ur DOS--PC's steht der Previewer {\tt dvivgac.exe} zur Verf"ugung, der in gleicher Weise wie die DVIDJC--Treiber die Farb--\verb?\special?'s von {\tt colordjc.sty} unterst"utzt. Die Optionen des Previewers entsprechen denen der Druckertreiber. Nach dem Aufruf des Programms wird die erste Seite des Dokuments angezeigt, rechts erscheinen Hinweise zur Handhabung w"ahrend der Anzeige. \vfill \loadcmykpic[vgacac,vgacam,vgacay,vgacab] \centerline{\fcmykpic[vgacac,vgacam,vgacay,vgacab]} \vfill Nach Bet"atigung einer Taste zur Steuerung der Lupe wird rechts der aktuell gew"ahlte Bildausschnitt angezeigt, in der Gesamtansicht dargestellt durch ein umrandetes Rechteck. \vfill \loadcmykpic[vgacbc,vgacbm,vgacby,vgacbb] \centerline{\fcmykpic[vgacbc,vgacbm,vgacby,vgacbb]} \newpage Der Quellcode von {\tt dvivgac.c}, der zusammen mit der Quelle der DVIDJC--Treiber bereitgestellt wird, soll als Anregung f"ur die Weiterentwicklung existierender Previewer dienen, die in Zukunft vielleicht h"ohere Aufl"osungen der verschiedenen Graphikkarten unterst"utzen. Dies ist sicherlich deswegen angebracht, weil {\tt dvivgac} nur eine Aufl"osung von {\tt 640 x 480} verwendet und demzufolge zwar ein "Uberblick "uber den Aufbau einer Seite geben kann, die Lesbarkeit aber W"unsche offen l"a"st. \section*{Umfang der Distribution} \begin{table}[htb]\centering \begin{tabular}{|l|l|} \hline {\tt Makefile }& {\bf f"ur Unix}\\ {\tt README.dvidjc }& \\ {\tt dvidjc.c }& Quelle \\ \hline {\tt djgpp/ }& {\bf f"ur GCC--Fans}\\ {\tt djgpp/Makefile.dos }& \\ {\tt djgpp/dvi500.exe }& Schwarz--Wei"s\\ {\tt djgpp/dvi500c.exe }& CMY\\ {\tt djgpp/dvi550c.exe }& CMYK\\ {\tt djgpp/dvidjc.c }& Quelle mit CRLF\\ \hline {\tt turbo-c/ }& {\bf f"ur Ungeduldige}\\ {\tt turbo-c/dvi500.exe }& Schwarz--Wei"s\\ {\tt turbo-c/dvi500c.exe }& CMY\\ {\tt turbo-c/dvi550c.exe }& CMYK\\ {\tt turbo-c/dvivgac.exe }& Previewer\\ {\tt turbo-c/maketcc.bat }& \\ {\tt turbo-c/makevga.bat }& \\ {\tt turbo-c/dvidjc.c }& Quelle mit CRLF\\ {\tt turbo-c/dvivgac.c }& Quelle des Previewers\\ \hline {\tt example/ }& {\bf Dokumentation}\\ {\tt example/gencoldoc }& Erzeugt die Doku\\ {\tt example/coldoc.bat }& dito unter DOS\\ {\tt example/coldoc.tex }& \\ {\tt example/colordjc.sty}& \\ {\tt example/parskip.sty }& \\ {\tt example/colordjc.tex}& \\ {\tt example/fractal.gif }& Bilder\\ {\tt example/kreis.gif }& zur\\ {\tt example/texlion.gif }& Dokumentation\\ {\tt example/vgaca.gif }& Screendump des Previews\\ {\tt example/vgacb.gif }& Screendump mit Lupe\\ \hline \end{tabular} \end{table} \vfill \noindent Wolfgang R.~M"uller\hfill Friedhelm Sowa\\ {\em wolfgang@uni-duesseldorf.de\hfill sowa@convex.rz.uni-duesseldorf.de} \end{document}