summaryrefslogtreecommitdiff
path: root/support/rumgraph
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/rumgraph
Initial commit
Diffstat (limited to 'support/rumgraph')
-rw-r--r--support/rumgraph/airplane.pkbin0 -> 9704 bytes
-rw-r--r--support/rumgraph/airplane.tex8
-rw-r--r--support/rumgraph/airplane.tfmbin0 -> 72 bytes
-rw-r--r--support/rumgraph/america.pkbin0 -> 37888 bytes
-rw-r--r--support/rumgraph/america.tex66
-rw-r--r--support/rumgraph/america.tfmbin0 -> 304 bytes
-rw-r--r--support/rumgraph/boat.pkbin0 -> 26268 bytes
-rw-r--r--support/rumgraph/boat.tex15
-rw-r--r--support/rumgraph/boat.tfmbin0 -> 100 bytes
-rw-r--r--support/rumgraph/clown.pkbin0 -> 118180 bytes
-rw-r--r--support/rumgraph/clown.tex46
-rw-r--r--support/rumgraph/clown.tfmbin0 -> 224 bytes
-rw-r--r--support/rumgraph/columbia.pkbin0 -> 9364 bytes
-rw-r--r--support/rumgraph/columbia.tex8
-rw-r--r--support/rumgraph/columbia.tfmbin0 -> 72 bytes
-rw-r--r--support/rumgraph/inforum.pkbin0 -> 3576 bytes
-rw-r--r--support/rumgraph/inforum.tex10
-rw-r--r--support/rumgraph/inforum.tfmbin0 -> 80 bytes
-rw-r--r--support/rumgraph/la.tex50
-rw-r--r--support/rumgraph/lb.tex18
-rw-r--r--support/rumgraph/lc.tex41
-rw-r--r--support/rumgraph/lion.pkbin0 -> 19648 bytes
-rw-r--r--support/rumgraph/lion.tex10
-rw-r--r--support/rumgraph/lion.tfmbin0 -> 80 bytes
-rw-r--r--support/rumgraph/monitor.pkbin0 -> 15388 bytes
-rw-r--r--support/rumgraph/monitor.tex10
-rw-r--r--support/rumgraph/monitor.tfmbin0 -> 80 bytes
-rw-r--r--support/rumgraph/quickref.dvibin0 -> 7644 bytes
-rw-r--r--support/rumgraph/quickref.tex243
-rw-r--r--support/rumgraph/refman.sty501
-rw-r--r--support/rumgraph/rolls.pkbin0 -> 6976 bytes
-rw-r--r--support/rumgraph/rolls.tex8
-rw-r--r--support/rumgraph/rolls.tfmbin0 -> 72 bytes
-rw-r--r--support/rumgraph/rum.pkbin0 -> 2344 bytes
-rw-r--r--support/rumgraph/rum.tex26
-rw-r--r--support/rumgraph/rum.tfmbin0 -> 144 bytes
-rw-r--r--support/rumgraph/rumgraph.dvibin0 -> 68456 bytes
-rw-r--r--support/rumgraph/rumgraph.tex928
-rw-r--r--support/rumgraph/singa.pkbin0 -> 1436 bytes
-rw-r--r--support/rumgraph/singa.tex50
-rw-r--r--support/rumgraph/singa.tfmbin0 -> 144 bytes
41 files changed, 2038 insertions, 0 deletions
diff --git a/support/rumgraph/airplane.pk b/support/rumgraph/airplane.pk
new file mode 100644
index 0000000000..107a33ddde
--- /dev/null
+++ b/support/rumgraph/airplane.pk
Binary files differ
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
new file mode 100644
index 0000000000..b217bcc02a
--- /dev/null
+++ b/support/rumgraph/airplane.tfm
Binary files differ
diff --git a/support/rumgraph/america.pk b/support/rumgraph/america.pk
new file mode 100644
index 0000000000..c7945d327d
--- /dev/null
+++ b/support/rumgraph/america.pk
Binary files differ
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
new file mode 100644
index 0000000000..6b0fdda3e4
--- /dev/null
+++ b/support/rumgraph/america.tfm
Binary files differ
diff --git a/support/rumgraph/boat.pk b/support/rumgraph/boat.pk
new file mode 100644
index 0000000000..212a614252
--- /dev/null
+++ b/support/rumgraph/boat.pk
Binary files differ
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
new file mode 100644
index 0000000000..48c0ae5569
--- /dev/null
+++ b/support/rumgraph/boat.tfm
Binary files differ
diff --git a/support/rumgraph/clown.pk b/support/rumgraph/clown.pk
new file mode 100644
index 0000000000..920de2ef25
--- /dev/null
+++ b/support/rumgraph/clown.pk
Binary files differ
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
new file mode 100644
index 0000000000..ccd5c60280
--- /dev/null
+++ b/support/rumgraph/clown.tfm
Binary files differ
diff --git a/support/rumgraph/columbia.pk b/support/rumgraph/columbia.pk
new file mode 100644
index 0000000000..16837442c6
--- /dev/null
+++ b/support/rumgraph/columbia.pk
Binary files differ
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
new file mode 100644
index 0000000000..417835d704
--- /dev/null
+++ b/support/rumgraph/columbia.tfm
Binary files differ
diff --git a/support/rumgraph/inforum.pk b/support/rumgraph/inforum.pk
new file mode 100644
index 0000000000..b6ae522c0a
--- /dev/null
+++ b/support/rumgraph/inforum.pk
Binary files differ
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
new file mode 100644
index 0000000000..16d6b8f7a1
--- /dev/null
+++ b/support/rumgraph/inforum.tfm
Binary files differ
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
new file mode 100644
index 0000000000..4a49e11b49
--- /dev/null
+++ b/support/rumgraph/lion.pk
Binary files differ
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
new file mode 100644
index 0000000000..91b00f105a
--- /dev/null
+++ b/support/rumgraph/lion.tfm
Binary files differ
diff --git a/support/rumgraph/monitor.pk b/support/rumgraph/monitor.pk
new file mode 100644
index 0000000000..231c127b25
--- /dev/null
+++ b/support/rumgraph/monitor.pk
Binary files differ
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
new file mode 100644
index 0000000000..8588352998
--- /dev/null
+++ b/support/rumgraph/monitor.tfm
Binary files differ
diff --git a/support/rumgraph/quickref.dvi b/support/rumgraph/quickref.dvi
new file mode 100644
index 0000000000..7f3a06f17c
--- /dev/null
+++ b/support/rumgraph/quickref.dvi
Binary files differ
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
new file mode 100644
index 0000000000..771cf3cae9
--- /dev/null
+++ b/support/rumgraph/rolls.pk
Binary files differ
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
new file mode 100644
index 0000000000..43bb53c15c
--- /dev/null
+++ b/support/rumgraph/rolls.tfm
Binary files differ
diff --git a/support/rumgraph/rum.pk b/support/rumgraph/rum.pk
new file mode 100644
index 0000000000..8da5b87a90
--- /dev/null
+++ b/support/rumgraph/rum.pk
Binary files differ
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
new file mode 100644
index 0000000000..797475e9b5
--- /dev/null
+++ b/support/rumgraph/rum.tfm
Binary files differ
diff --git a/support/rumgraph/rumgraph.dvi b/support/rumgraph/rumgraph.dvi
new file mode 100644
index 0000000000..6cedfacd03
--- /dev/null
+++ b/support/rumgraph/rumgraph.dvi
Binary files differ
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
new file mode 100644
index 0000000000..1e34211d05
--- /dev/null
+++ b/support/rumgraph/singa.pk
Binary files differ
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
new file mode 100644
index 0000000000..82d768c103
--- /dev/null
+++ b/support/rumgraph/singa.tfm
Binary files differ