% \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

