summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:51:06 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:51:06 +0000
commit270cc45edcd93dc6e6731cd53495b709b5f5f11f (patch)
tree80f193c9bcd17a98ec650959d0a57c859b11280d
parentbf7e5eda82d5177d838d28170dce0f539f5e1687 (diff)
trunk/Master/texmf-dist/source/latex/bayer
git-svn-id: svn://tug.org/texlive/trunk@152 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/source/latex/bayer/universal.dtx3320
-rw-r--r--Master/texmf-dist/source/latex/bayer/universal.ins78
2 files changed, 3398 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/bayer/universal.dtx b/Master/texmf-dist/source/latex/bayer/universal.dtx
new file mode 100644
index 00000000000..87935ad8dac
--- /dev/null
+++ b/Master/texmf-dist/source/latex/bayer/universal.dtx
@@ -0,0 +1,3320 @@
+% \iffalse % universal.dtx
+%<*copyright>
+% universal font and macros for use with LaTeX, TeX and METAFONT
+% $Header: universal.dtx,v 1.0 97/12/24 14:43:14 sdc Exp $
+%$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright (C) 1997 Christian Holm.
+%
+% The universal package and font is free software; you can
+% redistribute it and/or modify it under the terms of the GNU
+% General Public License as published by the Free Software
+% Foundation; either version 2 of the License, or (at your option)
+% any later version.
+%
+% The universal package and font is distributed in the hope that it
+% will be useful, but WITHOUT ANY WARRANTY; without even the implied
+% warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+% See the GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% @LaTeX-style-file{
+%% Author = "Christian Holm",
+%% Version = "1.0",
+%% Date = "1997/12/24",
+%% Time = "14:43:14",
+%% Filename = "universal.dtx",
+%% Address = "Niels Bohr Institute of Physics
+%% University of Copenhagen
+%% Denmark",
+%% Email = "cholm@fys.ku.dk (Internet)",
+%% CodeTable = "ISO/ASCII",
+%% Keywords = "LaTeX2e, universal, Herbert Bayer, bauhaus",
+%% Supported = "yes",
+%% Abstract = "LaTeX package for providing support for typesetting
+%% in Herbert Bayers universal font"
+%% }
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%</copyright>
+%<*driver>
+\documentclass[twoside]{ltxdoc}
+\usepackage[titlepage]{universal}
+\usepackage{mflogo,a4wide}
+\usepackage[dvips]{graphicx,epsfig}
+\EnableCrossrefs
+\RecordChanges
+\CodelineIndex
+\typeout{Expect some Under- and overfull boxes}
+\begin{document}
+ \DocInput{universal.dtx}
+\end{document}
+%</driver>
+% \fi
+% \CheckSum{189}
+% \def\fileversion{v1.0}
+% \def\filedate{97/12/24}
+% \def\docdate {january 16, 1997}
+% \def\bs{{\tt\char'134}}
+% \newcommand{\Lcs}[1]{{\bs\tt#1}}
+% \DoNotIndex{\@ne,\advance,\begin,\char,\closein,\def,\DeclareOption}
+% \DoNotIndex{\divide,\docdate,\else,\end,\fi,\filedate,\fileversion}
+% \DoNotIndex{\framebox,\global,\ifdim,\ifeof,\ifnum,\ifx,\let,\loop}
+% \DoNotIndex{\makebox,\mbox,\mutliply,\NeedsTeXFormat,\newcommand}
+% \DoNotIndex{\newcount,\newdim,\newenvironment,\newif,\newsavebox}
+% \DoNotIndex{\noindent,\openin,\PackageWarning,\par,\ProcessOptions}
+% \DoNotIndex{\ProvidesPackage,\put,\relax,\repeat,\RequirePackage}
+% \DoNotIndex{\rule,\savebox,\space,\tempa,\textsc,\tt,\undefined}
+% \DoNotIndex{\usebox,\vspace,\vfill,\newdimen,\newpage,\normalsize}
+% \DoNotIndex{\Large,\chardef,\clearpage,\begingroup,\endgroup}
+% \DoNotIndex{\font,\hspace,\thispagestyle}
+% \changes{v1.0}{97/12/24}{The creation of \textsf{``universal''}
+% font}
+% \date{\docdate}
+% \title{the universal package}
+% \author{christian holm}
+% \abstract{
+% {\large experiment with simplified way of writing:
+% \begin{enumerate}
+% \item this way of writing is recommended by all typographic
+% designers as the future way of writing.
+% \item by writing in minuscules our writing looses nothing,
+% but is easier to read, considerably more economical.
+% \item why must you for one sound have two tokens, e.g.\
+% A and a? why two alphabets for one word, why this double
+% set of signs, when the half is enough.
+% \end{enumerate}
+% \begin{flushright}
+% herbert bayer\\
+% 1925\index{Bayer, Herbert}
+% \end{flushright}}
+% }
+% \maketitle
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% This package contains the \MF{} source and driver files for the
+% ``universal'' font, designed by Herbert Bayer, a teacher at the
+% bauhaus school in Weimar.\index{Bayer, Herbert}
+%
+% The fonts name is ``universal'' and \emph{not} universal, since it
+% is not the exact design of Herbert Bayer, but rather based
+% on his design. All copyright on the original design goes
+% to Herbert Bayer or who ever may have it now.
+%
+% This source was implemented into \MF{} by Christian Holm,
+% based on a lot of (printed) samples of the original font.
+%
+% \section{The Font}
+%
+% The font uses \texttt{plain.base} and \emph{not} \texttt{cmbase.mf},
+% so it should work on most systems (I have \emph{never} heard of any
+% one having \MF{} and without \textsf{Computer Modern} fonts, but who
+% knows!).
+%
+% ``universal'' is avaliable only in normal shape (no
+% \textit{italized}, \textbf{bold face}, \textsl{slanted}, or
+% \textsc{small caps}), since it wouldn't look good.
+%
+% The font is rather heavy, and therefore only suitable for graphical
+% pages (i.e. \emph{not} text pages), such as a title page etc.
+% An example of such a page is on page~\pageref{ex}.
+%
+% Shapes bold face, slanted, italized, and small caps
+% are substitued by the default for \textsf{Computer Modern Roman
+% Sans Serif} (\texttt{cmssxx.mf}), if you use the \LaTeXe{} package
+% provided.
+%
+% Different sizes (8, 9, 10, 12, 17pt) are avaliable, and others
+% may be generated by \MF{}.
+%
+% No \textbayer{f} ligatures is defined, since they should not be
+% used in this font. However, dotless i (\textbayer{\i}) and j
+% (\textbayer{\j}) is defined for use with accents.
+%
+% \textbayer{\{~\}~\|~\S}, are included, but at non-standard
+% (\TeX{}-wise) positions. To take care of this, \texttt{universal.sty}
+% contains the nessecary code for \TeX{} (and \LaTeX{}) to find them.
+%
+% \subsection{Modifications to the original design}
+%
+% However, some modifications has been made. Any deviations from
+% the original design is entirely of my doing, but please notice
+% I make no claim of consistency, compability or exactness.
+%
+% I have tried to keep as close as possible to the
+% original principle of Herbert Bayers design, as possible. Most
+% of the modifications are due to my conception of the basic
+% principles of this font, and are extra- an intrapolations based
+% on this conception. Some of the modifications are also based on
+% other conceptions of the original principle, for instance the
+% true type font ``bauhaus'' avaliable for
+% Windows95$^{\mbox{\sc tm}}$.
+%
+% Use this font if you like it, and if you think it deviate too
+% much from the original idea, don't use it, or let me know, so
+% that I might try to correct any mistakes.
+%
+% Below is summerized my modifications:
+% \begin{description}
+% \item[Upper Case letters:]
+% Upper case letters are avaliable in this implementation. Herbert
+% Bayer never designed any upper case letters, so those avaliable
+% here, is of my doing.
+%
+% \item[Numbers:]
+% I haven't been able to find any samples of Herbert Bayers original
+% design for numbers, (if he indeed made one) so those here present,
+% are extrapolations.
+%
+% \item[Punctuation Marks:]
+% Again, I have not found the original design, but have relied heavily
+% on other conceptions of Herbert Bayers design.
+%
+% \item[Accents:]
+% What I said on punctuation marks also goes for accents.
+%
+% \item[Odinary Symbols:]
+% Repeat the above!
+%
+% \item[Bauhaus Symbols:]
+% This where \emph{never} present in Herbert Bayers design, but I have
+% included them here, since I think they're beautiful, and who knows --
+% maybe of some use. The face symbol could be used to indicate
+% fascination of the bauhaus school, or some thing like that!
+% \end{description}
+%
+% Table~\ref{font} shows all the ``characters'' of the font:
+% \par
+% \newcount\n\newcount\m\newcount\p\newdimen\dim
+% \def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}}
+% \def\hex#1{\hbox{\rm\H{}\tt#1}}
+% \def\setdigs#1"#2{\gdef\h{#2}
+% \m=\n \divide\m by 64 \xdef\0{\the\m}%
+% \multiply\m by-64 \advance\m by\n \divide\m by 8 \xdef\1{\the\m}}
+% \def\testrow{\setbox0=\hbox{\penalty 1\def\\{\char"\h}%
+% \\0\\1\\2\\3\\4\\5\\6\\7\\8\\9\\A\\B\\C\\D\\E\\F%
+% \global\p=\lastpenalty}}
+% \def\oddline{\cr
+% \noalign{\nointerlineskip}
+% \multispan{19}\hrulefill&
+% \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
+% \noalign{\nointerlineskip}}
+% \newif\ifskipping
+% \def\evenline{\loop\skippingfalse
+% \ifnum\n<256 \m=\n \divide\m 16 \chardef\next=\m
+% \expandafter\setdigs\meaning\next \testrow
+% \ifnum\p=1 \skippingtrue \fi\fi
+% \ifskipping \global\advance\n 16 \repeat
+% \ifnum\n=256 \let\next=\endchart\else\let\next=\morechart\fi
+% \next}
+% \def\morechart{\cr\noalign{\hrule\penalty5000}
+% \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m}
+% \chartline \evenline}
+% \def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
+% \def\chartstrut{\lower4.5pt\vbox to14pt{}}
+% \def\Table{$$\global\n=0
+% \halign to\hsize\bgroup
+% \chartstrut##\tabskip0pt plus10pt&
+% &\hfil##\hfil&\vrule##\cr
+% \lower6.5pt\null
+% &&&\oct0&&\oct1&&\oct2&&\oct3&&\oct4&&\oct5&&\oct6&&\oct7&\evenline}
+% \def\endchart{\cr\noalign{\hrule}
+% \raise11.5pt\null&&&\hex 8&&\hex 9&&\hex A&&\hex B&
+% &\hex C&&\hex D&&\hex E&&\hex F&\cr\egroup$$\par}
+% \def\:{\setbox0=\hbox{\char\n}%
+% \ifdim\ht0>7.5pt\reposition
+% \else\ifdim\dp0>2.5pt\reposition\fi\fi
+% \box0\global\advance\n 1 }
+% \def\reposition{
+% \setbox0=\vbox{\kern2pt\box0}\dim=\dp0
+% \advance\dim 2pt \dp0=\dim}
+% \def\centerlargechars{
+% \def\reposition{\setbox0=\hbox{$\vcenter{\kern2pt\box0\kern2pt}$}}}
+%
+% \begin{figure}
+% \begingroup
+% \font\LARGEbayer=universal17
+% \LARGEbayer
+% \Table
+% \endgroup
+% \caption{Letters and symbols in ``universal'' font.}
+% \label{font}
+% \end{figure}
+%
+% \newpage
+% \label{ex}
+% \begingroup
+% \font\HUGEbayer=universal17 at 80pt
+% \par\medskip\bayer\noindent
+% {\Huge der bauhaus schule am dessau, weimar und berlin 1919--1933}\\
+% \rule{\textwidth}{.3cm}
+% \par\vspace{1cm}\par\noindent\hspace{.4\textwidth}
+% \rule{.1cm}{8cm}
+% \raisebox{3cm}{
+% \begin{minipage}[l]{.5\textwidth}
+% the bauhaus school in germany originally located at dessau,
+% was a school for any kind of design, ranging from potery to
+% furniture, from painting to --- what was considered the prime
+% form of design --- architecture. many famous designers came
+% from, or taught at bauhaus, for example mies van der rhoe,
+% herbert bayer, kandinsky, walter gropius and gerrit rietveld.
+% the style ``die stjil'' was explored here, and painters like
+% mondrian made large contributions to what today is known as
+% ``the bauhaus style''.
+% \end{minipage}}
+% \par\vspace{1cm}\hspace{.25\textwidth}\rule{.1cm}{5cm}
+% \hspace{.5cm}\raisebox{2cm}{{\HUGEbayer \bauhead}}
+% \raisebox{3cm}{
+% \begin{minipage}[l]{.4\textwidth}
+% this is one of the logos designed for the bauhaus schule,
+% and properly the most well--knowned. use it to show your
+% appriciation of bauhaus, or for decoration.
+% \end{minipage}}
+% \hspace{-.8\textwidth}\raisebox{1cm}{\rule{.75\textwidth}{.2cm}}
+% \endgroup
+% \index{Bayer, Herbert}\index{Rhoe, Mies van der}
+% \index{Gropius, Walter}\index{Rietveld, Gerrit}
+% \index{Kandinsky}\index{Mondrian}\index{die stjil}
+% \index{Bauhaus 1919--1933}
+% \newpage
+%
+% \section{\MF{} and this font}
+%
+% The \MF{} source files should be in
+% \begin{verbatim}
+% /usr/lib/texmf/local/fonts/source/bayer
+% \end{verbatim}
+% (for te\TeX{}),
+% or somewhere equivilante, where \MF{} can find them (on must
+% systems, where kpathsea can find them). Please notice the long
+% file names (\textsc{dos} users: change the names, both on disk
+% and in the files). In Table~\ref{mffiles} is a list of the \MF{}
+% source files:
+% \begin{table}[htbp]
+% \begin{tabular}{l l}
+% \texttt{accents.mf}& accents\\
+% \texttt{digits.mf}& numbers (0 - 9)\\
+% \texttt{extras.mf}& bauhaus symbols\\
+% \texttt{ligatures.mf}& german \ss, \ae, \oe, \o, \AE, etc.\\
+% \texttt{lowers.mf}& lower case letters (a--z)\\
+% \texttt{punctuations.mf}& punctuation marks (. , ! : ; etc.)\\
+% \texttt{specials.mf}& symbols (\$, ?, \texttt{\{ }, etc.)\\
+% \texttt{universal.mf}& driver file (definitions)\\
+% \texttt{universal8.mf}& driver file for 8pt \\
+% \texttt{universal9.mf}& driver file for 9pt\\
+% \texttt{universal10.mf}& driver file for 10pt \\
+% \texttt{universal12.mf}& driver file for 12pt \\
+% \texttt{universal17.mf}& driver file for 17pt \\
+% \texttt{uppers.mf}& upper case letters (A--Z)\\
+% \end{tabular}
+% \caption{\MF{} source files.}
+% \label{mffiles}
+% \end{table}
+%
+% \section{\LaTeX{} and this font}
+%
+% I have made a package for \LaTeX{} to use this font. Include it with:
+% \begin{verbatim}
+% \usepackage{universal}
+% \end{verbatim}
+%
+% \DescribeMacro{\title}\DescribeMacro{\author}
+% \DescribeMacro{\date}\DescribeMacro{\abstract}
+% \DescribeMacro{\maketitle}
+% The optional argument \texttt{titlepage} redefines the macros
+% \Lcs{title}, \Lcs{author} and \Lcs{date}, so that a special version
+% of \Lcs{maketitle} may be used. Also provided is the macro
+% \Lcs{abstract} to make a abstract suitable for the special kind
+% of titlepage. Notice, you can redefine the \Lcs{maketitle} macro
+% to suit your needs. In it's current definition, \Lcs{maketitle}
+% produces a title--page as the one of this document.
+%
+% \DescribeMacro{\bayer}\DescribeMacro{\textbayer}
+% To shift to ``universal'' font, do either \Lcs{bayer} (for global
+% change, or if in a local group, locally) or
+% \Lcs{textbayer\{}\textsl{your text}\texttt{\}} for
+% local change (the later takes up the largest block of \TeX{} memory,
+% so use \Lcs{bayer} as much as you can).
+%
+% The files should be in
+% \begin{verbatim}
+% /usr/lib/texmf/local/tex/latex/bayer/
+% \end{verbatim}
+% (for te\TeX{}), or
+% something equvilant. Please notice the use of long file name
+% (\textsc{dos} users: Change the names, both on disk, and in files!).
+% The files are
+% \begin{table}[htbp]
+% \begin{tabular}{l l}
+% \texttt{universal.sty}& style file\\
+% \texttt{ot1universal.fd}& font definition file
+% \end{tabular}
+% \end{table}
+%
+% \DescribeMacro{\{}\DescribeMacro{\}}\DescribeMacro{\|}
+% \DescribeMacro{\varQ}
+% You can accecs the symbols {\bayer\{ \} \|} through
+% \Lcs{{} \Lcs{}} \verb+\|+. This is \emph{not} standard \LaTeX{}.
+% A variant ``Q'' ({\bayer \varQ}) is defined, and can be accesed
+% by \Lcs{varQ}. A paragraph sign (\textbayer{\S}) is also avaliable,
+% and is accesed trhough the standard \LaTeX{} \Lcs{S}.
+%
+% \iffalse
+% \DescribeMacro{\bauplus}\DescribeMacro{\baudash}
+% \DescribeMacro{\bauequal}\DescribeMacro{\bautriangle}
+% \DescribeMacro{\baucircle}\DescribeMacro{\baucross}
+% \DescribeMacro{\bauwindow}\DescribeMacro{\bauhole}
+% \DescribeMacro{\baueclipse}\DescribeMacro{\bauquarter}
+% \DescribeMacro{\bauarrow}\DescribeMacro{\bauwhitearrow}
+% \DescribeMacro{\bauhead}\DescribeMacro{\bauface}
+% \DescribeMacro{\bauquestion}\DescribeMacro{\bauforms}
+% \DescribeMacro{\baupunct}\DescribeMacro{\bausquare}
+% \fi
+%
+% A number of macros are defined to accecs the special
+% bauhaus symbols. These are only avaliable in the ``universal'' font
+% (i.e. after a % \Lcs{bayer} or inside argument of \Lcs{textbayer}).
+% They are shown, along with thier corrosponding macros, in
+% Table~\ref{charmac}.
+%
+% \begin{table}[htbp]
+% \centering
+% \begin{tabular}{l l l l l l l l}
+% \Lcs{bauplus} &\textbayer{\bauplus}&
+% \Lcs{baudash} &\textbayer{\baudash}&
+% \Lcs{bauequal} &\textbayer{\bauequal}&
+% \Lcs{bautriangle} &\textbayer{\bautriangle}\\
+% \Lcs{baucircle} &\textbayer{\baucircle}&
+% \Lcs{baucross} &\textbayer{\baucross}&
+% \Lcs{bauwindow} &\textbayer{\bauwindow}&
+% \Lcs{bauhole} &\textbayer{\bauhole}\\
+% \Lcs{baueclipse} &\textbayer{\baueclipse}&
+% \Lcs{bauquarter} &\textbayer{\bauquarter}&
+% \Lcs{bauarrow} &\textbayer{\bauarrow}&
+% \Lcs{bauwhitearrow} &\textbayer{\bauwhitearrow}\\
+% \Lcs{bauhead} &\textbayer{\bauhead}&
+% \Lcs{bauface} &\textbayer{\bauface}&
+% \Lcs{bauquestion} &\textbayer{\bauquestion}&
+% \Lcs{bausorms} &\textbayer{\bauforms}\\
+% \Lcs{baupunct} &\textbayer{\baupunct}&
+% \Lcs{bausquare} &\textbayer{\bausquare}&&\\
+% \end{tabular}
+% \caption{Extra bauhaus symbols in ``universal'' font.}
+% \label{charmac}
+% \end{table}
+%
+% \section{{\sc dos} Users}:
+%
+% You may have to run the files through some
+% \textsc{unix}--to--\textsc{dos} converter
+% (like \texttt{unix2dos}).
+% I suggest you make the following changes to the file names:
+%
+% \paragraph*{\MF{} files}
+% The files previously said to be in
+% \begin{verbatim}
+% /usr/lib/texmf/local/fonts/source/bayer
+% \end{verbatim}
+% should be in \texttt{\%MFINPUTS\%} and named as:
+% \begin{verbatim}
+% ligatures.mf => LIGATURE.MF
+% punctuations.m => PUNCTUAT.MF
+% universal.mf => UNIVERSA.MF
+% universal8.mf => UNIVER8.MF
+% universal9.mf => UNIVER9.MF
+% universal10.mf => UNIVER10.MF
+% universal12.mf => UNIVER12.MF
+% universal17.mf => UNIVER17.MF
+% \end{verbatim}
+% And in the file univarsal.mf make the same changes on every line
+% containg \texttt{input} \textsl{filename}. In the files
+% \texttt{universal}\textsl{xx}\texttt{.mf}, change
+% the line:
+% \begin{verbatim}
+% input universal => input UNIVERSA
+% \end{verbatim}
+%
+% \paragraph*{\LaTeX{} files}
+% The files previously said to be in
+% \begin{verbatim}
+% /usr/lib/texmf/local/fonts/source/bayer
+% \end{verbatim}
+% should be in \texttt{\%TEXINPUTS\%} and named as:
+% \begin{verbatim}
+% universal.sty => UNIVERSA.STY
+% ot1universal.fd => OT1UNIVE.FD
+% \end{verbatim}
+% In the file \texttt{UNIVERSA.STY}, change the following lines:
+% \begin{verbatim}
+% \usefont{OT1}{universal}{m}{n} => \usefont{OT1}{UNIVE}{m}{n}
+% \end{verbatim}
+% In file \texttt{OT1UNIVE.FD} change \emph{every} occurence of
+% \begin{verbatim}
+% universal => UNIVE
+% universal8 => UNIVER8
+% universal9 => UNIVER9
+% universal10 => UNIVER10
+% universal12 => UNIVER12
+% universal17 => UNIVER17
+% \end{verbatim}
+% That should take care of that.
+%
+% \section{Bugs}
+%
+% I guess you were waiting for this!
+%
+% Although I have tried my best to make this font look good in any
+% maginification, it may come out bad if you use some non--standard
+% maginification.
+%
+% I have tried the font in various modes, and tried to make it
+% coherant on any printer, though I offer no garanty on this.
+%
+% The code is absurdly simple, and this may prove to be a bug, but
+% my familiarity with \MF{} is yet limitied to simple stuff. I
+% am no match for Donald E.\ Knuth (who is?), but I'm trying
+% (did I hear you laughing!).\index{Knuth, Donald E.\}
+%
+% \section{Final Comments}
+%
+% Please send me your suggestions, complaints (but don't flame me
+% for something I didn't know), or bug reports, and I will look into
+% it when I find the time \verb+:-)+
+%
+% This font is avaliable from
+% \begin{verbatim}
+% http://www.fys.ku.dk/~cholm/V1/TeX/bayer.html
+% \end{verbatim}
+% and soon from any CTAN site.
+%
+% This font is distributed under GNU GENERAL PUBLIC LISCENCE.
+% Copyright \copyright{} 1997 Christian Holm.
+%
+% \noindent
+% Christian Holm\\
+% E-Mail: \texttt{cholm@fys.ku.dk}
+%
+% \StopEventually{}
+% \iffalse
+%<*package>
+% \fi
+%
+% \section{\LaTeXe{} Files}
+%
+% Here is the sources for the \LaTeX{} files needed to use this
+% font. I have only made a font--definition for encoding ``OT1'',
+% since I beleiv this to be the most used. Others font--defintion
+% files should be easely made.
+%
+% \subsection{Package File (\texttt{universal.sty})}
+%
+% First some package identification, nothing special here.
+% \begin{macrocode}
+\def\fileversion{v1.0}
+\def\filedate{97/12/24}
+\ProvidesPackage{universal}[\filedate\space\fileversion\space universal
+ package.]
+% \end{macrocode}
+% \begin{macro}{\ifBayer}
+% We provide a new \textsl{if}, to test for the ``universal'' font.
+% This could be used in macros etc.
+% \begin{macrocode}
+\newif\ifBayer
+\Bayerfalse
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{titlepage}
+% Next, a package option is defined. The definition of \Lcs{maketitle}
+% is only an example.
+% \begin{macrocode}
+\DeclareOption{titlepage}{
+ \newdimen\unidim
+ \unidim1cm
+ \renewcommand{\title}[1]{\def\unititle{#1}}
+ \renewcommand{\author}[1]{\def\uniauthor{#1}}
+ \renewcommand{\date}[1]{\def\unidate{#1}}
+ \renewcommand{\abstract}[1]{\def\uniabst{#1}}
+ \renewcommand{\maketitle}{
+ \clearpage
+ \thispagestyle{empty}
+ \noindent
+ \begingroup
+ {\Huge\bayer\unititle}\\
+ \rule{\textwidth}{.05\textwidth}
+ \ifx\uniabst\undefined
+ \vfill
+ \else
+ \vspace{.05\textwidth}\par\noindent
+ \hspace{.2\textwidth}\rule{.01\textwidth}{.7\textwidth}
+ \raisebox{.3\textwidth}{
+ \begin{minipage}[l]{.7\textwidth}
+ {\bayer\normalsize\uniabst}
+ \end{minipage}
+ }
+ \vfill
+ \fi
+ \begin{minipage}[l]{.3\textwidth}
+ {\bayer\Large\uniauthor}\par\noindent
+ {\large\bayer\MakeLowercase{\unidate}}
+ \end{minipage}\hspace{.2\textwidth}
+ \raisebox{-.05\textwidth}{\rule{.02\textwidth}{.4\textwidth}}
+ \font\Hugebayer=universal17 at 80pt
+ \hspace{.01\textwidth}{\Hugebayer\char"84}\\
+ \rule{.8\textwidth}{.01\textwidth}
+ \endgroup
+ \newpage
+ }
+}
+\ProcessOptions\relax
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\textbayer}
+% This is the command to change to ``universal'' font locally. It's
+% not very fancy --- it calls \Lcs{bayer} macro.
+% \begin{macrocode}
+\newcommand{\textbayer}[1]{
+ \begingroup
+ \bayer
+ #1
+ \endgroup
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bayer}
+% Now for the global, and important, macro of this package. We set
+% \Lcs{Bayertrue}, so that macroes will know we currently use the
+% ``universal'' font. Secondly, it defines some character macros
+% to acces special symbols in the font.
+% \begin{macrocode}
+\newcommand{\bayer}{
+ \Bayertrue
+ \chardef\{="80
+ \chardef\}="81
+ \chardef\|="0F
+ \chardef\S="82
+ \chardef\varQ="83
+ \chardef\bauplus="00
+ \chardef\baudash="01
+ \chardef\bauequal="02
+ \chardef\bautriangle="03
+ \chardef\baucircle="04
+ \chardef\baucross="05
+ \chardef\bauwindow="06
+ \chardef\bauhole="07
+ \chardef\baueclipse="08
+ \chardef\bauquarter="09
+ \chardef\bauarrow="0A
+ \chardef\bauwhitearrow="0B
+ \chardef\bauhead="0C
+ \chardef\bauface="0D
+ \chardef\bauquestion="0E
+ \chardef\bauforms="84
+ \chardef\baupunct="85
+ \chardef\bausquare="86
+ \usefont{OT1}{universal}{m}{n}
+}
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</package>
+% \fi
+%
+% \subsection{Font Definition File (\texttt{ot1universal.fd})}
+%
+% This file contains the nessesary definitions for using the
+% ``universal'' font. Notice the font is substitued for the
+% \textsf{Compute Modern Sans Serif} defaults in all other shapes
+% then normal upright.
+% \iffalse
+%<*fd>
+% \fi
+% \begin{macrocode}
+\ProvidesFile{ot1universal.fd}
+ [1997/01/14 v2.5a Non standard LaTeX font definitions]
+\DeclareFontFamily{OT1}{universal}{\hyphenchar\font45 }
+% \end{macrocode}
+% {\bayer Normal upright}.
+% \begin{macrocode}
+\DeclareFontShape{OT1}{universal}{m}{n}
+ {
+ <5><6><7><8>universal8
+ <9>universal9
+ <10><10.95>universal10
+ <12><14.4>universal12
+ <17.28><20.74><24.88>universal17
+ }{}
+% \end{macrocode}
+% {\it Italized}, {\sl slanted}, {\sc small caps} is undefined,
+% therefore substituted.
+% \begin{macrocode}
+\DeclareFontShape{OT1}{universal}{m}{it}{<->ssub*cmss/m/sl}{}
+\DeclareFontShape{OT1}{universal}{m}{sl}{<->ssub*cmss/m/sl}{}
+\DeclareFontShape{OT1}{universal}{m}{sc}{<->ssub*cmr/m/sc}{}
+\DeclareFontShape{OT1}{universal}{m}{ui}{<->ssub*cmr/m/ui}{}
+% \end{macrocode}
+% Semibold condensed and bold extended series is undefined,
+% therefore substituted.
+% \begin{macrocode}
+\DeclareFontShape{OT1}{universal}{sbc}{n}{<->ssub*cmss/sbc/n}{}
+\DeclareFontShape{OT1}{universal}{bx}{n}{<->ssub*cmss/bx/n}{}
+\DeclareFontShape{OT1}{universal}{bx}{ui}{<->ssub*cmr/bx/ui}{}
+% \end{macrocode}
+%
+% End of file `ot1universal.fd'.
+% \iffalse
+%</fd>
+% \fi
+%
+% \section{The \MF{} Sources}
+%
+% Below follows the sources for the font and driver files.
+% These are in plain \MF{}, so you dont need Computer Modern
+% base file \texttt{cmbase.mf}, to use this file. However, the
+% files does to some extent follow the style of the Computer
+% Modern source files, in particular the divivsion of the sources
+% into files.
+%
+% The reason why I made the sources a part of this \texttt{.dtx} is
+% to ease the dsitribution, as well as the documentation.
+%
+% \subsection{Main driver file (\texttt{universal.mf})}
+% \iffalse
+%<*main>
+% \fi
+% \begin{macrocode}
+x_height# = 8u#; % height of lowercase without ascenders
+m_width# = 7/5x_height# ; % width of widest lowercase (1em)
+x_width# = x_height#+f_space#; % width of normal lowercase
+p_depth# = 3/5x_height# ; % depth of charactes accending baseline
+l_height# = 8/5x_height# ; % height of heighest characters
+p_thick# = 1/36x_height# ; % pen thickness
+f_space# = 2u#; % space added after fonts
+c_width# = 1x_width#-0.5x_width#*(1-cosd(35)); % width of "c"
+C_width# = l_height#-0.5l_height#*(1-cosd(35)); % width of "C"
+f_width# = 3/8l_height#+f_space#; % width of "f"
+A_width# = m_width# ; % width of normal upper case characters
+M_width# = 7/5A_width# ; % width of "M"
+define_pixels(u,m_width,x_width,x_height,p_depth,l_height,p_thick) ;
+define_pixels(f_space,A_width,C_width,M_width) ;
+define_corrected_pixels(p_depth) ;
+
+ligs:=2;
+font_coding_scheme:="TeX text";
+spanish_shriek:=oct"074";
+spanish_query:=oct"076";
+
+mode_setup;
+
+font_x_height 8u#;
+font_quad m_width#;
+font_normal_space 6u#+f_space#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4f_space#;
+font_extra_space 2u#;
+
+% \end{macrocode}
+% \begin{macro}{makebox}
+% We redefine the the macro \texttt{makebox}, so that the
+% proof--sheets contain more lines, and indicate baseline, if the
+% letter goes beyond this.
+% \begin{macrocode}
+def makebox(text rule) = % macro for hardcopy proofs
+ rule((0,0)t_,(w,0)t_);
+ rule((0,0.01)t_,(w,0.01)t_);
+ for y=-d step u until h+u: % making addtional grid lines
+ rule((0,y)t_,(w,y)t_);
+ endfor % horizontals
+ for x=0 step u until w+u:
+ rule((x,-d)t_,(x,h)t_);
+ endfor % verticals
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+% The next couple of definitions, are more of mnemonic in nature, then
+% actual functions.
+% \begin{macrocode}
+def bauhauschar (expr name, width, height, depth, extra_width) =
+ beginchar(name,width,height,depth);
+ "The letter "&name;
+ pickup pencircle scaled p_thick ;
+ wi#:=width-f_space#+extra_width;
+ define_pixels(wi);
+ enddef;
+
+def bauhausnumb (expr name, width, height, depth, extra_width) =
+ beginchar(name,width,height,depth);
+ "The number "&name;
+ pickup pencircle scaled p_thick ;
+ wi#:=width-f_space#+extra_width;
+ define_pixels(wi);
+ enddef;
+
+def bauhaussymb (expr name, width, height, depth, extra_width) =
+ beginchar(name,width,height,depth);
+ pickup pencircle scaled p_thick ;
+ wi#:=width-f_space#+extra_width;
+ define_pixels(wi);
+ enddef;
+
+def bauhausextra (expr number, name) =
+ beginchar(number,l_height#+f_space#,l_height#,p_depth#);
+ "The bauhaus symbol "&name;
+ pickup pencircle scaled 1/10p_thick ;
+ wi#:=l_height#;
+ define_pixels(wi);
+ enddef;
+
+picture e_pic, a_pic, o_pic, O_pic; % any where
+
+input uppers; % upper case (majuscules)
+input lowers; % lower case (minuscules)
+input digits; % numerals
+input specials ; % special symbols
+input ligatures; % ligaturres
+input punctuations; % punctuation symbols
+input accents; % accents
+input extras; % bauhaus extras
+
+ligtable "u": "h" kern u#;
+ligtable "f": "f" kern 0 , "l" kern 0 , "i" kern 0;
+ligtable "o": "l" kern u#;
+ligtable "?": "`" =: spanish_query;
+ligtable "!": "`" =: spanish_shriek;
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+bye.
+% \end{macrocode}
+% \iffalse
+%</main>
+% \fi
+%
+% \subsection{Driver file for 8 point(\texttt{universal8.mf})}
+% \iffalse
+%<*eight>
+% \fi
+% \begin{macrocode}
+font_identifier:="universal"; % name of the font
+
+font_size 8pt#; % design size of font.
+u# = 16/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+% \end{macrocode}
+% \iffalse
+%</eight>
+% \fi
+%
+% \subsection{Driver file for 9 point(\texttt{universal9.mf})}
+% \iffalse
+%<*nine>
+% \fi
+% \begin{macrocode}
+font_identifier:="universal"; % name of the font
+
+font_size 9pt#; % design size of font.
+u# = 18/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+% \end{macrocode}
+% \iffalse
+%</nine>
+% \fi
+%
+% \subsection{Driver file for 10 point(\texttt{universal10.mf})}
+% \iffalse
+%<*ten>
+% \fi
+% \begin{macrocode}
+font_identifier:="universal"; % name of the font
+
+font_size 10pt#; % design size of font.
+u# = 20/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+% \end{macrocode}
+% \iffalse
+%</ten>
+% \fi
+%
+% \subsection{Driver file for 12 point(\texttt{universal12.mf})}
+% \iffalse
+%<*twelve>
+% \fi
+% \begin{macrocode}
+font_identifier:="universal"; % name of the font
+
+font_size 12pt#; % design size of font.
+u# = 24/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+% \end{macrocode}
+% \iffalse
+%</twelve>
+% \fi
+%
+% \subsection{Driver file for 17 point(\texttt{universal17.mf})}
+% \iffalse
+%<*seventeen>
+% \fi
+% \begin{macrocode}
+font_identifier:="universal"; % name of the font
+
+font_size 17pt#; % design size of font.
+u# = 34/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+% \end{macrocode}
+% \iffalse
+%</seventeen>
+% \fi
+%
+% \subsection{Majuscules (\texttt{uppers.mf})}
+% \iffalse
+%<*uppers>
+% \fi
+% \begin{macro}{A}
+% \begin{macrocode}
+bauhauschar("A",1A_width#,1l_height#,0,0); %"The letter A";
+ lft z1=(0,0);
+ lft z2=(0,h-0.5wi);
+ top z3=(0.5wi,h);
+ rt z4=(wi,y2);
+ rt z5=(wi,0);
+ lft z6=(0,0.5h);
+ rt z7=(wi,y6);
+ cutdraw z1{up}--z2{up}..z3{right}..z4{down}--z5{down};
+ cutdraw z6{right}--z7{right};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{B}
+% \begin{macrocode}
+bauhauschar("B",1A_width#,1l_height#,0,0); %"The letter B";
+ lft bot z1 = (0,0);
+ lft top z2 = (0,h);
+ top z3 = (wi-0.25h,h);
+ rt z4 = (wi,0.75h);
+ z5 = (x3,0.5h);
+ z6 = (p_thick,0.5h);
+ rt z7 = (wi,0.25h);
+ bot z8 = (x3,0);
+ draw z1{(-1,1)}---z2{(1,1)}---z3{right}..z4{down}..z5{left}--z6{left};
+ draw z5{right}..z7{down}..z8{left}---z1{(-1,1)};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{C}
+% \begin{macrocode}
+bauhauschar("C",C_width#+f_space#,l_height#,0,0);
+ rt z1 = bot z2 rotatedaround((0.5wi,0.5h),60);
+ bot z2 = (0.5wi,0);
+ lft z3 = (0,0.5h);
+ top z4 = (0.5wi,h);
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-60);
+ cutdraw z1..z2{left}..z3{up}..z4{right}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{D}
+% \begin{macrocode}
+bauhauschar("D",A_width#,l_height#,0,0);
+ lft bot z1 = (0,0);
+ lft top z2 = (0,h);
+ top z3 = (wi-.5h,h);
+ rt z4 = (wi,0.5h);
+ bot z5 = (x3,0);
+ draw z2{right}---z3{right}..z4{down}..z5{left}---z1{left}---z2{up};
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{E}
+% \begin{macrocode}
+bauhauschar("E",A_width#,l_height#,0,0);
+ rt bot z1 = (wi,0);
+ lft bot z2 = (0,0);
+ lft top z3 = (0,h);
+ rt top z4 = (wi,h);
+ lft z5 = (0,0.5h);
+ rt z6 = (wi,0.5h);
+ cutdraw z1{left}---z2{(-1,1)}---z3{(1,1)}---z4{right};
+ cutdraw z5{left}--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{F}
+% \begin{macrocode}
+bauhauschar("F",A_width#,l_height#,0,0);
+ lft bot z1 = (0,0);
+ lft top z2 = (0,h);
+ rt top z3 = (wi,h);
+ lft z4 = (0,0.5h);
+ rt z5 = (wi,0.5h);
+ cutdraw z1{up}---z2{(1,1)}---z3{right};
+ cutdraw z4{left}--z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{G}
+% \begin{macrocode}
+bauhauschar("G",l_height#+f_space#,l_height#,0,0);
+ rt z1 = (wi,0.5h);
+ bot z2 = (0.5wi,0);
+ lft z3 = (0,0.5h);
+ top z4 = (0.5wi,h);
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-60);
+ rt z6 = (wi,0);
+ cutdraw z1..z2{left}..z3{up}..z4{right}..z5;
+ cutdraw z1{down}--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{H}
+% \begin{macrocode}
+bauhauschar("H",A_width#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,0.5h);
+ lft z3 = (0,h);
+ rt z4 = (wi,0);
+ rt z5 = (wi,0.5h);
+ rt z6 = (wi,h);
+ cutdraw z1{up}--z3{up};
+ cutdraw z4{up}--z6{up};
+ cutdraw z2{left}--z5{left};
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{I}
+% \begin{macrocode}
+bauhauschar("I",p_thick#+2f_space#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,h);
+ cutdraw z1{up}--z2{up};
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{J}
+% \begin{macrocode}
+bauhauschar("J",.5x_width#,l_height#,0,0);
+ bot z1 = (0,0);
+ bot rt z2 = (wi,0);
+ rt z3 = (wi,h);
+ cutdraw z1{right}---z2{(1,1)}---z3{up};
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{K}
+% \begin{macrocode}
+bauhauschar("K",0.5l_height#+2f_space#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,0.5h);
+ lft z3 = (0,h);
+ rt z4 = (wi,0);
+ rt z5 = (wi,h);
+ cutdraw z1{up}--z3{up};
+ cutdraw z2{right}..z4{down};
+ cutdraw z2{right}..z5{up};
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{L}
+% \begin{macrocode}
+bauhauschar("L",A_width#,l_height#,0,0);
+ lft z1 = (0,h);
+ lft bot z2 = (0,0);
+ rt bot z3 = (wi,0);
+ cutdraw z1{down}---z2{(1,-1)}---z3{right};
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{M}
+% \begin{macrocode}
+bauhauschar("M",M_width#,l_height#,0,0);
+ lft z1 = (0,0) ;
+ lft z2 = (0,0.7h) ;
+ top z3 = (0.5[x5,x1],h) ;
+ z4 = (0.5wi,0.7h-0.25p_thick) ;
+ z5 = (0.5wi,0) ;
+ top z6 = (0.5[x8,x5],h) ;
+ rt z7 = (wi,0.7h) ;
+ rt z8 = (wi,0) ;
+ cutdraw z1{up}--z2..z3{right}..z4{down}--z5 ;
+ cutdraw z4{up}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{N}
+% \begin{macrocode}
+bauhauschar("N",A_width#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,0.6h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.6h) ;
+ rt z5 = (wi,0);
+ cutdraw z1{up}--z2{up}..z3{right}..z4{down}--z5{down};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{O}
+% \begin{macrocode}
+bauhauschar("O",l_height#+f_space#,l_height#,0,0);
+ top z1 = (.5wi,h) ;
+ rt z2 = (wi,.5h) ;
+ bot z3 = (.5wi,0) ;
+ lft z4 = (0,.5h) ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ penlabels(1,2,3,4);
+ O_pic = currentpicture;
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{P}
+% \begin{macrocode}
+bauhauschar("P",A_width#,l_height#,0,0);
+ lft z1 = (0,0) ;
+ lft z2 = (0,h-.5wi) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,h-.5wi) ;
+ bot z5 = (0.5wi,h-wi) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z2{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{Q}
+% ``Q'' as an ``O'' with dash
+% \begin{macrocode}
+bauhauschar("Q",l_height#+f_space#,l_height#,2/3p_depth#,0);
+ top z1 = (.5wi,h) ;
+ rt z2 = (wi,.5h) ;
+ bot z3 = (.5wi,0) ;
+ lft z4 = (0,.5h) ;
+ z5 = (.5wi,2d);
+ z6 = (.5wi,-d);
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ cutdraw z5{down}--z6;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{R}
+% \begin{macrocode}
+bauhauschar("R",A_width#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,h-.5wi);
+ top z3 = (.5wi,h);
+ rt z4 = (wi,h-.5wi);
+ bot z5 = (0.5wi,h-wi);
+ rt z6 = (wi,h-1.5wi);
+ rt z7 = (wi,0);
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle;
+ cutdraw z1{up}--z2{up};
+ cutdraw z5{right}..z7{down};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{S}
+% \begin{macrocode}
+bauhauschar("S",A_width#,l_height#,0,0); %
+ lft z1 = (0,0.5[y6,y2]) ;
+ bot z2 = (1/3wi,0) ;
+ bot z3 = (2/3wi,0) ;
+ rt z4 = (wi,0.5[y5,y3]) ;
+ z5 = (2/3wi,0.5h) ;
+ z6 = (1/3wi,0.5h) ;
+ lft z7 = (0,0.5[y8,y6]) ;
+ top z8 = (1/3wi,h);
+ top z9 = (2/3wi,h) ;
+ rt z10 = (wi,0.5[y8,y6]) ;
+ cutdraw z1{down}..z2{right}--z3{right}..z4{up}..z5{left}
+ --z6{left}..z7{up}..z8{right}--z9{right}..z10{down} ;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{T}
+% \begin{macrocode}
+bauhauschar("T",A_width#,l_height#,0,0);
+ top z1 = (0,h);
+ top z2 = (wi,h);
+ z3 = (.5wi,h);
+ z4 = (0.5wi,0);
+ cutdraw z1{right}--z2;
+ cutdraw z3{up}--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{U}
+% \begin{macrocode}
+bauhauschar("U",A_width#,l_height#,0,0);
+ lft z1 = (0,h);
+ lft z2 = (0,0.4h) ;
+ bot z3 = (0.5wi,0) ;
+ rt z4 = (wi,0.4h) ;
+ rt z5 = (wi,h);
+ cutdraw z1{down}--z2{down}..z3{right}..z4{up}--z5{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{V}
+% \begin{macrocode}
+bauhauschar("V",A_width#,l_height#,0,0);
+ lft z1 = (0,h);
+ bot z2 = (0.5wi-0.5p_thick,0.5p_thick);
+ bot z3 = (0.5wi,0);
+ bot z4 = (0.5wi+0.5p_thick,0.5p_thick);
+ rt z5 = (wi,h);
+ draw z1{down}--z2..z3..z4--z5{up};
+ cutoff(z1,90);
+ cutoff(z5,90);
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{W}
+% \begin{macrocode}
+bauhauschar("W",M_width#,l_height#,0,0);
+ lft z1 = (0,h) ;
+ lft z2 = (0,0.3h) ;
+ bot z3 = (0.5[x5,x1],0) ;
+ z4 = (0.5wi,0.3h+0.25p_thick) ;
+ z5 = (0.5wi,h) ;
+ bot z6 = (0.5[x8,x5],0) ;
+ rt z7 = (wi,0.3h) ;
+ rt z8 = (wi,h) ;
+ cutdraw z1{down}--z2..z3{right}..z4{up}--z5 ;
+ cutdraw z4{down}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{X}
+% \begin{macrocode}
+bauhauschar("X",l_height#+f_space#,l_height#,0,0);
+ top z1 = (0,h);
+ z2 = (0.5wi,0.5wi);
+ bot z3 = (0,0);
+ top z4 = (wi,h);
+ bot z5 = (wi,0);
+ cutdraw z1{right}..z2{down}..z3{left};
+ cutdraw z4{left}..z2{down}..z5{right};
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{Y}
+% \begin{macrocode}
+bauhauschar("Y",A_width#,l_height#,0,0) ;
+ rt z1 = (wi,0) ;
+ lft z2 = (0,h) ;
+ rt z3 = (wi,h) ;
+ rt z4 = (wi,h-x5) ;
+ bot z5 = (0.5wi,h-wi) ;
+ lft z6 = (0,h-x5) ;
+ cutdraw z1{up}--z3 ;
+ cutdraw z3{up}--z4..z5{left}..z6{up}--z2{up} ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{Z}
+% \begin{macrocode}
+bauhauschar("Z",A_width#,l_height#,0,0) ;
+ top z1 = (0,h);
+ rt x2 = wi ; top y2 = h ;
+ rt x3 = wi ; top y3 = y2;
+ lft x4 = 0 ; bot y4 = y5 ;
+ lft x5 = 0 ; bot y5 = 0 ;
+ bot z6 = (wi,0);
+ cutdraw z1{right}--z2..z3--z4..z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</uppers>
+% \fi
+%
+% \subsection{Minuscules (\texttt{lowers.mf})}
+% \iffalse
+%<*lowers>
+% \fi
+% \begin{macro}{a}
+% We save the letter ``a'' in a \textsl{picture} variable for
+% later use (in ligature \ae{}).
+% \begin{macrocode}
+bauhauschar("a",1x_width#,1x_height#,0,0); %"The letter a";
+ bot z1 = (7/16wi,0);
+ lft z2 = lft z3 rotatedaround((0.5wi,0.5h),45);
+ lft z3 = (0,0.5h);
+ top z4 = (0.5wi,h);
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-45);
+ rt z6 = (wi,0.5h+sind(15));
+ rt z7 = (wi,0);
+ draw z6..z1{left}..z2..z3{up}..z4{right}..z5..z6{down}--z7 ;
+ penlabels(1,2,3,4,5,6,7,8);
+ cutoff(z7,-90);
+ a_pic := currentpicture;
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{b}
+% \begin{macrocode}
+bauhauschar("b",1x_width#,l_height#,0,0); %"The letter b";
+ top y1=5/8h ;
+ rt x2=wi ;
+ bot y3=0 ;
+ lft x4= lft x5 = lft x6 = 0 ;
+ x1 = x3 = 0.5wi ;
+ y2 = y4 = y5 = 5/16h ;
+ y6 = h ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ cutdraw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{c}
+% \begin{macrocode}
+bauhauschar("c",c_width#,1x_height#,0,1f_space#); %"The letter c";
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-60);
+ rt z1 = bot z2 rotatedaround((0.5wi,0.5h),60);
+ bot y2=0;
+ lft x3=0;
+ top y4=h;
+ x2 = x4 = 0.5wi;
+ y3 = 0.5h ;
+ cutdraw z1..z2{left}..z3{up}..z4{right}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{d}
+% \begin{macrocode}
+bauhauschar("d",1x_width#,l_height#,0,0); %"The letter d";
+ top y1 = 5/8h ;
+ rt x2 = rt x5 = rt x6 = wi ;
+ bot y3 =0 ;
+ lft x4 = 0 ;
+ x1 = x3 = 0.5wi ;
+ y2 = y4 = y5 = 5/16h ;
+ y6 = h ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ cutdraw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{e}
+% We save the letter ``e'' in a \textsl{picture} variable for
+% later use (in ligatures \ae{} \oe{}).
+% \begin{macrocode}
+bauhauschar("e",1x_width#,1x_height#,0,0) ; %"The letter e";
+ rt z1 = bot z2 rotatedaround((0.5wi,0.5h),60) ;
+ bot y2 = 0 ;
+ lft x3 = 0 ;
+ top y4 = h ;
+ rt x5 = rt x7 = wi ;
+ x6 = p_thick;
+ x2 = x4 = 0.5wi ;
+ y3 = y5 = y6 = 0.5h ;
+ y7 = y5 - 0.5p_thick ;
+ cutdraw z5{up}..z4{left}..z3{down}..z2{right}..z1 ;
+ cutdraw z5{down}--z7{down} ;
+ draw z6{right}--z5{right};
+ penlabels(1,2,3,4,5,6,7);
+ e_pic := currentpicture
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{f}
+% \begin{macrocode}
+bauhauschar("f",f_width#,l_height#,0,0); %"The letter f";
+ lft x1 = lft x2 = 0 ;
+ y1 = 0 ;
+ top y2 = top y5 = top y6 = 5/8h ;
+ x4 = wi ;
+ x5 = p_thick;
+ x6 = wi;
+ top y4 = h ;
+ lft z3 = lft z2 rotatedaround((top z6),-45) ;
+ cutdraw z1{up}--z2{up}..z3{(1,1)}..z4{right} ;
+ cutdraw z5{right}--z6 ;
+ penlabels(1,2,3,4,5,6,7);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{g}
+% \begin{macrocode}
+bauhauschar("g",1x_width#,1x_height#,p_depth#,0); %"The letter g";
+ rt z1 = top z2 rotatedaround((0.5wi,0.5h),-60) ;
+ top z2 = (0.5wi,h) ;
+ lft z3 = (0,0.5h) ;
+ bot z4 = (0.5wi,0) ;
+ rt z5 = (wi,0.5h) ;
+ rt z6 = (wi,-d) ;
+ cutdraw z1{(-cosd(60),sind(60))}..z2{left}..z3{down}
+ ..z4{right}..z5{up} ;
+ cutdraw z5{down}--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{h}
+% \begin{macrocode}
+bauhauschar("h",1x_width#,1l_height#,0,0) ; %"The letter h" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,h) ;
+ rt z3 = (wi,0) ;
+ rt z4 = (wi,x5) ;
+ top z5 = (0.5wi,5/8h) ;
+ lft z6 = (0,x5) ;
+ cutdraw z1{up}--z2 ;
+ cutdraw z3{up}--z4..z5{left}..z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{i}
+% \begin{macrocode}
+bauhauschar("i",1/5x_height#+f_space#,l_height#,0,0); %"The letter i" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,5/8h) ;
+ top z3 = (0.5wi,h) ;
+ cutdraw z1{up}--z2 ;
+ drawdot z3 ;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{j}
+% \begin{macrocode}
+bauhauschar("j",1/5x_height#+f_space#,l_height#,p_depth#,0);
+ %"The letter j"
+ lft z1 = (0,-d) ;
+ lft z2 = (0,5/8h) ;
+ top z3 = (0.5wi,h) ;
+ cutdraw z1{up}--z2 ;
+ drawdot z3 ;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{k}
+% \begin{macrocode}
+bauhauschar("k",0.8x_width#,1x_height#,0,0); %"The letter k" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,h) ;
+ lft z3 = (0,0.5h) ;
+ rt z4 = (wi,0) ;
+ rt z5 = (wi,h) ;
+ cutdraw z1{up}--z2 ;
+ cutdraw z3{right}..z4{down} ;
+ cutdraw z3{right}..z5{up} ;
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{l}
+% \begin{macrocode}
+bauhauschar("l",1/5x_height#+f_space#,l_height#,0,0);%"The letter l" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,h) ;
+ cutdraw z1{up}--z2 ;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{m}
+% \begin{macrocode}
+bauhauschar("m",1m_width#,1x_height#,0,0); %"The letter m";
+ lft z1 = (0,0) ;
+ lft z2 = (0,0.7h) ;
+ top z3 = (0.5[x5,x1],h) ;
+ z4 = (0.5wi,0.7h-0.25p_thick) ;
+ z5 = (0.5wi,0) ;
+ top z6 = (0.5[x8,x5],h) ;
+ rt z7 = (wi,0.7h) ;
+ rt z8 = (wi,0) ;
+ cutdraw z1{up}--z2..z3{right}..z4{down}--z5 ;
+ cutdraw z4{up}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{n}
+% \begin{macrocode}
+bauhauschar("n",1x_width#,1x_height#,0,0); %"The letter n";
+ lft z1 = (0,0);
+ lft z2 = (0,0.6h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.6h) ;
+ rt z5 = (wi,0);
+ cutdraw z1{up}--z2{up}..z3{right}..z4{down}--z5{down};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{o}
+% We save the letter in a \textsl{picture} variable for later use
+% (for ligature \oe{}).
+% \begin{macrocode}
+bauhauschar("o",1x_width#,1x_height#,0,0); %"The letter o";
+ top y1=h ;
+ rt x2=wi ;
+ bot y3=0 ;
+ lft x4=0 ;
+ x1 = x3 = 0.5wi ;
+ y2 = y4 = 0.5h ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ penlabels(1,2,3,4);
+ o_pic := currentpicture;
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{p}
+% \begin{macrocode}
+bauhauschar("p",1x_width#,1x_height#,p_depth#,0); %"The letter p";
+ lft z1 = (0,-d) ;
+ lft z2 = (0,0.5h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.5h) ;
+ bot z5 = (0.5wi,0) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z2{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{q}
+% \begin{macrocode}
+bauhauschar("q",1x_width#,1x_height#,p_depth#,0); %"The letter q";
+ rt z1 = (wi,-d) ;
+ lft z2 = (0,0.5h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.5h) ;
+ bot z5 = (0.5wi,0) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z4{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{r}
+% \begin{macrocode}
+bauhauschar("r",3/5x_height#+f_space#,1x_height#,0,0); %"The letter r";
+ lft z1 = (0,0) ;
+ lft z2 = (0,h-wi);
+ top z4 = (wi,h) ;
+ lft z3 = lft z2 rotatedaround((x4,y2),-45);
+ cutdraw z1{up}--z2{up}..z3{(1,1)}..z4{right};
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{s}
+% \begin{macrocode}
+bauhauschar("s",0.8x_width#,1x_height#,0,0); %"The letter s";
+ lft z1 = (0,0.5[y6,y2]) ;
+ bot z2 = (1/3wi,0) ;
+ bot z3 = (2/3wi,0) ;
+ rt z4 = (wi,0.5[y5,y3]) ;
+ z5 = (2/3wi,0.5h) ;
+ z6 = (1/3wi,0.5h) ;
+ lft z7 = (0,0.5[y8,y6]) ;
+ top z8 = (1/3wi,h);
+ top z9 = (2/3wi,h) ;
+ rt z10 = (wi,0.5[y8,y6]) ;
+ cutdraw z1{down}..z2{right}--z3{right}..z4{up}..
+ z5{left}--z6{left}..z7{up}..z8{right}--z9{right}..z10{down} ;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{t}
+% \begin{macrocode}
+bauhauschar("t",3/5x_height#+f_space#,1l_height#,0,0); %"The letter t";
+ z1 = (0.5wi,0);
+ z2 = (0.5wi,h);
+ cutdraw z1{up}--z2;
+ top z3 = (0,5/8h);
+ top z4 = (wi,5/8h);
+ cutdraw z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{u}
+% \begin{macrocode}
+bauhauschar("u",1x_width#,1x_height#,0,0); %"The letter u";
+ lft z1 = (0,h);
+ lft z2 = (0,0.4h) ;
+ bot z3 = (0.5wi,0) ;
+ rt z4 = (wi,0.4h) ;
+ rt z5 = (wi,h);
+ cutdraw z1{down}--z2{down}..z3{right}..z4{up}--z5{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{v}
+% \begin{macrocode}
+bauhauschar("v",1x_width#,1x_height#,0,0); %"The letter v";
+ lft z1 = (0,h);
+ bot z2 = (0.5wi-0.5p_thick,0.5p_thick);
+ bot z3 = (0.5wi,0);
+ bot z4 = (0.5wi+0.5p_thick,0.5p_thick);
+ rt z5 = (wi,h);
+ draw z1{down}--z2..z3..z4--z5{up};
+ cutoff(z1,90);
+ cutoff(z5,90);
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{w}
+% \begin{macrocode}
+bauhauschar("w",1m_width#,1x_height#,0,0); %"The letter w";
+ lft z1 = (0,h) ;
+ lft z2 = (0,0.3h) ;
+ bot z3 = (0.5[x5,x1],0) ;
+ z4 = (0.5wi,0.3h+0.25p_thick) ;
+ z5 = (0.5wi,h) ;
+ bot z6 = (0.5[x8,x5],0) ;
+ rt z7 = (wi,0.3h) ;
+ rt z8 = (wi,h) ;
+ cutdraw z1{down}--z2..z3{right}..z4{up}--z5 ;
+ cutdraw z4{down}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{x}
+% \begin{macrocode}
+bauhauschar("x",1x_width#,1x_height#,0,0); %"The letter x";
+ top z1 = (0,h);
+ z2 = (0.5wi,0.5wi);
+ bot z3 = (0,0);
+ top z4 = (wi,h);
+ bot z5 = (wi,0);
+ cutdraw z1{right}..z2{down}..z3{left};
+ cutdraw z4{left}..z2{down}..z5{right};
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{y}
+% \begin{macrocode}
+bauhauschar("y",1x_width#,1x_height#,p_depth#,0) ; %"The letter y" ;
+ rt z1 = (wi,-d) ;
+ lft z2 = (0,h) ;
+ rt z3 = (wi,h) ;
+ rt z4 = (wi,x5) ;
+ bot z5 = (0.5wi,0) ;
+ lft z6 = (0,x5) ;
+ cutdraw z1{up}--z3 ;
+ cutdraw z3{up}--z4..z5{left}..z6{up}--z2{up} ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{z}
+% \begin{macrocode}
+bauhauschar("z",1x_width#,1x_height#,0,0) ; %"The letter z" ;
+ top z1 = (0,h);
+ rt x2 = wi ; top y2 = h ;
+ rt x3 = wi ; top y3 = y2;
+ lft x4 = 0 ; bot y4 = y5 ;
+ lft x5 = 0 ; bot y5 = 0 ;
+ bot z6 = (wi,0);
+ cutdraw z1{right}--z2..z3--z4..z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</lowers>
+% \fi
+%
+% \subsection{Numerals (\texttt{digits.mf})}
+% \iffalse
+%<*digits>
+% \fi
+% \begin{macro}{0}
+% \begin{macrocode}
+bauhausnumb("0",A_width#,l_height#,0,0);
+ lft z1 = (0,h-.5wi);
+ top z2 = (.5wi,h);
+ rt z3 = (wi,y1);
+ rt z4 = (wi,.5wi);
+ bot z5 = (.5wi,0);
+ lft z6 = (0,y4);
+ draw z1{up}..z2{right}..z3{down}---z4{down}..z5{left}..z6{up}---cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{1}
+% \begin{macrocode}
+bauhausnumb("1",3/8(A_width#-f_space#)+f_space#,l_height#,0,0);
+ top z1 = (0,h);
+ top z2 = (2/3wi,h);
+ rt z3 = (wi,h-x2);
+ rt z4 = (wi,0);
+ cutdraw z1{right}---z2{right}..z3{down}---z4{down};
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{2}
+% \begin{macrocode}
+bauhausnumb("2",A_width#,l_height#,0,0);
+ lft z1 = (0,h-.5wi);
+ top z2 = (.5wi,h);
+ rt z3 = (wi,y1);
+ lft bot z4 = (0,0);
+ bot z5 = (wi,0);
+ cutdraw z1{up}..z2{right}..z3{down}---z4{(-1,1)}---z5{right};
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{3}
+% \begin{macrocode}
+bauhausnumb("3",A_width#,l_height#,0,0);
+ rad = .25h;
+ lft z1 = (0,h-rad);
+ top z2 = (rad,h);
+ top z3 = (wi-rad,h);
+ rt z4 = (wi,h-rad);
+ rt z5 = (wi-rad,.5h);
+ rt z6 = (wi,rad);
+ bot z7 = (wi-rad,0);
+ bot z8 = (rad,0);
+ lft z9 = (0,rad);
+ cutdraw z1{up}..z2{right}---z3{right}..z4{down}..z5{left};
+ cutdraw z5{right}..z6{down}..z7{left}---z8{left}..z9{up};
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{4}
+% \begin{macrocode}
+bauhausnumb("4",A_width#,l_height#,0,0);
+ z1 = (.8wi,h);
+ lft z2 = (0,h-x1);
+ z3 = (wi,y2);
+ z4 = (x1,0);
+ z5 = (x1,h-.5x1);
+ draw z1{(-1,-1)}---z2{(1,-1)}---z3{right};
+ cutoff(z1,90);
+ cutoff(z3,0);
+ cutdraw z4{up}--z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{5}
+% \begin{macrocode}
+bauhausnumb("5",A_width#,l_height#,0,0);
+ tmp=wi/(1+sind(60));
+ lft z1 = (0,tmp*(1-sind(30)));
+ bot z2 = (wi-tmp,0);
+ rt top z3 = (wi,tmp);
+ top z4 = (x2,2y3);
+ top lft z5 = (0,2y3);
+ top lft z6 = (0,h);
+ top z7 = (wi,h);
+ cutdraw z1{dir(-60)}..z2{right}..z3{up}..z4{left}---
+ z5{(-1,1)}---z6{(1,1)}---z7{right};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{6}
+% \begin{macrocode}
+bauhausnumb("6",A_width#,l_height#,0,0);
+ lft z1 = (0,.5wi);
+ top z2 = (.5wi,wi);
+ rt z3 = (wi,y1);
+ bot z4 = (x2,0);
+ lft z5 = (0,h-.5wi);
+ top z6 = (x2,h);
+ z7 = z6 rotatedaround((.5wi,h-.5wi),-60);
+ draw z1{up}..z2{right}..z3{down}..z4{left}..z1{up}---
+ z5{up}..z6{right}..z7{dir(-60)};
+ cutoff(z7,-60);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{7}
+% \begin{macrocode}
+bauhausnumb("7",A_width#,l_height#,0,0) ;
+ top z1 = (0,h);
+ rt top z2 = (wi,h);
+ lft z3 = (0,0);
+ draw z1{right}---z2{(1,-1)}---z3{z3-z1} ;
+ cutoff(z1,180);
+ cutoff(z3,angle(z3-z1));
+ penlabels(1,2,3);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{8}
+% \begin{macrocode}
+bauhausnumb("8",.5l_height#+p_thick#+f_space#,l_height#,0,0);
+ top z1 = (.5wi,h);
+ z3 = (x1,.5h);
+ bot z6 = (x1,0);
+ rt z2 = bot z3 rotatedaround(.5[z3,z1],90);
+ lft z4 = bot z3 rotatedaround(.5[z3,z1],-90);
+ rt z5 = top z3 rotatedaround(.5[z6,z3],-90);
+ lft z7 = top z3 rotatedaround(.5[z6,z3],90);
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle;
+ draw z3{right}..z5{down}..z6{left}..z7{up}..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{9}
+% \begin{macrocode}
+bauhausnumb("9",A_width#,l_height#,0,0);
+ rt z1 = (wi,h-.5wi);
+ bot z2 = (.5wi,h-wi);
+ lft z3 = (0,y1);
+ top z4 = (x2,h);
+ rt z5 = (wi,.5wi);
+ bot z6 = (x2,0);
+ z7 = z6 rotatedaround((.5wi,.5wi),-60);
+ draw z1{down}..z2{left}..z3{up}..z4{right}..
+ z1{down}---z5{down}..z6{left}..z7{dir(120)};
+ cutoff(z7,120);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</digits>
+% \fi
+%
+% \subsection{Symbols (\texttt{specials.mf})}
+%
+% Sources for special symmbols. Some of these are not part of a
+% normal Computer Modern font, but is included here for consitency.
+% \iffalse
+%<*specials>
+% \fi
+% \begin{macro}{|}
+% \begin{macrocode}
+bauhaussymb(hex"0F",p_thick#+f_space#,l_height#,p_depth#,0);
+ "The symbol |";
+ lft z1 = (0,h);
+ lft z2 = (0,-d);
+ cutdraw z1{down}--z2{down};
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\i}
+% \begin{macrocode}
+bauhaussymb(hex"10",p_thick#+f_space#,x_height#,0,0);
+ "Dotless i";
+ lft z1 = (0,0);
+ lft z2 = (0,h);
+ cutdraw z1{up}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\j}
+% \begin{macrocode}
+bauhaussymb(hex"11",p_thick#+f_space#,x_height#,p_depth#,0);
+ "Dotless j";
+ lft z1 = (0,-d);
+ lft z2 = (0,h);
+ cutdraw z1{up}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{$}
+% \begin{macrocode}
+bauhaussymb("$",x_width#,l_height#,0,0);
+ "The symbol $";
+ lft z1 = (0,0.5[y6,y2]) ;
+ bot z2 = (1/3wi,1/8h) ;
+ bot z3 = (2/3wi,1/8h) ;
+ rt z4 = (wi,0.5[y5,y3]) ;
+ z5 = (2/3wi,0.5h) ;
+ z6 = (1/3wi,0.5h) ;
+ lft z7 = (0,0.5[y8,y6]) ;
+ top z8 = (1/3wi,7/8h);
+ top z9 = (2/3wi,7/8h) ;
+ rt z10 = (wi,0.5[y8,y6]) ;
+ z11 = (.5wi,0);
+ z12 = (.5wi,h);
+ cutdraw z1{down}..z2{right}--z3{right}..z4{up}..z5{left}--
+ z6{left}..z7{up}..z8{right}--z9{right}..z10{down};
+ cutdraw z11{up}--z12{up};
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{&}
+% \begin{macrocode}
+bauhaussymb("&",.5l_height#+2p_thick#+f_space#,l_height#,0,0);
+ "The symbol &";
+ top z1 = (3/8wi,h);
+ bot z6 = (x1,1/8h);
+ z3 = .5[z6,z1];
+ rt z2 = bot z3 rotatedaround(.5[z3,z1],90);
+ lft z4 = bot z3 rotatedaround(.5[z3,z1],-90);
+ rt z5 = top z3 rotatedaround(.5[z6,z3],-90);
+ lft z7 = top z3 rotatedaround(.5[z6,z3],90);
+ bot z8 = (wi,1/8h);
+ z9 = (x5,0);
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle;
+ cutdraw z8{left}---z6{left}..z7{up}..z3{right}..z5{down}---z9{down};
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{?}
+% \begin{macrocode}
+bauhaussymb("?",x_width#,l_height#,0,0);
+ "The symbol ?" ;
+ lft z1 = (0,h-.5wi);
+ top z2 = (.5wi,h);
+ rt z3 = (wi,y1);
+ z4 = (x2,h-wi);
+ bot z6 = (x2,0);
+ z5 = (x2,3y6);
+ draw z1{up}..z2{right}..z3{down}..z4{left}--z5{down};
+ cutoff(z1,-90);
+ cutoff(z5,-90);
+ drawdot z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{?`}
+% \begin{macrocode}
+bauhaussymb(spanish_query,x_width#,x_height#,p_depth#,0);
+ "Spanish query";
+ lft z1 = (0,-d+.5wi);
+ bot z2 = (.5wi,-d);
+ rt z3 = (wi,y1);
+ z4 = (x2,-d+wi);
+ top z6 = (x2,h);
+ z5 = (x2,h-3*(h-y6));
+ draw z3{down}..z2{left}..z1{up}..z4{right}--z5{up};
+ cutoff(z3,90);
+ cutoff(z5,90);
+ drawdot z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{!`}
+% \begin{macrocode}
+bauhaussymb(spanish_shriek,p_thick#+f_space#,x_height#,p_depth#,0);
+ "Spanish shriek";
+ lft top z1 = (0,h);
+ lft z2 = (0,h-3*(h-y1));
+ lft z3 = (0,-d);
+ drawdot z1;
+ cutdraw z2{down}--z3;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{right brace}
+% \begin{macrocode}
+bauhaussymb(hex"80",.7x_width#,l_height#,p_depth#,0);
+ "The symbol {";
+ top z1 = (wi,h);
+ top z2 = (1/2wi,h);
+ lft z3 = (1/4wi,h-1/2wi);
+ z4 = (x3,1/2(h-d));
+ z5 = (0,1/2(h-d));
+ z6 = (x3,1/2wi-d);
+ bot z7 = (x2,-d);
+ bot z8 = (wi,-d);
+ cutdraw z1{left}..z3{down}---z4{down}--z5{left};
+ cutdraw z4{down}---z6{down}..z8{right};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{left brace}
+% \begin{macrocode}
+bauhaussymb(hex"81",.7x_width#,l_height#,p_depth#,0);
+ "The symbol }";
+ top z1 = (0,h);
+ top z2 = (1/2wi,h);
+ rt z3 = (3/4wi,h-1/2wi);
+ z4 = (x3,1/2(h-d));
+ z5 = (wi,1/2(h-d));
+ z6 = (x3,1/2wi-d);
+ bot z7 = (x2,-d);
+ bot z8 = (0,-d);
+ cutdraw z1{right}..z3{down}---z4{down}--z5{right};
+ cutdraw z4{down}---z6{down}..z8{left};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \S{} is not normally avaliable as a character in Computer Modern
+% fonts but is included here for consistency.
+% \begin{macro}{\S}
+% \begin{macrocode}
+bauhaussymb(hex"82",.5l_height#+f_space#,l_height#,0,0);
+ "Paragraph sign";
+ lft z1 = (0,.5h);
+ top z2 = (.5wi,.5h+.5wi);
+ rt z3 = (wi,0.5h);
+ bot z4 = (.5wi,.5h-.5wi);
+ lft z5 = (0,h-.5wi);
+ top z6 = (.5wi,h);
+ z7 = z6 rotatedaround((.5wi,y5),-60);
+ rt z8 = (wi,.5wi);
+ bot z9 = (.5wi,0);
+ z10 = z9 rotatedaround((.5wi,y8),-60);
+ draw z10{dir(-60)}..z9{right}..z8{up}--z3{up};
+ draw z7{dir(120)}..z6{left}..z5{down}--z1{down};
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+ cutoff(z10,120);
+ cutoff(z7,-30);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% "Q" as a reflected "P"
+% \begin{macro}{\varQ}
+% \begin{macrocode}
+bauhaussymb(hex"83",A_width#,l_height#,0,0);
+ "variant letter Q";
+ rt z1 = (wi,0) ;
+ lft z2 = (0,h-.5wi) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,h-.5wi) ;
+ bot z5 = (0.5wi,h-wi) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z4{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</specials>
+% \fi
+%
+% \subsection{Ligatures (\texttt{ligatures})}
+%
+% Since I'm Danish, I insited on this ligatures, eventhough they are
+% a pain in the neck.
+% \iffalse
+%<*ligatures>
+% \fi
+% \begin{macro}{\ss}
+% \begin{macrocode}
+bauhaussymb(hex"19",2p_thick#+.5l_height#+f_space#,l_height#,0,0);
+ "Ligature ss";
+ lft z1 = (wi-.5h,0);
+ lft z2 = (wi-.5h,.75h);
+ top z3 = (wi-.25h,h);
+ rt z4 = (wi,y2);
+ z5 = (wi-.25h,.5h);
+ z6 = (0,.5h);
+ rt z7 = (wi,.25h);
+ bot z8 = (wi-.25h,0);
+ cutdraw z1{up}---z2{up}..z3{right}..z4{down}..z5{left}---z6{left};
+ cutdraw z5{right}..z7{down}..z8{left};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% Here we use the previously stored picture of ``a'' and ``e''.
+% \begin{macro}{\ae}
+% \begin{macrocode}
+bauhaussymb(hex"1A",2x_width#-p_thick#-2f_space#,x_height#,0,0);
+ "Ligature ae";
+ currentpicture := a_pic + ( e_pic shifted (.5wi,0));
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% Here we use the previously stored picture of ``o'' and ``e''.
+% \begin{macro}{\oe}
+% \begin{macrocode}
+bauhaussymb(hex"1B",2x_width#-p_thick#-2f_space#,x_height#,0,0);
+ "Ligature oe";
+ currentpicture := o_pic + ( e_pic shifted (.5wi,0));
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\o}
+% Here we use the previously stored picture of ``o''.
+% \begin{macrocode}
+bauhaussymb(hex"1C",x_width#,x_height#,0,0);
+ "Ligature o/";
+ lft z10 = (0,0);
+ rt z11 = (wi,h);
+ draw z10{(1,1)}--z11;
+ cutoff(z10,-90);
+ cutoff(z11,90);
+ currentpicture := currentpicture + o_pic;
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\AE}
+% \begin{macrocode}
+bauhaussymb(hex"1D",M_width#,l_height#,0,0);
+ "Ligature AE";
+ lft z1 = (0,0);
+ lft z2 = (0,.5wi);
+ top z3 = (.5wi,h);
+ top z4 = (wi,h);
+ lft z5 = (0,.5h);
+ z6 = (wi,.5h);
+ bot z7 = (wi,0);
+ bot z8 = (.5wi,0);
+ cutdraw z1{up}---z2{up}..z3{right}---z4{right};
+ draw z5{right}---z6{right};
+ cutoff(z6,0);
+ cutdraw z7{left}---z8{(-1,1)}---z3{up};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\OE}
+% \begin{macrocode}
+bauhaussymb(hex"1E",.5l_height#+.5A_width#+.5f_space#,l_height#,0,0);
+ "Ligature OE";
+ bot z1 = (wi,0);
+ bot z2 = (.5h,0);
+ lft z3 = (0,.5h);
+ top z4 = (.5h,h);
+ top z5 = (wi,h);
+ z6 = .5[z2,z4];
+ z7 = .5[z1,z5];
+ cutdraw z1{left}---z2{left}..z3{up}..z4{right}---z5{right};
+ draw z2{up}--z4{up};
+ draw z6{right}--z7{right};
+ cutoff(z7,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\O}
+% Here we use the previously stored picture of ``O''.
+% \begin{macrocode}
+bauhaussymb(hex"1F",l_height#+f_space#,l_height#,0,0);
+ "Liguture O/";
+ lft z10 = (0,0);
+ rt z11 = (wi,h);
+ draw z10{(1,1)}--z11;
+ cutoff(z10,-90);
+ cutoff(z11,90);
+ currentpicture := currentpicture + O_pic;
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</ligatures>
+% \fi
+%
+% \subsection{Punctuation Marks (\texttt{punctuations.mf})}
+%
+% This is the source file for the punctuation marks in this font.
+% These programs are pretty straight--foreward.
+% \iffalse
+%<*punctuations>
+% \fi
+% \begin{macro}{!}
+% \begin{macrocode}
+bauhaussymb("!",p_thick#+f_space#,l_height#,0,0);
+ "The punctuation !";
+ lft bot z1 = (0,0);
+ lft z2 = (0,3y1);
+ lft z3 = (0,h);
+ drawdot z1;
+ cutdraw z2{up}--z3;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{(}
+% \begin{macrocode}
+bauhaussymb("(",.5x_width#,l_height#,p_depth#,0);
+ "The punctuation (";
+ rt z1 = (wi,h);
+ lft z3 = (0,.5(h-d));
+ rt z5 = (wi,-d);
+ draw z1..z3..z5;
+ cutoff(z1,90);
+ cutoff(z5,-90);
+ penlabels(1,3,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{)}
+% \begin{macrocode}
+bauhaussymb(")",.5x_width#,l_height#,p_depth#,0);
+ "The punctuation )";
+ lft z1 = (0,h);
+ rt z3 = (wi,.5(h-d));
+ lft z5 = (0,-d);
+ draw z1..z3..z5;
+ cutoff(z1,90);
+ cutoff(z5,-90);
+ penlabels(1,3,5);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{''}
+% \begin{macrocode}
+bauhaussymb(hex"22",3f_space#,l_height#,0,0);
+ "The punctuation ''";
+ lft z1 = (3p_thick,h);
+ lft z2 = (p_thick,h);
+ lft z3 = (2p_thick,h-3p_thick);
+ lft z4 = (0,h-3p_thick);
+ draw z1--z3;
+ draw z2--z4;
+ cutoff(z1,90);
+ cutoff(z2,90);
+ cutoff(z3,-90);
+ cutoff(z4,-90);
+ penlabels(1,2,3,4);
+endchar;
+
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{#}
+% \begin{macrocode}
+bauhaussymb("#",A_width#,l_height#,0,0);
+ "The punctuation #";
+ lft top z1 = (0,3/4h);
+ lft bot z2 = (0,1/4h);
+ rt z3 = (wi,y1);
+ rt z4 = (wi,y2);
+ cutdraw z1{right}--z3{right};
+ cutdraw z2{right}--z4{right};
+ bot z5 = (1/5wi,0);
+ bot z6 = (3/5wi,0);
+ top z7 = (2/5wi,h);
+ top z8 = (4/5wi,h);
+ draw z5--z7;
+ draw z6--z8;
+ cutoff(z5,-90);
+ cutoff(z6,-90);
+ cutoff(z7,90);
+ cutoff(z8,90);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\%}
+% \begin{macrocode}
+bauhaussymb("%",A_width#,l_height#,0,0);
+ "The punctuation %";
+ rt z1 = (wi,h);
+ lft z2 = (0,0);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ top z3 = (1/4wi,h);
+ rt z4 = top z3 rotatedaround((x3,h-x3),-90);
+ bot z5 = top z3 rotatedaround((x3,h-x3),-180);
+ lft z6 = top z3 rotatedaround((x3,h-x3),-270);
+ draw z3{right}..z4{down}..z5{left}..z6{up}..cycle;
+ bot z7 = (3/4wi,0);
+ lft z8 = bot z7 rotatedaround((x7,x3),-90);
+ top z9 = bot z7 rotatedaround((x7,x3),-180);
+ rt z10 = bot z7 rotatedaround((x7,x3),-270);
+ draw z7{left}..z8{up}..z9{right}..z10{down}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{'}
+% \begin{macrocode}
+bauhaussymb("'",2f_space#,l_height#,0,0);
+ "The punctuation '";
+ lft z1 = (p_thick,h);
+ lft z2 = (0,h-3p_thick);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{*}
+% \begin{macrocode}
+bauhaussymb("*",x_width#,l_height#,0,0);
+ "The punctuation *";
+ z1 = (0.5wi,h);
+ z2 = z1 rotatedaround((.5wi,h-.5wi),-60);
+ z3 = z1 rotatedaround((.5wi,h-.5wi),-120);
+ z4 = z1 rotatedaround((.5wi,h-.5wi),-180);
+ z5 = z1 rotatedaround((.5wi,h-.5wi),-240);
+ z6 = z1 rotatedaround((.5wi,h-.5wi),-300);
+ cutdraw z1--z4;
+ cutdraw z2--z5;
+ cutdraw z3--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{+}
+% \begin{macrocode}
+bauhaussymb("+",x_width#,x_height#,0,0);
+ "The punctuation +";
+ z1 = (.5wi,h);
+ z2 = (.5wi,0);
+ z3 = (0,.5h);
+ z4 = (wi,.5h);
+ cutdraw z1{down}--z2;
+ cutdraw z3{right}--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{,}
+% \begin{macrocode}
+bauhaussymb(",",p_thick#+f_space#,p_thick#,2/3p_depth#,0);
+ "The punctuation ,";
+ lft bot z1 = (0,h);
+ lft top z2 = (0,-d);
+ cutdraw z1{down}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{-}
+% \begin{macrocode}
+bauhaussymb("-",.7x_width#,x_height#,0,0);
+ "The punctuation -";
+ z1 = (0,.5h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{.}
+% \begin{macrocode}
+bauhaussymb(".",p_thick#+f_space#,p_thick#,0,0);
+ "The punctuation .";
+ lft bot z1 = (0,0);
+ drawdot z1;
+ penlabels(1);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{/}
+% \begin{macrocode}
+bauhaussymb("/",2/3x_width#,l_height#,p_depth#,0);
+ "The punctuation /";
+ lft z1 = (0,-d);
+ rt z2 = (wi,h);
+ draw z1--z2;
+ cutoff(z1,-90);
+ cutoff(z2,90);
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{:}
+% \begin{macrocode}
+bauhaussymb(":",p_thick#+f_space#,x_height#,0,0);
+ "The punctuation :";
+ top lft z1 = (0,h);
+ bot lft z2 = (0,0);
+ drawdot z1;
+ drawdot z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{;}
+% \begin{macrocode}
+bauhaussymb(";",p_thick#+f_space#,x_height#,2/3p_depth#,0);
+ "The punctuation ;";
+ lft bot z1 = (0,0);
+ lft top z2 = (0,-d);
+ lft top z3 = (0,h);
+ cutdraw z1{down}--z2;
+ drawdot z3;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{=}
+% \begin{macrocode}
+bauhaussymb("=",.7x_width#,x_height#,0,0);
+ "The punctuation =";
+ top z1 = (0,1/3h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ bot z3 = (0,2/3h);
+ z4 = (wi,y3);
+ cutdraw z3{right}--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{@}
+% \begin{macrocode}
+bauhaussymb("@",l_height#+f_space#,l_height#,0,0);
+ "The punctuation @";
+ rt z1 = (wi,0);
+ rt z2 = (wi,.5h);
+ top z3 = (.5wi,h);
+ lft z4 = (0,.5h);
+ z5 = z4 rotatedaround((.5wi,.5h),60);
+ rt z6 = (wi,1/3h);
+ top z7 = (wi-1/3h,2/3h);
+ lft z8 = (wi-2/3h,1/3h);
+ bot z9 = (wi-1/3h,0);
+ cutdraw z1{up}--z2{up}..z3{left}..z4{down}..z5{dir(-30)};
+ draw z6{up}..z7{left}..z8{down}..z9{right}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{[}
+% \begin{macrocode}
+bauhaussymb("[",.7x_width#,l_height#,p_depth#,0);
+ "The punctuation [";
+ rt top z1 = (wi,h);
+ lft top z2 = (0,h);
+ lft bot z3 = (0,-d);
+ rt bot z4 = (wi,-d);
+ cutdraw z1{left}---z2{(-1,-1)}---z3{(1,-1)}---z4{right};
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{``}
+% \begin{macrocode}
+bauhaussymb(hex"5C",3f_space#,l_height#,0,0);
+ "The punctuation ``";
+ lft z1 = (0,h);
+ lft z2 = (2p_thick,h);
+ lft z3 = (p_thick,h-3p_thick);
+ lft z4 = (3p_thick,h-3p_thick);
+ draw z1--z3;
+ draw z2--z4;
+ cutoff(z1,90);
+ cutoff(z2,90);
+ cutoff(z3,-90);
+ cutoff(z4,-90);
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{]}
+% \begin{macrocode}
+bauhaussymb("]",.7x_width#,l_height#,p_depth#,0);
+ "The punctuation ]";
+ lft top z1 = (0,h);
+ rt top z2 = (wi,h);
+ rt bot z3 = (wi,-d);
+ lft bot z4 = (0,-d);
+ cutdraw z1{right}---z2{(1,-1)}---z3{(-1,-1)}---z4{left};
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{`}
+% \begin{macrocode}
+bauhaussymb("`",2f_space#,l_height#,0,0);
+ "The punctuation `";
+ lft z1 = (0,h);
+ lft z2 = (p_thick,h-3p_thick);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{--}
+% \begin{macrocode}
+bauhaussymb(hex"7B",x_width#,x_height#,0,0);
+ "The punctuation --";
+ z1 = (0,.5h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{---}
+% \begin{macrocode}
+bauhaussymb(hex"7C",m_width#,x_height#,0,0);
+ "The punctuation ---";
+ z1 = (0,.5h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</punctuations>
+% \fi
+%
+% \subsection{Accents (\texttt{accents.mf})}
+%
+% Source file for accents. The ``tie--after'' \t{oo} (\Lcs{t})
+% accent is not defined.
+% \iffalse
+%<*accents>
+% \fi
+% \begin{macro}{\`{}}
+% \begin{macrocode}
+bauhaussymb(hex"12",x_width#,l_height#,0,0);
+ "The accent `";
+ top z1 = (0,h);
+ bot z2 = (2.5p_thick,h-2.5p_thick);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\'{}}
+% \begin{macrocode}
+bauhaussymb(hex"13",x_width#,l_height#,0,0);
+ "The accent '";
+ bot z1 = (0.5wi,h-2p_thick);
+ top z2 = (.5wi+2p_thick,h);
+ draw z1--z2;
+ cutoff(z1,-90);
+ cutoff(z2,90);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\v{}}
+% \begin{macrocode}
+bauhaussymb(hex"14",x_width#,l_height#,0,0);
+ "The accent hachek";
+ bot z1 = (.5wi,h-2p_thick);
+ top z2 = (.5wi-1.5p_thick,h);
+ top z3 = (.5wi+1.5p_thick,h);
+ draw z2---z1{right}---z3;
+ cutoff(z2,90);
+ cutoff(z3,90);
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\u{}}
+% \begin{macrocode}
+bauhaussymb(hex"15",x_width#,l_height#,0,0);
+ "The accent breve";
+ bot z1 = (.5wi,h-2p_thick);
+ top z2 = (.5wi-p_thick,h);
+ top z3 = (.5wi+p_thick,h);
+ cutdraw z2{down}..z1{right}..z3{up};
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\={}}
+% \begin{macrocode}
+bauhaussymb(hex"16",x_width#,l_height#,0,0);
+ "The accent bar";
+ top z1 = (.5wi-1.5p_thick,h);
+ top z2 = (.5wi+1.5p_thick,h);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\aa{}}
+% \begin{macrocode}
+bauhaussymb(hex"17",A_width#,l_height#,0,0);
+ "The accent circle";
+ top z1 = (.5wi,h+p_thick);
+ lft z2 = (.5wi-1.5p_thick,h-.5p_thick);
+ bot z3 = (.5wi,h-2p_thick);
+ rt z4 = (.5wi+1.5p_thick,h-.5p_thick);
+ draw z1{left}..z2{down}..z3{right}..z4{up}..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\c{}}
+% \begin{macrocode}
+bauhaussymb(hex"18",x_width#,l_height#,p_depth#,0);
+ "The accent cidelia";
+ bot z1 = (.5wi,0);
+ rt z2 = (.5wi+1.5p_thick,-.5p_thick);
+ top z3 = (.5wi,-p_thick);
+ cutdraw z1{right}..z2{down}..z3{left};
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\l}
+% \begin{macrocode}
+bauhaussymb(hex"20",f_space#,l_height#,0,0);
+ "The accent bar over l";
+ top z1 = (0,.5h);
+ bot z2 = (3p_thick,.5h);
+ cutdraw z1--z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{^}
+% \begin{macrocode}
+bauhaussymb(hex"5E",x_width#,l_height#,0,0);
+ "The accent hat";
+ top z1 = (.5wi,h);
+ bot z2 = (.5wi-1.5p_thick,h-2p_thick);
+ bot z3 = (.5wi+1.5p_thick,h-2p_thick);
+ draw z2---z1{right}---z3;
+ cutoff(z2,-90);
+ cutoff(z3,-90);
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\.{}}
+% \begin{macrocode}
+bauhaussymb(hex"5F",x_width#,l_height#,0,0);
+ "The accent dot";
+ top z1 = (.5wi,h);
+ drawdot z1;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\H{}}
+% \begin{macrocode}
+bauhaussymb(hex"7D",x_width#,l_height#,0,0);
+ "The accent ''";
+ rt z1 = (.5wi,h);
+ rt z2 = (.5wi-2p_thick,h-2p_thick);
+ rt z3 = (.5wi+2p_thick,h);
+ rt z4 = (.5wi,h-2p_thick);
+ draw z1--z2;
+ draw z3--z4;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ cutoff(z3,90);
+ cutoff(z4,-90);
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{tilde}
+% \begin{macrocode}
+bauhaussymb(hex"7E",x_width#,l_height#,0,0);
+ "The accent ~";
+ bot z1 = (.5wi-1.5p_thick,h-1.5p_thick);
+ top z2 = (.5wi-.75p_thick,h);
+ bot z3 = (.5wi+.75p_thick,h-1.5p_thick);
+ top z4 = (.5wi+1.5p_thick,h);
+ cutdraw z1..z2{right}..z3{right}..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{umlaut}
+% \begin{macrocode}
+bauhaussymb(hex"7F",x_width#,l_height#,0,0);
+ "The accent Ļ";
+ top rt z1 = (.5wi-.25p_thick,h);
+ top lft z2 = (.5wi+.25p_thick,h);
+ drawdot z1;
+ drawdot z2;
+ penlabels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</accents>
+% \fi
+%
+% \subsection{Bauhaus symbols (\texttt{extras.mf})}
+%
+% This is the sources for the extra \textbayer{bauhaus} symbols.
+% Use them to add some spiece to your document, or as icons
+% indicating special sections, etc.
+% \iffalse
+%<*extras>
+% \fi
+% \begin{macro}{\bauplus}
+% This is \emph{not} --- I repeat \emph{NOT} --- a schwastica, but
+% an asymmetrical plus--sign.
+% \begin{macrocode}
+picture blackpic;
+bauhausextra(hex"00","bauplus")%\bauplus
+ z1 = (0,0);
+ z2 = (0,h);
+ z3 = (wi,h);
+ z4 = (wi,0);
+ fill z1--z2--z3--z4--cycle;
+ blackpic := currentpicture;
+ inn=.9wi;
+ sp=.05wi;
+ z5 = (1/3inn+sp,h-sp);
+ z6 = (.5(wi-sp),y5);
+ z7 = (x6,.5(h+.sp));
+ z8 = (x5,y7);
+ path square ;
+ square = z5--z6--z7--z8--cycle;
+ unfill square;
+ unfill (square rotatedaround((.5wi,.5h),90));
+ unfill (square rotatedaround((.5wi,.5h),180));
+ unfill (square rotatedaround((.5wi,.5h),270));
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\baudash}
+% Why not try making hyphonation dashes in a new way (it's only
+% a suggestion!).
+% \begin{macrocode}
+bauhausextra(hex"01","baudash")%\baudash
+ currentpicture := currentpicture + blackpic;
+ innn=.9wi;
+ z5 = (sp,.5(h+sp));
+ z6 = (sp,1/6innn+.5h);
+ z7 = (.5(wi-sp),y6);
+ z8 = (x7,.y5);
+ path square[] ;
+ square1 = z5--z6--z7--z8--cycle;
+ square2 = (square1 reflectedabout((.5wi,0),(.5wi,h)));
+ unfill square1;
+ unfill (square1 reflectedabout((0,.5h),(wi,.5h)));
+ unfill square2 ;
+ unfill (square2 reflectedabout((0,.5h),(wi,.5h)));
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauequal}
+% Well, sometimes things ARE what they may not seem.
+% \begin{macrocode}
+bauhausextra(hex"02","bauequal")%\bauequal
+ currentpicture := currentpicture + blackpic;
+ z1 = (sp,.5(h+sp));
+ z2 = (sp,1/6innn+.5h);
+ z3 = (.5(wi-sp),y2);
+ z4 = (x3,.y1);
+ z5 = (sp,sp);
+ z6 = (sp,1/6innn+sp);
+ z7 = (.5(wi-sp),y6);
+ z8 = (x7,.y5);
+ path square[] ;
+ square1 = z1--z2--z3--z4--cycle;
+ square2 = (square1 reflectedabout((.5wi,0),(.5wi,h)));
+ square3 = z5--z6--z7--z8--cycle;
+ square4 = (square3 reflectedabout((.5wi,0),(.5wi,h)));
+ unfill square1;
+ unfill square2;
+ unfill square3 ;
+ unfill square4;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bautrangle}
+% The triangle was one of the main forms to the founder of
+% bauhaus school --- Walter Gropius, along with the circle and
+% the square. If you use the \textsf{color} package, you could
+% use a yellow trangle, red circle and blue square, to make a
+% compliment to Walter Gropius. \index{Gropius, Walter}
+% \begin{macrocode}
+bauhausextra(hex"03","bautriangle")%\bautriangle
+ z1 = (0,0);
+ z2 = (.5wi,h);
+ z3 = (wi,0);
+ fill z1--z2--z3--cycle;
+ penlabels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\baucircle}
+% Lets make thing round (but not quite).
+% \begin{macrocode}
+bauhausextra(hex"04","baucircle")%\baucircle
+ currentpicture := currentpicture + blackpic;
+ pickup pencircle scaled 1/4wi;
+ top z1 = (.5wi,h); rt z2 = (wi,.5h);
+ bot z3 = (.5wi,0); lft z4 = (0,.5h);
+ undraw z1..z2..z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\baucross}
+% ``X'' marks the spot.
+% \begin{macrocode}
+bauhausextra(hex"05","baucross")%\baucross
+ bot lft z1 = (0,0) ; top lft z2 = (0,h) ;
+ top rt z3 = (wi,h) ; bot rt z4 = (wi,0) ;
+ draw z1--z2--z3--z4--cycle;
+ z5 = (0,1/4h) ; z6 = (1/4wi,.5h) ; z7 = (0,3/4h) ;
+ z8 = (1/4wi,h) ; z9 = (.5wi,3/4h) ; z10 = (3/4wi,h) ;
+ z11 = (wi,3/4h) ; z12 = (3/4wi,.5h) ; z13 = (wi,1/4h) ;
+ z14 = (3/4wi,0) ; z15 = (.5wi,1/4h) ; z16 = (1/4wi,0) ;
+ fill z1--z5--z6--z7--z2--z8--z9--z10--z3--z11--z12--
+ z13--z4--z14--z15--z16--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauwindow}
+% This symbols resembles the Japaness sign for ``field'', but
+% to Europeans, I think it looks like a window.
+% \begin{macrocode}
+bauhausextra(hex"06","bauwindow")%\bauwindow
+ bot lft z1 = (0,0) ; top lft z2 = (0,h) ;
+ top rt z3 = (wi,h) ; bot rt z4 = (wi,0) ;
+ draw z1--z2--z3--z4--cycle;
+ top z5 = (.5wi,h) ; bot z6 = (.5wi,0) ;
+ lft z7 = (0,.5h) ; rt z8 = (wi,.5h) ;
+ draw z5--z6;
+ draw z7--z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauhole}
+% \begin{macrocode}
+bauhausextra(hex"07","bauhole")%\bauhole
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ z5 = (.5wi,9/10h);
+ z6 = (9/10wi,.5h);
+ z7 = (x5,1/10h);
+ z8 = (1/10wi,y6);
+ fill z5..z6..z7..z8..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\baueclipse}
+% ``The sun ain't gonna shine anymore''. How's dat for a
+% quote\footnote{Slang --- what a dreadfull thing.}.
+% \begin{macrocode}
+bauhausextra(hex"08","baueclipse")%\baueclipse
+ pickup pencircle scaled p_thick;
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ delta = .05wi;
+ z5 = bot z1 - (0,delta);
+ z6 = lft z2 - (delta,0);
+ z7 = top z3 + (0,.9delta);
+ z8 = rt z4 + (.9delta,0);
+ fill z5..z6..z7..z8..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauquarter}
+% Take a slice of this cake!
+% \begin{macrocode}
+bauhausextra(hex"09","bauquarter")%\bauquarter
+ z1 = (.5wi,h);
+ z2 = (.5wi,.5h);
+ z3 = (wi,y2);
+ z4 = (x1,0);
+ z5 = (0,y2);
+ top z7 = z1;
+ rt z8 = z3;
+ fill z4{left}..z5{up}..z1--z2--z3..cycle;
+ draw z7{right}..z8{down};
+ penlabels(1,2,3,4,5,7,8);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauarrow}
+% An encircled black arrow.
+% \begin{macrocode}
+bauhausextra(hex"0A","bauarrow")%\bauarrow
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ z5 = (3/10wi,6/10h);
+ z6 = (6/10wi,y5);
+ z7 = (x6,y5+1/20wi);
+ z8 = (x6+3/20wi,.5h);
+ z9 = (x6,4/10h-1/20h);
+ z10 = (x6,4/10h);
+ z11 = (x5,y10);
+ fill z5--z6--z7--z8--z9--z10--z11--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauwhitearrow}
+% Much like above, only the arrow is hollow.
+% \begin{macrocode}
+bauhausextra(hex"0B","bauwhitearrow")%\bauwhitearrow
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ z5 = (3/10wi,6/10h);
+ z6 = (6/10wi,y5);
+ z7 = (x6,y5+1/20wi);
+ z8 = (x6+3/20wi,.5h);
+ z9 = (x6,4/10h-1/20h);
+ z10 = (x6,4/10h);
+ z11 = (x5,y10);
+ draw z5--z6--z7--z8--z9--z10--z11--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauhead}
+% The well--known logo for bauhaus.
+% We save some of this symbol picture \texttt{commonface}, since
+% this includes the points common to both this symbol and the next.
+% \begin{macrocode}
+bauhausextra(hex"0C","bauhead")%\bauhead
+ % Vertical variables
+ a1 = 0.702h ; a2 = 0.561h ; a3 = 0.491h ; a4 = 0.351h ;
+ a5 = 0.272h ; a6 = 0.140h ;
+ % horizontal variables
+ b1 = 0.202wi ; b2 = 0.307wi ; b3 = 0.412wi ; b4 = 0.447wi ;
+ b5 = 0.465wi ; b6 = 0.518wi ; b7 = 0.588wi ; b8 = 0.623wi ;
+ % eye
+ pickup pensquare scaled .009wi ;
+ top lft z1 = (b1,a1) ; top rt z2 = (b2,a1) ;
+ draw z1--z2;
+ bot rt z3 = (b4,a3) ; top rt z4 = (b4,a2) ;
+ draw z3--z4;
+ z5 = (b2,a1) ; z6 = (b4,a1) ; z7 = (b4,a2) ; z8 = (b2,a2) ;
+ fill z5--z6--z7--z8--cycle;
+ % nostril
+ lft bot z9 = (b4,a4) ; rt bot z10 = (b7,a4) ;
+ draw z9--z10 ;
+ % chin
+ lft bot z11 = (b2,a6) ; rt bot z12 = (b6,a6) ;
+ draw z11--z12;
+ % lips
+ pickup pensquare scaled 0.035wi ;
+ lft top z13 = (b5,a5) ; rt top z14 = (b6,a5) ;
+ draw z13--z14;
+ % bottom of face
+ z15 = (b6,a4) ; z16 = (b7,a4) ; z17 = (b7,a6) ; z18 = (b6,a6) ;
+ fill z15--z16--z17--z18--cycle ;
+ % save the common stuff
+ picture commonface ;
+ commonface := currentpicture ;
+ % head with circle
+ path noselft, nosert, necklft, neckrt ;
+ path headcircle , parttop, partbot;
+ z19 = (b7,a4) ; z20 = (b7,h) ; noselft = z19--z20 ;
+ z21 = (b8,h) ; z22 = (b8,a4) ; nosert = z21--z22 ;
+ z23 = (b3,a6) ; z24 = (b3,0) ; necklft = z23--z24 ;
+ z25 = (b6,0) ; z26 = (b6,a6) ; neckrt = z25--z26 ;
+ % circle
+ pickup pencircle scaled .009wi;
+ top z27 = (.5wi,h) ; rt z28 = (wi,.5h) ;
+ bot z29 = (.5wi,0) ; lft z30 = (0,.5h) ;
+ headcircle := z27..z28..z29..z30..cycle ;
+ draw headcircle ;
+ % nose/forhead
+ z31 = noselft intersectiontimes headcircle ;
+ z32 = nosert intersectiontimes headcircle ;
+ parttop = subpath(y31,y32) of headcircle ;
+ fill z19--parttop--z22--cycle ;
+ % nose/forhead
+ z33 = neckrt intersectiontimes headcircle ;
+ z34 = necklft intersectiontimes headcircle ;
+ partbot = subpath(y34,y33) of headcircle ;
+ fill z23--partbot--z26--cycle ;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) ;
+ penlabels(21,22,23,24,25,26,27,28,29,30);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauface}
+% This symbol is like the one above, but without the enclosing
+% circle. We reuse the saved picture \texttt{commonface}, since
+% this includes the points common to both symbols.
+% \begin{macrocode}
+bauhausextra(hex"0D","bauface");%\bauface
+ % head without cicle
+ path noselft, nosert, necklft, neckrt ;
+ % nose/forhead
+ z19 = (b7,a4) ; z20 = (b7,h) ; noselft = z19--z20 ;
+ z21 = (b8,h) ; z22 = (b8,a4) ; nosert = z21--z22 ;
+ fill noselft--nosert--cycle;
+ % neck
+ z23 = (b3,a6) ; z24 = (b3,0) ; necklft = z23--z24 ;
+ z25 = (b6,0) ; z26 = (b6,a6) ; neckrt = z25--z26 ;
+ fill necklft--neckrt--cycle;
+ currentpicture := currentpicture + commonface ;
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauquestion}
+% This symbol didn't come out as I originally intended it to, but
+% all--in--all I'm quite contend with the outcome.
+% \begin{macrocode}
+beginchar(hex"0E",5/7l_height#+f_space#,l_height#,p_depth#);
+ %\bauquestion
+ "The bauhaus symbol bauquestion";
+ pickup pencircle scaled 1/10p_thick ;
+ spp=.01wi;
+ wi#:=2/3l_height#;
+ define_pixels(wi);
+ z1 = (0,0) ; z2 = (0,h) ; z3 = (wi,h) ; z4 = (wi,0) ;
+ fill z1--z2--z3--z4--cycle;
+ z5 = (1/2(.5wi-spp)+spp,spp);
+ z6 = (.5wi,y5) ;
+ z7 = (.5wi,x5);
+ z8 = (x5,x5);
+ unfill z5--z6--z7--z8--cycle;
+ z9 = (x6+3/2(x5-spp),y7); z10 = (x9,y7+x9-x6) ; z11 = (x6,y10) ;
+ unfill z7--z9--z10--z11--cycle;
+ z12 = (x6,y11+.5(wi-spp)) ; z13 = (spp,y12) ; z14 = (spp,y10) ;
+ unfill z11--z12--z13--z14--cycle ;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bauforms}
+% This is proberly the most complicated symbol of the entire font.
+% It is shown in 72pt in Figure~\ref{charforms}.
+% \begin{figure}[htbp]
+% \centering
+% \font\Hugebayer=universal17 at 72pt
+% \textbayer{\Hugebayer \bauforms}
+% \caption{\Lcs{bauforms} symbol.}
+% \label{charforms}
+% \end{figure}
+%
+% This symbol is, however proberly also the most interresting symbol
+% of the font, design--wise, since it uses the the three fundamental
+% forms: the circle, the trangle and the square. As stated elsewhere,
+% these forms was considered by Walter Gropius as three most important
+% figures in design.\index{Gropius, Walter}
+%
+% The task is to make a circle, in inside this make a triangle and
+% a square. However, the angles (in particular the right most) of
+% triangle should be so that the left--most down--stroke should
+% divide the square into two rectangles, twice has high as wide.
+%
+% One should think the square is an inscribed square of the circle
+% with center on the middle of the trangles down--stroke, with a
+% radius of the distance from this point to the outer circle.
+% This is \emph{not} the case!
+%
+% It is possible to determine analythical the vertex points of the
+% triangle and square as a function of the left most angle (in the
+% \MF{} program called \texttt{phi}), but I have found \emph{no}
+% anaytical expression for this angle, though I cannot prove no such
+% expression exists. If you have a proff of this, or found an
+% expression, please let me know, as I consider it a challenging
+% problem in geometry.\index{Problem in geometry}
+%
+% \begin{figure}[htbp]
+% \centering
+% \epsfig{file=forms.eps}
+% \caption{Geometrical problem \Lcs{bauforms}.}
+% \label{geometry}
+% \end{figure}
+%
+% Figure~\ref{geometry} shows the upper half of this symbol in terms
+% of point positions. Notice point $z_{ref}$ isnīt in the program for
+% \Lcs{bauforms} but is shown here to point out an important feature
+% of the numerical calculations. Also $w$ is called \texttt{wi} in the
+% \MF{} program.
+%
+% The analytical equations for $z_6=(a_3,a_4)$ and $z_8=(a_5,a_6)$ can
+% be determined as functions of $\phi$ as follows:\\
+% From the problem, it is given, that
+% \begin{equation}a_3-a_5=a_6,\end{equation}
+% and since the angle $\phi$ at the edge of the circle is eguivivalent
+% to the angle $2\phi$ from the center of the circle. So there
+% resaults
+% \begin{eqnarray}
+% \sqrt{(a_3)^2+(a_4)^2}&=&w\cos\phi\nonumber\\
+% &=&a_1\\
+% a_3 &=&w\cos\phi\cos\phi\nonumber\\
+% &=&w\cos^2\phi\\
+% a_4 &=&w\cos\phi\sin\phi\quad.
+% \end{eqnarray}
+% Through some use of the relations of sine, and the fact that the
+% angle between the $x$--axis and the vector $z_8-(w/2,0)$ \emph{must}
+% be 45 degrees, we can calculate $a_5,a_6$ and there by $a_7$:
+% \begin{eqnarray}
+% a_2 &=&\frac{w\cos^2\phi}{\cos\phi+\sin\phi}\\
+% a_5 &=&a_2\cos\phi\\
+% a_6 &=&a_2\sin\phi\\
+% a_7 &=&a_2(\cos\phi+2\sin\phi)\quad.
+% \end{eqnarray}
+% We have found the points $z_6,z_8,z_9$ \emph{but as functions of
+% $\phi$}, and since all properties of the problem at hand has been
+% fully explored, no more information can be drawn. So we still need a
+% way to determine the angle $\phi$.
+%
+% To solve this problem, I use an \emph{numerical} method of finding
+% the angle $\phi$. The points $z_6,z_8$ has been determined, so
+% that the down stroke divieds the square into two equal rectangles,
+% with double the width as the height. The last problem is to
+% determine the angle $\phi$, so that the point $z_9$ lies on the
+% circle.
+%
+% Therefore we calculate the point $z_{ref}$, which is the
+% point on the circle where $z_9$ should be, if it were to lie on the
+% circle with the current choice of $\phi$. $z_{ref}=(a_9,a_{10})$ is
+% given by:
+% \begin{eqnarray}
+% \theta&=&\tan^{-1}\left(\frac{a_7-w/2}{a_6}\right)\nonumber\\
+% &=&a_8\\
+% a_9 &=&\frac{w}{2}(1+\cos\theta)\\
+% a_10 &=&\frac{w}{2}\sin\theta\quad.
+% \end{eqnarray}
+% Then we test to see if the point $z_9$ is reasonably close to
+% $z_ref$. If so, we use the current choice of $\phi$ to set all the
+% points.
+% \begin{macrocode}
+bauhausextra(hex"84","bauforms");%\bauforms
+ pickup pencircle scaled 1/32 wi;
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (.5wi,0);
+ lft z4 = (0,.5h);
+ draw z1..z2..z3..z4..cycle;
+ for phi := 20 step 0.1 until 40 :
+ a1 := 31/32wi*cosd(phi);
+ a2 := (31/32wi*(cosd(phi)**2))/(cosd(phi)+sind(phi));
+ a3 := a1*cosd(phi);
+ a4 := a1*sind(phi);
+ a5 := a2*cosd(phi);
+ a6 := a2*sind(phi);
+ a7 := a2*(cosd(phi)+2*sind(phi));
+ a8 := angle(a7-31wi/64,a6);
+ a9 := 31wi/64*(1+cosd(a8));
+ a10 := 31wi/64*sind(a8);
+ if abs(a7 - a9)<.1 :
+ exitif abs(a6 - a10)<.1 ;
+ fi;
+ endfor;
+ pickup pencircle scaled 1/64wi;
+ lft z5 = (1/32wi,.5h);
+ top z6 = (a3,a4)+(0,.5h);
+ bot z7 = (a3,.5h-a4);
+ draw z5--z6--z7--z5;
+ pickup pencircle scaled 1/24wi;
+ top lft z8 = (a5,a6)+(0,.5h);
+ top rt z9 = (a7,a6)+(0,.5h);
+ bot rt z10 = (a7,.5h-a6);
+ bot lft z11 = (a5,.5h-a6);
+ z12 = (a9,a10)+(0,.5h);
+ draw z8--z9--z10--z11--z8;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\baupunct}
+% \begin{macrocode}
+bauhausextra(hex"85","baupunct");%\baupunct
+ z1 = (.5wi,h);
+ z2 = (wi,.5h);
+ z3 = (.5wi,0);
+ z4 = (0,.5h);
+ fill z1..z2..z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\bausquare}
+% \begin{macrocode}
+bauhausextra(hex"86","bausquare");%\bausquare
+ z1 = (0,h);
+ z2 = (wi,h);
+ z3 = (wi,0);
+ z4 = (0,0);
+ fill z1--z2--z3--z4--cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+% end of file "extras.mf"
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</extras>
+% \fi
+%
+% \Finale
+% \PrintIndex
+% \PrintChanges
+
diff --git a/Master/texmf-dist/source/latex/bayer/universal.ins b/Master/texmf-dist/source/latex/bayer/universal.ins
new file mode 100644
index 00000000000..e82e821c64e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/bayer/universal.ins
@@ -0,0 +1,78 @@
+%%
+%% This is file `universal.ins', the installation file for the
+%% `universal' package.
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% The thump package is free software; you can redistribute it
+%% and/or modify it under the terms of the GNU General Public License
+%% as published by the Free Software Foundation; either version 2 of
+%% the License, or (at your option) any later version.
+%%
+%% The thump package is distributed in the hope that it will be
+%% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+%% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+\def\batchfile{universal.ins}
+\input docstrip.tex
+\keepsilent
+\preamble
+
+Copyright (C) 1997 Christian Holm.
+
+This file is NOT the source for universal, because almost all
+comments have been stripped from it. It is NOT the preferred
+form of universal for making modifications to it.
+
+Therefore you can NOT redistribute and/or modify THIS file.
+You can however redistribute the complete source (universal.dtx
+and universal.ins) and/or modify it under the terms of the GNU
+General Public License as published by the Free Software
+Foundation; either version 2, or (at your option) any later
+version.
+
+The universal font and package is distributed in the hope that
+it will be useful, but WITHOUT ANY WARRANTY; without even the
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE. See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public
+License along with this program; if not, write to the
+ Free Software Foundation, Inc.,
+ 675 Mass Ave, Cambridge,
+ MA 02139, USA.
+
+See the file universal.dtx for further comments and documentation.
+
+\endpreamble
+\generateFile{universal.sty}{f}{\from{universal.dtx}{package}}
+\generateFile{ot1universal.fd}{f}{\from{universal.dtx}{fd}}
+\generateFile{universal.mf}{f}{\from{universal.dtx}{main}}
+\generateFile{universal8.mf}{f}{\from{universal.dtx}{eight}}
+\generateFile{universal9.mf}{f}{\from{universal.dtx}{nine}}
+\generateFile{universal10.mf}{f}{\from{universal.dtx}{ten}}
+\generateFile{universal12.mf}{f}{\from{universal.dtx}{twelve}}
+\generateFile{universal17.mf}{f}{\from{universal.dtx}{seventeen}}
+\generateFile{uppers.mf}{f}{\from{universal.dtx}{uppers}}
+\generateFile{lowers.mf}{f}{\from{universal.dtx}{lowers}}
+\generateFile{digits.mf}{f}{\from{universal.dtx}{digits}}
+\generateFile{specials.mf}{f}{\from{universal.dtx}{specials}}
+\generateFile{ligatures.mf}{f}{\from{universal.dtx}{ligatures}}
+\generateFile{punctuations.mf}{f}{\from{universal.dtx}{punctuations}}
+\generateFile{accents.mf}{f}{\from{universal.dtx}{accents}}
+\generateFile{extras.mf}{f}{\from{universal.dtx}{extras}}
+
+\Msg{***********************************************************}
+\Msg{* To finish the installation you have to move the files}
+\Msg{* `universal.sty' `ot1universal.fd into a directory }
+\Msg{* searched by TeX, and the files *.mf to a directory}
+\Msg{* searched by Metafont.}
+\Msg{*}
+\Msg{* To produce the documentation run the file `universal.dtx'}
+\Msg{* through LaTeX and MakeIndex as said in the README file.}
+\Msg{***********************************************************}