diff options
Diffstat (limited to 'support/rumgraph')
41 files changed, 2038 insertions, 0 deletions
diff --git a/support/rumgraph/airplane.pk b/support/rumgraph/airplane.pk Binary files differnew file mode 100644 index 0000000000..107a33ddde --- /dev/null +++ b/support/rumgraph/airplane.pk diff --git a/support/rumgraph/airplane.tex b/support/rumgraph/airplane.tex new file mode 100644 index 0000000000..e476a68cd3 --- /dev/null +++ b/support/rumgraph/airplane.tex @@ -0,0 +1,8 @@ +\newfont{\HwKairplane}{airplane scaled 1000} + +\newcommand{\AirPlane}{{\HwKairplane + \symbol{65} + \symbol{66} + \symbol{67} +}} + diff --git a/support/rumgraph/airplane.tfm b/support/rumgraph/airplane.tfm Binary files differnew file mode 100644 index 0000000000..b217bcc02a --- /dev/null +++ b/support/rumgraph/airplane.tfm diff --git a/support/rumgraph/america.pk b/support/rumgraph/america.pk Binary files differnew file mode 100644 index 0000000000..c7945d327d --- /dev/null +++ b/support/rumgraph/america.pk diff --git a/support/rumgraph/america.tex b/support/rumgraph/america.tex new file mode 100644 index 0000000000..7e8ca04f6b --- /dev/null +++ b/support/rumgraph/america.tex @@ -0,0 +1,66 @@ +\newfont{\HwKamerica}{america scaled 1000} + +\newcommand{\America}{{\HwKamerica + \symbol{65} + \symbol{66} + \symbol{67} + \symbol{68} + \symbol{69} + \symbol{70} + \symbol{71} + \symbol{72} + \symbol{73} + \symbol{74} + \symbol{75} + \symbol{76} + \symbol{77} + \symbol{78} + \symbol{79} + \symbol{80} + \symbol{81} + \symbol{82} + \symbol{83} + \symbol{84} + \symbol{85} + \symbol{86} + \symbol{87} + \symbol{88} + \symbol{89} + \symbol{90} + \symbol{91} + \symbol{92} + \symbol{93} + \symbol{94} + \symbol{95} + \symbol{96} + \symbol{97} + \symbol{98} + \symbol{99} + \symbol{100} + \symbol{101} + \symbol{102} + \symbol{103} + \symbol{104} + \symbol{105} + \symbol{106} + \symbol{107} + \symbol{108} + \symbol{109} + \symbol{110} + \symbol{111} + \symbol{112} + \symbol{113} + \symbol{114} + \symbol{115} + \symbol{116} + \symbol{117} + \symbol{118} + \symbol{119} + \symbol{120} + \symbol{121} + \symbol{122} + \symbol{123} + \symbol{124} + \symbol{125} +}} + diff --git a/support/rumgraph/america.tfm b/support/rumgraph/america.tfm Binary files differnew file mode 100644 index 0000000000..6b0fdda3e4 --- /dev/null +++ b/support/rumgraph/america.tfm diff --git a/support/rumgraph/boat.pk b/support/rumgraph/boat.pk Binary files differnew file mode 100644 index 0000000000..212a614252 --- /dev/null +++ b/support/rumgraph/boat.pk diff --git a/support/rumgraph/boat.tex b/support/rumgraph/boat.tex new file mode 100644 index 0000000000..aedbc07780 --- /dev/null +++ b/support/rumgraph/boat.tex @@ -0,0 +1,15 @@ +\newfont{\HwKboat}{boat scaled 1000} + +\newcommand{\Boat}{{\HwKboat + \symbol{65} + \symbol{66} + \symbol{67} + \symbol{68} + \symbol{69} + \symbol{70} + \symbol{71} + \symbol{72} + \symbol{73} + \symbol{74} +}} + diff --git a/support/rumgraph/boat.tfm b/support/rumgraph/boat.tfm Binary files differnew file mode 100644 index 0000000000..48c0ae5569 --- /dev/null +++ b/support/rumgraph/boat.tfm diff --git a/support/rumgraph/clown.pk b/support/rumgraph/clown.pk Binary files differnew file mode 100644 index 0000000000..920de2ef25 --- /dev/null +++ b/support/rumgraph/clown.pk diff --git a/support/rumgraph/clown.tex b/support/rumgraph/clown.tex new file mode 100644 index 0000000000..19359fca50 --- /dev/null +++ b/support/rumgraph/clown.tex @@ -0,0 +1,46 @@ +\newfont{\HwKclown}{clown scaled 1000} + +\newcommand{\Clown}{{\HwKclown + \symbol{65} + \symbol{66} + \symbol{67} + \symbol{68} + \symbol{69} + \symbol{70} + \symbol{71} + \symbol{72} + \symbol{73} + \symbol{74} + \symbol{75} + \symbol{76} + \symbol{77} + \symbol{78} + \symbol{79} + \symbol{80} + \symbol{81} + \symbol{82} + \symbol{83} + \symbol{84} + \symbol{85} + \symbol{86} + \symbol{87} + \symbol{88} + \symbol{89} + \symbol{90} + \symbol{91} + \symbol{92} + \symbol{93} + \symbol{94} + \symbol{95} + \symbol{96} + \symbol{97} + \symbol{98} + \symbol{99} + \symbol{100} + \symbol{101} + \symbol{102} + \symbol{103} + \symbol{104} + \symbol{105} +}} + diff --git a/support/rumgraph/clown.tfm b/support/rumgraph/clown.tfm Binary files differnew file mode 100644 index 0000000000..ccd5c60280 --- /dev/null +++ b/support/rumgraph/clown.tfm diff --git a/support/rumgraph/columbia.pk b/support/rumgraph/columbia.pk Binary files differnew file mode 100644 index 0000000000..16837442c6 --- /dev/null +++ b/support/rumgraph/columbia.pk diff --git a/support/rumgraph/columbia.tex b/support/rumgraph/columbia.tex new file mode 100644 index 0000000000..bb2f0fee3a --- /dev/null +++ b/support/rumgraph/columbia.tex @@ -0,0 +1,8 @@ +\newfont{\HwKcolumbia}{columbia scaled 1000} + +\newcommand{\Columbia}{{\HwKcolumbia + \symbol{65} + \symbol{66} + \symbol{67} +}} + diff --git a/support/rumgraph/columbia.tfm b/support/rumgraph/columbia.tfm Binary files differnew file mode 100644 index 0000000000..417835d704 --- /dev/null +++ b/support/rumgraph/columbia.tfm diff --git a/support/rumgraph/inforum.pk b/support/rumgraph/inforum.pk Binary files differnew file mode 100644 index 0000000000..b6ae522c0a --- /dev/null +++ b/support/rumgraph/inforum.pk diff --git a/support/rumgraph/inforum.tex b/support/rumgraph/inforum.tex new file mode 100644 index 0000000000..52c5eefea9 --- /dev/null +++ b/support/rumgraph/inforum.tex @@ -0,0 +1,10 @@ +\newfont{\HwKinforum}{inforum scaled 1000} + +\newcommand{\infoRUM}{{\HwKinforum + \symbol{65} + \symbol{66} + \symbol{67} + \symbol{68} + \symbol{69} +}} + diff --git a/support/rumgraph/inforum.tfm b/support/rumgraph/inforum.tfm Binary files differnew file mode 100644 index 0000000000..16d6b8f7a1 --- /dev/null +++ b/support/rumgraph/inforum.tfm diff --git a/support/rumgraph/la.tex b/support/rumgraph/la.tex new file mode 100644 index 0000000000..232bf867ca --- /dev/null +++ b/support/rumgraph/la.tex @@ -0,0 +1,50 @@ + +\setlength{\unitlength}{1mm} + +\begin{center} + +\begin{picture}(140,60) + +\put(30,20){\framebox(20,30){}} +\multiput(20,30)(4,0){10}{\line(1,0){2.5}} +\put(30,30){\circle*{1}} +\put(23.5,23.5){\vector(1,1){6}} +\put(75,30){\makebox(0,0){\footnotesize \sf Schreiblinie}} +\put(66,30){\vector(-1,0){5}} +\put(84,30){\vector(1,0){5}} +\put(16,22.5){\makebox(0,0)[t]{ +\shortstack{\footnotesize \sf Referenzpunkt \\ + \footnotesize \sf = Schreibpunkt}}} +\put(40,19) +{\makebox(0,0)[t]{\shortstack{$\underbrace{\rule{19mm}{0mm}}$ \\ +{\small \sf width}}}} +\put(50,39.5){$ \left. \rule{0mm}{11.0mm} \right\} $ {\small \sf height}} +\put(50,24) {$ \left. \rule{0mm}{5mm} \right\} $ {\small \sf depth}} + +\put(40,10){\makebox(0,0)[t]{Die Sicht von \TeX}} + + +\put(100,20){\framebox(20,30){}} +\multiput(90,30)(4,0){10}{\line(1,0){2.5}} +\multiput(105,18)(0,4){9}{\line(0,1){2.5}} +\put(105,30){\circle*{1}} +\put(98.5,23.5){\vector(1,1){6}} +\put(87,22.5){\makebox(0,0)[t]{ +\shortstack{\footnotesize \sf Referenzpunkt \\ + \footnotesize \sf = Schreibpunkt}}} +\put(110,19) +{\makebox(0,0)[t]{\shortstack{$\underbrace{\rule{19mm}{0mm}}$ \\ +{\small \sf x size}}}} +\put(102.5,51) +{\makebox(0,0)[b]{\shortstack{{\small \sf x offset} \\ +$\overbrace{}$ }}} +\put(100,40){\makebox(0,0)[r]{ + {\small \sf y offset}$ \left\{\rule{0mm}{11.0mm}\right.$}} +\put(120,34){$ \left. \rule{0mm}{16.0mm} \right\} $ {\small \sf y size}} + +\put(110,10){\makebox(0,0)[t]{Die Sicht des Treibers}} + +\end{picture} + +\end{center} + diff --git a/support/rumgraph/lb.tex b/support/rumgraph/lb.tex new file mode 100644 index 0000000000..57878195b8 --- /dev/null +++ b/support/rumgraph/lb.tex @@ -0,0 +1,18 @@ +\setlength{\unitlength}{1mm} + +\begin{maxipage} +\parbox{1in}{Gesamtbild} +\parbox{5.45in} + {\centering + \begin{picture}(120,40) + \put(25,10){\circle*{1}} + \put(19,16){\vector(1,-1){5}} + \put(0,17){\makebox(0,0)[bl]{\footnotesize \sf Referenzpunkt}} + \put(25,10){\AirPlane} + \put(71,9) + {\makebox(0,0)[t]{\shortstack{$\underbrace{\rule{92mm}{0mm}}$ \\ + {\small \sf width}}}} + \end{picture} + } +\end{maxipage} + diff --git a/support/rumgraph/lc.tex b/support/rumgraph/lc.tex new file mode 100644 index 0000000000..7b3549455d --- /dev/null +++ b/support/rumgraph/lc.tex @@ -0,0 +1,41 @@ +\setlength{\unitlength}{1mm} + +\begin{maxipage} +\parbox{1in}{Buchstabe 1} +\parbox{5.45in} + {\centering + \begin{picture}(120,28) + \put(0,11){\makebox(0,0)[bl]{\footnotesize \sf width = 0}} + \put(25,0){\circle*{1}} + \put(19,6){\vector(1,-1){5}} + \put(0,7){\makebox(0,0)[bl]{\footnotesize \sf Referenzpunkt}} + \put(25,0){\HwKairplane \symbol{65}} + \end{picture} + } +\newline +\parbox{1in}{Buchstabe 2} +\parbox{5.45in} + {\centering + \begin{picture}(120,28) + \put(0,11){\makebox(0,0)[bl]{\footnotesize \sf width = 0}} + \put(25,0){\circle*{1}} + \put(19,6){\vector(1,-1){5}} + \put(0,7){\makebox(0,0)[bl]{\footnotesize \sf Referenzpunkt}} + \put(25,0){\HwKairplane \symbol{66}} + \end{picture} + } +\newline +\parbox{1in}{Buchstabe 3} +\parbox{5.45in} + {\centering + \begin{picture}(120,33) + \put(25,10){\circle*{1}} + \put(19,16){\vector(1,-1){5}} + \put(10,17){\makebox(0,0)[bl]{\footnotesize \sf Referenzpunkt}} + \put(25,10){\HwKairplane \symbol{67}} + \put(71,9) + {\makebox(0,0)[t]{\shortstack{$\underbrace{\rule{92mm}{0mm}}$ \\ + {\small \sf width}}}} + \end{picture} + } +\end{maxipage} diff --git a/support/rumgraph/lion.pk b/support/rumgraph/lion.pk Binary files differnew file mode 100644 index 0000000000..4a49e11b49 --- /dev/null +++ b/support/rumgraph/lion.pk diff --git a/support/rumgraph/lion.tex b/support/rumgraph/lion.tex new file mode 100644 index 0000000000..2bf3634cca --- /dev/null +++ b/support/rumgraph/lion.tex @@ -0,0 +1,10 @@ +\newfont{\HwKlion}{lion scaled 1000} + +\newcommand{\Lion}{{\HwKlion + \symbol{65} + \symbol{66} + \symbol{67} + \symbol{68} + \symbol{69} +}} + diff --git a/support/rumgraph/lion.tfm b/support/rumgraph/lion.tfm Binary files differnew file mode 100644 index 0000000000..91b00f105a --- /dev/null +++ b/support/rumgraph/lion.tfm diff --git a/support/rumgraph/monitor.pk b/support/rumgraph/monitor.pk Binary files differnew file mode 100644 index 0000000000..231c127b25 --- /dev/null +++ b/support/rumgraph/monitor.pk diff --git a/support/rumgraph/monitor.tex b/support/rumgraph/monitor.tex new file mode 100644 index 0000000000..bd9f3b8b40 --- /dev/null +++ b/support/rumgraph/monitor.tex @@ -0,0 +1,10 @@ +\newfont{\HwKmonitor}{monitor scaled 1000} + +\newcommand{\Monitor}{{\HwKmonitor + \symbol{65} + \symbol{66} + \symbol{67} + \symbol{68} + \symbol{69} +}} + diff --git a/support/rumgraph/monitor.tfm b/support/rumgraph/monitor.tfm Binary files differnew file mode 100644 index 0000000000..8588352998 --- /dev/null +++ b/support/rumgraph/monitor.tfm diff --git a/support/rumgraph/quickref.dvi b/support/rumgraph/quickref.dvi Binary files differnew file mode 100644 index 0000000000..7f3a06f17c --- /dev/null +++ b/support/rumgraph/quickref.dvi diff --git a/support/rumgraph/quickref.tex b/support/rumgraph/quickref.tex new file mode 100644 index 0000000000..2ceb89fc6b --- /dev/null +++ b/support/rumgraph/quickref.tex @@ -0,0 +1,243 @@ +% This is QUICKREF.TEX, as of February 13, 1991 (Ki/Kr). +% RUMgraph Quick Reference +\documentstyle[11pt,refman,twoside]{article} + +\frenchspacing + +\input{rum} + +\newcommand{\HWK}{H.$\!$-$\!$W$\!$.\ Kisker} +\newcommand{\RUMgraph}{\mbox{\RUMj{\sf graph}}} +\newcommand{\ADI}{{\sf ADI}} +\newcommand{\PCX}{{\sf PCX}} +\newcommand{\PXL}{{\sf PXL}} +\newcommand{\TFM}{{\sf TFM}} +% +\addtolength{\headheight}{1pt} +\setleftmarginwidth{1.0in} +% +\pagestyle{myheadings} + +\begin{document} + +\title{\RUMt{\sf graph} \ \ --- \ \ Quick Reference} + +\author{ +\HWK \and +Westf\"{a}lische Wilhelms-Universit\"{a}t \and +Universit\"{a}tsrechenzentrum \and +Einsteinstr. 60 \and +D-4400 M\"{u}nster \and +Germany \and +February 1991 +} + +\maketitle +\makeauthor + +\maxipagerulefalse + +\markboth{\RUMgraph}{\RUMgraph} + +\marginlabel{\bf Purpose} +% +The program \RUMgraph\ converts monochrome grafic files to a \TeX\ \PXL\ file. +Each \PCX\ file is mapped to a character of the font. + +\marginlabel{\bf Input} +% +To work properly \RUMgraph\ must be supplied with one or more \PCX\ files and +metric data for the characters of the font. + +\marginlabel{\bf Output} +% +\RUMgraph\ will create several files as output: +% +\begin{itemize} +\item a \PXL\ file (containing the character maps), +\item a \TFM\ file (containing the metric data), +\item a \TeX\ file (containing \TeX\ commands related to the characters of the +font) and +\item a logfile (containing information about the program run). +\end{itemize} + +\marginlabel{\bf Supported Grafic Formats} +% +\RUMgraph\ supports two grafic formats: +% +\begin{itemize} +\item \ADI\ printer file from AutoDesk and +\item the monochrome \PCX\ file from ZSoft. +\end{itemize} + +\marginlabel{\bf Operating Systems} +% +\RUMgraph\ can run under MS-DOS Version 3.00 (or later) or OS/2 Version 1.00 (or +later). + + +\section*{\Large \bf Options} + +\RUMgraph\ is called in the normal way: + +{\sf \hspace*{.5in} RUMgraf\ \ option\ \ \ldots} + +The term {\em option} starts with one of the characters {\tt /} or {\tt +-}, immediately followed by an alphabetic character -- the {\em option +name\/}. In most cases the option name is succeded by a string -- the +{\em option value\/}. Option name and value can be delimited by one of +the characters {\tt :} or {\tt =}; a blank however is not allowed. An +option value, which contains a blank (or other special characters), must +be surrounded by a pair of {\tt "} characters. Each option term which +does not start with a {\tt /} or {\tt -} is treated as a comment. + +The option names are devided into three groups. + +\begin{itemize} + +\item The first group contains all parameters belonging to the entire font (e.g. +resolution). + +\item The options of the second group describe a single character (e.g. metric +data). A set of options can be specified for each character of the font . Such a +set starts with a c option, which determines a specific character. All following +options of the second group up to the next c options will be related to this +character. + +\item The third group consist of just one option -- the m option. This option +points to a so called {\em makefile} which contains additional option terms. + +\end{itemize} + +\subsection*{Group 1: Font Options} + +\marginlabel{\bf /P} {\sf /P:}{\em ident\/} + +The p option specifies an identification for several picture related files: + +\begin{itemize} + +\item the name of the \PXL\ file ({\sf ident.PXL}), + +\item the name of the \TFM\ file ({\sf ident.TFM}), + +\item the name of the \TeX\ files ({\sf ident.TEX}) and + +\item the name of the logfile ({\sf ident.RGL}). + +\end{itemize} + +The value of {\sf ident} must consist of one to eight alphabetic +characters. + +Example: {\sf /P:GLYPH} + +\vspace*{.1in} + +\marginlabel{\bf /R} {\sf /R:}{\em resolution\/} + +The r option specifies the resolution of the bitmap. + +Unit: dpi (= dots per inch) + +Example: {\sf /R:300} + + +\subsection*{Group 2: Character Options} + +\marginlabel{\bf /C} {\sf /C:}{\em character\/} + +The c option starts a set of options for a specified character. All following +options of group 2 up to the next c option will be related to this character. +The option value can be an alphabetic character or a number from 0 to 127. + +Examples: {\sf /C:A} or {\sf /C:65} + +\vspace*{.1in} + +\marginlabel{\bf /N} {\sf /N:}{\em name\/} + +The n option can be used to generate a \TeX\ command for the created \TeX\ file. +In a \TeX\ document this command will insert the related character -- i.e. the +picture -- in the output. The name can consist of an arbitrary number of +alphabetic characters. + +Example: {\sf /N:Aleph} + +\vspace*{.1in} + +\condbreak{2\baselineskip} +\marginlabel{\bf /T} {\sf /T:}{\em type\/} + +The t option specifies the grafic format of the input file for the character +(\PCX\ or \ADI. + +Example: {\sf /T:PCX} + +\vspace*{.1in} + +\marginlabel{\bf /F} {\sf /F:}{\em filename\/} + +The f option determines the pathname of the file, which will be used for the +creation of the character. + +Example: {\sf /F:aleph.pcx} + +\vspace*{.1in} + +\marginlabel{\bf /D /H /W} +{\sf /D:}{\em depth\/} {\sf /H:}{\em height\/} {\sf /W:}{\em width\/} + +The metric data for the \TFM\ file will be determined by the d option ({\em +depth\/}), the h option ({\em height\/}) and the w option ({\em width\/}). +For each missing option a default value is defined. The width is set to the +x size of the input bitmap, the height is set to the y size of the bitmap and +the depth is assumed as zero. + +Unit: pt ({\sf 1 inch = 72.72 pt}) + +Example: {\sf /W:20 /H:24 /D:8} + +\vspace*{.1in} + +\marginlabel{\bf /X /Y} {\sf /X:}{\em Xoffset\/} {\sf /Y:}{\em Yoffset\/} + +The x and y options determine the reference point of the character bitmap in +the \PXL\ file. By default the x offset is assumed as zero and the y offset ist +set to the vertical size of the input bitmap. The horizontal and vertical size +are extracted directly from the input bitmap. + +Unit: pixel + +Example: {\sf /X:--5 /Y:22} + +\vspace*{.1in} + +\marginlabel{\bf /S} {\sf /S:}{\em count\/} + +\RUMgraph\ can distribute large pictures to several characters of the font. The +s option sets the number of pieces, the picture is to be split. + +Example: {\sf /S:10} + + +\vspace*{.1in} + +\marginlabel{\bf /I} {\sf /I} + +Specifying the i option will reverse the input bitmap. + +Example: {\sf /I} + +\vspace*{.1in} + +\subsection*{Group 3: Makefile} + +\marginlabel{\bf /M} {\sf /M:}{\em makefile\/} + +The m option specifies a makefile which contains additional option terms. + +Example: {\sf /M:Glyph.m} + + +\end{document} diff --git a/support/rumgraph/refman.sty b/support/rumgraph/refman.sty new file mode 100644 index 0000000000..922a527610 --- /dev/null +++ b/support/rumgraph/refman.sty @@ -0,0 +1,501 @@ +% This is REFMAN.STY by H.Partl, TU Wien, Version 1.0 of 25 Nov 1988. +% One forgotten \templength fixed 09.10.1990 RUM/W.Kaspar +% Bug fixed in line 336: 14.04.1989 RUM/W.Kaspar +% OLD: \def\ps@headings{\let .... +% NEW: \def\ps@footings{\let .... +% Bug fixed in line 432: 12.04.1989 RUM/W.Kaspar +% OLD: \leftmarginwidth=\templength +% NEW: \leftmarginwidth=\templength@ +% +% Document Style Option to `article' and `report', +% for technical reference manuals, users' guides and articles, +% with a design similar to that of the PostScript Reference Manual: +% All pages have a wide left margin and no right margin, and section +% headings and other `guiding' material appear in that margin. +% Supports one-column only. REFMAN should be specified as the LAST +% optional argument of the \documentstyle command, e.g. +% \documentstyle[11pt,twoside,german,refman]{article} +% +% It CAN be used with twoside, fleqn and others. +% It can NOT be used with twocolumn, titlepage, fullpage, a4, a4wide +% and others. +% +% +-----------------------------------------------------------------+ +% ! This style file has been designed for reference manuals, users' ! +% ! guides, short instants, and related papers at the EDP centre of ! +% ! the Technical University of Vienna. It must be re-designed and ! +% ! changed before application at any other institution or for any ! +% ! other purpose. ! +% +-----------------------------------------------------------------+ +% Copyright H.Partl TU Wien 1988. + +% Process this file only once: +\@ifundefined{leftmarginwidth}{}{\endinput} + +\typeout{ TU Wien Refman Style - Version 1.0 as of 25 Nov 1988} + +\newdimen\leftmarginwidth % value of odd & evensidemargin, set below. +\newdimen\fullwidth % = \textwidth + \leftmarginwidth +\newdimen\emptyheadtopmargin % used by some pagestyles +\newdimen\emptyfoottopmargin % dto. + +% \longhrule and \longthickhrule are defined for \hrule's of width \fullwidth + +\def\longhrule{\par\hbox to \linewidth{\hss + \vrule width \fullwidth height 0.4pt depth 0pt}\par} +\def\longthickhrule{\par\hbox to \linewidth{\hss + \vrule width \fullwidth height 1.0pt depth 0pt}\par} + +% Re-definitions of the \section commands to use \fullwidth and smaller +% vertical skips and smaller fonts. +% (Note that the afterskip must be >zero, not =zero) + +\def\secshape{\leftskip=-\leftmarginwidth % use \fullwidth + \rightskip=\@flushglue % raggedright + \hyphenpenalty=2000} % no hyphenation + +\def\section{\@startsection {section}{1}{\z@}{-2ex plus -1ex minus + -.2ex}{0.5ex plus .2ex}{\secshape\large\bf}} +\def\subsection{\@startsection{subsection}{2}{\z@}{-1.5ex plus -.5ex minus + -.2ex}{0.5ex plus .2ex}{\secshape\normalsize\bf}} +\def\subsubsection{\@startsection{subsubsection}{3}{\z@}{-1.5ex plus +-.5ex minus -.2ex}{0.5ex plus .2ex}{\secshape\normalsize\rm}} +\def\paragraph{\@startsection + {paragraph}{4}{\z@}{2ex plus 1ex minus .2ex}{-1em}{\normalsize\bf}} +\def\subparagraph{\@startsection + {subparagraph}{4}{\parindent}{2ex plus 1ex minus + .2ex}{-1em}{\normalsize\bf}} + +% For ARTICLE: +% Re-definitions of \maketitle and \part (\clearpage, \fullwidth, \hrules). +% This \maketitle prints the \title only. +% A \makeauthor command is defined to print the \author (to be used either +% just after \maketitle or at the end of the article, without \thanks). + +\def\@redefinemaketitle{ + +\def\maketitle{\par + \begingroup + \if@twocolumn + \twocolumn[\@maketitle] + \else \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle \fi\thispagestyle{plain} + \endgroup + \setcounter{footnote}{0}} + +\def\@maketitle{\clearpage + \longthickhrule\bigskip + {\secshape\parskip\z@\parindent\z@ \Large\bf \@title\par} + \bigskip\longthickhrule\bigskip} + +\def\makeauthor{\par\nopagebreak\vskip 2ex plus 1ex minus 1ex + \begin{flushright}\normalsize\sl \@author \end{flushright}\par + \vskip 2ex plus 1ex minus 1ex\relax } + +\def\and{\\*} +\def\thanks{\footnote} + +% In \part, only \thepart (the Roman part number) is printed, without +% the word `Part' in front of it, and \markboth is replaced by \@mkboth +% to preserve the marks with the myheadings and myfootings page styles. + +\def\part{\par \clearpage \thispagestyle{plain} + \@afterindentfalse \secdef\@part\@spart} + +\def\@part[##1]##2{\ifnum \c@secnumdepth >\m@ne \refstepcounter{part} + \addcontentsline{toc}{part}{\thepart \hspace{1em}##1}\else + \addcontentsline{toc}{part}{##1}\fi + \longhrule\medskip + {\secshape\parskip\z@\parindent\z@ \Large\rm + \ifnum \c@secnumdepth >\m@ne \thepart.\quad \fi ##2\par} + \medskip\longhrule\bigskip \@mkboth{}{}\@afterheading } + +\def\@spart##1{\longhrule\medskip + {\secshape\parskip\z@\parindent\z@ \Large\rm ##1\par} + \medskip\longhrule\bigskip \@afterheading } + +} % end of \@redefinemaketitle + +% For REPORT: +% Re-definition of \chapter (\clearpage, \fullwidth, \hrules). +% However, \maketitle and \part remain unchanged. + +\def\@redefinechapter{ + +\def\@makechapterhead##1{\longthickhrule\bigskip + {\secshape\parskip\z@\parindent\z@ \Large\bf + \ifnum \c@secnumdepth >\m@ne \@chapapp{} \thechapter.\quad \fi + ##1\par} + \bigskip\longthickhrule\bigskip} + +\def\@makeschapterhead##1{\longthickhrule\bigskip + {\secshape\parskip\z@\parindent\z@ \Large\bf ##1\par} + \bigskip\longthickhrule\bigskip} + +% No word `Chapter'/`Kapitel' before the chapter number, but the word +% `Appendix'/`Anhang' will still be inserted after \appendix ! +\def\@chapapp{} + +% Note that \chapter itself is defined like this: +% \def\chapter{\clearpage \thispagestyle{plain} \global\@topnum\z@ +% \@afterindentfalse \secdef\@chapter\@schapter} +% This definition and those of \@chapter and \@schapter remain unchanged. + +} % end of \@redefinechapter + +% Now, do either the first one or the second one, depending on the main +% document style (article= \chapter undefined, or report= \chapter defined). +% (Note that \par must not appear inside \@ifundefined, therefore this +% indirect approach is taken.) + +\@ifundefined{chapter}{\@redefinemaketitle}{\@redefinechapter} + +% Re-defintion of the \marginpar command to use always the left margin +% (never the right margin). Be careful that Marginpars do not come to +% near to each other! + +\def\@addmarginpar{\@next\@marbox\@currlist{\@cons\@freelist\@marbox + \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne +%- \if@twocolumn +%- \if@firstcolumn \@tempcnta\m@ne \fi +%- \else +%- \if@mparswitch +%- \ifodd\c@page \else\@tempcnta\m@ne \fi +%- \fi +%- \if@reversemargin \@tempcnta -\@tempcnta \fi +%- \fi + \@tempcnta\m@ne % always to left margin <--- + \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi + \@tempdima\@mparbottom \advance\@tempdima -\@pageht + \advance\@tempdima\ht\@marbox \ifdim\@tempdima >\z@ + \@warning{Marginpar on page \thepage\space moved}\else\@tempdima\z@ \fi + \global\@mparbottom\@pageht \global\advance\@mparbottom\@tempdima + \global\advance\@mparbottom\dp\@marbox + \global\advance\@mparbottom\marginparpush + \advance\@tempdima -\ht\@marbox + \global\ht\@marbox\z@ \global\dp\@marbox\z@ + \vskip -\@pagedp \vskip\@tempdima\nointerlineskip + \hbox to\columnwidth + {\ifnum \@tempcnta >\z@ + \hskip\columnwidth \hskip\marginparsep + \else \hskip -\marginparsep \hskip -\marginparwidth \fi + \box\@marbox \hss} + \vskip -\@tempdima + \nointerlineskip + \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}} + +% Special Marginpars: +% \marginlabel{X} puts X into a flushright Marginpar. +% To be used like description-items or short +% \subsubsection* headings. +% \attention puts ! --> to the left of the text. +% To mark an important piece of text. +% \seealso{X} puts a small ---> X to the very left. +% To mark a reference within the text. +% These three commands start with an empty \mbox, i.e. they can be used +% before the first word of a paragraph and still have the desired +% effect, namely that the marginal stuff appears next to the first +% line of this paragraph, not at the last line of the previous one. +% They end with \ignorespaces, i.e. blanks (spaces) after the argument's +% } are allowed and do NOT appear in the printed text. +% Like all \marginpar's, they cannot be used in math mode or inside boxes. + +\def\marginlabel#1{\mbox{}\marginpar{\raggedleft #1}\ignorespaces} +\def\attention{\mbox{}\marginpar{\raggedleft \large\bf ! $\rightarrow$}} +\def\seealso#1{\mbox{}\marginpar{\small $\rightarrow$ #1}\ignorespaces} + +% The description environment is redefined such that the item labels use +% the whole left margin (and are in roman, right bound, with colon). +% \labelwidth = \leftmarginwidth + previous\@totalleftmargin + +% + new\leftmargin - \labelsep +% \descriptioncolontrue and -false can be used to select whether a colon +% is added to the item label. +% \descriptionlefttrue and -false can be used to select whether the item labels +% are set left bound or right bound. + +\newif\ifdescriptioncolon \descriptioncolontrue +\newif\ifdescriptionleft \descriptionleftfalse +\def\descriptionlabel#1{\ifdescriptionleft\else \hfil \fi + \rm #1\ifdescriptioncolon :\fi + \ifdescriptionleft \hfil \fi} +\def\description{\list{}{\labelsep=\marginparsep + \labelwidth=\leftmarginwidth \advance\labelwidth by \@totalleftmargin + \advance\labelwidth by \leftmargin \advance\labelwidth by -\labelsep + \let\makelabel=\descriptionlabel}} +\let\enddescription=\endlist + +% The maxipage environment is a minipage that uses the \fullwidth, +% with \hrules above and below. Marginpars are not allowed. +% To be used for wide tables, long math equations, and the like. +% It cannot be split across pages. +% It can be used in floats, e.g. like +% \begin{table}\begin{maxipage} +% ... a wide table ... \caption{the caption} +% \end{maxipage}\end{table} +% \maxipageruletrue and -false can be used to select whether \hrule's are +% added to the minpage. + +\newif\ifmaxipagerule \maxipageruletrue +\def\maxipage{\par % (here a \vskip\parskip will happen by the final \par) + \mbox{}\kern-\leftmarginwidth \kern-\@totalleftmargin + \begin{minipage}{\fullwidth} + \medskip \ifmaxipagerule \hrule\medskip \fi + \parskip = 0.5\baselineskip % <--- same as outside minipage + \def\marginpar{\typeout{Marginpar not allowed within Maxipage.}}} +\def\endmaxipage{\par \vskip\parskip + \medskip \ifmaxipagerule \hrule\medskip \fi + \end{minipage}\par} + +% The fullpage environment changes the page layout such that normal text +% and all environments use the \fullwidth. Marginpars are not allowed. +% Both \begin{fullpage} and \end{fullpage} start a new page before switching +% to the other layout. +% To be used for one or several special pages where the full line length is +% needed. + +\def\fullpage{\clearpage \leftmarginwidth\z@ \textwidth=\fullwidth + \oddsidemargin=\z@ \evensidemargin\z@ + \hsize=\fullwidth \linewidth=\fullwidth \columnwidth=\fullwidth + \def\marginpar{\typeout{Marginpar not allowed within Fullpage.}}} +\def\endfullpage{\clearpage} + +% The example environment is a verse enironment with \tt font and with +% trying to avoid page breaks at the \begin{example}. Lines in the example +% should be separated by \\*. + +\def\example{\@beginparpenalty=\@highpenalty \verse \tt } +\let\endexample=\endverse + +% Page Styles: +% The pagestyles plain, headings and myheadings are redefined and new +% pagestyles footings and myfootings are defined, which all use the +% \fullwidth, with \thepage on the outer side of the (odd/even) page +% and some with a \hrule below the head line or above the foot line. +% My favourite is +% \pagestyle{myfootings} +% \markboth{the title of the paper}{the title of the paper} +% (Note that the \markboth is not destroyed by the new \part command.) + +% The pagestyles headings and myheadings set \topmargin to \emptyfoottopmargin. +% The pagestyles footings and myfootings set \topmargin to \emptyheadtopmargin. +% The pagestyles empty and plain do not change \topmargin. +% Therefore, within one document, +% - you may switch between headings, myheadings, empty, and plain, +% - or you may switch between footings, myfootings, empty, and plain, +% - but you should not mix (my)headings with (my)footings pages. + +% As a compromise between article (section+subsection) and report +% (chapter+section), \sectionmark (without uppercase) will be put on +% both side pages in the headings and footings style (neither chapter +% nor subsection). + +\def\ps@plain{\let\@mkboth\@gobbletwo + \def\@oddhead{}\def\@evenhead{}% + \def\@oddfoot{\rm\hfil\thepage}% + \def\@evenfoot{\hss \hbox to \fullwidth{\normalsize\rm\thepage\hfil}}} + +\if@twoside % If two-sided printing. +\def\ps@headings{\let\@mkboth\markboth \topmargin\emptyfoottopmargin +\def\@oddfoot{}\def\@evenfoot{}% No feet. +\def\@evenhead{\hss\vbox{\hsize=\fullwidth + \hbox to \fullwidth{\normalsize\rm\thepage \hfil + \small\sl \leftmark}% + \vskip 3pt \hrule}}% +\def\@oddhead{\hss\vbox{\hsize=\fullwidth + \hbox to \fullwidth{\small\sl \rightmark \hfil + \normalsize\rm\thepage}% + \vskip 3pt \hrule}}% +\def\sectionmark##1{\markboth + {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}% + {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}}% +\def\subsectionmark##1{}} +\else % If one-sided printing. +\def\ps@headings{\let\@mkboth\markboth \topmargin\emptyfoottopmargin +\def\@oddfoot{}\def\@evenfoot{}% No feet. +\def\@oddhead{\hss\vbox{\hsize=\fullwidth + \hbox to \fullwidth{\small\sl \rightmark \hfil + \normalsize\rm\thepage}% + \vskip 3pt \hrule}}% +\def\sectionmark##1{\markright {{\ifnum \c@secnumdepth >\z@ + \thesection\hskip 1em\relax \fi ##1}}}} +\fi + +\if@twoside % If two-sided printing. +\def\ps@footings{\let\@mkboth\markboth \topmargin\emptyheadtopmargin +\def\@oddhead{}\def\@evenhead{}% No heads. +\def\@evenfoot{\hss\vbox{\hsize=\fullwidth \hrule \vskip 3pt + \hbox to \fullwidth{\normalsize\rm\thepage \hfil + \small\sl\leftmark}}}% +\def\@oddfoot{\hss\vbox{\hsize=\fullwidth \hrule \vskip 3pt + \hbox to \fullwidth{\small\sl\rightmark \hfil + \normalsize\rm\thepage}}}% +\def\sectionmark##1{\markboth + {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}% + {{\ifnum \c@secnumdepth >\z@ \thesection\hskip 1em\relax \fi ##1}}}% +\def\subsectionmark##1{}} +\else % If one-sided printing. +\def\ps@footings{\let\@mkboth\markboth \topmargin\emptyheadtopmargin +\def\@oddhead{}\def\@evenhead{}% No heads. +\def\@oddfoot{\hss\vbox{\hsize=\fullwidth \hrule \vskip 3pt + \hbox to \fullwidth{\small\sl\rightmark \hfil + \normalsize\rm\thepage}}}% +\def\sectionmark##1{\markright {{\ifnum \c@secnumdepth >\z@ + \thesection\hskip 1em\relax \fi ##1}}}} +\fi + +\def\ps@myheadings{\let\@mkboth\@gobbletwo \topmargin\emptyfoottopmargin +\def\@evenhead{\hss\vbox{\hsize=\fullwidth + \hbox to \fullwidth{\normalsize\rm\thepage \hfil + \small\sl\leftmark}% + \vskip 3pt \hrule}}% +\def\@oddhead{\hss\vbox{\hsize=\fullwidth + \hbox to \fullwidth{\small\sl\rightmark \hfil + \normalsize\rm\thepage}% + \vskip 3pt \hrule}}% +\def\@oddfoot{}\def\@evenfoot{}\def\sectionmark##1{}\def\subsectionmark##1{}} + +\def\ps@myfootings{\let\@mkboth\@gobbletwo \topmargin\emptyheadtopmargin +\def\@evenfoot{\hss\vbox{\hsize=\fullwidth \hrule \vskip 3pt + \hbox to \fullwidth{\normalsize\rm\thepage \hfil + \small\sl\leftmark}}}% +\def\@oddfoot{\hss\vbox{\hsize=\fullwidth \hrule \vskip 3pt + \hbox to \fullwidth{\small\sl\rightmark \hfil + \normalsize\rm\thepage}}}% +\def\@oddhead{}\def\@evenhead{}\def\sectionmark##1{}\def\subsectionmark##1{}} + +% The \condbreak{length} command is defined for conditional pagebreaks: +% If less then length vertical space remains on the current page, then +% a new page is started. This means that the following stuff remains +% together (either on the current or the next page). + +\def\condbreak#1{\vskip 0pt plus #1\pagebreak[3]\vskip 0pt plus -#1\relax} + +% The \noparskip command is defined to take away the vertical Parskip, +% just like \noindent takes away the horizontal Parindent. + +\def\noparskip{\vskip-\parskip} + +% Correction of a LaTeX bug that occurs when marginpars and footnotes +% appear on the same page (by Chris Rowley, TUGboat 9/2 Aug.88) + +\def\@specialoutput{\ifnum\outputpenalty > -\@Mii + \@doclearpage + \else + \ifnum \outputpenalty <-\@Miii + \ifnum\outputpenalty<-\@MM \deadcycles\z@\fi + \global\setbox\@holdpg\vbox{\unvbox\@cclv} + \else \setbox\@tempboxa\box\@cclv + \@pagedp\dp\@holdpg \@pageht\ht\@holdpg + \unvbox\@holdpg +%- \ifvoid\footins\else\advance\@pageht\ht\footins +%- \advance\@pageht\skip\footins \advance\@pagedp\dp\footins +%- \insert\footins{\unvbox\footins}\fi + \@next\@currbox\@currlist{\ifnum\count\@currbox >\z@ +% moved ---> + \ifvoid\footins\else\advance\@pageht\ht\footins + \advance\@pageht\skip\footins \advance\@pagedp\dp\footins + \insert\footins{\unvbox\footins}\fi + \@addtocurcol\else +% moved and changed ---> + \ifvoid\footins\else + \insert\footins{\unvbox\footins}\fi + \@addmarginpar\fi}\@latexbug + \ifnum \outputpenalty <\z@ \penalty \z@ \fi + \fi\fi} + + +% Setting of the Layout Parameters and Dimensions: +% ------------------------------------------------ + +% Switch to \onecolumn and disable \twocolumn. +\onecolumn +\let\onecolumn=\relax +\def\twocolumn{\typeout{Twocolumn not allowed with Refman.}} + +% Horizontal Layout: +% \fullwidth = \leftmarginwidth + \textwidth +% \odd&evensidemargin = \leftmarginwidth - 3mm +% (DIN-A4 paper is about 6mm narrower than 8.5 Inch.) +% \marginparwidth = \leftmarginwidth - \marginparsep + +% \textwidth, \columnwidth, \linewidth remain unchanged from art10...rep12 +\fullwidth=6.5in +\leftmarginwidth=\fullwidth \advance\leftmarginwidth by -\textwidth +\oddsidemargin=\leftmarginwidth \advance\oddsidemargin by -3mm +\evensidemargin=\oddsidemargin +\marginparwidth=\leftmarginwidth \advance\marginparwidth by -\marginparsep + +% The horizontal layout can be changed in the preamble with the command +% \setleftmarginwidth{length} +% This sets \leftmarginwidth=length and \textwidth=\fullwidth-<length> . +% Example: \setleftmarginwidth{2.5in} ---> 2.5 : 4 = 4 : 6.5 + +\newdimen\templength@ +\def\setleftmarginwidth#1{\templength@=#1\relax + \leftmarginwidth=\templength@ + \textwidth=\fullwidth \advance\textwidth by -\templength@ + \oddsidemargin=\leftmarginwidth \advance\oddsidemargin by -3mm + \evensidemargin=\oddsidemargin + \marginparwidth=\leftmarginwidth \advance\marginparwidth by -\marginparsep + \hsize=\textwidth \linewidth=\textwidth \columnwidth=\textwidth } + +% Vertical Layout (for DIN-A4 paper): +% The Top Margin is made smaller by 4.5 baselineskips, +% the Head and Foot separations are increased by 0.5 baselineskips each, +% the Textheight is increased by 10 lines. +% On DIN-A4 paper (which is about 2 lines higher than 11 Inch), this +% makes the Bootom Margin equal to the Top Margin. +% \raggedbottom is switched on (even for twoside). +% With some pagestyles, the page contents are shifted up or down a bit, +% by using \emptyheadtopmargin or \emptyfoottopmargin, respectively. + +\advance\topmargin by -4.5\baselineskip +\advance\headsep by 0.5\baselineskip +\advance\footskip by 0.5\baselineskip +\advance\textheight by 10\baselineskip +\@colht=\textheight \@colroom=\textheight +\emptyheadtopmargin=\topmargin \advance\emptyheadtopmargin by -1\baselineskip +\emptyfoottopmargin=\topmargin \advance\emptyfoottopmargin by 1\baselineskip +\raggedbottom + +% Zero minimal vertical separation between Marginpars (because we use a lot +% of them, and all must find room above each other). + +\marginparpush=\z@ + +% Paragraph Layout: +% Zero Parindent and non-zero Parskip. The stretchable glue in \parskip +% helps LaTeX in finding the best place for page breaks. + +\parskip=0.5\baselineskip \advance\parskip by 0pt plus 2pt +\parindent=\z@ + +% Redefinition of the vertical spacing in the list environments +% to use the same as \parskip in all relevant places (normalsize only): +% \parsep = \parskip +% \itemsep = \z@ % add nothing to \parskip between items +% \topsep = \z@ % add nothing to \parskip before first item + +\def\@listI{\leftmargin\leftmargini + \topsep\z@ \parsep\parskip \itemsep\z@} +\let\@listi\@listI +\@listi + +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii\advance\labelwidth-\labelsep + \topsep\z@ \parsep\parskip \itemsep\z@} + +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii\advance\labelwidth-\labelsep + \topsep\z@ \parsep\parskip \itemsep\z@} + +% Note that listiv, listv and listvi don't change vertical parameters. + + +% Switch on the new version of the plain pagestyle. +\pagestyle{plain} + +% This is the end of REFMAN.STY. +\endinput + diff --git a/support/rumgraph/rolls.pk b/support/rumgraph/rolls.pk Binary files differnew file mode 100644 index 0000000000..771cf3cae9 --- /dev/null +++ b/support/rumgraph/rolls.pk diff --git a/support/rumgraph/rolls.tex b/support/rumgraph/rolls.tex new file mode 100644 index 0000000000..38f6ccedc6 --- /dev/null +++ b/support/rumgraph/rolls.tex @@ -0,0 +1,8 @@ +\newfont{\HwKrolls}{rolls scaled 1000} + +\newcommand{\Rolls}{{\HwKrolls + \symbol{65} + \symbol{66} + \symbol{67} +}} + diff --git a/support/rumgraph/rolls.tfm b/support/rumgraph/rolls.tfm Binary files differnew file mode 100644 index 0000000000..43bb53c15c --- /dev/null +++ b/support/rumgraph/rolls.tfm diff --git a/support/rumgraph/rum.pk b/support/rumgraph/rum.pk Binary files differnew file mode 100644 index 0000000000..8da5b87a90 --- /dev/null +++ b/support/rumgraph/rum.pk diff --git a/support/rumgraph/rum.tex b/support/rumgraph/rum.tex new file mode 100644 index 0000000000..9e86542791 --- /dev/null +++ b/support/rumgraph/rum.tex @@ -0,0 +1,26 @@ +\newfont{\HwKrum}{rum scaled 1000} + +\newcommand{\RUMf}{{\HwKrum + \symbol{65} +}} + +\newcommand{\RUMh}{{\HwKrum + \symbol{66} +}} + +\newcommand{\RUMj}{{\HwKrum + \symbol{67} +}} + +\newcommand{\RUMl}{{\HwKrum + \symbol{68} +}} + +\newcommand{\RUMo}{{\HwKrum + \symbol{69} +}} + +\newcommand{\RUMt}{{\HwKrum + \symbol{70} +}} + diff --git a/support/rumgraph/rum.tfm b/support/rumgraph/rum.tfm Binary files differnew file mode 100644 index 0000000000..797475e9b5 --- /dev/null +++ b/support/rumgraph/rum.tfm diff --git a/support/rumgraph/rumgraph.dvi b/support/rumgraph/rumgraph.dvi Binary files differnew file mode 100644 index 0000000000..6cedfacd03 --- /dev/null +++ b/support/rumgraph/rumgraph.dvi diff --git a/support/rumgraph/rumgraph.tex b/support/rumgraph/rumgraph.tex new file mode 100644 index 0000000000..8979d6d0a3 --- /dev/null +++ b/support/rumgraph/rumgraph.tex @@ -0,0 +1,928 @@ +% Dies ist RUMGRAPH.TEX vom 13.02.91 Ki/Kr +\documentstyle[11pt,german,refman,twoside]{article} + +\frenchspacing + +\newfont{\MetaFont}{logo10 scaled 1000} +\newcommand{\METAFONT}{{\MetaFont METAFONT}} + +\input{rum} +\input{airplane} +\input{america} +\input{boat} +\input{clown} +\input{columbia} +\input{lion} +\input{monitor} +\input{rolls} +\input{inforum} +\input{singa} + +\newcommand{\HWK}{H.$\!$-$\!$W$\!$.\ Kisker} +\newcommand{\RUMgraph}{\mbox{\RUMj{\sf graph}}} +\newcommand{\ADI}{{\sf ADI}} +\newcommand{\PCX}{{\sf PCX}} +\newcommand{\PXL}{{\sf PXL}} +\newcommand{\TFM}{{\sf TFM}} +% +\addtolength{\headheight}{1pt} +\setleftmarginwidth{1.0in} +% +\pagestyle{myheadings} + +\begin{document} + +\title{ +\RUMt{\sf graph} \\ +Einbindung von Pixel-Bildern in ein \TeX-Dokument +} + +\author{ +\HWK \and +Westf"alische Wilhelms-Universit"at \and +Universit"atsrechenzentrum \and +Einsteinstr. 60 \and +4400 M"unster \and +September 1990 +} + +\maketitle +\makeauthor + +\maxipagerulefalse + +\tableofcontents + +\newpage + +Der klassische Weg, in \TeX-Dokumente Bilder einzubinden, ist die Verwendung des +{\em special\/}-Kommandos. Dieses wird nicht von \TeX\ selbst, sondern +ausschlie"slich vom DVI-Treiber abgearbeitet. Ich selbst habe in den vergangenen +Jahren einige DVI-Treiber f"ur verschiedene Drucker geschrieben, um Grafiken +benutzen zu k"onnen. Nach meinem Daf"urhalten kranken aber alle L"osungen, die sich +auf eine {\em special\/}-L"osung abst"utzen, in zweierlei Hinsicht. + +Wie sein Name schon andeutet, ist die Bedeutung des {\em special\/}-Kommando in +keiner Weise festgelegt. Jeder Treiber, der ein solches Kommando implementiert, +kann sowohl Syntax als auch Semantik selbst festlegen. Hiervon wird von den +Entwicklern der DVI-Treiber ungehemmt Gebrauch gemacht. Auch die momentanen +Normierungsbestrebungen werden an dieser Situation kaum etwas "andern. Jeder so +entwickelte Vorschlag hat n"amlich nicht den bindenden Charakter eines +\TeX-Kom\-man\-dos, sondern ist als Empfehlung zu verstehen, die man befolgen, +aber auch verwerfen kann. Die einzige allgemein anerkannte Autorit"at in der +\TeX-Gemeinde, die hier etwas "andern k"onnte, ist Donald Knuth selbst. W"urde er +\TeX\ mit Gra\-fik\-ele\-men\-ten versehen, so w"are die Frage der +Implementierung jeder Diskussion entzogen. Ich pers"onlich w"urde mir eine solche +Erweiterung w"unschen. + +Der zweite Gesichtspunkt, der die Verwendung des {\em special\/}-Kommandos +unhandlich macht, ist seine Nichtbeachtung durch \TeX. \TeX\ hat keine +Vorstellungen "uber die Abmessungen einer Grafik, die durch einen solchen Befehl +in ein Dokument aufgenommen wird. F"ur den Benutzer bedeutet dies, da"s er das +Bild in eine Schale (z.B. {\em picture\/}-Umgebung) einbetten mu"s, um \TeX\ +indirekt die M"oglichkeit zu geben, das grafische Element zu ber"ucksichtigen. +Dieses Verfahren schafft neue Fehlerquellen und zus"atzlichen Pf"|legeaufwand. So +k"onnen z.B. die Abmessungen eines Bildes falsch eingesch"atzt werden, und auf +eine "Anderung der Grafik mu"s mit einer "Anderung der Parameter f"ur die Schale aus +\TeX-Kommandos reagiert werden. + +Beide Hindernisse haben mich schon vor einiger Zeit dazu veranla"st, L"osungen mit +dem {\em special\/}-Kommando nicht weiter zu verfolgen. Ich habe f"ur meine +Belange stattdessen einen anderen Weg realisiert. Ausgangspunkt war die +Feststellung, da"s \TeX\ standardgem"a"s mit "`Grafiken"' umzugehen wei"s, n"amlich +mit den Zeichen seiner Zeichens"atze. Aus diesem Blickwinkel betrachtet, h"alt +\TeX\ f"ur jede dieser "`Grafiken"' ein Rechteck auf der Seite frei, in das +dann der Dvi-Treiber das "`Bild"' des Zeichens hineinmalt. Die Zeichen werden +dabei f"ur Pixel-orientierte Drucker als Bitmap vorgehalten, f"ur +PostScript-f"ahige Drucker z.B. auch als das Aussehen beschreibende Algorithmen. + +Ich habe mich bei meinen Entwicklungen auf Pixel-orientierte Drucker beschr"ankt. +Damit reduziert sich die Aufgabe, Bilder f"ur \TeX\ aufzubereiten auf die +Umwandlung von Grafik-File-Formaten in eines der von \TeX\ unterst"utzten +Zeichensatzformate \PXL\ oder {\sf PK}. Der Standardweg, solche Zeichens"atze +zu erzeugen, f"uhrt "uber \METAFONT\ und {\sf GFtoPX}. L"osungen, die hier +ansetzen und z.B. HPGL-Files in {\em mf\/}-Files umsetzen, sind bereits als +kommerzielle Produkte verf"ugbar. Allerdings liegen viele Grafiken nicht in +Vektor-Form (wie HPGL) vor, sondern als Pixel-Files. Insbesondere "uber einen +Scanner gewonnene Bilder werden fast immer in einem \PCX-, {\sf TIFF}- oder +{\sf GIF}-File abgelegt. Ich habe deshalb dem direkten Weg zur Erzeugung der +Zeichens"atze den Vorzug gegeben. Das unten vorgestellt Programm \RUMgraph\ +wandelt \ADI- und \PCX-Grafik-Files in \TeX-\PXL-Files um. Die +Implementierung des \ADI-Formats ist als Abdeckung meines pers"onlichen +Bedarfs zu sehen: ich benutze bevorzugt {\sf AutoCAD} zur Erzeugung meiner +Bilder. Die gr"o"sere Bedeutung kommt aber sicherlich dem weit verbreiteten +\PCX-Format der Firma ZSoft zu. Auf die Implementierung anderer Grafikformate +habe ich verzichtet, da es sowohl im kommerziellen als auch im +Public-Domain-Bereich Programme gibt, die nahezu jedes Grafikformat -- sowohl +Pixel- als auch Vektor-orientiert -- nach \PCX\ umwandeln. Ich selbst habe +bereits erfolgreich {\sf GIF-, MSP-, TIFF-, HPGL-, PCL-, EPS-, WPG-, IGES- und +DXF-}Formate verwendet. + +\section{Aufgabe des Programms} +\markboth{Aufgabe des Programms} +{Aufgabe des Programms} + + +Das Programm \RUMgraph\ wandelt Pixel-Bilder im \ADI- oder \PCX-Format in +\TeX-PXL-Zeichens"atze um. F"ur jeden Buchstaben des neu zu schaffenden +Zeichensatzes wird dabei ein eigener Grafik-File verwendet. + +Eingabe f"ur das Programm sind dementsprechend neben einer Reihe von Angaben, die +den Zeichensatz beschreiben, ein oder mehrere Grafik-Files f"ur die +Buchstaben. Als Ergebnis wird ein \PXL-File mit zugeh"origem \TFM-File erzeugt. +Au"serdem wird ein sogenannter {\em Log-File\/} geschrieben, der ausf"uhrliche +Information "uber den jeweiligen Programmlauf enth"alt. Auf Anforderung hin kann +ein \TeX-Input-File bereitgestellt werden, der den Zugriff auf den Zeichensatz +und seine Zeichen erleichtert. + +Es werden zwei Pixel-orientierte Grafikformate unterst"utzt: +das \ADI-Format der Firma AutoDesk und das \PCX-Format der Firma ZSoft. + +Das Programm ist ablauf"|f"ahig auf IBM-kompatiblen Rechnern. Es l"auft unter den +Betriebssystemen {\sf MS-DOS} und {\sf OS/2}. + + +\section[Der Aufruf von \RUMgraph\ ]{Der Aufruf von \RUMo{\sf graph}} +\markboth{Der Aufruf von \RUMgraph} +{Der Aufruf von \RUMgraph} + +Das Programm \RUMgraph\ wird in der "ublichen Weise durch eine Eingabe der +folgenden +Form aufgerufen: + +{\sf \hspace*{.5in} RUMgraf\ \ option\ \ ...} + +Die Optionen beginnen dabei mit den Zeichen / oder --. Unmittelbar danach folgt +ein einzelner Buchstabe: die Optionskennung. Welche Buchstaben zul"assig sind und +welche Bedeutung sie haben, wird weiter unten erl"autert. Gro"s- und +Kleinbuchstaben werden {\it nicht} unterschieden. An die Optionskennung schlie"st +sich der Wert der Option an. Zwischen Optionskennung und Wert kann als Trenner +eines der Zeichen : oder = eingeschoben werden. Leerzeichen sind als Trenner +nicht zul"assig. Enth"alt der Wert der Option ein Leerzeichen, so ist er in +Hochkommata\ ''\ einzuschlie"sen. Alle Angaben, die nicht mit / oder -- beginnen, +werden als Kommentar betrachtet und dementsprechend ignoriert. + +Die Optionen gliedern sich in drei Gruppen: + +\begin{itemize} +\item Die erste Gruppe spezifiziert die Parameter, die f"ur den gesamten +Zeichensatz gelten (z.B. Auf"|l"osung). Sie k"onnen sinnvollerweise nur +einmal angegeben werden. Erfolgt eine mehrfache Angabe, so hat nur der +letzte Wert G"ultigkeit. + +\item Die zweite Gruppe beschreibt die einzelnen Zeichen (z.B. +metrische Angaben). Eine einem Zeichen zugeordnete Gruppe von Optionen +wird eingeleitet durch die c-Option (character number), die ein +bestimmtes Zeichen festlegt. Alle Angaben bis zur n"achsten c-Option +werden diesem Zeichen zugeordnet. Bei Mehrfachangaben beh"alt wieder nur +die letzte Angabe einer Gruppe ihre G"ultigkeit. + +\item Die dritte Gruppe enth"alt nur eine einzelne Option, und zwar die m-Option. +"Uber sie wird der Name eines sogenannten {\em makefiles\/} angegeben. In ihm +k"onnen beliebige Optionen abgelegt sein. Die Angabe einer m-Option bewirkt, da"s +die in dem {\em makefile\/} enthaltenen Optionsangaben in die Reihe der Optionen +der Kommandozeile eingeschoben und abgearbeitet werden. Alle Optionen k"onnen in +einem {\em makefile\/} verwendet werden; insbesondere auch Kommentare. + +\end{itemize} + +\subsection*{Optionen der Gruppe 1: Angaben zum Zeichensatz} + +\marginlabel{\bf /P} {\sf /P:}{\em Picture\/} + +Mit der p-Option wird eine Kennung f"ur das zu erzeugende Bild +festgelegt. Sie wird benutzt f"ur: + +\begin{itemize} + +\item den Namen des \PXL-Files ({\sf ident.PXL}), + +\item den Namen des TFM-Files ({\sf ident.TFM}), + +\item den Namen des \TeX-Input-Files ({\sf ident.TEX}) und + +\item den Namen des Log-Files ({\sf ident.RGL}). + +\end{itemize} + +Die Kennung mu"s aus 1 - 8 Buchstaben bestehen. + +Beispiel: {\sf /P:SINGA} + +\vspace*{.1in} + +\marginlabel{\bf /R} {\sf /R:}{\em Resolution\/} + +Die r-Option gibt die verwendete Auf"|l"osung der Bitmap an. + +Ma"seinheit: dpi (= dot per inch) + +Beispiel: {\sf /R:300} + + + +\subsection*{Optionen der Gruppe 2: Angaben zu den einzelnen Zeichen} + +\marginlabel{\bf /C} {\sf /C:}{\em Character\/} + +Mit der c-Option wird der Beginn eines Parametersatzes f"ur das angegebene +Zeichen festgelegt. Alle Optionen der Gruppe 2 werden bis zur n"achsten c-Option +auf dieses Zeichen bezogen. Als Wert kann entweder ein Buchstabe oder eine Zahl +von 0 bis 127 angegeben werden. + +Beispiele: {\sf /C:A} oder {\sf /C:65} + +\vspace*{.1in} + +\marginlabel{\bf /N} {\sf /N:}{\em Name\/} + +Jedem Buchstaben kann "uber die n-Option ein Name zugeordnet werden. Der Name +dient zur Generierung eines \TeX-Kommandos im \TeX-Input-File. Wird der +Input-File benutzt, so kann der Buchstabe -- und somit auch das Bild -- durch +Angabe dieses Kommandos in das Dokument eingef"ugt werden. Fehlt die n-Option, so +wird f"ur diesen Buchstaben kein Kommando erzeugt. Wird f"ur keinen der Buchstaben +ein Name angegeben, so wird die Erzeugung des \TeX-Input-Files g"anzlich +unterdr"uckt. Ein Name kann aus einer beliebigen Anzahl von Buchstaben +zusammengestzt sein. + +Beispiel: {\sf /N:Aleph} + +\vspace*{.1in} + +\marginlabel{\bf /T} {\sf /T:}{\em Type\/} + +Die t-Option bezeichnet das Format des zu dem Buchstaben geh"orenden +Grafik-Files. Als Werte k"onnen die Kennungen \ADI\ und \PCX\ angegeben +werden. F"ur jeden Buchstaben kann ein anderer File-Typ angegeben werden. + +Beispiel: {\sf /T:PCX} + +\vspace*{.1in} + +\marginlabel{\bf /F} {\sf /F:}{\em Filename\/} + +"Uber die f-Option wird der Name des Grafik-Files angegeben, der f"ur die +Erzeugung der Bitmap des Zeichens verwendet werden soll. Es kann ein beliebiger +Pfadname angegeben werden. + +Beispiel: {\sf /F:aleph.pcx} + +\vspace*{.1in} + +\marginlabel{\bf /D /H /W} +{\sf /D:}{\em Depth\/} {\sf /H:}{\em Height\/} {\sf /W:}{\em Width\/} + +Die metrischen Angaben f"ur den \TFM-File werden "uber die d-Option ({\em depth\/}), +h-Option ({\em height\/}) und w-Option ({\em width\/}) spezifiziert. Die Bedeutung +dieser und der anderen metrischen Werte wird weiter unten erl"autert. Fehlen die +Optionen, so wird {\em width\/} gleich der Breite {\em x size\/} der Bitmap, {\em +height} gleich der H"ohe {\em y size\/} der Bitmap und {\em depth\/} gleich Null +gesetzt. Alle Angaben sind in Pica-Punkten {\em pt\/} zu machen. + +Ma"seinheit: pt ({\sf 1 inch = 72.72 pt}) + +Beispiel: {\sf /W:20 /H:24 /D:8} + +\vspace*{.1in} + +\marginlabel{\bf /X /Y} {\sf /X:}{\em Xoffset\/} {\sf /Y:}{\em Yoffset\/} + +"Uber die x-Option ({\em x offset\/}) und die y-Option ({\em y offset\/}) k"onnen die +metrischen Angaben f"ur den \PXL-File festgelegt werden. +Die Gr"o"sen {\em x size\/} und {\em y size\/} entnimmt \RUMgraph\ direkt dem +"uber die f-Option bestimmten Grafik-File. Fehlen die Angaben, so wird {\em x +offset\/} gleich 0 und {\em y offset\/} gleich {\em y size\/} gesetzt. + +Ma"seinheit: pixel + +Beispiel: {\sf /X:--5 /Y:22} + +\vspace*{.1in} + +\marginlabel{\bf /S} {\sf /S:}{\em Splitcount\/} + +Werden Bilder in Buchstaben umgewandelt, so entstehen h"aufig "au"serst gro"se +Buchstaben. Eine Zeichnung, die eine ganze DIN A4-Seite einnimmt ist keine +Besonderheit. Viele Treiber (und auch viele {\sf PXTOPK}-Implementierungen) +k"onnen so gro"se Zeichen nicht handhaben. Deshalb besteht "uber die s-Option die +M"oglichkeit, das Bild in mehrere Teilbilder in Form von vertikalen Streifen zu +zerschneiden. Diese Streifen werden dann einzeln in Buchstaben umgewandelt und +unbelegten Codes des Zeichensatzes zugewiesen. Die metrischen Angaben im \TFM- +und \PXL-File werden dabei so angepa"st, da"s alle Buchstaben, wenn sie +unmittelbar +aufeinander folgen, wieder das Gesamtbild ergeben. + +Ma"seinheit: Bytes + +Beispiel: {\sf /S:20} + + +\vspace*{.1in} + +\marginlabel{\bf /I} {\sf /I} + +Mit Hilfe der i-Option kann ein Bild invertiert werden. + +Beispiel: {\sf /I} + +\vspace*{.1in} + +\marginlabel{\bf Anmerkung} Die Standardwerte der metrischen Angaben sind so +gew"ahlt, da"s sowohl aus der Sicht von \TeX\ als auch aus der des DVI-Treibers +der Referenzpunkt des Zeichens stets in der linken unteren Ecke liegt und da"s um +die Bitmap herum keinerlei Rand bleibt. Wird \RUMgraph\ zur Einbindung von +Bildern +in ein Dokument genutzt, so ist diese Setzung naheliegend. + +\subsection*{Optionen der Gruppe 3: Umlenken der Eingabe auf einen {\em +makefile\/}} + + +\marginlabel{\bf /M} {\sf /M:}{\em Makefile\/} + +"Uber die m-Option kann \RUMgraph\ angewiesen werden, seine Optionen aus einer +Datei zu lesen. Insbesondere wenn ein zu erzeugender Zeichensatz mehrere +Buchstaben umfa"st, ist die Einf"uhrung eines {\em makefiles\/} unumg"anglich. Die +Anzahl der Optionen, die in der Kommandozeile m"oglich sind, ist eben deutlich +beschr"ankt. Ein {\em makefile\/} kann alle Optionen enthalten. Wird allerdings in +einem {\em makefile\/} eine m-option angegeben, so werden alle folgenden Optionen +ignoriert. Ein {\em makefile\/} kann deshalb innerhalb eines {\em makefiles\/} +sinnvoll nur mit der letzten Option angegeben werden. + +Beispiel: {\sf /M:Singa} + + + + +\section{Die Verwaltung von Zeichens"atzen durch \TeX} +\markboth{Die Verwaltung von Zeichens"atzen durch \TeX} +{Die Verwaltung von Zeichens"atzen durch \TeX} + +Ein Zeichensatz, wie er von \TeX\ verwendet wird, enth"alt grunds"atzlich zwei +Arten von Angaben: + +\begin{itemize} + +\item metrische Angaben wie Breite und H"ohe der Zeichen und + +\item die grafische Beschreibung des Zeichens selbst -- meistens wie bei \PXL- +und PK-Files in Form einer Bitmap. + +\end{itemize} + +Die Angaben f"ur jeden Zeichensatz sind auf zwei Dateien verteilt: den \TFM-File +und den \PXL-File. Die Angaben in beiden Files sind teilweise redundant. Etwas +vereinfacht kann man aber sagen, da"s der \TFM-File metrische Angaben enth"alt, +die +den Platz beschreiben, der f"ur das Zeichen auf der Seite reserviert werden soll, +und da"s der \PXL-File die Bitmap beinhaltet, die zur eigentlichen Darstellung +des +Zeichens benutzt wird. Entsprechend dieser Aufteilung werden bei der Erstellung +eines Dokuments mit \TeX\ die Angaben eines Zeichensatzes von unterschiedlichen +Programmen ausgewertet. + +{\small + +\input{la} + +} + +Das eigentliche \TeX-Programm benutzt nur die metrischen Angaben aus dem +TFM-File. Aus der Sicht von \TeX\ sind Buchstaben einfach Rechtecke. Zur +Positionierung dieser Rechtecke wird eine fiktive {\em Schreiblinie\/} und auf +dieser ein fiktiver {\em Schreibpunkt\/} verwaltet. Die Buchstabenrechtecke +werden auf dieser Schreiblinie so positioniert, da"s zum einen ihr linker Rand +durch den Schreibpunkt hindurch geht und da"s sie zum anderen eine vorgegebene +H"ohe ({\em height\/}) "uber der Linie und eine vorgegebene Tiefe ({\em depth\/}) +unter der Linie hinaus ragen. Die Schreibstelle wird von \TeX\ nach der +Positionierung des Zeichens um die Breite {\em width\/} des Zeichens verschoben. +Man kann auch sagen, da"s die Angaben von {\em height\/} und {\em depth\/} auf dem +linken Rand des Zeichens einen {\em Referenzpunkt\/} festlegen, der von \TeX\ mit +dem Schreibpunkt zur Deckung gebracht wird. \TeX\ ber"ucksichtigt in keiner +Weise das durch die Bitmap festgelegte grafische Ausssehen eines Zeichens. Es +h"alt nur den Platz f"ur diese Bitmap frei. Das {\em Ausmalen\/} dieses Platzes ist +Aufgabe des DVI-Treibers. + + +Ein DVI-Treiber "ubertr"agt also die im \PXL-File (oder auch {sf PK}-File) +enthaltene Bitmap auf die Seite. Dabei werden auch von ihm metrische Angaben, +die sich aber auf die Abmessungen der Bitmap beziehen, ausgewertet. Konkret +sind dies vier Werte. Zum einen existieren auch hier Angaben zur H"ohe ({\em y +size\/}) und Breite ({\em x size\/}) eines jeden Zeichens. Sie spiegeln +das engste +Rechteck wieder, das um die Bitmap gezogen werden kann. Zum anderen wird mit +einem horizontalen ({\em x offset\/}) und vertikalen ({\em y offset\/}) Versatz +ebenfalls ein Referenzpunkt definiert. Da beide Offset-Angaben auch negativ +sein k"onnen, kann der Referenzpunkt beliebig au"serhalb der Bitmap liegen. Ein +DVI-Treiber verwaltet -- wie das \TeX-Progamm selbst -- Schreiblinie und +Schreibpunkt und positioniert Zeichen, indem Schreibpunkt und Referenzpunkt der +Bitmap zur Deckung gebracht werden. Bei Verschiebung der Schreibstelle wird +allerdings der gleiche Wert f"ur die Breite des Zeichens verwendet wie vom +\TeX-Programm. + +Prinzipiell sind die Angaben im \TFM- und \PXL-File unabh"angig voneinander. In +der +Praxis werden die Angaben aber nat"urlich aufeinander abgestimmt verwendet. Der +von \TeX\ reservierte Platz ist meistens so gew"ahlt, da"s um den gedruckten +Buchstaben herum ein ausreichender Abstand zu benachbarten Zeichen entsteht. +Erforderlich ist dies allerdings nicht; so kann die vom DVI-Treiber auf die +Seite "ubertragene Bitmap durchaus au"serhalb des von \TeX\ freigehaltenen Platzes +zu liegen kommen. + + + + +\section[Die Arbeitsweise von \RUMgraph\ ]{Arbeitsweise von \RUMo{\sf graph}} +\markboth{Die Arbeitsweise von \RUMgraph} +{Die Arbeitsweise von \RUMgraph} + + +Bei der Erzeugung von Zeichen mit dem Programm \RUMgraph\ k"onnen die Angaben +{\em width\/}, {\em height\/} und {\em depth\/} f"ur den \TFM-File und {\em x offset\/} +und {\em y offset\/} f"ur den \PXL-File vom Benutzer festgelegt werden. Die +fehlenden Gr"o"sen {\em x size\/} und {\em y size\/} f"ur den \PXL-File entnimmt +\RUMgraph\ direkt dem Ursprungs-Grafik-File. + +Die oben beschriebene M"oglichkeit, Bitmaps auch au"serhalb des von \TeX\ +freigehaltenen Platzes zu positionieren, wird genutzt, wenn ein gro"ses +Bild in mehrere Buchstaben zerlegt werden mu"s. Dabei wird n"amlich der +Referenzpunkt f"ur jeden Teilbuchstaben an die Stelle gelegt, die durch den +Referenzpunkt des Gesamtbildes bestimmt ist. Die Breiten der ersten Teilbilder +werden s"amtlich auf Null gesetzt und nur die Breite des letzten Teilbuchstabens +wird gleich der Weite des Gesamtbildes gew"ahlt. Zur Erl"auterung werde das +folgende Bild betrachtet. + +\input{lb} + +Der Referenzpunkt des Bildes ist die linke untere Ecke. Wird es mit einer +Setzung {\sf /S:3} in einen \PXL-File umgewandelt, so entstehen drei +Teilbuchstaben mit folgenden Referenzpunkten: + +\input{lc} + +Werden die drei Buchstaben unmittelbar nacheinander ausgegeben, so entsteht +wieder das obige Bild. + +Nat"urlich h"atte auch die M"oglichkeit bestanden, f"ur die Teilbuchstaben den +Referenzpunkt stets auf die jeweilige linke untere Ecke zu legen und die Breite +gleich der jeweiligen Pixel-Ausdehnung zu w"ahlen. Diese L"osung birgt aber eine +Gefahr in sich. F"ur die Positionierung seiner Buchstaben auf der Schreiblinie +verwaltet ein {\sf DVI}-Treiber zwei Koordinatenwerte: zum einen die idealen +hochgenauen \TeX-Koordinaten und zum anderen die realen durch die Auf"|l"osung +bestimmten Pixel-Koordinaten. Durch Rundungsfehler driften diese beiden Werte +auseinander. Deswegen "uberpr"uft der Treiber bei jeder Positionierung, ob die +Differenz eine vorgegebene Schwelle (Stichwort: {\em max drift\/}) "uberschreitet. +Ist dies der Fall, so wird die Position um ein oder mehrere Pixel korrigiert. +F"allt nun diese Korrektur zwischen zwei zu einem Bild geh"orenden +Teilbuchstaben, so entstehen entweder wei"se Streifen im Bild oder zwei +Teilbilder "uberlappen sich. Beides ist nicht tolerierbar. Die L"osung mit der +Breite von Null f"ur die ersten Buchstaben vermeidet dieses Problem. + + +\subsection*{Anmerkungen} + +\marginlabel{ADI-Format} +ADI ist ein Grafikformat, das von der Firma AutoDesk definiert wurde, um +Herstellern von Hardware-Komponenten den Anschlu"s ihrer Ger"ate an die von +AutoDesk angebotenen Programme zu erm"oglichen. F"ur verschiedene Ger"ate -- wie +Bildschirm, Drucker, Plotter oder Digitizer -- sind verschiedene Formate +festgelegt. Das von \RUMgraph\ verwendete \ADI-Format dient dazu, einfache +Grafikdrucker -- {\em printer/plotter\/} im Jargon von AutoDesk -- zu betreiben. + +\marginlabel{\PCX-Format} +\PCX\ ist das Grafik-Format der Firma ZSoft. Es geh"ort wohl zu den verbreitetsten +Grafik-Formaten "uberhaupt. Fast alle Pixel-orientiert arbeitenden Programme +unterst"utzen es. Auch Bilder, die "uber einen Scanner gewonnen werden, k"onnen +meistens (neben TIFF) auch im \PCX-Format abgelegt werden. \PCX\ umfa"st neben +monochromen Bildern auch Graustufen- und Farbgrafiken. \RUMgraph\ bearbeitet nur +monochrome \PCX-Files. Farb- bzw. Graustufenbilder m"ussen also vorher in +monochrome Bilder umgewandelt werden. Auf dem Markt (auch im +Public-Domain-Bereich) existiert eine gro"se Anzahl von Programmen, die diese +Umwandlung vornehmen. Entsprechendes gilt auch f"ur die Umwandlung anderer +Grafikformate nach \PCX. + +\marginlabel{Entfernen von Leerraum} +Das Programm \RUMgraph\ entfernt s"amtlichen Leerraum rund um das Bild. "Ubrig +bleibt ein Rechteck, das auf jeder Seite mit wenigstens einem schwarzen Punkt +besetzt ist. Soll um das Bild herum Leerraum vorgesehen werden, um Platz zu den +Nachbarzeichen zu gewinnen, so ist dies "uber die Optionen f"ur die metrischen +Werte (x, y, w, h und d) zu erreichen. + +\marginlabel{Zuordnung von Zeichen zu Teilbildern} +Wird ein gro"ses Bild in Teilbilder zerlegt, so werden diese fortlaufend freien +Zeichen zugeordnet. Die Zuordnung beginnt mit der in der c-Option angegebenen +Zeichennummer. Wird ein Zeichen erreicht, das bereits belegt ist, so wird es +"ubersprungen. Wird das Zeichen mit der Nummer 127 erreicht, so wird anschlie"send +mit dem Zeichen mit der Nummer 0 fortgefahren. Die von \RUMgraph\ vorgenommene +Zuordnung kann sowohl dem Log-File (Erweiterung: {\sf RGL}) als auch dem +\TeX-Input-File entnommen werden. + +\newpage + +\section[\RUMgraph\ --\ Workshop]{\RUMo{\sf graph}\ --\ Workshop} +\markboth{\RUMgraph\ --\ Workshop} +{\RUMgraph\ --\ Workshop} + +Ich m"ochte im folgenden einige Wege zur Gewinnung von Bildern aus verschiedenen +Quellen aufzeigen, die sich f"ur meine Arbeiten als Standard herausgebildet +haben. Wenn man sich, so wie ich, nur sporadisch mit der Einbindung von Grafik +besch"aftigt, so ist das Herausarbeiten von Standardwegen, die man ohne gro"se +Vorkehrungen nutzen kann, "au"serst wichtig. Denn, das soll nicht verschwiegen +werden, die Aufbereitung von Bildern und ihre Einbindung in ein Dokument kann +m"uhsam und auch sehr zeitaufwendig sein. Dies gilt besonders dann, wenn man sich +die Methoden erst erarbeiten oder auch nur wieder ins Ged"achnis rufen mu"s. + +\subsection{Anmerkungen zur Erzeugung der Bilder} +\markboth{Anmerkungen zur Erzeugung der Bilder} +{Anmerkungen zur Erzeugung der Bilder} + +Quellen f"ur die Gewinnung von Bildern sind neben Scannern und +Bildschirmmitschnitten vor allem spezielle Programme, die zu diesem Zweck +entworfen wurden. Ich selbst nutze zur Zeit die Programme AutoCAD f"ur technische +Zeichnungen, CorelDraw f"ur Pr"asentationsgrafiken, PC Paintbrush f"ur Pixelbilder +und Framework f"ur Diagramme. Aber auch mit OrCAD entworfene Schaltpl"ane, Bilder +vom Apple MacIntosh oder Darstellungen statistischer Daten von StatGraphics sind +von mir schon genutzt worden. + +Die Programme legen ihre Bilder im allgemeinen in einem Programm-spezifischen +Format ab. Nur einige wenige gestatten es, direkt die Formate \ADI\ bzw. +\PCX\ zu erzeugen. Allerdings stellt die gro"se Uneinheitlichkeit der +Grafikformate kein wirkliches Hindernis f"ur unser Vorhaben dar. Denn es gibt +heute sowohl im kommerziellen wie auch im Public-Domain- und Shareware-Bereich +gen"ugend Programme, die beinahe jedes Format in jedes umwandeln. Ich benutze +manchmal z.B. das Programm HiJaak, das die Formate PXL (ZSoft), FAX (CCITT), GIF +(CompuServ), TIFF, DXF (AutoDesk), IFF (Amiga), IMG (Digital Research), CUT +(Halo), PCL (HP Drucker), HPGL (HP Plotter), PIX (North American Software), PIC +(Lotus), MAC (Apple), MSP (Microsoft), WPG (WordPerfect) usw. ineinander +umwandelt. Auch wenn Programme wie dieses eine gute Basis darstellen, bevorzuge +ich jedoch meistens einen anderen Weg. Alle Programme k"onnen n"amlich +selbstverst"andlich einen Drucker ansteuern, und meistens kann die Druckausgabe +auch in einer Datei abgelegt werden. Ist letzteres nicht der Fall, so mu"s man +sich eines Drucker-Spoolers oder anderer Spezialprogramme bedienen. Die +Druckausgabe ist wohl die universellste Quelle zur Gewinnung von Bildern. Ich +benutze Ausgaben f"ur den HP LaserJet (PCL-Format) und f"ur PostScript-Drucker +(PS-Format); seltener auch Ausgaben f"ur einen HP-Plotter (HPGL-Format). Ich +kenne eigentlich kein wesentliches Programm, das nicht wenigstens eines dieser +Formate erzeugen kann. + +Ein besonders zu behandelndes Problem ist die Festlegung der Bildabmessungen, +insbesondere wenn das gleiche Bild f"ur verschiedene Drucker mit +unterschiedlichen Auf"|l"osungen erzeugt werden soll. Am Rechenzentrum betreiben +wir z.B. neben den "ublichen Laserdruckern mit 300-dpi-Auf"|l"osung auch einen +Drucker der Firma Agfa mit einer Auf"|l"osung von 406 dpi. Hier liegt eine der +St"arken von Programmen wie AutoCAD. Bei der Erzeugung eines \ADI-Files kann +jede gew"unschte Abmessung und jede Auf"|l"osung exakt spezifiziert werden. +Schwieriger ist dagegen die Anpassung von Druckausgaben, die typischerweise in +einer Auf"|l"osung von 300 dpi erstellt werden. Zwar kann, wie wir unten sehen +werden, die Auf"|l"osung bei der Umwandlung auch in gewissen Grenzen beeinflu"st +werden, aber so exotische Werte wie 406 dpi sind meistens nicht spezifizierbar. + +Hier hilft eine Besonderheit der Umwandlung durch \RUMgraph\ weiter. Jeder +Ein\-ga\-be-File wird n"amlich grunds"atzlich nur als Pixel-Quelle verstanden. +Zwar enthalten sowohl \ADI- als auch \PCX-Files eine Auf"|l"osungsangabe, +diese wird jedoch von \RUMgraph\ v"ollig ignoriert. Extrahiert wird nur das in +der jeweiligen Datei enthaltene Bitmuster, und die Gr"o"se eines Bildpunktes wird +ausschlie"slich durch die Angabe im {\em makefile\/} bestimmt. Damit hat man aber +die M"oglichkeit, auch Bilder, die "uber eine 300-dpi-LaserJet-Ausgabe gewonnen +werden, in gewissen Grenzen an andere Auf"|l"osungen anzupassen. + +Hat man z.B. ein Bild f"ur eine Auf"|l"osung von 300 dpi erzeugt und m"ochte das +gleiche Bild auch in anderen Auf"|l"osungen, z.B. 100 dpi und 406 dpi, vorhalten, +so mu"s man mit Hilfe des erzeugenden Programms das Ausgangsbild manipulieren. +F"ur die 100-dpi-Auf"|l"osung mu"s man es auf 1/3 verkleinern, f"ur die +406-dpi-Auf"|l"osung mu"s man es um ca. 1/3 (genauer 106/300) vergr"o"sern. Gibt man +diese so manipulierten Bilder als Druckerausgabe aus, so haben sie zwar erst +einmal alle die Auf"|l"osung von 300 dpi; die Gr"o"sen der Bilder verhalten sich aber +wie 1:3:4. Wandelt man diese Bilder nun um in \PXL-Files mit den Auf"|l"osungen +100, 300 und 406 dpi, so haben die drei Bilder bei Ausgabe auf Druckern mit +entsprechender Auf"|l"osung alle drei die gleiche reale Gr"o"se. + +Mir ist klar, da"s dieser Vorgehensweise Grenzen gesetzt sind. Vor allem hohe +Auf\-l"o\-sun\-gen (z.B. 2400 dpi) sind auf diese Art nur f"ur sehr kleine Bilder +zu realisieren. F"ur "`unser aller Tagesgesch"aft"' jedoch, das von Druckern mit +Auf"|l"osungen von 300 dpi bestimmt wird, ist der Ansatz gut praktizierbar. + +\subsection{Die Einbindung von PostScript-Bildern} +\markboth{Die Einbindung von PostScript-Bildern} +{Die Einbindung von PostScript-Bildern} + +Die Nutzung der PostScript-Ausgabe eines Programms ist f"ur mich zum bevorzugten +Weg zur Gewinnung von Bildern geworden. Selbst bei Programmen, wie z.B. +CorelDraw, die eine direkte \PCX-Ausgabe anbieten, lohnt sich h"aufig der +"`Umweg"' "uber PostScript. Denn viele Programme bieten ihren vollen +Leistungsumfang nur dann, wenn eine PostScript-Ausgabe angestrebt wird. Meistens +gibt es drei Varianten f"ur die PostScript-Ausgabe: + +\marginlabel{PostScript} Diese Ausgabe ist direkt f"ur einen PostScript +Drucker bestimmt. + +\marginlabel{EPS} Die Variante {\em encapsulated PostScript\/} bezeichnet eine +Variante, die dem Austausch mit anderen Programmen dient. Bestimmte +PostScript-Kommandos werden vermieden, und in vorangestellten Kommentaren sind +Zusatzangaben f"ur das Zielprogramm enthalten. + +\marginlabel{EPS mit Header-File} Hierbei handelt es sich ebenfalls um eine {\sf +EPS}-Ausgabe, der aber ein {\sf TIFF}-Pixel-File vorangestellt ist. Dieser wird +von manchen weiterverarbeitenden Programmen (z.B. PageMaker oder Ventura +Publisher) genutzt, um ein Pseudo-Preview zu erm"oglichen. + + +Je nach Programm, das f"ur die Umwandlung verwendet wird, k"onnen ein oder mehrere +dieser Formate genutzt werden. F"ur den von mir beschriebenen Weg ist nur die +Ausgabe "uber den echten PostScript Drucker m"oglich. + +Zur Umwandlung von PostScript nach \PCX\ sind mehrere Programme auf dem Markt +verf"ugbar. Ich benutze das Programm {\sf GoScript} der Firma LaserGo. Es bietet +einen echten Preview f"ur PostScript-Files, wird zu einem vern"unftigen Preis +angeboten und kann unter anderem direkt \PCX-Ausgaben erzeugen. Die Auf"|l"osung +kann dabei in engen Grenzen festgelegt werden. + +F"ur den Aufruf des Programms ist {\sf GoScript} "uber eine eigene +Umgebungsvariable {\em gs\/} mitzuteilen, wo seine Konfigurationsdaten, seine +Zeichens"atze usw. zu finden sind; z.B. + +\hspace*{1in} {\sf set\ \ gs=d:\verb+\+goscript} + +Danach kann das Programm gestartet werden mit einem Kommando der Form: + +\hspace*{1in} {\sf gs\ \ /P:treiberangabe\ \ postscriptfile} \newline +z.B. \newline +\hspace*{1in} +{\sf gs\ \ /P:"d:\verb+\+goscript\verb+\+pcx.drv\ \ \verb+\+300x300"\ \ +airplane.ps} + +Die Angabe {\sf 300x300} im Beispiel bezeichnet die gew"unschte Auf"|l"osung. F"ur +weitere Auf"|l"osungen und andere Optionen sei auf das {\sf GoScript}-Handbuch +verwiesen. Erzeugt wird ein monochromer \PCX-File, der unter dem Namen {\sf +GSWxxxx.PCX}, wobei {\sf xxxx} eine fortlaufende Nummer ist, auf der Platte +abgelegt wird. Eine sofortige Umbenennung in einen aussagekr"aftigeren Namen ist +zu empfehlen. Die Bilder werden "ubrigens wei"s auf schwarz dargestellt, so da"s +sich eine Umwandlung mit der i-Option anbietet. + +Die Clipart-Bilder der Beispiele wurden auf diese Weise gewonnen. + + + + +\subsection{Die Einbindung von HP-LaserJet-Ausgaben} +\markboth{Die Einbindung von HP-LaserJet-Ausgaben} +{Die Einbindung von HP-LaserJet-Ausgaben} + +Der Weg zu einem Bild "uber eine HP-LaserJet-Ausgabe (PCL-File) ist sozusagen die +{\em ultima ratio\/}. Man kann davon ausgehen, da"s jedes ernstzunehmende Programm +in der PC-Welt zumindest dieses Ausgabeformat anbietet. Ganz ohne Probleme, die +zu beachten sind, geht es aber auch hier nicht ab. + +\begin{enumerate} + +\item Die von HP definierte Druckersteuersprache PCL hat bereits eine l"angere +Geschichte hinter sich. Sie ist im Laufe der Zeit immer wieder an neuere Drucker +angepa"st worden. HP versucht diese Entwicklung durch die Definition +verschiedener Level in den Griff zu bekommen, allerdings etwas halbherzig, denn +auch innerhalb eines Levels gibt es leider immer wieder Unterschiede. Gerade die +Steuersprache des ansonsten sehr attraktiven HP DeskJet gestattet einige +ansonsten nicht vorhandene Sonderbefehle, die bei der Umwandlung Schwierigkeiten +bereiten k"onnen. Im allgemeinen ist man aber auf der sicheren Seite, wenn man +eine Druckerausgabe f"ur einen HP LaserJet, einen HP LaserJet Plus oder einen HP +LaserJet Serie II aufbereitet. + +\item Die Definition von PCL umfa"st neben der Grafiksteuerung auch ein +leistungs\-f"ahi\-ges Font-Management. Befehle, die in den letzteren Rahmen +fallen, werden von manchen Umwandlungsprogrammen nicht bearbeitet. Zwar reicht +dies in der "uberwiegenden Zahl der F"alle v"ollig aus, im Einzelfall k"onnen aber +doch gerade Beschriftungen bei der Umwandlung verloren gehen. + +\end{enumerate} + +Ich benutze zur Umwandlung von PCL nach \PCX\ das Programm {\sf HP2PCX} der +Firma ZSoft. Es ist Bestandteil des Lieferumfangs des Programms {\em PC +Paintbrush IV Plus\/}. Das Programm behandelt auch Font-Befehle und sieht +zus"atzlich einen Ersetzungsmechanismus f"ur nicht vorhandene Zeichens"atze vor. +Einzelheiten sind dem Handbuch zu entnehmen. + +Der Aufruf des Programms erfolgt in der "ublichen Weise durch eine +Kommandoeingabe der wohl nicht weiter erkl"arungsbed"urftigen Form: + +\hspace*{1in} {\sf HP2PCX\ \ pcl-eingabe-file\ \ pcx-ausgabe-file} + +Es sei noch darauf hingewiesen, da"s auch das \TeX-Paket em\TeX\ von Eberhard +Mattes ein "ahnliches Programm mit Namen {\sf PCLtoMSP} enth"alt. Es bearbeitet +jedoch keine Zeichensatzbefehle, und als Ausgabe wird ein {\sf MSP}-File des +Windows-Paint-Programms erzeugt, der noch mit einem Programm wie {\em HiJaak\/} +nach \PCX\ umgewandelt werden mu"s. + + + +\subsection{Farbbilder} +\markboth{Farbbilder} +{Farbbilder} + +Ein Farbdrucker wirklich guter Qualit"at ist zur Zeit ein "au"serst selten +verf"ugbares Ausgabeger"at. Den meisten Lesern wird wohl wie mir nur ein +monochromer Drucker zur Verf"ugung stehen. Nun liegen aber viele Bilder, +insbesondere Fotos, in Farbe vor. Dies bedeutet, da"s auch nach Wegen gesucht +werden mu"s, Farbbilder in monochrome Bitmaps umzuwandeln. + +Hierzu bedient man sich "ublicherweise eines Farbzerstreuungsverfahrens ({\em +dithering\/}). Dabei wird jeder Farbpunkt nach einem bestimmten Muster in +Grauwerte zerlegt, die dann anteilm"a"sig auf die Nachbarpunkte zerstreut werden. +"Uberschreiten die aufsummierten Grauwerte eines Punktes eine vorgegebene +Schwelle, so wird der Punkt schwarz gesetzt, sonst bleibt er wei"s. So entstehen +Pseudo-Graustufenbilder, die eine durchaus akzeptable Qualit"at erreichen. Das +Shareware-Produkt {\sf GWS} ({\em Grafic Work Shop\/}) bietet hier besonders +vielf"altige und ausgefeilte Verfahren zur Farbverteilung. Leider ist es +unm"oglich, ein Verfahren zu benennen, das in jedem Fall beste Ergebnisse +erzielt. Man wird von Fall zu Fall mehrere Methoden ausprobieren m"ussen. Da aber +gerade die besonders guten Verfahren "au"serst zeitintensiv sind, ist der +erforderliche Zeitaufwand betr"achtlich. + +Ich habe mit gutem Erfolg einen anderen Weg beschritten. Zum Lieferumfang des +{\sf GWS} geh"ort auch ein Programm mit Namen {\sf PostGif}. Es wandelt Farb-{\sf +GIF}-Files in Graustufen-PostScript-Files um. Ein Farbbild, das nicht im {\sf +GIF}-Format vorliegt, kann mit dem {\sf GWS}-Hauptprogramm hierhin umgewandelt +werden. Die erzeugten PostScript-Bilder k"onnen dann, wie oben beschrieben, +weiterverarbeitet werden. + +Das Beispiel des Clown-Fotos wurde auf diesem Weg gewonnen. + + +\subsection{Aufbereitung gescannter Bilder mit AutoCAD} +\markboth{Aufbereitung gescannter Bilder mit AutoCAD} +{Aufbereitung gescannter Bilder mit AutoCAD} + +Bilder, die "uber einen Scanner gewonnen werden, sind zun"achst in ihrer Gr"o"se +und Auf"|l"osung festgefroren. M"ochte man sie als Basis f"ur eine Reihe von +gleichen Bildern unterschiedlicher Gr"o"se nutzen, so m"ussen sie vektorisiert +werden. Auch zu diesem Zweck existieren Spezialprogramme, wie z.B. ScanPro oder +Streamline, und auch manche Grafikprogramme bieten eine entsprechende +Dienstleistung an. Besonders bei Graustufen- oder Farbbildern "uberzeugen die so +automatisch gewonnenen Bilder nicht immer. + +Ich habe mir deshalb eine andere M"oglichkeit zur "`Vektorisierung per Hand"' +geschaffen. Ich "ubernehme die gescannten Bilder nach AutoCAD und zeichne ihre +Konturen mit den dort zur Verf"ugung stehenden Werkzeugen nach. F"ur weniger +komplexe Bilder ist dies mit ertr"aglichem Aufwand zu bewerkstelligen. + +Zur "Ubernahme eines \PCX-Files nach AutoCAD dient das von mir geschriebene +Programm {\sf PCXtoDXB}. Es wird aufgerufen durch eine Kommandoeingabe der Form: + +\hspace*{1in} {\sf PCXtoDXB\ \ pcx-file\ \ dxb-file} + +Das Ergebnis ist ein sogenannter {\sf DXB}-File. Dies ist ein bin"ares +AutoCAD-spe\-zi\-fi\-sches Austauschformat, das von AutoCAD mit dem Befehl {\sf +DXBIN} eingelesen werden kann. Um die Gr"o"se des {\sf DXB}-Files in Grenzen zu +halten, wird der Eingabe-Pixel-File nicht, wie es sich anbieten w"urde, in eine +Punktwolke umgewandelt, sondern in eine Anh"aufung von waagerechten und +senkrechten Linien. Diese grobe Vorlage lege ich innerhalb von AutoCAD in ein +eigenes {\em layer\/} und w"ahle dabei eine helle Grundfarbe, z.B. gelb; das +Nachzeichnen geschieht dann in einem anderen {\em layer\/} in einer dunkleren +Farbe, z.B. schwarz. + +Das Bild des \LaTeX-L"owen ist so entstanden, und ein Institut der Universit"at +hat auf diese Weise "uber den Scanner einen singalesischen Zeichensatz generiert. + + +\subsection{Ger"ateunabh"angigkeit} +\markboth{Ger"ateunabh"angigkeit} +{Ger"ateunabh"angigkeit} + +Die Ergebnisse meiner Vorgehensweise sind im strengen Sinne {\bf nicht} +ge\-r"a\-te\-un\-ab\-h"an\-gig. \RUMgraph\ geht von Pixel-Quellen aus, und deren +Auf"|l"osung und Abmessung spiegelt sich im \TFM- und \PXL-File wieder. F"ur die +Einbindung von Einzelbildern in ein bestimmtes Dokument, das nur auf einem +Drucker ausgegeben werden soll, st"ort diese Abh"angigkeit in keiner Weise. + +Hat man jedoch mit den in diesem Abschnitt beschriebenen Methoden aus einem Bild +mehrere Varianten f"ur Drucker verschiedener Auf"|l"osungen gewonnen, so m"ochte +man f"ur alle Varianten nat"urlich nur einen \TFM-File verwenden. +Entsprechendes gilt auch f"ur das in den Beispielen wiedergegebene singalesische +Alphabet, das in mehreren Vergr"o"serungen erzeugt wurde. + +\RUMgraph\ bietet das Handwerkszeug an, um die Ger"ateunabh"angigkeit in diesem +Sinne zu erreichen. Jedes der Bilder und jeder der Zeichens"atze mit +unterschiedlicher Auf"|l"osung bzw. Vergr"o"serung entstehen durch einen eigenen +\RUMgraph-Lauf mit eigenem {\em makefile\/}. Jeder dieser {\em makefiles\/} enth"alt +Angaben, die den \TFM-File beeinflussen. Konkret sind dies die Werte der w-, h-, +d- und s-Option. M"ochte man also aus allen L"aufen einer Serie identische +\TFM-Files gewinnen, so m"ussen in allen {\em makefiles\/} diese Werte gleich +angesetzt werden. Dies ist m"oglich, da genau diese Optionen in absoluten, von +der Pixel-Auf"|l"osung unabh"angigen Ma"seinheiten angegeben werden k"onnen. Die +automatischen Festlegungen dieser Optionen sind jedoch weniger geeignet. Sie +benutzen die in Pixeln gemessenen Abmessungen der Bitmaps, werden demnach also +auch, durch Rundungsfehler bedingt, f"ur jeden Lauf einen anderen \TFM-File +erzeugen. Dies hei"st aber nichts weiter, als da"s der Benutzer diese Optionen +explizit spezifizieren mu"s. + +\newpage + +Zusammenfassend kann man sagen: + +\begin{quote} + +{\bf Will man f"ur eine Serie von Bildern, die aus Varianten des gleichen +Bildes mit unterschiedlichen Auf"|l"osungen bzw. Vergr"o"serungen besteht, gleiche +\TFM-Files erhalten, so sind in allen zugeh"origen makefiles die gleichen Werte +f"ur die Optionen w, h, d und s explizit einzutragen.} + +\end{quote} + + +\section{{\em makefile\/}-Beispiele} +\markboth{{\em makefile\/}-Beispiele} +{{\em makefile\/}-Beispiele} + + +\marginlabel{Das Flugzeug} +\begin{quote} +{\sf + /P:airplane \newline + /R:300 \newline + /C:A \ \ /N:AirPlane \ \ /T:PCX \ \ /F:airplane.pcx \ \ /S:3 \newline +} +\end{quote} + +\marginlabel{Das gro"se America-Bild} +\begin{quote} +{\sf + /P:america \newline + /R:300 \newline + /C:A \ \ /N:America \ \ /T:PCX\ \ /F:america.pcx \ \ /I \ \ /S:61 \newline +} +\end{quote} + +\marginlabel{Das singalesische Alphabet} +\begin{quote} +{\sf +\begin{tabbing} + /M:MM \ \ \= /M:MMMM \ \ \= /M:MMM \ \ \= /M:vokal11s.adi \kill + /P:singa \\ + /R:300 \\ + /C:65 \> /N:Th \> /T:ADI \> /F:t08.adi \\ + /C:66 \> /N:BbS \> /T:ADI \> /F:b02s.adi \\ + /C:67 \> /N:Bf \> /T:ADI \> /F:b06.adi \\ + /C:68 \> /N:Ca \> /T:ADI \> /F:c01.adi \\ + /C:69 \> /N:Da \> /T:ADI \> /F:d01.adi \\ + /C:70 \> /N:DbS \> /T:ADI \> /F:d02s.adi \\ + /C:71 \> /N:Dc \> /T:ADI \> /F:d03.adi \\ + /C:72 \> /N:Dg \> /T:ADI \> /F:d07.adi \\ + /C:73 \> /N:DDbs \> /T:ADI \> /F:dd02s.adi \\ + /C:74 \> /N:DHAS \> /T:ADI \> /F:dhas.adi \\ + /C:75 \> /N:Kg \> /T:ADI \> /F:k07.adi \\ + /C:76 \> /N:Vks \> /T:ADI \> /F:vokal11s.adi \\ +\end{tabbing} +} +\end{quote} + +\begin{fullpage} + +\section{Bilder} +\markboth{Bilder} +{Bilder} + +\parbox{1in}{Mein Lieblingsl"owe} +\parbox{5.45in}{\centering \Lion} + +\vspace*{2cm} + +\parbox{1in}{Clipart} +\parbox{5.45in} + {\centering + \parbox{4cm}{\Rolls} + \hspace*{2cm} + \parbox{5.5cm}{\Monitor} + } + +\vspace*{2cm} + +\parbox{1in}{AutoCAD} +\parbox{5.45in}{\centering \Columbia} + +\newpage + +\parbox{1in}{MacIntosh} +\parbox{5.45in}{\centering \Boat} + +\vspace*{2cm} + +\parbox{1in}{Photo} +\parbox{5.45in}{\centering \Clown} + +\vspace*{2cm} + +\parbox{1in}{Ein Logo} +\parbox{5.45in}{\centering \infoRUM} + +\vspace*{2cm} + +\parbox{1in}{Singalesisch} +\parbox{5.45in} + {\centering + \Th \ \BbS \ \Bf \ \Ca \ \Da \ \DbS \ \Dc \ \Dg \ \DDbs \ \DHAS \ \Kg \ \Vks + } + +\newpage +\America + +\end{fullpage} + +\end{document} diff --git a/support/rumgraph/singa.pk b/support/rumgraph/singa.pk Binary files differnew file mode 100644 index 0000000000..1e34211d05 --- /dev/null +++ b/support/rumgraph/singa.pk diff --git a/support/rumgraph/singa.tex b/support/rumgraph/singa.tex new file mode 100644 index 0000000000..65c2eaf479 --- /dev/null +++ b/support/rumgraph/singa.tex @@ -0,0 +1,50 @@ +\newfont{\HwKsinga}{singa scaled 1000} + +\newcommand{\Th}{{\HwKsinga + \symbol{65} +}} + +\newcommand{\BbS}{{\HwKsinga + \symbol{66} +}} + +\newcommand{\Bf}{{\HwKsinga + \symbol{67} +}} + +\newcommand{\Ca}{{\HwKsinga + \symbol{68} +}} + +\newcommand{\Da}{{\HwKsinga + \symbol{69} +}} + +\newcommand{\DbS}{{\HwKsinga + \symbol{70} +}} + +\newcommand{\Dc}{{\HwKsinga + \symbol{71} +}} + +\newcommand{\Dg}{{\HwKsinga + \symbol{72} +}} + +\newcommand{\DDbs}{{\HwKsinga + \symbol{73} +}} + +\newcommand{\DHAS}{{\HwKsinga + \symbol{74} +}} + +\newcommand{\Kg}{{\HwKsinga + \symbol{75} +}} + +\newcommand{\Vks}{{\HwKsinga + \symbol{76} +}} + diff --git a/support/rumgraph/singa.tfm b/support/rumgraph/singa.tfm Binary files differnew file mode 100644 index 0000000000..82d768c103 --- /dev/null +++ b/support/rumgraph/singa.tfm |