texlive[51984] Master/texmf-dist: universa (29aug19)

commits+karl at tug.org commits+karl at tug.org
Fri Aug 30 00:50:25 CEST 2019


Revision: 51984
          http://tug.org/svn/texlive?view=revision&revision=51984
Author:   karl
Date:     2019-08-30 00:50:25 +0200 (Fri, 30 Aug 2019)
Log Message:
-----------
universa (29aug19)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/fonts/universa/unidoc.sty
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/uniacc.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/unibase.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/unidig.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/uniext.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/unilig.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/unilow.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/unipun.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/unispe.mf
    trunk/Master/texmf-dist/fonts/source/public/universa/uniupp.mf
    trunk/Master/texmf-dist/tex/latex/universa/omluni.fd
    trunk/Master/texmf-dist/tex/latex/universa/omsuni.fd
    trunk/Master/texmf-dist/tex/latex/universa/ot1uni.fd
    trunk/Master/texmf-dist/tex/latex/universa/t1uni.fd
    trunk/Master/texmf-dist/tex/latex/universa/uni.sty
    trunk/Master/texmf-dist/tex/latex/universa/uuni.fd

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/fonts/universa/README.md
    trunk/Master/texmf-dist/doc/fonts/universa/copying.tex
    trunk/Master/texmf-dist/doc/fonts/universa/universa.pdf
    trunk/Master/texmf-dist/source/fonts/universa/universa.dtx
    trunk/Master/texmf-dist/source/fonts/universa/universa.ins

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/fonts/universa/README.uni
    trunk/Master/texmf-dist/doc/fonts/universa/copyright.tex
    trunk/Master/texmf-dist/source/fonts/universa/uni.dtx
    trunk/Master/texmf-dist/source/fonts/universa/uni.ins

Added: trunk/Master/texmf-dist/doc/fonts/universa/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/universa/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/fonts/universa/README.md	2019-08-29 22:50:25 UTC (rev 51984)
@@ -0,0 +1,100 @@
+# The Metafont Implementation of the Universal font
+
+## Version 2.1, 2019/08/26
+## by Christian Holm
+
+This is the universal package containing my implementation of Herbert
+Bayers `universal' font in Metafont, with LaTeX2e support.
+
+
+## Installation
+
+## Using Autotools 
+
+	autoreconf -i -f 
+	./configure 
+	make 
+	make install
+	
+## By hand
+
+To install the package do:
+
+1. Make sure you have created the following directories:
+
+		 <TeX-base>/tex/latex/universa/
+		 <TeX-base>/doc/latex/universa/
+		 <TeX-base>/fonts/source/public/universa/
+		 
+	Where _TeX-base_ is the root of you TeX installation. The most
+	common values of _TeX-base_ is
+
+		/usr/local/lib/texmf (teTeX on Unix-like systems)
+		C:\EMTEX             (emTeX on DOS-like systems)
+	 
+	 but could also be something like:
+
+		/home/johndoe/lib/texmf  (user installation on Unix-like systems)
+		D:\Program Files\TeX     (Some wierd Windows95 installation)
+
+2. Put the files `universa.ins' and `universa.dtx' in some temporary
+   directory.
+
+3. Do
+		latex universa.ins
+		
+	1. If you `docstrip` program is set up correctly, that is,
+		`docstrip.cfg` exists and contains the line
+		
+			\BaseDirectory{<TeX-base>}
+
+	   then all files will be put in the right directories, and you
+	   need to do nothing more.
+
+	2. If no `docstrip.cfg' is present on the system, then you need to
+	   move the files your self. You should move the files as
+	   specified below:
+
+			*.mf       => <TeX-base>/fonts/source/public/universa/
+			*.fd       => <TeX-base>/tex/latex/universa/
+			uni.sty    => <TeX-base>/tex/latex/universa/
+			unidoc.sty => <TeX-base>/doc/latex/universa/
+			copyright  => <TeX-base>/doc/latex/universa/
+
+	4. In any case you need to move the files below as specified
+       below:
+	   
+			universa.dtx    => <TeX-base>/tex/latex/universa/
+			universa.ins    => <TeX-base>/tex/latex/universa/
+			README.md       => <TeX-base>/tex/latex/universa/
+			
+	  so that you can produce the documentation. You can of course
+	  compress those file to save disk space.
+
+5. If you are using some TeX distribution that has a database (that is
+   proberly the case if your TeX distribution uses `kpathsea'), you
+   should update that database.
+
+6. To produce the documentation go to the directory where you put
+	`unidoc`, i.e., `<TeX-base>/doc/latex/universa/`, and do
+	
+		latex universa.dtx
+		latex universa.dtx
+		makeindex -s gind -o uni.ind uni.idx
+		makeindex -s gglo -o uni.gls uni.glo
+		latex universa.dtx
+		latex universa.dtx
+		
+	This should leave you with a file `uni.dvi` (or `uni.pdf`). You
+    can remove the files
+    
+		uni.idx uni.glo uni.log uni.aux uni.toc uni.ilg uni.out
+
+	You may need to substitute `makeindex` with what is relevant for
+	your system, e.g., `makeindx` in emTeX.
+
+I hope you will enjoy this package.
+
+Please read the file `copyright` in the documentation directory, for
+the copyright notice.
+    


Property changes on: trunk/Master/texmf-dist/doc/fonts/universa/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/fonts/universa/README.uni
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/universa/README.uni	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/doc/fonts/universa/README.uni	2019-08-29 22:50:25 UTC (rev 51984)
@@ -1,75 +0,0 @@
-The Metafont Implementation of the Universal font
-Version 2.0, 98/08/01
-by Christian Holm
-
-This is the universal package containing my implementation of Herbert
-Bayers `universal' font in Metafont, with LaTeX2e support.
-
-To install the package do:
-
-1. Make sure you have created the following directories:
-     <TeX-base>/tex/latex/universa/
-     <TeX-base>/doc/latex/universa/
-     <TeX-base>/fonts/source/public/universa/
-Where <TeX-base> is the root of you TeX installation. The most common
-values of <TeX-base> is
-     /usr/local/lib/texmf (teTeX on Unix-like systems)
-     C:\EMTEX             (emTeX on DOS-like systems)
-but could also be something like:
-     /home/johndoe/lib/texmf  (user installation on Unix-like systems)
-     D:\Program Files\TeX     (Some wierd Windows95 installation)
-
-2. Put the files `uni.ins' and `uni.dtx' in some temporary directory.
-
-3. Do
-    latex uni.ins
-3.1 If you `docstrip' program is setup correctly, that is,
-`docstrip.cfg' exists and contains the line
-    \BaseDirectory{<TeX-base>}
-then all files will be put in the right directories, and you need to
-do nothing more.
-3.2 If no `docstrip.cfg' is present on the system, then you need to
-move the files your self. You should move the files as specified
-below:
-    *.mf       => <TeX-base>/fonts/source/public/universa/
-    *.fd       => <TeX-base>/tex/latex/universa/
-    uni.sty    => <TeX-base>/tex/latex/universa/
-    unidoc.sty => <TeX-base>/doc/latex/universa/
-    copyright  => <TeX-base>/doc/latex/universa/
-
-4. In any case you need to move the files below as specified below:
-    uni.dtx    => <TeX-base>/tex/latex/universa/
-    uni.ins    => <TeX-base>/tex/latex/universa/
-    README     => <TeX-base>/tex/latex/universa/
-so that you can produce the documentation. You can ofcourse compress
-those file to save disk space.
-
-5. If you are using some TeX distribution that has a database (that is
-proberly the case if your TeX distribution uses `kpathsea'), you
-should update that database.
-
-6. To produce the documentation go to the directory where you put
-`uni.doc', i.e., <TeX-base>/doc/latex/universa/, and do
-     latex uni.dtx
-     latex uni.dtx
-     makeindex -s gind -o uni.ind uni.idx
-     makeindex -s gglo -o uni.gls uni.glo
-     latex uni.dtx
-     latex uni.dtx
-This should leave you with a file `uni.dvi'. You can remove the files 
-     uni.idx uni.glo uni.log uni.aux uni.toc uni.ilg
-You may need to substitute `makeindex' with what is relevant for your
-system, e.g., `makeindx' in emTeX.
-
-I hope you will enjoy this package. I can be reached at 
-    Normal Mail:
-      Christian Holm
-      Sankt Hansgade 23, 1. th
-      DK-2200 Copenhagen N
-      Denmark
-    E-mail:
-      cholm at fys.ku.dk
-      cholm at nbi.dk
-Please read the file `copyright' in the documantation directory, for
-the copyright notice.
-    

Added: trunk/Master/texmf-dist/doc/fonts/universa/copying.tex
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/universa/copying.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/fonts/universa/copying.tex	2019-08-29 22:50:25 UTC (rev 51984)
@@ -0,0 +1,378 @@
+%%
+%% This is file `copying',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universa.dtx  (with options: `copyright')
+%% 
+%% Copyright (C) 1998 Christian Holm.
+%% 
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it.  It is NOT the preferred
+%% form of universal for making modifications to it.
+%% 
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%% 
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE.  See the GNU General Public License for more details.
+%% 
+%% You should have received a copy of the GNU General Public
+%% License along with this package; if not, write to the
+%%   Free Software Foundation, Inc.,
+%%   675 Mass Ave, Cambridge,
+%%   MA 02139, USA.
+%% 
+%% See the file universa.dtx for further comments and documentation.
+%% 
+    GNU GENERAL PUBLIC LICENSE
+       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+     END OF TERMS AND CONDITIONS
+
+    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program 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.
+
+    This program 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+
+\endinput
+%%
+%% End of file `copying'.


Property changes on: trunk/Master/texmf-dist/doc/fonts/universa/copying.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/fonts/universa/copyright.tex
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/universa/copyright.tex	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/doc/fonts/universa/copyright.tex	2019-08-29 22:50:25 UTC (rev 51984)
@@ -1,379 +0,0 @@
-%%
-%% This is file `copyright',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% uni.dtx  (with options: `copyright')
-%% 
-%% Copyright (C) 1998 Christian Holm.
-%% 
-%% This file is NOT the source for universal, because almost all
-%% comments have been stripped from it.  It is NOT the preferred
-%% form of universal for making modifications to it.
-%% 
-%% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
-%% General Public License as published by the Free Software
-%% Foundation; either version 2, or (at your option) any later
-%% version.
-%% 
-%% The universal font and package is distributed in the hope that
-%% it will be useful, but WITHOUT ANY WARRANTY; without even the
-%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-%% PURPOSE.  See the GNU General Public License for more details.
-%% 
-%% You should have received a copy of the GNU General Public
-%% License along with this package; if not, write to the
-%%   Free Software Foundation, Inc.,
-%%   675 Mass Ave, Cambridge,
-%%   MA 02139, USA.
-%% 
-%% See the file uni.dtx for further comments and documentation.
-%% 
-    GNU GENERAL PUBLIC LICENSE
-       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                          675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-     END OF TERMS AND CONDITIONS
-
-    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program 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.
-
-    This program 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.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
-
-
-\endinput
-%%
-%% End of file `copyright'.

Modified: trunk/Master/texmf-dist/doc/fonts/universa/unidoc.sty
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/universa/unidoc.sty	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/doc/fonts/universa/unidoc.sty	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `docpackage')
+%% universa.dtx  (with options: `docpackage')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,19 +30,28 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
 
-
-\def\fileversion{v2.0}
-\def\filedate{98/08/01}
-\ProvidesPackage{unidoc}[\filedate\space\fileversion\space universal
-                         documenation package.]
+\ProvidesPackage{unidoc}
+  [\unifiledate\space\unifileversion\space universal documenation package.]
 \newif\ifeepic\eepicfalse
 \DeclareOption*{\PassOptionsToPackage{\CurrentOption}{uni}}
 \ProcessOptions\relax
 \RequirePackage{doc}
 \RequirePackage{mflogo}
+\RequirePackage[colorlinks,%
+                linkcolor=red,%
+                anchorcolor=black,%
+                citecolor=green,%
+                filecolor=black,%
+                menucolor=black,%
+                urlcolor=blue,%
+                hyperindex,%
+                linktocpage,%
+                pdfduplex=duplexFlipLongEdge,%
+                a4paper,%
+                bookmarks=true]{hyperref}
 \RequirePackage{uni}
 \IfFileExists{eepic.sty}{%
   \RequirePackage{eepic}\eepictrue}{%
@@ -107,7 +116,6 @@
 \let\beginillu\ifeepic
 \let\illuother\else
 \let\endillu\fi
-
 \def\Newestchanges#1#2#3{
   \ifx\saved at macroname\@empty%
     \marginpar{\small\raggedright{\sl Change on} #2, {\sl Version}
@@ -177,15 +185,17 @@
   &\hex C&&\hex D&&\hex E&&\hex F&\cr
   \egroup$$\par}
 
-\def\FontChart#1{
+\def\FontChart#1#2{
 %%   \marginpar{\small\raggedright Letters and symbols in \texttt{#1}
 %%      font.}
-  \begin{figure}
+  \begin{figure}[htbp]
     \begingroup
       \font\chart at font=#1
       \chart at font
       \chart
-   \endgroup
+      \endgroup
+    \caption{Letters and symbols in \texttt{#1} --- #2}
+    \label{fig:font:#1}
 \end{figure}}
 
 \IndexPrologue{%
@@ -225,7 +235,11 @@
   \small,\smash,\space,\special at index,\SpecialMainIndex,\stop,\string,%
   \strut,\tabskip,\TeX,\TeXbook,\textit,\textsf,\textsl,\texttt,\the,%
   \thepage,\tt,\typeout,\unhbox,\universal,\upshape,\usefont,\vbox,%
-  \vcenter,\vrule,\write,\xdef,\z@}
+  \vcenter,\vrule,\write,\xdef,\z@,\PackageError,\PackageWarning,
+  \PassOptionsToPackage,\GlossaryPrologue,\',\0,\1,\bfseries,
+  \centerlargechars,\DeclareRobustCommand,\DeclareTextFontCommand,
+  \ExecuteOptions,\familydefault,\fontencoding,\fontfamily,\hex,\oct,
+  \IndexPrologue,\oddline}
 
 \EnableCrossrefs
 \CodelineIndex
@@ -234,9 +248,8 @@
 \marginparwidth=54pt
 \newcommand{\NFSS}{\textsf{NFSS}}
 \newcommand{\ftnguide}{\textit{\LaTeXe{} Font Selection}}
-\newcommand{\clsguide}{
-  \textit{\LaTeXe{} for Class and Packages Writers}}
-\newcommand{\TeXbook}{\TeX\textsf{book}}
+\newcommand{\clsguide}{ \textit{\LaTeXe{} for Class and Packages
+    Writers}} \newcommand{\TeXbook}{\TeX\textsf{book}}
 \newcommand{\MFbook}{\MF\textsf{book}}
 \newcommand{\universal}{\textunibf{universal}}
 

Added: trunk/Master/texmf-dist/doc/fonts/universa/universa.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/fonts/universa/universa.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/universa/universa.pdf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/doc/fonts/universa/universa.pdf	2019-08-29 22:50:25 UTC (rev 51984)

Property changes on: trunk/Master/texmf-dist/doc/fonts/universa/universa.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,caps,ten')
+%% universa.dtx  (with options: `font,bold,caps,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,caps,twelve')
+%% universa.dtx  (with options: `font,bold,caps,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,caps,seventeen')
+%% universa.dtx  (with options: `font,bold,caps,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,caps,eight')
+%% universa.dtx  (with options: `font,bold,caps,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,caps,nine')
+%% universa.dtx  (with options: `font,bold,caps,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,slanted,ten')
+%% universa.dtx  (with options: `font,bold,slanted,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,slanted,twelve')
+%% universa.dtx  (with options: `font,bold,slanted,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,slanted,seventeen')
+%% universa.dtx  (with options: `font,bold,slanted,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,slanted,eight')
+%% universa.dtx  (with options: `font,bold,slanted,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,slanted,nine')
+%% universa.dtx  (with options: `font,bold,slanted,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,ten')
+%% universa.dtx  (with options: `font,bold,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,twelve')
+%% universa.dtx  (with options: `font,bold,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,seventeen')
+%% universa.dtx  (with options: `font,bold,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,eight')
+%% universa.dtx  (with options: `font,bold,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,nine')
+%% universa.dtx  (with options: `font,bold,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,strict,ten')
+%% universa.dtx  (with options: `font,bold,strict,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,strict,twelve')
+%% universa.dtx  (with options: `font,bold,strict,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,strict,seventeen')
+%% universa.dtx  (with options: `font,bold,strict,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,strict,eight')
+%% universa.dtx  (with options: `font,bold,strict,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,bold,strict,nine')
+%% universa.dtx  (with options: `font,bold,strict,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 bold := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,caps,ten')
+%% universa.dtx  (with options: `font,medium,caps,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,caps,twelve')
+%% universa.dtx  (with options: `font,medium,caps,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,caps,seventeen')
+%% universa.dtx  (with options: `font,medium,caps,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,caps,eight')
+%% universa.dtx  (with options: `font,medium,caps,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,caps,nine')
+%% universa.dtx  (with options: `font,medium,caps,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,slanted,ten')
+%% universa.dtx  (with options: `font,medium,slanted,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,slanted,twelve')
+%% universa.dtx  (with options: `font,medium,slanted,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,slanted,seventeen')
+%% universa.dtx  (with options: `font,medium,slanted,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,slanted,eight')
+%% universa.dtx  (with options: `font,medium,slanted,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,slanted,nine')
+%% universa.dtx  (with options: `font,medium,slanted,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,ten')
+%% universa.dtx  (with options: `font,medium,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,twelve')
+%% universa.dtx  (with options: `font,medium,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,seventeen')
+%% universa.dtx  (with options: `font,medium,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,eight')
+%% universa.dtx  (with options: `font,medium,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,nine')
+%% universa.dtx  (with options: `font,medium,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,strict,ten')
+%% universa.dtx  (with options: `font,medium,strict,ten')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,strict,twelve')
+%% universa.dtx  (with options: `font,medium,strict,twelve')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,strict,seventeen')
+%% universa.dtx  (with options: `font,medium,strict,seventeen')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,strict,eight')
+%% universa.dtx  (with options: `font,medium,strict,eight')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `font,medium,strict,nine')
+%% universa.dtx  (with options: `font,medium,strict,nine')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if unknown unibase : input unibase; fi;
 
 medium := true ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/uniacc.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/uniacc.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/uniacc.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `acc')
+%% universa.dtx  (with options: `acc')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 beginchar(hex"12",x_w#,l_h#,0) ; "The accent `" ;
   uniend(P_T/2,(w/2,a_h+P_T/2),90,270,10) ;
   z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2+P_T,a_h) ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/unibase.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/unibase.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/unibase.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `unibase')
+%% universa.dtx  (with options: `unibase')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,10 +30,9 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
 
-
 unibase := 1 ;
 string univer ;
 univer = "2.0" ;
@@ -45,8 +44,8 @@
 caps := false   ; strict := false ;
 font_identifier:="universal";
 
-def start_font(expr size) =
-  u# := size/18 ;
+def start_font(expr size) = 
+  u# := size/18 ; 
   mode_setup;
   x_h# :=  8u# ; x_w# := 8u#   ; m_w# := 11u# ; l_h# := 13u# ;
   p_d# :=  5u# ; l_s# := 2u#   ; r_s# :=  2u# ; A_w# := 10u# ;
@@ -120,7 +119,7 @@
   fi
 enddef ;
 
-inner bye;  % so we can use it inside a macro
+inner bye;
 def end_font =
   ligtable "u" : "h" kern u# ;
   ligtable "f" : "f" kern 0 , "l" kern 0 , "i" kern 0 ;
@@ -138,7 +137,7 @@
     "l" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ,
     "L" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ;
   bye
-enddef;
+enddef ;
 
 def do_caps(expr offset) =
   sc_shrink := x_h#/l_h# ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/unidig.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/unidig.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/unidig.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `dig')
+%% universa.dtx  (with options: `dig')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 beginchar("0",A_w#,l_h#,0) ; "The number 0" ;
   uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
   uniarc(w/2,p_t,(w/2,w/2),180,360,20) ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/uniext.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/uniext.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/uniext.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `ext')
+%% universa.dtx  (with options: `ext')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 currenttransform := identity ;
 
 beginchar(hex"00",l_h#,l_h#,0) ; "The filled square symbol" ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/unilig.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/unilig.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/unilig.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `lig')
+%% universa.dtx  (with options: `lig')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if caps:
   beginchar(hex"19",5/2x_w#,x_h#,0) ; "Ligature SS" ;
     temp := (h+p_t)/4 ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/unilow.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/unilow.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/unilow.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `low')
+%% universa.dtx  (with options: `low')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if not caps :
 
   beginchar("a",x_w#,x_h#,0); "The letter a";

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/unipun.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/unipun.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/unipun.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `pun')
+%% universa.dtx  (with options: `pun')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 beginchar("!",P_T#,l_h#,0) ; "The exclamation mark (!)" ;
   pickup UniPensqu ;
   top lft z1 = (0,h) ; bot lft z2 = (0,2P_T) ; draw z1--z2 ;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/unispe.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/unispe.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/unispe.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `spe')
+%% universa.dtx  (with options: `spe')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 beginchar(hex"10",p_t#,x_h#,0) ; "The dotless letter i" ;
   pickup unipensqu ;
   bot lft z1 = (0,0) ; top lft z2 = (0,h) ; draw z1--z2;

Modified: trunk/Master/texmf-dist/fonts/source/public/universa/uniupp.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/universa/uniupp.mf	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/fonts/source/public/universa/uniupp.mf	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `upp')
+%% universa.dtx  (with options: `upp')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,10 +13,10 @@
 %% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 %% PURPOSE.  See the GNU General Public License for more details.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
+%% 
 
-
 if not strict :
 
   beginchar("A",A_w#,l_h#,0); "The letter A";

Deleted: trunk/Master/texmf-dist/source/fonts/universa/uni.dtx
===================================================================
--- trunk/Master/texmf-dist/source/fonts/universa/uni.dtx	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/source/fonts/universa/uni.dtx	2019-08-29 22:50:25 UTC (rev 51984)
@@ -1,5823 +0,0 @@
-%\iffalse
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{unidoc,latexsym}
-%\OnlyDescription %For short description of font and package.
-\AlsoImplementation %For full description of font and package.
-\title{The \universal{} Font\\ \normalsize{Version 2.0}}
-\author{Christian Holm\thanks{Niels Bohr Institute of Physics, 
-  Institute of Philosophy, Rethorics, and Education; University
-   of Copenhagen; Denmark; E--mail: \texttt{<cholm at nbi.dk>}}}
-\date{August 1 1998}
-\begin{document}
-\maketitle
-\begin{abstract}
-  This is my implementation of Herbert Bayer's ``universal'' font in
-  \MF{} for \TeX{} and \LaTeX{}. Extensive support for \LaTeX{} is
-  supplied. This font is in no way intended to be a correct, not to
-  mention a comlpete implementation of Herbert Bayer's original
-  design. This document describes how to use the font with \LaTeX{},
-  and also the source code for the characters of the font.
-\end{abstract}
-\tableofcontents
-\DocInput{uni.dtx}
-\end{document}
-%</driver>
-%<*copyright>
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                          675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program 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.
-
-    This program 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.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
-
-%</copyright>
-%\fi
-% \CheckSum{1207}
-% \CharacterTable
-%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%   Digits        \0\1\2\3\4\5\6\7\8\9
-%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%   Dollar        \$     Percent       \%     Ampersand     \&
-%   Acute accent  \'     Left paren    \(     Right paren   \)
-%   Asterisk      \*     Plus          \+     Comma         \,
-%   Minus         \-     Point         \.     Solidus       \/
-%   Colon         \:     Semicolon     \;     Less than     \<
-%   Equals        \=     Greater than  \>     Question mark \?
-%   Commercial at \@     Left bracket  \[     Backslash     \\
-%   Right bracket \]     Circumflex    \^     Underscore    \_
-%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%   Right brace   \}     Tilde         \~}
-
-% \CheckSum{1207}
-% \CharacterTable
-%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%   Digits        \0\1\2\3\4\5\6\7\8\9
-%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%   Dollar        \$     Percent       \%     Ampersand     \&
-%   Acute accent  \'     Left paren    \(     Right paren   \)
-%   Asterisk      \*     Plus          \+     Comma         \,
-%   Minus         \-     Point         \.     Solidus       \/
-%   Colon         \:     Semicolon     \;     Less than     \<
-%   Equals        \=     Greater than  \>     Question mark \?
-%   Commercial at \@     Left bracket  \[     Backslash     \\
-%   Right bracket \]     Circumflex    \^     Underscore    \_
-%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%   Right brace   \}     Tilde         \~}
-% \def\fileversion{v2.0}
-% \def\filedate{98/08/01}
-% \section{Introduction}
-% \changes{v1.0}{1997/17/24}{Creation of the \universal{} font}
-%
-% 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}, plus a \LaTeX{}
-% package to utilize this font, along with a number of font definition
-% files, as required by the New Font Selection Scheme (\NFSS{}).
-%
-% \subsubsection*{About the Documantation}
-%
-% The full documentation of this font is rather large, more then 80
-% pages actually. Most of it is the programs for the characters for
-% this font, so if you don't know the \MF{} language, or don't care
-% how the charcters are created, you should insert
-% \Lcs{OnlyDescription} into the preamble of \texttt{uni.dtx}.
-%
-% Notice, that \MF{} macros are \emph{not} indexed in this
-% documentation. This is because it would take a \emph{major} rewrite
-% of the \textsf{doc} package to do so, and I really didn't want to do
-% that.
-%
-% Some of the macros of \textsf{doc} \emph{has} been redefined, and if
-% you want to see which, or how I generally did the documentation,
-% please refer to appendix~\ref{app:unidoc}.
-% 
-% If you in some way are unsatisfied with some of the characters of
-% the font, do please read the documentation of that character. There
-% may be some notes on why the character looks the way it does. Some
-% of the comments, however are a bit silly and should be skipped at
-% high speed (pretend there is a conditional that says \texttt{if not 
-% silly ... fi}).
-% 
-% \subsubsection*{This Version}
-% \changes{v2.0}{98/08/01}{Bug corrections, new font
-% shapes, better font programs, new/improved macros for \LaTeX{}
-% support, better conformation to \NFSS{}, using \textsf{fontname}
-% filenaming scheme, etc.}
-% 
-% This new version of the \universal{} font, provides a number
-% of new features and improvements, both to the font itself and to the
-% \LaTeX{} support macros. Also, a number of corrections has been made
-% to the font programs.
-%
-% The reason why I jumped one whole version number from 1.0 to 2.0, is
-% that I have taken a whole new approach to the font programs and
-% shapes of the \universal{} font, plus I decided to put some
-% more effort into the \LaTeX{} support.
-%
-% \subsubsection*{Thanks and Other Stuff}
-% 
-% To those of you who have had the (mixed) pleasure of using version
-% 1.0 of this font, one of the most notaticable changes are to the
-% symbol \textuni{\bauforms}. In the old documenation, I complained
-% that I couldn't find the exact solution to the problem this symbol
-% possed. I also encourged people to send me any solution they may
-% have had --- and guess what --- somebody did! Therefore I would like
-% to thanck Joseph Collins for providing me with the solution. If you
-% like Joseph Collins and I like Mathematical puzzles take a look in
-% Appendix~\ref{app:solu} to learn more about this problem and it's
-% solution.
-%
-% I also direct your attention to Appendix~\ref{app:ggpl} for the
-% copyright notice on the \universal{} package (it's the
-% \textsl{Gnu General Public Lisence} to those of you who know it).
-% 
-% If you in any way have gotten tempted to design your own font, or to
-% implement some font into \MF{}, I feel obligated to bring you a
-% warning, taken from the \MF{}book by Donald E.\ Knuth:
-% \begin{quote}
-%   \uni
-%   \textsc{Warning:} Type design can be hazardous to your other
-%   interests. Once you get hooked, you will develop intense feelings
-%   about letterforms; the medium will intrude the message that you
-%   read. And you will perpetually be thincking of improvements to the
-%   fonts that you see everywhere, especially those of your own
-%   design.
-% \end{quote}
-%
-% \section{The Font and it's History}
-%
-% \subsubsection*{Bauhaus}
-% 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\index{Rhoe, Mies van der},
-% Herbert Bayer\index{Bayer, Herbert}, Kandinsky\index{Kandinsky},
-% Walter Gropius\index{Gropius, Walter} and Gerrit
-% Rietveld\index{Rietveld, Gerrit}. The style ``die stiil''
-% \index{die stiil} was explored here, and painters like
-% Mondrian\index{Mondrian} made large contributions to what today is
-% known as
-% ``the Bauhaus style''\index{Bauhaus style=\textuni{Bauhaus style}}. 
-%
-% The basic idea of the Bauhaus school, was to design items, which
-% along with it's aesthethic value, also had a high degree of
-% functionallity. Houses were meant to be suited for all kinds of
-% living, while still keeping the beauty that make people glad to see
-% thier house. Chairs should be comfortable for thier use, as well be
-% able to fit--in in a normal house. All this should be done at a
-% price that made it possible for everybody to own
-% designer--furniture, houses, etc.
-%
-% The political idea of Bauhaus, was that of a socialist one. Houses
-% are for the people --- they have to live in them, and that living
-% should be a good as possible. Therefore the Bauhaus school saw it
-% has its task to provide functional, beautiful everyday items that
-% anybody could affort. Paintings and tapestery shouldn't hang on
-% museums or art galleries, but in peoples homes, where they would
-% inrich thier everyday life.
-% 
-% \subsubsection*{Herbert Bayer and the ``universal'' Font}
-% 
-% At Bauhaus typography was also studied, not just how written text
-% should be typeset, and how printed characters should look like, but
-% also what the essence of writting is, in it's pratical and
-% design--wise sense. This led Herbert Bayer\index{Bayer, Herbert} to
-% formulate some principles of writting:
-%
-% \begin{quote}
-%   {\uni 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
-%     \end{flushright}}
-% \end{quote}
-%
-% On this principles, Herbert Bayer designed a font, which should have
-% no majuscles (upper case letters), easy to print, and easy to read
-% since it didn't have any unusefull decoration, but communicated the
-% bare meaning of characters through the simplest forms needed to
-% reconigise a character. This font he called ``universal''.
-%
-% This font contained abolutly no majuscles, since Bayer believed them
-% to be superflous, as it is clear form the quote above.
-%
-% At the time Herbert Bayer formulated these principles and designed
-% the ``universal'' font, most printers used Gothic letters, which is
-% allmost overly decorated, so his font ofcourse made
-% contraversy.
-%
-% Later on, in the 1930'ies, the Bauhaus school drew the
-% attention of \emph{Gestapo}\footnote{Gehemligche Stats Polizi} of
-% Nazi\footnote{Nationalsocializmus} Germany. The school was finally
-% closed in 1936 by Gestapo, because they believed they were promoters
-% of Jewish and Communist culture and propaganda.
-%
-% In the aftermatch of the closing of the school, most of it's ideas
-% were shundend by other designers, and the Bauhaus way of thinking
-% died out. This is properly the reason why Herbert Bayers
-% ``universal'' font is so little known today.
-% 
-% However, the ``universal'' font still stands as one of the most
-% compelling developments in font designing. It represents an approach
-% to designing where the functionallity is as vital as the expression,
-% and as such I believ it to be one of the most important fonts in the
-% world today.
-% 
-% \section{This \MF{} Implementation}
-%
-% This implementation of Herbert Bayers ``universal'' font, is not
-% supposed to look \emph{exactly} like the original design. Ofcourse I
-% have tried to the best of my ability to mimic his design as far as I
-% could. However, it is not an easy matter to find a complete, not to
-% mention exact, sample or account of Bayers design.
-%
-% This implementation is bassed on the samples I \emph{could} find,
-% and other implementations of the ``universal'' font. Many of these
-% other implementations do differ from the original samples, and
-% include characters I couldn't find in any of the original. So
-% whenever I found disparities, I mainly leened on the original
-% samples and my understanding of the original design.
-%
-% \subsection{The \MF{} version versus the Original}
-%
-% As mentioned above, Bayer never did design any majuscles for this
-% font, but nonetheless, I have included them into this
-% implementation. This I did, because I think most people will have a
-% hard time writting in minuscles (lowercase letters) alone. Ofcorse,
-% if you agree with Bayer, you should simple not use them.
-%
-% There are also some other differences, mostly due to the fact, that
-% I never found a complete sample of the original font. The major
-% differences between the originalk font and this implementation is
-% summerized below:
-%
-% \begin{description}
-%   \item[Majuscles:] Majuscles are present, even though they weren't
-%     in the original design.
-%   \item[Digigts:] These are based on other implementations, and my
-%     general conception of the original design.
-%   \item[Punctuations:] As above.
-%   \item[Accents:] As above.
-%   \item[Symbols:] As above.
-%   \item[Bauhaus Symbols:] I have added some various symbols I have
-%     found in connection with Bauhaus to the font. The reason is I
-%     find them beautiful, and I had some space to fill.
-%   \item[Numerous Shapes and Weights:] I don't think Bayer ever
-%     design slanted characters, a bold face version of the font, and
-%     he could never have design a small caps version of the
-%     font. However, these are present in this implementation. I
-%     included these features, because I believ them to be of general
-%     utility, and it makes the font conform more to the Computer
-%     Modern Roman font, and \NFSS{}. 
-% \end{description}
-%
-% \subsection{Features of the font}
-%
-% Rather then using \texttt{cmbase.mf}\footnote{Computer Modern Roman
-% base file}, and then redefine some macros, I chose to make a new
-% base file myself, i.e.,
-% \texttt{unibase.mf}\index{unibase.mf=\texttt{unibase.mf}}. This file
-% contains a number of macros\footnote{A better name for `base' would
-% be `library', and then the file would be \texttt{libuni.mf}, but to
-% conform to CM, I used `base'.} I have used in the character
-% programs.
-%
-% The macros of \texttt{unibase.mf} actually reflects my conception of
-% the font. There are three basic drawing macroes:
-% \begin{description}
-%   \item[\texttt{unicir}] which draws a circle,
-%   \item[\texttt{uniarc}] which draws a segment (arc) of a circle, and
-%   \item[\texttt{unilne}] which draws a straight line.
-% \end{description}
-% I believe, that Bayer intended the font to be made of these two
-% basic shapes: the arc, and the line. Also, to keep things simple,
-% and therefore easy to print, all shapes should be of the same
-% thickness, i.e.,as if drawn with a pen of equal thickness. I have
-% made one diviation from this, however. All majuscles are drawn with
-% a thicker `pen', which makes the output nicer, I think.
-%
-% Incidently, this made the programs of the characters much simpler,
-% and shorter.
-%
-% \subsubsection{Series, Shapes, Sizes, and Special Characters}
-% 
-% \Newestchanges{v2.0}{98/08/01}{Added `small caps' shape to the font.}
-% \changes{v2.0}{98/08/01}{Added non--standard `strict' shape to the
-% font.} 
-% \changes{v2.0}{98/08/01}{Added `slanted' shape to the font.}
-% \changes{v2.0}{98/08/01}{Default series is changed to `medium'
-% to the font, `bold face' support included.}
-% 
-% Below is a sample of each series/shape combination avaliable in this
-% implementation of the font, along with the \LaTeX{} commands that
-% drive them: 
-% 
-% \begin{description}
-%   \item[\rm Medium upright (\Lcs{textuni}):]
-%     \textuni{The dazed brown fox quickly gave 1234-567890 jumps!} 
-%   \item[\rm Medium slanted (\Lcs{textunisl}):]
-%     \textunisl{The dazed brown fox quickly gave 1234-567890 jumps!}
-%   \item[\rm Medium small caps (\Lcs{textunisc}):]
-%     \textunisc{The dazed brown fox quickly gave 1234-567890 jumps!} 
-%   \item[\rm Medium strict (\Lcs{textunist}):]
-%     \textunist{The dazed brown fox quickly gave 1234-567890 jumps!} 
-%   \item[\rm Bold face upright (\Lcs{textunibf}):]
-%     \textunibf{The dazed brown fox quickly gave 1234-567890 jumps!} 
-%   \item[\rm Bold face slanted (\Lcs{textunibsl}):]
-%     \textunibsl{The dazed brown fox quickly gave 1234-567890 jumps!} 
-%   \item[\rm Bold face small caps (\Lcs{textunibsc}):]
-%     \textunibsc{The dazed brown fox quickly gave 1234-567890 jumps!}
-%   \item[\rm Bold face strict (\Lcs{textunibst}):]
-%     \textunibst{The dazed brown fox quickly gave 1234-567890 jumps!}
-% \end{description}
-% 
-% Everyone of these shapes are avaliable in size 8, 9, 10, 12, 17
-% \texttt{pt}, and \MF{} can ofcourse create others.
-%
-% \Newestchanges{v2.0}{98/08/01}{Some of the \textunibf{bauhaus} symbols
-% that where avaliable in v1.0, has been taken out.}
-% Also a number of non--standard characters are avaliable in the
-% font. Below is a table of these characters along with the \LaTeX{}
-% commands that drive them.
-%
-% Notice that \textunibf{``} and \textunibf{''} is present in the
-% table. This is because these characters are not directly defined,
-% but is supplied as \emph{ligatures}. This can be done, because they
-% are simple doubles of \textunibf{`} and \textunibf{'}.
-%
-% A quick look on the table will also reveal some characters that
-% generally isn't present in the standard \texttt{OT1}
-% encoding\footnote{The \texttt{OT1} encoding is the 7 bit encoding of
-% the Computer Modern fonts by Donald E.\ Knuth. 7 bit means it
-% contain 128 ($=2^7$) characters.}, but generally present in the
-% \texttt{T1} encoding\footnote{The \texttt{T1} encoding is an
-% encoding especially designed for the (western) European
-% languages. It was founded by the \TeX{} User's Group, on a seminar
-% in Cork, and is the basis of the \texttt{dc} fonts. \texttt{T1} is
-% an 8 bit encoding, which means it has 256 ($=2^8$) characters.}. I
-% have done this, both to provide an (almost) complete font for the
-% European languages, but also because I anticipate the \universal{}
-% font some time in the future will shift, or a least be avaliable, in
-% the \texttt{T1} encoding\footnote{\texttt{T1} is generally
-% considered \emph{the} encoding of the future, and in the long term,
-% it is most likely the encoding of \LaTeX3.}.
-% \begin{table}[htbp]
-%   \centering
-%   \begin{tabular}{%
-%   @{\vline\extracolsep{1em}\space}ll%
-%   @{\extracolsep{1em}}ll%
-%   @{\space\vline\extracolsep{1em}}}\hline
-%     \textuni{\bausquare}&\Lcs{bausquare}&
-%     \textuni{\baucircle}&\Lcs{baucircle}\\
-%     \textuni{\bautriangle}&\Lcs{bautriangle}&
-%     \textuni{\bauhead}&\Lcs{bauhead}\\
-%     \textuni{\bauforms}&\Lcs{bauforms}&
-%     \textuni{\dh}&\Lcs{dh}\\
-%     \textuni{\dj}&\Lcs{dj}&
-%     \textuni{\ng}&\Lcs{ng}\\
-%     \textuni{\th}&\Lcs{th}&
-%     \textuni{\varQ}&\Lcs{varQ}\\
-%     \textuni{\DH}&\Lcs{DH}&
-%     \textuni{\DJ}&\Lcs{DJ}\\
-%     \textuni{\NG}&\Lcs{NG}&
-%     \textuni{\TH}&\Lcs{TH}\\
-%     \textuni{\textsection}&\Lcs{textsection} or \Lcs{S}&
-%     \textuni{\textbraceleft}&\Lcs{textbraceleft} or \Lcs{\char"7B}\\
-%     \textuni{\textbraceright}&\Lcs{textbracerigth} or \Lcs{\char"7D}&
-%     \textuni{\textbar}&\Lcs{textbar}\\
-%     \textuni{\guilsinglleft}&\Lcs{guilsinglleft}&
-%     \textuni{\guilsinglright}&\Lcs{guilsinglright}\\
-%     \textuni{\guillemoleft}&\Lcs{guillemoleft}&
-%     \textuni{\guillemoright}&\Lcs{guillemoright}\\
-%     \textuni{\quotesinglbase}&\Lcs{quotesinglbase}&
-%     \textuni{\quotedblbase}&\Lcs{quotedblbase}\\
-%     \textuni{\textquotedblleft}&\Lcs{textquotedblleft}&
-%     \textuni{\textquotedblright}&\Lcs{textquotedblright}\\
-%     \textuni{\textogonek}&\Lcs{textogonek}&
-%     \textuni{\textunderscore}&\Lcs{textunderscore}\\
-%     \hline
-%   \end{tabular}
-%   \caption{Non--standard characters in the {universal} font}
-%   \label{tab:characters}
-% \end{table}
-% Please note, that in the small caps shaped fonts, \Lcs{dh} does not
-% give {\small\textuni{\DH}}, but a \textunibsc{\dh}, that is a small
-% caps shaped version of \Lcs{varQ}. Also there is no command
-% \Lcs{varq} defined.
-%
-% In appendix~\ref{app:charts} is some charts showing the font in
-% different series and shapes.
-% 
-% \subsubsection{File Names for the \MF{} files}
-%
-% \paragraph{Base File and Source Files}
-% The base file and the files containg the code for the characters of
-% the \universal{} font, all starts with \texttt{uni}, to reflect the
-% connection of the files. The next five possible letters reflects
-% what kind of code is contained within the file, e.g., the base file
-% ends in \texttt{base}, the file containing the code for the
-% minuscles (lower case letters) end in \texttt{lower}, and so forth.
-%
-% \paragraph{Font Driver Files}
-% The font driver filenames has been chosen to conform to the
-% \texttt{fontname} scheme, because this scheme is used by most
-% \TeX{}, \LaTeX{}, and \MF{} systems (anyway those that use
-% \texttt{kpathsea}, which is the most).
-%
-% The filename all contain the three characters \texttt{ful}, where
-% the \texttt{f} stands for \textit{public} and \texttt{ul} for
-% \textit{universal}.
-%
-% Next comes a letter which is one of \texttt{m} (\textit{medium}) or
-% \texttt{b}  (\textit{bold}), which represents the series of the
-% font.
-%
-% Then comes one or two letters, which are \texttt{r}
-% (\textit{upright} or roman), \texttt{o} (\textit{slanted}, or
-% oblique), \texttt{c} (\textit{small caps}), or \texttt{st}
-% (\textit{strict}), which represent the shape of the font.
-%
-% Finally the filename ends with the designsize in points.
-%
-% Thus the complete syntax for the font driver file names is:
-% \begin{table}[htbp]
-% \centering
-% \begin{tabular}{rcl}
-%   \meta{filename}&:=&
-%   \meta{supplier}\meta{face}\meta{series}\meta{shape}\meta{size}\texttt{.mf}\\
-%   \meta{supplier}&:=&\texttt{f}\\
-%   \meta{face}&:=&\texttt{ul}\\
-%   \meta{series}&:=&\texttt{m \char"7C\ b}\\
-%   \meta{shape}&:=&\texttt{r \char"7C o \char"7C c \char"7C st}\\
-%   \meta{size}&:=&\texttt{\char"7C\ 8 \char"7C\ 9 \char"7C\ 10
-%     \char"7C\ 12 \char"7C\ 17}
-% \end{tabular}
-% \end{table}
-% The \texttt{fontname} scheme actually says to put \meta{encoding} 
-% information after the \meta{shape}, but since this is \texttt{8r}
-% for \TeX{} Text, it would make filenames longer then 8 characters in
-% the cases of \meta{size} of 10, 12, and 17, so this information is
-% left out (which is permisable in \texttt{fontname}, but
-% unfortunate).
-%
-% This way of naming the font driver files will, if you use
-% \texttt{kpathsea}, put the \texttt{ful*.*pk} files in\newline
-% \indent\meta{pk--base--dir}\texttt{/public/universa/}\newline  
-% and the \texttt{ful*.tfm} files in\newline
-% \indent\meta{tfm--base--dir}\texttt{/public/universa/}\newline  
-% which I think is the intuitivly correct place to put them. This also
-% means, that the \texttt{*.mf} files provided with this package,
-% should be placed in\newline
-% \indent\meta{mf--source--base--dir}\texttt{/public/universa/}\newline
-% again very intuitive.
-%
-% Below is a table of the usual directory names under
-% \textsf{Unix}--like and \textsf{MSDOS}--like (including Windows95)
-% systems.\meta{mode} is \textsf{dvips}'s name for your printer.
-% \begin{table}[htbp]
-%   \begin{tabular}{%
-%   @{\vline\extracolsep{1em}\space}l%
-%   @{\space\vline\extracolsep{1em}\space}l%
-%   @{\space\vline\extracolsep{1em}\space}l%
-%   @{\space\vline\extracolsep{1em}}}
-%     \hline
-%     Varibale&\textsf{Unix}--like systems&\textsf{MSDOS}--like systems\\
-%     \hline
-%     \meta{tfm--base--dir}&
-%     \texttt{/var/spool/texmf/pk/}\meta{mode}\texttt{/}&
-%     \texttt{C:\Lcs{}FONTS\Lcs{}PK\Lcs{}}\meta{mode}\Lcs{}\\
-%     \meta{tfm--base--dir}&
-%     \texttt{/var/spool/texmf/tfm/}&
-%     \texttt{C:\Lcs{}FONTS\Lcs{}TFM\Lcs{}}\\
-%     \meta{tfm--base--dir}&
-%     \texttt{/usr/local/lib/texmf/fonts/source/}&
-%     \texttt{C:\Lcs{}TEX\Lcs{}MFINPUTS\Lcs{}}\\
-%     \hline
-%   \end{tabular}
-%   \caption{Common directory names.}
-% \end{table}
-% 
-% \subsection{The \LaTeX\ and \NFSS\ Support}
-%
-% To use the \universal{} font with \LaTeXe{}\footnote{I have made
-% \emph{no} attempt to provide support for \LaTeX2.09, since this
-% format is obsolete, and those who \emph{do} use it, will proberly
-% never bother to look at CTAN for new fonts anyway.}, you should load
-% the package \textsf{uni} with the command
-% \begin{quote}
-%   \Lcs{usepackage}\oarg{options}\marg{uni}
-% \end{quote}
-% in your preamble (i.e., after \Lcs{documentclass} and before
-% \Lcs{begin\{document\}}). \meta{options} can be any of the options
-% described below, but no other.
-% 
-% \subsubsection{Options to \textsf{uni}}
-% 
-% \marginpar{\raggedright\texttt{strict}}
-% \index{strict=\texttt{strict}\space(Option)}
-% \Newestchanges{v2.0}{98/08/01}{Added option \texttt{strict}.}
-% The \texttt{srict} option is intended to fassilitate typesetiing of
-% the \universal{} font in a \emph{strict} \textunibf{bauhaus}
-% fashion, that is \emph{only} in minuscules.
-%
-% In this font, only the series may be variated, that is, there is a
-% bold series strict shaped font of any size, and a medium series
-% strict shaped font of any size, in the \universal{} family.
-%
-% This option can be used in conjuntion with options \texttt{medium}
-% and \texttt{bold}. Please notice, that it doesn't make any sense to
-% ask for a small caps or slanted shaped font, while using this option.
-% 
-% Notice that only \Lcs{textuni} and \Lcs{uni} is defined if option
-% \texttt{strict} was given to \textsf{uni} package.
-% 
-% \marginpar{\raggedright\texttt{default}}
-% \index{default=\texttt{default}\space(Option)}
-% \Newestchanges{v2.0}{98/08/01}{Added option \texttt{default}.}
-% If you give the \texttt{default} option to the \textsf{uni} package,
-% the default font of the document will be \textunirm{universal}.
-%
-% If you also used the option \texttt{bold} the default font will be
-% the \universal{} font in \textbf{bold} series. Otherwise it will be
-% in medium series.
-%
-% With this option, \Lcs{textit}, \Lcs{it}, and \Lcs{itshape} shifts
-% to \textunisl{universal slanted} font, i.e., there is no
-% \textit{italic} font avaliable.
-%
-% \DescribeMacro{\textcmr}
-% \DescribeMacro{\cmr}
-% To make it possible to change back to Donald E.\ Knuth's Computer
-% Modern Roman font, even when the \texttt{default} option is given,
-% we define macros \Lcs{textcmr} and \Lcs{cmr}, which switches the
-% \Lcs{fontfamily} to \texttt{cmr} locally and gobally respecivly.
-% 
-% You should use this option with some care, since the \universal{}
-% font isn't very suited for longer texts, but rather for short
-% letters, quotes, and other pieces of text where the graphical
-% apperance is important.
-% 
-% \marginpar{\raggedright\texttt{medium}}
-% \index{medium=\texttt{medium}\space(Option)}
-% \Newestchanges{v2.0}{98/08/01}{Added option \texttt{medium}.}
-% When this option is given, command \Lcs{textuni} switches to
-% \textunirm{medium series universal font}, as do \Lcs{uni}. The other
-% font selection commands behave as always (see below). This is the
-% default option to \textsf{uni}, i.e., not normally needed.
-% 
-% \marginpar{\raggedright\texttt{bold}}
-% \index{bold=\texttt{bold}\space(Option)}
-% \Newestchanges{v2.0}{98/08/01}{Added options \texttt{bold}.}
-% If this option is given, commands \Lcs{textuni} and \Lcs{uni}
-% switches to \textunibf{bold series universal font}. Other font
-% selection commands behave as always (see below). Notice that it 
-% makes no sense to give both option \texttt{medium} and option
-% \texttt{bold} to the \textsf{uni} package. 
-% 
-% \subsubsection{Font Selection Commands}
-%
-% \DescribeMacro{\textuni}\DescribeMacro{\uni}
-% These two commands only change the current font family to
-% \texttt{uni} \emph{and nothing else}. That means, that if you say
-% for example
-% \begin{verbatim}
-%   {\sl Hello \textuni{world}}
-% \end{verbatim}
-% you get \emph{both} `Hello' and `world' in slanted shape, and the
-% output would be 
-% \begin{quote}
-%   {\sl Hello \textuni{world}}
-% \end{quote}
-% To put it in another way: Font encoding, shape, size, and
-% baselineskip is preserved under \Lcs{textuni} and \Lcs{uni}, while
-% font family is not.
-%
-% \textbf{Execptions:} If you gave the \texttt{bold} option to the
-% \textsf{uni} package, then this command will always give you a bold
-% series font. If you gave the \texttt{strict} option, then this
-% command will always give you a strict shaped font. 
-%
-% These commands can be used in conjuntion with \LaTeX{} commands
-% \Lcs{textbf}, \Lcs{textsl}, and even \Lcs{sc}, or \Lcs{rm} to give
-% different  series and shapes.
-%
-% \DescribeMacro{\textunirm}\DescribeMacro{\unirm}
-% If you in the previous example intended to shift to
-% \textunirm{medium upright universal} font you could instead have
-% used \Lcs{textunirm}, since this command \emph{does not} preserve
-% font shape, i.e., the shape is always changed to upright, regardless
-% of the prevouis shape. So if you said
-% \begin{verbatim}
-%   {\sl Hello \textunirm{world}}
-% \end{verbatim}
-% you would get
-% \begin{quote}
-%   {\sl Hello \textunirm{world}}
-% \end{quote}
-% 
-% \DescribeMacro{\textunisl}\DescribeMacro{\unisl}
-% \DescribeMacro{\textunisc}\DescribeMacro{\unisc}
-% \DescribeMacro{\textunist}\DescribeMacro{\unist}
-% \label{expl:cmds}
-% Actually \Lcs{textunirm} and \Lcs{unirm} isn't the only commands
-% that aggresively changes most of the font
-% parameters. \Lcs{textunisl}, \Lcs{textunisc}, and \Lcs{textunist},
-% \emph{always} gives you \textunisl{medium slanted}, 
-% \textunisc{medium small caps}, and \textunist{medium strict}
-% respecitivly no matter what the values of \Lcs{f at shape} was before. 
-%
-% \DescribeMacro{\textunibf}\DescribeMacro{\unibf}
-% \DescribeMacro{\textunibsl}\DescribeMacro{\unibsl}
-% \DescribeMacro{\textunibsc}\DescribeMacro{\unibsc}
-% \DescribeMacro{\textunibst}\DescribeMacro{\unibst}
-% In the same category is \Lcs{textunibf}, \Lcs{textunibsl},
-% \Lcs{textunibsc}, and \Lcs{textunist} which always changes the font
-% series to \textbf{bold}, along with change in shape (upright,
-% slanted, small caps, and strict in that order).
-%
-% All of the `aggresive' commands, \emph{do not} however change the
-% \emph{size} and \emph{baselineskip} of the font. This should be done
-% by using \LaTeX{} commands such as \Lcs{small}, \Lcs{Large},
-% \Lcs{fontsize}\marg{size}\marg{lineskip},
-% etc. 
-%
-% Notice that the `aggresive' commands always changes to the
-% appropiate font series. That is, even if you gave the \texttt{bold}
-% option to \textsf{uni}, \Lcs{textunirm} will still give you
-% \textunirm{medium upright universal} font. This particular instance
-% illustrates the use of the aggresive commands quite well I think.
-%
-% To summerize: The `aggresive' commands \emph{doesn't} preserve
-% fammily, series and shapes, but \emph{does} preserve encoding, size,
-% and baslineskip.
-%
-% \textbf{Warning:} The  font shifting commands \Lcs{textuni...} and
-% \Lcs{uni...} in this section is \emph{not} defined if you gave the
-% \texttt{strict} option to the \textsf{uni} package.
-% 
-% \DescribeMacro{\unifamily}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unifamily} to
-% fasilitate easier and stronger font loading.}
-% One can also use the rather primitive command \Lcs{unifamily} in
-% conjunction with \Lcs{selectfont} as described in \ftnguide{}, to
-% change the font family to \universal{} if absolute control is
-% preferd.
-%
-% \Lcs{unifamily} is used by all the other font switching commands, so
-% if you redefine it, or \Lcs{unifamilydefault}, you could get strange
-% resault.
-%
-% \DescribeMacro{\unifamilydefault}
-% This command normally expands to \texttt{uni}, which is the `family'
-% name of the \universal{} package. If you redefine this command to be
-% something else, e.g., \texttt{cmr}, \Lcs{unifamily} will load
-% another font.
-% 
-% \DescribeMacro{\uniseries}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{uniseries} to
-% fasilitate easier and stronger font loading.}
-% If the \texttt{bold} option to \textsf{uni} is used this command
-% will select the default series of the \universal{} font, defined in
-% \Lcs{uniseriesdefault}, which ofcourse defaults to \texttt{b}, i.e.,
-% bold series. if you redefine \Lcs{uniseriesdefault} to be
-% \texttt{m}, then \Lcs{uniseries} will select medium series
-% fonts.
-%
-% If \texttt{bold} option wasn't given, then this expands to nothing,
-% as do \Lcs{uniseriesdefault}.
-%
-% This command is used by \Lcs{textuni} and \Lcs{uni}.
-% 
-% \DescribeMacro{\unishape}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unishape} to
-% fasilitate easier and stronger font loading.}
-% If the \texttt{strict} option to \textsf{uni} is used this command
-% will select the default shape of the \universal{} font, defined in
-% \Lcs{unishapedefault}, which ofcourse defaults to \texttt{st}, i.e.,
-% strict shape. If you redefine \Lcs{unishapedefault} to be
-% \texttt{n}, then \Lcs{uniseries} will select upright shaped fonts.
-%
-% If \texttt{strict} option wasn't given, then this expands to nothing,
-% as do \Lcs{unishapedefault}.
-%
-% This command is used by \Lcs{textuni} and \Lcs{uni}.
-% 
-%
-% \DescribeMacro{\stshape}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{stshape} to make package
-% conform to \LaTeXe{} better.}
-% This command switches to \emph{strict} shape, i.e., all majuscules
-% will be typeset as minuscles. This makes it possible in a simple way
-% to typeset text in the way Herbert Bayer thought it should, as
-% evident from the citation above.
-%
-% This command uses the command \Lcs{stdefault}, which defaults to
-% \texttt{st}. If you redefine this to something alse, e.g.,
-% \texttt{sl} you will get a \textsl{slanted} font.
-%
-% This command is used by \Lcs{textunist}, \Lcs{textunibst},
-% \Lcs{unibst} and \Lcs{unist}, and is defined no matter waht options
-% you gave to the \textsf{uni} package. 
-%
-% \textbf{Warning:} Since \emph{strict} is a non--standard shape, this
-% command should not be used outside the \universal{} font, since this
-% may give you unexpected resaults.  
-% 
-% \subsubsection{Special Character Commands}
-%
-% For the individual commands that makes various special characters,
-% please consult table~\ref{tab:characters} above.
-% 
-% \subsubsection{Other Commands}
-%
-% \DescribeMacro{\k}
-% The macro \Lcs{k} used in the \universal{} font gives the accent
-% ogenek, that is a reversed cidelia accent. It takes one argument,
-% which shuold be a single letter, under which it puts the accent. For
-% example, you could say \Lcs{textuni\{}\Lcs{k\{a\}\}} and get
-% \textuni{\k{a}}.
-%
-% \DescribeMacro{\DeclareUniChar}
-% \Newestchanges{v2.0}{98/08/01}{Configuration of \textsf{uni} package
-% provided via the commands \Lcs{DeclareUniChar} and
-% \Lcs{DeclareUniCommand}.} 
-% Now you can configure the special character commands of the font,
-% via the commands \Lcs{DeclareUniChar} and
-% \Lcs{DeclareUniCommand}. The commands defined via these commands
-% will only work in accordence with it's definition inside the 
-% \universal{} font, and if defined elsewhere according to it's
-% definition there, else it will give an error message.
-% 
-% \Lcs{DeclareUniChar} is used to define a command sequence
-% representing a single character in the \universal{} font, much like
-% \Lcs{DeclareTextSymbol}, or in \TeX{} \Lcs{chardef}, though the
-% control sequence will produce an error message outside the
-% \universal{} font, and properle unexpected resaults outside the
-% \texttt{OT1} encoding\footnote{This should not be a problem.}. 
-%
-% \Lcs{DeclareUniCommand} is used to define control sequences inside
-% the \universal{} font, representing many characters or doing complex
-% manuvers on characters and stuff. The optional argument to
-% \Lcs{DeclareUniCommand} can be used to say how many arguments the
-% control sequence should have, just like \Lcs{newcommand}. However,
-% it is not possible to give a default first argument.
-% 
-% The below defintion uses the \textsf{color} package to typeset a
-% square, circle, and triangle in different colours\footnote{Since the
-% documentation should be avaliable to all, I can not provide you with
-% the outcome of this example, since it needs the \textsf{color}
-% package wich may not be avaliable on all sites. I suggest you try
-% it out, or something similar, if you can.}.
-% \begin{verbatim}
-%   \DeclareUniCommand{\mybauforms}{%
-%     \lower.5ex\hbox{\color{blue}\bautriangle}%
-%     \kern-.5em\raise.5ex\hbox{\color{read}\baucircle}%
-%     \kern-.5em\lower.5ex\hbox{\color{yellow}\bausquare}}
-%  \end{verbatim}
-%  Yet another example, using arguments could be
-%  \begin{verbatim}
-%    \DeclareUniCommand{\mybaulogo}[1]{\bauhead\ {\Large #1}}
-%  \end{verbatim}
-%  so you could say \verb+\mybaulogo{Christian Holm}+ and get:
-%  \begin{quote}
-%    {\uni \bauhead {\Large Christian Holm}}
-%  \end{quote}
-%  and I bet you can come up with some even more useful and complex
-%  commands. 
-%  
-% The syntax of \Lcs{DeclareUniChar} and \Lcs{DeclareUniCommand} is 
-% \begin{quote}
-%   \Lcs{DeclareUniChar}\marg{cmd}\marg{slot}\newline
-%   \Lcs{DeclareUniCommand}\marg{cmd}\oarg{arg}\marg{definition}
-% \end{quote}
-% where \meta{cmd} is the user command defined, \meta{slot} is the
-% number of the character in the font, \meta{arg} is the number of
-% arguments and \meta{definition} is what \meta{cmd} does.
-% 
-% \subsubsection{File Names for the \LaTeX{} files}
-%
-% All the \LaTeX{} files contain the three letters \texttt{uni}, to
-% reflect the connectedness of the files. The font definition files
-% all start with the letter code appropiate for the encodeing.
-%
-% To follow the scheme of the \MF{} files, it would be appropiate to
-% place all \LaTeX{} files in\newline
-% \indent\meta{tex--base--dir}\footnote{On \textsf{Unix}--like systems
-%   \meta{tex--base--dir} is usually something like
-%   \texttt{/usr/local/lib/texmf/}, and on \textsf{MSDOS}--like systems
-%   something like \texttt{C:\Lcs{}TEX}\Lcs{}
-% .}\texttt{/tex/latex/universa/} 
-% 
-% \subsection{The Major differences between version 1.0 and 2.0}
-%
-% \paragraph{First of:} \emph{a lot} of bugs and errors has been
-% corrected. In version~1.0, I had made the (stupid) mistake of
-% calling the macro \textuni{mode\_setup} before I defined the
-% unsharped units. Ofcourse a quick look in the \MFbook{} showed be
-% just how stupid this is. This made the font very vunerable to mode
-% specifications, which ofcourse isn't the idea.
-%
-% \paragraph{Secondly:} I chose a completly new approach to the
-% character programs, which resaultet in \texttt{unibase.mf}. The idea
-% is to define a few macros, and then utilize those in the character
-% programs, so that these programs can be kept simple, efficient, and
-% intuitive.
-%
-% A quick look at \texttt{unibase.mf} will also reveal that I chose a
-% new way of adjusting the characters. This means that the macros
-% \texttt{bauhaus...} present in version~1.0 no longer is needed, and
-% since they only tended to ubscure things rather then simplify them,
-% I went back to the plain \MF{} macro \texttt{beginchar}, which is
-% much stronger.
-%
-% All in all, \texttt{unibase.mf} provides a much stronger and uniform
-% frame work for character design, then did the old
-% \texttt{universal.mf}.
-%
-% \paragraph{Thirdly:} The file names have been keept inside
-% \textsc{msdos} conventions, that is first name of maximum 8
-% charcaters, and last name of maximum 3 characters. This does mean,
-% however, that some file names are not intutive, but I have tried to
-% make them as much as I could.
-%
-% Also, every file associated with this font, execpt the font
-% definition files (\texttt{*uni.fd}), and font driver files
-% (\texttt{ful*.mf}) begins with the three letters \texttt{uni}, to
-% emphasize the connection.
-%
-% \paragraph{Fouthly:} Some new font shapes are avaliable, as
-% explained above. I found out, during the design of the characters,
-% that new the base file \texttt{unibase.mf} kept showing new
-% potentiality, and the extension of the font to include more shapes
-% was very easy inside the frame of this base, so I thought ``What the
-% heck!''
-%
-% \paragraph{Fifthly:} Some of the \textuni{bauhaus} symbols avaliable
-% in version~1.0, has been taken out, and some new, more general
-% characters have been added. Most of the absent symbols where not
-% really of general use, so I decided to take them out, since I was
-% never really satisfied with those anyway. This also made the font
-% contain exactly 128 characters, just like a normal Computer Modern
-% Roman font.
-%
-% \paragraph{Sixthly:} I improved the \LaTeX{} and \NFSS{} support
-% considerably. The changes are legion, but let me sum up the most
-% important here.
-% \begin{enumerate}
-%   \item Stronger font selection commands.
-%   \item Command names that should be more intuitive.
-%   \item Preperations for \texttt{T1} encoding.
-%   \item Conformation to \LaTeXe{} style, and therefore a better
-%     chance to conform with the future \LaTeX3 format.
-%   \item More and better options.
-% \end{enumerate}
-% 
-% \StopEventually{\AtEndDocument{\PrintIndex\PrintChanges}}
-% 
-%\iffalse
-%<*package>
-%\fi
-% \section{\LaTeX\ Support Files}
-%
-% \subsection{The style file --- \texttt{uni.sty}}
-% \file{uni.sty}
-%
-% In version~2.0, the commands in this file has been redefined using
-% the macros recommended in \ftnguide{} and \clsguide{}. This should
-% make the commands and macros more portable, and secure. Further, it
-% should make it upward--compatiable with future releases of other
-% packages and in the end \LaTeX3.
-% 
-% \subsubsection{Intilalizing}
-%
-% First we need to identify the package, its version and release 
-% date, etc.
-%    \begin{macrocode}
-\def\fileversion{v2.0}
-\def\filedate{98/08/01}
-\ProvidesPackage{uni}[\filedate\space\fileversion\space universal
-                          package.]
-%    \end{macrocode}
-% Then we setup some new \Lcs{if} commands, to help in different 
-% sitations, depending on options passed to the package etc.
-%    \begin{macrocode}
-\newif\if at uni\@unifalse
-\newif\ifstri at t\stri at tfalse
-\newif\ifdef at ult\def at ultfalse
-\newif\ifm at dium\m at diumfalse
-
-%    \end{macrocode}
-%
-% \subsubsection{Options}
-%    
-% We define some options that can be passed to the package.
-% Option \texttt{strict} is intended to make it possible to do
-% \emph{strict} Herbert Bayer typesetting, that is only in
-% minuscles. Option \texttt{default} will make the \emph{default} font
-% \universal{} of the entire document, while option
-% \texttt{medium} and \texttt{bold} decides wether the default font
-% used by \Lcs{textuni} is normal or bold series. Finally option
-% \texttt{medium} is declared default.
-%    \begin{macrocode}
-\DeclareOption{strict}{\stri at ttrue}
-\DeclareOption{default}{\def at ulttrue}
-\DeclareOption{medium}{\m at diumtrue}
-\DeclareOption{bold}{\m at diumfalse}
-\ExecuteOptions{medium}
-\ProcessOptions\relax
-
-%    \end{macrocode}
-%
-% \subsubsection{Special Characters}
-%
-% \begin{macro}{\uni at init}
-% \begin{macro}{\DeclareUniChar}
-% \Newestchanges{v2.0}{98/08/01}{Added for faster and more stable
-% loading of special charactes.}
-% \begin{macro}{\DeclareUniCommand}
-% \Newestchanges{v2.0}{98/08/01}{Added for faster and more stable
-% decleration of \universal{} commands.}
-% \begin{macro}{\Declare at Uni}
-% \begin{macro}{\DeclareUni at xarg}
-% \begin{macro}{\DeclareUni at narg}
-% \begin{macro}{\UniError}
-% To facilitate the special character positions of the \universal{}
-% font, we define the internal commands \Lcs{uni at init}, and the user
-% commands \Lcs{DeclareUniChar} and \Lcs{DeclareUniCommand}.
-%
-% \Lcs{DeclareUniChar} and \Lcs{DeclareUniCommand} is very much like
-% the \LaTeX{} commands \Lcs{DeclareTextSymbol} and
-% \Lcs{DeclareTextCommand}, execpt we have to take into account, that
-% the commands may very well be defined in \texttt{ot1enc.def} or the
-% like. Since some of the characters provided with this font, is
-% usually  part of an 8 bit font, I can't just use the character
-% numbers straight of (this is a 7 bit font), and I have some very
-% non--standard characters as well.
-%
-% Though the two commands differ a bit, the main mechanism is the
-% same, so I will explain them together, and note the
-% differences\footnote{The syntax of the macroes are explanied on
-% page~\pageref{expl:cmds}.} .
-% \begin{enumerate}
-% \item When either of the commands is used, we first call the macro
-%   \Lcs{Declare at uni}, which sets up 2 or 3 commands.
-% \item Inside \Lcs{Declare at Uni}, we define \Lcs{temp at a} to be
-%   \Lcs{uni@}\meta{cmd-name}, where \meta{cmd-name} is \meta{cmd}
-%   stripped of the escape character (\Lcs{}).
-% \item Then we check wether \Lcs{cmd} is defined.
-%   \begin{itemize}
-%   \item If \meta{cmd} \emph{isn't} defined, then we define
-%     \Lcs{temp at c} to give \Lcs{uni@}\meta{cmd-name} (which isn't
-%     defined yet) inside the \universal{} font, otherwise an error
-%     message (\Lcs{UniError}).
-%   \item If \meta{cmd} \emph{is} defined, we define \Lcs{temp at b} to
-%     be \Lcs{no at uni@}\meta{cmd-name}, \Lcs{temp at c} to give
-%     \Lcs{uni@}\meta{cmd-name} inside the \universal{} font, and
-%     \Lcs{no at uni@}\meta{cmd-name} (which isn't defined yet)
-%     elsewhere. Then we define \Lcs{no at uni@}\meta{cmd-name} to be
-%     what \meta{cmd} currently is.
-%   \end{itemize}
-%   This finishes \Lcs{Declare at Uni} off.
-% \item The next step depends a bit on which of the macros that is
-%   utiliezed. What is coomon is that \Lcs{uni@}\meta{cmd-name} (hold
-%   in \Lcs{temp at a}) is defined to be the last argument of the command. 
-%   \begin{itemize}
-%   \item In \Lcs{DeclareUniChar}, we define \Lcs{uni@}\meta{cmd-name}
-%     via the \TeX{} command \Lcs{chardef} to be \meta{slot}, which
-%     should be a number (decimal, octal, or hexal) between 0 and
-%     127. Using the \TeX{} primitive will make \LaTeX{} think of
-%     \meta{cmd} as a single character.
-%   \item If \Lcs{DeclareUniCommand} was given an optional argument,
-%     we use the command \Lcs{DeclareUni at xarg} to define
-%     \Lcs{uni@}\meta{cmd-name} --- which uses \Lcs{newcommand} with
-%     \emph{one} optinal argument --- to be
-%     \meta{definition}. Otherwise we use \Lcs{DeclareUni at narg} ---
-%     which uses \Lcs{newcommand} with \emph{no} optinal arguments ---
-%     to do the trick.
-%     Using the \LaTeX{} complex \Lcs{newcommand}, makes \meta{cmd} a
-%     strong command.
-%   \end{itemize}
-% \item Finally we define \meta{cmd} to be \Lcs{temp at d}, which was the
-%   conditional command defined in step 2.
-% \end{enumerate}
-%
-% Notice the use of \Lcs{aftergroup}. This means that \meta{cmd-name}
-% shouldn't be too long, i.e., $>300$ characters, which isn't a real
-% limitation, but now I said it. This macro, together with the group
-% in \Lcs{temp at c} is what made it possible to give arguments to
-% \meta{cmd} defined by \Lcs{DeclareUniCommand}.
-% 
-% This way of doing things has a number of benefiets. 1) First of I
-% makes it very simple to redefine the behaviour of the \universal{} 
-% speciffic character commands. All you have to do is to use
-% \Lcs{DeclareUniChar} or \Lcs{DeclareUniChar} in your preamble (and
-% \emph{only} there). 2) Since \TeX{} are faster at evaluating
-% \Lcs{if...}'s, switching to \universal{} commands should take a 
-% minimum amount of time. 3) From a portability point of view, this
-% way of shifting meanings of commands such as \Lcs{textquotedblleft},
-% according to context, doesn't screw up older documents where the
-% \textsf{uni} package is added to.
-%
-% There are some disadvantage. 1) Most noticably there is \emph{no} 
-% conformation to \emph{any} existing encoding, which however is a
-% problem of the in the font, not the \textsf{uni} package. 2)
-% The heavy use of \Lcs{def}, \Lcs{edef}, and \Lcs{let}, is not
-% exactly \LaTeX3 policy, but is needed here. 3) The definition of the
-% commands may slow \TeX{} down a bit, but should be bearable.
-%    \begin{macrocode}
-\newcommand{\uni at init}{\@unitrue}
-\DeclareRobustCommand{\Declare at Uni}[1]{%
-  \edef\temp@{\expandafter\@gobble\string#1}
-  \edef\temp at a{\csname uni@\temp@\endcsname}
-  \@ifundefined{\temp@}{%
-    \edef\temp at c{{%
-        \noexpand\if at uni\noexpand\aftergroup\temp at a\noexpand%
-        \else\noexpand\UniError{#1}\noexpand\fi}}}{%
-    \edef\temp at b{\csname no at uni@\temp@\endcsname}
-    \edef\temp at c{{%
-      \noexpand\if at uni\noexpand\aftergroup\temp at a\noexpand%
-      \else\noexpand\aftergroup\temp at b\noexpand\fi}}
-    \expandafter\let\temp at b#1}}
-\DeclareRobustCommand{\DeclareUniChar}[2]{%
-  \Declare at Uni{#1}
-  \expandafter\chardef\temp at a=#2
-  \let#1\temp at c}
-\def\DeclareUniCommand#1{%
-  \@ifnextchar[{\DeclareUni at xarg#1}{\DeclareUni at narg#1}}
-\def\DeclareUni at xarg#1[#2]#3{%
-  \Declare at Uni{#1}
-  \expandafter\DeclareRobustCommand\temp at a[#2]{#3}
-  \let#1\temp at c}
-\def\DeclareUni at narg#1#2{%
-  \Declare at Uni{#1}
-  \expandafter\DeclareRobustCommand\temp at a{#2}
-  \let#1\temp at c}
-\@onlypreamble\DeclareUniChar\relax
-\@onlypreamble\DeclareUniCommand\relax
-\DeclareRobustCommand{\UniError}[1]{%
-  \PackageError{uni}{%
-    Command \string#1 not defined outside universal font.}{%
-    Correct your source file, so that \string#1 doesn't appear^^J%
-    ouside of universal font, then run LaTeX again.^^J%
-    Prepare your self for some gastly output.}}
-%  \expandafter\show\csname no at uni@\temp@\endcsname
-%  \expandafter\show\csname uni@\temp@\endcsname
-%  \expandafter\show\csname \temp@\endcsname
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% 
-% \begin{macro}{\bausquare}
-% \Newestchanges{v2.0}{98/08/01}{\universal{} specific
-% characters declared by seperate macro.}
-% \begin{macro}{\baucircle}
-% \begin{macro}{\bautriangle}
-% \begin{macro}{\bauhead}
-% \begin{macro}{\bauforms}
-% \begin{macro}{\dh}
-% \begin{macro}{\ng}
-% \begin{macro}{\th}
-% \begin{macro}{\varQ}
-% \begin{macro}{\NG}
-% \begin{macro}{\TH}
-% \begin{macro}{\textogonek}
-% \begin{macro}{\textbraceleft}
-% \begin{macro}{\textbraceright}
-% \begin{macro}{\textsection}
-% \begin{macro}{\textbar}
-% \begin{macro}{\guilsinglleft}
-% \begin{macro}{\guilsinglright}
-% \begin{macro}{\textquotedblleft}
-% \begin{macro}{\textquotedblright}
-% \begin{macro}{\quotesinglbase}
-% \begin{macro}{\quotedblbase}
-% \begin{macro}{\guillemoleft}
-% \begin{macro}{\guillemoright}
-% \begin{macro}{\k}
-% \begin{macro}{\DH}
-% \begin{macro}{\DJ}
-% \begin{macro}{\dj}
-% \begin{macro}{\textunderscore}
-% This command takes care of commands for non--standard placement, and
-% symbols in the \universal{} font, while using standard \LaTeXe{}
-% encodings, such as \texttt{OT1}.
-%
-% For instance, the symbols \textunibf{\}}, \textunibf{\{} isn't
-% present in Computer Modern fonts, but is accesiable through the
-% command \Lcs{}\texttt{\{}, and \Lcs{}\texttt{\}} in the \universal{}
-% font. On the other hand \char"00{} isn't present in this font, but
-% is replaced by \textunibf{\char"00}.
-%
-% Some of the commands avaliable are well--known to the \texttt{T1}
-% encodeing, and are provided with the same commmand names as in that
-% encoding.
-%
-% The decleration of these commands use my (slick) macros
-% \Lcs{DcelareUniChar} and \Lcs{DcelareUniCommand} --- very neat I
-% think. 
-%
-%    \begin{macrocode}
-\DeclareUniChar{\bausquare}{"00}
-\DeclareUniChar{\baucircle}{"01}
-\DeclareUniChar{\bautriangle}{"02}
-\DeclareUniChar{\bauhead}{"03}
-\DeclareUniChar{\bauforms}{"04}
-\DeclareUniChar{\dh}{"05}
-\DeclareUniChar{\ng}{"06}
-\DeclareUniChar{\th}{"07}
-\DeclareUniChar{\varQ}{"08}
-\DeclareUniChar{\NG}{"09}
-\DeclareUniChar{\TH}{"0A}
-\DeclareUniChar{\textogonek}{"0B}
-\DeclareUniChar{\textbraceleft}{"0C}
-\DeclareUniChar{\textbraceright}{"0D}
-\DeclareUniChar{\textsection}{"0E}
-\DeclareUniChar{\textbar}{"0F}
-\DeclareUniChar{\guilsinglleft}{"22}
-\DeclareUniChar{\guilsinglright}{"5C}
-\DeclareUniChar{\quotesinglbase}{"2C}
-\DeclareUniCommand{\quotedblbase}{\char"2C\kern-.3em\char"2C}
-\DeclareUniCommand{\textquotedblleft}{``}
-\DeclareUniCommand{\textquotedblright}{''}
-\DeclareUniCommand{\guillemoleft}{\char"22\char"22}
-\DeclareUniCommand{\guillemoright}{\char"5C\char"5C}
-\DeclareUniCommand{\DH}{\raise.5ex\hbox{\char"2D}\kern-.5em D}
-\DeclareUniCommand{\DJ}{\raise.5ex\hbox{\char"2D}\kern-.5em D}
-\DeclareUniCommand{\dj}{\raise.75ex\hbox{\char"2D}\kern-1em d}
-\DeclareUniCommand{\textunderscore}{\lower.5ex\hbox{\char"7B}}
-\DeclareUniCommand{\k}[1]{%
-    \leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent11 #1%
-    \else{\ooalign{\unhbox\z@\crcr\hidewidth\char11\hidewidth}}\fi}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \subsubsection{Font Selection}
-% 
-% \begin{macro}{\unifamily}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unifamily} to
-% fasilitate easier and stronger font loading.}
-% The real command. This switches to \universal{} font, and can
-% be used by authors in conjunction with \LaTeXe{} primitive
-% \Lcs{selectfont}. \Lcs{unifamily} is used below in \Lcs{textuni...},
-% and \Lcs{uni...}.
-% 
-% \begin{macro}{\unifamilydefault}
-% \changes{v2.0}{98/08/01}{Defined to make package conform to
-% \LaTeXe{} better.}
-% Here \Lcs{unifamilydefault} is by default defined to be
-% \texttt{uni}, but could ofcourse expand to something
-% different. However, the expnasion should be a font family (like
-% \texttt{cmr}) or the like.
-% 
-%    \begin{macrocode}
-\DeclareRobustCommand\unifamily{%
-  \not at math@alphabet\unifamily\relax%
-  \fontfamily\unifamilydefault\selectfont}
-\newcommand{\unifamilydefault}{uni}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% 
-% \begin{macro}{\uniseries}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{uniseries} to
-% fasilitate easier and stronger font loading.}
-% If the \texttt{bold} option is used with the \textsf{uni} package,
-% then this command switches to whatever series is defined via
-% \Lcs{uniseriesdefault} (default is \textbf{bold} series), otherwise
-% it does nothing. Since this command is used in \Lcs{textuni} and
-% \Lcs{uni}, this way will not allow anyother series if \texttt{bold}
-% option is given, expect \textbf{bold}. However, if \texttt{bold}
-% isn't given, then \emph{any} series is possible.
-% 
-% \begin{macro}{\uniseriesdefault}
-% \changes{v2.0}{98/08/01}{Defined to make package conform to
-% \LaTeXe{} better.}
-% Here \Lcs{uniseriesdefault} is defined to be \texttt{b}
-% (\textbf{medium}) if the \texttt{bold} option \emph{was} given to 
-% \textsf{uni} package. Otherwise it expans to nothing
-% (\Lcs{relax}). This macro is used by \Lcs{uniseries}.
-%    \begin{macrocode}
-\ifm at dium
-  \let\uniseries\relax
-  \let\uniseriesdefault\relax
-\else
-  \DeclareRobustCommand\uniseries{%
-    \not at math@alphabet\uniseries\relax%
-    \fontseries\uniseriesdefault\selectfont}
-  \newcommand{\uniseriesdefault}{b}
-\fi
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\unishape}
-% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unishape} to
-% fasilitate easier and stronger font loading.}
-% If the \texttt{strict} option is used with the \textsf{uni} package,
-% then this command switches to whatever shape is defined via
-% \Lcs{unishapedefault} (default is \emph{strict} shape), otherwise
-% it does nothing. Since this command is used in \Lcs{textuni} and
-% \Lcs{uni}, this way will not allow anyother shape if \texttt{strict}
-% option is given, expect \emph{strict}. However, if \texttt{strict}
-% isn't given, then \emph{any} series is possible.
-% 
-% \begin{macro}{\unishapedefault}
-% \changes{v2.0}{98/08/01}{Defined to make package conform to
-% \LaTeXe{} better.} 
-% Here \Lcs{unishapedefault} is defined to be \texttt{st}
-% (\emph{strict}) if the \texttt{strict} option \emph{was} given to 
-% \textsf{uni} package. Otherwise it expans to nothing
-% (\Lcs{relax}). This macro is used by \Lcs{unishape}.
-%    \begin{macrocode}
-\ifstri at t
-  \DeclareRobustCommand\unishape{%
-    \not at math@alphabet\unishape\relax%
-    \fontseries\unishapedefault\selectfont}
-  \newcommand{\unishapedefault}{st}
-\else
-  \let\unishape\relax
-  \let\unishapedefault\relax
-\fi
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% 
-% \begin{macro}{\stshape}
-% \changes{v2.0}{98/08/01}{Defined \Lcs{stshape} to make package
-% conform to \LaTeXe{} better.}
-% This command selects the shape holded by \Lcs{stdefault} (defaults
-% to \texttt{st} --- strict) in any family or series. This is used by
-% commands \Lcs{textunist}, \Lcs{textunibst}, \Lcs{unist}, and
-% \Lcs{unibst}.
-% 
-% \begin{macro}{\stdefault}
-% \changes{v2.0}{98/08/01}{Defined to make package conform to
-% \LaTeXe{} better.}
-% The shape selected by \Lcs{stshape}.
-%    \begin{macrocode}
-\DeclareRobustCommand\stshape{%
-  \not at math@alphabet\stshape\relax%
-  \fontshape\stdefault\selectfont}
-\newcommand{\stdefault}{st}
-  
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \paragraph{Local Font Selection}
-% \begin{macro}{\textuni}
-% \Newestchanges{v2.0}{98/08/01}{\Lcs{textbayer} changed to
-% \Lcs{textuni}, and defined using \LaTeXe{} scheme.}
-% \begin{macro}{\textunirm}
-% \begin{macro}{\textunibf}
-% \begin{macro}{\textunisl}
-% \begin{macro}{\textunisc}
-% \begin{macro}{\textunibsl}
-% \begin{macro}{\textunibsc}
-% These are the macros that switches to \universal{} font, 
-% locally, i.e., for a few words, in various series and shapes. The
-% names are pretty selfexplanetory, I think. These macros will
-% \emph{always} change the font series and shape accroding to it's
-% definiton, nothing more, and nothing less, exepct \Lcs{textuni},
-% which only changes the cuurent family to \texttt{uni}. Notice it
-% simply uses the \Lcs{unifamily} command to do the trick.
-%
-% The second argument to \Lcs{DeclareTextFontCommand} should not
-% normally contain commands that typeset, or commands not relevant to
-% the selection of fonts, but to make up for the non--default
-% characeters and character placements, we \emph{do} include
-% \Lcs{uni at init} in the argument.
-%
-% Notice that only \Lcs{textuni} is defined if option \texttt{strict}
-% was given to \textsf{uni} package.
-%    \begin{macrocode}
-\DeclareTextFontCommand{\textuni}{%
-  \uni at init\unifamily\uniseries\unishape}
-\ifstri at t
-\else
-  \DeclareTextFontCommand{\textunirm}{%
-    \uni at init\unifamily\mdseries\upshape}
-  \DeclareTextFontCommand{\textunibf}{%
-    \uni at init\unifamily\bfseries\upshape}
-  \DeclareTextFontCommand{\textunisl}{%
-    \uni at init\unifamily\mdseries\slshape}
-  \DeclareTextFontCommand{\textunisc}{%
-    \uni at init\unifamily\mdseries\scshape}
-  \DeclareTextFontCommand{\textunist}{%
-    \uni at init\unifamily\mdseries\stshape}
-  \DeclareTextFontCommand{\textunibsl}{%
-    \uni at init\unifamily\bfseries\slshape}
-  \DeclareTextFontCommand{\textunibsc}{%
-    \uni at init\unifamily\bfseries\scshape}
-  \DeclareTextFontCommand{\textunibst}{%
-    \uni at init\unifamily\bfseries\stshape}
-\fi
-  
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \paragraph{Global Font Selection}
-% \begin{macro}{\uni}
-% \Newestchanges{v2.0}{98/08/01}{\Lcs{bayer} changed to \Lcs{uni}}
-% \begin{macro}{\unibf}
-% \begin{macro}{\unibf}
-% \begin{macro}{\unisl}
-% \begin{macro}{\unisc}
-% \begin{macro}{\unibsl}
-% \begin{macro}{\unibsc}
-% These macros works as \Lcs{textuni...} above, execpt the take effect
-% from the point used, to the end of the current group. Again font
-% selection is \emph{exactly} as given in the command name, execpt for
-% \Lcs{uni} which only changes the family.
-%
-% Notice that only \Lcs{uni} is defined if option \texttt{strict}
-% was given to \textsf{uni} package.
-%    \begin{macrocode}
-\DeclareOldFontCommand{\uni}{%
-  \uni at init\unifamily\uniseries\unishape}{}
-\ifstri at t
-\else
-  \DeclareOldFontCommand{\unirm}{%
-    \uni at init\unifamily\mdseries\upshape}{}
-  \DeclareOldFontCommand{\unibf}{%
-    \uni at init\unifamily\bfseries\upshape}{}
-  \DeclareOldFontCommand{\unisl}{%
-    \uni at init\unifamily\mdseries\slshape}{}
-  \DeclareOldFontCommand{\unisc}{%
-    \uni at init\unifamily\mdseries\scshape}{}
-  \DeclareOldFontCommand{\unist}{%
-    \uni at init\unifamily\mdseries\stshape}{}
-  \DeclareOldFontCommand{\unibsl}{%
-    \uni at init\unifamily\bfseries\slshape}{}
-  \DeclareOldFontCommand{\unibsc}{%
-    \uni at init\unifamily\bfseries\scshape}{} 
-  \DeclareOldFontCommand{\unibst}{%
-    \uni at init\unifamily\bfseries\stshape}{} 
-\fi
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \paragraph{\texttt{default} Option Font} 
-% Now if you gave the \texttt{default} option to the package,
-% \Lcs{ifdef at ult} evaluates to true, and so we setup the default font
-% to be \universal{}, in the medium or bold version, depending
-% on wether you gave the \texttt{medium} option or not.
-%    \begin{macrocode}
-\ifdef at ult
-  \renewcommand{\familydefault}{uni}
-  \ifm at dium\renewcommand{\seriesdefault}{m}
-  \else\renewcommand{\seriesdefault}{b}\fi
-  \renewcommand{\itdefault}{sl}
-%    \end{macrocode}
-% \begin{macro}{\cmrfamily}
-% \begin{macro}{\cmrdefault}
-% \begin{macro}{\textcmr}
-% \begin{macro}{\cmr}
-% We define \Lcs{cmrfamily} and \Lcs{cmrdefault} to change back to
-% Computer Modern Roman font, if so wanted. The macros \Lcs{textcmr}
-% and \Lcs{cmr} are the logical extensions of \Lcs{cmrfamily}.
-%    \begin{macrocode}
-  \DeclareRobustCommand\cmrfamily{%
-    \not at math@alphabet\cmrfamily\relax%
-    \fontencoding\cmrenc\fontfamily\cmrdefault\selectfont}
-  \newcommand{\cmrdefault}{cmr}
-  \newcommand{\cmrenc}{OT1}
-  \DeclareTextFontCommand{\textcmr}{\cmrfamily}
-  \DeclareOldFontCommand{\cmr}{\cmrfamily}{}
-\fi
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%\iffalse
-%</package>
-%\fi
-% \subsection{The Font Definition Files --- \texttt{*uni.fd}}
-%
-% These files is needed in the New Font Selection Scheme, used by
-% \LaTeXe{}, but really isn't nessecary for pure \TeX{} or \LaTeX2.09
-% users, but since those are treathned races, I did put in the extra
-% effort and made the files.
-%
-% What they really do, is to speciffy what font driver file should be
-% loaded when the user swichtes font. Notice, alot of the font shapes
-% etc.\ avaliable in the Computer Modern Roman scheme isn't avaliable
-% in the \universal{} font, so we substitute with whatever is
-% closest, something from the \universal{} or Computer Modern
-% Roman scheme.
-%
-% The reason why the file names may look a bit wierd, is to make the
-% font conform to the standard set by \texttt{fontname} used by
-% \texttt{kpathsea} in most \TeX{}, \LaTeX{}, and \MF{} systems.
-% 
-% \paragraph*{Math Encoding}\file{oml.fd}
-% First comes the the font definition file for \emph{math}, but since
-% no math characters is  defined in the \universal{} font, we
-% substitute with the relevant fonts from Computer Modern Roman.
-%\iffalse
-%<*oml>
-%\fi
-%    \begin{macrocode}
-\ProvidesFile{omluni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
-\DeclareFontFamily{OML}{uni}{\skewchar\font127 }
-\DeclareFontShape{OML}{uni}{m}{n}{<-> ssub * cmm/m/it}{}
-\DeclareFontShape{OML}{uni}{m}{it}{<-> ssub * cmm/m/it}{}
-\DeclareFontShape{OML}{uni}{m}{sl}{<-> ssub * cmm/m/it}{}
-\DeclareFontShape{OML}{uni}{m}{sc}{<-> ssub * cmm/m/it}{}
-\DeclareFontShape{OML}{uni}{bx}{n}{<-> ssub * cmm/b/it}{}
-\DeclareFontShape{OML}{uni}{bx}{it}{<-> ssub * cmm/b/it}{}
-\DeclareFontShape{OML}{uni}{bx}{sl}{<-> ssub * cmm/b/it}{}
-\DeclareFontShape{OML}{uni}{bx}{sc}{<-> ssub * cmm/b/it}{}
-
-%    \end{macrocode}
-%\iffalse
-%</oml>
-%\fi
-%
-% \paragraph*{Symbols Encoding}\file{omsuni.fd}
-% Next is the definitions for \emph{symbols} fonts, but as above,
-% there is no seperate symbol font defined for the \universal{}
-% font, so we substitute for default.
-%\iffalse
-%<*oms>
-%\fi
-%    \begin{macrocode}
-\ProvidesFile{omsuni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
-\DeclareFontFamily{OMS}{uni}{\skewchar\font48 }
-\DeclareFontShape{OMS}{uni}{m}{n}{<-> ssub * cmsy/m/n}{}
-\DeclareFontShape{OMS}{uni}{m}{it}{<-> ssub * cmsy/m/n}{}
-\DeclareFontShape{OMS}{uni}{m}{sl}{<-> ssub * cmsy/m/n}{}
-\DeclareFontShape{OMS}{uni}{m}{sc}{<-> ssub * cmsy/m/n}{}
-\DeclareFontShape{OMS}{uni}{bx}{n}{<-> ssub * cmsy/b/n}{}
-\DeclareFontShape{OMS}{uni}{bx}{it}{<-> ssub * cmsy/b/n}{}
-\DeclareFontShape{OMS}{uni}{bx}{sl}{<-> ssub * cmsy/b/n}{}
-\DeclareFontShape{OMS}{uni}{bx}{sc}{<-> ssub * cmsy/b/n}{}
-
-%    \end{macrocode}
-%\iffalse
-%</oms>
-%\fi
-% 
-% \paragraph*{Normal Encoding}\file{ot1uni.fd}
-% Now the definitions for the normal font. This \emph{is} ofcourse
-% defined, anything else would be ludicruis. It is very straight
-% forward most of the way. However, notice the substitutions at the
-% end of the file.
-%
-%\iffalse
-%<*ot1>
-%\fi
-%    \begin{macrocode}
-\ProvidesFile{ot1uni.fd}%
-  [1998/08/01 v2.0 Non standard LaTeX font definitions]
-\DeclareFontFamily{OT1}{uni}{\hyphenchar\font45 }
-  
-%    \end{macrocode}
-% Next comes the specifications of what to load in \textunirm{normal
-% upright shape}
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{m}{n}{
-  <5><6><7><8>fulmr8
-  <9>fulmr9
-  <10><10.95>fulmr10
-  <12><14.4>fulmr12
-  <17.28><20.74><24.88>fulmr17
-  }{}
-  
-%    \end{macrocode}
-% Next comes the specifications of what to load in \textunisl{normal
-% slanted shape}
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{m}{sl}{
-  <5><6><7><8>fulmo8
-  <9>fulmo9
-  <10><10.95>fulmo10
-  <12><14.4>fulmo12
-  <17.28><20.74><24.88>fulmo17
-  }{}
-  
-%    \end{macrocode}
-% Now for \textunisc{small caps medium} definitions.
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{m}{sc}{
-  <5><6><7><8>fulmc8
-  <9>fulmc9
-  <10><10.95>fulmc10
-  <12><14.4>fulmc12
-  <17.28><20.74><24.88>fulmc17
-  }{}
-
-%    \end{macrocode}
-% Now for \textunist{strict medium} definitions.
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{m}{st}{
-  <5><6><7><8>fulmst8
-  <9>fulmst9
-  <10><10.95>fulmst10
-  <12><14.4>fulmst12
-  <17.28><20.74><24.88>fulmst17
-  }{}
-
-%    \end{macrocode}
-% Next comes the specifications of what to load in \textunibf{bold
-% face upright shape}
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{b}{n}{
-  <5><6><7><8>fulbr8
-  <9>fulbr9
-  <10><10.95>fulbr10
-  <12><14.4>fulbr12
-  <17.28><20.74><24.88>fulbr17
-  }{}
-  
-%    \end{macrocode}
-% Next comes the specifications of what to load in
-% \textunibsl{bold face slanted shape}
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{b}{sl}{
-  <5><6><7><8>fulbo8
-  <9>fulbo9
-  <10><10.95>fulbo10
-  <12><14.4>fulbo12
-  <17.28><20.74><24.88>fulbo17
-  }{}
-    
-%    \end{macrocode}
-% And \textunibsc{small caps bold face} definitions.
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{b}{sc}{
-  <5><6><7><8>fulbc8
-  <9>fulbc9
-  <10><10.95>fulbc10
-  <12><14.4>fulbc12
-  <17.28><20.74><24.88>fulbc17
-  }{}
-    
-%    \end{macrocode}
-% And \textunibst{strict bold face} definitions.
-%    \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{b}{st}{
-  <5><6><7><8>fulbst8
-  <9>fulbst9
-  <10><10.95>fulbst10
-  <12><14.4>fulbst12
-  <17.28><20.74><24.88>fulbst17
-  }{}
-    
-%    \end{macrocode}
-%
-% Now for the substitutions. This is straight forward, that
-% is, upright slanted is substituted by upright; bold face condensed,
-% and bold face extra is substituted by boldface; and italic by
-% slanted\footnote{As mentioned earlier, one of the characteristics
-% of this dont, is that it has no serifs, so it would be strange
-% to include italics in this font.}.
-%     \begin{macrocode}
-\DeclareFontShape{OT1}{uni}{m}{it}{<->ssub*uni/m/sl}{}
-\DeclareFontShape{OT1}{uni}{m}{ui}{<->ssub*uni/m/n}{}
-\DeclareFontShape{OT1}{uni}{b}{it}{<->ssub*uni/b/sl}{}
-\DeclareFontShape{OT1}{uni}{bx}{n}{<->ssub*uni/b/n}{}
-\DeclareFontShape{OT1}{uni}{bx}{sl}{<->ssub*uni/b/sl}{}
-\DeclareFontShape{OT1}{uni}{bx}{sc}{<->ssub*uni/b/sc}{}
-\DeclareFontShape{OT1}{uni}{bx}{st}{<->ssub*uni/b/st}{}
-\DeclareFontShape{OT1}{uni}{bx}{it}{<->ssub*uni/b/sl}{}
-\DeclareFontShape{OT1}{uni}{bc}{ui}{<->ssub*uni/b/n}{}
-\DeclareFontShape{OT1}{uni}{sbc}{n}{<->ssub*uni/b/n}{}
-
-%    \end{macrocode}
-%\iffalse
-%</ot1>
-%\fi
-%
-% \paragraph*{T1 encoding}\file{t1uni.fd}
-% Since the T1 encoding relies on the font scheme of \texttt{exbase}
-% (EC fonts), and \texttt{dxbase} (DC fonts), by J\"org Knappen and
-% Nobert Schwartz, which is a whole new way of making fonts, that
-% requires some special messaures that I couldn't incorporate into the
-% \universal{} font without a whole lot of work, I chose not to
-% make support for the T1 scheme. Therefore this file issues a warning
-% and then exists the whole \LaTeX{} run. This may seem a bit drastic,
-% but it ensures that you don't get screwed up resuats.
-%\iffalse
-%<*t1>
-%\fi
-%    \begin{macrocode}
-\ProvidesFile{t1uni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
-\typeout{WARNING: universal font not avaliable in t1 definition.}
-\typeout{WARNING: exiting, correct your source.}
-\stop
-
-%    \end{macrocode}
-%\iffalse
-%</t1>
-%\fi
-%
-% \paragraph*{U Encoding}\file{uuni.fd}
-% This is similar to the normal encoding above, execpt encoding is U. 
-%\iffalse
-%<*u>
-%\fi
-%    \begin{macrocode}
-\ProvidesFile{uuni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
-\DeclareFontFamiliy{U}{uni}{\hyphenchar\font45}
-\DeclareFontShape{U}{uni}{m}{n}{
-  <5><6><7><8>fulmr8
-  <9>fulmr9
-  <10><10.95>fulmr10
-  <12><14.4>fulmr12
-  <17.28><20.74><24.88>fulmr17
-  }{}
-\DeclareFontShape{U}{uni}{m}{sl}{
-  <5><6><7><8>fulmo8
-  <9>fulmo9
-  <10><10.95>fulmo10
-  <12><14.4>fulmo12
-  <17.28><20.74><24.88>fulmo17
-  }{}
-\DeclareFontShape{U}{uni}{m}{sc}{
-  <5><6><7><8>fulmc8
-  <9>fulmc9
-  <10><10.95>fulmc10
-  <12><14.4>fulmc12
-  <17.28><20.74><24.88>fulmc17
-  }{}
-\DeclareFontShape{U}{uni}{m}{st}{
-  <5><6><7><8>fulmst8
-  <9>fulmst9
-  <10><10.95>fulmst10
-  <12><14.4>fulmst12
-  <17.28><20.74><24.88>fulmst17
-  }{}
-\DeclareFontShape{U}{uni}{b}{n}{
-  <5><6><7><8>fulbr8
-  <9>fulbr9
-  <10><10.95>fulbr10
-  <12><14.4>fulbf12
-  <17.28><20.74><24.88>fulbr17
-  }{}
-\DeclareFontShape{U}{uni}{b}{sl}{
-  <5><6><7><8>fulbo8
-  <9>fulbo9
-  <10><10.95>fulbo10
-  <12><14.4>fulbo12
-  <17.28><20.74><24.88>fulbo17
-  }{}
-\DeclareFontShape{U}{uni}{b}{sc}{
-  <5><6><7><8>fulbc8
-  <9>fulbc9
-  <10><10.95>fulbc10
-  <12><14.4>fulbc12
-  <17.28><20.74><24.88>fulbc17
-  }{}
-\DeclareFontShape{U}{uni}{b}{st}{
-  <5><6><7><8>fulbst8
-  <9>fulbst9
-  <10><10.95>fulbst10
-  <12><14.4>fulbst12
-  <17.28><20.74><24.88>fulbst17
-  }{}
-\DeclareFontShape{U}{uni}{m}{it}{<->ssub*uni/m/sl}{}
-\DeclareFontShape{U}{uni}{m}{ui}{<->ssub*uni/m/n}{}
-\DeclareFontShape{U}{uni}{b}{it}{<->ssub*uni/b/sl}{}
-\DeclareFontShape{U}{uni}{bx}{n}{<->ssub*uni/b/n}{}
-\DeclareFontShape{U}{uni}{bx}{sl}{<->ssub*uni/b/sl}{}
-\DeclareFontShape{U}{uni}{bx}{sc}{<->ssub*uni/b/sc}{}
-\DeclareFontShape{U}{uni}{bx}{st}{<->ssub*uni/b/st}{}
-\DeclareFontShape{U}{uni}{bx}{it}{<->ssub*uni/b/sl}{}
-\DeclareFontShape{U}{uni}{bc}{ui}{<->ssub*uni/b/n}{}
-\DeclareFontShape{U}{uni}{sbc}{n}{<->ssub*uni/b/n}{}
-        
-%    \end{macrocode}
-%\iffalse
-%</u>
-%\fi
-
-%\iffalse
-%<*unibase>
-%\fi
-%
-% \section{The Font Macros and Programs}
-%
-% \subsection{Base file --- \texttt{unibase.mf}}
-% \file{unibase.mf}
-% \Newestchanges{v2.0}{98/08/01}{Base file \texttt{unibase.mf} swa the
-% light of day, providing many driver, font control, and drawing
-% macros.} 
-%
-% This file defines all the macroes used in the source programs
-% for the font. I could have chosen to use \texttt{cmbase}, but
-% rather then defining a lot of variables that isn't used, I chose
-% to make a base file myself. Also, some af the drawing macros
-% presented here still needed to be defined. This file could be
-% made into a binary file, but I think that would be a bit to
-% much.
-%
-% First we define the variable \texttt{unibase}, to check later if
-% this file has been loaded.
-%    \begin{macrocode}
-unibase := 1 ;
-string univer ;
-univer = "2.0" ;
-if proofing > 1 :
-  message "Base file for font `universal', version " & univer ;
-fi
-%    \end{macrocode}
-% Secondly, we define the variables \texttt{medium} and \texttt{bold}
-% to control the font serie to be produced. If \texttt{medium} is set
-% to \textsl{true} in the driver file, then a medium series
-% (\Lcs{mdseries}) font will be produced, while \texttt{bold} ofcourse
-% generates a boldface font. The medium serie may very well be
-% more suitiable for long texts then the default font.  In $10pt$
-% the default thickness of the pen is $\frac{5}{6}pt\approx 0.8pt$
-% wide for the minuscles, and a bit wider for the majuscules. If
-% \texttt{medium} is \texttt{true} then it is $\frac{5}{9}pt\approx
-%   0.6pt$ wide.
-%
-% Booleans \texttt{slant} and \texttt{caps} is used to control the
-% shape of the font. If both is \textsl{false} a normal (upright)
-% shaped font (\Lcs{upshape}) font is generated. If \texttt{slant} or
-% \texttt{caps} is true, either a slanted (\Lcs{slshape}) or small
-% caps (\Lcs{scshape}) shaped font is generated. The values of these
-% booleans should be set in the driver file, \emph{before} any call to
-% \texttt{start\_font}.
-%    \begin{macrocode}
-boolean medium , slant , bold , caps , strict ;
-medium := false ; slant := false  ; bold := false ;
-caps := false   ; strict := false ;
-%    \end{macrocode}
-% And then the font is identified as \texttt{"universal"}.
-%    \begin{macrocode}
-font_identifier:="universal"; 
-
-%    \end{macrocode}
-%
-% \subsubsection{Font macros}
-%
-% These macroes have to do with the general initialization and 
-% production of the font. The macros needed later on is
-% \texttt{start\_font}, and \texttt{end\_font}.
-%
-% The general idea is, that as little as possible should be 
-% defined in the driver file, so that the font will have a uniform
-% look in all series, shapes, and sizes.  All that is needed in the
-% driver file is to  define some of the above booleans to true, call
-% the macro \texttt{start\_font} giving it the size (in \texttt{pt\#})
-% of the font as argument, include of source files, and call the macro
-% \texttt{end\_font}. 
-%
-% \begin{fontmacro}{start\_font}
-% This is the macro for setting up the needed dimensions and 
-% variables. First we take into acount the \textit{mode} used, by
-% calling \texttt{mode\_setup}, then we define the correct,
-% \textit{sharped} units, bassed on the argument to the macro, wich
-% should be the size of the font in \texttt{pt\#}.
-%    \begin{macrocode}
-def start_font(expr size) =	
-  u# := size/18 ;	
-  mode_setup;
-  x_h# :=  8u# ; x_w# := 8u#   ; m_w# := 11u# ; l_h# := 13u# ;
-  p_d# :=  5u# ; l_s# := 2u#   ; r_s# :=  2u# ; A_w# := 10u# ;
-  M_w# := 14u# ; c_d# := 3u#/2 ; C_d# :=  2u# ;
-%    \end{macrocode}
-% We test to see, if any of the above booleans is set to
-% \textsl{true}, and if so, takes appropiate action. If
-% \texttt{medium} is set, the pens gets thinner, thereby producing  
-% a lighter font. If \texttt{bold} the pens gets thicker, and so a
-% heavier font is produced. If \texttt{slant} is set, then the
-% inclination (\texttt{slantratio}) of the font is assigned.
-%
-% No other dimensions then the pen thickness should be differ among
-% the \emph{medium} and \emph{bold} font. However, two dimension
-% \texttt{c\_d} and \texttt{C\_d} is always set to the same value as
-% the pens would be in the current size, if the font to be made was
-% \emph{bold}.
-%
-% Also notice, that two different pens thicknesses is defined
-% \texttt{p\_t} and \texttt{P\_t}, so that the majuscules may come out
-% a bit thicker then the minuscles. Ofcourse this adds to the
-% complexity of the drawing macroes defined below, but in a very
-% straight forward way, so I dont't think it will be a problem.
-%
-% Then we set \texttt{currenttransform} to take into account the
-% varibale \texttt{slantratio}. 
-%    \begin{macrocode}
-  if (medium and bold) :
-    message "Font can't be both medium and bold, making medium font." ;
-    medium := true ;
-  fi;
-  if medium : p_t# := 2u#/3 ; P_t# := u#    ; P_T# := u#  ; fi ; 
-  if bold :   P_T# := 3u#/2 ; p_t# := 3u#/2 ; P_t# := 2u# ; fi ; 
-  a_h# := x_h#+p_t#/2 ;
-  if (slant and (caps or strict)) : double_shape := 1 ; fi ;
-  if (caps and (slant or strict)) : double_shape := 1 ; fi ;
-  if (strict and (caps or slant)) : double_shape := 1 ; fi ;
-  if known double_shape :
-    message "Font cannot be two shapes, doing upright shape." ;
-    slant := false ; caps := false ; strict := false ;
-  fi ;
-  if slant : slantratio := 1/6 ; else: slantratio := 0 ; fi ;
-  currenttransform := identity slanted slantratio ;
-%    \end{macrocode}
-% We need to set some paramteres for the Font Metric File
-% (\texttt{*.tfm}), so that \TeX{} knows how to typeset the characters
-% of the font. This is pretty straight, as desribed in the \MFbook{}.
-%    \begin{macrocode}
-  font_x_height 8u#                 ; font_quad 12u#+2u#       ;
-  font_normal_space 8u#             ; font_normal_stretch 3u# ; 
-  font_normal_shrink 2u#            ; font_extra_space 2u#    ; 
-  font_coding_scheme:="TeX text"    ; font_size 18u#        ;
-%    \end{macrocode}
-% Next we assigns some variables we need later on, defines the
-% \emph{un\/}sharped (mode dependent) units, declares some variables
-% for later use, and call the macro \texttt{do\_pens} to save the pens
-% needed by the font.
-%    \begin{macrocode}
-  spanish_shriek:=hex"3C"           ; spanish_query:=hex"3E";
-  define_pixels(u,x_h,x_w,m_w,l_h,p_d,A_w,M_w,c_d,C_d,a_h);
-  define_blacker_pixels(p_t,P_t,P_T);
-  picture e_pic, a_pic ;
-  do_pens ;
-%    \end{macrocode}
-% The definitions of \texttt{extra\_beginchar} and 
-% \texttt{extra\_endchar} is responsible for the extra stem width
-% of the font. Since this font is pretty uniform in width, we 
-% can easily do this globally. I got the trick from \texttt{cmbase},
-% where you instead use \texttt{adjust\_fit} after \texttt{beginchar}.
-% However, for the above reasons, and because it lessens the source
-% programs considerably, I chose to do it this way.
-%
-% The inclusion of the assignement
-% \begin{verbatim}
-%   charcode := charcode + code_offset ;
-% \end{verbatim}
-% is for the small caps font, so that characters may be placed at
-% non--standard positions in the font. When we are not making a small
-% caps font, \texttt{code\_offset} should ofcourse be set to 0 (zero).
-%    \begin{macrocode}
-  extra_beginchar := extra_beginchar&"fit_font;" ;
-  extra_endchar   := extra_endchar&
-    "end_fit_font;extra_proof_rules;charcode:=charcode+code_offset;" ; 
-  code_offset := 0 ;
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-% 
-% \begin{fontmacro}{do\_pens}
-% This macro is used to set up the pens needed in this font. It is
-% called every time one of the dimensions \texttt{p\_t\#} or
-% \texttt{P\_t\#} is changed, since those are the \texttt{p/P}en
-% \texttt{t/T}hicknesses.
-%
-% Apart from saving a lot of time, as explained in the \MFbook{}, this
-% also garanties, that all pens are transformed correctly when the
-% font shape is \textsl{slanted}.
-%    \begin{macrocode}
-def do_pens =
-  clear_pen_memory ;
-  pickup pencircle scaled P_T slanted slantratio ;
-  UniPencir := savepen ;
-  pickup pencircle scaled p_t slanted slantratio ;
-  unipencir := savepen ;
-  pickup pencircle scaled P_t slanted slantratio ;
-  Unipencir := savepen ; 
-  pickup pensquare scaled P_T slanted slantratio ;
-  UniPensqu := savepen ;
-  pickup pensquare scaled p_t slanted slantratio ;
-  unipensqu := savepen ;
-  pickup pensquare scaled P_t slanted slantratio ;
-  Unipensqu := savepen ; 
-enddef ;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-% \begin{fontmacro}{fit\_font}
-% This is the macro that changes the width of the font. It is
-% derived from \texttt{cmbase}s \texttt{normal\_adjust\_fit}, though
-% used in a slightly different way here. As explained in the \MFbook,
-% this is a very nice macro, since it is essesially an add--on 
-% feature. We still specify the width of character in 
-% \texttt{beginchar}, and \texttt{w} is still this dimension. However,
-% extra space is added to the character at both the left and right,
-% so that characters don't get too close.
-%    \begin{macrocode}
-def fit_font =
-  l := -hround(l_s#*hppp) ; interim xoffset := -l ; 
-  charwd := charwd+l_s#+r_s# ; r := l+hround(charwd*hppp) ; 
-  w := r-hround(r_s#*hppp) ;
-  italcorr charht*slantratio ;
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-% \begin{fontmacro}{end\_fit\_font}
-% Again, this is taken from \texttt{cmbase}, so that extra space is
-% added on the sides of the character.
-%    \begin{macrocode}
-def end_fit_font =
-  w := r+l ;
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-% \begin{fontmacro}{extra\_proof\_rules}
-% When doing proofing, it is nice to have some extra rules on the
-% proofs, so that errors and mistakes are easiler seen. This macro
-% does just that. A verticatal rule is produced at the left and 
-% right edge, and through the middle of the character. Horizontal
-% rules are produced at one quarter, half, and three quarters of the
-% character height. Also, if the charcter extence below the baseline,
-% a rule is produced at one half the depth.
-%    \begin{macrocode}
-def extra_proof_rules =
-  if proofing > 1 :
-    for xa = l,r,w/2: proofrule((xa,-d), (xa,h)) ; endfor ;
-    for ya = 0,h/4,h/2,3h/4,h: proofrule((l,ya), (r,ya)) ; endfor ;
-    if d > 0 :
-      proofrule((l,-d/2), (r,-d/2)) ;
-      proofrule((l,-d), (r,-d)) ;
-    fi
-  fi
-enddef ;
-
-%    \end{macrocode}
-% \end{fontmacro}
-% \begin{fontmacro}{end\_font}
-% \texttt{end\_font} is used at the end of the driver file, to set
-% ligatures, and end of the file. There is nothing fancy here. Do,
-% however, notice no `f' ligatures is defined, as in the Computer
-% Modern Roman. This is because they are not meant to be there, 
-% because `ff' shouldn't come out as `\textunibf{f\kern-.25ex f}', 
-% which looks bad, but rather as `\textunibf{ff}'.
-%
-% Also notice, that we haven't defined any characters \textunibf{``}
-% or \textunibf{''}, since we make these up of two \textunibf{`} or
-% \textunibf{'}. This gives us two more slots we can put other
-% characters into.
-%    \begin{macrocode}
-inner bye;  % so we can use it inside a macro
-def end_font =
-  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 "`" : "`" kern -l_s#-r_s#+p_t# ;
-  ligtable "'" : "'" kern -l_s#-r_s#+p_t# ,
-    "?" kern 2u#, "!" kern 2u# ;
-  ligtable "-"     : "-" =: hex"7B" ;
-  ligtable hex"7B" : "-" =: hex"7C" ;
-  ligtable hex"22" : hex"22" kern -l_s#-r_s# ;
-  ligtable hex"5C" : hex"5C" kern -l_s#-r_s# ;
-  ligtable hex"20" :
-    "l" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ,
-    "L" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ;
-  bye
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-% \begin{fontmacro}{do\_caps}
-% This next macro is for the \textunisc{small caps} version of the
-% font. Most of it is taken from \texttt{csc.mf} of the Computer
-% Modern Font, though not as many dimensions have been redefined in
-% this macro. The idea is to utilize this macro whenever you want to
-% make a small caps version of majuscles. This macro is used in both
-% \texttt{unilow.mf} and \texttt{unilig.mf}.
-%
-% The argument to \texttt{do\_caps} is the number the new characters
-% should be offset from it's original position in the font.
-% 
-% The last \texttt{do\_pens} is needed, since the programs uses saved
-% pens, and we have just redefined the dimensions for the pens.
-%     \begin{macrocode}
-def do_caps(expr offset) =
-  sc_shrink := x_h#/l_h# ;
-  P_t# := sc_shrink*P_t# ; l_h# := sc_shrink*l_h# ;
-  A_w# := sc_shrink*A_w# ; M_w# := sc_shrink*M_w# ;
-  C_d# := sc_shrink*C_d# ;
-  code_offset := offset ;
-  define_pixels(l_h,A_w,M_w,C_d) ;
-  define_blacker_pixels(P_t) ;
-  do_pens ;
-enddef ;
-
-%    \end{macrocode}
-% \end{fontmacro}
-% \begin{fontmacro}{end\_do\_caps}
-% When ever we need to get back to the default setting of dimensions,
-% after the use of \texttt{do\_caps}, we call on this macro to do the
-% job. The idea is to multiply by \texttt{no\_shrink} which is the
-% reciprocal of \texttt{sc\_shrink}.
-%     \begin{macrocode}
-def end_do_caps =
-  no_shrink := 1/sc_shrink ;
-  P_t# := no_shrink*P_t# ; l_h# := no_shrink*l_h# ;
-  A_w# := no_shrink*A_w# ; M_w# := no_shrink*M_w# ;
-  C_d# := no_shrink*C_d# ;
-  code_offset := 0 ;
-  define_pixels(l_h,A_w,M_w,C_d) ;
-  define_blacker_pixels(P_t) ;
-  do_pens ;
-enddef ;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-% \subsubsection{Control macroes}
-%
-% These macroes are designed to ease the control of individual
-% characters.
-%
-% \begin{fontmacro}{no\_adjust}
-% If a character is not supposed to have extra space on either side
-% you can say \texttt{no\_adjust} just before
-% \begin{quote}
-%   \texttt{extra\_beginchar := extra\_beginchar\&"}
-%     \meta{your begin char stuff}\texttt{";}\\
-%   \texttt{extra\_endchar := extra\_endchar\&"}
-%     \meta{your stuff endchar stuff}\texttt{";}\\
-%   \texttt{beginchar(}\meta{usual arguments}\texttt{);}
-% \end{quote}
-% where the two string assigments are optional.
-%    \begin{macrocode}
-def no_adjust=
-  old_begin_adjust := extra_beginchar ;
-  old_end_adjust   := extra_endchar   ;
-  extra_beginchar  := " "             ;
-  extra_endchar    :=
-  "extra_proof_rules;charcode:=charcode+code_offset" ; 
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-% \begin{fontmacro}{restore\_adjust}
-% Use this command to restore automaticly adding extra space around
-% the characters. Must be used between a \texttt{endchar} and 
-% \texttt{beginchar}.
-%    \begin{macrocode}
-def restore_adjust=
-  extra_beginchar  := old_begin_adjust   ;
-  extra_endchar    := old_end_adjust     ;
-enddef;
-string old_begin_adjust, old_end_adjust ;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-% \subsubsection{Drawing macroes}
-%
-% I have made this macros for drawing, to ease up the writing of 
-% source programs. They all simulate a pen of breadth \textit{thick}
-% always moving perpendecular to the current path. This is needed
-% in the \universal{} font, since all pen breadths are supposed
-% to be equal anywhere (at least within a paricular `group'), in any
-% direction.  
-%
-% All of the macros heavely use \texttt{penpos}, so the use
-% is pretty reliant on the appropiate use of this macro. This
-% put some restrictions on the arguments, since \texttt{penpos}
-% deals with angles of all sorts.
-%
-% In the macroes, we use vectors with number $m$, as assigened in the
-% last argument of the macros. $m$ should be assigend so that the
-% vectors $m,m+1,\ldots,m+4$ does not conflict with already assigned
-% vectors, or vectors to be assigend in the current picture.
-%
-% Though it may seem a somewhat \textit{ad hoc} solution, it is the
-% best way I could think of. Ofcourse I could check to see what
-% vectors are defined, and then use some others, but that would
-% complicate the code unessecary, and since the idea is to hide the
-% actual vector operations in the macros, I descided to use the
-% course. 
-%
-% (No labels are produced on the proofsheets by this macroes,
-% since they use very  high numbers, which is rather destracting.)
-%
-% \begin{fontmacro}{unicir}
-% Draws a circle of outer radius \texttt{rad}, and centered at 
-% \texttt{center}, which shoud be a pair. Notice, no effort is
-% made to keep the circle within the character, so the use of
-% this macro, should be governed with some caution.
-%
-% The second argument is the \emph{thickness} of the pen drawing the
-% segment.
-%
-% The last argument \texttt{m} is to insure the uniqueness of
-% all pairs. That is, if you need more then one circle in a letter,
-% then \texttt{m} should take different values for each circle, so that
-% $m_{i}-m_{i+1}>4$. Also \texttt{m} should not take any value
-% corrosponing to vectors already defined. This is most easily done if
-% \texttt{m} is asigned a large value, like say a multipla of 10, or
-% even 100. 
-%    \begin{macrocode}
-def unicir(expr rad, thick, center, m)=
-  pickup pensquare scaled thick;
-  top z[m]   = (0,rad)  + center ; penpos[m](thick,90) ;
-  lft z[m+1] = (-rad,0) + center ; penpos[m+1](thick,180) ;
-  bot z[m+2] = (0,-rad) + center ; penpos[m+2](thick,270) ;
-  rt  z[m+3] = (rad,0)  + center ; penpos[m+3](thick,0) ;
-  penstroke z[m]e{left}..z[m+1]e{down}..
-    z[m+2]e{right}..z[m+3]e{up}..cycle ; 
-  penlabels(range m thru m+3);
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-% \begin{fontmacro}{uniarc}
-% Produce a segment of a circle, with radius \texttt{rad}, and
-% centered at \texttt{center}.
-%
-% The size of the segment is determind by the arguments
-% \texttt{ang\_a} and \texttt{ang\_b}, consider as angles from a
-% horizontal linesegment from \texttt{center} traveling right. That
-% means you should specify the angles in at counter--clockwise way,
-% and between -360 and 360. \texttt{ang\_b} \emph{must} be bigger then
-% \texttt{ang\_a}, otherwise the output is totally unpredictiable.
-%
-% The second argument is the \emph{thickness} of the pen drawing the
-% segment, Again the last argument \texttt{m} is to insure the
-% uniqueness of the vectors. The comments above on the argument also
-% applies here. 
-%    \begin{macrocode}
-def uniarc(expr rad, thick, center, ang_a, ang_b, m)=
-  pickup pensquare scaled thick ;
-  path arc.l, arc.r, arc.e ; n:=m ; ang_c := abs(ang_b-ang_a) ;
-%    \end{macrocode}
-% First we check to see, if the user somehow requested an arc of more
-% then $360^\circ$. If so, we just call \texttt{unicir}, since this is
-% properly intended. If not, we go on to define relevant vectors.
-%    \begin{macrocode}
-  if ang_c >= 360 :
-    unicir(rad,center,n) ;
-  else:
-%    \end{macrocode}
-% We acctualy define the vectors as if we started in the arc on the
-% positiv $x$--axis, considering \texttt{center} as origo, an then
-% latter on turn the arc the appropiate angle. Notice the heavy use of
-% \texttt{penpos} and \texttt{[ ]} to evaluate variable \texttt{m}.
-%    \begin{macrocode}
-    top z[n] = (0,rad) + center ; penpos[n](thick,90) ;
-    arc.r := z[n]r{left} ;
-    arc.l := z[n]l{left} ;
-%    \end{macrocode}
-% The next \texttt{if...fi} loop ensures we don't define a
-% whole lot of useless vectors. The \MF{} primitiv path macro
-% \texttt{...} does a very good job at approching a segment of a
-% circle even if only two points are defined in an interval of
-% $90^\circ$, if we at the same time utilizes the direction mechanisme
-% of \MF{}.
-%    \begin{macrocode}
-    if ang_c > 90 :
-      n := n+1 ; lft z[n] = (-rad,0) + center ; penpos[n](thick,180) ;
-      arc.r := arc.r&z[n-1]r..z[n]r{down} ; 
-      arc.l := arc.l&z[n-1]l..z[n]l{down} ;
-      if ang_c > 180 : 
-	n := n+1 ; bot z[n] = (0,-rad) + center ; penpos[n](thick,270) ;
-	arc.r := arc.r&z[n-1]r..z[n]r{right} ;
-	arc.l := arc.l&z[n-1]l..z[n]l{right} ;
-	if ang_c > 270 :
-	  n := n+1 ; rt  z[n] = (rad,0) + center ; penpos[n](thick,0) ;
-	  arc.r := arc.r&z[n-1]r..z[n]r{up} ;
-	  arc.l := arc.l&z[n-1]l..z[n]l{up} ;
-	fi ;
-      fi ;
-    fi ;
-%    \end{macrocode}
-% After the \texttt{if} loop, we define the final point, make the
-% complete path, and finishes off by drawing the arc, turned the
-% appropiate angle.
-%    \begin{macrocode}
-    n:=n+1 ; z[n] = z[m] rotatedabout(center,ang_c) ;
-    penpos[n](thick,90+ang_c) ;
-    arc.r := arc.r&z[n-1]r..z[n]r{dir(180+ang_c)} ; 
-    arc.l := arc.l&z[n-1]l..z[n]l{dir(180+ang_c)} ;
-    arc.e := arc.l--reverse arc.r--cycle; 
-    fill (arc.e rotatedabout(center,-90+ang_a));
-  fi;
-  penlabels(range m thru n);
-enddef;
-
-%    \end{macrocode}
-% Notice the use of two paths, and reversal of one. This is 
-% essentially what the \texttt{plain.mf} macro \texttt{penstroke}
-% does. However, that macro couldn't be used here, since we are 
-% building a path on the fly, so every step is needed to be fully
-% known, and \texttt{penstroke} makes new variables to do the job.
-%
-% Also, we use the integer \texttt{n} for surfixes, since this
-% limits the creation of vectors, and eases the path building.
-% \end{fontmacro}
-%
-% \begin{fontmacro}{uniend}
-% This macro is somewhat similar to \texttt{uniarc} above, but has a
-% different use. Where \texttt{uniarc} is intended for arcs with a
-% radius bigger then the pen thickness, this macro is intended for
-% arcs with a radius of exactly same size as the pen thickness, hence 
-% this macro produces a \emph{filled} segment of a circle with a
-% radius of the current pen thickness.
-%
-% This macro, like \texttt{uniarc}, takes 5 arguments: the radius of
-% the arc; the center of the arc, which should be of type
-% \texttt{pair}; the starting and ending angle; plus the first number
-% of the vectors needed to draw this figure. The considerations above
-% in \texttt{uniarc} conserning the angles also apply here.
-%
-% Notice once again the use of \texttt{if..fi} loops to define the
-% relevant vectors and paths.
-%    \begin{macrocode}
-def uniend(expr rad, center, ang_a, ang_b, m)=
-  path arc ; n:=m ; ang_c := abs(ang_b-ang_a) ;
-  if ang_c >= 360 :
-    Rad := 2*rad ;
-    pickup pencircle scaled Rad ; z[n]=center ; drawdot z[n] ;
-  else:
-    z[n] = (0,rad) + center ; arc := center{up}--z[n]{left} ;
-    if ang_c > 90 :
-      n := n+1 ; z[n] = (-rad,0) + center ;
-      arc := arc&z[n-1]..z[n]{down} ;
-      if ang_c > 180 :
-	n := n+1 ; z[n] = (0,-rad) + center ;
-	arc := arc&z[n-1]..z[n]{right} ;
-	if ang_c > 270 :
-	  n := n+1 ; z[n] = (rad,0) + center ;
-	  arc := arc&z[n-1]..z[n]{up} ;
-	fi ;
-      fi ;
-    fi ;
-    n := n+1 ; z[n] = z[m] rotatedabout(center,ang_c) ;
-    arc := arc&z[n-1]..z[n]{dir(180+ang_c)}--cycle ;
-    fill (arc rotatedabout(center,-90+ang_a));
-  fi;
-  penlabels(range m thru n);
-enddef;
-
-%    \end{macrocode}
-% Notice, once more we are building a path on the fly, so some caution
-% was used here. Again the \texttt{plain.mf} macro \texttt{penstroke}
-% doesn't do the job here. This is because only a part of a stroke is
-% actually wanted. You might think then, that the  \texttt{plain.mf}
-% macro \texttt{cutoff} then would do the job, but in my experience
-% that macro has some serious flaws\footnote{A quick use of the Unix
-%   command \texttt{grep} on most of the Computer Modern Fonts reveals
-%   that \texttt{cutoff} is \emph{never} used, which I take to
-%   indicate its weakness.}. 
-% \end{fontmacro}
-%
-% \begin{fontmacro}{unilne}
-% This macro is intended for drawing non--vertical or horizontal
-% lines, since this is easily done with \texttt{draw}. It takes
-% six arguments, the thickness of the pen drawing the line, the
-% starting point of the line (\texttt{start}),  the ending point of
-% line (\texttt{stop}), which should be higher and more to the right
-% then the starting point, and  the cutoff--style
-% (\texttt{endcutstart, endcutstop}).
-
-% If \texttt{endcut}$x$ is positiv, then, the line is cut off
-% horizontally at the relevant point $x$.
-%
-% If \texttt{endcut}$x$  is negativ, then, the line is cut off
-% vertically at $x$.
-%
-% If it is zero,  then the  line is cut off perpendicular to the slant
-% of the line at $x$.
-%
-% Also, if \texttt{endcut}$x$ is zero, the starting point is the
-% point corrosponding to the lowest height and leftmost width, and the
-% ending point corrosponds to the heighest height and rightmost width
-% of the line. Again \texttt{m} insures unique vectors. 
-%    \begin{macrocode}
-def unilne(expr thick, start, stop, endcutstart, endcutstop, m)=
-  pickup pensquare scaled thick;
-  if endcutstart = endcutstop :
-    if endcutstart = 0 :
-      lft bot z[m] = start ; rt top z[m+1] = stop ;
-      ang_c := angle(z[m+1]-z[m]) ;
-      penpos[m](thick,-90+ang_c)  ;
-      penpos[m+1](thick,-90+ang_c) ;
-    elseif endcutstart > 0 :
-      lft     z[m] = start ; rt     z[m+1] = stop ;
-      ang_c := angle(z[m+1]-z[m]) ;
-      penpos[m](thick/sind(ang_c),0) ;
-      penpos[m+1](thick/sind(ang_c),0)  ;
-    elseif endcutstart < 0:
-      bot     z[m] = start ; top    z[m+1] = stop ;
-      ang_c := angle(z[m+1]-z[m]) ;
-      penpos[m](thick/cosd(ang_c),90) ;
-      penpos[m+1](thick/cosd(ang_c),90) ;
-    fi;
-    penstroke z[m]e--z[m+1]e ;
-  else :
-    message "Different endcuts on unilne not implemented yet.";
-  fi;
-  n := m + 1 ;
-  penlabels(range m thru n);
-enddef;
-
-%    \end{macrocode}
-% \end{fontmacro}
-%
-%\iffalse
-%</unibase>
-%\fi
-%
-%\iffalse
-%<*low>
-%\fi
-% \subsection{The Minuscles (lowercase letters) --- \texttt{unilow.mf}}
-% \file{unilow.mf}
-%
-% \Newestchanges{v2.0}{98/08/01}{All of \texttt{unilow.mf} is defined
-% within a conditional, to ease the generation of the small caps
-% shaped fonts.}
-% This whole file is loaded only conditionally to make the generation
-% of small caps font easier. 
-%    \begin{macrocode}
-if not caps :
-
-%    \end{macrocode}  
-% \begin{fontcode}{a}
-% The letter \textunibf{a} is interresting in the sense, that the bottom
-% part of the curve, is \emph{not} a segement of an arc. The exact
-% curvature of this part, is controversial; some font designers have
-% chosen to make it a segement of an arc, making all of the curve, a
-% circle; while others have chosen to make it a straight line. I
-% decided to take the middleroad, since it appeals more to me
-% aestheticly, even though it deviates from the principle of building
-% all characters from the two simple forms: the cirle and the line.
-%
-% The \textuni{a} is also saved in the picture variable
-% \texttt{a\_pic}, for use in \texttt{unilig.mf}.
-%    \begin{macrocode}
-  beginchar("a",x_w#,x_h#,0); "The letter a";
-    uniarc(w/2,p_t,(w/2,h/2),0,290,10);
-    pickup unipensqu ;
-    z1 = ((cosd(290)*(w-p_t)+w)/2,(sind(290)*(w-p_t)+w)/2); 
-    z2 = (w-p_t/2,2h/5) ; penpos1(p_t,-70); penpos2(p_t,-45);
-    fill z1l{dir(20)}..z2l{dir(45)}--
-      z2r{dir(225)}..z1r{dir(200)}--cycle;
-    top rt z3 = (w,.5h) ; bot rt z4 = (w,0) ; draw z3{down}--z4 ;
-    penlabels(1,2,3,4);
-    a_pic := currentpicture ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{b}
-% There is not much to say about this letter, only that it is a
-% \textunibf{d} reflected through the vertical center axis.
-%    \begin{macrocode}
-  beginchar("b",x_w#,l_h#,0); "The letter b";
-    unicir(w/2,p_t,(w/2,w/2),10); 
-    pickup unipensqu ;
-    lft bot z1 = (0,w/2) ; lft top z2 = (0,h) ; draw z1{up}--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{c}
-% This is a rather short program, but is interresting, since some care
-% has to be taken, when assigning the width. Since a \textunibf{c} is not
-% a full cirle, but only a segment opening towards the right, it would
-% look wrong, if the letter was as wide, as it is tall.
-%    \begin{macrocode}
-  beginchar("c",x_w#*(1+cosd(30))/2,x_h#,0); "The letter c";
-    uniarc(h/2,p_t,(h/2,h/2),30,330,10);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{d}
-% A flipped \textunibf{b} --- that's it!
-%    \begin{macrocode}
-  beginchar("d",x_w#,l_h#,0); "The letter d";
-    unicir(w/2,p_t,(w/2,w/2),10); 
-    pickup unipensqu ;
-    rt bot z1 = (w,w/2) ; rt top z2 = (w,h) ; draw z1{up}--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{e}
-% Notice the middle bar. The arc can not go all the way down to the
-% bar, because then the \textunibf{e} would end in a arc, on the right
-% side. We want a flat end, so an extra dot has to be made.
-%
-% The \textuni{e} is also saved in the picture variable
-% \texttt{e\_pic}, for use in \texttt{unilig.mf}.
-%    \begin{macrocode}
-  beginchar("e",x_w#,x_h#,0); "The letter e";
-    uniarc(w/2,p_t,(w/2,h/2),0,330,10);
-    temp := p_t/2 ;
-    pickup pensquare xscaled p_t yscaled temp slanted slantratio ;
-    top rt z1 = (w,h/2) ; drawdot z1 ;
-    pickup unipensqu ;
-    z2 = (p_t,h/2) ; z3 = (w-p_t,h/2) ; draw z2--z3 ;
-    penlabels(1,2,3);
-    e_pic := currentpicture ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{f}
-% The horizontal placement of the bar is somewhat controversial. I
-% think it looks best if it is placed, so that the top of the bar, is
-% at the same height, as the top of an \textunibf{x}, that is $1ex$.
-%    \begin{macrocode}
-  beginchar("f",4p_t#,l_h#,0); "The letter f";
-    uniarc(3/4w,p_t,(3/4w,h-3/4w),90,180,10);
-    pickup unipensqu ;
-    top rt z1 = (w,h) ; drawdot z1 ;
-    lft top z2 = (0,h-3/4w) ; bot lft z3 = (0,0)   ; draw z2--z3 ;
-    top lft z4 = (0,x_h)    ; top rt  z5 = (w,x_h) ; draw z4--z5 ;
-    penlabels(1,2,3,4,5);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{g}
-% The \textunibf{g} is a very good measure of how low ascenders should
-% go. Some might want to add a square on top of the ascender, so that
-% the letter ended in flat to the right, but I found it displeacing,
-% and therefore left it out.
-%    \begin{macrocode}
-  beginchar("g",x_w#,x_h#,p_d#); "The letter g" ;
-    uniarc(w/2,p_t,(w/2,h/2),30,360,10) ;
-    pickup unipensqu ;
-    top rt z1 = (w,h/2) ; bot rt z2 = (w,-d) ; draw z1--z2;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{h}
-% It can be argued, that this letter is too wide. However, I decieded
-% to weight the concept of homongeious circles higher in this case.
-%    \begin{macrocode}
-  beginchar("h",x_w#,l_h#,0); "The letter h" ;
-    uniarc(w/2,p_t,(w/2,w/2),0,180,10) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h)       ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    top rt  z3 = (w,x_h-w/2) ; bot rt  z4 = (w,0) ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{i}
-% Quite a simple letter, though it can be argued wether the dot should
-% be square, or as here circular.
-%    \begin{macrocode}
-  beginchar("i",p_t#,l_h#,0) ; "The letter i" ;
-    pickup unipensqu ;
-    top lft z1 = (0,x_h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    pickup unipencir ;
-    top lft z3 = (0,h) ; drawdot z3 ;
-    penlabels(1,2,3) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{j}
-% No left stem is added at the bottom, since it isn't needed!
-%    \begin{macrocode}
-  beginchar("j",p_t#,l_h#,p_d#); "The letter j" ;
-    pickup unipensqu ;
-    top lft z1 = (0,x_h) ; bot lft z2 = (0,-d) ; draw z1--z2 ;
-    pickup unipencir ;
-    top lft z3 = (0,h) ; drawdot z3 ;
-    penlabels(1,2,3) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{k}
-% Again, this letter is narrower then most of the letters. This is
-% because, the to arcs isn't full halfarcs, but rather quarterarcs.
-%    \begin{macrocode}
-  beginchar("k",(x_h#+3p_t#)/2,x_h#,0) ; "The letter k" ;
-    uniarc((h+p_t)/2,p_t,(p_t,h),270,360,10) ;
-    uniarc((h+p_t)/2,p_t,(p_t,0),0,90,20) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{l}
-% What is a line, but a line! Well right now it is an `l'. You may
-% wonder why no stems are added, to destingish an `l' from a vertical
-% bar, as in math mode. Well, how often will you put a math vertical
-% bar next to an text `l'.
-%    \begin{macrocode}
-  beginchar("l",p_t#,l_h#,0) ; "The letter l" ;
-    pickup unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{m}
-% This proved more tricky then I thought. Originally, I wanted the arc
-% of the \textunibf{n} to be as high as those of the \textunibf{m}. This
-% meant, that either the \textunibf{n} should be very narrow, or the
-% \textunibf{m} very wide; either way it wouldn't look good. So after a
-% few experiments, I decided for the current form.
-%    \begin{macrocode}
-  beginchar("m",m_w#,x_h#,0) ; "The letter m" ;
-    temp := .25*(w+p_t);
-    uniarc(temp,p_t,(temp,h-temp),0,180,10) ;
-    uniarc(temp,p_t,(w-temp,h-temp),0,180,20) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h-temp)   ; bot lft z2 = (0,0)   ; draw z1--z2 ;
-    top     z3 = (w/2,h-temp) ; bot     z4 = (w/2,0) ; draw z3--z4 ;
-    top rt z5 = (w,h-temp)    ; bot rt  z6 = (w,0)   ; draw z5--z6 ;
-    penlabels(1,2,3,4,5,6);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{n}
-% Tricky because of the \textunibf{m} (see above).
-%    \begin{macrocode}
-  beginchar("n",x_w#,x_h#,0); "The letter n" ;
-    uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,0) ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{o}
-% Well, this is just a circle, nothing fancy. Why not make it oval,
-% you say. I say, listen --- Herbert Bayer just turned in his grave!
-%    \begin{macrocode}
-  beginchar("o",x_w#,x_h#,0) ; "The letter o";
-    unicir(w/2,p_t,(w/2,h/2),10);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{p}
-% Try to flip the \textunibf{b} horizontally, and tell me what you get?
-%    \begin{macrocode}
-  beginchar("p",x_w#,x_h#,p_d#) ; "The letter p" ;
-    unicir(w/2,p_t,(w/2,w/2),10); 
-    pickup unipensqu ;
-    lft top z1 = (0,h/2) ; lft bot z2 = (0,-d) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{q}
-% Why not try to destingish the \textunibf{q} more from the \textunibf{g}?
-% Well if you look at the two letters, I think, you will get the
-% answer. Also, my intuition of a \textunibf{q} is that of a reflected
-% \textunibf{p}, but that is just \emph{my} intuition!
-%    \begin{macrocode}
-  beginchar("q",x_w#,x_h#,p_d#) ; "The letter q" ;
-    unicir(w/2,p_t,(w/2,w/2),10); 
-    pickup unipensqu ;
-    rt top z1 = (w,h/2) ; rt bot z2 = (w,-d) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{r}
-% Well that is really simplle, but illustrates a fine point --- why
-% use more strokes, when fewer is needed?
-%    \begin{macrocode}
-  beginchar("r",3p_t#,x_h#,0) ; "The letter r" ;
-    uniarc(w,p_t,(w,h-w),90,180,10) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h-w) ; bot lft z2 = (0,0) ; draw z1--z2;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{s}
-% \Newestchanges{v2.0}{98/08/01}{Considerable simplifications.}
-% This is a `slow' letter, i.e.\ it takes \MF{} quite some time to
-% compute. The reason is simple --- a \emph{lot} of curves is drawn.
-%    \begin{macrocode}
-  beginchar("s",x_w#,x_h#,0) ; "The letter s" ;
-    temp := (h+p_t)/4 ;
-    uniarc(temp,p_t,(temp,temp),180,270,10) ;
-    uniarc(temp,p_t,(w-temp,temp),270,450,20) ;
-    uniarc(temp,p_t,(temp,h-temp),90,270,30) ;
-    uniarc(temp,p_t,(w-temp,h-temp),0,90,40) ;
-    pickup unipensqu ;
-    bot lft z1 = (temp,0)   ; bot rt z2 = (w-temp,0)   ; draw z1--z2 ;
-    lft     z3 = (temp,h/2) ; rt     z4 = (w-temp,h/2) ; draw z3--z4 ;
-    top lft z5 = (temp,h)   ; top rt z6 = (w-temp,h)   ; draw z5--z6 ; 
-    penlabels(1,2,3,4,5,6) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{t}
-% As I argued before, the placement of the bar in the \textunibf{f} and
-% \textunibf{t} is controversial.
-%    \begin{macrocode}
-  beginchar("t",p_t#+2c_d#,l_h#,0); "The letter t" ;
-    pickup unipensqu ;
-    top     z1 =  (w/2,h) ; bot    z2 = (w/2,0) ; draw z1--z2 ;
-    top lft z3 = (0,x_h)  ; top rt z4 = (w,x_h) ; draw z3--z4 ;
-    penlabels(1,2,3,4);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{u}
-% Flip a letter here, and flip a letter there --- all in a days work
-% of a font designer!
-%    \begin{macrocode}
-  beginchar("u",x_w#,x_h#,0); "The letter u" ;
-    uniarc(w/2,p_t,(w/2,w/2),180,360,10) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
-    top rt  z3 = (w,h) ; bot rt  z4 = (w,w/2) ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{v}
-% The lines and the arc doesn't intersect in a flowing way, but the
-% error is so small it will not be seen in normal use. However, if
-% the font is maginified to, say $70pt$, it might be a problem. I
-% hope to get into this, some time in the future. For now, make  do.
-%    \begin{macrocode}
-  beginchar("v",x_w#,x_h#,0); "The letter v" ;
-    unilne(p_t,(0,h),(w/2,p_t),1,1,10);
-    unilne(p_t,(w/2,p_t),(w,h),1,1,20);
-    uniarc(p_t,p_t,(w/2,p_t),180,360,30);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{w}
-% Flippedy--flop.
-%    \begin{macrocode}
-  beginchar("w",m_w#,x_h#,0) ; "The letter w" ;
-    temp := .25*(w+p_t);
-    uniarc(temp,p_t,(temp,temp),180,360,10) ;
-    uniarc(temp,p_t,(w-temp,temp),180,360,20) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h)   ; bot lft z2 = (0,temp)   ; draw z1--z2 ;
-    top     z3 = (w/2,h) ; bot     z4 = (w/2,temp) ; draw z3--z4 ;
-    top rt  z5 = (w,h)   ; bot rt  z6 = (w,temp)   ; draw z5--z6 ;
-    penlabels(1,2,3,4,5,6);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{x}
-% This is a bit tricky --- the two arces are each half the width wide,
-% but since they share middle part, they leave the width of the
-% strokes uncoverd. To remedy this problem, four dots are drawn. It
-% would be silly, if the \textunibf{x} wasn't as wide as it is tall,
-% namely \texttt{x\_w}.
-%    \begin{macrocode}
-  beginchar("x",x_w#,x_h#,0) ; "The letter x" ;
-    uniarc(h/2,p_t,(p_t/2,h/2),270,90,10);
-    uniarc(h/2,p_t,(w-p_t/2,h/2),90,270,20);
-    temp := (w-h+p_t)/2 ;
-    pickup pensquare xscaled temp yscaled p_t slanted slantratio ;
-    lft top z1 = (0,h) ; drawdot z1 ;
-    lft bot z2 = (0,0) ; drawdot z2 ;
-    rt  top z3 = (w,h) ; drawdot z3 ;
-    rt  bot z4 = (w,0) ; drawdot z4 ;
-    penlabels(1,2,3,4);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{y}
-% Flip an reflect, or just turn, it's all the same, it will still be a
-% transformation of an \textunibf{h}
-%    \begin{macrocode}
-  beginchar("y",x_w#,x_h#,p_d#); "The letter y" ;
-    uniarc(w/2,p_t,(w/2,w/2),180,360,10) ;
-    pickup unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,w/2); draw z1--z2 ;
-    top  rt z3 = (w,h) ; bot rt  z4 = (w,-d) ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{z}
-% This is a bit tricky letter, since what I wanted was for middle line
-% to have an inclination such that its edges would be tangents to the
-% circle segments at the endpoints of the horizontal lines. I tried to
-% solve this problem analytically, but gave up. I also tried to use
-% some of \texttt{plain.mf}'s macros, but none of them gave me the
-% resulat I wanted. So I finally made the approximation seen below. 
-% If you can come up with a good solution to this problem, please let
-% me know. 
-%    \begin{macrocode}
-  beginchar("z",x_w#,x_h#,0) ; "The letter z" ;
-    pickup unipensqu ;
-    top lft z1 = (0,h)   ; top rt z2 = (w-p_t,h) ; draw z1--z2 ;
-    bot lft z3 = (p_t,0) ; bot rt z4 = (w,0)     ; draw z3--z4 ;
-    phi := angle((w,h-p_t)-(0,p_t)) ; % Uuuuupps !?!!!!!!
-    z5 = (p_t,p_t)     ; z6 = z5 + p_t*(-sind(phi),cosd(phi)) ;
-    z7 = (w-p_t,h-p_t) ; z8 = z7 + p_t*(sind(phi),-cosd(phi)) ;
-    uniend(p_t,z5,90+phi,270,10);
-    uniend(p_t,z7,-90+phi,90,20);
-    fill z5--z6--z7--z8--cycle ;
-    penlabels(range 1 thru 8);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% As explain in the begining of the section, this file is one big
-% \texttt{if...else...fi} loop to mak the generation of the small caps
-% font easier.
-%
-% The idea is, that if \texttt{caps} is
-% \texttt{true}, then the main part of this file shouldn't be used,
-% but rather \texttt{uniupp.mf} should be loaded again, but with
-% different diffintions of dimensions for uppercase letters, so that
-% they come out as small as lowercase letters, hence --- small
-% caps.
-% 
-% This is done by the macro \texttt{do\_caps}, which we utilies
-% inside a group, so that the changes made by \texttt{do\_caps} will be
-% undone after the group, and hence not affect the rest of the font.
-% 
-%    \begin{macrocode}
-else :
-  do_caps(ASCII"a" - ASCII"A") ;
-  input uniupp ;
-  end_do_caps ;
-fi ;
-
-%    \end{macrocode}
-%\iffalse
-%</low>
-%\fi
-%\iffalse
-%<*upp>
-%\fi
-% \subsection{The Majuscles (uppercase letters) --- \texttt{uniupp.mf}}
-% \file{uniupp.mf}
-%
-% As noted earlier, Herbert Bayer never did design any majuscles,
-% since he considered them useless. However, majuscles are avaliable
-% in the current implentation and are to be used at your lesuire. Of
-% course, if you agree with the Bauhaus school, and think uppercase
-% letters are useless, you shouldn't use them. Then, perhaps, you
-% should also refrain from using non--standard letters shuch as German
-% double s, Scandinavian ligatures, Spanish schriek, and perhaps even
-% accents of any kind. This may seem a little drastic, but the
-% train--of--tought should be clear: Why use letters and symbols that
-% are in the best case obsolete, and in the worst useless or without
-% significans?  
-%
-% \Newestchanges{v2.0}{98/08/01}{All of \texttt{unilow.mf} is defined
-% within a conditional, to ease the generation of the strict shaped
-% fonts.}
-%
-% To facilitate a use of the \universal{} font conforming to Bayers'
-% original idea, that is without majusceles this file is loaded only
-% under the condition that \texttt{strict} is \emph{false}.
-%    \begin{macrocode}
-if not strict :
-
-%    \end{macrocode}  
-% \begin{fontcode}{A}
-% It can be argued where the bar should be placed. I choose place it
-% the middle, since most of the majuscles tend to have a symmetry axis
-% long this line, so I thought it apropiate to follow this line of
-% thought. Ofcourse, I'm the only one to blane for this, since Herbert
-% Bayer \emph{never} designed any majuscles! (So flame me for
-% guessing).
-%    \begin{macrocode}
-  beginchar("A",A_w#,l_h#,0); "The letter A";
-    uniarc(w/2,P_t,(w/2,h-w/2),0,180,10);
-    pickup Unipensqu ;
-    top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0)   ; draw z1--z2 ;
-    top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,0)   ; draw z3--z4 ;
-    lft z5     = (0,h/2)   ; rt      z6 = (w,h/2) ; draw z5--z6 ;
-    penlabels(1,2,3,4,5,6);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{B}
-% This letter is somewhat tricky, since it is not clear wether the
-% arces should be placed directly on the left down stoke, or there
-% should be some distance filled with horizontal bars. I chose the
-% second solution, even though it isn't the most simple, and hence in
-% better  agrement with the concept of this font design. However, the
-% first solution does make the letter very narrow compared with some
-% of the other letters.
-%    \begin{macrocode}
-  beginchar("B",A_w#,l_h#,0) ; "The letter B" ;
-    rad := 1/4(h+P_t) ;
-    uniarc(rad,P_t,(w-rad,h-rad),-90,90,10) ;
-    uniarc(rad,P_t,(w-rad,rad),-90,90,20) ;
-    uniend(P_t,(P_t,h-P_t),90,180,30) ;
-    uniend(P_t,(P_t,P_t),180,270,40) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h-P_t) ; bot lft z2 = (0,P_t)      ; draw z1--z2 ;
-    top lft z3 = (P_t,h)   ; top rt  z4 = (w-rad,h)    ; draw z3--z4 ;
-    lft     z5 = (P_t,h/2) ; rt      z6 = (w-rad,1/2h) ; draw z5--z6 ;
-    bot lft z7 = (P_t,0)   ; bot rt  z8 = (w-rad,0)    ; draw z7--z8 ;
-    penlabels(range 1 thru 8);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{C}
-% This is really simple, since it is just an enlargement of the
-% corresponding minuscule, so the is really nothing interresting
-% here. 
-%    \begin{macrocode}
-  beginchar("C",l_h#*(1+cosd(30))/2,l_h#,0); "The letter C";
-    uniarc(h/2,P_t,(h/2,h/2),30,330,10);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{D}
-% As with the B, there are two ways to do this letter: One way would
-% be to make the arc a true half segment of a circle, the other would
-% be to compose it of two quarter segments, joined by a vertical
-% line. The second solution also entails, that two horizontal lines
-% should connect the two quarter circles with the left vertical
-% line. Again I chose the simple solution, which --- ofcourse ---
-% amounts to the first mentioned above.
-%    \begin{macrocode}
-  beginchar("D",A_w#,l_h#,0); "The letter D";
-    uniarc(1/2h,P_t,(w-1/2h,1/2h),-90,90,10);
-    uniend(P_t,(P_t,h-P_t),90,180,20);
-    uniend(P_t,(P_t,P_t),180,270,30);
-    pickup Unipensqu ;
-    top lft z1 = (0,h-P_t) ; bot lft z2 = (0,P_t)    ; draw z1--z2 ;
-    top lft z3 = (P_t,h)   ; top rt  z4 = (w-1/2h,h) ; draw z3--z4 ;
-    bot lft z5 = (P_t,0)   ; bot rt  z6 = (w-1/2h,0) ; draw z5--z6 ;
-    penlabels(1,2) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{E}
-% It can be argued, that the middle bar should be shorter then the top
-% and bottom bar, but since this only complicates things, I chose not
-% to do so. However, I am not going to be stuborn on this, and it may
-% well prove to be better aestethics, if the middle bar is shortend.
-%    \begin{macrocode}
-  beginchar("E",A_w#,l_h#,0); "The letter E" ;
-    uniend(P_t,(P_t,h-P_t),90,180,10);
-    uniend(P_t,(P_t,P_t),180,270,20);
-    pickup Unipensqu ;
-    lft top z1 = (P_t,h)   ; rt  top z2 = (w,h)   ; draw z1--z2 ;
-    lft     z3 = (P_t,h/2) ; rt      z4 = (w,h/2) ; draw z3--z4 ;
-    lft bot z5 = (P_t,0)   ; rt  bot z6 = (w,0)   ; draw z5--z6 ;
-    lft top z7 = (0,h-P_t) ; lft bot z8 = (0,P_t) ; draw z7--z8 ;
-    penlabels(range 1 thru 8) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{F}
-% Ofcourse, very similar to the \textunibf{E}. The consideration
-% concerning the middle bar of the \textunibf{E} will ofcourse reflect
-% on this letter. 
-%    \begin{macrocode}
-  beginchar("F",A_w#,l_h#,0); "The letter F" ;
-    uniend(P_t,(P_t,h-P_t),90,180,10);
-    pickup Unipensqu ;
-    lft top z1 = (P_t,h)   ; rt  top z2 = (w,h)   ; draw z1--z2 ;
-    lft     z3 = (P_t,h/2) ; rt      z4 = (w,h/2) ; draw z3--z4 ;
-    lft top z5 = (0,h-P_t) ; lft bot z6 = (0,0)   ; draw z5--z6 ;
-    penlabels(range 1 thru 8);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{G}
-% This is very similar to the minuscle \textunibf{g}, the only difference
-% is the size, and that the down stroke doens't extend below the
-% baseline.
-%    \begin{macrocode}
-  beginchar("G",l_h#,l_h#,0); "The letter G" ;
-    uniarc(w/2,P_t,(w/2,h/2),30,360,10) ;
-    pickup Unipensqu ;
-    top rt z1 = (w,h/2) ; bot rt z2 = (w,0) ;
-    draw z1--z2;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{H}
-% An awfull simple letter. There can be no doubt on how this should
-% look. 
-%    \begin{macrocode}
-  beginchar("H",A_w#,l_h#,0); "The letter H" ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    top rt  z3 = (w,h) ; bot rt  z4 = (w,0) ; draw z3--z4 ;
-    lft z5 = (0,h/2) ; rt z6 = (w,h/2) ; draw z5--z6 ;
-    penlabels(1,2,3,4,5,6);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{I}
-% It doesn't get any simpler!
-%    \begin{macrocode}
-  beginchar("I",P_t#,l_h#,0); "The letter I" ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{J}
-%    \begin{macrocode}
-  beginchar("J",P_t#+2C_d#,l_h#,0); "The letter J";
-    uniend(P_t,(w-P_t,P_t),270,360,10);
-    pickup Unipensqu ;
-    lft bot z1 = (0,0)   ; rt bot z2 = (w-P_t,0) ; draw z1--z2 ;
-    rt  bot z3 = (w,P_t) ; rt top z4 = (w,h)     ; draw z3--z4 ;
-    penlabels(1,2,3,4);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{K}
-% Similar to \textunibf{k}.
-%    \begin{macrocode}
-  beginchar("K",(l_h#+3P_t#)/2,l_h#,0) ; "The letter K" ;
-    uniarc((h+P_t)/2,P_t,(P_t,h),270,360,10) ;
-    uniarc((h+P_t)/2,P_t,(P_t,0),0,90,20) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{L}
-% This is just a reflected \textunibf{J}.
-%    \begin{macrocode}
-  beginchar("L",P_t#+2C_d#,l_h#,0) ; "The letter L" ;
-    uniend(P_t,(P_t,P_t),180,270,10) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h)   ; bot lft z2 = (0,P_t) ; draw z1--z2 ;
-    bot lft z3 = (P_t,0) ; bot rt  z4 = (w,0)   ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{M}
-% The same kind of considerations as in \textunibf{m} went into this
-% letter.
-%    \begin{macrocode}
-  beginchar("M",M_w#,l_h#,0) ; "The letter M" ;
-    temp := .25*(w+P_t);
-    uniarc(temp,P_t,(temp,h-temp),0,180,10) ;
-    uniarc(temp,P_t,(w-temp,h-temp),0,180,20) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h-temp) ; bot lft z2 = (0,0) ;  draw z1--z2 ;
-    top z3 = (w/2,h-temp)   ; bot z4 = (w/2,0)   ;  draw z3--z4 ;
-    top rt z5 = (w,h-temp)  ; bot rt z6 = (w,0)  ;  draw z5--z6 ;
-    penlabels(1,2,3,4,5,6);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{N}
-% Tricky because of the \textunibf{M} (see above).
-%    \begin{macrocode}
-  beginchar("N",A_w#,l_h#,0); "The letter N" ;
-    uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0);  draw z1--z2 ;
-    top rt z3 = (w,h-w/2)  ; bot rt z4 = (w,0) ;  draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{O}
-% No, this is not going to be an oval, but a \emph{circle\/}!
-%    \begin{macrocode}
-  beginchar("O",l_h#,l_h#,0) ; "The letter O";
-    unicir(w/2,P_t,(w/2,h/2),10);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{P}
-% No surprises.
-%    \begin{macrocode}
-  beginchar("P",A_w#,l_h#,0) ; "The letter P";
-    unicir(w/2,P_t,(w/2,h-w/2),10)
-    pickup Unipensqu ;
-    lft top z1 = (0,h-w/2) ; lft bot z2 = (0,0) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{Q}
-% There are to variants of this letter, one is an reflected
-% \textunibf{P}, and the other is a vaiant of an \textunibf{O}. The
-% default one, is the \textunibf{Q} variant. If you want to use the
-% other variant, you can acceses it directly with \Lcs{varQ}, or you
-% can pass the argument \texttt{varQ} to the \textsc{uni} package.
-% (Option \texttt{varQ} not implemented yet!)
-%    \begin{macrocode}
-  beginchar("Q",l_h#,l_h#,p_d#) ; "The letter Q";
-    unicir(w/2,P_t,(w/2,w/2),10);
-    pickup Unipensqu ;
-    top z1 = (w/2,3P_t) ; bot z2 = (w/2,-d) ; draw z1--z2 ;
-    penlabels(1,2);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{R}
-% I'm not enterily happy with this letter, but quite frankly, I don't
-% know how else to make it. Please give me your suggestion.
-%    \begin{macrocode}
-  beginchar("R",A_w#,l_h#,0) ; "The letter R";
-    unicir(w/2,P_t,(w/2,h-w/2),10) ;
-    rad := h-w+P_t ; 
-    uniarc(rad,P_t,(w-rad,0),0,90,20) ;
-    pickup Unipensqu ;
-    lft top z1 = (0,h-w/2)  ; bot lft z2 = (0,0) ; draw z1--z2 ;
-    temp := w/2-rad ;
-    if temp>0 :
-      pickup pensquare xscaled temp yscaled P_t ;
-      lft top z3 = (1/2w,rad) ; drawdot z3 ;
-    fi;
-    penlabels(1,2,3) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{S}
-% Just like the minuscle \textunibf{s}, this is a `slow' letter, i.e.,
-% it takes \MF{} quite some time to compute. 
-%    \begin{macrocode}
-  beginchar("S",A_w#,l_h#,0) ; "The letter S" ;
-    temp := (h+P_t)/4 ;
-    uniarc(temp,P_t,(temp,temp),180,270,10) ;
-    uniarc(temp,P_t,(w-temp,temp),270,450,20) ;
-    uniarc(temp,P_t,(temp,h-temp),90,270,30) ;
-    uniarc(temp,P_t,(w-temp,h-temp),0,90,40) ;
-    pickup Unipensqu ;
-    bot lft z1 = (temp,0)   ; bot rt z2 = (w-temp,0)   ; draw z1--z2 ;
-    lft     z3 = (temp,h/2) ; rt     z4 = (w-temp,h/2) ; draw z3--z4 ;
-    top lft z5 = (temp,h)   ; top rt z6 = (w-temp,h)   ; draw z5--z6 ; 
-    penlabels(1,2,3,4,5,6) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{T}
-% Again --- simple!
-%    \begin{macrocode}
-  beginchar("T",A_w#,l_h#,0); "The letter T" ;
-    pickup Unipensqu ;
-    top     z1 = (w/2,h) ; bot    z2 = (w/2,0) ; draw z1--z2 ;
-    top lft z3 = (0,h)   ; top rt z4 = (w,h)   ; draw z3--z4 ;
-    penlabels(1,2,3,4);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{U}
-% \emph{Font--jepody:} The character of the \universal{} font, that,
-% when reflected gives \textunibf{U}.
-%    \begin{macrocode}
-  beginchar("U",A_w#,l_h#,0); "The letter U" ;
-    uniarc(w/2,P_t,(w/2,w/2),180,360,10) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
-    top rt  z3 = (w,h) ; bot  rt z4 = (w,w/2) ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{V}
-% See also the minuscle \textunibf{v}.
-%    \begin{macrocode}
-  beginchar("V",A_w#,l_h#,0); "The letter V" ;
-    unilne(P_t,(0,h),(w/2,P_t),1,1,10);
-    unilne(P_t,(w/2,P_t),(w,h),1,1,20);
-    uniarc(P_t,P_t,(w/2,P_t),180,360,30);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{W}
-% Flippedy--flop.
-%    \begin{macrocode}
-  beginchar("W",M_w#,l_h#,0) ; "The letter W" ;
-    temp := .25*(w+P_t);
-    uniarc(temp,P_t,(temp,temp),180,360,10) ;
-    uniarc(temp,P_t,(w-temp,temp),180,360,20) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h)   ; bot lft z2 = (0,temp)   ; draw z1--z2 ;
-    top     z3 = (w/2,h) ; bot     z4 = (w/2,temp) ; draw z3--z4 ;
-    top rt  z5 = (w,h)   ; bot rt  z6 = (w,temp)   ; draw z5--z6 ;
-    penlabels(1,2,3,4,5,6);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{X}
-% This is a bit tricky --- see the minuscle \textunibf{x}.
-%    \begin{macrocode}
-  beginchar("X",l_h#,l_h#,0) ; "The letter X" ;
-    uniarc(h/2,P_t,(P_t/2,h/2),270,90,10);
-    uniarc(h/2,P_t,(w-P_t/2,h/2),90,270,20);
-    temp := (h-w+P_t)/2 ;
-    pickup pensquare xscaled temp yscaled P_t slanted slantratio ;
-    lft top z1 = (0,h) ; draw z1 ;
-    lft bot z2 = (0,0) ; draw z2 ;
-    rt  top z3 = (w,h) ; draw z3 ;
-    rt  bot z4 = (w,0) ; draw z4 ;
-    penlabels(1,2,3,4);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{Y}
-% \Newestchanges{v2.0}{98/08/01}{Character \textunibf{Y} changed.}
-% This actually a bit different from \textunibf{y}, but it looks right. 
-%    \begin{macrocode}
-  beginchar("Y",A_w#,l_h#,0); "The letter Y" ;
-    uniarc(w/2,P_t,(w/2,h-P_t),180,360,10) ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h) ; drawdot z1 ;
-    top rt  z2 = (w,h) ; drawdot z2 ;
-    top     z3 = (w/2,h-w/2) ; bot z4 = (w/2,0) ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{Z}
-% Again a tricky letter. For more onm this please refer to the
-% minuscle \textunibf{z}.
-% 
-% Notice that the angle \texttt{phi} in this majuscle is not the
-% same as in the minuscles \textunibf{z}, since this letter doesn't fit
-% in a square, but is retangular.
-%    \begin{macrocode}
-  beginchar("Z",A_w#,l_h#,0) ; "The letter Z" ;
-    pickup Unipensqu ;
-    top lft z1 = (0,h)   ; top rt z2 = (w-P_t,h) ; draw z1--z2 ;
-    bot lft z3 = (P_t,0) ; bot rt z4 = (w,0)     ; draw z3--z4 ;
-    phi := angle((w,h-P_t)-(0,P_t)) ;
-    z5 = (P_t,P_t)     ; z6 = z5 + P_t*(-sind(phi),cosd(phi)) ;
-    z7 = (w-P_t,h-P_t) ; z8 = z7 + P_t*(sind(phi),-cosd(phi)) ;
-    uniend(P_t,z5,90+phi,270,10);
-    uniend(P_t,z7,-90+phi,90,20);
-    fill z5--z6--z7--z8--cycle ;
-    penlabels(range 1 thru 8);
-  endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% As explain in the begining of the section, this file is one big
-% \texttt{if...else...fi} loop to mak the generation of the strict
-% font easier.
-%
-% The idea is, that if \texttt{strict} is \texttt{true}, then the main
-% part of this file shouldn't be used, but rather \texttt{unilow.mf}
-% should be loaded again, but with this time the characters should be
-% placed where the majuscules should be. 
-% 
-% This is done by defining \texttt{code\_offset} to be the (negative) 
-% difference the ASCII code for \texttt{A} and \texttt{a}. After we
-% have input \texttt{unilow.mf} once more, we reset
-% \texttt{code\_offset}. 
-%    \begin{macrocode}
-else :
-  code_offset := ASCII"A" - ASCII"a" ;
-  input unilow ;
-  code_offset := 0 ;
-fi ;
-
-%    \end{macrocode}
-%\iffalse
-%</upp>
-%\fi
-%\iffalse
-%<*dig>
-%\fi
-% \subsection{The Numbers --- (\texttt{unidig.mf})}
-% \file{unidig.mf}
-%
-% I couldn't find any design of numbers, I could directly ascribe to
-% Herbert Bayer. I, however, found some other examples, and from
-% these, and my general conception of the font, I designed the
-% numerals, as they are seen below.
-%
-% \begin{fontcode}{0}
-% Perhaps this should have been a circle, but to destingice the zero
-% from the majuscle {\uni O}, I chose to strecth it.
-%    \begin{macrocode}
-beginchar("0",A_w#,l_h#,0) ; "The number 0" ;
-  uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
-  uniarc(w/2,p_t,(w/2,w/2),180,360,20) ;
-  pickup unipensqu ;
-  top lft z1 = (0,h-w/2) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
-  top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,w/2) ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{1}
-% Here we use the dimension \texttt{c\_d}, since the stem should be
-% thee same lenght in the medium font as in the bold face one.
-%    \begin{macrocode}
-beginchar("1",2c_d#,l_h#,0) ; "The number 1" ;
-  uniend(p_t,(w-p_t,h-p_t),0,90,10) ;
-  pickup unipensqu ;
-  lft top z1 = (0,h)     ; rt top z2 = (w-p_t,h) ; draw z1--z2 ;
-  rt  top z3 = (w,h-p_t) ; rt bot z4 = (w,0)     ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{2}
-% Again, this is a bit tricky, for the same reason as the minuscle
-% {\uni z}.
-%    \begin{macrocode}
-beginchar("2",A_w#,l_h#,0) ; "The number 2" ;
-  uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
-  phi := angle((w,h-w/2)-(0,p_t)) ;
-  z1 = (w-p_t,h-w/2) ; z2 = z1 + p_t*(sind(phi),-cosd(phi)) ;
-  z3 = (p_t,p_t)     ; z4 = z3 + p_t*(-sind(phi),cosd(phi)) ;
-  fill z1--z2--z3--z4--cycle ;
-  uniend(p_t,z1,270+phi,360,20) ;
-  uniend(p_t,z3,90+phi,270,30) ;
-  pickup unipensqu ;
-  bot lft z5 = (p_t,0) ; bot rt z6 = (w,0) ; draw z5--z6 ; 
-  penlabels(range 1 thru 6) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{3}
-% By first defining to paths similar to the two circle segments, it is
-% possible to calculate the intersectionpoint, and thereby the angle
-% \texttt{phi}, where the to segments meet, relative to one of the
-% centers. This angle is then used to define the \emph{real} path, and
-% the rightmost point of the middle bar.
-%    \begin{macrocode}
-beginchar("3",A_w#,l_h#,0) ; "The number 3" ;
-  path arc_a, arc_b ;
-  arc_a = (w,h-w/2)..(w/2,h-w) ; arc_b = (w,w/2)..(w/2,w) ;
-  z3 = arc_a intersectionpoint arc_b ; phi := angle(z3-(w/2,w/2)) ;
-  uniarc(w/2,p_t,(w/2,h-w/2),-phi,180,10) ;
-  uniarc(w/2,p_t,(w/2,w/2),-180,phi,20) ;
-  pickup unipensqu ;
-  rt z1 = (w/2*(1+cosd(phi)),h/2) ; lft z2 = (w/2,h/2) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{4}
-% One could argue, that the top left stroke should be vertical, but I
-% chose to go for a $45^\circ$ slanted line, for aestethic reasons.
-%    \begin{macrocode}
-beginchar("4",A_w#,l_h#,0) ; "The number 4" ;
-  z1 = (w-p_t,h-p_t) ; z2 = z1 + p_t*(-1/sqrt(2),1/sqrt(2)) ;
-  z3 = (p_t,h-w+p_t) ; z4 = z3 + p_t*(-1/sqrt(2),1/sqrt(2)) ;
-  fill z1--z2--z4--z3--cycle ;
-  uniend(p_t,z1,0,135,10) ;
-  uniend(p_t,z3,135,270,20) ;
-  pickup unipensqu ;
-  top rt  z5 = (w,h-p_t) ; bot rt z6 = (w,0)   ; draw z5--z6 ;
-  bot lft z7 = (p_t,h-w) ; bot rt z8 = (w,h-w) ; draw z7--z8 ;
-  penlabels(range 1 thru 8) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{5}
-% This gave me some trouble. I originally wanted the arc to have a
-% diameter the width of the character, but that meant, that the to
-% horizontal lines of the font, came so close to each other, that it
-% didn't look good. So I played a little with \texttt{rad}, and
-% decided that the current value gave the nicest resault.
-%    \begin{macrocode}
-beginchar("5",A_w#,l_h#,0) ; "The number 5" ;
-  rad := 9w/20 ; 
-  uniarc(rad,p_t,(w-rad,rad),-150,90,10) ;
-  uniend(p_t,(p_t,h-p_t),90,180,20) ;
-  uniend(p_t,(p_t,2rad),180,270,30) ;
-  pickup unipensqu ;
-  top lft z1 = (p_t,2rad) ; top rt  z2 = (w-rad,2rad) ; draw z1--z2 ;
-  bot lft z3 = (0,2rad)   ; top lft z4 = (0,h-p_t)    ; draw z3--z4 ;
-  top lft z5 = (p_t,h)    ; top rt  z6 = (w,h)        ; draw z5--z6 ;
-  penlabels(range 1 thru 6) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{6}
-% This was almost to easy --- a circle, an arc, and a line connecting
-% them. 
-%    \begin{macrocode}
-beginchar("6",A_w#,l_h#,0) ; "The number 6" ;
-  unicir(w/2,p_t,(w/2,w/2),10) ;
-  uniarc(w/2,p_t,(w/2,h-w/2),60,180,20) ;
-  pickup unipensqu ;
-  top lft z1 = (0,h-w/2) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{7}
-% Apperently, this character could have the same problems as the
-% \textuni{2}, but it didn't --- can you see why not?
-%    \begin{macrocode}
-beginchar("7",A_w#,l_h#,0) ; "The number 7" ;
-  z1 = (w-p_t,h-p_t) ; phi := angle(z1) ;
-  uniend(p_t,z1,-90+phi,90,10) ;
-  z2 = z1 + p_t*(cosd(90-phi),-sind(90-phi)) ;
-  z3 = (p_t/cosd(90-phi),0) ; z4 = (0,0) ;
-  fill z1--z2--z3--z4--cycle ;
-  pickup unipensqu ;
-  top lft z5 = (0,h) ; top rt z6 = (w-p_t,h) ; draw z5--z6 ;
-  penlabels(range 1 thru 6) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{8}
-% Ha ha, to circles, one on top of the other. Some may prefer if the
-% bottom most circle had a slightly larger radius then the top most,
-% but I believe that to be in conflict with the general idea of
-% simplicity. 
-%    \begin{macrocode}
-beginchar("8",1/2*(l_h#+p_t#),l_h#,0) ; "The number 8" ;
-  unicir(w/2,p_t,(w/2,w/2),10) ;
-  unicir(w/2,p_t,(w/2,h-w/2),20) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{9}
-% See above under \textuni{6}.
-%    \begin{macrocode}
-beginchar("9",A_w#,l_h#,0) ; "The number 9" ;
-  unicir(w/2,p_t,(w/2,h-w/2),10) ;
-  uniarc(w/2,p_t,(w/2,w/2),-150,0,20) ;
-  pickup unipensqu ;
-  top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-%\iffalse
-%</dig>
-%\fi
-%\iffalse
-%<*spe>
-%\fi
-% \subsection{Specials --- \texttt{unispe.mf}}
-% \file{unispe.mf}
-% 
-% For these characters, I couldn't find any original design,
-% so once again, I did some inter-- and extrapolation, plus I had some
-% print--outs of other implenations of Herbert Bayers universal
-% font. So once again, I am to blame for any aestethic judgements.
-%
-% \begin{fontcode}{\char"10}
-% At first I thought I didn't had to do this character, but then I
-% realized that you \emph{do} needed, since some words are spelled
-% with some sort of accent over the ``i'', other then a single dot,
-% e.g., \textunibf{na\"ive}.
-%    \begin{macrocode}
-beginchar(hex"10",p_t#,x_h#,0) ; "The dotless letter i" ;
-  pickup unipensqu ;
-  bot lft z1 = (0,0) ; top lft z2 = (0,h) ; draw z1--z2;
-  penlabels(1,2);
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"11}
-% Non single dot j's are not as frequent as those of i's, so for the
-% sake of completness, if nothing else, this letter is included.
-%    \begin{macrocode}
-beginchar(hex"11",p_t#,x_h#,p_d#) ; "The dotless letter j" ;
-  pickup unipensqu ;
-  bot lft z1 = (0,-d) ;  top lft z2 = (0,h) ; draw z1--z2 ;
-  penlabels(1,2);
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"24}
-% I couldn't make up my mind wether this should just be a \textunibf{s},
-% with a vertical bar through, or if I should make it differntly. In
-% the end, I chose to make it different, since I think it looks best
-% in the context of the font.
-%    \begin{macrocode}
-beginchar("$",(l_h#-c_d#+p_t#)/2,l_h#,c_d#) ; "The dollar sign ($)" ;
-  uniarc(w/2,p_t,(w/2,w/2),180,450,10) ;
-  uniarc(w/2,p_t,(w/2,h-c_d-w/2),0,270,20) ;
-  pickup unipensqu ;
-  top z1 = (w/2,h) ; bot z2 = (w/2,-d) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"26}
-% You could argue back and forth on the shape of the ampersand, but I
-% decided to go for a simple design.
-%    \begin{macrocode}
-beginchar("&",(l_h#+p_t#)/2+c_d#,l_h#,c_d#) ; "The ampersand (&)" ;
-  rad := (w-c_d)/2 ;
-  unicir(rad,p_t,(rad,h-rad),10) ;
-  uniarc(rad,p_t,(rad,rad),0,270,20) ;
-  pickup unipensqu ;
-  lft bot z1 = (rad,0)     ; rt bot z2 = (w,0)      ; draw z1--z2 ;
-  rt  top z3 = (w-c_d,rad) ; rt bot z4 = (w-c_d,-d) ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{?}
-% I did have some considerations concerning this. Since I had kind of
-% decided to make avery junction ``smooth'', this also had to
-% be. However, that meant, that my original plan, to make this letter
-% as wide as an \textunibf{A}, didn't work, so I had to make it less
-% wide, which in the end does look better.
-%    \begin{macrocode}
-beginchar("?",l_h#-5c_d#/2,l_h#,0) ; "The question mark (?)" ;
-  temp := angle((P_T,-w/2)) - 0.01 ;
-  uniarc(w/2,P_T,(w/2,h-w/2),temp,180,10) ;
-  uniend(P_T,((w+P_T)/2,h-w),90,180,20) ;
-  uniend(P_T,((w+P_T)/2,h-w+P_T),270,360+temp,30) ;
-  pickup UniPensqu ;
-  top z1 = (w/2,h-w) ; bot z2 = (w/2,2P_T) ; draw z1--z2 ;
-  pickup UniPencir ;
-  bot z3 = (w/2,0) ; drawdot z3 ;
-  penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"3E}
-% These Spanish special letters, are just rotations, so nothing
-% special is going on here.
-%    \begin{macrocode}
-beginchar(spanish_query,l_h#-5c_d#/2,x_h#,p_d#) ; "The Spanish query" ; 
-  temp := angle((-P_T,w/2))-0.01 ;
-  uniarc(w/2,P_T,(w/2,-d+w/2),temp,360,10) ;
-  uniend(P_T,((w-P_T)/2,-d+w),270,360,20) ;
-  uniend(P_T,((w-P_T)/2,-d+w-P_T),90,temp,30) ;
-  pickup UniPensqu ;
-  bot z1 = (w/2,-d+w) ; top z2 = (w/2,h-2P_T) ; draw z1--z2 ;
-  pickup UniPencir ;
-  top z3 = (w/2,h) ; drawdot z3 ;
-  penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"3C}
-% See above.
-%    \begin{macrocode}
-beginchar(spanish_shriek,P_T#,x_h#,p_d#) ; "The Spanish shriek" ;
-  pickup UniPencir ; top z1 = (w/2,h) ; drawdot z1 ;
-  pickup UniPensqu ; top z2 = (w/2,h-2P_T) ; bot z3 = (w/2,-d) ;
-  draw z2--z3 ; penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-%\iffalse
-%</spe>
-%\fi
-%\iffalse
-%<*pun>
-%\fi
-% \subsection{Punctuations --- \texttt{unipun.mf}}
-% \file{unipun.mf}
-%
-% This is the programs for general punctuation marks, ranging from
-% period to ast.
-%
-% \begin{fontcode}{\char"21}
-% Quite a simple character. Notice the use of \texttt{unipencir}.
-%    \begin{macrocode}
-beginchar("!",P_T#,l_h#,0) ; "The exclamation mark (!)" ;
-  pickup UniPensqu ;
-  top lft z1 = (0,h) ; bot lft z2 = (0,2P_T) ; draw z1--z2 ;
-  pickup UniPencir ;
-  bot lft z3 = (0,0) ; drawdot z3 ;
-  penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{(}
-% Here, and in the next character ()) we don't use pens, since we can
-% get a much better resault using the \MF{} path macro \texttt{...} .
-%    \begin{macrocode}
-beginchar("(",x_w#/2,l_h#,p_d#) ; "The left paranthesis (()" ;
-  z1 = (w,h)      ; z2 = (p_t,(h-d)/2) ; z3 = (w,-d)    ;
-  z4 = (w-p_t,-d) ; z5 = (0,(h-d)/2)   ; z6 = (w-p_t,h) ;
-  fill z1..z2..z3--z4..z5..z6--cycle ;
-  penlabels(range 1 thru 6) ;  
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{)}
-%    \begin{macrocode}
-beginchar(")",x_w#/2,l_h#,p_d#) ; "The right paranthesis ())" ;
-  z1 = (p_t,h) ; z2 = (w,(h-d)/2)     ; z3 = (p_t,-d)    ;
-  z4 = (0,-d)  ; z5 = (w-p_t,(h-d)/2) ; z6 = (0,h)       ;
-  fill z1..z2..z3--z4..z5..z6--cycle ;
-  penlabels(range 1 thru 6) ;  
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-%
-% \begin{fontcode}{\#}
-% I never really got satisfied with this letter, but this is the best
-% I could do --- who ever uses a \# anyway!
-%    \begin{macrocode}
-beginchar("#",x_w#,x_h#,0) ; "The hash mark (#)" ;
-  unilne(p_t,(0,0),(w/2,h),1,1,10) ;
-  unilne(p_t,(w/2,0),(w,h),1,1,20) ;
-  pickup unipensqu ;
-  top lft z1 = (0,(h-c_d)/2) ; top rt z2 = (w,(h-c_d)/2) ;
-  bot lft z3 = (0,(h+c_d)/2) ; bot rt z4 = (w,(h+c_d)/2) ;
-  draw z1--z2 ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\%}
-% Among other characters, this one made me define a dimension called
-% \texttt{c\_d}, which is to be used for all kinds of curves. The idea
-% is that, some sizes curves should depend on the weight of the font,
-% and others not. Those that \emph{shouldn't} will use \texttt{c\_d}.
-%    \begin{macrocode}
-beginchar("%",x_w#,l_h#,0) ; "The percent sign (%)" ;
-  temp := 3c_d/2 ;
-  unicir(temp,p_t,(temp,h-temp),10) ;
-  unicir(temp,p_t,(w-temp,temp),20) ;
-  unilne(p_t,(0,0),(w,h),1,1,30) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{'}
-% Agian we have a translated comma --- the apostrophe.
-%    \begin{macrocode}
-beginchar("'",2P_T#,l_h#,0) ; "The apostrophe (')" ;
-  uniend(w/2,(w/2,h-w/2),0,180,10) ;
-  z1 = (0,h-w/2) ; z2 = (w,h-w/2) ; z3 = (0,h-3w/2) ;
-  fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{*}
-% This isn't really complicated execpt for the value of \texttt{temp},
-% which insures that the top of ast will be in the character.
-%    \begin{macrocode}
-beginchar("*",x_w#,l_h#,0) ; "The ast (*)" ;
-  path rect ;
-  temp := h-(w*sind(60)-p_t*cosd(60))/2 ;
-  pickup unipensqu ;
-  lft z1 = (0,temp) ; rt z2 = (w,temp) ; draw z1--z2 ;
-  rect = (bot lft z1)--(top lft z1)--(top rt z2)--(bot rt z2)--cycle ;
-  fill rect rotatedabout((w/2,temp),60) ;
-  fill rect rotatedabout((w/2,temp),120) ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{+}
-% Plus and minus, now that's easy.
-%    \begin{macrocode}
-beginchar("+",x_w#,x_h#,0) ; "The plus sign (+)" ;
-  pickup unipensqu ;
-  lft z1 = (0,w/2) ; rt  z2 = (w,w/2) ; draw z1--z2 ;
-  bot z3 = (w/2,0) ; top z4 = (w/2,w) ; draw z3--z4 ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{,}
-% Incedently, the apostrophs (both single and reversed), are
-% just translations and reflections of the comma.
-%
-% \textsl{Mathemathical problem:} Work out which algebraic group the
-% characters `\textunibf{,}', `\textunibf{'}', and `\textunibf{`}',
-% belongs to? 
-%    \begin{macrocode}
-beginchar(",",2P_T#,2P_T#,2P_T#) ; "The punctuation ," ;
-  uniend(w/2,(w/2,0),0,180,10) ;
-  z1 = (0,0) ; z2 = (w,0) ; z3 = (0,-d) ;
-  fill z1--z2--z3--cycle  ; penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{-}
-% Minus? --- isn't it the opposite of plus?
-%    \begin{macrocode}
-beginchar("-",4x_w#/5,x_h#,0) ; "The hyphen (-)" ;
-  pickup unipensqu ;
-  lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
-  penlabels(1,2);
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{.}
-% Wow, a dot!
-%    \begin{macrocode}
-beginchar(".",2P_T#,2P_T#,0) ; "The punctuation ." ;
-  uniend(w/2,(w/2,h/2),0,360,10) ;
-%  pickup UniPencir ; lft bot z1 = (0,0) ; drawdot z1 ; penlabels(1); 
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{/}
-% This is a nice utilization of \texttt{unilne}.
-%    \begin{macrocode}
-beginchar("/",x_w#,l_h#,0) ; "The slash (/)" ;
-  unilne(p_t,(0,0),(w,h),1,1,10) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{:}
-% Wauw, \emph{two} dots --- cool!
-%    \begin{macrocode}
-beginchar(":",2P_T#,x_h#,0) ; "The punctuation :" ;
-  uniend(w/2,(w/2,h-w/2),0,360,10) ;
-  uniend(w/2,(w/2,w/2),0,360,20) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{;}
-% Again, this is straight forward.
-%    \begin{macrocode}
-beginchar(";",2P_T#,x_h#,2P_T#) ; "The punctuation ;" ;
-  uniend(w/2,(w/2,h-w/2),0,360,10) ;
-  uniend(w/2,(w/2,0),0,180,20) ;
-  z2 = (0,0) ; z3 = (w,0) ; z4 = (0,-d) ; fill z2--z3--z4--cycle ; 
-  penlabels(1,2,3,4) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"3D}
-% These characters are rediculously simple.
-%    \begin{macrocode}
-beginchar("=",x_w#,x_h#,0) ; "The equal sign (=)" ;
-  pickup unipensqu ;
-  top lft z1 = (0,(h-p_t)/2) ; top rt z2 = (w,(h-p_t)/2) ;
-  bot lft z3 = (0,(h+p_t)/2) ; bot rt z4 = (w,(h+p_t)/2) ;
-  draw z1--z2 ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{@}
-% Now this was a bit of a challenge. It is clear, that the left stroke
-% should be a straight line tarveling all the way to the baseline, but
-% how big should the small circle be. I decided to go for the largest
-% one, that didn't touch or intersected the outer arc more then one
-% place, i.e., at the far left.
-%    \begin{macrocode}
-beginchar("@",l_h#,l_h#,0) ; "The at sign (@)" ;
-  uniarc(w/2,p_t,(w/2,h/2),0,240,10) ;
-  unicir(w/3,p_t,(2w/3,w/3),20) ;
-  pickup unipensqu ;
-  top rt z1 = (w,w/2) ; bot rt z2 = (w,0) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{[}
-% Notice the soft corners. This is ofcourse accomplieshed with
-% \texttt{uniend}, which turned out to be a very nice macro.
-%    \begin{macrocode}
-beginchar("[",3p_t#,l_h#,p_d#) ; "The left bracket ([)" ;
-  uniend(p_t,(p_t,h-p_t),90,180,10) ;
-  uniend(p_t,(p_t,-d+p_t),180,270,20) ;
-  pickup unipensqu ;
-  top lft z1 = (p_t,h)   ; top rt  z2 = (w,h)      ; draw z1--z2 ;
-  top lft z3 = (0,h-p_t) ; bot lft z4 = (0,-d+p_t) ; draw z3--z4 ;
-  bot lft z5 = (p_t,-d)  ; bot rt  z6 = (w,-d)     ; draw z5--z6 ;
-  penlabels(range 1 thru 6) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{]}
-% Speaking of reflections.
-%    \begin{macrocode}
-beginchar("]",3p_t#,l_h#,p_d#) ; "The right braket (])" ;
-  uniend(p_t,(w-p_t,h-p_t),0,90,10) ;
-  uniend(p_t,(w-p_t,-d+p_t),270,360,20) ;
-  pickup unipensqu ;
-  top lft z1 = (0,h)     ; top rt  z2 = (w-p_t,h)  ; draw z1--z2 ;
-  top rt  z3 = (w,h-p_t) ; bot rt  z4 = (w,-d+p_t) ; draw z3--z4 ;
-  bot lft z5 = (0,-d)    ; bot rt  z6 = (w-p_t,-d) ; draw z5--z6 ;
-  penlabels(range 1 thru 6) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{`}
-% Who is this `comma' character --- he keeps poping up the strangest
-% places. 
-%    \begin{macrocode}
-beginchar("`",2P_T#,l_h#,0) ; "The reversed apostroph (`)" ;
-  uniend(w/2,(w/2,h-w),180,360,10) ;
-  z1 = (0,h) ; z2 = (0,h-w) ; z3 = (w,h-w) ; fill z1--z2--z3--cycle ; 
-  penlabels(1,2,3) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{--}
-% Ah, a horizontal line --- how fascinating!
-%    \begin{macrocode}
-beginchar(hex"7B",m_w#,x_h#,0) ; "The en-dash (--)" ;
-  pickup unipensqu ;
-  lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{---}
-% And another horizontal line --- and it's even longer then the
-% previous one.
-%    \begin{macrocode}
-beginchar(hex"7C",M_w#,x_h#,0) ; "The em-dash (---)" ;
-  pickup unipensqu ;
-  lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
-  penlabels(1,2) ;
-endchar;
-
-%    \end{macrocode}
-% \end{fontcode}
-%\iffalse
-%</pun>
-%\fi
-%\iffalse
-%<*acc>
-%\fi
-% \subsection{Accents --- \texttt{uniacc.mf}}
-% \file{uniacc.mf}
-% \begin{fontcode}{\char"12}
-% Even though you use a reversed apostrophe in \LaTeX{} to get this
-% accent, the accent shouldn't look like a apostophe, that would be
-% far to clumsy. So instead we \emph{rotate} a comma and translate it
-% --- algebraic groups again!
-%    \begin{macrocode}
-beginchar(hex"12",x_w#,l_h#,0) ; "The accent `" ;
-  uniend(P_T/2,(w/2,a_h+P_T/2),90,270,10) ;
-  z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2+P_T,a_h) ; 
-  fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"13}
-% See above.
-%    \begin{macrocode}
-beginchar(hex"13",x_w#,l_h#,0) ; "The accent '" ;
-  uniend(P_T/2,(w/2,a_h+P_T/2),-90,90,10) ;
-  z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2-P_T,a_h) ; 
-  fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"14}
-%    \begin{macrocode}
-beginchar(hex"14",x_w#,l_h#,0) ; "The accent hachek" ;
-  z1 = (w/2,a_h+p_t) ; uniend(p_t,z1,225,315,10) ;
-  z2 = z1 + p_t*(-1,-1)/sqrt(2) ; z3 = z1 + p_t*(-1,1) ;
-  z4 = z3 + (-p_t*sqrt(2),0) ; path rombe ;
-  rombe := z1--z2--z4--z3--cycle ; fill rombe ;
-  fill rombe reflectedabout ((w/2,0),(w/2,h)) ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"15}
-%    \begin{macrocode}
-beginchar(hex"15",x_w#,l_h#,0) ; "The accent breve" ;
-  rad := 3p_t/2 ; uniarc(rad,p_t,(w/2,a_h+rad),180,360,10) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"16}
-%    \begin{macrocode}
-beginchar(hex"16",x_w#,a_h#+p_t#,0) ; "The accent macron (bar)" ;
-  pickup unipensqu ;
-  bot lft z1 = (w/2-2p_t,a_h) ; bot rt z2 = (w/2+2p_t,a_h) ;
-  draw z1--z2 ; penlabels(1,2) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"17}
-%    \begin{macrocode}
-beginchar(hex"17",A_w#+4/3*(l_h#-x_h#)*slantratio,l_h#,0) ;
-  "The accent circle" ;
-  rad := P_T ; unicir(rad,p_t,(w/2,h-rad),10) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"18}
-%    \begin{macrocode}
-beginchar(hex"18",x_w#,x_h#,2c_d#) ; "The accent cidelia" ;
-  uniarc(d/2,2P_T/3,(w/2+d/4,-d/2),90,270,10) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"20}
-%    \begin{macrocode}
-phi := 15 ; tmp# := 3c_d# ; define_pixels(tmp) ;
-beginchar(hex"20",tmp#*cosd(phi)+p_t#*sind(phi),l_h#,0) ;
-  "The accent bar over l" ;
-  z1 = (0,(h+p_t*cosd(phi)-tmp*sind(phi))/2) ;
-  z2 = (p_t*sind(phi),(h-p_t*cosd(phi)-tmp*sind(phi))/2) ;
-  z3 = (w,(h-p_t*cosd(phi)+tmp*sind(phi))/2) ;
-  z4 = (w-p_t*sind(phi),(h+p_t*cosd(phi)+tmp*sind(phi))/2) ;
-  fill z1--z2--z3--z4--cycle ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"5E}
-%    \begin{macrocode}
-beginchar(hex"5E",x_w#,l_h#,0) ; "The accent hat" ;
-  z1 = (w/2,a_h+p_t) ; uniend(p_t,z1,45,136,10) ;
-  z2 = z1 + p_t*(-1,1)/sqrt(2) ; z3 = z1 + p_t*(-1,-1) ;
-  z4 = z3 + (-p_t*sqrt(2),0) ; path rombe ;
-  rombe := z1--z2--z4--z3--cycle ; fill rombe ;
-  fill rombe reflectedabout ((w/2,0),(w/2,h)) ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"5F}
-%    \begin{macrocode}
-beginchar(hex"5F",x_w#,l_h#,0) ; "The accent dot" ;
-  pickup UniPencir ; bot z1 = (w/2,a_h) ; drawdot z1 ; penlabels(1) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"7D}
-%    \begin{macrocode}
-beginchar(hex"7D",x_w#,l_h#,0) ; "The accent ''" ;
-  rad := P_T/2 ;
-  uniend(rad,(w/2-rad,a_h+rad),-90,90,10) ;
-  uniend(rad,(w/2+P_T,a_h+rad),-90,90,20) ;
-  z1 = (w/2-rad-P_T,a_h) ; z2 = (w/2-rad,a_h) ;
-  z3 = (w/2-rad,a_h+P_T) ; fill z1--z2--z3--cycle ;
-  z4 = (w/2,a_h)         ; z5 = (w/2+P_T,a_h) ;
-  z6 = (w/2+P_T,a_h+P_T) ; fill z4--z5--z6--cycle ;
-  penlabels(range 1 thru 6) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"7E}
-%    \begin{macrocode}
-beginchar(hex"7E",x_w#,l_h#,0) ; "The accent ~" ;
-  rad := (w*sqrt(2)+p_t)/4 ; temp := (2w-p_t*sqrt(2))/8 ;
-  uniarc(rad,p_t,(w/2+temp,a_h+rad),225,315,10) ;
-  uniarc(rad,p_t,(w/2-temp,a_h+rad-2temp),45,135,20) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"7F}
-%    \begin{macrocode}
-beginchar(hex"7F",x_w#,l_h#,0) ; "The accent umlout (double dot)" ;
-  pickup UniPencir ;
-  bot z1 = (w/2-P_T,a_h) ; bot z2 = (w/2+P_T,a_h) ;
-  drawdot z1 ; drawdot z2 ; penlabels(1,2) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-%\iffalse
-%</acc>
-%\fi
-%\iffalse
-%<*lig>
-%\fi
-% \subsection{Ligatures --- \texttt{unilig.mf}}
-% \file{unilig.mf}
-%
-% \begin{fontcode}{SS}
-% If we are making a small caps shaped font, then we need to make an
-% upper case version of the german double s (\ss), so we start of
-% testing if the \texttt{caps} flag is set.
-%    \begin{macrocode}
-if caps:
-  beginchar(hex"19",5/2x_w#,x_h#,0) ; "Ligature SS" ;
-    temp := (h+p_t)/4 ;
-    uniarc(temp,p_t,(temp,temp),180,270,10) ;
-    uniarc(temp,p_t,(2w/5-temp,temp),270,450,20) ;
-    uniarc(temp,p_t,(temp,h-temp),90,270,30) ;
-    uniarc(temp,p_t,(2w/5-temp,h-temp),0,90,40) ;
-    pickup unipensqu ;
-    bot lft z1 = (temp,0)   ; bot rt z2 = (2w/5-temp,0)   ; 
-    lft     z3 = (temp,h/2) ; rt     z4 = (2w/5-temp,h/2) ; 
-    top lft z5 = (temp,h)   ; top rt z6 = (2w/5-temp,h)   ; 
-    draw z1--z2 ; draw z3--z4 ; draw z5--z6 ; 
-    penlabels(1,2,3,4,5,6) ;
-    currentpicture := currentpicture + (currentpicture shifted
-      (3/5w,0)) ; 
-  endchar ; 
-  
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"19}
-% If we are not making a small caps font, then the usual german double
-% s is made.
-%    \begin{macrocode}
-else:
-  beginchar(hex"19",(l_h#+3p_t#)/2,l_h#,p_t#) ; "Ligature ss" ;
-    rad := (w-p_t)/2 ;
-    uniarc(rad,p_t,(p_t+rad,h-rad),-90,180,10) ;
-    uniarc(rad,p_t,(p_t+rad,rad),-90,90,20) ;
-    pickup unipensqu ;
-    top lft z1 = (p_t,h-rad) ; bot lft z2 = (p_t,-d) ; draw z1--z2 ;
-    lft     z3 = (0,h/2)     ; rt z4 = (w-rad,h/2)   ; draw z3--z4 ;
-    penlabels(1,2,3,4) ;
-  endchar ;
-fi ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% The next three characters should not be made in a small caps font,
-% so  these are all put in side the conditinal
-% \begin{verbatim}
-%   if not caps :
-% \end{verbatim}
-% However, we need to put small caps versions of these letters in the
-% position of these charcaters, so we use a little trick later on to
-% do this.
-%
-% And if we are making a \emph{strict} shaped font, then we need to
-% put these characters into two slots each, with three slots between
-% the to replicas of the character. In that case, we first evaluate
-% the code once, then if \texttt{strict} is false, we go on in the
-% code, otherwise, we evaluate the code once more, \emph{but} the
-% characters is put into new slots 3 slots later then before, since
-% \texttt{code\_offset} now is 3. Finally in the end we reset
-% \texttt{code\_offset}.
-%
-% This trick is used also in \texttt{uniext.mf} and
-% \texttt{unilow.mf}.
-% 
-% \begin{fontcode}{\char"1A}
-% This is just a combination of an \textunibf{a} and \textunibf{e},
-% which we earlier on saved in the picture variables \texttt{a\_pic}
-% and \texttt{e\_pic}.
-%    \begin{macrocode}
-if not caps :
-  for temp = 1,2 :
-    if temp = 2 : code_offset := 3 ; fi ;
-    beginchar(hex"1A",2x_w#-p_t#,x_h#,0) ; "Ligature ae" ;
-      currentpicture := a_pic + ( e_pic shifted ((w-p_t)/2,0)) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"1B}
-% This is just a compinition of an \textunibf{o} and
-% \textunibf{e}. The \textunibf{e} we saved earlier on in the picture
-% variable \texttt{e\_pic}. The \textunibf{o} part is drawn anew.
-%    \begin{macrocode}
-    beginchar(hex"1B",2x_w#-p_t#,x_h#,0) ; "Ligature oe" ;
-      unicir(h/2,p_t,(h/2,h/2),10) ;
-      currentpicture := currentpicture + (e_pic shifted ((w-p_t)/2,0)) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"1C}
-% This is really a simple letter. It utilizes the to macros
-% \texttt{unicir} and \texttt{unilne} in a very nice way, I think. 
-%    \begin{macrocode}
-    beginchar(hex"1C",x_w#,x_h#,0) ; "Ligature o/" ;
-      unicir(w/2,p_t,(w/2,h/2),10) ;
-      unilne(p_t,(0,0),(w,h),1,1,20) ;
-    endchar ;
-    exitif (not strict) ;
-    if temp = 2 : code_offset := 0 ; fi ;
-  endfor ;
-fi ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% Since we don't want any majusculues in the \emph{strict} shaped
-% font, the next three characteres is only generated if
-% \texttt{strict} is \texttt{false}.
-% 
-% Since we have to make two version of the majuscules below in a small
-% caps font, we set up an \texttt{fot} loop. The trick is this: The
-% loop while always execute once, so the characters will always be
-% made in the original size. Now, if we are making a small caps font,
-% then the loop will execute once more, and we call the macro
-% \texttt{do\_font} (\texttt{temp = 2}), so that the new characters
-% will have the right dimensions.
-%    \begin{macrocode}
-if not strict :
-  for temp = 1,2 :
-    if temp = 2 : do_caps(-3) ; fi ;
-
-%    \end{macrocode}
-% \begin{fontcode}{\char"1D}
-% It wouln't make any sense to just do a combinition of \textunibf{A} 
-% and \textunibf{E}, as were done in minuscules above, so we draw the
-% whole letter anew.
-%    \begin{macrocode}
-    beginchar(hex"1D",M_w#,l_h#,0) ; "Ligature AE" ;
-      uniarc(w/2,P_t,(w/2,h-w/2),90,180,21) ;
-      uniend(P_t,((w+P_t)/2,P_t),180,270,30) ;
-      pickup Unipensqu ;
-      top lft z1 = (w/2,h)       ; top rt  z2 = (w,h)      ; 
-      top lft z3 = (0,h-w/2)     ; bot lft z4 = (0,0)      ; 
-      lft     z5 = (0,h/2)       ; rt      z6 = (w,h/2)    ; 
-      bot lft z7 = ((w+P_t)/2,0) ; bot rt  z8 = (w,0)      ; 
-      top     z9 = (w/2,h)       ; bot     z10 = (w/2,P_t) ;
-      draw z1--z2 ; draw z3--z4 ; draw z5--z6 ;
-      draw z7--z8 ; draw z9--z10 ;  
-      penlabels(range 1 thru 10) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"1E}
-% Again, a simple combination of \textunibf{O} and \textunibf{E},
-% wouldn't  work. 
-%    \begin{macrocode}
-    beginchar(hex"1E",M_w#,l_h#,0) ; "Ligature OE" ;
-      uniarc(h/2,P_t,(h/2,h/2),90,270,10) ;
-      pickup Unipensqu ;
-      top lft z1 = (h/2,h)   ; top rt  z2 = (w,h)   ; draw z1--z2 ;
-      lft     z3 = (h/2,h/2) ; rt      z4 = (w,h/2) ; draw z3--z4 ;
-      bot lft z5 = (h/2,0)   ; bot rt  z6 = (w,0)   ; draw z5--z6 ;
-      top     z7 = (h/2,h)   ; bot     z8 = (h/2,0) ; draw z7--z8 ;
-      penlabels(range 1 thru 8) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"1F}
-% What a said above the minuscule \textunibf{\o} also goes for this 
-% letter, since this is nothing but an enlargement of that character. 
-%    \begin{macrocode}
-    beginchar(hex"1F",l_h#,l_h#,0) ; "Liguture O/" ;
-      unicir(w/2,P_t,(w/2,h/2),10) ;
-      unilne(P_t,(0,0),(w,h),1,1,20) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% This is where it gets tricky. First we check to see if we are
-% maiking an small caps font, and if not so, we should exit the loop
-% right away, so that we don't screw up the minuscules we already have
-% made above. If, however, we are making a small caps font, we should,
-% after the second run, restore the dimensions to it's original state.
-%    \begin{macrocode}
-    exitif (not caps) ;
-    if temp = 2 : end_do_caps ; fi ;
-  endfor ;
-fi ;
-
-%    \end{macrocode}
-%\iffalse
-%</lig>
-%\fi
-%\iffalse
-%<*ext>
-%\fi
-% \subsection{Extras --- \texttt{uniext.mf}}
-% \file{uniext.mf}
-%
-% Please notice I included \textunibf{\char"0B}, \textunibf{\char"0C},
-% \textunibf{\char"0D}, and \textunibf{\char"0E}, which isn't
-% standard Computer Modern Roman policy. See more below.
-%
-% \Newestchanges{v2.0}{98/08/01}{Some of the \textunibf{bauhaus} symbols
-% that where avaliable in v1.0, has been taken out.}
-% The first part of this file is some symbols relevant to the
-% \textunibf{bauhaus} school. Please notice that some of the symbols
-% present in version~1.0 has been taken out\footnote{If you have used
-% version~1.0 of this font, and liked those characters and found them
-% useful, you should e--mail me \texttt{<cholm at fys.ku.dk>} and let me
-% know. If I get enough letters on this I will incorporate them again
-% in future releases.}, since the were seldomly used, and it made the
-% font contain exactly 128 characters.
-%
-% These characters should \emph{not} be slanted in a slanted shaped
-% font, hence we redefine \texttt{currenttrans} to \texttt{identity},
-% just before the next character, and resets it after the last
-% character. Also notice that \textuni{\bauhead} and
-% \textuni{\bauforms} may take some time to generate.
-%    \begin{macrocode}
-currenttransform := identity ;
-
-%    \end{macrocode}
-%
-% \begin{fontcode}{\char"00}
-% The next three characters are really not the complicated or useful
-% by themselves, but if you combine them, maybe even with the
-% \textsf{color} package of \LaTeX{}, you can really add some
-% \textunibf{bauhaus} flavour to your document.
-%
-% The square, ofcourse is obvious.
-%    \begin{macrocode}
-beginchar(hex"00",l_h#,l_h#,0) ; "The filled square symbol" ;
-  z1 = (0,0) ; z2 = (w,0) ; z3 = (w,h) ; z4 = (0,h) ;
-  fill z1--z2--z3--z4--cycle ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"01}
-% Also four vectors are defined, put translated a bit, and another
-% path macro --- it is amazing how much you can do with so little.
-%    \begin{macrocode}
-beginchar(hex"01",l_h#,l_h#,0) ; "The filled circle symbol" ;
-  z1 = (w,h/2) ; z2 = (w/2,h) ; z3 = (0,h/2) ; z4 = (w/2,0) ;
-  fill z1..z2..z3..z4..cycle ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"02}
-% Maybe every side of this trangle should be of the same length, mut
-% then I had to make the triangle either lower, or wider then the
-% square and circle. I couldn't decide, so I went for equal character
-% dimensions --- so I believe in equality, sue me!
-%    \begin{macrocode}
-beginchar(hex"02",l_h#,l_h#,0) ; "The filled triangle symbol" ;
-  z1 = (0,0) ; z2 = (w,0) ; z3 = (w/2,h) ;
-  fill z1--z2--z3--cycle ;
-  penlabels(1,2,3) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"03}
-% This is a typical \textuni{bauhaus} symbol. I think it is very
-% beautiful.
-%
-% First we draw the surrounding circle.
-%    \begin{macrocode}
-beginchar(hex"03",2l_h#,2l_h#,0) ; "The bauhaus-head symbol" ;
-  unicir(w/2,2c_d/9,(w/2,w/2),40) ;
-%    \end{macrocode}
-% Then we define some horizontal variables $a_{1\ldots6}$ and some
-% vertical variables $b_{1\ldots8}$.
-%    \begin{macrocode}
-  a1 := .702h  ; a2 := .561h  ; a3 := .491h  ; a4 := .351h  ;
-  a5 := .272h  ; a6 := .140h  ;
-  b1 := .202w ; b2 := .307w ; b3 := .412w ; b4 := .447w ;
-  b5 := .465w ; b6 := .518w ; b7 := .588w ; b8 := .623w ;
-%    \end{macrocode}
-% Then we define the vectors needed for the eye, and draw the eye.
-%    \begin{macrocode}
-  temp := c_d/6 ; pickup pensquare scaled temp ;
-  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 ;
-%    \end{macrocode}
-% Then we define the vectors needed for the nostril, and draw it. We
-% still use the pen used for the edges of the eye.
-%    \begin{macrocode}
-  lft bot z9 = (b4,a4) ; lft bot z10 = (b7,a4) ; draw z9--z10 ;
-%    \end{macrocode}
-% Next up is the chin. Again the same pen.
-%    \begin{macrocode}
-  lft bot z11 = (b2,a6) ; rt bot z12 = (b6,a6) ; draw z11--z12 ;
-%    \end{macrocode}
-% Now it's time for the lips. They need to be thicker then the chin
-% and edges of the eye, so we pickup a new pen.
-%    \begin{macrocode}
-  temp := 3c_d/5 ; pickup pensquare scaled temp ;
-  lft top z13 = (b5,a5) ; rt top z14 = (b6,a5) ; draw z13--z14 ;
-%    \end{macrocode}
-% It's time for the lower part of the face. Here we don't need to find
-% strange paths or the like, so we do it all with a \texttt{fill}
-% command. 
-%    \begin{macrocode}
-  z15 = (b6,a4) ; z16 = (b7,a4) ; z17 = (b7,a6) ; z18 = (b6,a6) ;
-  fill z15--z16--z17--z18--cycle ;
-%    \end{macrocode}
-% Since it is not know where the forehead will end at the top, or
-% where the nect will end in the bottom, we define some temporay
-% paths, and make up the real ones from those.
-%
-% First we need to declare the paths.
-%    \begin{macrocode}
-  path noselft, nosert, necklft, neckrt ;
-  path headcircle , parttop, partbot;
-%    \end{macrocode}
-% Then we build five temporary paths, one for each side of the
-% forehead and neck, and one for the surronding circle.
-%    \begin{macrocode}
-  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 ;
-  z27 = (w/2,h) ; z28 = (w,h/2) ; z29 = (w/2,0) ; z30 = (0,h/2) ; 
-  headcircle :=  z27..z28..z29..z30..cycle ;
-%    \end{macrocode}
-% Now we can determine the intersection points between our temporary
-% paths and the circle, and define the vectors we need.
-%
-% We also find the parts of the path \texttt{headcircle} that are
-% relevant for our to areas we need to fill. At last we can fill the
-% areas. 
-%    \begin{macrocode}
-  z31 = noselft intersectiontimes headcircle ;
-  z32 = nosert  intersectiontimes headcircle ;
-  parttop = subpath(y31,y32) of headcircle ;
-  z33 = neckrt  intersectiontimes headcircle ;
-  z34 = necklft intersectiontimes headcircle ;
-  partbot = subpath(y34,y33) of headcircle ;
-  fill z19--parttop--z22--cycle ;
-  fill z23--partbot--z26--cycle ;
-  penlabels(range 1 thru 34) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"04}
-% \Newestchanges{v2.0}{98/08/01}{Joseph Collins came up with the
-% analytic solution --- thanks JC.}
-% This is an interresting character. In version~1.0, I posed it as an
-% mathemathical puzzle, and engourage people to work on it, and if
-% they came up with a solution, pass it on to me. Well, Joseph Collins
-% \index{Collins, Joseph} did just that, and for this I owe him many
-% thanks. For more details on the problem and its solution, take a
-% look in appendix~\ref{app:solu}.
-%
-% First we define some pen sizes we want to use, the variable
-% \texttt{phi} and draw the circle around the character.
-%    \begin{macrocode}
-beginchar(hex"04",2l_h#,2l_h#,0) ; "The bauhaus-forms symbol" ;
-  phi := 36.673 ;
-  thn_pen := 2c_d/9 ; med_pen := 3c_d/9 ; thk_pen := 4c_d/9 ;
-  unicir(w/2,thn_pen,(w/2,w/2),20) ;
-%    \end{macrocode}
-% Then we define the three vertices of the triangle --- points $A,B,C$
-% in the notation of appendix~\ref{app:solu} --- and draw the curved
-% ends there. 
-%    \begin{macrocode}
-  z1 = (thn_pen+med_pen,h/2) ;
-  z2 = (.6433w-med_pen,.9790h-med_pen) ;
-  z3 = (.6433w-med_pen,.0210h+med_pen) ;
-  uniend(med_pen,z1,phi+90,270-phi,30) ;
-  uniend(med_pen,z2,0,phi+90,40) ;
-  uniend(med_pen,z3,270-phi,360,50) ;
-%    \end{macrocode}
-% After this, we calculate the rest of the points needed for the top
-% most edge of the triangle, line $|AC|$. Then we reflect it
-% horizontaly to get the bottom most line $|AB|$.
-%
-% Then we draw the vertical line $|BC|$ via a pen.
-%    \begin{macrocode}
-  z4 = z1 + med_pen*(-sind(phi),cosd(phi)) ;
-  z5 = z2 + med_pen*(-sind(phi),cosd(phi)) ;
-  path sl_line ; sl_line = z1--z4--z5--z2--cycle ; fill sl_line ;
-  fill sl_line reflectedabout((0,h/2),(w,h/2)) ;
-  pickup pensquare scaled med_pen ;
-  lft bot z6 = z2 ; lft top z7 = z3 ; draw z6--z7 ;
-%    \end{macrocode}
-% Now it's time for the four vertices $P,Q,R,S$ of the square. Again
-% we draw the cured ends at those four vertices. This time we use a
-% thicker pen.
-%    \begin{macrocode}
-  z8 = (.3687w+thk_pen,.2254h+thk_pen) ;
-  z9 = (.9179w-thk_pen,.2254h+thk_pen) ;
-  z10 = (.9179w-thk_pen,.7746h-thk_pen) ;
-  z11 = (.3687w+thk_pen,.7746h-thk_pen) ;
-  uniend(thk_pen,z8,180,270,60) ;
-  uniend(thk_pen,z9,270,360,70) ;
-  uniend(thk_pen,z10,0,90,80) ;
-  uniend(thk_pen,z11,90,180,90) ;
-%    \end{macrocode}
-% Finally we define the remaning needed vectors, and draw the edges
-% $|PQ|,|QR|,|RS|$ and $|SP|$ of the square.
-%    \begin{macrocode}
-  pickup pensquare scaled thk_pen ;
-  lft top z12 = z8  ; rt  top z13 = z9  ; draw z12--z13 ;
-  lft bot z14 = z9  ; lft top z15 = z10 ; draw z14--z15 ;
-  bot rt  z16 = z10 ; bot lft z17 = z11 ; draw z16--z17 ;
-  top rt  z18 = z11 ; bot rt  z19 = z8  ; draw z18--z19 ;
-  penlabels(range 1 thru 19) ;
-endchar ;
-
-%    \end{macrocode}
-% After these five characters we reset \texttt{currenttransform} to
-% include the slant specified by \texttt{slantratio}, so that the rest
-% of the font will come out as it slanted if such a font is begin made.
-%    \begin{macrocode}
-currenttransform := identity slanted slantratio ;
-
-%    \end{macrocode}
-% \end{fontcode}
-%
-% Next we provide 6 charecters not directly avaliable in the
-% \texttt{OT1}  encoding, but avaliable in the \texttt{T1} encoding of
-% the Cork fonts. These are \textunibf{\NG}, \textunibf{\TH},
-% \textunibf{\dh}, \textunibf{\ng}, and \textunibf{\th}, plus the
-% accent `ogoneck' (on an \textunibf{a} it looks like
-% \textunibf{\k{a}}).
-%
-% We do need to check again, wether we are making a small caps shaped
-% font, and if so, we should not generate the minuscles
-% \textunibf{\dh}, \textunibf{\ng}, and \textunibf{\th}.
-%
-% However, if we are making a \emph{strict} shaped font, then we need
-% to make the characters twice, and we employe the trick used in
-% \texttt{unilig.mf} again.
-% 
-% \begin{fontcode}{\char"05}
-% I am not completly happy with this character, but it was the best I
-% could think of. Please let me know if you have any kinds of
-% suggestions. 
-%    \begin{macrocode}
-if not caps :
-  for temp = 1,2 :
-    if temp = 2 : code_offset := 3 ; fi ;
-    beginchar(hex"05",x_w#,l_h#,0) ; "The letter eth" ;
-      unicir(w/2,p_t,(w/2,w/2),10) ;
-      uniarc(w/2,p_t,(w/2,h-w/2),0,120,20) ;
-      pickup unipensqu ;
-      top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ;
-      z3 = (w/2,h-w/2+p_t/sqrt(2)) ; z4 = (w/2+p_t/sqrt(2),h-w/2) ;
-      z5 = (w,h-p_t/sqrt(2))       ; z6 = (w-p_t/sqrt(2),h)       ;
-      fill z3--z4--z5--z6--cycle ;
-      penlabels(range 1 thru 6) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"06}
-% This is very much like \textunibf{n}, but has a longer rightmost
-% down stroke.
-%    \begin{macrocode}
-    beginchar(hex"06",x_w#,x_h#,p_d#) ; "The letter eng" ;
-      uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
-      pickup unipensqu ;
-      top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0)  ; draw z1--z2 ;
-      top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,-d) ; draw z3--z4 ;
-      penlabels(1,2,3,4) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"07}
-%    \begin{macrocode}
-    beginchar(hex"07",x_w#,l_h#,p_d#) ; "The letter thorn" ;
-      rad := (h+d)/4 ;
-      uniarc(rad,p_t,(w-rad,rad),-90,90,10) ;
-      pickup unipensqu ;
-      top lft z1 = (0,h) ; bot lft z2 = (0,-d) ; draw z1--z2 ;
-      top lft z3 = (p_t,2rad) ; top rt z4 = (w-rad,2rad) ;
-      bot lft z5 = (p_t,0)    ; bot rt z6 = (w-rad,0)    ;
-      draw z3--z4 ; draw z5--z6 ;
-      penlabels(range 1 thru 6) ;
-    endchar ;
-    exitif (not strict) ;
-    if temp = 2 : code_offset := 0 ; fi ;
-  endfor ;
-fi ;
-
-%    \end{macrocode}
-% \end{fontcode}
-%
-% Like in \texttt{unilig.mf} we now employe a trick to generate to
-% versions of the uppercase letters \textunibf{\NG} and
-% \textunibf{\TH}, that is \textunibsc{\ng} and \textunibsc{\th}.
-%
-% Since there us only two majuscules here, we might as well take
-% advantige of the extra slot, and make a small caps version of
-% \textunibf{\varQ}, so this is defined before \textunibf{\NG}, to
-% take the place of \textunibf{dh}.
-%     \begin{macrocode}
-if not strict :
-  for temp = 1,2 :
-    if temp = 2 : do_caps(-3) ; fi ;
-    
-%    \end{macrocode}
-% \begin{fontcode}{\char"08}
-% This is the variant of \textunibf{Q} based an \textunibf{P}. This
-% one is \emph{non}--default, you can acces this letter with
-% \Lcs{varQ}\footnote{I am somewhat troubled with the majuscle `Q',
-% because I don't know if the default one should be `\textunibf{Q}' or
-% `\textunibf{\varQ}'. I will keep both characters in the font, but if
-% enough wnats to chage the default, I will consider this
-% ofcourse. Tell me \emph{your} opinon!}.
-%    \begin{macrocode}
-    beginchar(hex"08",A_w#,l_h#,0) ; "The variant letter Q";
-      unicir(w/2,P_t,(w/2,h-w/2),10)
-      pickup Unipensqu ;
-      rt top z1 = (w,h-w/2) ; rt bot z2 = (w,0) ; draw z1--z2 ;
-      penlabels(1,2);
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"09}
-% This is similar to \textunibf{N}, execpt the rightmost vertical
-% stroke ends in an arc.
-%    \begin{macrocode}
-    beginchar(hex"09",A_w#,l_h#,0) ; "The letter Eng" ;
-      rad := 3C_d ;
-      uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ;
-      uniarc(rad,P_t,(w-rad,rad),-90,0,20) ;
-      pickup Unipensqu ;
-      top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0);  draw z1--z2 ;
-      top rt z3 = (w,h-w/2)  ; bot rt z4 = (w,rad) ;  draw z3--z4 ; 
-      penlabels(1,2,3,4) ;
-    endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"0A}
-%    \begin{macrocode}
-    beginchar(hex"0A",A_w#,l_h#,0) ; "The letter Thorn" ;
-      rad := h/4 ;
-      uniarc(rad,P_t,(w-rad,h/2),-90,90,10) ;
-      pickup Unipensqu ;
-      top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
-      top lft z3 = (P_t,h/2+rad) ; top rt z4 = (w-rad,h/2+rad) ;
-      bot lft z5 = (P_t,h/2-rad) ; bot rt z6 = (w-rad,h/2-rad) ;
-      draw z3--z4 ; draw z5--z6 ;
-      penlabels(range 1 thru 6) ;
-    endchar ;
-    exitif (not caps) ;
-    if temp = 2 : end_do_caps ; fi ;
-  endfor ;
-fi ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"0B}
-% This is actually a reversed cidelia accent.
-%    \begin{macrocode}
-beginchar(hex"0B",x_w#,x_h#,2c_d#) ; "The accent ogoneck" ;
-  uniarc(d/2,2P_T/3,(w/2-d/4,-d/2),-90,90,10) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"0C}
-% I chose to include the braces in the font, since you might needed
-% them, and the Computer Modern Roman braces, doesn't really go with
-% the rest of the font, so if you had to use those, it wouldn't look
-% very good. They are, however not in the standard position, since
-% that is already taken up.
-%    \begin{macrocode}
-beginchar(hex"0C",3c_d#,l_h#,p_d#) ; "The left brace ({)" ;
-  uniarc(2c_d,p_t,(3c_d,h-2c_d),90,180,10) ;
-  uniarc(2c_d,p_t,(3c_d,-d+2c_d),180,270,20) ;
-  pickup unipensqu ;
-  top lft z1 = (c_d,h-2c_d) ; bot lft z2 = (c_d,-d+2c_d) ; draw z1--z2 ;
-  lft z3 = (0,(h-d)/2) ; rt z4 = (c_d,(h-d)/2) ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"0D}
-% Discussion above.
-%    \begin{macrocode}
-beginchar(hex"0D",3c_d#,l_h#,p_d#) ; "The right brace (})" ;
-  uniarc(2c_d,p_t,(0,h-2c_d),0,90,10) ;
-  uniarc(2c_d,p_t,(0,-d+2c_d),270,360,20) ;
-  pickup unipensqu ;
-  top rt z1 = (w-c_d,h-2c_d) ; bot rt z2 = (w-c_d,-d+2c_d) ;
-  draw z1--z2 ;
-  rt z3 = (w,(h-d)/2) ; lft z4 = (w-c_d,(h-d)/2) ; draw z3--z4 ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"0E}
-% The paragraph sign is usually in the \texttt{cmsy} family, avaliable
-% in \texttt{OT1} encoding only, but for the same reasons as the
-% braces above, I decided to include this charater in the font.
-%    \begin{macrocode}
-beginchar(hex"0E",(l_h#+p_d#+2p_t#)/3,l_h#,p_d#) ;
-  "The Paragraph sign" ; 
-  uniarc(w/2,p_t,(w/2,h-w/2),30,270,10) ;
-  uniarc(w/2,p_t,(w/2,w/2-d),-150,90,20) ;
-  unicir(w/2,p_t,(w/2,(h-d)/2),30) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"0F}
-% I guess there are no real surprises here --- it's just a bar!
-%    \begin{macrocode}
-beginchar(hex"0F",p_t#,l_h#,p_d#) ; "The symbol bar (|)" ;
-  pickup unipensqu ;
-  lft top z1 = (0,h) ; lft bot z2 = (0,-d) ; draw z1--z2 ;
-  penlabels(1,2);
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% 
-% The next two characters is included, since I think it would be a
-% good idea to use \universal{} characters for German
-% quotation, instead of some Computer Modern Roman character, which
-% would be totally out of place.
-%
-% If you use the \textsf{uni} package you can say
-% \begin{verbatim}
-%   {\uni
-%     \guillemoleft Hello World\guillemoright\newline
-%     \guilsinglleft Hello World\guilsinglright}
-% \end{verbatim}
-% and get
-% \begin{quote}
-%   {\uni
-%     \guillemoleft Hello World\guillemoright\newline
-%     \guilsinglleft Hello World\guilsinglright}
-% \end{quote}
-%
-% \begin{fontcode}{\char"22}
-% This is quote a simple character. Do notice the nice use of
-% \texttt{uniend}, to produce the soft turn.
-%    \begin{macrocode}
-beginchar(hex"22",2x_w#/3,x_h#,0) ; "The single left guillomot" ;
-  z1 = (p_t,h/2) ; z2 = (w,h) ; phi := angle(z2-z1) ;
-  uniend(p_t,(z1),90+phi,270-phi,10) ;
-  z3 = (w-p_t/sind(phi),h) ; z4 = z1 + p_t*(-sind(phi),cosd(phi)) ;
-  path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ;
-  fill rombe reflectedabout ((0,h/2),(w,h/2)) ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-% \begin{fontcode}{\char"5C}
-%    \begin{macrocode}
-beginchar(hex"5C",2x_w#/3,x_h#,0) ; "The single right guillomot";
-  z1 = (w-p_t,h/2) ; z2 = (0,h) ; phi := 180-angle(z2-z1) ; 
-  uniend(p_t,(z1),phi-90,90-phi,10) ;
-  z3 = (p_t/sind(phi),h) ; z4 = z1 + p_t*(sind(phi),cosd(phi)) ;
-  path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ;
-  fill rombe reflectedabout ((0,h/2),(w,h/2)) ;
-  penlabels(1,2,3,4) ;
-endchar ;
-
-%    \end{macrocode}
-% \end{fontcode}
-%\iffalse
-%</ext>
-%\fi
-%\iffalse
-%<*font>
-%\fi
-% \section{Font driver files}\file{ful*.mf}
-%
-% This section describes the driver files
-% \texttt{uni}\meta{series}\meta{shape}\meta{size}\texttt{.mf}, where
-% \meta{series} is one of \texttt{r} (medium), or \texttt{bf}
-% (boldface), \meta{shape} one of upright (no letter), \texttt{sl}
-% (slanted), or \texttt{sc} (small caps), and \meta{size} is the
-% designsize in points, one of 8, 9, 10, 12, or 17.
-%
-% To make the source file shorter, I employed a little trick,
-% exploiting some of the features of the \textsf{docstrip}
-% program. That, on the other hand means that the line numbers you see
-% here, doesn't conform to the actual ones in the driver files.
-%
-% First we make sure the base file \texttt{unibase.mf} is loaded, but
-% not more then once in a run. This is needed since this file contains
-% all the macros and definitions for the font.
-% 
-%    \begin{macrocode}
-if unknown unibase : input unibase; fi;
-
-%    \end{macrocode}
-% Next we define some \textsl{boolean} variables, determining the
-% shape of the font we are to create. This are straight forward, and
-% should be self explanetory. Any number of variables may be set to
-% \texttt{true}, execpt that it makes no sense to define both
-% \texttt{bold} and \texttt{medium} to \texttt{true}, so this will be
-% considered an error, and a medium font will be made. (See alse the
-% explanation of the \texttt{start\_font} macro in the
-% \texttt{unibase.mf} section.)
-%
-% \begin{verbatim}
-%<+medium>medium := true ;
-%<+bold>bold := true ;
-%<+slanted>slant := true ;
-%<+caps>caps := true ;
-%<+strict>strict := true ; 
-%<+eight>start_font(8pt#) ;
-%<+nine>start_font(9pt#) ;
-%<+ten>start_font(10pt#) ;
-%<+twelve>start_font(12pt#) ;
-%<+seventeen>start_font(17pt#) ;
-%\end{verbatim}
-%
-% The next part of the files just inputs the nessecary source files,
-% and there is nothing special here. Finally we end the font with the
-% macro \texttt{end\_font}.
-%    \begin{macrocode}
-input uniupp ; input unilow ; input unidig ; input unispe ;
-input unilig ; input unipun ; input uniacc ; input uniext ;
-
-end_font;
-
-%    \end{macrocode}
-%\iffalse
-%</font>
-%\fi
-%\iffalse
-%<*docpackage>
-%\fi
-% \section{Commands for the Documentation --- \texttt{unidoc.sty}}
-% \file{unidoc.sty}\label{app:unidoc}
-%
-% \textsc{Warning:} Most of the macros defined in this file uses
-% \TeX{} primitivs like \Lcs{def} and \Lcs{let}, contorary to the
-% recommendations in \clsguide{}. This means you shouldn't try to use
-% this package in conjunction with normal \LaTeXe{} documents, since
-% it will not nessecarily by portable, and may generate unwanted
-% resaults. This package is \emph{only} intended for the documentation
-% of the \universal{} package, \emph{and nothing else!}
-%
-% \subsection{Initializing}
-% 
-% First we need to identify the package, its version and release 
-% date, etc.
-%    \begin{macrocode}
-\def\fileversion{v2.0}
-\def\filedate{98/08/01}
-\ProvidesPackage{unidoc}[\filedate\space\fileversion\space universal
-                         documenation package.]
-%    \end{macrocode}
-% Then we load some pacakges needed. \textsf{doc} is ofcourse needed
-% to do all the actual typesetting of macros etc., while \textsf{uni}
-% is needed for the fonts\footnote{This means ofcourse, that you
-% needed to have all the \MF{} sources ready, or in other words, you
-% should have run \texttt{uni.ins} through \LaTeX{}.}, and finally
-% \textsf{mflogo} is needed for the \MF{} logo.
-%    \begin{macrocode}
-\newif\ifeepic\eepicfalse
-\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{uni}}
-\ProcessOptions\relax
-\RequirePackage{doc}
-\RequirePackage{mflogo}
-\RequirePackage{uni}
-\IfFileExists{eepic.sty}{%
-  \RequirePackage{eepic}\eepictrue}{%
-  \PackageWarning{unidoc}{`eepic.sty' not found, so there will be no
-    pictures - you are warned.}\eepicfalse}
-
-%    \end{macrocode}
-%
-% \subsection{Macros for the Index}
-% 
-% \begin{macro}{\file}
-% First we save the argument --- the current output filename --- in a
-% command, set the codeline counter to zero (since every starts at
-% line 1, obviously). Then we check to see if we are outputting files
-% at all. If we are, we write an index entry.
-%    \begin{macrocode}
-\def\file#1{
-  \def\c at r{#1}
-  \c at CodelineNo0
-  \if at filesw
-    \immediate\write\@indexfile
-    {\string\indexentry{#1=\string\texttt{#1}%
-        \string\space(File)}%
-    {\thepage}}\fi}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\main}
-% This command is used be \texttt{doc.sty}, to choose the font for the
-% codelines numbers in the index. It is set to \texttt{typewriter}.
-%    \begin{macrocode}
-\def\main#1{\texttt{{\small\c at r}:\ #1}}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\src}
-% To make the index reflect, that more then one file is present, and
-% therefore more then one entry could have the same codeline number,
-% we put the file name before the codeline number in the index. The
-% name is gotten from the \Lcs{file} command. This ofcourse takes up
-% quite some space in the index, so later on we speciffy the index
-% to only have 2 columns.
-%    \begin{macrocode}
-\def\src#1#2{\texttt{{\small#1}:\ #2}}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fontcodeindex}
-% The next two commands are responsible for writting the index entries
-% of the above environments. They are similar to the \texttt{doc}
-% package command \Lcs{codeline at wrindex} but uses the filenames
-% defined by \Lcs{file} (via  the \Lcs{src} command), and the
-% \Lcs{fontcodeindex} uses a font appropiat for the font descriped
-% (i.e., \Lcs{FontCodeFont}) 
-%    \begin{macrocode}
-\def\fontcodeindex#1{%
-  \@bsphack\begingroup\let\_=\protect\_%
-  \special at index{%
-    \expandafter\string#1\actualchar%
-    {\string\FontCodeFont\space#1}%
-    \encapchar src{\c at r}}\endgroup\@esphack}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\fontmacroindex}
-%    \begin{macrocode}
-\def\fontmacroindex#1{%
-  \@bsphack\begingroup\let\_=\protect\_%
-  \special at index{%
-    \expandafter\string#1\actualchar%
-    {\string\MacroFont\space#1}%
-    \encapchar src{\c at r}}\endgroup\@esphack}
-  
-%    \end{macrocode}
-% \end{macro}
-%
-% \subsection{Descriptive Environments}
-% 
-% The next counters are to do some more advanced stuff on the on line
-% numbers in the index. Instead of just writting the beginning line of
-% the fontcode, we writte the complete interval of the fontcode. See
-% also the command \Lcs{f at ntcodeindex} and \Lcs{f at ntmacroindex}.
-%    \begin{macrocode}
-\newcount\startfontcodeline 
-\newcount\startfontmacroline
-
-%    \end{macrocode}
-% \begin{macro}{\fontcode}
-% \begin{macro}{\endfontcode}
-% \begin{macro}{\FontCodeFont}
-% Next comes two environments for descriping the font programs, and
-% font macros. They are similar to the environment \texttt{macro} in
-% the \texttt{doc} package. However, some alterations is made, so that
-% the right font is used in the index. (See also the
-% \Lcs{fontcodeindex} macro below.) Also, notice the defintion of
-% \Lcs{saved at macroname} and \Lcs{PrintFontName}. This is done so that
-% control sequnces in the argument to \texttt{fontcode} environment,
-% which should expand to a single letter, comes out expanded, rather
-% then the actual control sequences, which isn't wanted here.
-%    \begin{macrocode}
-\def\fontcode#1{
-  \def\saved at fontname{#1}
-  \let\temp at MF\MacroFont\let\MacroFont\FontCodeFont
-  \let\temp at PMN\PrintMacroName\let\PrintMacroName\PrintFontName
-  \let\temp at SMI\SpecialMainIndex
-  \let\SpecialMainIndex\fontcodeindex
-  \macro{#1}}
-\def\endfontcode{
-  \endmacro
-  \let\MacroFont\temp at MF
-  \let\SpecialMainIndex\temp at SMI
-  \let\PrintMacroName\temp at PMN}
-\let\FontCodeFont\unibf
-\def\PrintFontName#1{\strut\MacroFont\saved at fontname\ }
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\fontmacro}
-% \begin{macro}{\endfontmacro}
-% This is similar to \texttt{fontcode} environment, but is used to
-% descripe the macros of \texttt{unibase}. The reason why we employ to
-% environments, and not just one, is that the margin notes should come
-% out in \texttt{typewriter} font in this environment, while it
-% should be in \universal{} font above. 
-%    \begin{macrocode}
-\def\fontmacro#1{
-  \let\temp at under\_
-  \let\_\MacroUnderscore
-  \let\temp at SMI\SpecialMainIndex
-  \let\SpecialMainIndex\fontmacroindex
-  \macro{#1}}
-\def\endfontmacro{%
-  \endmacro\let\SpecialMainIndex\temp at SMI\let\_\temp at under}
-\def\MacroUnderscore{{\char"5F}}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%    \begin{macrocode}
-\let\beginillu\ifeepic
-\let\illuother\else
-\let\endillu\fi
-
-%    \end{macrocode}
-%
-% \subsection{Useful Commands}
-% 
-% \begin{macro}{\Newestchanges}
-% This macro is intended to be used like the \Lcs{changes} macro of
-% the \textsf{doc} package. However, it should only be used on the last
-% most change. But rather then just making an entry in the the
-% glossary, it will also print a line saying when this macro was last
-% changed. This is something like what is done in
-% \texttt{ltxguide.cls}, but a bit different, since in that class not
-% enough is being done glossary--wise, and too much is done
-% margin--wise. When making an update to a macro, the new
-% \Lcs{changes} should be made with \Lcs{Newestchanges}, and the old
-% \Lcs{Newestchanges} should be renamed to \Lcs{changes}. Notice that
-% \texttt{doc.sty} says \Lcs{def}\Lcs{saved at macroname}\texttt{\{\}},
-% so we can't say
-% \begin{verbatim}
-%   \ifx\saved at macroname\relax
-% \end{verbatim}
-% since \Lcs{relax} \emph{isn't} the same as an empty definition, but
-% \Lcs{@empty} is. In the case that \Lcs{saved at macroname} is defined
-% to something, then we put a  bullet ($\bullet$) in the margin, and
-% attach a footnote to it, where the footnote text contains the proper
-% information. Ofcourse this could led to a lot of footnotes, but the
-% alternative is to redefine the \texttt{macro} environment, and I
-% really didn't have the stomach for that, Sorry. Notice the use of
-% \Lcs{@gobble}, that removes the leading `v' in the version number.
-%    \begin{macrocode}
-\def\Newestchanges#1#2#3{
-  \ifx\saved at macroname\@empty%
-    \marginpar{\small\raggedright{\sl Change on} #2, {\sl Version}
-      \expandafter\@gobble#1}
-  \else%
-    \llap{$\bullet$\footnote{{\sl Change of }
-        {\MacroFont\expandafter\string\saved at macroname} 
-        {\sl on} #2, {\sl Version }\expandafter\@gobble#1}}
-  \fi
-  \changes{#1}{#2}{#3}}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\Lcs}
-% Finally we define a short hand for \Lcs{...}, to make the
-% documentaion easier.
-%    \begin{macrocode}
-\def\Lcs#1{\texttt{\char"5C{}#1}}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \subsubsection{The Font Charts}
-% 
-% \begin{macro}{\FontChart}
-% This macro is for typesetting a table of the font. It is taken from
-% \texttt{testfont.tex}.
-%
-% First we define some counters to use in the table. \Lcs{n} is the
-% counts the number of letters and symbols typeset so far, while
-% \Lcs{m} is counting the number of typeset characters in current
-% line. \Lcs{p} is a penalty counter. The dimension \Lcs{dim} is used
-% for setting the characters appropiate.
-%
-% We also define a new \Lcs{if}, used to see if we should go on.
-%
-% \Lcs{oct} and \Lcs{hex} are used for typesetting numbers in
-% octadecimal and hexadecimal notation respectivily.
-%    \begin{macrocode}
-\newcount\n\newcount\m\newcount\p\newdimen\dim
-\newif\ifskipping
-\def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}}
-\def\hex#1{\hbox{\rm\H{}\tt#1}} 
-
-%    \end{macrocode}
-% \begin{macro}{\setdigs}
-% This is used to set the counters \Lcs{n} and \Lcs{m} every time a
-% new (double) line is started.
-%    \begin{macrocode}
-\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}}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\testrow}
-% This is used to see how we should typeset the current row.
-%    \begin{macrocode}
-\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}}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\oddline}
-% This is used to typeset topmost line of a double line. It basically
-% just putting a line and some saces into the chart.
-%    \begin{macrocode}
-\def\oddline{
-  \cr\noalign{\nointerlineskip}\multispan{19}\hrulefill&
-  \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
-  \noalign{\nointerlineskip}}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\evenline}
-% This is used to typeset bottommost line of a double line. It
-% basically does the same as \Lcs{oddline}, but also checks to see if
-% we need to end the chart or go on.
-%    \begin{macrocode}
-\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}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\morechart}
-% This macro is called every time we need to typeset a new double line
-% of the chart.
-%    \begin{macrocode}
-\def\morechart{
-  \cr\noalign{\hrule\penalty5000}
-  \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m}
-  \chartline \evenline}
-
-%    \end{macrocode}
-% \end{macro}
-% \begin{macro}{\chartline}
-% \begin{macro}{\chartstrut}
-% \Lcs{chartline} is called every time we need to typeset a line of
-%  the chart. Notice it uses the macro \Lcs{:} to do the
-% job. \Lcs{chartstrut} is used to get approiate spacing.
-%    \begin{macrocode}
-\def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
-\def\chartstrut{\lower4.5pt\vbox to14pt{}}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\:}
-% \begin{macro}{\reposition}
-% \begin{macro}{\centerlargechars}
-% These macros are used for typesetting the actual characters in the
-% chart. \Lcs{:} gives the appropiate space for a character and
-% encriments the \Lcs{n} counter, while \Lcs{reposition} places the
-% character nicely in the the chart. \Lcs{centerlargechars} does the
-% same for {\large large} characters.
-%    \begin{macrocode}
-\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}$}}}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-% \begin{macro}{\chart}
-% \begin{macro}{\endchart}
-% These two macros is what starts and ends the chart. \Lcs{chart} sets
-% up the appropiate stuff, and writes the top most line in the
-% chart. \Lcs{endchart} is called by \Lcs{evenline} if no more
-% characters should be typeset, and then it finished everything off,
-% plus writes the last line of the chart.
-%    \begin{macrocode}
-\def\chart{$$\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}
-
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% Finally we get to the \emph{real} macro. This macro takes one
-% argument, the name of the \meta{font driver file}. We put the chart
-% inside a \texttt{figure} environment, so that we may refer to it
-% latter. This is done using the label \texttt{chart:}\meta{font driver
-% file}. The chart is encapsulated in a group, so that the definition
-% of \Lcs{chart at font} doesn't get in the way elsewhere in the document.
-%    \begin{macrocode}
-\def\FontChart#1{
-%%   \marginpar{\small\raggedright Letters and symbols in \texttt{#1} 
-%%      font.} 
-  \begin{figure}
-    \begingroup
-      \font\chart at font=#1
-      \chart at font
-      \chart
-   \endgroup
-\end{figure}}
-
-%    \end{macrocode}
-% \end{macro}
-%
-% \subsection{Parameters and Miscillaneous Commands}
-% 
-% This is used --- as explaind in \texttt{doc.dvi} --- to give a
-% different prologue to the index, more suitable to our needs.
-%    \begin{macrocode}
-\IndexPrologue{%
-  \section{Index}\markboth{Index}{Index}
-  The Numbers written in \textit{italic} refer to the pages, where
-  a macros usage is descriped, while those in \texttt{typewrite} refer 
-  to line numbers in the files, mentioned before, where the definition 
-  is, while \textsl{slanted} shows the places it is used. Normal letters 
-  refer to pages, wether it be descriptions or usage.}
-\GlossaryPrologue{%
-  \section{Change History}\markboth{Change History}{Change History}
-  Below is listed the changes made to the \universal{} font and the
-  \LaTeX{} support package \textsf{uni}, from version~1.0 to 2.0.}
-
-%    \end{macrocode}
-% Also we set the number of columns in the index to 2, since some
-% space is needed for the entries
-%    \begin{macrocode}
-\setcounter{IndexColumns}{2}
-
-%    \end{macrocode}
-% We don't want the index flutted with silly command sequences, so we
-% leave some of them out.
-%    \begin{macrocode}
-\DoNotIndex{\@bsphack,\@empty,\@esphack,\@gobble,\@ifnextchar,%
-  \@ifundefined,\@indexfile,\@onlypreamble,\iffalse,\_,\,\accent,%
-  \aftergroup,\actualchar,\advance,\begin,\begingroup,\bgroup,%
-  \box,\bullet,\changes,\char,\chardef,\CheckModules,\CodeLineIndex,%
-  \cr,\crcr,\csname,\DeclareFontFamily,\DeclareFontShape,\DeclareMacro,%
-  \dim,\divide,\dp,\DeclareOption,\def,\DoNotIndex,\edef,\egroup,\else,%
-  \end,\endcsname,\EnableCrossrefs,\encapchar,\endgroup,\endmacro,%
-  \expandafter,\fbox,\fi,\font,\footnote,\fontemcoding,\fontfamuliy,%
-  \fontseries,\fontshape,\gdef,\global,\H,\h,\halign,\hbox,\hfil,%
-  \hidewidth,\hrule,\hrulefill,\hsize,\ht,\hyphenchar,\if at filesw,%
-  \ifdim,\IfFileExists,\ifnum,\ifskipping,\ifx,\immediate,\indexentry,%
-  \it,\itdefault,\kern,\lastpenalty,\LaTeX,\LaTeXe,\leavevmode,\let,%
-  \llap,\loop,\lower,\m,\macro,\MacroFont,\marginpar,\marginparwidth,%
-  \markboth,\mdseries,\meaning,\multiply,\multispan,\n,\newcommand,%
-  \newcount,\newdimen,\newif,\newline,\next,\noalign,\noexpand,%
-  \nointerlineskip,\not at math@alphabet,\null,\ooalign,\p,\par,\penalty,%
-  \ProcessOptions,\protect,\ProvidesFile,\ProvidesPackage,%
-  \RecordChanges,\raggedright,\raise,\relax,\renewcommand,\repeat,%
-  \RequirePackage,\rm,\saved at macroname,\scshape,\section,\selectfont,%
-  \setcounter,\setbox,\show,\skippingfalse,\skippingture,\sl,\slshape,%
-  \small,\smash,\space,\special at index,\SpecialMainIndex,\stop,\string,%
-  \strut,\tabskip,\TeX,\TeXbook,\textit,\textsf,\textsl,\texttt,\the,%
-  \thepage,\tt,\typeout,\unhbox,\universal,\upshape,\usefont,\vbox,%
-  \vcenter,\vrule,\write,\xdef,\z@}
-
-%    \end{macrocode}
-% And then we define the behaviour of the \textsf{doc} package, by
-% setting a number of flags (as explained in the documentation of the
-% \textsf{doc} package). We also set the margin paragraph widths to be
-% a bit smaller then usual.
-%     \begin{macrocode}
-\EnableCrossrefs
-\CodelineIndex
-\RecordChanges
-\CheckModules
-\marginparwidth=54pt
-\newcommand{\NFSS}{\textsf{NFSS}}
-\newcommand{\ftnguide}{\textit{\LaTeXe{} Font Selection}}
-\newcommand{\clsguide}{
-  \textit{\LaTeXe{} for Class and Packages Writers}}
-\newcommand{\TeXbook}{\TeX\textsf{book}}
-\newcommand{\MFbook}{\MF\textsf{book}}
-\newcommand{\universal}{\textunibf{universal}}
-
-%    \end{macrocode}
-%\iffalse
-%</docpackage>
-%\fi
-% \Finale
-% \appendix
-%
-% \section{Solution to the \Lcs{bauhausforms} problem}
-% \label{app:solu}
-%
-% \subsection{The Problem}
-% This I owe to Joseph Collins \texttt{<collins at ARL.MIL>}.
-%
-% During the preperation of version~1.0 of this font, I was loosing
-% sleep over what I chose to call `The \Lcs{bauhausforms}
-% problem', after the problems the symbol \textuni{\bauforms} gave
-% me. 
-%
-% As can be seen from the symbol, the idea is to make a figure out of
-% a circle, a square, and a triangle. From these three figures you can
-% ofcourse make infinitly many figures, even though the sizes are
-% limited. The particular combination of the three figures I was
-% looking, first seemed simple\footnote{And after having seen Mr.\
-% Collins solution, it did again.}, but turned out to be
-% difficult. What I wanted to do was (see also
-% figure~\ref{fig:bauforms}):
-% \begin{quote}
-%   Take a circle of some radius (e.g., 1). Inside this circle draw a
-%   isosceles triangle $\bigtriangleup ABC$, with all vertices on the
-%   circle, The singular vertice $A$ placed on the horizontal line
-%   traveling left from the center of the circle.
-%
-%   Now draw a square $\Box PQRS$ inside of the circle, having two
-%   vertices on the circle, and two on the triangle.
-%
-%   The wanted triangle and square are such that, the opposing side of
-%   the singular vertice $|BC|$ should divede the square into to equal
-%   oblongs, i.e., intersect $|PQ|$ midway between $P$ and $Q$.
-% \end{quote}
-%
-% \begin{figure}[htbp]
-%   \centering
-%   \beginillu
-%     \setlength{\unitlength}{.05\textwidth}
-%     \begin{picture}(10,10)
-%       \thinlines
-%       \put(-1,5){\line(1,0){12}}
-%       \put(5,-1){\line(0,1){12}}
-%       \thicklines
-%       \put(5,5){\circle{10}}
-%       \put(0,5){\line(100,74){6.521}}
-%       \put(0,5){\line(100,-74){6.521}}
-%       \put(6.4330,0.2097){\line(0,1){9.5805}}
-%       \put(3.6873,7.7457){\line(1,0){5.4914}}
-%       \put(3.6873,2.2543){\line(1,0){5.4914}}
-%       \put(3.6873,2.2543){\line(0,1){5.4914}}
-%       \put(9.1787,2.2543){\line(0,1){5.4914}}
-%       \put(0,5){\mbox{$A$}}
-%       \put(6.4330,0.2097){\mbox{$B$}}
-%       \put(6.4330,5){\mbox{$B^\prime$}}
-%       \put(6.4330,9.7903){\mbox{$C$}}
-%       \put(3.6873,2.2543){\mbox{$P$}}
-%       \put(3.6873,5){\mbox{$P^\prime$}}
-%       \put(9.1787,2.2543){\mbox{$Q$}}
-%       \put(9.1787,5){\mbox{$Q^\prime$}}
-%       \put(9.1787,7.7457){\mbox{$R$}}
-%       \put(3.6873,7.7457){\mbox{$S$}}
-%       \put(5,5){\mbox{$O$}}
-%       \put(0,5){\arc{1}{0}{0.6401}}
-%       \put(0,4.5){\mbox{$\varphi$}}
-%     \end{picture}
-%   \illuother
-%     \begin{tabular}{%
-%     @{\vline\extracolsep{1em}\space}%
-%     p{.8\textwidth}%
-%     @{\space\vline}}
-%       \hline
-%       Since you are processing this document without the
-%       \textsf{eepic} package, you will not see the illustration
-%       otherwise here. To compensate, I will give you a short
-%       description on how to draw the figure yourself.
-%       
-%       Take out some paper, a pencil, compasses, and a ruler. Now
-%       draw a circle of some radius $r$, with its center in origo of
-%       a Cartisean coordinate system. In the next subsection, you
-%       will find the coordinates for points $A,B,C,O,P,Q,R,$ and $S$
-%       expressed in terms of $x,y,$ and $h$. You will also find the
-%       correct values for $x,y,h$ in that section. Multiply those
-%       values with $r$, and plot the points above in the coordinate
-%       system. Draw the triangle $\bigtriangleup ABC$, and the square
-%       $\Box PQRS$, and --- voila, you have the  illustration.\\
-%       \hline
-%     \end{tabular}
-%   \endillu
-%   \caption{The \Lcs{bauforms} problem.}\label{fig:bauforms}
-% \end{figure}
-% 
-% This shouldn't be to difficult, should it. Well I didn't think so,
-% but after many late evenings with pen, paper, ruler, compasses, and
-% heavy use of trigonometric relations, I found out that the half
-% $\varphi$ of the singular vertice should obey:
-% \begin{eqnarray}
-% 0 &=& \sin \left( \cos^{-1} \left( \frac{\cos2\varphi}{\sqrt{2}}
-%         \right) \right) - \frac{\cos2\varphi}{\sqrt{2}}\nonumber\\
-% & & - 2\sqrt{2}
-%       \frac{\cos\varphi^2\sin\varphi}{\cos\varphi+\sin\varphi}
-%       \nonumber  
-% \end{eqnarray}
-% Now I dare you to find the exact solution to that.
-%
-% Using numerical methodes (Newton's method), was ofcourse no
-% problem, and gave satesfactory resualt. If the expression on the
-% right above is labelled $f$, $f^\prime$ is:
-% \begin{eqnarray}
-% f^\prime &=& \frac{\sin4\varphi}{2\sqrt{\frac{3-\cos4\varphi}{4}}}
-%    + \sqrt{2}\sin2\varphi\nonumber\\
-% & & - \frac{2\sqrt{2}\cos\varphi}{\cos\varphi+\sin\varphi^2}
-%       \left( \left( \cos\varphi+\sin\varphi \right)
-%          \left( \cos^2\varphi-2\sin^22\varphi \right)\right. \nonumber\\ 
-% & & - \quad \left.\left( \cos\varphi-\sin\varphi \right)
-%          \cos^2\varphi\sin\varphi \right) \nonumber
-% \end{eqnarray}
-% Using these expressions for $f$ and $f^\prime$ in a \textsf{Fortran}
-% program, I reached resaults close to what Mr.\ Collins found.
-%
-% \subsection{Joseph Collins' Solution}
-%
-% In Mr.\ Collins notation, the points on figure~\ref{fig:bauforms}
-% has the following coordinates:
-% \begin{eqnarray*}
-%   A = (0,-1)  & B^\prime = (x,0)   & C = (x,y)\\
-%   O = (0,0)   & P^\prime = (x-h,0) & Q^\prime = (x+h,0)\\
-%   R = (x+h,h) & S = (x-h,h) & \\
-% \end{eqnarray*}
-% Below is what Mr.\ Collins wrote me --- thank you very much.
-%
-% On the unit circle
-% \begin{equation}\label{eq:uc}
-%   x^2 + y^2 = 1
-% \end{equation}
-% we have the vertices of a triangle at $(-1,0)$, $(x,y)$, and
-% $(x,-y)$. A square has four vertices $(x \pm h, \pm h)$, where the
-% two points $(x-h, \pm h)$ lie on the triangle (constraint A) and the
-% two points $(x+h, \pm h)$ lie on the circle (constraint B).  Thus,
-% the vertical side of the triangle bisects the square.  From
-% constraint A, upon consideration of similar triangles, we have
-% $$\frac{y}{1+x} = \frac{h}{1+x-h}, \quad \mbox{so that}\quad
-%   h =  \frac{(1+x) y }{1+x+y}.$$
-% By (\ref{eq:uc}), this is
-% \begin{equation} \label{eq:b1}
-%   h = \frac{(1+x)\sqrt{1-x^2}}{1+x+\sqrt{1-x^2}} .
-% \end{equation}
-% From constraint B, we get
-% \begin{equation} \label{eq:b2}
-%   (x+h)^2 + h^2 = 1  .
-% \end{equation}
-% Any simultaneous solution of (\ref{eq:b1}) and (\ref{eq:b2}) is also a
-% solution of
-% \begin{equation}\label{eq:eqn}
-%   8x^3 - 4x^2 - 3x + 1 = 0,
-% \end{equation}
-% the relevant solution being
-% \begin{equation}  \label{eq:sol}
-%   x = \frac16 + \sqrt{\frac{11}{18}} \sin
-%   \left[ \frac{\pi}{6}
-%     - \frac13 \arctan\left(\frac{3\sqrt{237}}{23}\right) \right].
-% \end{equation}
-% Equation (\ref{eq:eqn}) and solution (\ref{eq:sol}) courtesy of
-% Mathematica. We get $y$ and $h$ from (\ref{eq:uc}) and
-% (\ref{eq:b1}), respectively. The angle at $(-1,0)$ is $\varphi = 2
-% \arctan\bigl(y/(1+x)\bigr)$. 
-%
-% Approximate values are
-% \begin{eqnarray*}
-%   x &\simeq& 0.2865914\\
-%   y &\simeq&  0.9580529\\
-%   h &\simeq& 0.5491394 \\
-%   \varphi &\simeq&  1.280129 \ ( \simeq  73.346^o)
-% \end{eqnarray*}
-% 
-% \section{Copyrights --- GNU General Public Lisence}
-% \label{app:ggpl}
-%
-% This \MF{} implementation of the ``universal'' font and the \LaTeX{}
-% support package ``uni'' copyright \copyright{} 1998  Christian Holm.
-%
-% This program 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. 
-%
-% This program is distributed in the hope that it will be useful, but
-% \textsc{without any warranty}; without even the implied warranty 
-% of \textsc{merchantability} or \textsc{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
-% \begin{quote}
-%   The Free Software Foundation, Inc.\\
-%   675 Mass Ave\\
-%   Cambridge\\
-%   MA 02139\\
-%   USA
-% \end{quote}
-%
-% See the file \texttt{copyright} in the distribution for the complete
-% GNU General Public License.
-% 
-% You can reach the me (the copyright holder) at
-% \begin{quote}
-%   Christian Holm\\
-%   Sankt Hansgade 23, 1.\ th.\\
-%   DK--2200 Copenhagen N\\
-%   Denmark\\
-%   E--mail: \texttt{cholm at nbi.dk} or \texttt{cholm at fys.ku.dk}
-% \end{quote}
-% 
-% \section{Wishlist}
-%
-% Below is a list of things I would like to do with the font and
-% package. If anyone has any suggestions, ready--made code, or new
-% ideas, please let me know.
-%
-% If you would like to take on one or more of the tasks presented
-% below, please do so, but send me a note so that I may coordinate
-% with my own efforts, and perhaps have a constructive dicourse.
-% 
-% I should however instruct you to read the \emph{complete}
-% documentation of the package and font, since this may give some
-% reasons why I have chosen a particular approach.
-%
-% \begin{itemize}
-% \item Make the font an 8--bit encoded (256 characters) font,
-%   conforming somewhat to the \texttt{T1} encoding of the Cork fonts.
-% \item Making a package (perhaps \textsf{mfdoc}), to make
-%   documentation of \MF{} sources, just like \textsf{doc} is fore
-%   \LaTeX{} sources. This is ofcourse a independent project, and I
-%   will proberly not work on it.
-% \end{itemize}
-% \clearpage
-% \section{Font Charts}
-% \label{app:charts}
-%
-% Below are some charts of the \universal{} font in different series
-% and shapes (medium upright, bold upright, medium slanted, medium
-% small caps), all in size \texttt{8pt}.
-% 
-% \FontChart{fulmr8.mf}
-% \FontChart{fulmo8.mf}
-% \FontChart{fulmc8.mf}
-% \FontChart{fulmst8.mf}
-% \FontChart{fulbr8.mf}
-% \clearpage

Deleted: trunk/Master/texmf-dist/source/fonts/universa/uni.ins
===================================================================
--- trunk/Master/texmf-dist/source/fonts/universa/uni.ins	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/source/fonts/universa/uni.ins	2019-08-29 22:50:25 UTC (rev 51984)
@@ -1,180 +0,0 @@
-%%
-%% This is file `uni.ins', the installation file for the
-%% `universal' package.
-%%
-%% Copyright (C) 1998 Christian Holm.
-%%
-%% The universal package is free software; you can redistribute it
-%% and/or modify it under the terms of the GNU General Public License
-%% as published by the Free Software Foundation; either version 2 of
-%% the License, or (at your option) any later version.
-%%
-%% The universal package is distributed in the hope that it will be
-%% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
-%% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-%% GNU General Public License for more details.
-%%
-%% You should have received a copy of the GNU General Public License
-%% along with this package; if not, write to the Free Software
-%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-%%
-
-\input docstrip.tex
-\keepsilent
-\declarepreamble\long
-
-Copyright (C) 1998 Christian Holm.
-
-This file is NOT the source for universal, because almost all 
-comments have been stripped from it.  It is NOT the preferred 
-form of universal for making modifications to it.
-
-Therefore you can NOT redistribute and/or modify THIS file.  
-You can however redistribute the complete source (uni.dtx 
-and uni.ins) and/or modify it under the terms of the GNU 
-General Public License as published by the Free Software 
-Foundation; either version 2, or (at your option) any later 
-version.
-
-The universal font and package is distributed in the hope that 
-it will be useful, but WITHOUT ANY WARRANTY; without even the 
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-PURPOSE.  See the GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public 
-License along with this package; if not, write to the 
-  Free Software Foundation, Inc., 
-  675 Mass Ave, Cambridge, 
-  MA 02139, USA.
-
-See the file uni.dtx for further comments and documentation.
-
-\endpreamble
-
-\declarepreamble\short
-
-Copyright (C) 1998 Christian Holm.
-
-The universal font and package is distributed in the hope that 
-it will be useful, but WITHOUT ANY WARRANTY; without even the 
-implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
-PURPOSE.  See the GNU General Public License for more details.
-
-See the file uni.dtx for further comments and documentation.
-
-\endpreamble
-
-\usepreamble\long
-\usedir{tex/latex/universa}
-\Msg{***********************************************************}
-\Msg{* Generating LaTeX files}
-\Msg{***********************************************************}
-\generate{\file{uni.sty}{\from{uni.dtx}{package}}
-          \file{omluni.fd}{\from{uni.dtx}{oml}}
-          \file{omsuni.fd}{\from{uni.dtx}{oms}}
-          \file{ot1uni.fd}{\from{uni.dtx}{ot1}}
-          \file{t1uni.fd}{\from{uni.dtx}{t1}}
-          \file{uuni.fd}{\from{uni.dtx}{u}}}
-\usedir{doc/latex/universa}
-\Msg{***********************************************************}
-\Msg{* Generating Documentation files}
-\Msg{***********************************************************}
-\generate{\file{unidoc.sty}{\from{uni.dtx}{docpackage}}
-          \file{copyright}{\from{uni.dtx}{copyright}}}
-\usedir{fonts/source/public/universa}
-\Msg{***********************************************************}
-\Msg{* Generating METAFONT base file}
-\Msg{***********************************************************}
-\generate{\file{unibase.mf}{\from{uni.dtx}{unibase}}}
-\usepreamble\short
-\Msg{***********************************************************}
-\Msg{* Generating upright medium driver files}
-\Msg{***********************************************************}
-\generate{\file{fulmr8.mf}{\from{uni.dtx}{font,medium,eight}}
-          \file{fulmr9.mf}{\from{uni.dtx}{font,medium,nine}}
-          \file{fulmr10.mf}{\from{uni.dtx}{font,medium,ten}}
-          \file{fulmr12.mf}{\from{uni.dtx}{font,medium,twelve}}
-          \file{fulmr17.mf}{\from{uni.dtx}{font,medium,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating upright bold face driver files}
-\Msg{***********************************************************}
-\generate{\file{fulbr8.mf}{\from{uni.dtx}{font,bold,eight}}
-          \file{fulbr9.mf}{\from{uni.dtx}{font,bold,nine}}
-          \file{fulbr10.mf}{\from{uni.dtx}{font,bold,ten}}
-          \file{fulbr12.mf}{\from{uni.dtx}{font,bold,twelve}}
-          \file{fulbr17.mf}{\from{uni.dtx}{font,bold,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating slanted medium driver files}
-\Msg{***********************************************************}
-\generate{\file{fulmo8.mf}{\from{uni.dtx}{font,medium,slanted,eight}}
-          \file{fulmo9.mf}{\from{uni.dtx}{font,medium,slanted,nine}}
-          \file{fulmo10.mf}{\from{uni.dtx}{font,medium,slanted,ten}}
-          \file{fulmo12.mf}{\from{uni.dtx}{font,medium,slanted,twelve}}
-          \file{fulmo17.mf}{\from{uni.dtx}{font,medium,slanted,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating small caps medium driver files}
-\Msg{***********************************************************}
-\generate{\file{fulmc8.mf}{\from{uni.dtx}{font,medium,caps,eight}}
-          \file{fulmc9.mf}{\from{uni.dtx}{font,medium,caps,nine}}
-          \file{fulmc10.mf}{\from{uni.dtx}{font,medium,caps,ten}}
-          \file{fulmc12.mf}{\from{uni.dtx}{font,medium,caps,twelve}}
-          \file{fulmc17.mf}{\from{uni.dtx}{font,medium,caps,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating strict medium driver files}
-\Msg{***********************************************************}
-\generate{\file{fulmst8.mf}{\from{uni.dtx}{font,medium,strict,eight}}
-          \file{fulmst9.mf}{\from{uni.dtx}{font,medium,strict,nine}}
-          \file{fulmst10.mf}{\from{uni.dtx}{font,medium,strict,ten}}
-          \file{fulmst12.mf}{\from{uni.dtx}{font,medium,strict,twelve}}
-          \file{fulmst17.mf}{\from{uni.dtx}{font,medium,strict,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating slanted bold face driver files}
-\Msg{***********************************************************}
-\generate{\file{fulbo8.mf}{\from{uni.dtx}{font,bold,slanted,eight}}
-          \file{fulbo9.mf}{\from{uni.dtx}{font,bold,slanted,nine}}
-          \file{fulbo10.mf}{\from{uni.dtx}{font,bold,slanted,ten}}
-          \file{fulbo12.mf}{\from{uni.dtx}{font,bold,slanted,twelve}}
-          \file{fulbo17.mf}{\from{uni.dtx}{font,bold,slanted,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating small caps bold face driver files}
-\Msg{***********************************************************}
-\generate{\file{fulbc8.mf}{\from{uni.dtx}{font,bold,caps,eight}}
-          \file{fulbc9.mf}{\from{uni.dtx}{font,bold,caps,nine}}
-          \file{fulbc10.mf}{\from{uni.dtx}{font,bold,caps,ten}}
-          \file{fulbc12.mf}{\from{uni.dtx}{font,bold,caps,twelve}}
-          \file{fulbc17.mf}{\from{uni.dtx}{font,bold,caps,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating strict bold face driver files}
-\Msg{***********************************************************}
-\generate{\file{fulbst8.mf}{\from{uni.dtx}{font,bold,strict,eight}}
-          \file{fulbst9.mf}{\from{uni.dtx}{font,bold,strict,nine}}
-          \file{fulbst10.mf}{\from{uni.dtx}{font,bold,strict,ten}}
-          \file{fulbst12.mf}{\from{uni.dtx}{font,bold,strict,twelve}}
-          \file{fulbst17.mf}{\from{uni.dtx}{font,bold,strict,seventeen}}}
-\Msg{***********************************************************}
-\Msg{* Generating font program files}
-\Msg{***********************************************************}
-\generate{\file{uniupp.mf}{\from{uni.dtx}{upp}}
-          \file{unilow.mf}{\from{uni.dtx}{low}}
-          \file{unidig.mf}{\from{uni.dtx}{dig}}
-          \file{unispe.mf}{\from{uni.dtx}{spe}}
-          \file{unilig.mf}{\from{uni.dtx}{lig}}
-          \file{unipun.mf}{\from{uni.dtx}{pun}}
-          \file{uniacc.mf}{\from{uni.dtx}{acc}}
-          \file{uniext.mf}{\from{uni.dtx}{ext}}}
-
-\Msg{***********************************************************}
-\Msg{* To finish the installation you have to move the files}
-\Msg{* `uni.sty' `*.fd' into a directory searched by TeX, and}
-\Msg{* the files `*.mf' to a directory searched by Metafont.}
-\Msg{*}
-\Msg{* To produce the documentation do:}
-\Msg{*\space\space latex uni.dtx}
-\Msg{*\space\space latex uni.dtx}
-\Msg{*\space\space makeindex -s gind -o uni.ind uni.idx}
-\Msg{*\space\space makeindex -s gglo -o uni.gls uni.glo}
-\Msg{*\space\space latex uni.dtx}
-\Msg{*\space\space latex uni.dtx}
-\Msg{* or whatever appropiate for your system.}
-\Msg{***********************************************************}
-\endbatchfile

Added: trunk/Master/texmf-dist/source/fonts/universa/universa.dtx
===================================================================
--- trunk/Master/texmf-dist/source/fonts/universa/universa.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/fonts/universa/universa.dtx	2019-08-29 22:50:25 UTC (rev 51984)
@@ -0,0 +1,5898 @@
+% \iffalse
+%<*(package|oml|oms|ot1|t1|u)>
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
+%</(package|oml|oms|ot1|t1|u)>
+% \fi
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{unidoc,latexsym}
+\OnlyDescription %For short description of font and package.
+% \AlsoImplementation %For full description of font and package.
+\title{The \universal{} Font\\ \normalsize{Version \unifileversion}}
+\author{Christian Holm\thanks{E--mail: \texttt{<cholmcc at gmail.com>}}}
+\date{\unifiledate}
+\begin{document}
+\maketitle
+\begin{abstract}
+  This is my implementation of Herbert Bayer's ``universal'' font in
+  \MF{} for \TeX{} and \LaTeX{}. Extensive support for \LaTeX{} is
+  supplied. This font is in no way intended to be a correct, not to
+  mention a comlpete implementation of Herbert Bayer's original
+  design. This document describes how to use the font with \LaTeX{},
+  and also the source code for the characters of the font.
+\end{abstract}
+\tableofcontents
+\DocInput{universa.dtx}
+\appendix
+
+\section{Solution to the \Lcs{bauhausforms} problem}
+\label{app:solu}
+
+\subsection{The Problem}
+This I owe to Joseph Collins \texttt{<collins at ARL.MIL>}.
+
+During the preperation of version~1.0 of this font, I was loosing
+sleep over what I chose to call `The \Lcs{bauhausforms}
+problem', after the problems the symbol \textuni{\bauforms} gave
+me. 
+
+As can be seen from the symbol, the idea is to make a figure out of
+a circle, a square, and a triangle. From these three figures you can
+ofcourse make infinitly many figures, even though the sizes are
+limited. The particular combination of the three figures I was
+looking, first seemed simple\footnote{And after having seen Mr.\
+Collins solution, it did again.}, but turned out to be
+difficult. What I wanted to do was (see also
+figure~\ref{fig:bauforms}):
+\begin{quote}
+  Take a circle of some radius (e.g., 1). Inside this circle draw a
+  isosceles triangle $\bigtriangleup ABC$, with all vertices on the
+  circle, The singular vertice $A$ placed on the horizontal line
+  traveling left from the center of the circle.
+
+  Now draw a square $\Box PQRS$ inside of the circle, having two
+  vertices on the circle, and two on the triangle.
+
+  The wanted triangle and square are such that, the opposing side of
+  the singular vertice $|BC|$ should divede the square into to equal
+  oblongs, i.e., intersect $|PQ|$ midway between $P$ and $Q$.
+\end{quote}
+
+\begin{figure}[htbp]
+  \centering
+  \beginillu
+    \setlength{\unitlength}{.05\textwidth}
+    \begin{picture}(10,10)
+      \thinlines
+      \put(-1,5){\line(1,0){12}}
+      \put(5,-1){\line(0,1){12}}
+      \thicklines
+      \put(5,5){\circle{10}}
+      \put(0,5){\line(100,74){6.521}}
+      \put(0,5){\line(100,-74){6.521}}
+      \put(6.4330,0.2097){\line(0,1){9.5805}}
+      \put(3.6873,7.7457){\line(1,0){5.4914}}
+      \put(3.6873,2.2543){\line(1,0){5.4914}}
+      \put(3.6873,2.2543){\line(0,1){5.4914}}
+      \put(9.1787,2.2543){\line(0,1){5.4914}}
+      \put(0,5){\mbox{$A$}}
+      \put(6.4330,0.2097){\mbox{$B$}}
+      \put(6.4330,5){\mbox{$B^\prime$}}
+      \put(6.4330,9.7903){\mbox{$C$}}
+      \put(3.6873,2.2543){\mbox{$P$}}
+      \put(3.6873,5){\mbox{$P^\prime$}}
+      \put(9.1787,2.2543){\mbox{$Q$}}
+      \put(9.1787,5){\mbox{$Q^\prime$}}
+      \put(9.1787,7.7457){\mbox{$R$}}
+      \put(3.6873,7.7457){\mbox{$S$}}
+      \put(5,5){\mbox{$O$}}
+      \put(0,5){\arc{1}{0}{0.6401}}
+      \put(0,4.5){\mbox{$\varphi$}}
+    \end{picture}
+  \illuother
+    \begin{tabular}{%
+    @{\vline\extracolsep{1em}\space}%
+    p{.8\textwidth}%
+    @{\space\vline}}
+      \hline
+      Since you are processing this document without the
+      \textsf{eepic} package, you will not see the illustration
+      otherwise here. To compensate, I will give you a short
+      description on how to draw the figure yourself.
+      
+      Take out some paper, a pencil, compasses, and a ruler. Now
+      draw a circle of some radius $r$, with its center in origo of
+      a Cartisean coordinate system. In the next subsection, you
+      will find the coordinates for points $A,B,C,O,P,Q,R,$ and $S$
+      expressed in terms of $x,y,$ and $h$. You will also find the
+      correct values for $x,y,h$ in that section. Multiply those
+      values with $r$, and plot the points above in the coordinate
+      system. Draw the triangle $\bigtriangleup ABC$, and the square
+      $\Box PQRS$, and --- voila, you have the  illustration.\\
+      \hline
+    \end{tabular}
+  \endillu
+  \caption{The \Lcs{bauforms} problem.}\label{fig:bauforms}
+\end{figure}
+
+This shouldn't be to difficult, should it. Well I didn't think so,
+but after many late evenings with pen, paper, ruler, compasses, and
+heavy use of trigonometric relations, I found out that the half
+$\varphi$ of the singular vertice should obey:
+\begin{eqnarray}
+0 &=& \sin \left( \cos^{-1} \left( \frac{\cos2\varphi}{\sqrt{2}}
+        \right) \right) - \frac{\cos2\varphi}{\sqrt{2}}\nonumber\\
+& & - 2\sqrt{2}
+      \frac{\cos\varphi^2\sin\varphi}{\cos\varphi+\sin\varphi}
+      \nonumber  
+\end{eqnarray}
+Now I dare you to find the exact solution to that.
+
+Using numerical methodes (Newton's method), was ofcourse no
+problem, and gave satesfactory resualt. If the expression on the
+right above is labelled $f$, $f^\prime$ is:
+\begin{eqnarray}
+f^\prime &=& \frac{\sin4\varphi}{2\sqrt{\frac{3-\cos4\varphi}{4}}}
+   + \sqrt{2}\sin2\varphi\nonumber\\
+& & - \frac{2\sqrt{2}\cos\varphi}{\cos\varphi+\sin\varphi^2}
+      \left( \left( \cos\varphi+\sin\varphi \right)
+         \left( \cos^2\varphi-2\sin^22\varphi \right)\right. \nonumber\\ 
+& & - \quad \left.\left( \cos\varphi-\sin\varphi \right)
+         \cos^2\varphi\sin\varphi \right) \nonumber
+\end{eqnarray}
+Using these expressions for $f$ and $f^\prime$ in a \textsf{Fortran}
+program, I reached resaults close to what Mr.\ Collins found.
+
+\subsection{Joseph Collins' Solution}
+
+In Mr.\ Collins notation, the points on figure~\ref{fig:bauforms}
+has the following coordinates:
+\begin{eqnarray*}
+  A = (0,-1)  & B^\prime = (x,0)   & C = (x,y)\\
+  O = (0,0)   & P^\prime = (x-h,0) & Q^\prime = (x+h,0)\\
+  R = (x+h,h) & S = (x-h,h) & \\
+\end{eqnarray*}
+Below is what Mr.\ Collins wrote me --- thank you very much.
+
+On the unit circle
+\begin{equation}\label{eq:uc}
+  x^2 + y^2 = 1
+\end{equation}
+we have the vertices of a triangle at $(-1,0)$, $(x,y)$, and
+$(x,-y)$. A square has four vertices $(x \pm h, \pm h)$, where the
+two points $(x-h, \pm h)$ lie on the triangle (constraint A) and the
+two points $(x+h, \pm h)$ lie on the circle (constraint B).  Thus,
+the vertical side of the triangle bisects the square.  From
+constraint A, upon consideration of similar triangles, we have
+$$\frac{y}{1+x} = \frac{h}{1+x-h}, \quad \mbox{so that}\quad
+  h =  \frac{(1+x) y }{1+x+y}.$$
+By (\ref{eq:uc}), this is
+\begin{equation} \label{eq:b1}
+  h = \frac{(1+x)\sqrt{1-x^2}}{1+x+\sqrt{1-x^2}} .
+\end{equation}
+From constraint B, we get
+\begin{equation} \label{eq:b2}
+  (x+h)^2 + h^2 = 1  .
+\end{equation}
+Any simultaneous solution of (\ref{eq:b1}) and (\ref{eq:b2}) is also a
+solution of
+\begin{equation}\label{eq:eqn}
+  8x^3 - 4x^2 - 3x + 1 = 0,
+\end{equation}
+the relevant solution being
+\begin{equation}  \label{eq:sol}
+  x = \frac16 + \sqrt{\frac{11}{18}} \sin
+  \left[ \frac{\pi}{6}
+    - \frac13 \arctan\left(\frac{3\sqrt{237}}{23}\right) \right].
+\end{equation}
+Equation (\ref{eq:eqn}) and solution (\ref{eq:sol}) courtesy of
+Mathematica. We get $y$ and $h$ from (\ref{eq:uc}) and
+(\ref{eq:b1}), respectively. The angle at $(-1,0)$ is $\varphi = 2
+\arctan\bigl(y/(1+x)\bigr)$. 
+
+Approximate values are
+\begin{eqnarray*}
+  x &\simeq& 0.2865914\\
+  y &\simeq&  0.9580529\\
+  h &\simeq& 0.5491394 \\
+  \varphi &\simeq&  1.280129 \ ( \simeq  73.346^o)
+\end{eqnarray*}
+
+\section{Copyrights --- GNU General Public Lisence}
+\label{app:ggpl}
+
+This \MF{} implementation of the ``universal'' font and the \LaTeX{}
+support package ``uni'' copyright \copyright{} 1998  Christian Holm.
+
+This program 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. 
+
+This program is distributed in the hope that it will be useful, but
+\textsc{without any warranty}; without even the implied warranty 
+of \textsc{merchantability} or \textsc{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
+\begin{quote}
+  The Free Software Foundation, Inc.\\
+  675 Mass Ave\\
+  Cambridge\\
+  MA 02139\\
+  USA
+\end{quote}
+
+See the file \texttt{copyright} in the distribution for the complete
+GNU General Public License.
+
+\section{Wishlist}
+
+Below is a list of things I would like to do with the font and
+package. If anyone has any suggestions, ready--made code, or new
+ideas, please let me know.
+
+If you would like to take on one or more of the tasks presented
+below, please do so, but send me a note so that I may coordinate
+with my own efforts, and perhaps have a constructive dicourse.
+
+I should however instruct you to read the \emph{complete}
+documentation of the package and font, since this may give some
+reasons why I have chosen a particular approach.
+
+\begin{itemize}
+\item Make the font an 8--bit encoded (256 characters) font,
+  conforming somewhat to the \texttt{T1} encoding of the Cork fonts.
+\item Making a package (perhaps \textsf{mfdoc}), to make
+  documentation of \MF{} sources, just like \textsf{doc} is fore
+  \LaTeX{} sources. This is ofcourse a independent project, and I
+  will proberly not work on it.
+\end{itemize}
+\clearpage
+\section{Font Charts}
+\label{app:charts}
+
+Below are some charts of the \universal{} font in different series
+and shapes (medium upright, slanted, small-caps, and strict, as well
+as bold upright, slanted, small caps, and strict), all in size \texttt{8pt}.
+
+\FontChart{fulmr8.mf}{medium, upright}
+\FontChart{fulmo8.mf}{medium, oblique}
+\FontChart{fulmc8.mf}{medium, small-caps}
+\FontChart{fulmst8.mf}{medium, strict}
+\FontChart{fulbr8.mf}{bold, upright}
+\FontChart{fulbo8.mf}{bold, oblique}
+\FontChart{fulbc8.mf}{bold, small-caps}
+\FontChart{fulbst8.mf}{bold, strict}
+
+\clearpage
+\end{document}
+%</driver>
+%<*copyright>
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                          675 Mass Ave, Cambridge, MA 02139, USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) 19yy  <name of author>
+
+    This program 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.
+
+    This program 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.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) 19yy name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
+
+%</copyright>
+%\fi
+% \def\fileversion{v2.1}
+% \def\filedate{2019/08/26}
+% \section{Introduction}
+% \changes{v1.0}{1997/17/24}{Creation of the \universal{} font}
+%
+% 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}, plus a \LaTeX{}
+% package to utilize this font, along with a number of font definition
+% files, as required by the New Font Selection Scheme (\NFSS{}).
+%
+% \subsubsection*{About the Documantation}
+%
+% The full documentation of this font is rather large, more then 80
+% pages actually. Most of it is the programs for the characters for
+% this font, so if you don't know the \MF{} language, or don't care
+% how the charcters are created, you should insert
+% \Lcs{OnlyDescription} into the preamble of \texttt{universa.dtx}.
+%
+% Notice, that \MF{} macros are \emph{not} indexed in this
+% documentation. This is because it would take a \emph{major} rewrite
+% of the \textsf{doc} package to do so, and I really didn't want to do
+% that.
+%
+% Some of the macros of \textsf{doc} \emph{has} been redefined, and if
+% you want to see which, or how I generally did the documentation,
+% please refer to appendix~\ref{app:unidoc}.
+% 
+% If you in some way are unsatisfied with some of the characters of
+% the font, do please read the documentation of that character. There
+% may be some notes on why the character looks the way it does. Some
+% of the comments, however are a bit silly and should be skipped at
+% high speed (pretend there is a conditional that says \texttt{if not 
+% silly ... fi}).
+% 
+% \subsubsection*{This Version}
+% \changes{v2.0}{98/08/01}{Bug corrections, new font
+% shapes, better font programs, new/improved macros for \LaTeX{}
+% support, better conformation to \NFSS{}, using \textsf{fontname}
+% filenaming scheme, etc.}
+% 
+% This new version of the \universal{} font, provides a number
+% of new features and improvements, both to the font itself and to the
+% \LaTeX{} support macros. Also, a number of corrections has been made
+% to the font programs.
+%
+% The reason why I jumped one whole version number from 1.0 to 2.0, is
+% that I have taken a whole new approach to the font programs and
+% shapes of the \universal{} font, plus I decided to put some
+% more effort into the \LaTeX{} support.
+%
+% \subsubsection*{Thanks and Other Stuff}
+% 
+% To those of you who have had the (mixed) pleasure of using version
+% 1.0 of this font, one of the most notaticable changes are to the
+% symbol \textuni{\bauforms}. In the old documenation, I complained
+% that I couldn't find the exact solution to the problem this symbol
+% possed. I also encourged people to send me any solution they may
+% have had --- and guess what --- somebody did! Therefore I would like
+% to thanck Joseph Collins for providing me with the solution. If you
+% like Joseph Collins and I like Mathematical puzzles take a look in
+% Appendix~\ref{app:solu} to learn more about this problem and it's
+% solution.
+%
+% I also direct your attention to Appendix~\ref{app:ggpl} for the
+% copyright notice on the \universal{} package (it's the
+% \textsl{Gnu General Public Lisence} to those of you who know it).
+% 
+% If you in any way have gotten tempted to design your own font, or to
+% implement some font into \MF{}, I feel obligated to bring you a
+% warning, taken from the \MF{}book by Donald E.\ Knuth:
+% \begin{quote}
+%   \uni
+%   \textsc{Warning:} Type design can be hazardous to your other
+%   interests. Once you get hooked, you will develop intense feelings
+%   about letterforms; the medium will intrude the message that you
+%   read. And you will perpetually be thincking of improvements to the
+%   fonts that you see everywhere, especially those of your own
+%   design.
+% \end{quote}
+%
+% \section{The Font and it's History}
+%
+% \subsubsection*{Bauhaus}
+% 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\index{Rhoe, Mies van der},
+% Herbert Bayer\index{Bayer, Herbert}, Kandinsky\index{Kandinsky},
+% Walter Gropius\index{Gropius, Walter} and Gerrit
+% Rietveld\index{Rietveld, Gerrit}. The style ``die stiil''
+% \index{die stiil} was explored here, and painters like
+% Mondrian\index{Mondrian} made large contributions to what today is
+% known as
+% ``the Bauhaus style''\index{Bauhaus style=\textuni{Bauhaus style}}. 
+%
+% The basic idea of the Bauhaus school, was to design items, which
+% along with it's aesthethic value, also had a high degree of
+% functionallity. Houses were meant to be suited for all kinds of
+% living, while still keeping the beauty that make people glad to see
+% thier house. Chairs should be comfortable for thier use, as well be
+% able to fit--in in a normal house. All this should be done at a
+% price that made it possible for everybody to own
+% designer--furniture, houses, etc.
+%
+% The political idea of Bauhaus, was that of a socialist one. Houses
+% are for the people --- they have to live in them, and that living
+% should be a good as possible. Therefore the Bauhaus school saw it
+% has its task to provide functional, beautiful everyday items that
+% anybody could affort. Paintings and tapestery shouldn't hang on
+% museums or art galleries, but in peoples homes, where they would
+% inrich thier everyday life.
+% 
+% \subsubsection*{Herbert Bayer and the ``universal'' Font}
+% 
+% At Bauhaus typography was also studied, not just how written text
+% should be typeset, and how printed characters should look like, but
+% also what the essence of writting is, in it's pratical and
+% design--wise sense. This led Herbert Bayer\index{Bayer, Herbert} to
+% formulate some principles of writting:
+%
+% \begin{quote}
+%   {\uni 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
+%     \end{flushright}}
+% \end{quote}
+%
+% On this principles, Herbert Bayer designed a font, which should have
+% no majuscles (upper case letters), easy to print, and easy to read
+% since it didn't have any unusefull decoration, but communicated the
+% bare meaning of characters through the simplest forms needed to
+% reconigise a character. This font he called ``universal''.
+%
+% This font contained abolutly no majuscles, since Bayer believed them
+% to be superflous, as it is clear form the quote above.
+%
+% At the time Herbert Bayer formulated these principles and designed
+% the ``universal'' font, most printers used Gothic letters, which is
+% allmost overly decorated, so his font ofcourse made
+% contraversy.
+%
+% Later on, in the 1930'ies, the Bauhaus school drew the
+% attention of \emph{Gestapo}\footnote{Gehemligche Stats Polizi} of
+% Nazi\footnote{Nationalsocializmus} Germany. The school was finally
+% closed in 1936 by Gestapo, because they believed they were promoters
+% of Jewish and Communist culture and propaganda.
+%
+% In the aftermatch of the closing of the school, most of it's ideas
+% were shundend by other designers, and the Bauhaus way of thinking
+% died out. This is properly the reason why Herbert Bayers
+% ``universal'' font is so little known today.
+% 
+% However, the ``universal'' font still stands as one of the most
+% compelling developments in font designing. It represents an approach
+% to designing where the functionallity is as vital as the expression,
+% and as such I believ it to be one of the most important fonts in the
+% world today.
+% 
+% \section{This \MF{} Implementation}
+%
+% This implementation of Herbert Bayers ``universal'' font, is not
+% supposed to look \emph{exactly} like the original design. Ofcourse I
+% have tried to the best of my ability to mimic his design as far as I
+% could. However, it is not an easy matter to find a complete, not to
+% mention exact, sample or account of Bayers design.
+%
+% This implementation is bassed on the samples I \emph{could} find,
+% and other implementations of the ``universal'' font. Many of these
+% other implementations do differ from the original samples, and
+% include characters I couldn't find in any of the original. So
+% whenever I found disparities, I mainly leened on the original
+% samples and my understanding of the original design.
+%
+% \subsection{The \MF{} version versus the Original}
+%
+% As mentioned above, Bayer never did design any majuscles for this
+% font, but nonetheless, I have included them into this
+% implementation. This I did, because I think most people will have a
+% hard time writting in minuscles (lowercase letters) alone. Ofcorse,
+% if you agree with Bayer, you should simple not use them.
+%
+% There are also some other differences, mostly due to the fact, that
+% I never found a complete sample of the original font. The major
+% differences between the originalk font and this implementation is
+% summerized below:
+%
+% \begin{description}
+%   \item[Majuscles:] Majuscles are present, even though they weren't
+%     in the original design.
+%   \item[Digigts:] These are based on other implementations, and my
+%     general conception of the original design.
+%   \item[Punctuations:] As above.
+%   \item[Accents:] As above.
+%   \item[Symbols:] As above.
+%   \item[Bauhaus Symbols:] I have added some various symbols I have
+%     found in connection with Bauhaus to the font. The reason is I
+%     find them beautiful, and I had some space to fill.
+%   \item[Numerous Shapes and Weights:] I don't think Bayer ever
+%     design slanted characters, a bold face version of the font, and
+%     he could never have design a small caps version of the
+%     font. However, these are present in this implementation. I
+%     included these features, because I believ them to be of general
+%     utility, and it makes the font conform more to the Computer
+%     Modern Roman font, and \NFSS{}. 
+% \end{description}
+%
+% \subsection{Features of the font}
+%
+% Rather then using \texttt{cmbase.mf}\footnote{Computer Modern Roman
+% base file}, and then redefine some macros, I chose to make a new
+% base file myself, i.e.,
+% \texttt{unibase.mf}\index{unibase.mf=\texttt{unibase.mf}}. This file
+% contains a number of macros\footnote{A better name for `base' would
+% be `library', and then the file would be \texttt{libuni.mf}, but to
+% conform to CM, I used `base'.} I have used in the character
+% programs.
+%
+% The macros of \texttt{unibase.mf} actually reflects my conception of
+% the font. There are three basic drawing macroes:
+% \begin{description}
+%   \item[\texttt{unicir}] which draws a circle,
+%   \item[\texttt{uniarc}] which draws a segment (arc) of a circle, and
+%   \item[\texttt{unilne}] which draws a straight line.
+% \end{description}
+% I believe, that Bayer intended the font to be made of these two
+% basic shapes: the arc, and the line. Also, to keep things simple,
+% and therefore easy to print, all shapes should be of the same
+% thickness, i.e.,as if drawn with a pen of equal thickness. I have
+% made one diviation from this, however. All majuscles are drawn with
+% a thicker `pen', which makes the output nicer, I think.
+%
+% Incidently, this made the programs of the characters much simpler,
+% and shorter.
+%
+% \subsubsection{Series, Shapes, Sizes, and Special Characters}
+% 
+% \Newestchanges{v2.0}{98/08/01}{Added `small caps' shape to the font.}
+% \changes{v2.0}{98/08/01}{Added non--standard `strict' shape to the
+% font.} 
+% \changes{v2.0}{98/08/01}{Added `slanted' shape to the font.}
+% \changes{v2.0}{98/08/01}{Default series is changed to `medium'
+% to the font, `bold face' support included.}
+% 
+% Below is a sample of each series/shape combination avaliable in this
+% implementation of the font, along with the \LaTeX{} commands that
+% drive them: 
+%
+% \begin{description}
+%   \item[\rm Medium upright (\Lcs{textuni}):]
+%     \textuni{The dazed brown fox quickly gave 1234-567890 jumps!} 
+%   \item[\rm Medium slanted (\Lcs{textunisl}):]
+%     \textunisl{The dazed brown fox quickly gave 1234-567890 jumps!}
+%   \item[\rm Medium small caps (\Lcs{textunisc}):]
+%     \textunisc{The dazed brown fox quickly gave 1234-567890 jumps!} 
+%   \item[\rm Medium strict (\Lcs{textunist}):]
+%     \textunist{The dazed brown fox quickly gave 1234-567890 jumps!} 
+%   \item[\rm Bold face upright (\Lcs{textunibf}):]
+%     \textunibf{The dazed brown fox quickly gave 1234-567890 jumps!} 
+%   \item[\rm Bold face slanted (\Lcs{textunibsl}):]
+%     \textunibsl{The dazed brown fox quickly gave 1234-567890 jumps!} 
+%   \item[\rm Bold face small caps (\Lcs{textunibsc}):]
+%     \textunibsc{The dazed brown fox quickly gave 1234-567890 jumps!}
+%   \item[\rm Bold face strict (\Lcs{textunibst}):]
+%     \textunibst{The dazed brown fox quickly gave 1234-567890 jumps!}
+% \end{description}
+% 
+% Everyone of these shapes are avaliable in size 8, 9, 10, 12, 17
+% \texttt{pt}, and \MF{} can ofcourse create others.
+%
+% \Newestchanges{v2.0}{98/08/01}{Some of the \textunibf{bauhaus} symbols
+% that where avaliable in v1.0, has been taken out.}
+% Also a number of non--standard characters are avaliable in the
+% font. Below is a table of these characters along with the \LaTeX{}
+% commands that drive them.
+%
+% Notice that \textunibf{``} and \textunibf{''} is present in the
+% table. This is because these characters are not directly defined,
+% but is supplied as \emph{ligatures}. This can be done, because they
+% are simple doubles of \textunibf{`} and \textunibf{'}.
+%
+% A quick look on the table will also reveal some characters that
+% generally isn't present in the standard \texttt{OT1}
+% encoding\footnote{The \texttt{OT1} encoding is the 7 bit encoding of
+% the Computer Modern fonts by Donald E.\ Knuth. 7 bit means it
+% contain 128 ($=2^7$) characters.}, but generally present in the
+% \texttt{T1} encoding\footnote{The \texttt{T1} encoding is an
+% encoding especially designed for the (western) European
+% languages. It was founded by the \TeX{} User's Group, on a seminar
+% in Cork, and is the basis of the \texttt{dc} fonts. \texttt{T1} is
+% an 8 bit encoding, which means it has 256 ($=2^8$) characters.}. I
+% have done this, both to provide an (almost) complete font for the
+% European languages, but also because I anticipate the \universal{}
+% font some time in the future will shift, or a least be avaliable, in
+% the \texttt{T1} encoding\footnote{\texttt{T1} is generally
+% considered \emph{the} encoding of the future, and in the long term,
+% it is most likely the encoding of \LaTeX3.}.
+% \begin{table}[htbp]
+%   \centering
+%   \begin{tabular}{%
+%   @{\vline\extracolsep{1em}\space}ll%
+%   @{\extracolsep{1em}}ll%
+%   @{\space\vline\extracolsep{1em}}}\hline
+%     \textuni{\bausquare}&\Lcs{bausquare}&
+%     \textuni{\baucircle}&\Lcs{baucircle}\\
+%     \textuni{\bautriangle}&\Lcs{bautriangle}&
+%     \textuni{\bauhead}&\Lcs{bauhead}\\
+%     \textuni{\bauforms}&\Lcs{bauforms}&
+%     \textuni{\dh}&\Lcs{dh}\\
+%     \textuni{\dj}&\Lcs{dj}&
+%     \textuni{\ng}&\Lcs{ng}\\
+%     \textuni{\th}&\Lcs{th}&
+%     \textuni{\varQ}&\Lcs{varQ}\\
+%     \textuni{\DH}&\Lcs{DH}&
+%     \textuni{\DJ}&\Lcs{DJ}\\
+%     \textuni{\NG}&\Lcs{NG}&
+%     \textuni{\TH}&\Lcs{TH}\\
+%     \textuni{\textsection}&\Lcs{textsection} or \Lcs{S}&
+%     \textuni{\textbraceleft}&\Lcs{textbraceleft} or \Lcs{\char"7B}\\
+%     \textuni{\textbraceright}&\Lcs{textbracerigth} or \Lcs{\char"7D}&
+%     \textuni{\textbar}&\Lcs{textbar}\\
+%     \textuni{\guilsinglleft}&\Lcs{guilsinglleft}&
+%     \textuni{\guilsinglright}&\Lcs{guilsinglright}\\
+%     \textuni{\guillemoleft}&\Lcs{guillemoleft}&
+%     \textuni{\guillemoright}&\Lcs{guillemoright}\\
+%     \textuni{\quotesinglbase}&\Lcs{quotesinglbase}&
+%     \textuni{\quotedblbase}&\Lcs{quotedblbase}\\
+%     \textuni{\textquotedblleft}&\Lcs{textquotedblleft}&
+%     \textuni{\textquotedblright}&\Lcs{textquotedblright}\\
+%     \textuni{\textogonek}&\Lcs{textogonek}&
+%     \textuni{\textunderscore}&\Lcs{textunderscore}\\
+%     \hline
+%   \end{tabular}
+%   \caption{Non--standard characters in the {universal} font}
+%   \label{tab:characters}
+% \end{table}
+% Please note, that in the small caps shaped fonts, \Lcs{dh} does not
+% give {\small\textuni{\DH}}, but a \textunibsc{\dh}, that is a small
+% caps shaped version of \Lcs{varQ}. Also there is no command
+% \Lcs{varq} defined.
+%
+% In appendix~\ref{app:charts} is some charts showing the font in
+% different series and shapes.
+% 
+% \subsubsection{File Names for the \MF{} files}
+%
+% \paragraph{Base File and Source Files}
+% The base file and the files containg the code for the characters of
+% the \universal{} font, all starts with \texttt{uni}, to reflect the
+% connection of the files. The next five possible letters reflects
+% what kind of code is contained within the file, e.g., the base file
+% ends in \texttt{base}, the file containing the code for the
+% minuscles (lower case letters) end in \texttt{lower}, and so forth.
+%
+% \paragraph{Font Driver Files}
+% The font driver filenames has been chosen to conform to the
+% \texttt{fontname} scheme, because this scheme is used by most
+% \TeX{}, \LaTeX{}, and \MF{} systems (anyway those that use
+% \texttt{kpathsea}, which is the most).
+%
+% The filename all contain the three characters \texttt{ful}, where
+% the \texttt{f} stands for \textit{public} and \texttt{ul} for
+% \textit{universal}.
+%
+% Next comes a letter which is one of \texttt{m} (\textit{medium}) or
+% \texttt{b}  (\textit{bold}), which represents the series of the
+% font.
+%
+% Then comes one or two letters, which are \texttt{r}
+% (\textit{upright} or roman), \texttt{o} (\textit{slanted}, or
+% oblique), \texttt{c} (\textit{small caps}), or \texttt{st}
+% (\textit{strict}), which represent the shape of the font.
+%
+% Finally the filename ends with the designsize in points.
+%
+% Thus the complete syntax for the font driver file names is:
+% \begin{table}[htbp]
+% \centering
+% \begin{tabular}{rcl}
+%   \meta{filename}&:=&
+%   \meta{supplier}\meta{face}\meta{series}\meta{shape}\meta{size}\texttt{.mf}\\
+%   \meta{supplier}&:=&\texttt{f}\\
+%   \meta{face}&:=&\texttt{ul}\\
+%   \meta{series}&:=&\texttt{m \char"7C\ b}\\
+%   \meta{shape}&:=&\texttt{r \char"7C o \char"7C c \char"7C st}\\
+%   \meta{size}&:=&\texttt{\char"7C\ 8 \char"7C\ 9 \char"7C\ 10
+%     \char"7C\ 12 \char"7C\ 17}
+% \end{tabular}
+% \end{table}
+% The \texttt{fontname} scheme actually says to put \meta{encoding} 
+% information after the \meta{shape}, but since this is \texttt{8r}
+% for \TeX{} Text, it would make filenames longer then 8 characters in
+% the cases of \meta{size} of 10, 12, and 17, so this information is
+% left out (which is permisable in \texttt{fontname}, but
+% unfortunate).
+%
+% This way of naming the font driver files will, if you use
+% \texttt{kpathsea}, put the \texttt{ful*.*pk} files in\newline
+% \indent\meta{pk--base--dir}\texttt{/public/universa/}\newline  
+% and the \texttt{ful*.tfm} files in\newline
+% \indent\meta{tfm--base--dir}\texttt{/public/universa/}\newline  
+% which I think is the intuitivly correct place to put them. This also
+% means, that the \texttt{*.mf} files provided with this package,
+% should be placed in\newline
+% \indent\meta{mf--source--base--dir}\texttt{/public/universa/}\newline
+% again very intuitive.
+%
+% Below is a table of the usual directory names under
+% \textsf{Unix}--like and \textsf{MSDOS}--like (including Windows95)
+% systems.\meta{mode} is \textsf{dvips}'s name for your printer.
+% \begin{table}[htbp]
+%   \begin{tabular}{%
+%   @{\vline\extracolsep{1em}\space}l%
+%   @{\space\vline\extracolsep{1em}\space}l%
+%   @{\space\vline\extracolsep{1em}\space}l%
+%   @{\space\vline\extracolsep{1em}}}
+%     \hline
+%     Varibale&\textsf{Unix}--like systems&\textsf{MSDOS}--like systems\\
+%     \hline
+%     \meta{tfm--base--dir}&
+%     \texttt{/var/spool/texmf/pk/}\meta{mode}\texttt{/}&
+%     \texttt{C:\Lcs{}FONTS\Lcs{}PK\Lcs{}}\meta{mode}\Lcs{}\\
+%     \meta{tfm--base--dir}&
+%     \texttt{/var/spool/texmf/tfm/}&
+%     \texttt{C:\Lcs{}FONTS\Lcs{}TFM\Lcs{}}\\
+%     \meta{tfm--base--dir}&
+%     \texttt{/usr/local/lib/texmf/fonts/source/}&
+%     \texttt{C:\Lcs{}TEX\Lcs{}MFINPUTS\Lcs{}}\\
+%     \hline
+%   \end{tabular}
+%   \caption{Common directory names.}
+% \end{table}
+% 
+% \subsection{The \LaTeX\ and \NFSS\ Support}
+%
+% To use the \universal{} font with \LaTeXe{}\footnote{I have made
+% \emph{no} attempt to provide support for \LaTeX2.09, since this
+% format is obsolete, and those who \emph{do} use it, will proberly
+% never bother to look at CTAN for new fonts anyway.}, you should load
+% the package \textsf{uni} with the command
+% \begin{quote}
+%   \Lcs{usepackage}\oarg{options}\marg{uni}
+% \end{quote}
+% in your preamble (i.e., after \Lcs{documentclass} and before
+% \Lcs{begin\{document\}}). \meta{options} can be any of the options
+% described below, but no other.
+% 
+% \subsubsection{Options to \textsf{uni}}
+% 
+% \marginpar{\raggedright\texttt{strict}}
+% \index{strict=\texttt{strict}\space(Option)}
+% \Newestchanges{v2.0}{98/08/01}{Added option \texttt{strict}.}
+% The \texttt{srict} option is intended to fassilitate typesetiing of
+% the \universal{} font in a \emph{strict} \textunibf{bauhaus}
+% fashion, that is \emph{only} in minuscules.
+%
+% In this font, only the series may be variated, that is, there is a
+% bold series strict shaped font of any size, and a medium series
+% strict shaped font of any size, in the \universal{} family.
+%
+% This option can be used in conjuntion with options \texttt{medium}
+% and \texttt{bold}. Please notice, that it doesn't make any sense to
+% ask for a small caps or slanted shaped font, while using this option.
+% 
+% Notice that only \Lcs{textuni} and \Lcs{uni} is defined if option
+% \texttt{strict} was given to \textsf{uni} package.
+% 
+% \marginpar{\raggedright\texttt{default}}
+% \index{default=\texttt{default}\space(Option)}
+% \Newestchanges{v2.0}{98/08/01}{Added option \texttt{default}.}
+% If you give the \texttt{default} option to the \textsf{uni} package,
+% the default font of the document will be \textunirm{universal}.
+%
+% If you also used the option \texttt{bold} the default font will be
+% the \universal{} font in \textbf{bold} series. Otherwise it will be
+% in medium series.
+%
+% With this option, \Lcs{textit}, \Lcs{it}, and \Lcs{itshape} shifts
+% to \textunisl{universal slanted} font, i.e., there is no
+% \textit{italic} font avaliable.
+%
+% \DescribeMacro{\textcmr}
+% \DescribeMacro{\cmr}
+% To make it possible to change back to Donald E.\ Knuth's Computer
+% Modern Roman font, even when the \texttt{default} option is given,
+% we define macros \Lcs{textcmr} and \Lcs{cmr}, which switches the
+% \Lcs{fontfamily} to \texttt{cmr} locally and gobally respecivly.
+% 
+% You should use this option with some care, since the \universal{}
+% font isn't very suited for longer texts, but rather for short
+% letters, quotes, and other pieces of text where the graphical
+% apperance is important.
+% 
+% \marginpar{\raggedright\texttt{medium}}
+% \index{medium=\texttt{medium}\space(Option)}
+% \Newestchanges{v2.0}{98/08/01}{Added option \texttt{medium}.}
+% When this option is given, command \Lcs{textuni} switches to
+% \textunirm{medium series universal font}, as do \Lcs{uni}. The other
+% font selection commands behave as always (see below). This is the
+% default option to \textsf{uni}, i.e., not normally needed.
+% 
+% \marginpar{\raggedright\texttt{bold}}
+% \index{bold=\texttt{bold}\space(Option)}
+% \Newestchanges{v2.0}{98/08/01}{Added options \texttt{bold}.}
+% If this option is given, commands \Lcs{textuni} and \Lcs{uni}
+% switches to \textunibf{bold series universal font}. Other font
+% selection commands behave as always (see below). Notice that it 
+% makes no sense to give both option \texttt{medium} and option
+% \texttt{bold} to the \textsf{uni} package. 
+% 
+% \subsubsection{Font Selection Commands}
+%
+% \DescribeMacro{\textuni}\DescribeMacro{\uni}
+% These two commands only change the current font family to
+% \texttt{uni} \emph{and nothing else}. That means, that if you say
+% for example
+% \begin{verbatim}
+%   {\sl Hello \textuni{world}}
+% \end{verbatim}
+% you get \emph{both} `Hello' and `world' in slanted shape, and the
+% output would be 
+% \begin{quote}
+%   {\sl Hello \textuni{world}}
+% \end{quote}
+% To put it in another way: Font encoding, shape, size, and
+% baselineskip is preserved under \Lcs{textuni} and \Lcs{uni}, while
+% font family is not.
+%
+% \textbf{Execptions:} If you gave the \texttt{bold} option to the
+% \textsf{uni} package, then this command will always give you a bold
+% series font. If you gave the \texttt{strict} option, then this
+% command will always give you a strict shaped font. 
+%
+% These commands can be used in conjuntion with \LaTeX{} commands
+% \Lcs{textbf}, \Lcs{textsl}, and even \Lcs{sc}, or \Lcs{rm} to give
+% different  series and shapes.
+%
+% \DescribeMacro{\textunirm}\DescribeMacro{\unirm}
+% If you in the previous example intended to shift to
+% \textunirm{medium upright universal} font you could instead have
+% used \Lcs{textunirm}, since this command \emph{does not} preserve
+% font shape, i.e., the shape is always changed to upright, regardless
+% of the prevouis shape. So if you said
+% \begin{verbatim}
+%   {\sl Hello \textunirm{world}}
+% \end{verbatim}
+% you would get
+% \begin{quote}
+%   {\sl Hello \textunirm{world}}
+% \end{quote}
+% 
+% \DescribeMacro{\textunisl}\DescribeMacro{\unisl}
+% \DescribeMacro{\textunisc}\DescribeMacro{\unisc}
+% \DescribeMacro{\textunist}\DescribeMacro{\unist}
+% \label{expl:cmds}
+% Actually \Lcs{textunirm} and \Lcs{unirm} isn't the only commands
+% that aggresively changes most of the font
+% parameters. \Lcs{textunisl}, \Lcs{textunisc}, and \Lcs{textunist},
+% \emph{always} gives you \textunisl{medium slanted}, 
+% \textunisc{medium small caps}, and \textunist{medium strict}
+% respecitivly no matter what the values of \Lcs{f at shape} was before. 
+%
+% \DescribeMacro{\textunibf}\DescribeMacro{\unibf}
+% \DescribeMacro{\textunibsl}\DescribeMacro{\unibsl}
+% \DescribeMacro{\textunibsc}\DescribeMacro{\unibsc}
+% \DescribeMacro{\textunibst}\DescribeMacro{\unibst}
+% In the same category is \Lcs{textunibf}, \Lcs{textunibsl},
+% \Lcs{textunibsc}, and \Lcs{textunist} which always changes the font
+% series to \textbf{bold}, along with change in shape (upright,
+% slanted, small caps, and strict in that order).
+%
+% All of the `aggresive' commands, \emph{do not} however change the
+% \emph{size} and \emph{baselineskip} of the font. This should be done
+% by using \LaTeX{} commands such as \Lcs{small}, \Lcs{Large},
+% \Lcs{fontsize}\marg{size}\marg{lineskip},
+% etc. 
+%
+% Notice that the `aggresive' commands always changes to the
+% appropiate font series. That is, even if you gave the \texttt{bold}
+% option to \textsf{uni}, \Lcs{textunirm} will still give you
+% \textunirm{medium upright universal} font. This particular instance
+% illustrates the use of the aggresive commands quite well I think.
+%
+% To summerize: The `aggresive' commands \emph{doesn't} preserve
+% fammily, series and shapes, but \emph{does} preserve encoding, size,
+% and baslineskip.
+%
+% \textbf{Warning:} The  font shifting commands \Lcs{textuni...} and
+% \Lcs{uni...} in this section is \emph{not} defined if you gave the
+% \texttt{strict} option to the \textsf{uni} package.
+% 
+% \DescribeMacro{\unifamily}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unifamily} to
+% fasilitate easier and stronger font loading.}
+% One can also use the rather primitive command \Lcs{unifamily} in
+% conjunction with \Lcs{selectfont} as described in \ftnguide{}, to
+% change the font family to \universal{} if absolute control is
+% preferd.
+%
+% \Lcs{unifamily} is used by all the other font switching commands, so
+% if you redefine it, or \Lcs{unifamilydefault}, you could get strange
+% resault.
+%
+% \DescribeMacro{\unifamilydefault}
+% This command normally expands to \texttt{uni}, which is the `family'
+% name of the \universal{} package. If you redefine this command to be
+% something else, e.g., \texttt{cmr}, \Lcs{unifamily} will load
+% another font.
+% 
+% \DescribeMacro{\uniseries}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{uniseries} to
+% fasilitate easier and stronger font loading.}
+% If the \texttt{bold} option to \textsf{uni} is used this command
+% will select the default series of the \universal{} font, defined in
+% \Lcs{uniseriesdefault}, which ofcourse defaults to \texttt{b}, i.e.,
+% bold series. if you redefine \Lcs{uniseriesdefault} to be
+% \texttt{m}, then \Lcs{uniseries} will select medium series
+% fonts.
+%
+% If \texttt{bold} option wasn't given, then this expands to nothing,
+% as do \Lcs{uniseriesdefault}.
+%
+% This command is used by \Lcs{textuni} and \Lcs{uni}.
+% 
+% \DescribeMacro{\unishape}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unishape} to
+% fasilitate easier and stronger font loading.}
+% If the \texttt{strict} option to \textsf{uni} is used this command
+% will select the default shape of the \universal{} font, defined in
+% \Lcs{unishapedefault}, which ofcourse defaults to \texttt{st}, i.e.,
+% strict shape. If you redefine \Lcs{unishapedefault} to be
+% \texttt{n}, then \Lcs{uniseries} will select upright shaped fonts.
+%
+% If \texttt{strict} option wasn't given, then this expands to nothing,
+% as do \Lcs{unishapedefault}.
+%
+% This command is used by \Lcs{textuni} and \Lcs{uni}.
+% 
+%
+% \DescribeMacro{\stshape}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{stshape} to make package
+% conform to \LaTeXe{} better.}
+% This command switches to \emph{strict} shape, i.e., all majuscules
+% will be typeset as minuscles. This makes it possible in a simple way
+% to typeset text in the way Herbert Bayer thought it should, as
+% evident from the citation above.
+%
+% This command uses the command \Lcs{stdefault}, which defaults to
+% \texttt{st}. If you redefine this to something alse, e.g.,
+% \texttt{sl} you will get a \textsl{slanted} font.
+%
+% This command is used by \Lcs{textunist}, \Lcs{textunibst},
+% \Lcs{unibst} and \Lcs{unist}, and is defined no matter waht options
+% you gave to the \textsf{uni} package. 
+%
+% \textbf{Warning:} Since \emph{strict} is a non--standard shape, this
+% command should not be used outside the \universal{} font, since this
+% may give you unexpected resaults.  
+% 
+% \subsubsection{Special Character Commands}
+%
+% For the individual commands that makes various special characters,
+% please consult table~\ref{tab:characters} above.
+% 
+% \subsubsection{Other Commands}
+%
+% \DescribeMacro{\k}
+% The macro \Lcs{k} used in the \universal{} font gives the accent
+% ogenek, that is a reversed cidelia accent. It takes one argument,
+% which shuold be a single letter, under which it puts the accent. For
+% example, you could say \Lcs{textuni\{}\Lcs{k\{a\}\}} and get
+% \textuni{\k{a}}.
+%
+% \DescribeMacro{\DeclareUniChar}
+% \Newestchanges{v2.0}{98/08/01}{Configuration of \textsf{uni} package
+% provided via the commands \Lcs{DeclareUniChar} and
+% \Lcs{DeclareUniCommand}.} 
+% Now you can configure the special character commands of the font,
+% via the commands \Lcs{DeclareUniChar} and
+% \Lcs{DeclareUniCommand}. The commands defined via these commands
+% will only work in accordence with it's definition inside the 
+% \universal{} font, and if defined elsewhere according to it's
+% definition there, else it will give an error message.
+% 
+% \Lcs{DeclareUniChar} is used to define a command sequence
+% representing a single character in the \universal{} font, much like
+% \Lcs{DeclareTextSymbol}, or in \TeX{} \Lcs{chardef}, though the
+% control sequence will produce an error message outside the
+% \universal{} font, and properle unexpected resaults outside the
+% \texttt{OT1} encoding\footnote{This should not be a problem.}. 
+%
+% \Lcs{DeclareUniCommand} is used to define control sequences inside
+% the \universal{} font, representing many characters or doing complex
+% manuvers on characters and stuff. The optional argument to
+% \Lcs{DeclareUniCommand} can be used to say how many arguments the
+% control sequence should have, just like \Lcs{newcommand}. However,
+% it is not possible to give a default first argument.
+% 
+% The below defintion uses the \textsf{color} package to typeset a
+% square, circle, and triangle in different colours\footnote{Since the
+% documentation should be avaliable to all, I can not provide you with
+% the outcome of this example, since it needs the \textsf{color}
+% package wich may not be avaliable on all sites. I suggest you try
+% it out, or something similar, if you can.}.
+% \begin{verbatim}
+%   \DeclareUniCommand{\mybauforms}{%
+%     \lower.5ex\hbox{\color{blue}\bautriangle}%
+%     \kern-.5em\raise.5ex\hbox{\color{read}\baucircle}%
+%     \kern-.5em\lower.5ex\hbox{\color{yellow}\bausquare}}
+%  \end{verbatim}
+%  Yet another example, using arguments could be
+%  \begin{verbatim}
+%    \DeclareUniCommand{\mybaulogo}[1]{\bauhead\ {\Large #1}}
+%  \end{verbatim}
+%  so you could say \verb+\mybaulogo{Christian Holm}+ and get:
+%  \begin{quote}
+%    {\uni \bauhead {\Large Christian Holm}}
+%  \end{quote}
+%  and I bet you can come up with some even more useful and complex
+%  commands. 
+%  
+% The syntax of \Lcs{DeclareUniChar} and \Lcs{DeclareUniCommand} is 
+% \begin{quote}
+%   \Lcs{DeclareUniChar}\marg{cmd}\marg{slot}\newline
+%   \Lcs{DeclareUniCommand}\marg{cmd}\oarg{arg}\marg{definition}
+% \end{quote}
+% where \meta{cmd} is the user command defined, \meta{slot} is the
+% number of the character in the font, \meta{arg} is the number of
+% arguments and \meta{definition} is what \meta{cmd} does.
+% 
+% \subsubsection{File Names for the \LaTeX{} files}
+%
+% All the \LaTeX{} files contain the three letters \texttt{uni}, to
+% reflect the connectedness of the files. The font definition files
+% all start with the letter code appropiate for the encodeing.
+%
+% To follow the scheme of the \MF{} files, it would be appropiate to
+% place all \LaTeX{} files in\newline
+% \indent\meta{tex--base--dir}\footnote{On \textsf{Unix}--like systems
+%   \meta{tex--base--dir} is usually something like
+%   \texttt{/usr/local/lib/texmf/}, and on \textsf{MSDOS}--like systems
+%   something like \texttt{C:\Lcs{}TEX}\Lcs{}
+% .}\texttt{/tex/latex/universa/} 
+% 
+% \subsection{The Major differences between version 1.0 and 2.0}
+%
+% \paragraph{First of:} \emph{a lot} of bugs and errors has been
+% corrected. In version~1.0, I had made the (stupid) mistake of
+% calling the macro \textuni{mode\_setup} before I defined the
+% unsharped units. Ofcourse a quick look in the \MFbook{} showed be
+% just how stupid this is. This made the font very vunerable to mode
+% specifications, which ofcourse isn't the idea.
+%
+% \paragraph{Secondly:} I chose a completly new approach to the
+% character programs, which resaultet in \texttt{unibase.mf}. The idea
+% is to define a few macros, and then utilize those in the character
+% programs, so that these programs can be kept simple, efficient, and
+% intuitive.
+%
+% A quick look at \texttt{unibase.mf} will also reveal that I chose a
+% new way of adjusting the characters. This means that the macros
+% \texttt{bauhaus...} present in version~1.0 no longer is needed, and
+% since they only tended to ubscure things rather then simplify them,
+% I went back to the plain \MF{} macro \texttt{beginchar}, which is
+% much stronger.
+%
+% All in all, \texttt{unibase.mf} provides a much stronger and uniform
+% frame work for character design, then did the old
+% \texttt{universal.mf}.
+%
+% \paragraph{Thirdly:} The file names have been keept inside
+% \textsc{msdos} conventions, that is first name of maximum 8
+% charcaters, and last name of maximum 3 characters. This does mean,
+% however, that some file names are not intutive, but I have tried to
+% make them as much as I could.
+%
+% Also, every file associated with this font, execpt the font
+% definition files (\texttt{*uni.fd}), and font driver files
+% (\texttt{ful*.mf}) begins with the three letters \texttt{uni}, to
+% emphasize the connection.
+%
+% \paragraph{Fouthly:} Some new font shapes are avaliable, as
+% explained above. I found out, during the design of the characters,
+% that new the base file \texttt{unibase.mf} kept showing new
+% potentiality, and the extension of the font to include more shapes
+% was very easy inside the frame of this base, so I thought ``What the
+% heck!''
+%
+% \paragraph{Fifthly:} Some of the \textuni{bauhaus} symbols avaliable
+% in version~1.0, has been taken out, and some new, more general
+% characters have been added. Most of the absent symbols where not
+% really of general use, so I decided to take them out, since I was
+% never really satisfied with those anyway. This also made the font
+% contain exactly 128 characters, just like a normal Computer Modern
+% Roman font.
+%
+% \paragraph{Sixthly:} I improved the \LaTeX{} and \NFSS{} support
+% considerably. The changes are legion, but let me sum up the most
+% important here.
+% \begin{enumerate}
+%   \item Stronger font selection commands.
+%   \item Command names that should be more intuitive.
+%   \item Preperations for \texttt{T1} encoding.
+%   \item Conformation to \LaTeXe{} style, and therefore a better
+%     chance to conform with the future \LaTeX3 format.
+%   \item More and better options.
+% \end{enumerate}
+% 
+% \StopEventually{\AtEndDocument{\PrintIndex\PrintChanges}}
+% 
+%\iffalse
+%<*package>
+%\fi
+% \section{\LaTeX\ Support Files}
+%
+% \subsection{The style file --- \texttt{uni.sty}}
+% \file{uni.sty}
+%
+% In version~2.0, the commands in this file has been redefined using
+% the macros recommended in \ftnguide{} and \clsguide{}. This should
+% make the commands and macros more portable, and secure. Further, it
+% should make it upward--compatiable with future releases of other
+% packages and in the end \LaTeX3.
+% 
+% \subsubsection{Intilalizing}
+%
+% First we need to identify the package, its version and release date,
+% etc.
+%
+%    \begin{macrocode}
+\ProvidesPackage{uni}[\unifiledate\space\unifileversion\space universal
+                          package.]
+%    \end{macrocode}
+%
+% \begin{macro}{\if at uni}
+% \begin{macro}{\@unifalse}
+% \begin{macro}{\@unitrue}
+% \begin{macro}{\if at strict}
+% \begin{macro}{\@strictfalse}
+% \begin{macro}{\@stricttrue}
+% \begin{macro}{\ifdef at ult}
+% \begin{macro}{\def at ultfalse}
+% \begin{macro}{\def at ulttrue}
+% \begin{macro}{\ifm at dium}
+% \begin{macro}{\m at diumfalse}
+% \begin{macro}{\m at diumtrue}
+% Then we setup some new \Lcs{if} commands, to help in different 
+% sitations, depending on options passed to the package etc.
+%    \begin{macrocode}
+\newif\if at uni\@unifalse
+\newif\ifstri at t\stri at tfalse
+\newif\ifdef at ult\def at ultfalse
+\newif\ifm at dium\m at diumfalse
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \subsubsection{Options}
+%    
+% We define some options that can be passed to the package.
+% Option \texttt{strict} is intended to make it possible to do
+% \emph{strict} Herbert Bayer typesetting, that is only in
+% minuscles. Option \texttt{default} will make the \emph{default} font
+% \universal{} of the entire document, while option
+% \texttt{medium} and \texttt{bold} decides wether the default font
+% used by \Lcs{textuni} is normal or bold series. Finally option
+% \texttt{medium} is declared default.
+%    \begin{macrocode}
+\DeclareOption{strict}{\stri at ttrue}
+\DeclareOption{default}{\def at ulttrue}
+\DeclareOption{medium}{\m at diumtrue}
+\DeclareOption{bold}{\m at diumfalse}
+\ExecuteOptions{medium}
+\ProcessOptions\relax
+
+%    \end{macrocode}
+%
+% \subsubsection{Special Characters}
+%
+% \begin{macro}{\uni at init}
+% \begin{macro}{\DeclareUniChar}
+% \Newestchanges{v2.1}{2018/08/26}{Prevent expansion of as-of-yet not
+% defined arguments. Thanks to Scott Pakin.}
+% \changes{v2.0}{98/08/01}{Added for faster and more stable
+% loading of special charactes.}
+% \begin{macro}{\DeclareUniCommand}
+% \changes{v2.0}{98/08/01}{Added for faster and more stable
+% decleration of \universal{} commands.}
+% \begin{macro}{\Declare at Uni}
+% \begin{macro}{\DeclareUni at xarg}
+% \begin{macro}{\DeclareUni at narg}
+% \begin{macro}{\UniError}
+% To facilitate the special character positions of the \universal{}
+% font, we define the internal commands \Lcs{uni at init}, and the user
+% commands \Lcs{DeclareUniChar} and \Lcs{DeclareUniCommand}.
+%
+% \Lcs{DeclareUniChar} and \Lcs{DeclareUniCommand} is very much like
+% the \LaTeX{} commands \Lcs{DeclareTextSymbol} and
+% \Lcs{DeclareTextCommand}, execpt we have to take into account, that
+% the commands may very well be defined in \texttt{ot1enc.def} or the
+% like. Since some of the characters provided with this font, is
+% usually  part of an 8 bit font, I can't just use the character
+% numbers straight of (this is a 7 bit font), and I have some very
+% non--standard characters as well.
+%
+% Though the two commands differ a bit, the main mechanism is the
+% same, so I will explain them together, and note the
+% differences\footnote{The syntax of the macroes are explanied on
+% page~\pageref{expl:cmds}.} .
+% \begin{enumerate}
+% \item When either of the commands is used, we first call the macro
+%   \Lcs{Declare at uni}, which sets up 2 or 3 commands.
+% \item Inside \Lcs{Declare at Uni}, we define \Lcs{temp at a} to be
+%   \Lcs{uni@}\meta{cmd-name}, where \meta{cmd-name} is \meta{cmd}
+%   stripped of the escape character (\Lcs{}).
+% \item Then we check wether \Lcs{cmd} is defined.
+%   \begin{itemize}
+%   \item If \meta{cmd} \emph{isn't} defined, then we define
+%     \Lcs{temp at c} to give \Lcs{uni@}\meta{cmd-name} (which isn't
+%     defined yet) inside the \universal{} font, otherwise an error
+%     message (\Lcs{UniError}).
+%   \item If \meta{cmd} \emph{is} defined, we define \Lcs{temp at b} to
+%     be \Lcs{no at uni@}\meta{cmd-name}, \Lcs{temp at c} to give
+%     \Lcs{uni@}\meta{cmd-name} inside the \universal{} font, and
+%     \Lcs{no at uni@}\meta{cmd-name} (which isn't defined yet)
+%     elsewhere. Then we define \Lcs{no at uni@}\meta{cmd-name} to be
+%     what \meta{cmd} currently is.
+%   \end{itemize}
+%   This finishes \Lcs{Declare at Uni} off.
+% \item The next step depends a bit on which of the macros that is
+%   utiliezed. What is coomon is that \Lcs{uni@}\meta{cmd-name} (hold
+%   in \Lcs{temp at a}) is defined to be the last argument of the command. 
+%   \begin{itemize}
+%   \item In \Lcs{DeclareUniChar}, we define \Lcs{uni@}\meta{cmd-name}
+%     via the \TeX{} command \Lcs{chardef} to be \meta{slot}, which
+%     should be a number (decimal, octal, or hexal) between 0 and
+%     127. Using the \TeX{} primitive will make \LaTeX{} think of
+%     \meta{cmd} as a single character.
+%   \item If \Lcs{DeclareUniCommand} was given an optional argument,
+%     we use the command \Lcs{DeclareUni at xarg} to define
+%     \Lcs{uni@}\meta{cmd-name} --- which uses \Lcs{newcommand} with
+%     \emph{one} optinal argument --- to be
+%     \meta{definition}. Otherwise we use \Lcs{DeclareUni at narg} ---
+%     which uses \Lcs{newcommand} with \emph{no} optinal arguments ---
+%     to do the trick.
+%     Using the \LaTeX{} complex \Lcs{newcommand}, makes \meta{cmd} a
+%     strong command.
+%   \end{itemize}
+% \item Finally we define \meta{cmd} to be \Lcs{temp at d}, which was the
+%   conditional command defined in step 2.
+% \end{enumerate}
+%
+% Notice the use of \Lcs{aftergroup}. This means that \meta{cmd-name}
+% shouldn't be too long, i.e., $>300$ characters, which isn't a real
+% limitation, but now I said it. This macro, together with the group
+% in \Lcs{temp at c} is what made it possible to give arguments to
+% \meta{cmd} defined by \Lcs{DeclareUniCommand}.
+% 
+% This way of doing things has a number of benefiets. 1) First of I
+% makes it very simple to redefine the behaviour of the \universal{} 
+% speciffic character commands. All you have to do is to use
+% \Lcs{DeclareUniChar} or \Lcs{DeclareUniChar} in your preamble (and
+% \emph{only} there). 2) Since \TeX{} are faster at evaluating
+% \Lcs{if...}'s, switching to \universal{} commands should take a 
+% minimum amount of time. 3) From a portability point of view, this
+% way of shifting meanings of commands such as \Lcs{textquotedblleft},
+% according to context, doesn't screw up older documents where the
+% \textsf{uni} package is added to.
+%
+% There are some disadvantage. 1) Most noticably there is \emph{no} 
+% conformation to \emph{any} existing encoding, which however is a
+% problem of the in the font, not the \textsf{uni} package. 2)
+% The heavy use of \Lcs{def}, \Lcs{edef}, and \Lcs{let}, is not
+% exactly \LaTeX3 policy, but is needed here. 3) The definition of the
+% commands may slow \TeX{} down a bit, but should be bearable.
+%    \begin{macrocode}
+\newcommand{\uni at init}{\@unitrue}
+\DeclareRobustCommand{\Declare at Uni}[1]{%
+  \edef\temp@{\expandafter\@gobble\string#1}
+  \edef\temp at a{\csname uni@\temp@\endcsname}
+  \@ifundefined{\temp@}{%
+    \edef\temp at c{{%
+        \noexpand\if at uni\noexpand\aftergroup\temp at a\noexpand%
+        \else\noexpand\UniError{\noexpand#1}\noexpand\fi}}}{%
+    \edef\temp at b{\csname no at uni@\temp@\endcsname}
+    \edef\temp at c{{%
+      \noexpand\if at uni\noexpand\aftergroup\temp at a\noexpand%
+      \else\noexpand\aftergroup\temp at b\noexpand\fi}}
+    \expandafter\let\temp at b#1}}
+\DeclareRobustCommand{\DeclareUniChar}[2]{%
+  \Declare at Uni{#1}
+  \expandafter\chardef\temp at a=#2
+  \let#1\temp at c}
+\def\DeclareUniCommand#1{%
+  \@ifnextchar[{\DeclareUni at xarg#1}{\DeclareUni at narg#1}}
+\def\DeclareUni at xarg#1[#2]#3{%
+  \Declare at Uni{#1}
+  \expandafter\DeclareRobustCommand\temp at a[#2]{#3}
+  \let#1\temp at c}
+\def\DeclareUni at narg#1#2{%
+  \Declare at Uni{#1}
+  \expandafter\DeclareRobustCommand\temp at a{#2}
+  \let#1\temp at c}
+\@onlypreamble\DeclareUniChar\relax
+\@onlypreamble\DeclareUniCommand\relax
+\DeclareRobustCommand{\UniError}[1]{%
+  \PackageError{uni}{%
+    Command \string#1 not defined outside universal font.}{%
+    Correct your source file, so that \string#1 doesn't appear^^J%
+    ouside of universal font, then run LaTeX again.^^J%
+    Prepare your self for some gastly output.}}
+%  \expandafter\show\csname no at uni@\temp@\endcsname
+%  \expandafter\show\csname uni@\temp@\endcsname
+%  \expandafter\show\csname \temp@\endcsname
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\bausquare}
+% \Newestchanges{v2.0}{98/08/01}{\universal{} specific
+% characters declared by seperate macro.}
+% \begin{macro}{\baucircle}
+% \begin{macro}{\bautriangle}
+% \begin{macro}{\bauhead}
+% \begin{macro}{\bauforms}
+% \begin{macro}{\dh}
+% \begin{macro}{\ng}
+% \begin{macro}{\th}
+% \begin{macro}{\varQ}
+% \begin{macro}{\NG}
+% \begin{macro}{\TH}
+% \begin{macro}{\textogonek}
+% \begin{macro}{\textbraceleft}
+% \begin{macro}{\textbraceright}
+% \begin{macro}{\textsection}
+% \begin{macro}{\textbar}
+% \begin{macro}{\guilsinglleft}
+% \begin{macro}{\guilsinglright}
+% \begin{macro}{\textquotedblleft}
+% \begin{macro}{\textquotedblright}
+% \begin{macro}{\quotesinglbase}
+% \begin{macro}{\quotedblbase}
+% \begin{macro}{\guillemoleft}
+% \begin{macro}{\guillemoright}
+% \begin{macro}{\k}
+% \begin{macro}{\DH}
+% \begin{macro}{\DJ}
+% \begin{macro}{\dj}
+% \begin{macro}{\textunderscore}
+% This command takes care of commands for non--standard placement, and
+% symbols in the \universal{} font, while using standard \LaTeXe{}
+% encodings, such as \texttt{OT1}.
+%
+% For instance, the symbols \textunibf{\}}, \textunibf{\{} isn't
+% present in Computer Modern fonts, but is accesiable through the
+% command \Lcs{}\texttt{\{}, and \Lcs{}\texttt{\}} in the \universal{}
+% font. On the other hand \char"00{} isn't present in this font, but
+% is replaced by \textunibf{\char"00}.
+%
+% Some of the commands avaliable are well--known to the \texttt{T1}
+% encodeing, and are provided with the same commmand names as in that
+% encoding.
+%
+% The decleration of these commands use my (slick) macros
+% \Lcs{DcelareUniChar} and \Lcs{DcelareUniCommand} --- very neat I
+% think. 
+%
+%    \begin{macrocode}
+\DeclareUniChar{\bausquare}{"00}
+\DeclareUniChar{\baucircle}{"01}
+\DeclareUniChar{\bautriangle}{"02}
+\DeclareUniChar{\bauhead}{"03}
+\DeclareUniChar{\bauforms}{"04}
+\DeclareUniChar{\dh}{"05}
+\DeclareUniChar{\ng}{"06}
+\DeclareUniChar{\th}{"07}
+\DeclareUniChar{\varQ}{"08}
+\DeclareUniChar{\NG}{"09}
+\DeclareUniChar{\TH}{"0A}
+\DeclareUniChar{\textogonek}{"0B}
+\DeclareUniChar{\textbraceleft}{"0C}
+\DeclareUniChar{\textbraceright}{"0D}
+\DeclareUniChar{\textsection}{"0E}
+\DeclareUniChar{\textbar}{"0F}
+\DeclareUniChar{\guilsinglleft}{"22}
+\DeclareUniChar{\guilsinglright}{"5C}
+\DeclareUniChar{\quotesinglbase}{"2C}
+\DeclareUniCommand{\quotedblbase}{\char"2C\kern-.3em\char"2C}
+\DeclareUniCommand{\textquotedblleft}{``}
+\DeclareUniCommand{\textquotedblright}{''}
+\DeclareUniCommand{\guillemoleft}{\char"22\char"22}
+\DeclareUniCommand{\guillemoright}{\char"5C\char"5C}
+\DeclareUniCommand{\DH}{\raise.5ex\hbox{\char"2D}\kern-.5em D}
+\DeclareUniCommand{\DJ}{\raise.5ex\hbox{\char"2D}\kern-.5em D}
+\DeclareUniCommand{\dj}{\raise.75ex\hbox{\char"2D}\kern-1em d}
+\DeclareUniCommand{\textunderscore}{\lower.5ex\hbox{\char"7B}}
+\DeclareUniCommand{\k}[1]{%
+    \leavevmode\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent11 #1%
+    \else{\ooalign{\unhbox\z@\crcr\hidewidth\char11\hidewidth}}\fi}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Font Selection}
+% 
+% \begin{macro}{\unifamily}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unifamily} to
+% fasilitate easier and stronger font loading.}
+% The real command. This switches to \universal{} font, and can
+% be used by authors in conjunction with \LaTeXe{} primitive
+% \Lcs{selectfont}. \Lcs{unifamily} is used below in \Lcs{textuni...},
+% and \Lcs{uni...}.
+% 
+% \begin{macro}{\unifamilydefault}
+% \changes{v2.0}{98/08/01}{Defined to make package conform to
+% \LaTeXe{} better.}
+% Here \Lcs{unifamilydefault} is by default defined to be
+% \texttt{uni}, but could ofcourse expand to something
+% different. However, the expnasion should be a font family (like
+% \texttt{cmr}) or the like.
+% 
+%    \begin{macrocode}
+\DeclareRobustCommand\unifamily{%
+  \not at math@alphabet\unifamily\relax%
+  \fontfamily\unifamilydefault\selectfont}
+\newcommand{\unifamilydefault}{uni}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\uniseries}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{uniseries} to
+% fasilitate easier and stronger font loading.}
+% If the \texttt{bold} option is used with the \textsf{uni} package,
+% then this command switches to whatever series is defined via
+% \Lcs{uniseriesdefault} (default is \textbf{bold} series), otherwise
+% it does nothing. Since this command is used in \Lcs{textuni} and
+% \Lcs{uni}, this way will not allow anyother series if \texttt{bold}
+% option is given, expect \textbf{bold}. However, if \texttt{bold}
+% isn't given, then \emph{any} series is possible.
+% 
+% \begin{macro}{\uniseriesdefault}
+% \changes{v2.0}{98/08/01}{Defined to make package conform to
+% \LaTeXe{} better.}
+% Here \Lcs{uniseriesdefault} is defined to be \texttt{b}
+% (\textbf{medium}) if the \texttt{bold} option \emph{was} given to 
+% \textsf{uni} package. Otherwise it expans to nothing
+% (\Lcs{relax}). This macro is used by \Lcs{uniseries}.
+%    \begin{macrocode}
+\ifm at dium
+  \let\uniseries\relax
+  \let\uniseriesdefault\relax
+\else
+  \DeclareRobustCommand\uniseries{%
+    \not at math@alphabet\uniseries\relax%
+    \fontseries\uniseriesdefault\selectfont}
+  \newcommand{\uniseriesdefault}{b}
+\fi
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\unishape}
+% \Newestchanges{v2.0}{98/08/01}{Defined \Lcs{unishape} to
+% fasilitate easier and stronger font loading.}
+% If the \texttt{strict} option is used with the \textsf{uni} package,
+% then this command switches to whatever shape is defined via
+% \Lcs{unishapedefault} (default is \emph{strict} shape), otherwise
+% it does nothing. Since this command is used in \Lcs{textuni} and
+% \Lcs{uni}, this way will not allow anyother shape if \texttt{strict}
+% option is given, expect \emph{strict}. However, if \texttt{strict}
+% isn't given, then \emph{any} series is possible.
+% 
+% \begin{macro}{\unishapedefault}
+% \changes{v2.0}{98/08/01}{Defined to make package conform to
+% \LaTeXe{} better.} 
+% Here \Lcs{unishapedefault} is defined to be \texttt{st}
+% (\emph{strict}) if the \texttt{strict} option \emph{was} given to 
+% \textsf{uni} package. Otherwise it expans to nothing
+% (\Lcs{relax}). This macro is used by \Lcs{unishape}.
+%    \begin{macrocode}
+\ifstri at t
+  \DeclareRobustCommand\unishape{%
+    \not at math@alphabet\unishape\relax%
+    \fontseries\unishapedefault\selectfont}
+  \newcommand{\unishapedefault}{st}
+\else
+  \let\unishape\relax
+  \let\unishapedefault\relax
+\fi
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\stshape}
+% \changes{v2.0}{98/08/01}{Defined \Lcs{stshape} to make package
+% conform to \LaTeXe{} better.}
+% This command selects the shape holded by \Lcs{stdefault} (defaults
+% to \texttt{st} --- strict) in any family or series. This is used by
+% commands \Lcs{textunist}, \Lcs{textunibst}, \Lcs{unist}, and
+% \Lcs{unibst}.
+% 
+% \begin{macro}{\stdefault}
+% \changes{v2.0}{98/08/01}{Defined to make package conform to
+% \LaTeXe{} better.}
+% The shape selected by \Lcs{stshape}.
+%    \begin{macrocode}
+\DeclareRobustCommand\stshape{%
+  \not at math@alphabet\stshape\relax%
+  \fontshape\stdefault\selectfont}
+\newcommand{\stdefault}{st}
+  
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \paragraph{Local Font Selection}
+% \begin{macro}{\textuni}
+% \Newestchanges{v2.0}{98/08/01}{\Lcs{textbayer} changed to
+% \Lcs{textuni}, and defined using \LaTeXe{} scheme.}
+% \begin{macro}{\textunirm}
+% \begin{macro}{\textunibf}
+% \begin{macro}{\textunisl}
+% \begin{macro}{\textunisc}
+% \begin{macro}{\textunibsl}
+% \begin{macro}{\textunibsc}
+% These are the macros that switches to \universal{} font, 
+% locally, i.e., for a few words, in various series and shapes. The
+% names are pretty selfexplanetory, I think. These macros will
+% \emph{always} change the font series and shape accroding to it's
+% definiton, nothing more, and nothing less, exepct \Lcs{textuni},
+% which only changes the cuurent family to \texttt{uni}. Notice it
+% simply uses the \Lcs{unifamily} command to do the trick.
+%
+% The second argument to \Lcs{DeclareTextFontCommand} should not
+% normally contain commands that typeset, or commands not relevant to
+% the selection of fonts, but to make up for the non--default
+% characeters and character placements, we \emph{do} include
+% \Lcs{uni at init} in the argument.
+%
+% Notice that only \Lcs{textuni} is defined if option \texttt{strict}
+% was given to \textsf{uni} package.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\textuni}{%
+  \uni at init\unifamily\uniseries\unishape}
+\ifstri at t
+\else
+  \DeclareTextFontCommand{\textunirm}{%
+    \uni at init\unifamily\mdseries\upshape}
+  \DeclareTextFontCommand{\textunibf}{%
+    \uni at init\unifamily\bfseries\upshape}
+  \DeclareTextFontCommand{\textunisl}{%
+    \uni at init\unifamily\mdseries\slshape}
+  \DeclareTextFontCommand{\textunisc}{%
+    \uni at init\unifamily\mdseries\scshape}
+  \DeclareTextFontCommand{\textunist}{%
+    \uni at init\unifamily\mdseries\stshape}
+  \DeclareTextFontCommand{\textunibsl}{%
+    \uni at init\unifamily\bfseries\slshape}
+  \DeclareTextFontCommand{\textunibsc}{%
+    \uni at init\unifamily\bfseries\scshape}
+  \DeclareTextFontCommand{\textunibst}{%
+    \uni at init\unifamily\bfseries\stshape}
+\fi
+  
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \paragraph{Global Font Selection}
+% \begin{macro}{\uni}
+% \Newestchanges{v2.0}{98/08/01}{\Lcs{bayer} changed to \Lcs{uni}}
+% \begin{macro}{\unibf}
+% \begin{macro}{\unibf}
+% \begin{macro}{\unisl}
+% \begin{macro}{\unisc}
+% \begin{macro}{\unibsl}
+% \begin{macro}{\unibsc}
+% These macros works as \Lcs{textuni...} above, execpt the take effect
+% from the point used, to the end of the current group. Again font
+% selection is \emph{exactly} as given in the command name, execpt for
+% \Lcs{uni} which only changes the family.
+%
+% Notice that only \Lcs{uni} is defined if option \texttt{strict}
+% was given to \textsf{uni} package.
+%    \begin{macrocode}
+\DeclareOldFontCommand{\uni}{%
+  \uni at init\unifamily\uniseries\unishape}{}
+\ifstri at t
+\else
+  \DeclareOldFontCommand{\unirm}{%
+    \uni at init\unifamily\mdseries\upshape}{}
+  \DeclareOldFontCommand{\unibf}{%
+    \uni at init\unifamily\bfseries\upshape}{}
+  \DeclareOldFontCommand{\unisl}{%
+    \uni at init\unifamily\mdseries\slshape}{}
+  \DeclareOldFontCommand{\unisc}{%
+    \uni at init\unifamily\mdseries\scshape}{}
+  \DeclareOldFontCommand{\unist}{%
+    \uni at init\unifamily\mdseries\stshape}{}
+  \DeclareOldFontCommand{\unibsl}{%
+    \uni at init\unifamily\bfseries\slshape}{}
+  \DeclareOldFontCommand{\unibsc}{%
+    \uni at init\unifamily\bfseries\scshape}{} 
+  \DeclareOldFontCommand{\unibst}{%
+    \uni at init\unifamily\bfseries\stshape}{} 
+\fi
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \paragraph{\texttt{default} Option Font}
+%
+% \begin{macro}{\ifdef at ult}
+% \begin{macro}{\def at ulttrue}
+% \begin{macro}{\def at ultfalse}
+% \begin{macro}{\ifm at dium}
+% \begin{macro}{\m at diumtrue}
+% \begin{macro}{\m at diumfalse}
+% Now if you gave the \texttt{default} option to the package,
+% \Lcs{ifdef at ult} evaluates to true, and so we setup the default font
+% to be \universal{}, in the medium or bold version, depending
+% on wether you gave the \texttt{medium} option or not.
+%    \begin{macrocode}
+\ifdef at ult
+  \renewcommand{\familydefault}{uni}
+  \ifm at dium\renewcommand{\seriesdefault}{m}
+  \else\renewcommand{\seriesdefault}{b}\fi
+  \renewcommand{\itdefault}{sl}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\cmrfamily}
+% \begin{macro}{\cmrdefault}
+% \begin{macro}{\textcmr}
+% \begin{macro}{\cmr}
+% We define \Lcs{cmrfamily} and \Lcs{cmrdefault} to change back to
+% Computer Modern Roman font, if so wanted. The macros \Lcs{textcmr}
+% and \Lcs{cmr} are the logical extensions of \Lcs{cmrfamily}.
+%    \begin{macrocode}
+  \DeclareRobustCommand\cmrfamily{%
+    \not at math@alphabet\cmrfamily\relax%
+    \fontencoding\cmrenc\fontfamily\cmrdefault\selectfont}
+  \newcommand{\cmrdefault}{cmr}
+  \newcommand{\cmrenc}{OT1}
+  \DeclareTextFontCommand{\textcmr}{\cmrfamily}
+  \DeclareOldFontCommand{\cmr}{\cmrfamily}{}
+\fi
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%\iffalse
+%</package>
+%\fi
+% \subsection{The Font Definition Files --- \texttt{*uni.fd}}
+%
+% These files is needed in the New Font Selection Scheme, used by
+% \LaTeXe{}, but really isn't nessecary for pure \TeX{} or \LaTeX2.09
+% users, but since those are treathned races, I did put in the extra
+% effort and made the files.
+%
+% What they really do, is to speciffy what font driver file should be
+% loaded when the user swichtes font. Notice, alot of the font shapes
+% etc.\ avaliable in the Computer Modern Roman scheme isn't avaliable
+% in the \universal{} font, so we substitute with whatever is
+% closest, something from the \universal{} or Computer Modern
+% Roman scheme.
+%
+% The reason why the file names may look a bit wierd, is to make the
+% font conform to the standard set by \texttt{fontname} used by
+% \texttt{kpathsea} in most \TeX{}, \LaTeX{}, and \MF{} systems.
+% 
+% \paragraph*{Math Encoding}\file{oml.fd}
+% First comes the the font definition file for \emph{math}, but since
+% no math characters is  defined in the \universal{} font, we
+% substitute with the relevant fonts from Computer Modern Roman.
+%\iffalse
+%<*oml>
+%\fi
+%    \begin{macrocode}
+\ProvidesFile{omluni.fd}
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
+\DeclareFontFamily{OML}{uni}{\skewchar\font127 }
+\DeclareFontShape{OML}{uni}{m}{n}{<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{uni}{m}{it}{<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{uni}{m}{sl}{<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{uni}{m}{sc}{<-> ssub * cmm/m/it}{}
+\DeclareFontShape{OML}{uni}{bx}{n}{<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{uni}{bx}{it}{<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{uni}{bx}{sl}{<-> ssub * cmm/b/it}{}
+\DeclareFontShape{OML}{uni}{bx}{sc}{<-> ssub * cmm/b/it}{}
+
+%    \end{macrocode}
+%\iffalse
+%</oml>
+%\fi
+%
+% \paragraph*{Symbols Encoding}\file{omsuni.fd}
+% Next is the definitions for \emph{symbols} fonts, but as above,
+% there is no seperate symbol font defined for the \universal{}
+% font, so we substitute for default.
+%\iffalse
+%<*oms>
+%\fi
+%    \begin{macrocode}
+\ProvidesFile{omsuni.fd}
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
+\DeclareFontFamily{OMS}{uni}{\skewchar\font48 }
+\DeclareFontShape{OMS}{uni}{m}{n}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{uni}{m}{it}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{uni}{m}{sl}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{uni}{m}{sc}{<-> ssub * cmsy/m/n}{}
+\DeclareFontShape{OMS}{uni}{bx}{n}{<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{uni}{bx}{it}{<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{uni}{bx}{sl}{<-> ssub * cmsy/b/n}{}
+\DeclareFontShape{OMS}{uni}{bx}{sc}{<-> ssub * cmsy/b/n}{}
+
+%    \end{macrocode}
+%\iffalse
+%</oms>
+%\fi
+% 
+% \paragraph*{Normal Encoding}\file{ot1uni.fd}
+% Now the definitions for the normal font. This \emph{is} ofcourse
+% defined, anything else would be ludicruis. It is very straight
+% forward most of the way. However, notice the substitutions at the
+% end of the file.
+%
+%\iffalse
+%<*ot1>
+%\fi
+%    \begin{macrocode}
+\ProvidesFile{ot1uni.fd}%
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
+\DeclareFontFamily{OT1}{uni}{\hyphenchar\font45 }
+  
+%    \end{macrocode}
+% Next comes the specifications of what to load in \textunirm{normal
+% upright shape}
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{m}{n}{
+  <5><6><7><8>fulmr8
+  <9>fulmr9
+  <10><10.95>fulmr10
+  <12><14.4>fulmr12
+  <17.28><20.74><24.88>fulmr17
+  }{}
+  
+%    \end{macrocode}
+% Next comes the specifications of what to load in \textunisl{normal
+% slanted shape}
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{m}{sl}{
+  <5><6><7><8>fulmo8
+  <9>fulmo9
+  <10><10.95>fulmo10
+  <12><14.4>fulmo12
+  <17.28><20.74><24.88>fulmo17
+  }{}
+  
+%    \end{macrocode}
+% Now for \textunisc{small caps medium} definitions.
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{m}{sc}{
+  <5><6><7><8>fulmc8
+  <9>fulmc9
+  <10><10.95>fulmc10
+  <12><14.4>fulmc12
+  <17.28><20.74><24.88>fulmc17
+  }{}
+
+%    \end{macrocode}
+% Now for \textunist{strict medium} definitions.
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{m}{st}{
+  <5><6><7><8>fulmst8
+  <9>fulmst9
+  <10><10.95>fulmst10
+  <12><14.4>fulmst12
+  <17.28><20.74><24.88>fulmst17
+  }{}
+
+%    \end{macrocode}
+% Next comes the specifications of what to load in \textunibf{bold
+% face upright shape}
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{b}{n}{
+  <5><6><7><8>fulbr8
+  <9>fulbr9
+  <10><10.95>fulbr10
+  <12><14.4>fulbr12
+  <17.28><20.74><24.88>fulbr17
+  }{}
+  
+%    \end{macrocode}
+% Next comes the specifications of what to load in
+% \textunibsl{bold face slanted shape}
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{b}{sl}{
+  <5><6><7><8>fulbo8
+  <9>fulbo9
+  <10><10.95>fulbo10
+  <12><14.4>fulbo12
+  <17.28><20.74><24.88>fulbo17
+  }{}
+    
+%    \end{macrocode}
+% And \textunibsc{small caps bold face} definitions.
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{b}{sc}{
+  <5><6><7><8>fulbc8
+  <9>fulbc9
+  <10><10.95>fulbc10
+  <12><14.4>fulbc12
+  <17.28><20.74><24.88>fulbc17
+  }{}
+    
+%    \end{macrocode}
+% And \textunibst{strict bold face} definitions.
+%    \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{b}{st}{
+  <5><6><7><8>fulbst8
+  <9>fulbst9
+  <10><10.95>fulbst10
+  <12><14.4>fulbst12
+  <17.28><20.74><24.88>fulbst17
+  }{}
+    
+%    \end{macrocode}
+%
+% Now for the substitutions. This is straight forward, that
+% is, upright slanted is substituted by upright; bold face condensed,
+% and bold face extra is substituted by boldface; and italic by
+% slanted\footnote{As mentioned earlier, one of the characteristics
+% of this dont, is that it has no serifs, so it would be strange
+% to include italics in this font.}.
+%     \begin{macrocode}
+\DeclareFontShape{OT1}{uni}{m}{it}{<->ssub*uni/m/sl}{}
+\DeclareFontShape{OT1}{uni}{m}{ui}{<->ssub*uni/m/n}{}
+\DeclareFontShape{OT1}{uni}{b}{it}{<->ssub*uni/b/sl}{}
+\DeclareFontShape{OT1}{uni}{bx}{n}{<->ssub*uni/b/n}{}
+\DeclareFontShape{OT1}{uni}{bx}{sl}{<->ssub*uni/b/sl}{}
+\DeclareFontShape{OT1}{uni}{bx}{sc}{<->ssub*uni/b/sc}{}
+\DeclareFontShape{OT1}{uni}{bx}{st}{<->ssub*uni/b/st}{}
+\DeclareFontShape{OT1}{uni}{bx}{it}{<->ssub*uni/b/sl}{}
+\DeclareFontShape{OT1}{uni}{bc}{ui}{<->ssub*uni/b/n}{}
+\DeclareFontShape{OT1}{uni}{sbc}{n}{<->ssub*uni/b/n}{}
+
+%    \end{macrocode}
+%\iffalse
+%</ot1>
+%\fi
+%
+% \paragraph*{T1 encoding}\file{t1uni.fd}
+% Since the T1 encoding relies on the font scheme of \texttt{exbase}
+% (EC fonts), and \texttt{dxbase} (DC fonts), by J\"org Knappen and
+% Nobert Schwartz, which is a whole new way of making fonts, that
+% requires some special messaures that I couldn't incorporate into the
+% \universal{} font without a whole lot of work, I chose not to
+% make support for the T1 scheme. Therefore this file issues a warning
+% and then exists the whole \LaTeX{} run. This may seem a bit drastic,
+% but it ensures that you don't get screwed up resuats.
+%\iffalse
+%<*t1>
+%\fi
+%    \begin{macrocode}
+\ProvidesFile{t1uni.fd}
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
+\typeout{WARNING: universal font not avaliable in t1 definition.}
+\typeout{WARNING: exiting, correct your source.}
+\stop
+
+%    \end{macrocode}
+%\iffalse
+%</t1>
+%\fi
+%
+% \paragraph*{U Encoding}\file{uuni.fd}
+% This is similar to the normal encoding above, execpt encoding is U. 
+%\iffalse
+%<*u>
+%\fi
+%    \begin{macrocode}
+\ProvidesFile{uuni.fd}
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
+\DeclareFontFamiliy{U}{uni}{\hyphenchar\font45}
+\DeclareFontShape{U}{uni}{m}{n}{
+  <5><6><7><8>fulmr8
+  <9>fulmr9
+  <10><10.95>fulmr10
+  <12><14.4>fulmr12
+  <17.28><20.74><24.88>fulmr17
+  }{}
+\DeclareFontShape{U}{uni}{m}{sl}{
+  <5><6><7><8>fulmo8
+  <9>fulmo9
+  <10><10.95>fulmo10
+  <12><14.4>fulmo12
+  <17.28><20.74><24.88>fulmo17
+  }{}
+\DeclareFontShape{U}{uni}{m}{sc}{
+  <5><6><7><8>fulmc8
+  <9>fulmc9
+  <10><10.95>fulmc10
+  <12><14.4>fulmc12
+  <17.28><20.74><24.88>fulmc17
+  }{}
+\DeclareFontShape{U}{uni}{m}{st}{
+  <5><6><7><8>fulmst8
+  <9>fulmst9
+  <10><10.95>fulmst10
+  <12><14.4>fulmst12
+  <17.28><20.74><24.88>fulmst17
+  }{}
+\DeclareFontShape{U}{uni}{b}{n}{
+  <5><6><7><8>fulbr8
+  <9>fulbr9
+  <10><10.95>fulbr10
+  <12><14.4>fulbf12
+  <17.28><20.74><24.88>fulbr17
+  }{}
+\DeclareFontShape{U}{uni}{b}{sl}{
+  <5><6><7><8>fulbo8
+  <9>fulbo9
+  <10><10.95>fulbo10
+  <12><14.4>fulbo12
+  <17.28><20.74><24.88>fulbo17
+  }{}
+\DeclareFontShape{U}{uni}{b}{sc}{
+  <5><6><7><8>fulbc8
+  <9>fulbc9
+  <10><10.95>fulbc10
+  <12><14.4>fulbc12
+  <17.28><20.74><24.88>fulbc17
+  }{}
+\DeclareFontShape{U}{uni}{b}{st}{
+  <5><6><7><8>fulbst8
+  <9>fulbst9
+  <10><10.95>fulbst10
+  <12><14.4>fulbst12
+  <17.28><20.74><24.88>fulbst17
+  }{}
+\DeclareFontShape{U}{uni}{m}{it}{<->ssub*uni/m/sl}{}
+\DeclareFontShape{U}{uni}{m}{ui}{<->ssub*uni/m/n}{}
+\DeclareFontShape{U}{uni}{b}{it}{<->ssub*uni/b/sl}{}
+\DeclareFontShape{U}{uni}{bx}{n}{<->ssub*uni/b/n}{}
+\DeclareFontShape{U}{uni}{bx}{sl}{<->ssub*uni/b/sl}{}
+\DeclareFontShape{U}{uni}{bx}{sc}{<->ssub*uni/b/sc}{}
+\DeclareFontShape{U}{uni}{bx}{st}{<->ssub*uni/b/st}{}
+\DeclareFontShape{U}{uni}{bx}{it}{<->ssub*uni/b/sl}{}
+\DeclareFontShape{U}{uni}{bc}{ui}{<->ssub*uni/b/n}{}
+\DeclareFontShape{U}{uni}{sbc}{n}{<->ssub*uni/b/n}{}
+        
+%    \end{macrocode}
+%\iffalse
+%</u>
+%\fi
+
+%\iffalse
+%<*unibase>
+%\fi
+%
+% \section{The Font Macros and Programs}
+%
+% \subsection{Base file --- \texttt{unibase.mf}}
+% \file{unibase.mf}
+% \Newestchanges{v2.0}{98/08/01}{Base file \texttt{unibase.mf} swa the
+% light of day, providing many driver, font control, and drawing
+% macros.} 
+%
+% This file defines all the macroes used in the source programs
+% for the font. I could have chosen to use \texttt{cmbase}, but
+% rather then defining a lot of variables that isn't used, I chose
+% to make a base file myself. Also, some af the drawing macros
+% presented here still needed to be defined. This file could be
+% made into a binary file, but I think that would be a bit to
+% much.
+%
+% First we define the variable \texttt{unibase}, to check later if
+% this file has been loaded.
+%    \begin{macrocode}
+unibase := 1 ;
+string univer ;
+univer = "2.0" ;
+if proofing > 1 :
+  message "Base file for font `universal', version " & univer ;
+fi
+%    \end{macrocode}
+% Secondly, we define the variables \texttt{medium} and \texttt{bold}
+% to control the font serie to be produced. If \texttt{medium} is set
+% to \textsl{true} in the driver file, then a medium series
+% (\Lcs{mdseries}) font will be produced, while \texttt{bold} ofcourse
+% generates a boldface font. The medium serie may very well be
+% more suitiable for long texts then the default font.  In $10pt$
+% the default thickness of the pen is $\frac{5}{6}pt\approx 0.8pt$
+% wide for the minuscles, and a bit wider for the majuscules. If
+% \texttt{medium} is \texttt{true} then it is $\frac{5}{9}pt\approx
+%   0.6pt$ wide.
+%
+% Booleans \texttt{slant} and \texttt{caps} is used to control the
+% shape of the font. If both is \textsl{false} a normal (upright)
+% shaped font (\Lcs{upshape}) font is generated. If \texttt{slant} or
+% \texttt{caps} is true, either a slanted (\Lcs{slshape}) or small
+% caps (\Lcs{scshape}) shaped font is generated. The values of these
+% booleans should be set in the driver file, \emph{before} any call to
+% \texttt{start\_font}.
+%    \begin{macrocode}
+boolean medium , slant , bold , caps , strict ;
+medium := false ; slant := false  ; bold := false ;
+caps := false   ; strict := false ;
+%    \end{macrocode}
+% And then the font is identified as \texttt{"universal"}.
+%    \begin{macrocode}
+font_identifier:="universal"; 
+
+%    \end{macrocode}
+%
+% \subsubsection{Font macros}
+%
+% These macroes have to do with the general initialization and 
+% production of the font. The macros needed later on is
+% \texttt{start\_font}, and \texttt{end\_font}.
+%
+% The general idea is, that as little as possible should be 
+% defined in the driver file, so that the font will have a uniform
+% look in all series, shapes, and sizes.  All that is needed in the
+% driver file is to  define some of the above booleans to true, call
+% the macro \texttt{start\_font} giving it the size (in \texttt{pt\#})
+% of the font as argument, include of source files, and call the macro
+% \texttt{end\_font}. 
+%
+% \begin{fontmacro}{start\_font}
+% This is the macro for setting up the needed dimensions and 
+% variables. First we take into acount the \textit{mode} used, by
+% calling \texttt{mode\_setup}, then we define the correct,
+% \textit{sharped} units, bassed on the argument to the macro, wich
+% should be the size of the font in \texttt{pt\#}.
+%    \begin{macrocode}
+def start_font(expr size) =	
+  u# := size/18 ;	
+  mode_setup;
+  x_h# :=  8u# ; x_w# := 8u#   ; m_w# := 11u# ; l_h# := 13u# ;
+  p_d# :=  5u# ; l_s# := 2u#   ; r_s# :=  2u# ; A_w# := 10u# ;
+  M_w# := 14u# ; c_d# := 3u#/2 ; C_d# :=  2u# ;
+%    \end{macrocode}
+% We test to see, if any of the above booleans is set to
+% \textsl{true}, and if so, takes appropiate action. If
+% \texttt{medium} is set, the pens gets thinner, thereby producing  
+% a lighter font. If \texttt{bold} the pens gets thicker, and so a
+% heavier font is produced. If \texttt{slant} is set, then the
+% inclination (\texttt{slantratio}) of the font is assigned.
+%
+% No other dimensions then the pen thickness should be differ among
+% the \emph{medium} and \emph{bold} font. However, two dimension
+% \texttt{c\_d} and \texttt{C\_d} is always set to the same value as
+% the pens would be in the current size, if the font to be made was
+% \emph{bold}.
+%
+% Also notice, that two different pens thicknesses is defined
+% \texttt{p\_t} and \texttt{P\_t}, so that the majuscules may come out
+% a bit thicker then the minuscles. Ofcourse this adds to the
+% complexity of the drawing macroes defined below, but in a very
+% straight forward way, so I dont't think it will be a problem.
+%
+% Then we set \texttt{currenttransform} to take into account the
+% varibale \texttt{slantratio}. 
+%    \begin{macrocode}
+  if (medium and bold) :
+    message "Font can't be both medium and bold, making medium font." ;
+    medium := true ;
+  fi;
+  if medium : p_t# := 2u#/3 ; P_t# := u#    ; P_T# := u#  ; fi ; 
+  if bold :   P_T# := 3u#/2 ; p_t# := 3u#/2 ; P_t# := 2u# ; fi ; 
+  a_h# := x_h#+p_t#/2 ;
+  if (slant and (caps or strict)) : double_shape := 1 ; fi ;
+  if (caps and (slant or strict)) : double_shape := 1 ; fi ;
+  if (strict and (caps or slant)) : double_shape := 1 ; fi ;
+  if known double_shape :
+    message "Font cannot be two shapes, doing upright shape." ;
+    slant := false ; caps := false ; strict := false ;
+  fi ;
+  if slant : slantratio := 1/6 ; else: slantratio := 0 ; fi ;
+  currenttransform := identity slanted slantratio ;
+%    \end{macrocode}
+% We need to set some paramteres for the Font Metric File
+% (\texttt{*.tfm}), so that \TeX{} knows how to typeset the characters
+% of the font. This is pretty straight, as desribed in the \MFbook{}.
+%    \begin{macrocode}
+  font_x_height 8u#                 ; font_quad 12u#+2u#       ;
+  font_normal_space 8u#             ; font_normal_stretch 3u# ; 
+  font_normal_shrink 2u#            ; font_extra_space 2u#    ; 
+  font_coding_scheme:="TeX text"    ; font_size 18u#        ;
+%    \end{macrocode}
+% Next we assigns some variables we need later on, defines the
+% \emph{un\/}sharped (mode dependent) units, declares some variables
+% for later use, and call the macro \texttt{do\_pens} to save the pens
+% needed by the font.
+%    \begin{macrocode}
+  spanish_shriek:=hex"3C"           ; spanish_query:=hex"3E";
+  define_pixels(u,x_h,x_w,m_w,l_h,p_d,A_w,M_w,c_d,C_d,a_h);
+  define_blacker_pixels(p_t,P_t,P_T);
+  picture e_pic, a_pic ;
+  do_pens ;
+%    \end{macrocode}
+% The definitions of \texttt{extra\_beginchar} and 
+% \texttt{extra\_endchar} is responsible for the extra stem width
+% of the font. Since this font is pretty uniform in width, we 
+% can easily do this globally. I got the trick from \texttt{cmbase},
+% where you instead use \texttt{adjust\_fit} after \texttt{beginchar}.
+% However, for the above reasons, and because it lessens the source
+% programs considerably, I chose to do it this way.
+%
+% The inclusion of the assignement
+% \begin{verbatim}
+%   charcode := charcode + code_offset ;
+% \end{verbatim}
+% is for the small caps font, so that characters may be placed at
+% non--standard positions in the font. When we are not making a small
+% caps font, \texttt{code\_offset} should ofcourse be set to 0 (zero).
+%    \begin{macrocode}
+  extra_beginchar := extra_beginchar&"fit_font;" ;
+  extra_endchar   := extra_endchar&
+    "end_fit_font;extra_proof_rules;charcode:=charcode+code_offset;" ; 
+  code_offset := 0 ;
+enddef;
+
+%    \end{macrocode}
+% \end{fontmacro}
+% 
+% \begin{fontmacro}{do\_pens}
+% This macro is used to set up the pens needed in this font. It is
+% called every time one of the dimensions \texttt{p\_t\#} or
+% \texttt{P\_t\#} is changed, since those are the \texttt{p/P}en
+% \texttt{t/T}hicknesses.
+%
+% Apart from saving a lot of time, as explained in the \MFbook{}, this
+% also garanties, that all pens are transformed correctly when the
+% font shape is \textsl{slanted}.
+%    \begin{macrocode}
+def do_pens =
+  clear_pen_memory ;
+  pickup pencircle scaled P_T slanted slantratio ;
+  UniPencir := savepen ;
+  pickup pencircle scaled p_t slanted slantratio ;
+  unipencir := savepen ;
+  pickup pencircle scaled P_t slanted slantratio ;
+  Unipencir := savepen ; 
+  pickup pensquare scaled P_T slanted slantratio ;
+  UniPensqu := savepen ;
+  pickup pensquare scaled p_t slanted slantratio ;
+  unipensqu := savepen ;
+  pickup pensquare scaled P_t slanted slantratio ;
+  Unipensqu := savepen ; 
+enddef ;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+% \begin{fontmacro}{fit\_font}
+% This is the macro that changes the width of the font. It is
+% derived from \texttt{cmbase}s \texttt{normal\_adjust\_fit}, though
+% used in a slightly different way here. As explained in the \MFbook,
+% this is a very nice macro, since it is essesially an add--on 
+% feature. We still specify the width of character in 
+% \texttt{beginchar}, and \texttt{w} is still this dimension. However,
+% extra space is added to the character at both the left and right,
+% so that characters don't get too close.
+%    \begin{macrocode}
+def fit_font =
+  l := -hround(l_s#*hppp) ; interim xoffset := -l ; 
+  charwd := charwd+l_s#+r_s# ; r := l+hround(charwd*hppp) ; 
+  w := r-hround(r_s#*hppp) ;
+  italcorr charht*slantratio ;
+enddef;
+
+%    \end{macrocode}
+% \end{fontmacro}
+% \begin{fontmacro}{end\_fit\_font}
+% Again, this is taken from \texttt{cmbase}, so that extra space is
+% added on the sides of the character.
+%    \begin{macrocode}
+def end_fit_font =
+  w := r+l ;
+enddef;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+% \begin{fontmacro}{extra\_proof\_rules}
+% When doing proofing, it is nice to have some extra rules on the
+% proofs, so that errors and mistakes are easiler seen. This macro
+% does just that. A verticatal rule is produced at the left and 
+% right edge, and through the middle of the character. Horizontal
+% rules are produced at one quarter, half, and three quarters of the
+% character height. Also, if the charcter extence below the baseline,
+% a rule is produced at one half the depth.
+%    \begin{macrocode}
+def extra_proof_rules =
+  if proofing > 1 :
+    for xa = l,r,w/2: proofrule((xa,-d), (xa,h)) ; endfor ;
+    for ya = 0,h/4,h/2,3h/4,h: proofrule((l,ya), (r,ya)) ; endfor ;
+    if d > 0 :
+      proofrule((l,-d/2), (r,-d/2)) ;
+      proofrule((l,-d), (r,-d)) ;
+    fi
+  fi
+enddef ;
+
+%    \end{macrocode}
+% \end{fontmacro}
+% \begin{fontmacro}{end\_font}
+% \texttt{end\_font} is used at the end of the driver file, to set
+% ligatures, and end of the file. There is nothing fancy here. Do,
+% however, notice no `f' ligatures is defined, as in the Computer
+% Modern Roman. This is because they are not meant to be there, 
+% because `ff' shouldn't come out as `\textunibf{f\kern-.25ex f}', 
+% which looks bad, but rather as `\textunibf{ff}'.
+%
+% Also notice, that we haven't defined any characters \textunibf{``}
+% or \textunibf{''}, since we make these up of two \textunibf{`} or
+% \textunibf{'}. This gives us two more slots we can put other
+% characters into.
+%
+% Note, we preface the definition by \texttt{inner bye} so that we can
+% use this macro inside other macros (Kudo's to \TeX{}Live
+% developers).
+% 
+%    \begin{macrocode}
+inner bye;     
+def end_font =
+  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 "`" : "`" kern -l_s#-r_s#+p_t# ;
+  ligtable "'" : "'" kern -l_s#-r_s#+p_t# ,
+    "?" kern 2u#, "!" kern 2u# ;
+  ligtable "-"     : "-" =: hex"7B" ;
+  ligtable hex"7B" : "-" =: hex"7C" ;
+  ligtable hex"22" : hex"22" kern -l_s#-r_s# ;
+  ligtable hex"5C" : hex"5C" kern -l_s#-r_s# ;
+  ligtable hex"20" :
+    "l" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ,
+    "L" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ;
+  bye
+enddef ;
+
+%    \end{macrocode}
+% \end{fontmacro}
+% \begin{fontmacro}{do\_caps}
+% This next macro is for the \textunisc{small caps} version of the
+% font. Most of it is taken from \texttt{csc.mf} of the Computer
+% Modern Font, though not as many dimensions have been redefined in
+% this macro. The idea is to utilize this macro whenever you want to
+% make a small caps version of majuscles. This macro is used in both
+% \texttt{unilow.mf} and \texttt{unilig.mf}.
+%
+% The argument to \texttt{do\_caps} is the number the new characters
+% should be offset from it's original position in the font.
+% 
+% The last \texttt{do\_pens} is needed, since the programs uses saved
+% pens, and we have just redefined the dimensions for the pens.
+%     \begin{macrocode}
+def do_caps(expr offset) =
+  sc_shrink := x_h#/l_h# ;
+  P_t# := sc_shrink*P_t# ; l_h# := sc_shrink*l_h# ;
+  A_w# := sc_shrink*A_w# ; M_w# := sc_shrink*M_w# ;
+  C_d# := sc_shrink*C_d# ;
+  code_offset := offset ;
+  define_pixels(l_h,A_w,M_w,C_d) ;
+  define_blacker_pixels(P_t) ;
+  do_pens ;
+enddef ;
+
+%    \end{macrocode}
+% \end{fontmacro}
+% \begin{fontmacro}{end\_do\_caps}
+% When ever we need to get back to the default setting of dimensions,
+% after the use of \texttt{do\_caps}, we call on this macro to do the
+% job. The idea is to multiply by \texttt{no\_shrink} which is the
+% reciprocal of \texttt{sc\_shrink}.
+%     \begin{macrocode}
+def end_do_caps =
+  no_shrink := 1/sc_shrink ;
+  P_t# := no_shrink*P_t# ; l_h# := no_shrink*l_h# ;
+  A_w# := no_shrink*A_w# ; M_w# := no_shrink*M_w# ;
+  C_d# := no_shrink*C_d# ;
+  code_offset := 0 ;
+  define_pixels(l_h,A_w,M_w,C_d) ;
+  define_blacker_pixels(P_t) ;
+  do_pens ;
+enddef ;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+% \subsubsection{Control macroes}
+%
+% These macroes are designed to ease the control of individual
+% characters.
+%
+% \begin{fontmacro}{no\_adjust}
+% If a character is not supposed to have extra space on either side
+% you can say \texttt{no\_adjust} just before
+% \begin{quote}
+%   \texttt{extra\_beginchar := extra\_beginchar\&"}
+%     \meta{your begin char stuff}\texttt{";}\\
+%   \texttt{extra\_endchar := extra\_endchar\&"}
+%     \meta{your stuff endchar stuff}\texttt{";}\\
+%   \texttt{beginchar(}\meta{usual arguments}\texttt{);}
+% \end{quote}
+% where the two string assigments are optional.
+%    \begin{macrocode}
+def no_adjust=
+  old_begin_adjust := extra_beginchar ;
+  old_end_adjust   := extra_endchar   ;
+  extra_beginchar  := " "             ;
+  extra_endchar    :=
+  "extra_proof_rules;charcode:=charcode+code_offset" ; 
+enddef;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+% \begin{fontmacro}{restore\_adjust}
+% Use this command to restore automaticly adding extra space around
+% the characters. Must be used between a \texttt{endchar} and 
+% \texttt{beginchar}.
+%    \begin{macrocode}
+def restore_adjust=
+  extra_beginchar  := old_begin_adjust   ;
+  extra_endchar    := old_end_adjust     ;
+enddef;
+string old_begin_adjust, old_end_adjust ;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+% \subsubsection{Drawing macroes}
+%
+% I have made this macros for drawing, to ease up the writing of 
+% source programs. They all simulate a pen of breadth \textit{thick}
+% always moving perpendecular to the current path. This is needed
+% in the \universal{} font, since all pen breadths are supposed
+% to be equal anywhere (at least within a paricular `group'), in any
+% direction.  
+%
+% All of the macros heavely use \texttt{penpos}, so the use
+% is pretty reliant on the appropiate use of this macro. This
+% put some restrictions on the arguments, since \texttt{penpos}
+% deals with angles of all sorts.
+%
+% In the macroes, we use vectors with number $m$, as assigened in the
+% last argument of the macros. $m$ should be assigend so that the
+% vectors $m,m+1,\ldots,m+4$ does not conflict with already assigned
+% vectors, or vectors to be assigend in the current picture.
+%
+% Though it may seem a somewhat \textit{ad hoc} solution, it is the
+% best way I could think of. Ofcourse I could check to see what
+% vectors are defined, and then use some others, but that would
+% complicate the code unessecary, and since the idea is to hide the
+% actual vector operations in the macros, I descided to use the
+% course. 
+%
+% (No labels are produced on the proofsheets by this macroes,
+% since they use very  high numbers, which is rather destracting.)
+%
+% \begin{fontmacro}{unicir}
+% Draws a circle of outer radius \texttt{rad}, and centered at 
+% \texttt{center}, which shoud be a pair. Notice, no effort is
+% made to keep the circle within the character, so the use of
+% this macro, should be governed with some caution.
+%
+% The second argument is the \emph{thickness} of the pen drawing the
+% segment.
+%
+% The last argument \texttt{m} is to insure the uniqueness of
+% all pairs. That is, if you need more then one circle in a letter,
+% then \texttt{m} should take different values for each circle, so that
+% $m_{i}-m_{i+1}>4$. Also \texttt{m} should not take any value
+% corrosponing to vectors already defined. This is most easily done if
+% \texttt{m} is asigned a large value, like say a multipla of 10, or
+% even 100. 
+%    \begin{macrocode}
+def unicir(expr rad, thick, center, m)=
+  pickup pensquare scaled thick;
+  top z[m]   = (0,rad)  + center ; penpos[m](thick,90) ;
+  lft z[m+1] = (-rad,0) + center ; penpos[m+1](thick,180) ;
+  bot z[m+2] = (0,-rad) + center ; penpos[m+2](thick,270) ;
+  rt  z[m+3] = (rad,0)  + center ; penpos[m+3](thick,0) ;
+  penstroke z[m]e{left}..z[m+1]e{down}..
+    z[m+2]e{right}..z[m+3]e{up}..cycle ; 
+  penlabels(range m thru m+3);
+enddef;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+% \begin{fontmacro}{uniarc}
+% Produce a segment of a circle, with radius \texttt{rad}, and
+% centered at \texttt{center}.
+%
+% The size of the segment is determind by the arguments
+% \texttt{ang\_a} and \texttt{ang\_b}, consider as angles from a
+% horizontal linesegment from \texttt{center} traveling right. That
+% means you should specify the angles in at counter--clockwise way,
+% and between -360 and 360. \texttt{ang\_b} \emph{must} be bigger then
+% \texttt{ang\_a}, otherwise the output is totally unpredictiable.
+%
+% The second argument is the \emph{thickness} of the pen drawing the
+% segment, Again the last argument \texttt{m} is to insure the
+% uniqueness of the vectors. The comments above on the argument also
+% applies here. 
+%    \begin{macrocode}
+def uniarc(expr rad, thick, center, ang_a, ang_b, m)=
+  pickup pensquare scaled thick ;
+  path arc.l, arc.r, arc.e ; n:=m ; ang_c := abs(ang_b-ang_a) ;
+%    \end{macrocode}
+% First we check to see, if the user somehow requested an arc of more
+% then $360^\circ$. If so, we just call \texttt{unicir}, since this is
+% properly intended. If not, we go on to define relevant vectors.
+%    \begin{macrocode}
+  if ang_c >= 360 :
+    unicir(rad,center,n) ;
+  else:
+%    \end{macrocode}
+% We acctualy define the vectors as if we started in the arc on the
+% positiv $x$--axis, considering \texttt{center} as origo, an then
+% latter on turn the arc the appropiate angle. Notice the heavy use of
+% \texttt{penpos} and \texttt{[ ]} to evaluate variable \texttt{m}.
+%    \begin{macrocode}
+    top z[n] = (0,rad) + center ; penpos[n](thick,90) ;
+    arc.r := z[n]r{left} ;
+    arc.l := z[n]l{left} ;
+%    \end{macrocode}
+% The next \texttt{if...fi} loop ensures we don't define a
+% whole lot of useless vectors. The \MF{} primitiv path macro
+% \texttt{...} does a very good job at approching a segment of a
+% circle even if only two points are defined in an interval of
+% $90^\circ$, if we at the same time utilizes the direction mechanisme
+% of \MF{}.
+%    \begin{macrocode}
+    if ang_c > 90 :
+      n := n+1 ; lft z[n] = (-rad,0) + center ; penpos[n](thick,180) ;
+      arc.r := arc.r&z[n-1]r..z[n]r{down} ; 
+      arc.l := arc.l&z[n-1]l..z[n]l{down} ;
+      if ang_c > 180 : 
+	n := n+1 ; bot z[n] = (0,-rad) + center ; penpos[n](thick,270) ;
+	arc.r := arc.r&z[n-1]r..z[n]r{right} ;
+	arc.l := arc.l&z[n-1]l..z[n]l{right} ;
+	if ang_c > 270 :
+	  n := n+1 ; rt  z[n] = (rad,0) + center ; penpos[n](thick,0) ;
+	  arc.r := arc.r&z[n-1]r..z[n]r{up} ;
+	  arc.l := arc.l&z[n-1]l..z[n]l{up} ;
+	fi ;
+      fi ;
+    fi ;
+%    \end{macrocode}
+% After the \texttt{if} loop, we define the final point, make the
+% complete path, and finishes off by drawing the arc, turned the
+% appropiate angle.
+%    \begin{macrocode}
+    n:=n+1 ; z[n] = z[m] rotatedabout(center,ang_c) ;
+    penpos[n](thick,90+ang_c) ;
+    arc.r := arc.r&z[n-1]r..z[n]r{dir(180+ang_c)} ; 
+    arc.l := arc.l&z[n-1]l..z[n]l{dir(180+ang_c)} ;
+    arc.e := arc.l--reverse arc.r--cycle; 
+    fill (arc.e rotatedabout(center,-90+ang_a));
+  fi;
+  penlabels(range m thru n);
+enddef;
+
+%    \end{macrocode}
+% Notice the use of two paths, and reversal of one. This is 
+% essentially what the \texttt{plain.mf} macro \texttt{penstroke}
+% does. However, that macro couldn't be used here, since we are 
+% building a path on the fly, so every step is needed to be fully
+% known, and \texttt{penstroke} makes new variables to do the job.
+%
+% Also, we use the integer \texttt{n} for surfixes, since this
+% limits the creation of vectors, and eases the path building.
+% \end{fontmacro}
+%
+% \begin{fontmacro}{uniend}
+% This macro is somewhat similar to \texttt{uniarc} above, but has a
+% different use. Where \texttt{uniarc} is intended for arcs with a
+% radius bigger then the pen thickness, this macro is intended for
+% arcs with a radius of exactly same size as the pen thickness, hence 
+% this macro produces a \emph{filled} segment of a circle with a
+% radius of the current pen thickness.
+%
+% This macro, like \texttt{uniarc}, takes 5 arguments: the radius of
+% the arc; the center of the arc, which should be of type
+% \texttt{pair}; the starting and ending angle; plus the first number
+% of the vectors needed to draw this figure. The considerations above
+% in \texttt{uniarc} conserning the angles also apply here.
+%
+% Notice once again the use of \texttt{if..fi} loops to define the
+% relevant vectors and paths.
+%    \begin{macrocode}
+def uniend(expr rad, center, ang_a, ang_b, m)=
+  path arc ; n:=m ; ang_c := abs(ang_b-ang_a) ;
+  if ang_c >= 360 :
+    Rad := 2*rad ;
+    pickup pencircle scaled Rad ; z[n]=center ; drawdot z[n] ;
+  else:
+    z[n] = (0,rad) + center ; arc := center{up}--z[n]{left} ;
+    if ang_c > 90 :
+      n := n+1 ; z[n] = (-rad,0) + center ;
+      arc := arc&z[n-1]..z[n]{down} ;
+      if ang_c > 180 :
+	n := n+1 ; z[n] = (0,-rad) + center ;
+	arc := arc&z[n-1]..z[n]{right} ;
+	if ang_c > 270 :
+	  n := n+1 ; z[n] = (rad,0) + center ;
+	  arc := arc&z[n-1]..z[n]{up} ;
+	fi ;
+      fi ;
+    fi ;
+    n := n+1 ; z[n] = z[m] rotatedabout(center,ang_c) ;
+    arc := arc&z[n-1]..z[n]{dir(180+ang_c)}--cycle ;
+    fill (arc rotatedabout(center,-90+ang_a));
+  fi;
+  penlabels(range m thru n);
+enddef;
+
+%    \end{macrocode}
+% Notice, once more we are building a path on the fly, so some caution
+% was used here. Again the \texttt{plain.mf} macro \texttt{penstroke}
+% doesn't do the job here. This is because only a part of a stroke is
+% actually wanted. You might think then, that the  \texttt{plain.mf}
+% macro \texttt{cutoff} then would do the job, but in my experience
+% that macro has some serious flaws\footnote{A quick use of the Unix
+%   command \texttt{grep} on most of the Computer Modern Fonts reveals
+%   that \texttt{cutoff} is \emph{never} used, which I take to
+%   indicate its weakness.}. 
+% \end{fontmacro}
+%
+% \begin{fontmacro}{unilne}
+% This macro is intended for drawing non--vertical or horizontal
+% lines, since this is easily done with \texttt{draw}. It takes
+% six arguments, the thickness of the pen drawing the line, the
+% starting point of the line (\texttt{start}),  the ending point of
+% line (\texttt{stop}), which should be higher and more to the right
+% then the starting point, and  the cutoff--style
+% (\texttt{endcutstart, endcutstop}).
+
+% If \texttt{endcut}$x$ is positiv, then, the line is cut off
+% horizontally at the relevant point $x$.
+%
+% If \texttt{endcut}$x$  is negativ, then, the line is cut off
+% vertically at $x$.
+%
+% If it is zero,  then the  line is cut off perpendicular to the slant
+% of the line at $x$.
+%
+% Also, if \texttt{endcut}$x$ is zero, the starting point is the
+% point corrosponding to the lowest height and leftmost width, and the
+% ending point corrosponds to the heighest height and rightmost width
+% of the line. Again \texttt{m} insures unique vectors. 
+%    \begin{macrocode}
+def unilne(expr thick, start, stop, endcutstart, endcutstop, m)=
+  pickup pensquare scaled thick;
+  if endcutstart = endcutstop :
+    if endcutstart = 0 :
+      lft bot z[m] = start ; rt top z[m+1] = stop ;
+      ang_c := angle(z[m+1]-z[m]) ;
+      penpos[m](thick,-90+ang_c)  ;
+      penpos[m+1](thick,-90+ang_c) ;
+    elseif endcutstart > 0 :
+      lft     z[m] = start ; rt     z[m+1] = stop ;
+      ang_c := angle(z[m+1]-z[m]) ;
+      penpos[m](thick/sind(ang_c),0) ;
+      penpos[m+1](thick/sind(ang_c),0)  ;
+    elseif endcutstart < 0:
+      bot     z[m] = start ; top    z[m+1] = stop ;
+      ang_c := angle(z[m+1]-z[m]) ;
+      penpos[m](thick/cosd(ang_c),90) ;
+      penpos[m+1](thick/cosd(ang_c),90) ;
+    fi;
+    penstroke z[m]e--z[m+1]e ;
+  else :
+    message "Different endcuts on unilne not implemented yet.";
+  fi;
+  n := m + 1 ;
+  penlabels(range m thru n);
+enddef;
+
+%    \end{macrocode}
+% \end{fontmacro}
+%
+%\iffalse
+%</unibase>
+%\fi
+%
+%\iffalse
+%<*low>
+%\fi
+% \subsection{The Minuscles (lowercase letters) --- \texttt{unilow.mf}}
+% \file{unilow.mf}
+%
+% \Newestchanges{v2.0}{98/08/01}{All of \texttt{unilow.mf} is defined
+% within a conditional, to ease the generation of the small caps
+% shaped fonts.}
+% This whole file is loaded only conditionally to make the generation
+% of small caps font easier. 
+%    \begin{macrocode}
+if not caps :
+
+%    \end{macrocode}  
+% \begin{fontcode}{a}
+% The letter \textunibf{a} is interresting in the sense, that the bottom
+% part of the curve, is \emph{not} a segement of an arc. The exact
+% curvature of this part, is controversial; some font designers have
+% chosen to make it a segement of an arc, making all of the curve, a
+% circle; while others have chosen to make it a straight line. I
+% decided to take the middleroad, since it appeals more to me
+% aestheticly, even though it deviates from the principle of building
+% all characters from the two simple forms: the cirle and the line.
+%
+% The \textuni{a} is also saved in the picture variable
+% \texttt{a\_pic}, for use in \texttt{unilig.mf}.
+%    \begin{macrocode}
+  beginchar("a",x_w#,x_h#,0); "The letter a";
+    uniarc(w/2,p_t,(w/2,h/2),0,290,10);
+    pickup unipensqu ;
+    z1 = ((cosd(290)*(w-p_t)+w)/2,(sind(290)*(w-p_t)+w)/2); 
+    z2 = (w-p_t/2,2h/5) ; penpos1(p_t,-70); penpos2(p_t,-45);
+    fill z1l{dir(20)}..z2l{dir(45)}--
+      z2r{dir(225)}..z1r{dir(200)}--cycle;
+    top rt z3 = (w,.5h) ; bot rt z4 = (w,0) ; draw z3{down}--z4 ;
+    penlabels(1,2,3,4);
+    a_pic := currentpicture ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{b}
+% There is not much to say about this letter, only that it is a
+% \textunibf{d} reflected through the vertical center axis.
+%    \begin{macrocode}
+  beginchar("b",x_w#,l_h#,0); "The letter b";
+    unicir(w/2,p_t,(w/2,w/2),10); 
+    pickup unipensqu ;
+    lft bot z1 = (0,w/2) ; lft top z2 = (0,h) ; draw z1{up}--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{c}
+% This is a rather short program, but is interresting, since some care
+% has to be taken, when assigning the width. Since a \textunibf{c} is not
+% a full cirle, but only a segment opening towards the right, it would
+% look wrong, if the letter was as wide, as it is tall.
+%    \begin{macrocode}
+  beginchar("c",x_w#*(1+cosd(30))/2,x_h#,0); "The letter c";
+    uniarc(h/2,p_t,(h/2,h/2),30,330,10);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{d}
+% A flipped \textunibf{b} --- that's it!
+%    \begin{macrocode}
+  beginchar("d",x_w#,l_h#,0); "The letter d";
+    unicir(w/2,p_t,(w/2,w/2),10); 
+    pickup unipensqu ;
+    rt bot z1 = (w,w/2) ; rt top z2 = (w,h) ; draw z1{up}--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{e}
+% Notice the middle bar. The arc can not go all the way down to the
+% bar, because then the \textunibf{e} would end in a arc, on the right
+% side. We want a flat end, so an extra dot has to be made.
+%
+% The \textuni{e} is also saved in the picture variable
+% \texttt{e\_pic}, for use in \texttt{unilig.mf}.
+%    \begin{macrocode}
+  beginchar("e",x_w#,x_h#,0); "The letter e";
+    uniarc(w/2,p_t,(w/2,h/2),0,330,10);
+    temp := p_t/2 ;
+    pickup pensquare xscaled p_t yscaled temp slanted slantratio ;
+    top rt z1 = (w,h/2) ; drawdot z1 ;
+    pickup unipensqu ;
+    z2 = (p_t,h/2) ; z3 = (w-p_t,h/2) ; draw z2--z3 ;
+    penlabels(1,2,3);
+    e_pic := currentpicture ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{f}
+% The horizontal placement of the bar is somewhat controversial. I
+% think it looks best if it is placed, so that the top of the bar, is
+% at the same height, as the top of an \textunibf{x}, that is $1ex$.
+%    \begin{macrocode}
+  beginchar("f",4p_t#,l_h#,0); "The letter f";
+    uniarc(3/4w,p_t,(3/4w,h-3/4w),90,180,10);
+    pickup unipensqu ;
+    top rt z1 = (w,h) ; drawdot z1 ;
+    lft top z2 = (0,h-3/4w) ; bot lft z3 = (0,0)   ; draw z2--z3 ;
+    top lft z4 = (0,x_h)    ; top rt  z5 = (w,x_h) ; draw z4--z5 ;
+    penlabels(1,2,3,4,5);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{g}
+% The \textunibf{g} is a very good measure of how low ascenders should
+% go. Some might want to add a square on top of the ascender, so that
+% the letter ended in flat to the right, but I found it displeacing,
+% and therefore left it out.
+%    \begin{macrocode}
+  beginchar("g",x_w#,x_h#,p_d#); "The letter g" ;
+    uniarc(w/2,p_t,(w/2,h/2),30,360,10) ;
+    pickup unipensqu ;
+    top rt z1 = (w,h/2) ; bot rt z2 = (w,-d) ; draw z1--z2;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{h}
+% It can be argued, that this letter is too wide. However, I decieded
+% to weight the concept of homongeious circles higher in this case.
+%    \begin{macrocode}
+  beginchar("h",x_w#,l_h#,0); "The letter h" ;
+    uniarc(w/2,p_t,(w/2,w/2),0,180,10) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h)       ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    top rt  z3 = (w,x_h-w/2) ; bot rt  z4 = (w,0) ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{i}
+% Quite a simple letter, though it can be argued wether the dot should
+% be square, or as here circular.
+%    \begin{macrocode}
+  beginchar("i",p_t#,l_h#,0) ; "The letter i" ;
+    pickup unipensqu ;
+    top lft z1 = (0,x_h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    pickup unipencir ;
+    top lft z3 = (0,h) ; drawdot z3 ;
+    penlabels(1,2,3) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{j}
+% No left stem is added at the bottom, since it isn't needed!
+%    \begin{macrocode}
+  beginchar("j",p_t#,l_h#,p_d#); "The letter j" ;
+    pickup unipensqu ;
+    top lft z1 = (0,x_h) ; bot lft z2 = (0,-d) ; draw z1--z2 ;
+    pickup unipencir ;
+    top lft z3 = (0,h) ; drawdot z3 ;
+    penlabels(1,2,3) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{k}
+% Again, this letter is narrower then most of the letters. This is
+% because, the to arcs isn't full halfarcs, but rather quarterarcs.
+%    \begin{macrocode}
+  beginchar("k",(x_h#+3p_t#)/2,x_h#,0) ; "The letter k" ;
+    uniarc((h+p_t)/2,p_t,(p_t,h),270,360,10) ;
+    uniarc((h+p_t)/2,p_t,(p_t,0),0,90,20) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{l}
+% What is a line, but a line! Well right now it is an `l'. You may
+% wonder why no stems are added, to destingish an `l' from a vertical
+% bar, as in math mode. Well, how often will you put a math vertical
+% bar next to an text `l'.
+%    \begin{macrocode}
+  beginchar("l",p_t#,l_h#,0) ; "The letter l" ;
+    pickup unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{m}
+% This proved more tricky then I thought. Originally, I wanted the arc
+% of the \textunibf{n} to be as high as those of the \textunibf{m}. This
+% meant, that either the \textunibf{n} should be very narrow, or the
+% \textunibf{m} very wide; either way it wouldn't look good. So after a
+% few experiments, I decided for the current form.
+%    \begin{macrocode}
+  beginchar("m",m_w#,x_h#,0) ; "The letter m" ;
+    temp := .25*(w+p_t);
+    uniarc(temp,p_t,(temp,h-temp),0,180,10) ;
+    uniarc(temp,p_t,(w-temp,h-temp),0,180,20) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h-temp)   ; bot lft z2 = (0,0)   ; draw z1--z2 ;
+    top     z3 = (w/2,h-temp) ; bot     z4 = (w/2,0) ; draw z3--z4 ;
+    top rt z5 = (w,h-temp)    ; bot rt  z6 = (w,0)   ; draw z5--z6 ;
+    penlabels(1,2,3,4,5,6);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{n}
+% Tricky because of the \textunibf{m} (see above).
+%    \begin{macrocode}
+  beginchar("n",x_w#,x_h#,0); "The letter n" ;
+    uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,0) ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{o}
+% Well, this is just a circle, nothing fancy. Why not make it oval,
+% you say. I say, listen --- Herbert Bayer just turned in his grave!
+%    \begin{macrocode}
+  beginchar("o",x_w#,x_h#,0) ; "The letter o";
+    unicir(w/2,p_t,(w/2,h/2),10);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{p}
+% Try to flip the \textunibf{b} horizontally, and tell me what you get?
+%    \begin{macrocode}
+  beginchar("p",x_w#,x_h#,p_d#) ; "The letter p" ;
+    unicir(w/2,p_t,(w/2,w/2),10); 
+    pickup unipensqu ;
+    lft top z1 = (0,h/2) ; lft bot z2 = (0,-d) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{q}
+% Why not try to destingish the \textunibf{q} more from the \textunibf{g}?
+% Well if you look at the two letters, I think, you will get the
+% answer. Also, my intuition of a \textunibf{q} is that of a reflected
+% \textunibf{p}, but that is just \emph{my} intuition!
+%    \begin{macrocode}
+  beginchar("q",x_w#,x_h#,p_d#) ; "The letter q" ;
+    unicir(w/2,p_t,(w/2,w/2),10); 
+    pickup unipensqu ;
+    rt top z1 = (w,h/2) ; rt bot z2 = (w,-d) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{r}
+% Well that is really simplle, but illustrates a fine point --- why
+% use more strokes, when fewer is needed?
+%    \begin{macrocode}
+  beginchar("r",3p_t#,x_h#,0) ; "The letter r" ;
+    uniarc(w,p_t,(w,h-w),90,180,10) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h-w) ; bot lft z2 = (0,0) ; draw z1--z2;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{s}
+% \Newestchanges{v2.0}{98/08/01}{Considerable simplifications.}
+% This is a `slow' letter, i.e.\ it takes \MF{} quite some time to
+% compute. The reason is simple --- a \emph{lot} of curves is drawn.
+%    \begin{macrocode}
+  beginchar("s",x_w#,x_h#,0) ; "The letter s" ;
+    temp := (h+p_t)/4 ;
+    uniarc(temp,p_t,(temp,temp),180,270,10) ;
+    uniarc(temp,p_t,(w-temp,temp),270,450,20) ;
+    uniarc(temp,p_t,(temp,h-temp),90,270,30) ;
+    uniarc(temp,p_t,(w-temp,h-temp),0,90,40) ;
+    pickup unipensqu ;
+    bot lft z1 = (temp,0)   ; bot rt z2 = (w-temp,0)   ; draw z1--z2 ;
+    lft     z3 = (temp,h/2) ; rt     z4 = (w-temp,h/2) ; draw z3--z4 ;
+    top lft z5 = (temp,h)   ; top rt z6 = (w-temp,h)   ; draw z5--z6 ; 
+    penlabels(1,2,3,4,5,6) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{t}
+% As I argued before, the placement of the bar in the \textunibf{f} and
+% \textunibf{t} is controversial.
+%    \begin{macrocode}
+  beginchar("t",p_t#+2c_d#,l_h#,0); "The letter t" ;
+    pickup unipensqu ;
+    top     z1 =  (w/2,h) ; bot    z2 = (w/2,0) ; draw z1--z2 ;
+    top lft z3 = (0,x_h)  ; top rt z4 = (w,x_h) ; draw z3--z4 ;
+    penlabels(1,2,3,4);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{u}
+% Flip a letter here, and flip a letter there --- all in a days work
+% of a font designer!
+%    \begin{macrocode}
+  beginchar("u",x_w#,x_h#,0); "The letter u" ;
+    uniarc(w/2,p_t,(w/2,w/2),180,360,10) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+    top rt  z3 = (w,h) ; bot rt  z4 = (w,w/2) ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{v}
+% The lines and the arc doesn't intersect in a flowing way, but the
+% error is so small it will not be seen in normal use. However, if
+% the font is maginified to, say $70pt$, it might be a problem. I
+% hope to get into this, some time in the future. For now, make  do.
+%    \begin{macrocode}
+  beginchar("v",x_w#,x_h#,0); "The letter v" ;
+    unilne(p_t,(0,h),(w/2,p_t),1,1,10);
+    unilne(p_t,(w/2,p_t),(w,h),1,1,20);
+    uniarc(p_t,p_t,(w/2,p_t),180,360,30);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{w}
+% Flippedy--flop.
+%    \begin{macrocode}
+  beginchar("w",m_w#,x_h#,0) ; "The letter w" ;
+    temp := .25*(w+p_t);
+    uniarc(temp,p_t,(temp,temp),180,360,10) ;
+    uniarc(temp,p_t,(w-temp,temp),180,360,20) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h)   ; bot lft z2 = (0,temp)   ; draw z1--z2 ;
+    top     z3 = (w/2,h) ; bot     z4 = (w/2,temp) ; draw z3--z4 ;
+    top rt  z5 = (w,h)   ; bot rt  z6 = (w,temp)   ; draw z5--z6 ;
+    penlabels(1,2,3,4,5,6);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{x}
+% This is a bit tricky --- the two arces are each half the width wide,
+% but since they share middle part, they leave the width of the
+% strokes uncoverd. To remedy this problem, four dots are drawn. It
+% would be silly, if the \textunibf{x} wasn't as wide as it is tall,
+% namely \texttt{x\_w}.
+%    \begin{macrocode}
+  beginchar("x",x_w#,x_h#,0) ; "The letter x" ;
+    uniarc(h/2,p_t,(p_t/2,h/2),270,90,10);
+    uniarc(h/2,p_t,(w-p_t/2,h/2),90,270,20);
+    temp := (w-h+p_t)/2 ;
+    pickup pensquare xscaled temp yscaled p_t slanted slantratio ;
+    lft top z1 = (0,h) ; drawdot z1 ;
+    lft bot z2 = (0,0) ; drawdot z2 ;
+    rt  top z3 = (w,h) ; drawdot z3 ;
+    rt  bot z4 = (w,0) ; drawdot z4 ;
+    penlabels(1,2,3,4);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{y}
+% Flip an reflect, or just turn, it's all the same, it will still be a
+% transformation of an \textunibf{h}
+%    \begin{macrocode}
+  beginchar("y",x_w#,x_h#,p_d#); "The letter y" ;
+    uniarc(w/2,p_t,(w/2,w/2),180,360,10) ;
+    pickup unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,w/2); draw z1--z2 ;
+    top  rt z3 = (w,h) ; bot rt  z4 = (w,-d) ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{z}
+% This is a bit tricky letter, since what I wanted was for middle line
+% to have an inclination such that its edges would be tangents to the
+% circle segments at the endpoints of the horizontal lines. I tried to
+% solve this problem analytically, but gave up. I also tried to use
+% some of \texttt{plain.mf}'s macros, but none of them gave me the
+% resulat I wanted. So I finally made the approximation seen below. 
+% If you can come up with a good solution to this problem, please let
+% me know. 
+%    \begin{macrocode}
+  beginchar("z",x_w#,x_h#,0) ; "The letter z" ;
+    pickup unipensqu ;
+    top lft z1 = (0,h)   ; top rt z2 = (w-p_t,h) ; draw z1--z2 ;
+    bot lft z3 = (p_t,0) ; bot rt z4 = (w,0)     ; draw z3--z4 ;
+    phi := angle((w,h-p_t)-(0,p_t)) ; % Uuuuupps !?!!!!!!
+    z5 = (p_t,p_t)     ; z6 = z5 + p_t*(-sind(phi),cosd(phi)) ;
+    z7 = (w-p_t,h-p_t) ; z8 = z7 + p_t*(sind(phi),-cosd(phi)) ;
+    uniend(p_t,z5,90+phi,270,10);
+    uniend(p_t,z7,-90+phi,90,20);
+    fill z5--z6--z7--z8--cycle ;
+    penlabels(range 1 thru 8);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% As explain in the begining of the section, this file is one big
+% \texttt{if...else...fi} loop to mak the generation of the small caps
+% font easier.
+%
+% The idea is, that if \texttt{caps} is
+% \texttt{true}, then the main part of this file shouldn't be used,
+% but rather \texttt{uniupp.mf} should be loaded again, but with
+% different diffintions of dimensions for uppercase letters, so that
+% they come out as small as lowercase letters, hence --- small
+% caps.
+% 
+% This is done by the macro \texttt{do\_caps}, which we utilies
+% inside a group, so that the changes made by \texttt{do\_caps} will be
+% undone after the group, and hence not affect the rest of the font.
+% 
+%    \begin{macrocode}
+else :
+  do_caps(ASCII"a" - ASCII"A") ;
+  input uniupp ;
+  end_do_caps ;
+fi ;
+
+%    \end{macrocode}
+%\iffalse
+%</low>
+%\fi
+%\iffalse
+%<*upp>
+%\fi
+% \subsection{The Majuscles (uppercase letters) --- \texttt{uniupp.mf}}
+% \file{uniupp.mf}
+%
+% As noted earlier, Herbert Bayer never did design any majuscles,
+% since he considered them useless. However, majuscles are avaliable
+% in the current implentation and are to be used at your lesuire. Of
+% course, if you agree with the Bauhaus school, and think uppercase
+% letters are useless, you shouldn't use them. Then, perhaps, you
+% should also refrain from using non--standard letters shuch as German
+% double s, Scandinavian ligatures, Spanish schriek, and perhaps even
+% accents of any kind. This may seem a little drastic, but the
+% train--of--tought should be clear: Why use letters and symbols that
+% are in the best case obsolete, and in the worst useless or without
+% significans?  
+%
+% \Newestchanges{v2.0}{98/08/01}{All of \texttt{unilow.mf} is defined
+% within a conditional, to ease the generation of the strict shaped
+% fonts.}
+%
+% To facilitate a use of the \universal{} font conforming to Bayers'
+% original idea, that is without majusceles this file is loaded only
+% under the condition that \texttt{strict} is \emph{false}.
+%    \begin{macrocode}
+if not strict :
+
+%    \end{macrocode}  
+% \begin{fontcode}{A}
+% It can be argued where the bar should be placed. I choose place it
+% the middle, since most of the majuscles tend to have a symmetry axis
+% long this line, so I thought it apropiate to follow this line of
+% thought. Ofcourse, I'm the only one to blane for this, since Herbert
+% Bayer \emph{never} designed any majuscles! (So flame me for
+% guessing).
+%    \begin{macrocode}
+  beginchar("A",A_w#,l_h#,0); "The letter A";
+    uniarc(w/2,P_t,(w/2,h-w/2),0,180,10);
+    pickup Unipensqu ;
+    top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0)   ; draw z1--z2 ;
+    top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,0)   ; draw z3--z4 ;
+    lft z5     = (0,h/2)   ; rt      z6 = (w,h/2) ; draw z5--z6 ;
+    penlabels(1,2,3,4,5,6);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{B}
+% This letter is somewhat tricky, since it is not clear wether the
+% arces should be placed directly on the left down stoke, or there
+% should be some distance filled with horizontal bars. I chose the
+% second solution, even though it isn't the most simple, and hence in
+% better  agrement with the concept of this font design. However, the
+% first solution does make the letter very narrow compared with some
+% of the other letters.
+%    \begin{macrocode}
+  beginchar("B",A_w#,l_h#,0) ; "The letter B" ;
+    rad := 1/4(h+P_t) ;
+    uniarc(rad,P_t,(w-rad,h-rad),-90,90,10) ;
+    uniarc(rad,P_t,(w-rad,rad),-90,90,20) ;
+    uniend(P_t,(P_t,h-P_t),90,180,30) ;
+    uniend(P_t,(P_t,P_t),180,270,40) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h-P_t) ; bot lft z2 = (0,P_t)      ; draw z1--z2 ;
+    top lft z3 = (P_t,h)   ; top rt  z4 = (w-rad,h)    ; draw z3--z4 ;
+    lft     z5 = (P_t,h/2) ; rt      z6 = (w-rad,1/2h) ; draw z5--z6 ;
+    bot lft z7 = (P_t,0)   ; bot rt  z8 = (w-rad,0)    ; draw z7--z8 ;
+    penlabels(range 1 thru 8);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{C}
+% This is really simple, since it is just an enlargement of the
+% corresponding minuscule, so the is really nothing interresting
+% here. 
+%    \begin{macrocode}
+  beginchar("C",l_h#*(1+cosd(30))/2,l_h#,0); "The letter C";
+    uniarc(h/2,P_t,(h/2,h/2),30,330,10);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{D}
+% As with the B, there are two ways to do this letter: One way would
+% be to make the arc a true half segment of a circle, the other would
+% be to compose it of two quarter segments, joined by a vertical
+% line. The second solution also entails, that two horizontal lines
+% should connect the two quarter circles with the left vertical
+% line. Again I chose the simple solution, which --- ofcourse ---
+% amounts to the first mentioned above.
+%    \begin{macrocode}
+  beginchar("D",A_w#,l_h#,0); "The letter D";
+    uniarc(1/2h,P_t,(w-1/2h,1/2h),-90,90,10);
+    uniend(P_t,(P_t,h-P_t),90,180,20);
+    uniend(P_t,(P_t,P_t),180,270,30);
+    pickup Unipensqu ;
+    top lft z1 = (0,h-P_t) ; bot lft z2 = (0,P_t)    ; draw z1--z2 ;
+    top lft z3 = (P_t,h)   ; top rt  z4 = (w-1/2h,h) ; draw z3--z4 ;
+    bot lft z5 = (P_t,0)   ; bot rt  z6 = (w-1/2h,0) ; draw z5--z6 ;
+    penlabels(1,2) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{E}
+% It can be argued, that the middle bar should be shorter then the top
+% and bottom bar, but since this only complicates things, I chose not
+% to do so. However, I am not going to be stuborn on this, and it may
+% well prove to be better aestethics, if the middle bar is shortend.
+%    \begin{macrocode}
+  beginchar("E",A_w#,l_h#,0); "The letter E" ;
+    uniend(P_t,(P_t,h-P_t),90,180,10);
+    uniend(P_t,(P_t,P_t),180,270,20);
+    pickup Unipensqu ;
+    lft top z1 = (P_t,h)   ; rt  top z2 = (w,h)   ; draw z1--z2 ;
+    lft     z3 = (P_t,h/2) ; rt      z4 = (w,h/2) ; draw z3--z4 ;
+    lft bot z5 = (P_t,0)   ; rt  bot z6 = (w,0)   ; draw z5--z6 ;
+    lft top z7 = (0,h-P_t) ; lft bot z8 = (0,P_t) ; draw z7--z8 ;
+    penlabels(range 1 thru 8) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{F}
+% Ofcourse, very similar to the \textunibf{E}. The consideration
+% concerning the middle bar of the \textunibf{E} will ofcourse reflect
+% on this letter. 
+%    \begin{macrocode}
+  beginchar("F",A_w#,l_h#,0); "The letter F" ;
+    uniend(P_t,(P_t,h-P_t),90,180,10);
+    pickup Unipensqu ;
+    lft top z1 = (P_t,h)   ; rt  top z2 = (w,h)   ; draw z1--z2 ;
+    lft     z3 = (P_t,h/2) ; rt      z4 = (w,h/2) ; draw z3--z4 ;
+    lft top z5 = (0,h-P_t) ; lft bot z6 = (0,0)   ; draw z5--z6 ;
+    penlabels(range 1 thru 8);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{G}
+% This is very similar to the minuscle \textunibf{g}, the only difference
+% is the size, and that the down stroke doens't extend below the
+% baseline.
+%    \begin{macrocode}
+  beginchar("G",l_h#,l_h#,0); "The letter G" ;
+    uniarc(w/2,P_t,(w/2,h/2),30,360,10) ;
+    pickup Unipensqu ;
+    top rt z1 = (w,h/2) ; bot rt z2 = (w,0) ;
+    draw z1--z2;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{H}
+% An awfull simple letter. There can be no doubt on how this should
+% look. 
+%    \begin{macrocode}
+  beginchar("H",A_w#,l_h#,0); "The letter H" ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    top rt  z3 = (w,h) ; bot rt  z4 = (w,0) ; draw z3--z4 ;
+    lft z5 = (0,h/2) ; rt z6 = (w,h/2) ; draw z5--z6 ;
+    penlabels(1,2,3,4,5,6);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{I}
+% It doesn't get any simpler!
+%    \begin{macrocode}
+  beginchar("I",P_t#,l_h#,0); "The letter I" ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{J}
+%    \begin{macrocode}
+  beginchar("J",P_t#+2C_d#,l_h#,0); "The letter J";
+    uniend(P_t,(w-P_t,P_t),270,360,10);
+    pickup Unipensqu ;
+    lft bot z1 = (0,0)   ; rt bot z2 = (w-P_t,0) ; draw z1--z2 ;
+    rt  bot z3 = (w,P_t) ; rt top z4 = (w,h)     ; draw z3--z4 ;
+    penlabels(1,2,3,4);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{K}
+% Similar to \textunibf{k}.
+%    \begin{macrocode}
+  beginchar("K",(l_h#+3P_t#)/2,l_h#,0) ; "The letter K" ;
+    uniarc((h+P_t)/2,P_t,(P_t,h),270,360,10) ;
+    uniarc((h+P_t)/2,P_t,(P_t,0),0,90,20) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{L}
+% This is just a reflected \textunibf{J}.
+%    \begin{macrocode}
+  beginchar("L",P_t#+2C_d#,l_h#,0) ; "The letter L" ;
+    uniend(P_t,(P_t,P_t),180,270,10) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h)   ; bot lft z2 = (0,P_t) ; draw z1--z2 ;
+    bot lft z3 = (P_t,0) ; bot rt  z4 = (w,0)   ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{M}
+% The same kind of considerations as in \textunibf{m} went into this
+% letter.
+%    \begin{macrocode}
+  beginchar("M",M_w#,l_h#,0) ; "The letter M" ;
+    temp := .25*(w+P_t);
+    uniarc(temp,P_t,(temp,h-temp),0,180,10) ;
+    uniarc(temp,P_t,(w-temp,h-temp),0,180,20) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h-temp) ; bot lft z2 = (0,0) ;  draw z1--z2 ;
+    top z3 = (w/2,h-temp)   ; bot z4 = (w/2,0)   ;  draw z3--z4 ;
+    top rt z5 = (w,h-temp)  ; bot rt z6 = (w,0)  ;  draw z5--z6 ;
+    penlabels(1,2,3,4,5,6);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{N}
+% Tricky because of the \textunibf{M} (see above).
+%    \begin{macrocode}
+  beginchar("N",A_w#,l_h#,0); "The letter N" ;
+    uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0);  draw z1--z2 ;
+    top rt z3 = (w,h-w/2)  ; bot rt z4 = (w,0) ;  draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{O}
+% No, this is not going to be an oval, but a \emph{circle\/}!
+%    \begin{macrocode}
+  beginchar("O",l_h#,l_h#,0) ; "The letter O";
+    unicir(w/2,P_t,(w/2,h/2),10);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{P}
+% No surprises.
+%    \begin{macrocode}
+  beginchar("P",A_w#,l_h#,0) ; "The letter P";
+    unicir(w/2,P_t,(w/2,h-w/2),10)
+    pickup Unipensqu ;
+    lft top z1 = (0,h-w/2) ; lft bot z2 = (0,0) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{Q}
+% There are to variants of this letter, one is an reflected
+% \textunibf{P}, and the other is a vaiant of an \textunibf{O}. The
+% default one, is the \textunibf{Q} variant. If you want to use the
+% other variant, you can acceses it directly with \Lcs{varQ}, or you
+% can pass the argument \texttt{varQ} to the \textsc{uni} package.
+% (Option \texttt{varQ} not implemented yet!)
+%    \begin{macrocode}
+  beginchar("Q",l_h#,l_h#,p_d#) ; "The letter Q";
+    unicir(w/2,P_t,(w/2,w/2),10);
+    pickup Unipensqu ;
+    top z1 = (w/2,3P_t) ; bot z2 = (w/2,-d) ; draw z1--z2 ;
+    penlabels(1,2);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{R}
+% I'm not enterily happy with this letter, but quite frankly, I don't
+% know how else to make it. Please give me your suggestion.
+%    \begin{macrocode}
+  beginchar("R",A_w#,l_h#,0) ; "The letter R";
+    unicir(w/2,P_t,(w/2,h-w/2),10) ;
+    rad := h-w+P_t ; 
+    uniarc(rad,P_t,(w-rad,0),0,90,20) ;
+    pickup Unipensqu ;
+    lft top z1 = (0,h-w/2)  ; bot lft z2 = (0,0) ; draw z1--z2 ;
+    temp := w/2-rad ;
+    if temp>0 :
+      pickup pensquare xscaled temp yscaled P_t ;
+      lft top z3 = (1/2w,rad) ; drawdot z3 ;
+    fi;
+    penlabels(1,2,3) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{S}
+% Just like the minuscle \textunibf{s}, this is a `slow' letter, i.e.,
+% it takes \MF{} quite some time to compute. 
+%    \begin{macrocode}
+  beginchar("S",A_w#,l_h#,0) ; "The letter S" ;
+    temp := (h+P_t)/4 ;
+    uniarc(temp,P_t,(temp,temp),180,270,10) ;
+    uniarc(temp,P_t,(w-temp,temp),270,450,20) ;
+    uniarc(temp,P_t,(temp,h-temp),90,270,30) ;
+    uniarc(temp,P_t,(w-temp,h-temp),0,90,40) ;
+    pickup Unipensqu ;
+    bot lft z1 = (temp,0)   ; bot rt z2 = (w-temp,0)   ; draw z1--z2 ;
+    lft     z3 = (temp,h/2) ; rt     z4 = (w-temp,h/2) ; draw z3--z4 ;
+    top lft z5 = (temp,h)   ; top rt z6 = (w-temp,h)   ; draw z5--z6 ; 
+    penlabels(1,2,3,4,5,6) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{T}
+% Again --- simple!
+%    \begin{macrocode}
+  beginchar("T",A_w#,l_h#,0); "The letter T" ;
+    pickup Unipensqu ;
+    top     z1 = (w/2,h) ; bot    z2 = (w/2,0) ; draw z1--z2 ;
+    top lft z3 = (0,h)   ; top rt z4 = (w,h)   ; draw z3--z4 ;
+    penlabels(1,2,3,4);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{U}
+% \emph{Font--jepody:} The character of the \universal{} font, that,
+% when reflected gives \textunibf{U}.
+%    \begin{macrocode}
+  beginchar("U",A_w#,l_h#,0); "The letter U" ;
+    uniarc(w/2,P_t,(w/2,w/2),180,360,10) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+    top rt  z3 = (w,h) ; bot  rt z4 = (w,w/2) ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{V}
+% See also the minuscle \textunibf{v}.
+%    \begin{macrocode}
+  beginchar("V",A_w#,l_h#,0); "The letter V" ;
+    unilne(P_t,(0,h),(w/2,P_t),1,1,10);
+    unilne(P_t,(w/2,P_t),(w,h),1,1,20);
+    uniarc(P_t,P_t,(w/2,P_t),180,360,30);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{W}
+% Flippedy--flop.
+%    \begin{macrocode}
+  beginchar("W",M_w#,l_h#,0) ; "The letter W" ;
+    temp := .25*(w+P_t);
+    uniarc(temp,P_t,(temp,temp),180,360,10) ;
+    uniarc(temp,P_t,(w-temp,temp),180,360,20) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h)   ; bot lft z2 = (0,temp)   ; draw z1--z2 ;
+    top     z3 = (w/2,h) ; bot     z4 = (w/2,temp) ; draw z3--z4 ;
+    top rt  z5 = (w,h)   ; bot rt  z6 = (w,temp)   ; draw z5--z6 ;
+    penlabels(1,2,3,4,5,6);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{X}
+% This is a bit tricky --- see the minuscle \textunibf{x}.
+%    \begin{macrocode}
+  beginchar("X",l_h#,l_h#,0) ; "The letter X" ;
+    uniarc(h/2,P_t,(P_t/2,h/2),270,90,10);
+    uniarc(h/2,P_t,(w-P_t/2,h/2),90,270,20);
+    temp := (h-w+P_t)/2 ;
+    pickup pensquare xscaled temp yscaled P_t slanted slantratio ;
+    lft top z1 = (0,h) ; draw z1 ;
+    lft bot z2 = (0,0) ; draw z2 ;
+    rt  top z3 = (w,h) ; draw z3 ;
+    rt  bot z4 = (w,0) ; draw z4 ;
+    penlabels(1,2,3,4);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{Y}
+% \Newestchanges{v2.0}{98/08/01}{Character \textunibf{Y} changed.}
+% This actually a bit different from \textunibf{y}, but it looks right. 
+%    \begin{macrocode}
+  beginchar("Y",A_w#,l_h#,0); "The letter Y" ;
+    uniarc(w/2,P_t,(w/2,h-P_t),180,360,10) ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h) ; drawdot z1 ;
+    top rt  z2 = (w,h) ; drawdot z2 ;
+    top     z3 = (w/2,h-w/2) ; bot z4 = (w/2,0) ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{Z}
+% Again a tricky letter. For more onm this please refer to the
+% minuscle \textunibf{z}.
+% 
+% Notice that the angle \texttt{phi} in this majuscle is not the
+% same as in the minuscles \textunibf{z}, since this letter doesn't fit
+% in a square, but is retangular.
+%    \begin{macrocode}
+  beginchar("Z",A_w#,l_h#,0) ; "The letter Z" ;
+    pickup Unipensqu ;
+    top lft z1 = (0,h)   ; top rt z2 = (w-P_t,h) ; draw z1--z2 ;
+    bot lft z3 = (P_t,0) ; bot rt z4 = (w,0)     ; draw z3--z4 ;
+    phi := angle((w,h-P_t)-(0,P_t)) ;
+    z5 = (P_t,P_t)     ; z6 = z5 + P_t*(-sind(phi),cosd(phi)) ;
+    z7 = (w-P_t,h-P_t) ; z8 = z7 + P_t*(sind(phi),-cosd(phi)) ;
+    uniend(P_t,z5,90+phi,270,10);
+    uniend(P_t,z7,-90+phi,90,20);
+    fill z5--z6--z7--z8--cycle ;
+    penlabels(range 1 thru 8);
+  endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% As explain in the begining of the section, this file is one big
+% \texttt{if...else...fi} loop to mak the generation of the strict
+% font easier.
+%
+% The idea is, that if \texttt{strict} is \texttt{true}, then the main
+% part of this file shouldn't be used, but rather \texttt{unilow.mf}
+% should be loaded again, but with this time the characters should be
+% placed where the majuscules should be. 
+% 
+% This is done by defining \texttt{code\_offset} to be the (negative) 
+% difference the ASCII code for \texttt{A} and \texttt{a}. After we
+% have input \texttt{unilow.mf} once more, we reset
+% \texttt{code\_offset}. 
+%    \begin{macrocode}
+else :
+  code_offset := ASCII"A" - ASCII"a" ;
+  input unilow ;
+  code_offset := 0 ;
+fi ;
+
+%    \end{macrocode}
+%\iffalse
+%</upp>
+%\fi
+%\iffalse
+%<*dig>
+%\fi
+% \subsection{The Numbers --- (\texttt{unidig.mf})}
+% \file{unidig.mf}
+%
+% I couldn't find any design of numbers, I could directly ascribe to
+% Herbert Bayer. I, however, found some other examples, and from
+% these, and my general conception of the font, I designed the
+% numerals, as they are seen below.
+%
+% \begin{fontcode}{0}
+% Perhaps this should have been a circle, but to destingice the zero
+% from the majuscle {\uni O}, I chose to strecth it.
+%    \begin{macrocode}
+beginchar("0",A_w#,l_h#,0) ; "The number 0" ;
+  uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+  uniarc(w/2,p_t,(w/2,w/2),180,360,20) ;
+  pickup unipensqu ;
+  top lft z1 = (0,h-w/2) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+  top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,w/2) ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{1}
+% Here we use the dimension \texttt{c\_d}, since the stem should be
+% thee same lenght in the medium font as in the bold face one.
+%    \begin{macrocode}
+beginchar("1",2c_d#,l_h#,0) ; "The number 1" ;
+  uniend(p_t,(w-p_t,h-p_t),0,90,10) ;
+  pickup unipensqu ;
+  lft top z1 = (0,h)     ; rt top z2 = (w-p_t,h) ; draw z1--z2 ;
+  rt  top z3 = (w,h-p_t) ; rt bot z4 = (w,0)     ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{2}
+% Again, this is a bit tricky, for the same reason as the minuscle
+% {\uni z}.
+%    \begin{macrocode}
+beginchar("2",A_w#,l_h#,0) ; "The number 2" ;
+  uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+  phi := angle((w,h-w/2)-(0,p_t)) ;
+  z1 = (w-p_t,h-w/2) ; z2 = z1 + p_t*(sind(phi),-cosd(phi)) ;
+  z3 = (p_t,p_t)     ; z4 = z3 + p_t*(-sind(phi),cosd(phi)) ;
+  fill z1--z2--z3--z4--cycle ;
+  uniend(p_t,z1,270+phi,360,20) ;
+  uniend(p_t,z3,90+phi,270,30) ;
+  pickup unipensqu ;
+  bot lft z5 = (p_t,0) ; bot rt z6 = (w,0) ; draw z5--z6 ; 
+  penlabels(range 1 thru 6) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{3}
+% By first defining to paths similar to the two circle segments, it is
+% possible to calculate the intersectionpoint, and thereby the angle
+% \texttt{phi}, where the to segments meet, relative to one of the
+% centers. This angle is then used to define the \emph{real} path, and
+% the rightmost point of the middle bar.
+%    \begin{macrocode}
+beginchar("3",A_w#,l_h#,0) ; "The number 3" ;
+  path arc_a, arc_b ;
+  arc_a = (w,h-w/2)..(w/2,h-w) ; arc_b = (w,w/2)..(w/2,w) ;
+  z3 = arc_a intersectionpoint arc_b ; phi := angle(z3-(w/2,w/2)) ;
+  uniarc(w/2,p_t,(w/2,h-w/2),-phi,180,10) ;
+  uniarc(w/2,p_t,(w/2,w/2),-180,phi,20) ;
+  pickup unipensqu ;
+  rt z1 = (w/2*(1+cosd(phi)),h/2) ; lft z2 = (w/2,h/2) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{4}
+% One could argue, that the top left stroke should be vertical, but I
+% chose to go for a $45^\circ$ slanted line, for aestethic reasons.
+%    \begin{macrocode}
+beginchar("4",A_w#,l_h#,0) ; "The number 4" ;
+  z1 = (w-p_t,h-p_t) ; z2 = z1 + p_t*(-1/sqrt(2),1/sqrt(2)) ;
+  z3 = (p_t,h-w+p_t) ; z4 = z3 + p_t*(-1/sqrt(2),1/sqrt(2)) ;
+  fill z1--z2--z4--z3--cycle ;
+  uniend(p_t,z1,0,135,10) ;
+  uniend(p_t,z3,135,270,20) ;
+  pickup unipensqu ;
+  top rt  z5 = (w,h-p_t) ; bot rt z6 = (w,0)   ; draw z5--z6 ;
+  bot lft z7 = (p_t,h-w) ; bot rt z8 = (w,h-w) ; draw z7--z8 ;
+  penlabels(range 1 thru 8) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{5}
+% This gave me some trouble. I originally wanted the arc to have a
+% diameter the width of the character, but that meant, that the to
+% horizontal lines of the font, came so close to each other, that it
+% didn't look good. So I played a little with \texttt{rad}, and
+% decided that the current value gave the nicest resault.
+%    \begin{macrocode}
+beginchar("5",A_w#,l_h#,0) ; "The number 5" ;
+  rad := 9w/20 ; 
+  uniarc(rad,p_t,(w-rad,rad),-150,90,10) ;
+  uniend(p_t,(p_t,h-p_t),90,180,20) ;
+  uniend(p_t,(p_t,2rad),180,270,30) ;
+  pickup unipensqu ;
+  top lft z1 = (p_t,2rad) ; top rt  z2 = (w-rad,2rad) ; draw z1--z2 ;
+  bot lft z3 = (0,2rad)   ; top lft z4 = (0,h-p_t)    ; draw z3--z4 ;
+  top lft z5 = (p_t,h)    ; top rt  z6 = (w,h)        ; draw z5--z6 ;
+  penlabels(range 1 thru 6) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{6}
+% This was almost to easy --- a circle, an arc, and a line connecting
+% them. 
+%    \begin{macrocode}
+beginchar("6",A_w#,l_h#,0) ; "The number 6" ;
+  unicir(w/2,p_t,(w/2,w/2),10) ;
+  uniarc(w/2,p_t,(w/2,h-w/2),60,180,20) ;
+  pickup unipensqu ;
+  top lft z1 = (0,h-w/2) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{7}
+% Apperently, this character could have the same problems as the
+% \textuni{2}, but it didn't --- can you see why not?
+%    \begin{macrocode}
+beginchar("7",A_w#,l_h#,0) ; "The number 7" ;
+  z1 = (w-p_t,h-p_t) ; phi := angle(z1) ;
+  uniend(p_t,z1,-90+phi,90,10) ;
+  z2 = z1 + p_t*(cosd(90-phi),-sind(90-phi)) ;
+  z3 = (p_t/cosd(90-phi),0) ; z4 = (0,0) ;
+  fill z1--z2--z3--z4--cycle ;
+  pickup unipensqu ;
+  top lft z5 = (0,h) ; top rt z6 = (w-p_t,h) ; draw z5--z6 ;
+  penlabels(range 1 thru 6) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{8}
+% Ha ha, to circles, one on top of the other. Some may prefer if the
+% bottom most circle had a slightly larger radius then the top most,
+% but I believe that to be in conflict with the general idea of
+% simplicity. 
+%    \begin{macrocode}
+beginchar("8",1/2*(l_h#+p_t#),l_h#,0) ; "The number 8" ;
+  unicir(w/2,p_t,(w/2,w/2),10) ;
+  unicir(w/2,p_t,(w/2,h-w/2),20) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{9}
+% See above under \textuni{6}.
+%    \begin{macrocode}
+beginchar("9",A_w#,l_h#,0) ; "The number 9" ;
+  unicir(w/2,p_t,(w/2,h-w/2),10) ;
+  uniarc(w/2,p_t,(w/2,w/2),-150,0,20) ;
+  pickup unipensqu ;
+  top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+%\iffalse
+%</dig>
+%\fi
+%\iffalse
+%<*spe>
+%\fi
+% \subsection{Specials --- \texttt{unispe.mf}}
+% \file{unispe.mf}
+% 
+% For these characters, I couldn't find any original design,
+% so once again, I did some inter-- and extrapolation, plus I had some
+% print--outs of other implenations of Herbert Bayers universal
+% font. So once again, I am to blame for any aestethic judgements.
+%
+% \begin{fontcode}{\char"10}
+% At first I thought I didn't had to do this character, but then I
+% realized that you \emph{do} needed, since some words are spelled
+% with some sort of accent over the ``i'', other then a single dot,
+% e.g., \textunibf{na\"ive}.
+%    \begin{macrocode}
+beginchar(hex"10",p_t#,x_h#,0) ; "The dotless letter i" ;
+  pickup unipensqu ;
+  bot lft z1 = (0,0) ; top lft z2 = (0,h) ; draw z1--z2;
+  penlabels(1,2);
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"11}
+% Non single dot j's are not as frequent as those of i's, so for the
+% sake of completness, if nothing else, this letter is included.
+%    \begin{macrocode}
+beginchar(hex"11",p_t#,x_h#,p_d#) ; "The dotless letter j" ;
+  pickup unipensqu ;
+  bot lft z1 = (0,-d) ;  top lft z2 = (0,h) ; draw z1--z2 ;
+  penlabels(1,2);
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"24}
+% I couldn't make up my mind wether this should just be a \textunibf{s},
+% with a vertical bar through, or if I should make it differntly. In
+% the end, I chose to make it different, since I think it looks best
+% in the context of the font.
+%    \begin{macrocode}
+beginchar("$",(l_h#-c_d#+p_t#)/2,l_h#,c_d#) ; "The dollar sign ($)" ;
+  uniarc(w/2,p_t,(w/2,w/2),180,450,10) ;
+  uniarc(w/2,p_t,(w/2,h-c_d-w/2),0,270,20) ;
+  pickup unipensqu ;
+  top z1 = (w/2,h) ; bot z2 = (w/2,-d) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"26}
+% You could argue back and forth on the shape of the ampersand, but I
+% decided to go for a simple design.
+%    \begin{macrocode}
+beginchar("&",(l_h#+p_t#)/2+c_d#,l_h#,c_d#) ; "The ampersand (&)" ;
+  rad := (w-c_d)/2 ;
+  unicir(rad,p_t,(rad,h-rad),10) ;
+  uniarc(rad,p_t,(rad,rad),0,270,20) ;
+  pickup unipensqu ;
+  lft bot z1 = (rad,0)     ; rt bot z2 = (w,0)      ; draw z1--z2 ;
+  rt  top z3 = (w-c_d,rad) ; rt bot z4 = (w-c_d,-d) ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{?}
+% I did have some considerations concerning this. Since I had kind of
+% decided to make avery junction ``smooth'', this also had to
+% be. However, that meant, that my original plan, to make this letter
+% as wide as an \textunibf{A}, didn't work, so I had to make it less
+% wide, which in the end does look better.
+%    \begin{macrocode}
+beginchar("?",l_h#-5c_d#/2,l_h#,0) ; "The question mark (?)" ;
+  temp := angle((P_T,-w/2)) - 0.01 ;
+  uniarc(w/2,P_T,(w/2,h-w/2),temp,180,10) ;
+  uniend(P_T,((w+P_T)/2,h-w),90,180,20) ;
+  uniend(P_T,((w+P_T)/2,h-w+P_T),270,360+temp,30) ;
+  pickup UniPensqu ;
+  top z1 = (w/2,h-w) ; bot z2 = (w/2,2P_T) ; draw z1--z2 ;
+  pickup UniPencir ;
+  bot z3 = (w/2,0) ; drawdot z3 ;
+  penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"3E}
+% These Spanish special letters, are just rotations, so nothing
+% special is going on here.
+%    \begin{macrocode}
+beginchar(spanish_query,l_h#-5c_d#/2,x_h#,p_d#) ; "The Spanish query" ; 
+  temp := angle((-P_T,w/2))-0.01 ;
+  uniarc(w/2,P_T,(w/2,-d+w/2),temp,360,10) ;
+  uniend(P_T,((w-P_T)/2,-d+w),270,360,20) ;
+  uniend(P_T,((w-P_T)/2,-d+w-P_T),90,temp,30) ;
+  pickup UniPensqu ;
+  bot z1 = (w/2,-d+w) ; top z2 = (w/2,h-2P_T) ; draw z1--z2 ;
+  pickup UniPencir ;
+  top z3 = (w/2,h) ; drawdot z3 ;
+  penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"3C}
+% See above.
+%    \begin{macrocode}
+beginchar(spanish_shriek,P_T#,x_h#,p_d#) ; "The Spanish shriek" ;
+  pickup UniPencir ; top z1 = (w/2,h) ; drawdot z1 ;
+  pickup UniPensqu ; top z2 = (w/2,h-2P_T) ; bot z3 = (w/2,-d) ;
+  draw z2--z3 ; penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+%\iffalse
+%</spe>
+%\fi
+%\iffalse
+%<*pun>
+%\fi
+% \subsection{Punctuations --- \texttt{unipun.mf}}
+% \file{unipun.mf}
+%
+% This is the programs for general punctuation marks, ranging from
+% period to ast.
+%
+% \begin{fontcode}{\char"21}
+% Quite a simple character. Notice the use of \texttt{unipencir}.
+%    \begin{macrocode}
+beginchar("!",P_T#,l_h#,0) ; "The exclamation mark (!)" ;
+  pickup UniPensqu ;
+  top lft z1 = (0,h) ; bot lft z2 = (0,2P_T) ; draw z1--z2 ;
+  pickup UniPencir ;
+  bot lft z3 = (0,0) ; drawdot z3 ;
+  penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{(}
+% Here, and in the next character ()) we don't use pens, since we can
+% get a much better resault using the \MF{} path macro \texttt{...} .
+%    \begin{macrocode}
+beginchar("(",x_w#/2,l_h#,p_d#) ; "The left paranthesis (()" ;
+  z1 = (w,h)      ; z2 = (p_t,(h-d)/2) ; z3 = (w,-d)    ;
+  z4 = (w-p_t,-d) ; z5 = (0,(h-d)/2)   ; z6 = (w-p_t,h) ;
+  fill z1..z2..z3--z4..z5..z6--cycle ;
+  penlabels(range 1 thru 6) ;  
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{)}
+%    \begin{macrocode}
+beginchar(")",x_w#/2,l_h#,p_d#) ; "The right paranthesis ())" ;
+  z1 = (p_t,h) ; z2 = (w,(h-d)/2)     ; z3 = (p_t,-d)    ;
+  z4 = (0,-d)  ; z5 = (w-p_t,(h-d)/2) ; z6 = (0,h)       ;
+  fill z1..z2..z3--z4..z5..z6--cycle ;
+  penlabels(range 1 thru 6) ;  
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+%
+% \begin{fontcode}{\#}
+% I never really got satisfied with this letter, but this is the best
+% I could do --- who ever uses a \# anyway!
+%    \begin{macrocode}
+beginchar("#",x_w#,x_h#,0) ; "The hash mark (#)" ;
+  unilne(p_t,(0,0),(w/2,h),1,1,10) ;
+  unilne(p_t,(w/2,0),(w,h),1,1,20) ;
+  pickup unipensqu ;
+  top lft z1 = (0,(h-c_d)/2) ; top rt z2 = (w,(h-c_d)/2) ;
+  bot lft z3 = (0,(h+c_d)/2) ; bot rt z4 = (w,(h+c_d)/2) ;
+  draw z1--z2 ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\%}
+% Among other characters, this one made me define a dimension called
+% \texttt{c\_d}, which is to be used for all kinds of curves. The idea
+% is that, some sizes curves should depend on the weight of the font,
+% and others not. Those that \emph{shouldn't} will use \texttt{c\_d}.
+%    \begin{macrocode}
+beginchar("%",x_w#,l_h#,0) ; "The percent sign (%)" ;
+  temp := 3c_d/2 ;
+  unicir(temp,p_t,(temp,h-temp),10) ;
+  unicir(temp,p_t,(w-temp,temp),20) ;
+  unilne(p_t,(0,0),(w,h),1,1,30) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{'}
+% Agian we have a translated comma --- the apostrophe.
+%    \begin{macrocode}
+beginchar("'",2P_T#,l_h#,0) ; "The apostrophe (')" ;
+  uniend(w/2,(w/2,h-w/2),0,180,10) ;
+  z1 = (0,h-w/2) ; z2 = (w,h-w/2) ; z3 = (0,h-3w/2) ;
+  fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{*}
+% This isn't really complicated execpt for the value of \texttt{temp},
+% which insures that the top of ast will be in the character.
+%    \begin{macrocode}
+beginchar("*",x_w#,l_h#,0) ; "The ast (*)" ;
+  path rect ;
+  temp := h-(w*sind(60)-p_t*cosd(60))/2 ;
+  pickup unipensqu ;
+  lft z1 = (0,temp) ; rt z2 = (w,temp) ; draw z1--z2 ;
+  rect = (bot lft z1)--(top lft z1)--(top rt z2)--(bot rt z2)--cycle ;
+  fill rect rotatedabout((w/2,temp),60) ;
+  fill rect rotatedabout((w/2,temp),120) ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{+}
+% Plus and minus, now that's easy.
+%    \begin{macrocode}
+beginchar("+",x_w#,x_h#,0) ; "The plus sign (+)" ;
+  pickup unipensqu ;
+  lft z1 = (0,w/2) ; rt  z2 = (w,w/2) ; draw z1--z2 ;
+  bot z3 = (w/2,0) ; top z4 = (w/2,w) ; draw z3--z4 ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{,}
+% Incedently, the apostrophs (both single and reversed), are
+% just translations and reflections of the comma.
+%
+% \textsl{Mathemathical problem:} Work out which algebraic group the
+% characters `\textunibf{,}', `\textunibf{'}', and `\textunibf{`}',
+% belongs to? 
+%    \begin{macrocode}
+beginchar(",",2P_T#,2P_T#,2P_T#) ; "The punctuation ," ;
+  uniend(w/2,(w/2,0),0,180,10) ;
+  z1 = (0,0) ; z2 = (w,0) ; z3 = (0,-d) ;
+  fill z1--z2--z3--cycle  ; penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{-}
+% Minus? --- isn't it the opposite of plus?
+%    \begin{macrocode}
+beginchar("-",4x_w#/5,x_h#,0) ; "The hyphen (-)" ;
+  pickup unipensqu ;
+  lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
+  penlabels(1,2);
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{.}
+% Wow, a dot!
+%    \begin{macrocode}
+beginchar(".",2P_T#,2P_T#,0) ; "The punctuation ." ;
+  uniend(w/2,(w/2,h/2),0,360,10) ;
+%  pickup UniPencir ; lft bot z1 = (0,0) ; drawdot z1 ; penlabels(1); 
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{/}
+% This is a nice utilization of \texttt{unilne}.
+%    \begin{macrocode}
+beginchar("/",x_w#,l_h#,0) ; "The slash (/)" ;
+  unilne(p_t,(0,0),(w,h),1,1,10) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{:}
+% Wauw, \emph{two} dots --- cool!
+%    \begin{macrocode}
+beginchar(":",2P_T#,x_h#,0) ; "The punctuation :" ;
+  uniend(w/2,(w/2,h-w/2),0,360,10) ;
+  uniend(w/2,(w/2,w/2),0,360,20) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{;}
+% Again, this is straight forward.
+%    \begin{macrocode}
+beginchar(";",2P_T#,x_h#,2P_T#) ; "The punctuation ;" ;
+  uniend(w/2,(w/2,h-w/2),0,360,10) ;
+  uniend(w/2,(w/2,0),0,180,20) ;
+  z2 = (0,0) ; z3 = (w,0) ; z4 = (0,-d) ; fill z2--z3--z4--cycle ; 
+  penlabels(1,2,3,4) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"3D}
+% These characters are rediculously simple.
+%    \begin{macrocode}
+beginchar("=",x_w#,x_h#,0) ; "The equal sign (=)" ;
+  pickup unipensqu ;
+  top lft z1 = (0,(h-p_t)/2) ; top rt z2 = (w,(h-p_t)/2) ;
+  bot lft z3 = (0,(h+p_t)/2) ; bot rt z4 = (w,(h+p_t)/2) ;
+  draw z1--z2 ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{@}
+% Now this was a bit of a challenge. It is clear, that the left stroke
+% should be a straight line tarveling all the way to the baseline, but
+% how big should the small circle be. I decided to go for the largest
+% one, that didn't touch or intersected the outer arc more then one
+% place, i.e., at the far left.
+%    \begin{macrocode}
+beginchar("@",l_h#,l_h#,0) ; "The at sign (@)" ;
+  uniarc(w/2,p_t,(w/2,h/2),0,240,10) ;
+  unicir(w/3,p_t,(2w/3,w/3),20) ;
+  pickup unipensqu ;
+  top rt z1 = (w,w/2) ; bot rt z2 = (w,0) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{[}
+% Notice the soft corners. This is ofcourse accomplieshed with
+% \texttt{uniend}, which turned out to be a very nice macro.
+%    \begin{macrocode}
+beginchar("[",3p_t#,l_h#,p_d#) ; "The left bracket ([)" ;
+  uniend(p_t,(p_t,h-p_t),90,180,10) ;
+  uniend(p_t,(p_t,-d+p_t),180,270,20) ;
+  pickup unipensqu ;
+  top lft z1 = (p_t,h)   ; top rt  z2 = (w,h)      ; draw z1--z2 ;
+  top lft z3 = (0,h-p_t) ; bot lft z4 = (0,-d+p_t) ; draw z3--z4 ;
+  bot lft z5 = (p_t,-d)  ; bot rt  z6 = (w,-d)     ; draw z5--z6 ;
+  penlabels(range 1 thru 6) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{]}
+% Speaking of reflections.
+%    \begin{macrocode}
+beginchar("]",3p_t#,l_h#,p_d#) ; "The right braket (])" ;
+  uniend(p_t,(w-p_t,h-p_t),0,90,10) ;
+  uniend(p_t,(w-p_t,-d+p_t),270,360,20) ;
+  pickup unipensqu ;
+  top lft z1 = (0,h)     ; top rt  z2 = (w-p_t,h)  ; draw z1--z2 ;
+  top rt  z3 = (w,h-p_t) ; bot rt  z4 = (w,-d+p_t) ; draw z3--z4 ;
+  bot lft z5 = (0,-d)    ; bot rt  z6 = (w-p_t,-d) ; draw z5--z6 ;
+  penlabels(range 1 thru 6) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{`}
+% Who is this `comma' character --- he keeps poping up the strangest
+% places. 
+%    \begin{macrocode}
+beginchar("`",2P_T#,l_h#,0) ; "The reversed apostroph (`)" ;
+  uniend(w/2,(w/2,h-w),180,360,10) ;
+  z1 = (0,h) ; z2 = (0,h-w) ; z3 = (w,h-w) ; fill z1--z2--z3--cycle ; 
+  penlabels(1,2,3) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{--}
+% Ah, a horizontal line --- how fascinating!
+%    \begin{macrocode}
+beginchar(hex"7B",m_w#,x_h#,0) ; "The en-dash (--)" ;
+  pickup unipensqu ;
+  lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{---}
+% And another horizontal line --- and it's even longer then the
+% previous one.
+%    \begin{macrocode}
+beginchar(hex"7C",M_w#,x_h#,0) ; "The em-dash (---)" ;
+  pickup unipensqu ;
+  lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
+  penlabels(1,2) ;
+endchar;
+
+%    \end{macrocode}
+% \end{fontcode}
+%\iffalse
+%</pun>
+%\fi
+%\iffalse
+%<*acc>
+%\fi
+% \subsection{Accents --- \texttt{uniacc.mf}}
+% \file{uniacc.mf}
+% \begin{fontcode}{\char"12}
+% Even though you use a reversed apostrophe in \LaTeX{} to get this
+% accent, the accent shouldn't look like a apostophe, that would be
+% far to clumsy. So instead we \emph{rotate} a comma and translate it
+% --- algebraic groups again!
+%    \begin{macrocode}
+beginchar(hex"12",x_w#,l_h#,0) ; "The accent `" ;
+  uniend(P_T/2,(w/2,a_h+P_T/2),90,270,10) ;
+  z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2+P_T,a_h) ; 
+  fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"13}
+% See above.
+%    \begin{macrocode}
+beginchar(hex"13",x_w#,l_h#,0) ; "The accent '" ;
+  uniend(P_T/2,(w/2,a_h+P_T/2),-90,90,10) ;
+  z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2-P_T,a_h) ; 
+  fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"14}
+%    \begin{macrocode}
+beginchar(hex"14",x_w#,l_h#,0) ; "The accent hachek" ;
+  z1 = (w/2,a_h+p_t) ; uniend(p_t,z1,225,315,10) ;
+  z2 = z1 + p_t*(-1,-1)/sqrt(2) ; z3 = z1 + p_t*(-1,1) ;
+  z4 = z3 + (-p_t*sqrt(2),0) ; path rombe ;
+  rombe := z1--z2--z4--z3--cycle ; fill rombe ;
+  fill rombe reflectedabout ((w/2,0),(w/2,h)) ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"15}
+%    \begin{macrocode}
+beginchar(hex"15",x_w#,l_h#,0) ; "The accent breve" ;
+  rad := 3p_t/2 ; uniarc(rad,p_t,(w/2,a_h+rad),180,360,10) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"16}
+%    \begin{macrocode}
+beginchar(hex"16",x_w#,a_h#+p_t#,0) ; "The accent macron (bar)" ;
+  pickup unipensqu ;
+  bot lft z1 = (w/2-2p_t,a_h) ; bot rt z2 = (w/2+2p_t,a_h) ;
+  draw z1--z2 ; penlabels(1,2) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"17}
+%    \begin{macrocode}
+beginchar(hex"17",A_w#+4/3*(l_h#-x_h#)*slantratio,l_h#,0) ;
+  "The accent circle" ;
+  rad := P_T ; unicir(rad,p_t,(w/2,h-rad),10) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"18}
+%    \begin{macrocode}
+beginchar(hex"18",x_w#,x_h#,2c_d#) ; "The accent cidelia" ;
+  uniarc(d/2,2P_T/3,(w/2+d/4,-d/2),90,270,10) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"20}
+%    \begin{macrocode}
+phi := 15 ; tmp# := 3c_d# ; define_pixels(tmp) ;
+beginchar(hex"20",tmp#*cosd(phi)+p_t#*sind(phi),l_h#,0) ;
+  "The accent bar over l" ;
+  z1 = (0,(h+p_t*cosd(phi)-tmp*sind(phi))/2) ;
+  z2 = (p_t*sind(phi),(h-p_t*cosd(phi)-tmp*sind(phi))/2) ;
+  z3 = (w,(h-p_t*cosd(phi)+tmp*sind(phi))/2) ;
+  z4 = (w-p_t*sind(phi),(h+p_t*cosd(phi)+tmp*sind(phi))/2) ;
+  fill z1--z2--z3--z4--cycle ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"5E}
+%    \begin{macrocode}
+beginchar(hex"5E",x_w#,l_h#,0) ; "The accent hat" ;
+  z1 = (w/2,a_h+p_t) ; uniend(p_t,z1,45,136,10) ;
+  z2 = z1 + p_t*(-1,1)/sqrt(2) ; z3 = z1 + p_t*(-1,-1) ;
+  z4 = z3 + (-p_t*sqrt(2),0) ; path rombe ;
+  rombe := z1--z2--z4--z3--cycle ; fill rombe ;
+  fill rombe reflectedabout ((w/2,0),(w/2,h)) ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"5F}
+%    \begin{macrocode}
+beginchar(hex"5F",x_w#,l_h#,0) ; "The accent dot" ;
+  pickup UniPencir ; bot z1 = (w/2,a_h) ; drawdot z1 ; penlabels(1) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"7D}
+%    \begin{macrocode}
+beginchar(hex"7D",x_w#,l_h#,0) ; "The accent ''" ;
+  rad := P_T/2 ;
+  uniend(rad,(w/2-rad,a_h+rad),-90,90,10) ;
+  uniend(rad,(w/2+P_T,a_h+rad),-90,90,20) ;
+  z1 = (w/2-rad-P_T,a_h) ; z2 = (w/2-rad,a_h) ;
+  z3 = (w/2-rad,a_h+P_T) ; fill z1--z2--z3--cycle ;
+  z4 = (w/2,a_h)         ; z5 = (w/2+P_T,a_h) ;
+  z6 = (w/2+P_T,a_h+P_T) ; fill z4--z5--z6--cycle ;
+  penlabels(range 1 thru 6) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"7E}
+%    \begin{macrocode}
+beginchar(hex"7E",x_w#,l_h#,0) ; "The accent ~" ;
+  rad := (w*sqrt(2)+p_t)/4 ; temp := (2w-p_t*sqrt(2))/8 ;
+  uniarc(rad,p_t,(w/2+temp,a_h+rad),225,315,10) ;
+  uniarc(rad,p_t,(w/2-temp,a_h+rad-2temp),45,135,20) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"7F}
+%    \begin{macrocode}
+beginchar(hex"7F",x_w#,l_h#,0) ; "The accent umlout (double dot)" ;
+  pickup UniPencir ;
+  bot z1 = (w/2-P_T,a_h) ; bot z2 = (w/2+P_T,a_h) ;
+  drawdot z1 ; drawdot z2 ; penlabels(1,2) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+%\iffalse
+%</acc>
+%\fi
+%\iffalse
+%<*lig>
+%\fi
+% \subsection{Ligatures --- \texttt{unilig.mf}}
+% \file{unilig.mf}
+%
+% \begin{fontcode}{SS}
+% If we are making a small caps shaped font, then we need to make an
+% upper case version of the german double s (\ss), so we start of
+% testing if the \texttt{caps} flag is set.
+%    \begin{macrocode}
+if caps:
+  beginchar(hex"19",5/2x_w#,x_h#,0) ; "Ligature SS" ;
+    temp := (h+p_t)/4 ;
+    uniarc(temp,p_t,(temp,temp),180,270,10) ;
+    uniarc(temp,p_t,(2w/5-temp,temp),270,450,20) ;
+    uniarc(temp,p_t,(temp,h-temp),90,270,30) ;
+    uniarc(temp,p_t,(2w/5-temp,h-temp),0,90,40) ;
+    pickup unipensqu ;
+    bot lft z1 = (temp,0)   ; bot rt z2 = (2w/5-temp,0)   ; 
+    lft     z3 = (temp,h/2) ; rt     z4 = (2w/5-temp,h/2) ; 
+    top lft z5 = (temp,h)   ; top rt z6 = (2w/5-temp,h)   ; 
+    draw z1--z2 ; draw z3--z4 ; draw z5--z6 ; 
+    penlabels(1,2,3,4,5,6) ;
+    currentpicture := currentpicture + (currentpicture shifted
+      (3/5w,0)) ; 
+  endchar ; 
+  
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"19}
+% If we are not making a small caps font, then the usual german double
+% s is made.
+%    \begin{macrocode}
+else:
+  beginchar(hex"19",(l_h#+3p_t#)/2,l_h#,p_t#) ; "Ligature ss" ;
+    rad := (w-p_t)/2 ;
+    uniarc(rad,p_t,(p_t+rad,h-rad),-90,180,10) ;
+    uniarc(rad,p_t,(p_t+rad,rad),-90,90,20) ;
+    pickup unipensqu ;
+    top lft z1 = (p_t,h-rad) ; bot lft z2 = (p_t,-d) ; draw z1--z2 ;
+    lft     z3 = (0,h/2)     ; rt z4 = (w-rad,h/2)   ; draw z3--z4 ;
+    penlabels(1,2,3,4) ;
+  endchar ;
+fi ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% The next three characters should not be made in a small caps font,
+% so  these are all put in side the conditinal
+% \begin{verbatim}
+%   if not caps :
+% \end{verbatim}
+% However, we need to put small caps versions of these letters in the
+% position of these charcaters, so we use a little trick later on to
+% do this.
+%
+% And if we are making a \emph{strict} shaped font, then we need to
+% put these characters into two slots each, with three slots between
+% the to replicas of the character. In that case, we first evaluate
+% the code once, then if \texttt{strict} is false, we go on in the
+% code, otherwise, we evaluate the code once more, \emph{but} the
+% characters is put into new slots 3 slots later then before, since
+% \texttt{code\_offset} now is 3. Finally in the end we reset
+% \texttt{code\_offset}.
+%
+% This trick is used also in \texttt{uniext.mf} and
+% \texttt{unilow.mf}.
+% 
+% \begin{fontcode}{\char"1A}
+% This is just a combination of an \textunibf{a} and \textunibf{e},
+% which we earlier on saved in the picture variables \texttt{a\_pic}
+% and \texttt{e\_pic}.
+%    \begin{macrocode}
+if not caps :
+  for temp = 1,2 :
+    if temp = 2 : code_offset := 3 ; fi ;
+    beginchar(hex"1A",2x_w#-p_t#,x_h#,0) ; "Ligature ae" ;
+      currentpicture := a_pic + ( e_pic shifted ((w-p_t)/2,0)) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"1B}
+% This is just a compinition of an \textunibf{o} and
+% \textunibf{e}. The \textunibf{e} we saved earlier on in the picture
+% variable \texttt{e\_pic}. The \textunibf{o} part is drawn anew.
+%    \begin{macrocode}
+    beginchar(hex"1B",2x_w#-p_t#,x_h#,0) ; "Ligature oe" ;
+      unicir(h/2,p_t,(h/2,h/2),10) ;
+      currentpicture := currentpicture + (e_pic shifted ((w-p_t)/2,0)) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"1C}
+% This is really a simple letter. It utilizes the to macros
+% \texttt{unicir} and \texttt{unilne} in a very nice way, I think. 
+%    \begin{macrocode}
+    beginchar(hex"1C",x_w#,x_h#,0) ; "Ligature o/" ;
+      unicir(w/2,p_t,(w/2,h/2),10) ;
+      unilne(p_t,(0,0),(w,h),1,1,20) ;
+    endchar ;
+    exitif (not strict) ;
+    if temp = 2 : code_offset := 0 ; fi ;
+  endfor ;
+fi ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% Since we don't want any majusculues in the \emph{strict} shaped
+% font, the next three characteres is only generated if
+% \texttt{strict} is \texttt{false}.
+% 
+% Since we have to make two version of the majuscules below in a small
+% caps font, we set up an \texttt{fot} loop. The trick is this: The
+% loop while always execute once, so the characters will always be
+% made in the original size. Now, if we are making a small caps font,
+% then the loop will execute once more, and we call the macro
+% \texttt{do\_font} (\texttt{temp = 2}), so that the new characters
+% will have the right dimensions.
+%    \begin{macrocode}
+if not strict :
+  for temp = 1,2 :
+    if temp = 2 : do_caps(-3) ; fi ;
+
+%    \end{macrocode}
+% \begin{fontcode}{\char"1D}
+% It wouln't make any sense to just do a combinition of \textunibf{A} 
+% and \textunibf{E}, as were done in minuscules above, so we draw the
+% whole letter anew.
+%    \begin{macrocode}
+    beginchar(hex"1D",M_w#,l_h#,0) ; "Ligature AE" ;
+      uniarc(w/2,P_t,(w/2,h-w/2),90,180,21) ;
+      uniend(P_t,((w+P_t)/2,P_t),180,270,30) ;
+      pickup Unipensqu ;
+      top lft z1 = (w/2,h)       ; top rt  z2 = (w,h)      ; 
+      top lft z3 = (0,h-w/2)     ; bot lft z4 = (0,0)      ; 
+      lft     z5 = (0,h/2)       ; rt      z6 = (w,h/2)    ; 
+      bot lft z7 = ((w+P_t)/2,0) ; bot rt  z8 = (w,0)      ; 
+      top     z9 = (w/2,h)       ; bot     z10 = (w/2,P_t) ;
+      draw z1--z2 ; draw z3--z4 ; draw z5--z6 ;
+      draw z7--z8 ; draw z9--z10 ;  
+      penlabels(range 1 thru 10) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"1E}
+% Again, a simple combination of \textunibf{O} and \textunibf{E},
+% wouldn't  work. 
+%    \begin{macrocode}
+    beginchar(hex"1E",M_w#,l_h#,0) ; "Ligature OE" ;
+      uniarc(h/2,P_t,(h/2,h/2),90,270,10) ;
+      pickup Unipensqu ;
+      top lft z1 = (h/2,h)   ; top rt  z2 = (w,h)   ; draw z1--z2 ;
+      lft     z3 = (h/2,h/2) ; rt      z4 = (w,h/2) ; draw z3--z4 ;
+      bot lft z5 = (h/2,0)   ; bot rt  z6 = (w,0)   ; draw z5--z6 ;
+      top     z7 = (h/2,h)   ; bot     z8 = (h/2,0) ; draw z7--z8 ;
+      penlabels(range 1 thru 8) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"1F}
+% What a said above the minuscule \textunibf{\o} also goes for this 
+% letter, since this is nothing but an enlargement of that character. 
+%    \begin{macrocode}
+    beginchar(hex"1F",l_h#,l_h#,0) ; "Liguture O/" ;
+      unicir(w/2,P_t,(w/2,h/2),10) ;
+      unilne(P_t,(0,0),(w,h),1,1,20) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% This is where it gets tricky. First we check to see if we are
+% maiking an small caps font, and if not so, we should exit the loop
+% right away, so that we don't screw up the minuscules we already have
+% made above. If, however, we are making a small caps font, we should,
+% after the second run, restore the dimensions to it's original state.
+%    \begin{macrocode}
+    exitif (not caps) ;
+    if temp = 2 : end_do_caps ; fi ;
+  endfor ;
+fi ;
+
+%    \end{macrocode}
+%\iffalse
+%</lig>
+%\fi
+%\iffalse
+%<*ext>
+%\fi
+% \subsection{Extras --- \texttt{uniext.mf}}
+% \file{uniext.mf}
+%
+% Please notice I included \textunibf{\char"0B}, \textunibf{\char"0C},
+% \textunibf{\char"0D}, and \textunibf{\char"0E}, which isn't
+% standard Computer Modern Roman policy. See more below.
+%
+% \Newestchanges{v2.0}{98/08/01}{Some of the \textunibf{bauhaus} symbols
+% that where avaliable in v1.0, has been taken out.}
+% The first part of this file is some symbols relevant to the
+% \textunibf{bauhaus} school. Please notice that some of the symbols
+% present in version~1.0 has been taken out\footnote{If you have used
+% version~1.0 of this font, and liked those characters and found them
+% useful, you should e--mail me \texttt{<cholm at fys.ku.dk>} and let me
+% know. If I get enough letters on this I will incorporate them again
+% in future releases.}, since the were seldomly used, and it made the
+% font contain exactly 128 characters.
+%
+% These characters should \emph{not} be slanted in a slanted shaped
+% font, hence we redefine \texttt{currenttrans} to \texttt{identity},
+% just before the next character, and resets it after the last
+% character. Also notice that \textuni{\bauhead} and
+% \textuni{\bauforms} may take some time to generate.
+%    \begin{macrocode}
+currenttransform := identity ;
+
+%    \end{macrocode}
+%
+% \begin{fontcode}{\char"00}
+% The next three characters are really not the complicated or useful
+% by themselves, but if you combine them, maybe even with the
+% \textsf{color} package of \LaTeX{}, you can really add some
+% \textunibf{bauhaus} flavour to your document.
+%
+% The square, ofcourse is obvious.
+%    \begin{macrocode}
+beginchar(hex"00",l_h#,l_h#,0) ; "The filled square symbol" ;
+  z1 = (0,0) ; z2 = (w,0) ; z3 = (w,h) ; z4 = (0,h) ;
+  fill z1--z2--z3--z4--cycle ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"01}
+% Also four vectors are defined, put translated a bit, and another
+% path macro --- it is amazing how much you can do with so little.
+%    \begin{macrocode}
+beginchar(hex"01",l_h#,l_h#,0) ; "The filled circle symbol" ;
+  z1 = (w,h/2) ; z2 = (w/2,h) ; z3 = (0,h/2) ; z4 = (w/2,0) ;
+  fill z1..z2..z3..z4..cycle ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"02}
+% Maybe every side of this trangle should be of the same length, mut
+% then I had to make the triangle either lower, or wider then the
+% square and circle. I couldn't decide, so I went for equal character
+% dimensions --- so I believe in equality, sue me!
+%    \begin{macrocode}
+beginchar(hex"02",l_h#,l_h#,0) ; "The filled triangle symbol" ;
+  z1 = (0,0) ; z2 = (w,0) ; z3 = (w/2,h) ;
+  fill z1--z2--z3--cycle ;
+  penlabels(1,2,3) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"03}
+% This is a typical \textuni{bauhaus} symbol. I think it is very
+% beautiful.
+%
+% First we draw the surrounding circle.
+%    \begin{macrocode}
+beginchar(hex"03",2l_h#,2l_h#,0) ; "The bauhaus-head symbol" ;
+  unicir(w/2,2c_d/9,(w/2,w/2),40) ;
+%    \end{macrocode}
+% Then we define some horizontal variables $a_{1\ldots6}$ and some
+% vertical variables $b_{1\ldots8}$.
+%    \begin{macrocode}
+  a1 := .702h  ; a2 := .561h  ; a3 := .491h  ; a4 := .351h  ;
+  a5 := .272h  ; a6 := .140h  ;
+  b1 := .202w ; b2 := .307w ; b3 := .412w ; b4 := .447w ;
+  b5 := .465w ; b6 := .518w ; b7 := .588w ; b8 := .623w ;
+%    \end{macrocode}
+% Then we define the vectors needed for the eye, and draw the eye.
+%    \begin{macrocode}
+  temp := c_d/6 ; pickup pensquare scaled temp ;
+  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 ;
+%    \end{macrocode}
+% Then we define the vectors needed for the nostril, and draw it. We
+% still use the pen used for the edges of the eye.
+%    \begin{macrocode}
+  lft bot z9 = (b4,a4) ; lft bot z10 = (b7,a4) ; draw z9--z10 ;
+%    \end{macrocode}
+% Next up is the chin. Again the same pen.
+%    \begin{macrocode}
+  lft bot z11 = (b2,a6) ; rt bot z12 = (b6,a6) ; draw z11--z12 ;
+%    \end{macrocode}
+% Now it's time for the lips. They need to be thicker then the chin
+% and edges of the eye, so we pickup a new pen.
+%    \begin{macrocode}
+  temp := 3c_d/5 ; pickup pensquare scaled temp ;
+  lft top z13 = (b5,a5) ; rt top z14 = (b6,a5) ; draw z13--z14 ;
+%    \end{macrocode}
+% It's time for the lower part of the face. Here we don't need to find
+% strange paths or the like, so we do it all with a \texttt{fill}
+% command. 
+%    \begin{macrocode}
+  z15 = (b6,a4) ; z16 = (b7,a4) ; z17 = (b7,a6) ; z18 = (b6,a6) ;
+  fill z15--z16--z17--z18--cycle ;
+%    \end{macrocode}
+% Since it is not know where the forehead will end at the top, or
+% where the nect will end in the bottom, we define some temporay
+% paths, and make up the real ones from those.
+%
+% First we need to declare the paths.
+%    \begin{macrocode}
+  path noselft, nosert, necklft, neckrt ;
+  path headcircle , parttop, partbot;
+%    \end{macrocode}
+% Then we build five temporary paths, one for each side of the
+% forehead and neck, and one for the surronding circle.
+%    \begin{macrocode}
+  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 ;
+  z27 = (w/2,h) ; z28 = (w,h/2) ; z29 = (w/2,0) ; z30 = (0,h/2) ; 
+  headcircle :=  z27..z28..z29..z30..cycle ;
+%    \end{macrocode}
+% Now we can determine the intersection points between our temporary
+% paths and the circle, and define the vectors we need.
+%
+% We also find the parts of the path \texttt{headcircle} that are
+% relevant for our to areas we need to fill. At last we can fill the
+% areas. 
+%    \begin{macrocode}
+  z31 = noselft intersectiontimes headcircle ;
+  z32 = nosert  intersectiontimes headcircle ;
+  parttop = subpath(y31,y32) of headcircle ;
+  z33 = neckrt  intersectiontimes headcircle ;
+  z34 = necklft intersectiontimes headcircle ;
+  partbot = subpath(y34,y33) of headcircle ;
+  fill z19--parttop--z22--cycle ;
+  fill z23--partbot--z26--cycle ;
+  penlabels(range 1 thru 34) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"04}
+% \Newestchanges{v2.0}{98/08/01}{Joseph Collins came up with the
+% analytic solution --- thanks JC.}
+% This is an interresting character. In version~1.0, I posed it as an
+% mathemathical puzzle, and engourage people to work on it, and if
+% they came up with a solution, pass it on to me. Well, Joseph Collins
+% \index{Collins, Joseph} did just that, and for this I owe him many
+% thanks. For more details on the problem and its solution, take a
+% look in appendix~\ref{app:solu}.
+%
+% First we define some pen sizes we want to use, the variable
+% \texttt{phi} and draw the circle around the character.
+%    \begin{macrocode}
+beginchar(hex"04",2l_h#,2l_h#,0) ; "The bauhaus-forms symbol" ;
+  phi := 36.673 ;
+  thn_pen := 2c_d/9 ; med_pen := 3c_d/9 ; thk_pen := 4c_d/9 ;
+  unicir(w/2,thn_pen,(w/2,w/2),20) ;
+%    \end{macrocode}
+% Then we define the three vertices of the triangle --- points $A,B,C$
+% in the notation of appendix~\ref{app:solu} --- and draw the curved
+% ends there. 
+%    \begin{macrocode}
+  z1 = (thn_pen+med_pen,h/2) ;
+  z2 = (.6433w-med_pen,.9790h-med_pen) ;
+  z3 = (.6433w-med_pen,.0210h+med_pen) ;
+  uniend(med_pen,z1,phi+90,270-phi,30) ;
+  uniend(med_pen,z2,0,phi+90,40) ;
+  uniend(med_pen,z3,270-phi,360,50) ;
+%    \end{macrocode}
+% After this, we calculate the rest of the points needed for the top
+% most edge of the triangle, line $|AC|$. Then we reflect it
+% horizontaly to get the bottom most line $|AB|$.
+%
+% Then we draw the vertical line $|BC|$ via a pen.
+%    \begin{macrocode}
+  z4 = z1 + med_pen*(-sind(phi),cosd(phi)) ;
+  z5 = z2 + med_pen*(-sind(phi),cosd(phi)) ;
+  path sl_line ; sl_line = z1--z4--z5--z2--cycle ; fill sl_line ;
+  fill sl_line reflectedabout((0,h/2),(w,h/2)) ;
+  pickup pensquare scaled med_pen ;
+  lft bot z6 = z2 ; lft top z7 = z3 ; draw z6--z7 ;
+%    \end{macrocode}
+% Now it's time for the four vertices $P,Q,R,S$ of the square. Again
+% we draw the cured ends at those four vertices. This time we use a
+% thicker pen.
+%    \begin{macrocode}
+  z8 = (.3687w+thk_pen,.2254h+thk_pen) ;
+  z9 = (.9179w-thk_pen,.2254h+thk_pen) ;
+  z10 = (.9179w-thk_pen,.7746h-thk_pen) ;
+  z11 = (.3687w+thk_pen,.7746h-thk_pen) ;
+  uniend(thk_pen,z8,180,270,60) ;
+  uniend(thk_pen,z9,270,360,70) ;
+  uniend(thk_pen,z10,0,90,80) ;
+  uniend(thk_pen,z11,90,180,90) ;
+%    \end{macrocode}
+% Finally we define the remaning needed vectors, and draw the edges
+% $|PQ|,|QR|,|RS|$ and $|SP|$ of the square.
+%    \begin{macrocode}
+  pickup pensquare scaled thk_pen ;
+  lft top z12 = z8  ; rt  top z13 = z9  ; draw z12--z13 ;
+  lft bot z14 = z9  ; lft top z15 = z10 ; draw z14--z15 ;
+  bot rt  z16 = z10 ; bot lft z17 = z11 ; draw z16--z17 ;
+  top rt  z18 = z11 ; bot rt  z19 = z8  ; draw z18--z19 ;
+  penlabels(range 1 thru 19) ;
+endchar ;
+
+%    \end{macrocode}
+% After these five characters we reset \texttt{currenttransform} to
+% include the slant specified by \texttt{slantratio}, so that the rest
+% of the font will come out as it slanted if such a font is begin made.
+%    \begin{macrocode}
+currenttransform := identity slanted slantratio ;
+
+%    \end{macrocode}
+% \end{fontcode}
+%
+% Next we provide 6 charecters not directly avaliable in the
+% \texttt{OT1}  encoding, but avaliable in the \texttt{T1} encoding of
+% the Cork fonts. These are \textunibf{\NG}, \textunibf{\TH},
+% \textunibf{\dh}, \textunibf{\ng}, and \textunibf{\th}, plus the
+% accent `ogoneck' (on an \textunibf{a} it looks like
+% \textunibf{\k{a}}).
+%
+% We do need to check again, wether we are making a small caps shaped
+% font, and if so, we should not generate the minuscles
+% \textunibf{\dh}, \textunibf{\ng}, and \textunibf{\th}.
+%
+% However, if we are making a \emph{strict} shaped font, then we need
+% to make the characters twice, and we employe the trick used in
+% \texttt{unilig.mf} again.
+% 
+% \begin{fontcode}{\char"05}
+% I am not completly happy with this character, but it was the best I
+% could think of. Please let me know if you have any kinds of
+% suggestions. 
+%    \begin{macrocode}
+if not caps :
+  for temp = 1,2 :
+    if temp = 2 : code_offset := 3 ; fi ;
+    beginchar(hex"05",x_w#,l_h#,0) ; "The letter eth" ;
+      unicir(w/2,p_t,(w/2,w/2),10) ;
+      uniarc(w/2,p_t,(w/2,h-w/2),0,120,20) ;
+      pickup unipensqu ;
+      top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ;
+      z3 = (w/2,h-w/2+p_t/sqrt(2)) ; z4 = (w/2+p_t/sqrt(2),h-w/2) ;
+      z5 = (w,h-p_t/sqrt(2))       ; z6 = (w-p_t/sqrt(2),h)       ;
+      fill z3--z4--z5--z6--cycle ;
+      penlabels(range 1 thru 6) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"06}
+% This is very much like \textunibf{n}, but has a longer rightmost
+% down stroke.
+%    \begin{macrocode}
+    beginchar(hex"06",x_w#,x_h#,p_d#) ; "The letter eng" ;
+      uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+      pickup unipensqu ;
+      top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0)  ; draw z1--z2 ;
+      top rt  z3 = (w,h-w/2) ; bot rt  z4 = (w,-d) ; draw z3--z4 ;
+      penlabels(1,2,3,4) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"07}
+%    \begin{macrocode}
+    beginchar(hex"07",x_w#,l_h#,p_d#) ; "The letter thorn" ;
+      rad := (h+d)/4 ;
+      uniarc(rad,p_t,(w-rad,rad),-90,90,10) ;
+      pickup unipensqu ;
+      top lft z1 = (0,h) ; bot lft z2 = (0,-d) ; draw z1--z2 ;
+      top lft z3 = (p_t,2rad) ; top rt z4 = (w-rad,2rad) ;
+      bot lft z5 = (p_t,0)    ; bot rt z6 = (w-rad,0)    ;
+      draw z3--z4 ; draw z5--z6 ;
+      penlabels(range 1 thru 6) ;
+    endchar ;
+    exitif (not strict) ;
+    if temp = 2 : code_offset := 0 ; fi ;
+  endfor ;
+fi ;
+
+%    \end{macrocode}
+% \end{fontcode}
+%
+% Like in \texttt{unilig.mf} we now employe a trick to generate to
+% versions of the uppercase letters \textunibf{\NG} and
+% \textunibf{\TH}, that is \textunibsc{\ng} and \textunibsc{\th}.
+%
+% Since there us only two majuscules here, we might as well take
+% advantige of the extra slot, and make a small caps version of
+% \textunibf{\varQ}, so this is defined before \textunibf{\NG}, to
+% take the place of \textunibf{dh}.
+%     \begin{macrocode}
+if not strict :
+  for temp = 1,2 :
+    if temp = 2 : do_caps(-3) ; fi ;
+    
+%    \end{macrocode}
+% \begin{fontcode}{\char"08}
+% This is the variant of \textunibf{Q} based an \textunibf{P}. This
+% one is \emph{non}--default, you can acces this letter with
+% \Lcs{varQ}\footnote{I am somewhat troubled with the majuscle `Q',
+% because I don't know if the default one should be `\textunibf{Q}' or
+% `\textunibf{\varQ}'. I will keep both characters in the font, but if
+% enough wnats to chage the default, I will consider this
+% ofcourse. Tell me \emph{your} opinon!}.
+%    \begin{macrocode}
+    beginchar(hex"08",A_w#,l_h#,0) ; "The variant letter Q";
+      unicir(w/2,P_t,(w/2,h-w/2),10)
+      pickup Unipensqu ;
+      rt top z1 = (w,h-w/2) ; rt bot z2 = (w,0) ; draw z1--z2 ;
+      penlabels(1,2);
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"09}
+% This is similar to \textunibf{N}, execpt the rightmost vertical
+% stroke ends in an arc.
+%    \begin{macrocode}
+    beginchar(hex"09",A_w#,l_h#,0) ; "The letter Eng" ;
+      rad := 3C_d ;
+      uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ;
+      uniarc(rad,P_t,(w-rad,rad),-90,0,20) ;
+      pickup Unipensqu ;
+      top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0);  draw z1--z2 ;
+      top rt z3 = (w,h-w/2)  ; bot rt z4 = (w,rad) ;  draw z3--z4 ; 
+      penlabels(1,2,3,4) ;
+    endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"0A}
+%    \begin{macrocode}
+    beginchar(hex"0A",A_w#,l_h#,0) ; "The letter Thorn" ;
+      rad := h/4 ;
+      uniarc(rad,P_t,(w-rad,h/2),-90,90,10) ;
+      pickup Unipensqu ;
+      top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+      top lft z3 = (P_t,h/2+rad) ; top rt z4 = (w-rad,h/2+rad) ;
+      bot lft z5 = (P_t,h/2-rad) ; bot rt z6 = (w-rad,h/2-rad) ;
+      draw z3--z4 ; draw z5--z6 ;
+      penlabels(range 1 thru 6) ;
+    endchar ;
+    exitif (not caps) ;
+    if temp = 2 : end_do_caps ; fi ;
+  endfor ;
+fi ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"0B}
+% This is actually a reversed cidelia accent.
+%    \begin{macrocode}
+beginchar(hex"0B",x_w#,x_h#,2c_d#) ; "The accent ogoneck" ;
+  uniarc(d/2,2P_T/3,(w/2-d/4,-d/2),-90,90,10) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"0C}
+% I chose to include the braces in the font, since you might needed
+% them, and the Computer Modern Roman braces, doesn't really go with
+% the rest of the font, so if you had to use those, it wouldn't look
+% very good. They are, however not in the standard position, since
+% that is already taken up.
+%    \begin{macrocode}
+beginchar(hex"0C",3c_d#,l_h#,p_d#) ; "The left brace ({)" ;
+  uniarc(2c_d,p_t,(3c_d,h-2c_d),90,180,10) ;
+  uniarc(2c_d,p_t,(3c_d,-d+2c_d),180,270,20) ;
+  pickup unipensqu ;
+  top lft z1 = (c_d,h-2c_d) ; bot lft z2 = (c_d,-d+2c_d) ; draw z1--z2 ;
+  lft z3 = (0,(h-d)/2) ; rt z4 = (c_d,(h-d)/2) ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"0D}
+% Discussion above.
+%    \begin{macrocode}
+beginchar(hex"0D",3c_d#,l_h#,p_d#) ; "The right brace (})" ;
+  uniarc(2c_d,p_t,(0,h-2c_d),0,90,10) ;
+  uniarc(2c_d,p_t,(0,-d+2c_d),270,360,20) ;
+  pickup unipensqu ;
+  top rt z1 = (w-c_d,h-2c_d) ; bot rt z2 = (w-c_d,-d+2c_d) ;
+  draw z1--z2 ;
+  rt z3 = (w,(h-d)/2) ; lft z4 = (w-c_d,(h-d)/2) ; draw z3--z4 ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"0E}
+% The paragraph sign is usually in the \texttt{cmsy} family, avaliable
+% in \texttt{OT1} encoding only, but for the same reasons as the
+% braces above, I decided to include this charater in the font.
+%    \begin{macrocode}
+beginchar(hex"0E",(l_h#+p_d#+2p_t#)/3,l_h#,p_d#) ;
+  "The Paragraph sign" ; 
+  uniarc(w/2,p_t,(w/2,h-w/2),30,270,10) ;
+  uniarc(w/2,p_t,(w/2,w/2-d),-150,90,20) ;
+  unicir(w/2,p_t,(w/2,(h-d)/2),30) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"0F}
+% I guess there are no real surprises here --- it's just a bar!
+%    \begin{macrocode}
+beginchar(hex"0F",p_t#,l_h#,p_d#) ; "The symbol bar (|)" ;
+  pickup unipensqu ;
+  lft top z1 = (0,h) ; lft bot z2 = (0,-d) ; draw z1--z2 ;
+  penlabels(1,2);
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% 
+% The next two characters is included, since I think it would be a
+% good idea to use \universal{} characters for German
+% quotation, instead of some Computer Modern Roman character, which
+% would be totally out of place.
+%
+% If you use the \textsf{uni} package you can say
+% \begin{verbatim}
+%   {\uni
+%     \guillemoleft Hello World\guillemoright\newline
+%     \guilsinglleft Hello World\guilsinglright}
+% \end{verbatim}
+% and get
+% \begin{quote}
+%   {\uni
+%     \guillemoleft Hello World\guillemoright\newline
+%     \guilsinglleft Hello World\guilsinglright}
+% \end{quote}
+%
+% \begin{fontcode}{\char"22}
+% This is quote a simple character. Do notice the nice use of
+% \texttt{uniend}, to produce the soft turn.
+%    \begin{macrocode}
+beginchar(hex"22",2x_w#/3,x_h#,0) ; "The single left guillomot" ;
+  z1 = (p_t,h/2) ; z2 = (w,h) ; phi := angle(z2-z1) ;
+  uniend(p_t,(z1),90+phi,270-phi,10) ;
+  z3 = (w-p_t/sind(phi),h) ; z4 = z1 + p_t*(-sind(phi),cosd(phi)) ;
+  path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ;
+  fill rombe reflectedabout ((0,h/2),(w,h/2)) ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+% \begin{fontcode}{\char"5C}
+%    \begin{macrocode}
+beginchar(hex"5C",2x_w#/3,x_h#,0) ; "The single right guillomot";
+  z1 = (w-p_t,h/2) ; z2 = (0,h) ; phi := 180-angle(z2-z1) ; 
+  uniend(p_t,(z1),phi-90,90-phi,10) ;
+  z3 = (p_t/sind(phi),h) ; z4 = z1 + p_t*(sind(phi),cosd(phi)) ;
+  path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ;
+  fill rombe reflectedabout ((0,h/2),(w,h/2)) ;
+  penlabels(1,2,3,4) ;
+endchar ;
+
+%    \end{macrocode}
+% \end{fontcode}
+%\iffalse
+%</ext>
+%\fi
+%\iffalse
+%<*font>
+%\fi
+% \section{Font driver files}\file{ful*.mf}
+%
+% This section describes the driver files
+% \texttt{uni}\meta{series}\meta{shape}\meta{size}\texttt{.mf}, where
+% \meta{series} is one of \texttt{r} (medium), or \texttt{bf}
+% (boldface), \meta{shape} one of upright (no letter), \texttt{sl}
+% (slanted), or \texttt{sc} (small caps), and \meta{size} is the
+% designsize in points, one of 8, 9, 10, 12, or 17.
+%
+% To make the source file shorter, I employed a little trick,
+% exploiting some of the features of the \textsf{docstrip}
+% program. That, on the other hand means that the line numbers you see
+% here, doesn't conform to the actual ones in the driver files.
+%
+% First we make sure the base file \texttt{unibase.mf} is loaded, but
+% not more then once in a run. This is needed since this file contains
+% all the macros and definitions for the font.
+% 
+%    \begin{macrocode}
+if unknown unibase : input unibase; fi;
+
+%    \end{macrocode}
+% Next we define some \textsl{boolean} variables, determining the
+% shape of the font we are to create. This are straight forward, and
+% should be self explanetory. Any number of variables may be set to
+% \texttt{true}, execpt that it makes no sense to define both
+% \texttt{bold} and \texttt{medium} to \texttt{true}, so this will be
+% considered an error, and a medium font will be made. (See alse the
+% explanation of the \texttt{start\_font} macro in the
+% \texttt{unibase.mf} section.)
+%
+% \begin{verbatim}
+%<+medium>medium := true ;
+%<+bold>bold := true ;
+%<+slanted>slant := true ;
+%<+caps>caps := true ;
+%<+strict>strict := true ; 
+%<+eight>start_font(8pt#) ;
+%<+nine>start_font(9pt#) ;
+%<+ten>start_font(10pt#) ;
+%<+twelve>start_font(12pt#) ;
+%<+seventeen>start_font(17pt#) ;
+%\end{verbatim}
+%
+% The next part of the files just inputs the nessecary source files,
+% and there is nothing special here. Finally we end the font with the
+% macro \texttt{end\_font}.
+%    \begin{macrocode}
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+%    \end{macrocode}
+%\iffalse
+%</font>
+%\fi
+%\iffalse
+%<*docpackage>
+%\fi
+% \section{Commands for the Documentation --- \texttt{unidoc.sty}}
+% \file{unidoc.sty}\label{app:unidoc}
+%
+% \textsc{Warning:} Most of the macros defined in this file uses
+% \TeX{} primitivs like \Lcs{def} and \Lcs{let}, contorary to the
+% recommendations in \clsguide{}. This means you shouldn't try to use
+% this package in conjunction with normal \LaTeXe{} documents, since
+% it will not nessecarily by portable, and may generate unwanted
+% resaults. This package is \emph{only} intended for the documentation
+% of the \universal{} package, \emph{and nothing else!}
+%
+% \subsection{Initializing}
+% 
+% First we need to identify the package, its version and release 
+% date, etc.
+%    \begin{macrocode}
+\ProvidesPackage{unidoc}
+  [\unifiledate\space\unifileversion\space universal documenation package.]
+%    \end{macrocode}
+%
+% \begin{macro}{\ifeepic}
+% \begin{macro}{\eepictrue}
+% \begin{macro}{\eepicfalse}
+%
+% In case we can load the package \textsf{eepic}, we will set
+% \cs{eepictrue}, and make a plot of the shapes problem.
+%
+%    \begin{macrocode}
+\newif\ifeepic\eepicfalse
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Then we load some pacakges needed. \textsf{doc} is ofcourse needed
+% to do all the actual typesetting of macros etc., while \textsf{uni}
+% is needed for the fonts\footnote{This means ofcourse, that you
+% needed to have all the \MF{} sources ready, or in other words, you
+% should have run \texttt{universa.ins} through \LaTeX{}.}, and
+% finally \textsf{mflogo} is needed for the \MF{} logo.
+% 
+%    \begin{macrocode}
+\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{uni}}
+\ProcessOptions\relax
+\RequirePackage{doc}
+\RequirePackage{mflogo}
+\RequirePackage[colorlinks,%
+                linkcolor=red,%
+                anchorcolor=black,%
+                citecolor=green,%
+                filecolor=black,%
+                menucolor=black,%
+                urlcolor=blue,%
+                hyperindex,%
+                linktocpage,%
+                pdfduplex=duplexFlipLongEdge,%
+                a4paper,%
+                bookmarks=true]{hyperref}
+\RequirePackage{uni}
+\IfFileExists{eepic.sty}{%
+  \RequirePackage{eepic}\eepictrue}{%
+  \PackageWarning{unidoc}{`eepic.sty' not found, so there will be no
+    pictures - you are warned.}\eepicfalse}
+
+%    \end{macrocode}
+%
+% \subsection{Macros for the Index}
+% 
+% \begin{macro}{\file}
+% First we save the argument --- the current output filename --- in a
+% command, set the codeline counter to zero (since every starts at
+% line 1, obviously). Then we check to see if we are outputting files
+% at all. If we are, we write an index entry.
+%    \begin{macrocode}
+\def\file#1{
+  \def\c at r{#1}
+  \c at CodelineNo0
+  \if at filesw
+    \immediate\write\@indexfile
+    {\string\indexentry{#1=\string\texttt{#1}%
+        \string\space(File)}%
+    {\thepage}}\fi}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\main}
+% This command is used be \texttt{doc.sty}, to choose the font for the
+% codelines numbers in the index. It is set to \texttt{typewriter}.
+%    \begin{macrocode}
+\def\main#1{\texttt{{\small\c at r}:\ #1}}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\src}
+% To make the index reflect, that more then one file is present, and
+% therefore more then one entry could have the same codeline number,
+% we put the file name before the codeline number in the index. The
+% name is gotten from the \Lcs{file} command. This ofcourse takes up
+% quite some space in the index, so later on we speciffy the index
+% to only have 2 columns.
+%    \begin{macrocode}
+\def\src#1#2{\texttt{{\small#1}:\ #2}}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fontcodeindex}
+% The next two commands are responsible for writting the index entries
+% of the above environments. They are similar to the \texttt{doc}
+% package command \Lcs{codeline at wrindex} but uses the filenames
+% defined by \Lcs{file} (via  the \Lcs{src} command), and the
+% \Lcs{fontcodeindex} uses a font appropiat for the font descriped
+% (i.e., \Lcs{FontCodeFont}) 
+%    \begin{macrocode}
+\def\fontcodeindex#1{%
+  \@bsphack\begingroup\let\_=\protect\_%
+  \special at index{%
+    \expandafter\string#1\actualchar%
+    {\string\FontCodeFont\space#1}%
+    \encapchar src{\c at r}}\endgroup\@esphack}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\fontmacroindex}
+%    \begin{macrocode}
+\def\fontmacroindex#1{%
+  \@bsphack\begingroup\let\_=\protect\_%
+  \special at index{%
+    \expandafter\string#1\actualchar%
+    {\string\MacroFont\space#1}%
+    \encapchar src{\c at r}}\endgroup\@esphack}
+  
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Descriptive Environments}
+% 
+% The next counters are to do some more advanced stuff on the on line
+% numbers in the index. Instead of just writting the beginning line of
+% the fontcode, we writte the complete interval of the fontcode. See
+% also the command \Lcs{f at ntcodeindex} and \Lcs{f at ntmacroindex}.
+%    \begin{macrocode}
+\newcount\startfontcodeline 
+\newcount\startfontmacroline
+
+%    \end{macrocode}
+% \begin{macro}{\fontcode}
+% \begin{macro}{\endfontcode}
+% \begin{macro}{\FontCodeFont}
+% \begin{macro}{\PrintFontName}
+% Next comes two environments for descriping the font programs, and
+% font macros. They are similar to the environment \texttt{macro} in
+% the \texttt{doc} package. However, some alterations is made, so that
+% the right font is used in the index. (See also the
+% \Lcs{fontcodeindex} macro below.) Also, notice the defintion of
+% \Lcs{saved at macroname} and \Lcs{PrintFontName}. This is done so that
+% control sequnces in the argument to \texttt{fontcode} environment,
+% which should expand to a single letter, comes out expanded, rather
+% then the actual control sequences, which isn't wanted here.
+%    \begin{macrocode}
+\def\fontcode#1{
+  \def\saved at fontname{#1}
+  \let\temp at MF\MacroFont\let\MacroFont\FontCodeFont
+  \let\temp at PMN\PrintMacroName\let\PrintMacroName\PrintFontName
+  \let\temp at SMI\SpecialMainIndex
+  \let\SpecialMainIndex\fontcodeindex
+  \macro{#1}}
+\def\endfontcode{
+  \endmacro
+  \let\MacroFont\temp at MF
+  \let\SpecialMainIndex\temp at SMI
+  \let\PrintMacroName\temp at PMN}
+\let\FontCodeFont\unibf
+\def\PrintFontName#1{\strut\MacroFont\saved at fontname\ }
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\fontmacro}
+% \begin{macro}{\endfontmacro}
+% This is similar to \texttt{fontcode} environment, but is used to
+% descripe the macros of \texttt{unibase}. The reason why we employ to
+% environments, and not just one, is that the margin notes should come
+% out in \texttt{typewriter} font in this environment, while it
+% should be in \universal{} font above. 
+%    \begin{macrocode}
+\def\fontmacro#1{
+  \let\temp at under\_
+  \let\_\MacroUnderscore
+  \let\temp at SMI\SpecialMainIndex
+  \let\SpecialMainIndex\fontmacroindex
+  \macro{#1}}
+\def\endfontmacro{%
+  \endmacro\let\SpecialMainIndex\temp at SMI\let\_\temp at under}
+\def\MacroUnderscore{{\char"5F}}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\illubegin}
+% \begin{macro}{\illuother}
+% \begin{macro}{\endillu}
+%    \begin{macrocode}
+\let\beginillu\ifeepic
+\let\illuother\else
+\let\endillu\fi
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% 
+% \subsection{Useful Commands}
+% 
+% \begin{macro}{\Newestchanges}
+% This macro is intended to be used like the \Lcs{changes} macro of
+% the \textsf{doc} package. However, it should only be used on the last
+% most change. But rather then just making an entry in the the
+% glossary, it will also print a line saying when this macro was last
+% changed. This is something like what is done in
+% \texttt{ltxguide.cls}, but a bit different, since in that class not
+% enough is being done glossary--wise, and too much is done
+% margin--wise. When making an update to a macro, the new
+% \Lcs{changes} should be made with \Lcs{Newestchanges}, and the old
+% \Lcs{Newestchanges} should be renamed to \Lcs{changes}. Notice that
+% \texttt{doc.sty} says \Lcs{def}\Lcs{saved at macroname}\texttt{\{\}},
+% so we can't say
+% \begin{verbatim}
+%   \ifx\saved at macroname\relax
+% \end{verbatim}
+% since \Lcs{relax} \emph{isn't} the same as an empty definition, but
+% \Lcs{@empty} is. In the case that \Lcs{saved at macroname} is defined
+% to something, then we put a  bullet ($\bullet$) in the margin, and
+% attach a footnote to it, where the footnote text contains the proper
+% information. Ofcourse this could led to a lot of footnotes, but the
+% alternative is to redefine the \texttt{macro} environment, and I
+% really didn't have the stomach for that, Sorry. Notice the use of
+% \Lcs{@gobble}, that removes the leading `v' in the version number.
+%    \begin{macrocode}
+\def\Newestchanges#1#2#3{
+  \ifx\saved at macroname\@empty%
+    \marginpar{\small\raggedright{\sl Change on} #2, {\sl Version}
+      \expandafter\@gobble#1}
+  \else%
+    \llap{$\bullet$\footnote{{\sl Change of }
+        {\MacroFont\expandafter\string\saved at macroname} 
+        {\sl on} #2, {\sl Version }\expandafter\@gobble#1}}
+  \fi
+  \changes{#1}{#2}{#3}}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\Lcs}
+% Finally we define a short hand for \Lcs{...}, to make the
+% documentaion easier.
+%    \begin{macrocode}
+\def\Lcs#1{\texttt{\char"5C{}#1}}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsubsection{The Font Charts}
+% 
+% \begin{macro}{\FontChart}
+% This macro is for typesetting a table of the font. It is taken from
+% \texttt{testfont.tex}.
+%
+% First we define some counters to use in the table. \Lcs{n} is the
+% counts the number of letters and symbols typeset so far, while
+% \Lcs{m} is counting the number of typeset characters in current
+% line. \Lcs{p} is a penalty counter. The dimension \Lcs{dim} is used
+% for setting the characters appropiate.
+%
+% We also define a new \Lcs{if}, used to see if we should go on.
+%
+% \Lcs{oct} and \Lcs{hex} are used for typesetting numbers in
+% octadecimal and hexadecimal notation respectivily.
+%    \begin{macrocode}
+\newcount\n\newcount\m\newcount\p\newdimen\dim
+\newif\ifskipping
+\def\oct#1{\hbox{\rm\'{}\kern-.2em\it#1\/\kern.05em}}
+\def\hex#1{\hbox{\rm\H{}\tt#1}} 
+
+%    \end{macrocode}
+% \begin{macro}{\setdigs}
+% This is used to set the counters \Lcs{n} and \Lcs{m} every time a
+% new (double) line is started.
+%    \begin{macrocode}
+\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}}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\testrow}
+% This is used to see how we should typeset the current row.
+%    \begin{macrocode}
+\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}}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\oddline}
+% This is used to typeset topmost line of a double line. It basically
+% just putting a line and some saces into the chart.
+%    \begin{macrocode}
+\def\oddline{
+  \cr\noalign{\nointerlineskip}\multispan{19}\hrulefill&
+  \setbox0=\hbox{\lower 2.3pt\hbox{\hex{\h x}}}\smash{\box0}\cr
+  \noalign{\nointerlineskip}}
+
+%    \end{macrocode}
+% \end{macro}
+% \begin{macro}{\evenline}
+% This is used to typeset bottommost line of a double line. It
+% basically does the same as \Lcs{oddline}, but also checks to see if
+% we need to end the chart or go on.
+%    \begin{macrocode}
+\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}
+
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\morechart}
+% This macro is called every time we need to typeset a new double line
+% of the chart.
+%    \begin{macrocode}
+\def\morechart{
+  \cr\noalign{\hrule\penalty5000}
+  \chartline \oddline \m=\1 \advance\m 1 \xdef\1{\the\m}
+  \chartline \evenline}
+
+%    \end{macrocode}
+% \end{macro}
+% 
+% \begin{macro}{\chartline}
+% \begin{macro}{\chartstrut}
+% \Lcs{chartline} is called every time we need to typeset a line of
+%  the chart. Notice it uses the macro \Lcs{:} to do the
+% job. \Lcs{chartstrut} is used to get approiate spacing.
+%    \begin{macrocode}
+\def\chartline{&\oct{\0\1x}&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&\:&&}
+\def\chartstrut{\lower4.5pt\vbox to14pt{}}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% 
+% \begin{macro}{\:}
+% \begin{macro}{\reposition}
+% \begin{macro}{\centerlargechars}
+% These macros are used for typesetting the actual characters in the
+% chart. \Lcs{:} gives the appropiate space for a character and
+% encriments the \Lcs{n} counter, while \Lcs{reposition} places the
+% character nicely in the the chart. \Lcs{centerlargechars} does the
+% same for {\large large} characters.
+%    \begin{macrocode}
+\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}$}}}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\chart}
+% \begin{macro}{\endchart}
+% These two macros is what starts and ends the chart. \Lcs{chart} sets
+% up the appropiate stuff, and writes the top most line in the
+% chart. \Lcs{endchart} is called by \Lcs{evenline} if no more
+% characters should be typeset, and then it finished everything off,
+% plus writes the last line of the chart.
+%    \begin{macrocode}
+\def\chart{$$\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}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% Finally we get to the \emph{real} macro. This macro takes one
+% argument, the name of the \meta{font driver file}. We put the chart
+% inside a \texttt{figure} environment, so that we may refer to it
+% latter. This is done using the label \texttt{chart:}\meta{font driver
+% file}. The chart is encapsulated in a group, so that the definition
+% of \Lcs{chart at font} doesn't get in the way elsewhere in the document.
+%    \begin{macrocode}
+\def\FontChart#1#2{
+%%   \marginpar{\small\raggedright Letters and symbols in \texttt{#1} 
+%%      font.} 
+  \begin{figure}[htbp]
+    \begingroup
+      \font\chart at font=#1
+      \chart at font
+      \chart
+      \endgroup
+    \caption{Letters and symbols in \texttt{#1} --- #2}
+    \label{fig:font:#1}
+\end{figure}}
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \subsection{Parameters and Miscillaneous Commands}
+% 
+% This is used --- as explaind in \texttt{doc.dvi} --- to give a
+% different prologue to the index, more suitable to our needs.
+%    \begin{macrocode}
+\IndexPrologue{%
+  \section{Index}\markboth{Index}{Index}
+  The Numbers written in \textit{italic} refer to the pages, where
+  a macros usage is descriped, while those in \texttt{typewrite} refer 
+  to line numbers in the files, mentioned before, where the definition 
+  is, while \textsl{slanted} shows the places it is used. Normal letters 
+  refer to pages, wether it be descriptions or usage.}
+\GlossaryPrologue{%
+  \section{Change History}\markboth{Change History}{Change History}
+  Below is listed the changes made to the \universal{} font and the
+  \LaTeX{} support package \textsf{uni}, from version~1.0 to 2.0.}
+
+%    \end{macrocode}
+% Also we set the number of columns in the index to 2, since some
+% space is needed for the entries
+%    \begin{macrocode}
+\setcounter{IndexColumns}{2}
+
+%    \end{macrocode}
+% We don't want the index flutted with silly command sequences, so we
+% leave some of them out.
+%    \begin{macrocode}
+\DoNotIndex{\@bsphack,\@empty,\@esphack,\@gobble,\@ifnextchar,%
+  \@ifundefined,\@indexfile,\@onlypreamble,\iffalse,\_,\,\accent,%
+  \aftergroup,\actualchar,\advance,\begin,\begingroup,\bgroup,%
+  \box,\bullet,\changes,\char,\chardef,\CheckModules,\CodeLineIndex,%
+  \cr,\crcr,\csname,\DeclareFontFamily,\DeclareFontShape,\DeclareMacro,%
+  \dim,\divide,\dp,\DeclareOption,\def,\DoNotIndex,\edef,\egroup,\else,%
+  \end,\endcsname,\EnableCrossrefs,\encapchar,\endgroup,\endmacro,%
+  \expandafter,\fbox,\fi,\font,\footnote,\fontemcoding,\fontfamuliy,%
+  \fontseries,\fontshape,\gdef,\global,\H,\h,\halign,\hbox,\hfil,%
+  \hidewidth,\hrule,\hrulefill,\hsize,\ht,\hyphenchar,\if at filesw,%
+  \ifdim,\IfFileExists,\ifnum,\ifskipping,\ifx,\immediate,\indexentry,%
+  \it,\itdefault,\kern,\lastpenalty,\LaTeX,\LaTeXe,\leavevmode,\let,%
+  \llap,\loop,\lower,\m,\macro,\MacroFont,\marginpar,\marginparwidth,%
+  \markboth,\mdseries,\meaning,\multiply,\multispan,\n,\newcommand,%
+  \newcount,\newdimen,\newif,\newline,\next,\noalign,\noexpand,%
+  \nointerlineskip,\not at math@alphabet,\null,\ooalign,\p,\par,\penalty,%
+  \ProcessOptions,\protect,\ProvidesFile,\ProvidesPackage,%
+  \RecordChanges,\raggedright,\raise,\relax,\renewcommand,\repeat,%
+  \RequirePackage,\rm,\saved at macroname,\scshape,\section,\selectfont,%
+  \setcounter,\setbox,\show,\skippingfalse,\skippingture,\sl,\slshape,%
+  \small,\smash,\space,\special at index,\SpecialMainIndex,\stop,\string,%
+  \strut,\tabskip,\TeX,\TeXbook,\textit,\textsf,\textsl,\texttt,\the,%
+  \thepage,\tt,\typeout,\unhbox,\universal,\upshape,\usefont,\vbox,%
+  \vcenter,\vrule,\write,\xdef,\z@,\PackageError,\PackageWarning,
+  \PassOptionsToPackage,\GlossaryPrologue,\',\0,\1,\bfseries,
+  \centerlargechars,\DeclareRobustCommand,\DeclareTextFontCommand,
+  \ExecuteOptions,\familydefault,\fontencoding,\fontfamily,\hex,\oct,
+  \IndexPrologue,\oddline}
+
+%    \end{macrocode}
+% And then we define the behaviour of the \textsf{doc} package, by
+% setting a number of flags (as explained in the documentation of the
+% \textsf{doc} package). We also set the margin paragraph widths to be
+% a bit smaller then usual.
+%     \begin{macrocode}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\CheckModules
+\marginparwidth=54pt
+%    \end{macrocode}
+%
+% \begin{macro}{\NFSS}
+% \begin{macro}{\ftnguide}
+% \begin{macro}{\clsguide}
+% \begin{macro}{\MFbook}
+% \begin{macro}{\universal}
+%
+% Some utility macros used in the documentation.
+% 
+%    \begin{macrocode}
+\newcommand{\NFSS}{\textsf{NFSS}}
+\newcommand{\ftnguide}{\textit{\LaTeXe{} Font Selection}}
+\newcommand{\clsguide}{ \textit{\LaTeXe{} for Class and Packages
+    Writers}} \newcommand{\TeXbook}{\TeX\textsf{book}}
+\newcommand{\MFbook}{\MF\textsf{book}}
+\newcommand{\universal}{\textunibf{universal}}
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% %\iffalse
+%</docpackage>
+%\fi
+% \Finale
+%
+% \iffalse
+% Local Variables:
+%   mode: docTeX
+% End: 
+% \fi


Property changes on: trunk/Master/texmf-dist/source/fonts/universa/universa.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/fonts/universa/universa.ins
===================================================================
--- trunk/Master/texmf-dist/source/fonts/universa/universa.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/fonts/universa/universa.ins	2019-08-29 22:50:25 UTC (rev 51984)
@@ -0,0 +1,182 @@
+%% -*- mode: tex -*- 
+%%
+%% This is file `universa.ins', the installation file for the
+%% `universal' package.
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal package is free software; you can redistribute it
+%% and/or modify it under the terms of the GNU General Public License
+%% as published by the Free Software Foundation; either version 2 of
+%% the License, or (at your option) any later version.
+%%
+%% The universal package is distributed in the hope that it will be
+%% useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+%% of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this package; if not, write to the Free Software
+%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+
+\input docstrip.tex
+\keepsilent
+\declarepreamble\long
+
+Copyright (C) 1998 Christian Holm.
+
+This file is NOT the source for universal, because almost all 
+comments have been stripped from it.  It is NOT the preferred 
+form of universal for making modifications to it.
+
+Therefore you can NOT redistribute and/or modify THIS file.  
+You can however redistribute the complete source (universa.dtx 
+and universa.ins) and/or modify it under the terms of the GNU 
+General Public License as published by the Free Software 
+Foundation; either version 2, or (at your option) any later 
+version.
+
+The universal font and package is distributed in the hope that 
+it will be useful, but WITHOUT ANY WARRANTY; without even the 
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public 
+License along with this package; if not, write to the 
+  Free Software Foundation, Inc., 
+  675 Mass Ave, Cambridge, 
+  MA 02139, USA.
+
+See the file universa.dtx for further comments and documentation.
+
+\endpreamble
+
+\declarepreamble\short
+
+Copyright (C) 1998 Christian Holm.
+
+The universal font and package is distributed in the hope that 
+it will be useful, but WITHOUT ANY WARRANTY; without even the 
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+PURPOSE.  See the GNU General Public License for more details.
+
+See the file universa.dtx for further comments and documentation.
+
+
+\endpreamble
+
+\usepreamble\long
+\usedir{tex/latex/universa}
+\Msg{***********************************************************}
+\Msg{* Generating LaTeX files}
+\Msg{***********************************************************}
+\generate{\file{uni.sty}{\from{universa.dtx}{package}}
+          \file{omluni.fd}{\from{universa.dtx}{oml}}
+          \file{omsuni.fd}{\from{universa.dtx}{oms}}
+          \file{ot1uni.fd}{\from{universa.dtx}{ot1}}
+          \file{t1uni.fd}{\from{universa.dtx}{t1}}
+          \file{uuni.fd}{\from{universa.dtx}{u}}}
+\usedir{doc/latex/universa}
+\Msg{***********************************************************}
+\Msg{* Generating Documentation files}
+\Msg{***********************************************************}
+\generate{\file{unidoc.sty}{\from{universa.dtx}{docpackage}}
+          \file{copying}{\from{universa.dtx}{copyright}}}
+\usedir{fonts/source/public/universa}
+\Msg{***********************************************************}
+\Msg{* Generating METAFONT base file}
+\Msg{***********************************************************}
+\generate{\file{unibase.mf}{\from{universa.dtx}{unibase}}}
+\usepreamble\short
+\Msg{***********************************************************}
+\Msg{* Generating upright medium driver files}
+\Msg{***********************************************************}
+\generate{\file{fulmr8.mf}{\from{universa.dtx}{font,medium,eight}}
+          \file{fulmr9.mf}{\from{universa.dtx}{font,medium,nine}}
+          \file{fulmr10.mf}{\from{universa.dtx}{font,medium,ten}}
+          \file{fulmr12.mf}{\from{universa.dtx}{font,medium,twelve}}
+          \file{fulmr17.mf}{\from{universa.dtx}{font,medium,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating upright bold face driver files}
+\Msg{***********************************************************}
+\generate{\file{fulbr8.mf}{\from{universa.dtx}{font,bold,eight}}
+          \file{fulbr9.mf}{\from{universa.dtx}{font,bold,nine}}
+          \file{fulbr10.mf}{\from{universa.dtx}{font,bold,ten}}
+          \file{fulbr12.mf}{\from{universa.dtx}{font,bold,twelve}}
+          \file{fulbr17.mf}{\from{universa.dtx}{font,bold,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating slanted medium driver files}
+\Msg{***********************************************************}
+\generate{\file{fulmo8.mf}{\from{universa.dtx}{font,medium,slanted,eight}}
+          \file{fulmo9.mf}{\from{universa.dtx}{font,medium,slanted,nine}}
+          \file{fulmo10.mf}{\from{universa.dtx}{font,medium,slanted,ten}}
+          \file{fulmo12.mf}{\from{universa.dtx}{font,medium,slanted,twelve}}
+          \file{fulmo17.mf}{\from{universa.dtx}{font,medium,slanted,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating small caps medium driver files}
+\Msg{***********************************************************}
+\generate{\file{fulmc8.mf}{\from{universa.dtx}{font,medium,caps,eight}}
+          \file{fulmc9.mf}{\from{universa.dtx}{font,medium,caps,nine}}
+          \file{fulmc10.mf}{\from{universa.dtx}{font,medium,caps,ten}}
+          \file{fulmc12.mf}{\from{universa.dtx}{font,medium,caps,twelve}}
+          \file{fulmc17.mf}{\from{universa.dtx}{font,medium,caps,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating strict medium driver files}
+\Msg{***********************************************************}
+\generate{\file{fulmst8.mf}{\from{universa.dtx}{font,medium,strict,eight}}
+          \file{fulmst9.mf}{\from{universa.dtx}{font,medium,strict,nine}}
+          \file{fulmst10.mf}{\from{universa.dtx}{font,medium,strict,ten}}
+          \file{fulmst12.mf}{\from{universa.dtx}{font,medium,strict,twelve}}
+          \file{fulmst17.mf}{\from{universa.dtx}{font,medium,strict,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating slanted bold face driver files}
+\Msg{***********************************************************}
+\generate{\file{fulbo8.mf}{\from{universa.dtx}{font,bold,slanted,eight}}
+          \file{fulbo9.mf}{\from{universa.dtx}{font,bold,slanted,nine}}
+          \file{fulbo10.mf}{\from{universa.dtx}{font,bold,slanted,ten}}
+          \file{fulbo12.mf}{\from{universa.dtx}{font,bold,slanted,twelve}}
+          \file{fulbo17.mf}{\from{universa.dtx}{font,bold,slanted,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating small caps bold face driver files}
+\Msg{***********************************************************}
+\generate{\file{fulbc8.mf}{\from{universa.dtx}{font,bold,caps,eight}}
+          \file{fulbc9.mf}{\from{universa.dtx}{font,bold,caps,nine}}
+          \file{fulbc10.mf}{\from{universa.dtx}{font,bold,caps,ten}}
+          \file{fulbc12.mf}{\from{universa.dtx}{font,bold,caps,twelve}}
+          \file{fulbc17.mf}{\from{universa.dtx}{font,bold,caps,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating strict bold face driver files}
+\Msg{***********************************************************}
+\generate{\file{fulbst8.mf}{\from{universa.dtx}{font,bold,strict,eight}}
+          \file{fulbst9.mf}{\from{universa.dtx}{font,bold,strict,nine}}
+          \file{fulbst10.mf}{\from{universa.dtx}{font,bold,strict,ten}}
+          \file{fulbst12.mf}{\from{universa.dtx}{font,bold,strict,twelve}}
+          \file{fulbst17.mf}{\from{universa.dtx}{font,bold,strict,seventeen}}}
+\Msg{***********************************************************}
+\Msg{* Generating font program files}
+\Msg{***********************************************************}
+\generate{\file{uniupp.mf}{\from{universa.dtx}{upp}}
+          \file{unilow.mf}{\from{universa.dtx}{low}}
+          \file{unidig.mf}{\from{universa.dtx}{dig}}
+          \file{unispe.mf}{\from{universa.dtx}{spe}}
+          \file{unilig.mf}{\from{universa.dtx}{lig}}
+          \file{unipun.mf}{\from{universa.dtx}{pun}}
+          \file{uniacc.mf}{\from{universa.dtx}{acc}}
+          \file{uniext.mf}{\from{universa.dtx}{ext}}}
+
+\Msg{***********************************************************}
+\Msg{* To finish the installation you have to move the files}
+\Msg{* `uni.sty' `*.fd' into a directory searched by TeX, and}
+\Msg{* the files `*.mf' to a directory searched by Metafont.}
+\Msg{*}
+\Msg{* To produce the documentation do:}
+\Msg{*\space\space latex universa.dtx}
+\Msg{*\space\space latex universa.dtx}
+\Msg{*\space\space makeindex -s gind -o universa.ind universa.idx}
+\Msg{*\space\space makeindex -s gglo -o universa.gls universa.glo}
+\Msg{*\space\space latex universa.dtx}
+\Msg{*\space\space latex universa.dtx}
+\Msg{* or whatever appropiate for your system.}
+\Msg{***********************************************************}
+\endbatchfile

Modified: trunk/Master/texmf-dist/tex/latex/universa/omluni.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/universa/omluni.fd	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/tex/latex/universa/omluni.fd	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `oml')
+%% universa.dtx  (with options: `oml')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,11 +30,12 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
-
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
 \ProvidesFile{omluni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
 \DeclareFontFamily{OML}{uni}{\skewchar\font127 }
 \DeclareFontShape{OML}{uni}{m}{n}{<-> ssub * cmm/m/it}{}
 \DeclareFontShape{OML}{uni}{m}{it}{<-> ssub * cmm/m/it}{}

Modified: trunk/Master/texmf-dist/tex/latex/universa/omsuni.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/universa/omsuni.fd	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/tex/latex/universa/omsuni.fd	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `oms')
+%% universa.dtx  (with options: `oms')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,11 +30,12 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
-
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
 \ProvidesFile{omsuni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
 \DeclareFontFamily{OMS}{uni}{\skewchar\font48 }
 \DeclareFontShape{OMS}{uni}{m}{n}{<-> ssub * cmsy/m/n}{}
 \DeclareFontShape{OMS}{uni}{m}{it}{<-> ssub * cmsy/m/n}{}

Modified: trunk/Master/texmf-dist/tex/latex/universa/ot1uni.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/universa/ot1uni.fd	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/tex/latex/universa/ot1uni.fd	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `ot1')
+%% universa.dtx  (with options: `ot1')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,11 +30,12 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
-
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
 \ProvidesFile{ot1uni.fd}%
-  [1998/08/01 v2.0 Non standard LaTeX font definitions]
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
 \DeclareFontFamily{OT1}{uni}{\hyphenchar\font45 }
 
 \DeclareFontShape{OT1}{uni}{m}{n}{

Modified: trunk/Master/texmf-dist/tex/latex/universa/t1uni.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/universa/t1uni.fd	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/tex/latex/universa/t1uni.fd	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `t1')
+%% universa.dtx  (with options: `t1')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,11 +30,12 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
-
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
 \ProvidesFile{t1uni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
 \typeout{WARNING: universal font not avaliable in t1 definition.}
 \typeout{WARNING: exiting, correct your source.}
 \stop

Modified: trunk/Master/texmf-dist/tex/latex/universa/uni.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/universa/uni.sty	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/tex/latex/universa/uni.sty	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `package')
+%% universa.dtx  (with options: `package')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,18 +30,16 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
-
-\def\fileversion{v2.0}
-\def\filedate{98/08/01}
-\ProvidesPackage{uni}[\filedate\space\fileversion\space universal
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
+\ProvidesPackage{uni}[\unifiledate\space\unifileversion\space universal
                           package.]
 \newif\if at uni\@unifalse
 \newif\ifstri at t\stri at tfalse
 \newif\ifdef at ult\def at ultfalse
 \newif\ifm at dium\m at diumfalse
-
 \DeclareOption{strict}{\stri at ttrue}
 \DeclareOption{default}{\def at ulttrue}
 \DeclareOption{medium}{\m at diumtrue}
@@ -56,7 +54,7 @@
   \@ifundefined{\temp@}{%
     \edef\temp at c{{%
         \noexpand\if at uni\noexpand\aftergroup\temp at a\noexpand%
-        \else\noexpand\UniError{#1}\noexpand\fi}}}{%
+        \else\noexpand\UniError{\noexpand#1}\noexpand\fi}}}{%
     \edef\temp at b{\csname no at uni@\temp@\endcsname}
     \edef\temp at c{{%
       \noexpand\if at uni\noexpand\aftergroup\temp at a\noexpand%

Modified: trunk/Master/texmf-dist/tex/latex/universa/uuni.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/universa/uuni.fd	2019-08-29 15:46:02 UTC (rev 51983)
+++ trunk/Master/texmf-dist/tex/latex/universa/uuni.fd	2019-08-29 22:50:25 UTC (rev 51984)
@@ -4,7 +4,7 @@
 %%
 %% The original source files were:
 %%
-%% uni.dtx  (with options: `u')
+%% universa.dtx  (with options: `u')
 %% 
 %% Copyright (C) 1998 Christian Holm.
 %% 
@@ -13,8 +13,8 @@
 %% form of universal for making modifications to it.
 %% 
 %% Therefore you can NOT redistribute and/or modify THIS file.
-%% You can however redistribute the complete source (uni.dtx
-%% and uni.ins) and/or modify it under the terms of the GNU
+%% You can however redistribute the complete source (universa.dtx
+%% and universa.ins) and/or modify it under the terms of the GNU
 %% General Public License as published by the Free Software
 %% Foundation; either version 2, or (at your option) any later
 %% version.
@@ -30,11 +30,12 @@
 %%   675 Mass Ave, Cambridge,
 %%   MA 02139, USA.
 %% 
-%% See the file uni.dtx for further comments and documentation.
+%% See the file universa.dtx for further comments and documentation.
 %% 
-
+\def\unifileversion{v2.1}
+\def\unifiledate{2019/08/26}
 \ProvidesFile{uuni.fd}
-        [1998/08/01 v2.0 Non Standard LaTeX font definitions]
+  [\unifiledate\space\unifileversion\space Non Standard LaTeX font definitions]
 \DeclareFontFamiliy{U}{uni}{\hyphenchar\font45}
 \DeclareFontShape{U}{uni}{m}{n}{
   <5><6><7><8>fulmr8



More information about the tex-live-commits mailing list