summaryrefslogtreecommitdiff
path: root/fonts/dozenal
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/dozenal
Initial commit
Diffstat (limited to 'fonts/dozenal')
-rw-r--r--fonts/dozenal/CHANGES95
-rw-r--r--fonts/dozenal/README28
-rw-r--r--fonts/dozenal/afm/dozchars10.afm27
-rw-r--r--fonts/dozenal/afm/dozchars12.afm27
-rw-r--r--fonts/dozenal/afm/dozchars17.afm27
-rw-r--r--fonts/dozenal/afm/dozchars6.afm27
-rw-r--r--fonts/dozenal/afm/dozchars7.afm27
-rw-r--r--fonts/dozenal/afm/dozchars8.afm27
-rw-r--r--fonts/dozenal/afm/dozchars9.afm27
-rw-r--r--fonts/dozenal/afm/dozchb10.afm27
-rw-r--r--fonts/dozenal/afm/dozchbx10.afm27
-rw-r--r--fonts/dozenal/afm/dozchbx12.afm27
-rw-r--r--fonts/dozenal/afm/dozchbx5.afm335
-rw-r--r--fonts/dozenal/afm/dozchbx6.afm27
-rw-r--r--fonts/dozenal/afm/dozchbx7.afm27
-rw-r--r--fonts/dozenal/afm/dozchbx8.afm27
-rw-r--r--fonts/dozenal/afm/dozchbx9.afm27
-rw-r--r--fonts/dozenal/afm/dozchbxi10.afm27
-rw-r--r--fonts/dozenal/afm/dozchbxsl10.afm27
-rw-r--r--fonts/dozenal/afm/dozchit10.afm27
-rw-r--r--fonts/dozenal/afm/dozchit12.afm27
-rw-r--r--fonts/dozenal/afm/dozchit7.afm27
-rw-r--r--fonts/dozenal/afm/dozchit8.afm27
-rw-r--r--fonts/dozenal/afm/dozchit9.afm27
-rw-r--r--fonts/dozenal/afm/dozchsl10.afm27
-rw-r--r--fonts/dozenal/afm/dozchsl12.afm27
-rw-r--r--fonts/dozenal/afm/dozchsl8.afm27
-rw-r--r--fonts/dozenal/afm/dozchsl9.afm27
-rw-r--r--fonts/dozenal/doc/dozenal.pdfbin0 -> 303416 bytes
-rw-r--r--fonts/dozenal/dozenal.dtx1187
-rw-r--r--fonts/dozenal/dozenal.ins63
-rw-r--r--fonts/dozenal/dozenalfilelist.txt119
-rw-r--r--fonts/dozenal/lppl.txt416
-rw-r--r--fonts/dozenal/map/dozenal.map26
-rw-r--r--fonts/dozenal/mf/dozchars10.mf71
-rw-r--r--fonts/dozenal/mf/dozchars12.mf72
-rw-r--r--fonts/dozenal/mf/dozchars17.mf72
-rw-r--r--fonts/dozenal/mf/dozchars6.mf72
-rw-r--r--fonts/dozenal/mf/dozchars7.mf72
-rw-r--r--fonts/dozenal/mf/dozchars8.mf72
-rw-r--r--fonts/dozenal/mf/dozchars9.mf72
-rw-r--r--fonts/dozenal/mf/dozchb10.mf73
-rw-r--r--fonts/dozenal/mf/dozchbx10.mf73
-rw-r--r--fonts/dozenal/mf/dozchbx12.mf73
-rw-r--r--fonts/dozenal/mf/dozchbx5.mf78
-rw-r--r--fonts/dozenal/mf/dozchbx6.mf73
-rw-r--r--fonts/dozenal/mf/dozchbx7.mf73
-rw-r--r--fonts/dozenal/mf/dozchbx8.mf73
-rw-r--r--fonts/dozenal/mf/dozchbx9.mf74
-rw-r--r--fonts/dozenal/mf/dozchbxi10.mf83
-rw-r--r--fonts/dozenal/mf/dozchbxsl10.mf75
-rw-r--r--fonts/dozenal/mf/dozchit10.mf75
-rw-r--r--fonts/dozenal/mf/dozchit12.mf75
-rw-r--r--fonts/dozenal/mf/dozchit7.mf75
-rw-r--r--fonts/dozenal/mf/dozchit8.mf75
-rw-r--r--fonts/dozenal/mf/dozchit9.mf75
-rw-r--r--fonts/dozenal/mf/dozchsl10.mf76
-rw-r--r--fonts/dozenal/mf/dozchsl12.mf76
-rw-r--r--fonts/dozenal/mf/dozchsl8.mf76
-rw-r--r--fonts/dozenal/mf/dozchsl9.mf76
-rw-r--r--fonts/dozenal/mf/dozenal.mf149
-rw-r--r--fonts/dozenal/mf/dozenalb.mf149
-rw-r--r--fonts/dozenal/mf/dozenali.mf299
-rw-r--r--fonts/dozenal/mf/dozenalitalic.mf6
-rw-r--r--fonts/dozenal/mf/dozenalroman.mf7
-rw-r--r--fonts/dozenal/tfm/dozchars10.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchars12.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchars17.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchars6.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchars7.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchars8.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchars9.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchb10.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx10.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx12.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx5.tfmbin0 -> 1268 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx6.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx7.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx8.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbx9.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbxi10.tfmbin0 -> 252 bytes
-rw-r--r--fonts/dozenal/tfm/dozchbxsl10.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchit10.tfmbin0 -> 252 bytes
-rw-r--r--fonts/dozenal/tfm/dozchit12.tfmbin0 -> 252 bytes
-rw-r--r--fonts/dozenal/tfm/dozchit7.tfmbin0 -> 252 bytes
-rw-r--r--fonts/dozenal/tfm/dozchit8.tfmbin0 -> 252 bytes
-rw-r--r--fonts/dozenal/tfm/dozchit9.tfmbin0 -> 252 bytes
-rw-r--r--fonts/dozenal/tfm/dozchsl10.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchsl12.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchsl8.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/dozchsl9.tfmbin0 -> 248 bytes
-rw-r--r--fonts/dozenal/tfm/gray.tfmbin0 -> 640 bytes
-rw-r--r--fonts/dozenal/type1/dozchars10.pfbbin0 -> 3646 bytes
-rw-r--r--fonts/dozenal/type1/dozchars12.pfbbin0 -> 8417 bytes
-rw-r--r--fonts/dozenal/type1/dozchars17.pfbbin0 -> 8441 bytes
-rw-r--r--fonts/dozenal/type1/dozchars6.pfbbin0 -> 8556 bytes
-rw-r--r--fonts/dozenal/type1/dozchars7.pfbbin0 -> 8486 bytes
-rw-r--r--fonts/dozenal/type1/dozchars8.pfbbin0 -> 8475 bytes
-rw-r--r--fonts/dozenal/type1/dozchars9.pfbbin0 -> 8484 bytes
-rw-r--r--fonts/dozenal/type1/dozchb10.pfbbin0 -> 8457 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx10.pfbbin0 -> 8598 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx12.pfbbin0 -> 8395 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx5.pfbbin0 -> 40067 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx6.pfbbin0 -> 8552 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx7.pfbbin0 -> 8514 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx8.pfbbin0 -> 8461 bytes
-rw-r--r--fonts/dozenal/type1/dozchbx9.pfbbin0 -> 8563 bytes
-rw-r--r--fonts/dozenal/type1/dozchbxi10.pfbbin0 -> 9867 bytes
-rw-r--r--fonts/dozenal/type1/dozchbxsl10.pfbbin0 -> 8758 bytes
-rw-r--r--fonts/dozenal/type1/dozchit10.pfbbin0 -> 5097 bytes
-rw-r--r--fonts/dozenal/type1/dozchit12.pfbbin0 -> 9973 bytes
-rw-r--r--fonts/dozenal/type1/dozchit7.pfbbin0 -> 5029 bytes
-rw-r--r--fonts/dozenal/type1/dozchit8.pfbbin0 -> 10001 bytes
-rw-r--r--fonts/dozenal/type1/dozchit9.pfbbin0 -> 5043 bytes
-rw-r--r--fonts/dozenal/type1/dozchsl10.pfbbin0 -> 8728 bytes
-rw-r--r--fonts/dozenal/type1/dozchsl12.pfbbin0 -> 8661 bytes
-rw-r--r--fonts/dozenal/type1/dozchsl8.pfbbin0 -> 8694 bytes
-rw-r--r--fonts/dozenal/type1/dozchsl9.pfbbin0 -> 3901 bytes
118 files changed, 5484 insertions, 0 deletions
diff --git a/fonts/dozenal/CHANGES b/fonts/dozenal/CHANGES
new file mode 100644
index 0000000000..a1d54a0e59
--- /dev/null
+++ b/fonts/dozenal/CHANGES
@@ -0,0 +1,95 @@
+For version 7.2, wrapped both \x and \e in \unexpanded, so
+that dozenal would play nicely with the texdate package.
+
+For version 7.1, I finally realized that lualatex will choke
+on the dozenal package, because it calls \pdfmapfile. I
+realized this because I finally started using lualatex
+regularly. This was fixed by requiring ifluatex and
+defining \pdfmapfile if luatex is being used. Submitted to
+CTAN on 1 July 1201 (1 July 2017).
+
+For version 7.0, added the "\doman" and "\Doman" macros for
+dozenal-style Roman numerals. Also reorganized the
+documentation. Submitted to CTAN on 25 Nov 1200 (29 Nov
+2016).
+
+For version 6.0, added the "\doznumtowords" macro, which
+will take a counter and output it in dozenal words. Which
+words it uses can be customized; I have made no attempt to
+internationalize this will different languages, because I
+haven't the foggiest how to do so other than simply writing
+option packs with different definitions in them. Also did a
+complete rewrite of |\basex|, so its workings are now
+(almost) comprehensible. Finally, darkened the tally marks
+and put in hand-written italic shapes.
+
+For version 5.3, removed a conflict with another package
+that defined an "\X" and "\E" command by adding a "doz@"
+prefix to these. Also made the tally marks work with the
+Type1 fonts.
+
+For version 5.2, removed some contradiction in the code about
+version numbers. Completely redid the conversions to Type1
+fonts, so now they work consistently. Did away with the
+"fdz" prefix for these. Substantially reworked the
+documentation.
+
+For version 5.1, and four files had CRLF line endings; also,
+the version was incorrectly reported in the \ProvidesPackage
+line. These problems are now fixed.
+
+For version 5.0, the documentation and code structure was
+substantially cleansed, and a git repository was created for
+the package. I've also added the appropriate fontdimens to
+the font files, so that microtype won't complain about them.
+Finally, I've added \basex, a macro which will convert
+dozenal numbers to base X, but doesn't work on counters,
+which is frustrating.
+
+For version 4.0, I've included the tally mark characters, as
+well, for whatever they may be worth. The documentation
+also now contains examples of the characters. Finally,
+there's also an option to make available the dozenal
+characters without dozenalizing every counter. Submitted to
+CTAN on 17 May 11E9 (decimal 19 May 2013).
+
+For version 3.3, I was kindly notified by Karl Berry that
+the Type 1 italic TFM wasn't properly formed; I switched
+from mftrace to mf2pt1 for converting from Metafont, and
+this seems to have resolved the problem. Submitted to CTAN
+on 3 Nov 11E8 (decimal 2012).
+
+For version 3.2, I've made minor changes because a new
+version of hyperref for some reason seemed to break things,
+for reasons that aren't really clear to me. Submitted to
+CTAN on 13 May 2012.
+
+For version 3.1, I've updated things to allow TeXLive to
+install the package correctly automatically; previously,
+some manual work was required. This was essentially just
+adding a \pdfmapfile statement to dozenal.sty. Submitted to
+CTAN on 25 November 2009.
+
+For version 3.0, I was kindly informed that my \x was
+actually a backwards Pitman ten; so I fixed that, which
+included redrawing the italics font (the rest were simply
+mirrored). Also, made the version numbers "real" by
+including them in the \ProvidesPackage command; thanks to
+Robin Fairbairns for telling me to.
+
+For version 2.0, Type 1 versions of the fonts were uploaded.
+Some trouble with the normal weight italic, which is
+therefore replaced with the simple slanted version. Was
+annoyed at having to do this at all; only did it because
+acroread is terrible and won't display bitmap fonts
+properly. Submitted to CTAN on 2 July 2009.
+
+For version 1.3, \mainmatter's slaughter of the dozenal
+counter redefinitions was stopped. Submitted to CTAN on 20
+June 2009.
+
+For version 1.2, support for using dozenal characters in
+math mode was added. Submitted to CTAN on 6 June 2009.
+
+For version 1.1, minor bugs, in which section and subsection
+numbers were not properly redefined, have been fixed.
diff --git a/fonts/dozenal/README b/fonts/dozenal/README
new file mode 100644
index 0000000000..fd888ca4ea
--- /dev/null
+++ b/fonts/dozenal/README
@@ -0,0 +1,28 @@
++AMDG
+
+This document is copyright 2009-2018 by Donald P. Goodman, and is
+released publicly under the LaTeX Project Public License. The
+distribution and modification of this work is constrained by the
+conditions of that license. See
+ http://www.latex-project.org/lppl.txt
+for the text of the license. This document is released
+under version 1.3 of that license, and this work may be distributed
+or modified under the terms of that license or, at your option, any
+later version.
+
+This work has the LPPL maintenance status 'maintained'.
+
+The Current Maintainer of this work is Donald P. Goodman
+(dgoodmaniii@gmail.com).
+
+This work consists of the files listed in
+dozenalfilelist.txt.
+
+dozenal provides macros and characters in a variety of
+styles and sizes, designed to blend with the Computer Modern
+family, for typesetting dozenal documents. It employs the
+\basexii algorithm by David Kastrup.
+
+This document should run properly on any properly running
+LaTeX system. It's been tested specifically with TeXLive on
+Linux.
diff --git a/fonts/dozenal/afm/dozchars10.afm b/fonts/dozenal/afm/dozchars10.afm
new file mode 100644
index 0000000000..8443a67686
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:11 2015
+FontName dozchars10
+FullName dozchars10
+FamilyName dozchars10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 3 -42 641 687
+CapHeight 655
+StartCharMetrics 8
+C 49 ; WX 500 ; N one ; B 231 -42 270 686 ;
+C 50 ; WX 700 ; N two ; B 3 -42 641 686 ;
+C 51 ; WX 700 ; N three ; B 36 -42 641 687 ;
+C 52 ; WX 700 ; N four ; B 36 -42 641 686 ;
+C 53 ; WX 700 ; N five ; B 36 -42 641 686 ;
+C 54 ; WX 700 ; N six ; B 36 -42 641 686 ;
+C 69 ; WX 500 ; N E ; B 32 -22 446 666 ;
+C 88 ; WX 500 ; N X ; B 53 -22 445 655 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchars12.afm b/fonts/dozenal/afm/dozchars12.afm
new file mode 100644
index 0000000000..417e999ae4
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars12.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:13 2015
+FontName dozchars12
+FullName dozchars12
+FamilyName dozchars12
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 2 -40 642 684
+CapHeight 654
+StartCharMetrics 8
+C 49 ; WX 490 ; N one ; B 226 -40 264 684 ;
+C 50 ; WX 699 ; N two ; B 2 -40 642 684 ;
+C 51 ; WX 699 ; N three ; B 35 -40 642 684 ;
+C 52 ; WX 699 ; N four ; B 35 -40 642 684 ;
+C 53 ; WX 699 ; N five ; B 35 -40 642 684 ;
+C 54 ; WX 699 ; N six ; B 35 -40 642 684 ;
+C 69 ; WX 490 ; N E ; B 33 -21 437 665 ;
+C 88 ; WX 490 ; N X ; B 52 -21 436 654 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchars17.afm b/fonts/dozenal/afm/dozchars17.afm
new file mode 100644
index 0000000000..aa46f1a481
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars17.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:15 2015
+FontName dozchars17
+FullName dozchars17
+FamilyName dozchars17
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -2 -35 647 681
+CapHeight 653
+StartCharMetrics 8
+C 49 ; WX 470 ; N one ; B 217 -35 254 680 ;
+C 50 ; WX 697 ; N two ; B -2 -35 647 680 ;
+C 51 ; WX 697 ; N three ; B 34 -35 647 681 ;
+C 52 ; WX 697 ; N four ; B 34 -35 647 680 ;
+C 53 ; WX 697 ; N five ; B 34 -35 647 680 ;
+C 54 ; WX 697 ; N six ; B 34 -35 647 680 ;
+C 69 ; WX 470 ; N E ; B 36 -16 422 661 ;
+C 88 ; WX 470 ; N X ; B 51 -17 418 653 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchars6.afm b/fonts/dozenal/afm/dozchars6.afm
new file mode 100644
index 0000000000..6b2a5b5a92
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars6.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:17 2015
+FontName dozchars6
+FullName dozchars6
+FamilyName dozchars6
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -2 -44 646 689
+CapHeight 654
+StartCharMetrics 8
+C 49 ; WX 583 ; N one ; B 269 -44 315 688 ;
+C 50 ; WX 709 ; N two ; B -2 -44 646 688 ;
+C 51 ; WX 709 ; N three ; B 42 -44 646 689 ;
+C 52 ; WX 709 ; N four ; B 42 -44 646 688 ;
+C 53 ; WX 709 ; N five ; B 42 -44 646 688 ;
+C 54 ; WX 709 ; N six ; B 42 -44 646 688 ;
+C 69 ; WX 583 ; N E ; B 44 -21 519 665 ;
+C 88 ; WX 583 ; N X ; B 63 -21 518 654 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchars7.afm b/fonts/dozenal/afm/dozchars7.afm
new file mode 100644
index 0000000000..d09168bd89
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars7.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:19 2015
+FontName dozchars7
+FullName dozchars7
+FamilyName dozchars7
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -2 -41 646 685
+CapHeight 654
+StartCharMetrics 8
+C 49 ; WX 554 ; N one ; B 256 -41 299 685 ;
+C 50 ; WX 706 ; N two ; B -2 -41 646 685 ;
+C 51 ; WX 706 ; N three ; B 40 -41 646 685 ;
+C 52 ; WX 706 ; N four ; B 40 -41 646 685 ;
+C 53 ; WX 706 ; N five ; B 40 -41 646 685 ;
+C 54 ; WX 706 ; N six ; B 40 -41 646 685 ;
+C 69 ; WX 554 ; N E ; B 41 -20 493 664 ;
+C 88 ; WX 554 ; N X ; B 61 -20 492 654 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchars8.afm b/fonts/dozenal/afm/dozchars8.afm
new file mode 100644
index 0000000000..51ed68a48a
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars8.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:21 2015
+FontName dozchars8
+FullName dozchars8
+FamilyName dozchars8
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 0 -42 644 687
+CapHeight 654
+StartCharMetrics 8
+C 49 ; WX 531 ; N one ; B 245 -42 287 686 ;
+C 50 ; WX 703 ; N two ; B 0 -42 644 686 ;
+C 51 ; WX 703 ; N three ; B 38 -42 644 687 ;
+C 52 ; WX 703 ; N four ; B 38 -42 644 686 ;
+C 53 ; WX 703 ; N five ; B 38 -42 644 686 ;
+C 54 ; WX 703 ; N six ; B 38 -42 644 686 ;
+C 69 ; WX 531 ; N E ; B 37 -21 473 665 ;
+C 88 ; WX 531 ; N X ; B 57 -21 472 654 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchars9.afm b/fonts/dozenal/afm/dozchars9.afm
new file mode 100644
index 0000000000..b8929fd94e
--- /dev/null
+++ b/fonts/dozenal/afm/dozchars9.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:23 2015
+FontName dozchars9
+FullName dozchars9
+FamilyName dozchars9
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 2 -42 642 686
+CapHeight 655
+StartCharMetrics 8
+C 49 ; WX 514 ; N one ; B 237 -42 277 686 ;
+C 50 ; WX 702 ; N two ; B 2 -42 642 686 ;
+C 51 ; WX 702 ; N three ; B 37 -42 642 686 ;
+C 52 ; WX 702 ; N four ; B 37 -42 642 686 ;
+C 53 ; WX 702 ; N five ; B 37 -42 642 686 ;
+C 54 ; WX 702 ; N six ; B 37 -42 642 686 ;
+C 69 ; WX 514 ; N E ; B 34 -21 457 666 ;
+C 88 ; WX 514 ; N X ; B 55 -23 457 655 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchb10.afm b/fonts/dozenal/afm/dozchb10.afm
new file mode 100644
index 0000000000..3fee446f25
--- /dev/null
+++ b/fonts/dozenal/afm/dozchb10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:25 2015
+FontName dozchb10
+FullName dozchb10
+FamilyName dozchb10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 8 -14 636 658
+CapHeight 650
+StartCharMetrics 8
+C 49 ; WX 500 ; N one ; B 247 -14 253 658 ;
+C 50 ; WX 700 ; N two ; B 8 -14 636 658 ;
+C 51 ; WX 700 ; N three ; B 53 -14 636 658 ;
+C 52 ; WX 700 ; N four ; B 53 -14 636 658 ;
+C 53 ; WX 700 ; N five ; B 53 -14 636 658 ;
+C 54 ; WX 700 ; N six ; B 53 -14 636 658 ;
+C 69 ; WX 500 ; N E ; B 43 -11 447 655 ;
+C 88 ; WX 500 ; N X ; B 54 -12 444 650 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx10.afm b/fonts/dozenal/afm/dozchbx10.afm
new file mode 100644
index 0000000000..2a24f2aa93
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:28 2015
+FontName dozchbx10
+FullName dozchbx10
+FamilyName dozchbx10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 8 -14 636 658
+CapHeight 650
+StartCharMetrics 8
+C 49 ; WX 575 ; N one ; B 285 -14 291 658 ;
+C 50 ; WX 708 ; N two ; B 8 -14 636 658 ;
+C 51 ; WX 708 ; N three ; B 61 -14 636 658 ;
+C 52 ; WX 708 ; N four ; B 61 -14 636 658 ;
+C 53 ; WX 708 ; N five ; B 61 -14 636 658 ;
+C 54 ; WX 708 ; N six ; B 61 -14 636 658 ;
+C 69 ; WX 575 ; N E ; B 53 -11 514 655 ;
+C 88 ; WX 575 ; N X ; B 62 -11 511 650 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx12.afm b/fonts/dozenal/afm/dozchbx12.afm
new file mode 100644
index 0000000000..9907c99624
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx12.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:30 2015
+FontName dozchbx12
+FullName dozchbx12
+FamilyName dozchbx12
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 9 -15 635 659
+CapHeight 650
+StartCharMetrics 8
+C 49 ; WX 563 ; N one ; B 279 -15 285 659 ;
+C 50 ; WX 707 ; N two ; B 9 -15 635 659 ;
+C 51 ; WX 707 ; N three ; B 60 -15 635 659 ;
+C 52 ; WX 707 ; N four ; B 60 -15 635 659 ;
+C 53 ; WX 707 ; N five ; B 60 -15 635 659 ;
+C 54 ; WX 707 ; N six ; B 60 -15 635 659 ;
+C 69 ; WX 563 ; N E ; B 50 -12 502 656 ;
+C 88 ; WX 563 ; N X ; B 61 -12 500 650 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx5.afm b/fonts/dozenal/afm/dozchbx5.afm
new file mode 100644
index 0000000000..5da756cc0f
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx5.afm
@@ -0,0 +1,335 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:42 2015
+FontName dozchbx5
+FullName dozchbx5
+FamilyName dozchbx5
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -41 -250 1483 755
+CapHeight 686
+XHeight 444
+Ascender 694
+Descender -194
+StartCharMetrics 128
+C 0 ; WX 897 ; N grave ; B 92 0 820 678 ;
+C 1 ; WX 1242 ; N acute ; B 90 0 1152 711 ;
+C 2 ; WX 1161 ; N circumflex ; B 97 -18 1064 703 ;
+C 3 ; WX 1033 ; N tilde ; B 70 0 963 712 ;
+C 4 ; WX 1000 ; N dieresis ; B 77 0 923 669 ;
+C 5 ; WX 1153 ; N hungarumlaut ; B 92 0 1061 678 ;
+C 6 ; WX 1081 ; N ring ; B 98 0 983 686 ;
+C 7 ; WX 1161 ; N caron ; B 98 0 1063 703 ;
+C 8 ; WX 1081 ; N breve ; B 98 0 983 686 ;
+C 9 ; WX 1161 ; N macron ; B 97 0 1064 686 ;
+C 10 ; WX 1081 ; N dotaccent ; B 81 -1 1000 704 ;
+C 11 ; WX 912 ; N cedilla ; B 56 0 984 702 ; L l guilsinglright ; L i guilsinglleft ;
+C 12 ; WX 872 ; N ogonek ; B 56 0 789 702 ;
+C 13 ; WX 872 ; N quotesinglbase ; B 56 0 789 702 ;
+C 14 ; WX 1308 ; N guilsinglleft ; B 56 0 1225 702 ;
+C 15 ; WX 1308 ; N guilsinglright ; B 56 0 1225 703 ;
+C 16 ; WX 436 ; N quotedblleft ; B 100 0 363 452 ;
+C 17 ; WX 476 ; N quotedblright ; B -41 -202 354 452 ;
+C 18 ; WX 758 ; N quotedblbase ; B 169 507 441 700 ;
+C 19 ; WX 758 ; N guillemotleft ; B 317 507 589 700 ;
+C 20 ; WX 758 ; N guillemotright ; B 184 512 574 671 ;
+C 21 ; WX 758 ; N endash ; B 149 511 609 694 ;
+C 22 ; WX 758 ; N emdash ; B 118 561 640 633 ;
+C 23 ; WX 1114 ; N cwm ; B 396 543 718 711 ;
+C 24 ; WX 678 ; N perthousand ; B 192 -215 567 -9 ;
+C 25 ; WX 762 ; N dotlessi ; B 83 -7 704 703 ;
+C 26 ; WX 1081 ; N dotlessj ; B 70 -8 1024 457 ;
+C 27 ; WX 1161 ; N ff ; B 56 -8 1104 456 ;
+C 28 ; WX 758 ; N fi ; B 57 -114 702 559 ;
+C 29 ; WX 1339 ; N fl ; B 71 0 1282 686 ;
+C 30 ; WX 1500 ; N ffi ; B 114 -17 1443 703 ;
+C 31 ; WX 1161 ; N ffl ; B 97 -69 1064 755 ;
+C 32 ; WX 436 ; N space ; B 49 267 420 399 ;
+C 33 ; WX 475 ; N exclam ; B 151 0 324 712 ; L quoteleft less ;
+C 34 ; WX 769 ; N quotedbl ; B 66 327 551 694 ;
+C 35 ; WX 1242 ; N numbersign ; B 97 -195 1144 694 ;
+C 36 ; WX 758 ; N dollar ; B 96 -56 661 750 ;
+C 37 ; WX 1242 ; N percent ; B 97 -56 1144 750 ;
+C 38 ; WX 1161 ; N ampersand ; B 77 -18 1072 711 ;
+C 39 ; WX 436 ; N quoteright ; B 133 326 324 694 ; L quoteright quotedbl ;
+C 40 ; WX 597 ; N parenleft ; B 150 -250 501 750 ;
+C 41 ; WX 597 ; N parenright ; B 96 -250 447 750 ;
+C 42 ; WX 758 ; N asterisk ; B 112 306 646 750 ;
+C 43 ; WX 1161 ; N plus ; B 97 -233 1064 734 ;
+C 44 ; WX 436 ; N comma ; B 133 -195 322 173 ;
+C 45 ; WX 517 ; N hyphen ; B 33 162 420 283 ; L hyphen braceleft ;
+C 46 ; WX 436 ; N period ; B 132 0 305 173 ;
+C 47 ; WX 758 ; N slash ; B 97 -250 662 750 ;
+C 48 ; WX 758 ; N zero ; B 73 -17 685 661 ;
+C 49 ; WX 758 ; N one ; B 136 0 640 661 ;
+C 50 ; WX 758 ; N two ; B 89 0 669 661 ;
+C 51 ; WX 758 ; N three ; B 76 -17 681 661 ;
+C 52 ; WX 758 ; N four ; B 57 0 701 669 ;
+C 53 ; WX 758 ; N five ; B 89 -18 669 662 ;
+C 54 ; WX 758 ; N six ; B 77 -18 682 661 ;
+C 55 ; WX 758 ; N seven ; B 97 -17 721 667 ;
+C 56 ; WX 758 ; N eight ; B 78 -17 681 661 ;
+C 57 ; WX 758 ; N nine ; B 77 -18 680 661 ;
+C 58 ; WX 436 ; N colon ; B 132 0 305 444 ;
+C 59 ; WX 436 ; N semicolon ; B 132 -194 310 444 ;
+C 60 ; WX 475 ; N less ; B 151 -211 324 500 ;
+C 61 ; WX 1161 ; N equal ; B 96 72 1065 428 ;
+C 62 ; WX 718 ; N greater ; B 98 -203 621 500 ;
+C 63 ; WX 718 ; N question ; B 98 0 621 702 ; L quoteleft greater ;
+C 64 ; WX 1161 ; N at ; B 97 -9 1064 702 ;
+C 65 ; WX 1114 ; N A ; B 72 0 1042 711 ;
+C 66 ; WX 1057 ; N B ; B 100 0 960 686 ;
+C 67 ; WX 1081 ; N C ; B 98 -17 983 703 ;
+C 68 ; WX 1137 ; N D ; B 96 0 1040 686 ;
+C 69 ; WX 978 ; N E ; B 92 0 921 678 ;
+C 70 ; WX 937 ; N F ; B 92 0 860 678 ;
+C 71 ; WX 1169 ; N G ; B 97 -17 1084 703 ;
+C 72 ; WX 1153 ; N H ; B 92 0 1061 686 ;
+C 73 ; WX 550 ; N I ; B 86 0 465 686 ;
+C 74 ; WX 775 ; N J ; B 63 -17 659 686 ;
+C 75 ; WX 1154 ; N K ; B 92 0 1076 686 ;
+C 76 ; WX 897 ; N L ; B 92 0 820 686 ;
+C 77 ; WX 1394 ; N M ; B 104 0 1290 686 ;
+C 78 ; WX 1153 ; N N ; B 92 0 1061 686 ;
+C 79 ; WX 1122 ; N O ; B 97 -17 1025 703 ;
+C 80 ; WX 1017 ; N P ; B 96 0 920 686 ;
+C 81 ; WX 1122 ; N Q ; B 97 -195 1033 703 ;
+C 82 ; WX 1103 ; N R ; B 96 -17 1082 686 ;
+C 83 ; WX 839 ; N S ; B 97 -17 743 703 ;
+C 84 ; WX 1042 ; N T ; B 69 0 973 669 ;
+C 85 ; WX 1133 ; N U ; B 92 -17 1041 686 ;
+C 86 ; WX 1114 ; N V ; B 53 -18 1061 686 ;
+C 87 ; WX 1517 ; N W ; B 50 -17 1467 686 ;
+C 88 ; WX 1114 ; N X ; B 71 0 1043 686 ;
+C 89 ; WX 1114 ; N Y ; B 53 0 1061 686 ;
+C 90 ; WX 919 ; N Z ; B 98 0 830 686 ;
+C 91 ; WX 439 ; N bracketleft ; B 174 -250 390 750 ;
+C 92 ; WX 769 ; N backslash ; B 218 328 703 694 ;
+C 93 ; WX 439 ; N bracketright ; B 49 -250 265 750 ;
+C 94 ; WX 758 ; N asciicircum ; B 179 506 580 694 ;
+C 95 ; WX 436 ; N underscore ; B 132 530 304 696 ;
+C 96 ; WX 436 ; N quoteleft ; B 113 328 304 695 ; L quoteleft backslash ;
+C 97 ; WX 738 ; N a ; B 62 -8 721 456 ;
+C 98 ; WX 839 ; N b ; B 83 -8 774 694 ;
+C 99 ; WX 678 ; N c ; B 65 -7 621 456 ;
+C 100 ; WX 839 ; N d ; B 65 -9 756 694 ;
+C 101 ; WX 692 ; N e ; B 57 -8 634 456 ;
+C 102 ; WX 476 ; N f ; B 73 0 565 702 ; L l quotesinglbase ; L i ogonek ; L f cedilla ;
+C 103 ; WX 758 ; N g ; B 56 -203 721 461 ;
+C 104 ; WX 839 ; N h ; B 96 0 777 694 ;
+C 105 ; WX 436 ; N i ; B 100 0 363 695 ;
+C 106 ; WX 476 ; N j ; B -41 -202 354 695 ;
+C 107 ; WX 799 ; N k ; B 83 0 758 694 ;
+C 108 ; WX 436 ; N l ; B 100 0 370 694 ;
+C 109 ; WX 1242 ; N m ; B 96 0 1180 453 ;
+C 110 ; WX 839 ; N n ; B 96 0 777 453 ;
+C 111 ; WX 758 ; N o ; B 57 -8 702 456 ;
+C 112 ; WX 839 ; N p ; B 83 -194 775 453 ;
+C 113 ; WX 799 ; N q ; B 65 -194 756 452 ;
+C 114 ; WX 622 ; N r ; B 83 0 565 452 ;
+C 115 ; WX 605 ; N s ; B 65 -9 540 456 ;
+C 116 ; WX 597 ; N t ; B 44 -9 500 635 ;
+C 117 ; WX 839 ; N u ; B 96 -8 777 452 ;
+C 118 ; WX 799 ; N v ; B 53 -8 746 444 ;
+C 119 ; WX 1081 ; N w ; B 50 -8 1031 444 ;
+C 120 ; WX 799 ; N x ; B 58 0 741 444 ;
+C 121 ; WX 799 ; N y ; B 45 -203 745 444 ;
+C 122 ; WX 678 ; N z ; B 58 0 601 444 ;
+C 123 ; WX 758 ; N braceleft ; B 17 246 741 303 ; L hyphen bar ;
+C 124 ; WX 1517 ; N bar ; B 34 246 1483 303 ;
+C 125 ; WX 758 ; N braceright ; B 191 514 634 707 ;
+C 126 ; WX 758 ; N asciitilde ; B 138 536 620 694 ;
+C 127 ; WX 758 ; N sfthyphen ; B 160 540 598 696 ;
+EndCharMetrics
+StartKernData
+StartKernPairs 181
+KPX cedilla bracketright 130
+KPX cedilla parenright 130
+KPX cedilla exclam 130
+KPX cedilla question 130
+KPX cedilla quoteright 130
+KPX space L -493
+KPX space l -436
+KPX quoteright exclam 161
+KPX quoteright question 161
+KPX A W -161
+KPX A V -161
+KPX A Y -121
+KPX A T -121
+KPX A Q -40
+KPX A U -40
+KPX A G -40
+KPX A O -40
+KPX A C -40
+KPX A t -40
+KPX D Y -40
+KPX D V -40
+KPX D A -40
+KPX D W -40
+KPX D X -40
+KPX F Q -40
+KPX F G -40
+KPX F C -40
+KPX F O -40
+KPX F A -161
+KPX F a -121
+KPX F r -121
+KPX F u -121
+KPX F e -121
+KPX F o -121
+KPX I I 40
+KPX K Q -40
+KPX K G -40
+KPX K C -40
+KPX K O -40
+KPX L W -161
+KPX L V -161
+KPX L Y -121
+KPX L T -121
+KPX O Y -40
+KPX O V -40
+KPX O A -40
+KPX O W -40
+KPX O X -40
+KPX P comma -121
+KPX P period -121
+KPX P a -40
+KPX P e -40
+KPX P o -40
+KPX P A -121
+KPX R W -161
+KPX R V -161
+KPX R Y -121
+KPX R T -121
+KPX R Q -40
+KPX R U -40
+KPX R G -40
+KPX R O -40
+KPX R C -40
+KPX R t -40
+KPX T u -121
+KPX T A -121
+KPX T a -121
+KPX T r -121
+KPX T o -121
+KPX T e -121
+KPX T y -40
+KPX V Q -40
+KPX V G -40
+KPX V C -40
+KPX V O -40
+KPX V A -161
+KPX V a -121
+KPX V r -121
+KPX V u -121
+KPX V e -121
+KPX V o -121
+KPX W Q -40
+KPX W G -40
+KPX W C -40
+KPX W O -40
+KPX W A -161
+KPX W a -121
+KPX W r -121
+KPX W u -121
+KPX W e -121
+KPX W o -121
+KPX X Q -40
+KPX X G -40
+KPX X C -40
+KPX X O -40
+KPX Y u -121
+KPX Y A -121
+KPX Y a -121
+KPX Y r -121
+KPX Y o -121
+KPX Y e -121
+KPX a w -40
+KPX a y -40
+KPX a j 81
+KPX a v -40
+KPX b w -40
+KPX b y -40
+KPX b j 81
+KPX b v -40
+KPX b q 40
+KPX b c 40
+KPX b d 40
+KPX b x -40
+KPX b o 40
+KPX b e 40
+KPX c k -40
+KPX c h -40
+KPX f bracketright 130
+KPX f parenright 130
+KPX f exclam 130
+KPX f question 130
+KPX f quoteright 130
+KPX g j 40
+KPX h w -40
+KPX h v -40
+KPX h y -40
+KPX h b -40
+KPX h u -40
+KPX h t -40
+KPX k c -40
+KPX k o -40
+KPX k e -40
+KPX k a -40
+KPX m w -40
+KPX m v -40
+KPX m y -40
+KPX m b -40
+KPX m u -40
+KPX m t -40
+KPX n w -40
+KPX n v -40
+KPX n y -40
+KPX n b -40
+KPX n u -40
+KPX n t -40
+KPX o w -40
+KPX o y -40
+KPX o j 81
+KPX o v -40
+KPX o q 40
+KPX o c 40
+KPX o d 40
+KPX o x -40
+KPX o o 40
+KPX o e 40
+KPX p w -40
+KPX p y -40
+KPX p j 81
+KPX p v -40
+KPX p q 40
+KPX p c 40
+KPX p d 40
+KPX p x -40
+KPX p o 40
+KPX p e 40
+KPX t w -40
+KPX t y -40
+KPX u w -40
+KPX v c -40
+KPX v o -40
+KPX v e -40
+KPX v a -40
+KPX w c -40
+KPX w o -40
+KPX w a -40
+KPX w e -40
+KPX y comma -121
+KPX y period -121
+KPX y a -40
+KPX y e -40
+KPX y o -40
+EndKernPairs
+EndKernData
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx6.afm b/fonts/dozenal/afm/dozchbx6.afm
new file mode 100644
index 0000000000..13d69e34da
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx6.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:44 2015
+FontName dozchbx6
+FullName dozchbx6
+FamilyName dozchbx6
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 11 -21 633 664
+CapHeight 651
+StartCharMetrics 8
+C 49 ; WX 675 ; N one ; B 335 -17 341 661 ;
+C 50 ; WX 719 ; N two ; B 11 -17 633 661 ;
+C 51 ; WX 719 ; N three ; B 72 -17 633 661 ;
+C 52 ; WX 719 ; N four ; B 72 -17 633 661 ;
+C 53 ; WX 719 ; N five ; B 72 -17 633 661 ;
+C 54 ; WX 719 ; N six ; B 72 -17 633 661 ;
+C 69 ; WX 675 ; N E ; B 60 -21 605 664 ;
+C 88 ; WX 675 ; N X ; B 74 -14 600 651 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx7.afm b/fonts/dozenal/afm/dozchbx7.afm
new file mode 100644
index 0000000000..80fbad54b0
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx7.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:46 2015
+FontName dozchbx7
+FullName dozchbx7
+FamilyName dozchbx7
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 9 -17 635 660
+CapHeight 650
+StartCharMetrics 8
+C 49 ; WX 639 ; N one ; B 317 -15 323 659 ;
+C 50 ; WX 715 ; N two ; B 9 -15 635 659 ;
+C 51 ; WX 715 ; N three ; B 68 -15 635 659 ;
+C 52 ; WX 715 ; N four ; B 68 -15 635 659 ;
+C 53 ; WX 715 ; N five ; B 68 -15 635 659 ;
+C 54 ; WX 715 ; N six ; B 68 -15 635 659 ;
+C 69 ; WX 639 ; N E ; B 59 -17 573 660 ;
+C 88 ; WX 639 ; N X ; B 71 -12 569 650 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx8.afm b/fonts/dozenal/afm/dozchbx8.afm
new file mode 100644
index 0000000000..fbc79aa242
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx8.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:48 2015
+FontName dozchbx8
+FullName dozchbx8
+FamilyName dozchbx8
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 11 -17 633 661
+CapHeight 651
+StartCharMetrics 8
+C 49 ; WX 613 ; N one ; B 304 -17 310 661 ;
+C 50 ; WX 713 ; N two ; B 11 -17 633 661 ;
+C 51 ; WX 713 ; N three ; B 65 -17 633 661 ;
+C 52 ; WX 713 ; N four ; B 65 -17 633 661 ;
+C 53 ; WX 713 ; N five ; B 65 -17 633 661 ;
+C 54 ; WX 713 ; N six ; B 65 -17 633 661 ;
+C 69 ; WX 613 ; N E ; B 54 -15 549 659 ;
+C 88 ; WX 613 ; N X ; B 66 -14 545 651 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbx9.afm b/fonts/dozenal/afm/dozchbx9.afm
new file mode 100644
index 0000000000..33a1b8649e
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbx9.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:50 2015
+FontName dozchbx9
+FullName dozchbx9
+FamilyName dozchbx9
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 9 -15 635 659
+CapHeight 650
+StartCharMetrics 8
+C 49 ; WX 592 ; N one ; B 293 -15 299 659 ;
+C 50 ; WX 710 ; N two ; B 9 -15 634 659 ;
+C 51 ; WX 710 ; N three ; B 63 -15 635 659 ;
+C 52 ; WX 710 ; N four ; B 63 -15 635 659 ;
+C 53 ; WX 710 ; N five ; B 63 -15 635 659 ;
+C 54 ; WX 710 ; N six ; B 63 -15 635 659 ;
+C 69 ; WX 592 ; N E ; B 52 -13 530 657 ;
+C 88 ; WX 592 ; N X ; B 65 -11 527 650 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbxi10.afm b/fonts/dozenal/afm/dozchbxi10.afm
new file mode 100644
index 0000000000..f9ff90c093
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbxi10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:52 2015
+FontName dozchbxi10
+FullName dozchbxi10
+FamilyName dozchbxi10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -11 -48 875 692
+CapHeight 683
+StartCharMetrics 8
+C 49 ; WX 530 ; N one ; B 253 -27 470 692 ;
+C 50 ; WX 703 ; N two ; B -11 -48 694 691 ;
+C 51 ; WX 703 ; N three ; B -11 -48 859 691 ;
+C 52 ; WX 703 ; N four ; B -11 -48 875 691 ;
+C 53 ; WX 703 ; N five ; B -11 -48 875 692 ;
+C 54 ; WX 703 ; N six ; B -11 -48 875 692 ;
+C 69 ; WX 530 ; N E ; B 31 -37 632 681 ;
+C 88 ; WX 530 ; N X ; B 94 0 636 686 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchbxsl10.afm b/fonts/dozenal/afm/dozchbxsl10.afm
new file mode 100644
index 0000000000..968d6d3701
--- /dev/null
+++ b/fonts/dozenal/afm/dozchbxsl10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:54 2015
+FontName dozchbxsl10
+FullName dozchbxsl10
+FamilyName dozchbxsl10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox 6 -14 745 659
+CapHeight 652
+StartCharMetrics 8
+C 49 ; WX 575 ; N one ; B 283 -14 400 658 ;
+C 50 ; WX 708 ; N two ; B 6 -14 634 658 ;
+C 51 ; WX 708 ; N three ; B 59 -14 745 659 ;
+C 52 ; WX 708 ; N four ; B 59 -14 745 658 ;
+C 53 ; WX 708 ; N five ; B 59 -14 745 658 ;
+C 54 ; WX 708 ; N six ; B 59 -14 745 658 ;
+C 69 ; WX 575 ; N E ; B 79 -10 608 655 ;
+C 88 ; WX 575 ; N X ; B 92 -11 619 650 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchit10.afm b/fonts/dozenal/afm/dozchit10.afm
new file mode 100644
index 0000000000..4417a0a051
--- /dev/null
+++ b/fonts/dozenal/afm/dozchit10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:56 2015
+FontName dozchit10
+FullName dozchit10
+FamilyName dozchit10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -3 -49 860 693
+CapHeight 671
+StartCharMetrics 8
+C 49 ; WX 460 ; N one ; B 218 -31 430 693 ;
+C 50 ; WX 696 ; N two ; B -3 -49 679 693 ;
+C 51 ; WX 696 ; N three ; B -3 -49 847 693 ;
+C 52 ; WX 696 ; N four ; B -3 -49 860 693 ;
+C 53 ; WX 696 ; N five ; B -3 -49 860 693 ;
+C 54 ; WX 696 ; N six ; B -3 -49 860 693 ;
+C 69 ; WX 460 ; N E ; B 43 -27 565 671 ;
+C 88 ; WX 460 ; N X ; B 99 -1 575 672 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchit12.afm b/fonts/dozenal/afm/dozchit12.afm
new file mode 100644
index 0000000000..e3e55f1ef2
--- /dev/null
+++ b/fonts/dozenal/afm/dozchit12.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:57:58 2015
+FontName dozchit12
+FullName dozchit12
+FamilyName dozchit12
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -4 -47 859 691
+CapHeight 668
+StartCharMetrics 8
+C 49 ; WX 450 ; N one ; B 213 -30 425 691 ;
+C 50 ; WX 694 ; N two ; B -4 -47 678 691 ;
+C 51 ; WX 694 ; N three ; B -4 -47 846 691 ;
+C 52 ; WX 694 ; N four ; B -4 -47 859 691 ;
+C 53 ; WX 694 ; N five ; B -4 -47 859 691 ;
+C 54 ; WX 694 ; N six ; B -4 -47 859 691 ;
+C 69 ; WX 450 ; N E ; B 46 -25 556 668 ;
+C 88 ; WX 450 ; N X ; B 98 0 566 669 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchit7.afm b/fonts/dozenal/afm/dozchit7.afm
new file mode 100644
index 0000000000..a92a364618
--- /dev/null
+++ b/fonts/dozenal/afm/dozchit7.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:00 2015
+FontName dozchit7
+FullName dozchit7
+FamilyName dozchit7
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -8 -51 872 695
+CapHeight 675
+StartCharMetrics 8
+C 49 ; WX 529 ; N one ; B 252 -29 470 695 ;
+C 50 ; WX 703 ; N two ; B -8 -51 691 694 ;
+C 51 ; WX 703 ; N three ; B -8 -51 857 694 ;
+C 52 ; WX 703 ; N four ; B -8 -51 872 695 ;
+C 53 ; WX 703 ; N five ; B -8 -51 872 695 ;
+C 54 ; WX 703 ; N six ; B -8 -51 871 695 ;
+C 69 ; WX 529 ; N E ; B 48 -33 629 676 ;
+C 88 ; WX 529 ; N X ; B 112 -2 636 675 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchit8.afm b/fonts/dozenal/afm/dozchit8.afm
new file mode 100644
index 0000000000..08f10e886f
--- /dev/null
+++ b/fonts/dozenal/afm/dozchit8.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:02 2015
+FontName dozchit8
+FullName dozchit8
+FamilyName dozchit8
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -6 -50 866 694
+CapHeight 675
+StartCharMetrics 8
+C 49 ; WX 494 ; N one ; B 235 -30 450 694 ;
+C 50 ; WX 699 ; N two ; B -6 -50 685 694 ;
+C 51 ; WX 699 ; N three ; B -6 -50 851 694 ;
+C 52 ; WX 699 ; N four ; B -6 -50 866 694 ;
+C 53 ; WX 699 ; N five ; B -6 -50 866 694 ;
+C 54 ; WX 699 ; N six ; B -6 -50 866 694 ;
+C 69 ; WX 494 ; N E ; B 46 -34 600 677 ;
+C 88 ; WX 494 ; N X ; B 105 0 605 673 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchit9.afm b/fonts/dozenal/afm/dozchit9.afm
new file mode 100644
index 0000000000..d2b69436df
--- /dev/null
+++ b/fonts/dozenal/afm/dozchit9.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:05 2015
+FontName dozchit9
+FullName dozchit9
+FamilyName dozchit9
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -4 -49 862 693
+CapHeight 672
+StartCharMetrics 8
+C 49 ; WX 472 ; N one ; B 224 -31 437 693 ;
+C 50 ; WX 697 ; N two ; B -4 -49 681 693 ;
+C 51 ; WX 697 ; N three ; B -4 -49 849 693 ;
+C 52 ; WX 697 ; N four ; B -4 -49 862 693 ;
+C 53 ; WX 697 ; N five ; B -4 -49 862 693 ;
+C 54 ; WX 697 ; N six ; B -4 -49 862 693 ;
+C 69 ; WX 472 ; N E ; B 44 -29 578 673 ;
+C 88 ; WX 472 ; N X ; B 101 0 586 672 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchsl10.afm b/fonts/dozenal/afm/dozchsl10.afm
new file mode 100644
index 0000000000..72f23f8063
--- /dev/null
+++ b/fonts/dozenal/afm/dozchsl10.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:07 2015
+FontName dozchsl10
+FullName dozchsl10
+FamilyName dozchsl10
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -1 -42 752 686
+CapHeight 655
+StartCharMetrics 8
+C 49 ; WX 500 ; N one ; B 227 -42 381 686 ;
+C 50 ; WX 700 ; N two ; B -1 -42 637 686 ;
+C 51 ; WX 700 ; N three ; B 32 -42 752 686 ;
+C 52 ; WX 700 ; N four ; B 32 -42 752 686 ;
+C 53 ; WX 700 ; N five ; B 32 -42 752 686 ;
+C 54 ; WX 700 ; N six ; B 32 -42 752 686 ;
+C 69 ; WX 500 ; N E ; B 59 -21 539 666 ;
+C 88 ; WX 500 ; N X ; B 82 -23 554 655 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchsl12.afm b/fonts/dozenal/afm/dozchsl12.afm
new file mode 100644
index 0000000000..65af1e5ae9
--- /dev/null
+++ b/fonts/dozenal/afm/dozchsl12.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:09 2015
+FontName dozchsl12
+FullName dozchsl12
+FamilyName dozchsl12
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -2 -40 753 684
+CapHeight 654
+StartCharMetrics 8
+C 49 ; WX 490 ; N one ; B 223 -38 375 684 ;
+C 50 ; WX 699 ; N two ; B -2 -40 639 684 ;
+C 51 ; WX 699 ; N three ; B 32 -40 753 684 ;
+C 52 ; WX 699 ; N four ; B 32 -40 753 684 ;
+C 53 ; WX 699 ; N five ; B 32 -40 753 684 ;
+C 54 ; WX 699 ; N six ; B 32 -40 753 684 ;
+C 69 ; WX 490 ; N E ; B 58 -21 530 665 ;
+C 88 ; WX 490 ; N X ; B 81 -22 545 654 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchsl8.afm b/fonts/dozenal/afm/dozchsl8.afm
new file mode 100644
index 0000000000..b57329f45a
--- /dev/null
+++ b/fonts/dozenal/afm/dozchsl8.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:11 2015
+FontName dozchsl8
+FullName dozchsl8
+FamilyName dozchsl8
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -4 -42 755 686
+CapHeight 654
+StartCharMetrics 8
+C 49 ; WX 531 ; N one ; B 240 -41 397 686 ;
+C 50 ; WX 703 ; N two ; B -4 -42 641 686 ;
+C 51 ; WX 703 ; N three ; B 35 -42 755 686 ;
+C 52 ; WX 703 ; N four ; B 35 -42 755 686 ;
+C 53 ; WX 703 ; N five ; B 35 -42 755 686 ;
+C 54 ; WX 703 ; N six ; B 35 -42 755 686 ;
+C 69 ; WX 531 ; N E ; B 63 -21 566 665 ;
+C 88 ; WX 531 ; N X ; B 87 -21 581 654 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/afm/dozchsl9.afm b/fonts/dozenal/afm/dozchsl9.afm
new file mode 100644
index 0000000000..605ea58499
--- /dev/null
+++ b/fonts/dozenal/afm/dozchsl9.afm
@@ -0,0 +1,27 @@
+StartFontMetrics 2.0
+Comment Generated by FontForge 20120731
+Comment Creation Date: Sat Jun 27 10:58:13 2015
+FontName dozchsl9
+FullName dozchsl9
+FamilyName dozchsl9
+Weight Regular
+Notice (Generated from MetaFont bitmap by mftrace 1.2.18, http://www.xs4all.nl/~hanwen/mftrace/ )
+ItalicAngle 0
+IsFixedPitch false
+UnderlinePosition -100
+UnderlineThickness 50
+Version 001.001
+EncodingScheme FontSpecific
+FontBBox -2 -42 753 686
+CapHeight 655
+StartCharMetrics 8
+C 49 ; WX 514 ; N one ; B 233 -42 388 686 ;
+C 50 ; WX 702 ; N two ; B -2 -42 639 686 ;
+C 51 ; WX 702 ; N three ; B 34 -42 753 686 ;
+C 52 ; WX 702 ; N four ; B 34 -42 753 686 ;
+C 53 ; WX 702 ; N five ; B 34 -42 753 686 ;
+C 54 ; WX 702 ; N six ; B 34 -42 753 686 ;
+C 69 ; WX 514 ; N E ; B 60 -22 551 667 ;
+C 88 ; WX 514 ; N X ; B 84 -21 566 655 ;
+EndCharMetrics
+EndFontMetrics
diff --git a/fonts/dozenal/doc/dozenal.pdf b/fonts/dozenal/doc/dozenal.pdf
new file mode 100644
index 0000000000..a2a11e8538
--- /dev/null
+++ b/fonts/dozenal/doc/dozenal.pdf
Binary files differ
diff --git a/fonts/dozenal/dozenal.dtx b/fonts/dozenal/dozenal.dtx
new file mode 100644
index 0000000000..05b8716de7
--- /dev/null
+++ b/fonts/dozenal/dozenal.dtx
@@ -0,0 +1,1187 @@
+% \iffalse
+% +AMDG This document was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate Heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+%
+% This document is copyright 2008-2018 by Donald P. Goodman, and is
+% released publicly under the LaTeX Project Public License. The
+% distribution and modification of this work is constrained by the
+% conditions of that license. See
+% http://www.latex-project.org/lppl.txt
+% for the text of the license. This document is released
+% under version 1.3 of that license, and this work may be distributed
+% or modified under the terms of that license or, at your option, any
+% later version.
+%
+% This work has the LPPL maintenance status 'maintained'.
+%
+% The Current Maintainer of this work is Donald P. Goodman
+% (dgoodmaniii@gmail.com).
+%
+% This work consists of the files listed in dozenalfilelist.txt.
+% \fi
+
+% \iffalse
+%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<package>\ProvidesPackage{dozenal}[2018/05/11 v7.2 support for dozenal fonts]
+%<*driver>
+
+\documentclass{ltxdoc}
+\usepackage{doc}
+\usepackage{verbatim}
+\usepackage{url}
+\usepackage[typeone]{dozenal}
+\usepackage{mflogo}
+\usepackage{makeidx}
+\makeindex
+\long\def\demonstrate#1#2{%
+ \bigskip%
+ \hrule%
+ \hbox to\linewidth{%
+ \hbox to0.5\linewidth{%
+ \vbox to2in{\vfil#1\vfil}%
+ }\hbox to0.5\linewidth{%
+ \vbox to2in{\vfil#2\vfil}%
+ }%
+ }%
+ \hrule%
+ \bigskip%
+}
+
+\begin{document}
+\DocInput{dozenal.dtx}
+\end{document}
+%</driver>
+% \fi
+% \title{The \texttt{dozenal} Package, v7.2}
+% \author{Donald P.\ Goodman III}
+% \date{\today}
+%
+% \maketitle
+% \begin{abstract}\noindent
+% The |dozenal| package provides some simple mechanisms for
+% working with the dozenal (duodecimal or ``base 12'')
+% numerical system. It redefines all basic \LaTeX\
+% counters, provides a command for converting arbitrary
+% decimal numbers into dozenal, and provides new, real
+% \MF\ characters for ten and eleven, though the
+% commands for producing them can be redefined to produce
+% any figure. As of v2.0, it also includes Type 1 versions
+% of the fonts, selected (as of v5.0) with the |typeone|
+% package option. This package uses the |\basexii|
+% algorithm by David Kastrup.
+% \end{abstract}
+%
+% \tableofcontents
+%
+% \section{Introduction}
+% \label{sect:intro}
+%
+% While most would probably call it at best overoptimistic and
+% at worst foolish, some people (the author included) do still
+% find themselves attracted to the dozenal (base-twelve)
+% system. These people, however, have been pretty hard
+% up\footnote{This is an Americanism for ``out of luck'' or
+% ``in difficult circumstances,'' for those who do not
+% know.} in the \LaTeX\ world. There is no package file
+% available which produces dozenal counters, like page and
+% chapter numbers, nor were there \emph{any} (I made a
+% pretty diligent search) dozenal characters for ten and
+% eleven, leaving dozenalists forced to use such makeshift
+% ugliness as the ``X/E'' or ``T/E'' or ``*/\#'' or whatever
+% other standard they decided to use. While this sort of
+% thing may be acceptable in ASCII, it's absolutely
+% unacceptable in a beautiful, typeset document.
+%
+% Enter the |dozenal| package. This package automates all
+% the messiness of being a dozenalist and using \LaTeX. It
+% redefines all the counters (though you'll have to redefine
+% them yourself if you're using your own), provides an
+% algorithm (generously donated by the intrepid David
+% Kastrup) for converting arbitrary positive whole numbers
+% into dozenal (this is e\TeX, but all modern distributions
+% will compile that), and finally, it includes original
+% dozenal characters, specifically designed to blend in well
+% with Knuth's Computer Modern fonts, though they should do
+% fine with a few other common body fonts, as well.
+%
+% This document was typeset in accordance with the \LaTeX\
+% \textsc{docstrip} utility, which allows automatic
+% extraction of source code and documentation from the same
+% source.
+%
+% \section{Basic Functionality}
+% \label{sect:func}
+%
+% The |dozenal| package performs several basic tasks, which
+% are the core of its functionality. A brief listing of
+% them will help the user understand the options available,
+% which are explained later on in this document.
+%
+% \begin{itemize}
+% \item Provides commands for converting decimal numbers to
+% dozenal and back again. (The ``back again,'' conversion
+% of dozenal back to decimal, only works in limited
+% circumstances.)
+% \item Provides default characters for the two transdecimal
+% digits, ``\x'' for ten and ``\e'' for eleven; these
+% correspond to the accepted Unicode standard digits
+% ``turned digit two'' and ``turned digit three,'' which (as
+% of June 11\e\e) are now part of the Unicode standard.
+% These characters copy-paste as ``X'' and
+% ``E,'' the (somewhat) standard ASCII representations of
+% these two digits. However, other characters can easily be
+% substituted if desired.
+% \item Redefines the counters in standard \LaTeX\ document
+% classes (such as |article|, |book|, and so forth) to use
+% dozenal rather than decimal. This behavior can be shut
+% off if desired.
+% \item Provides macros for converting dozenal numbers to
+% words; e.g., ``3\e'' to ``three dozen eleven.''
+% \item Provides macros for converting numbers to ``doman''
+% numerals; that is, a dozenal version of Roman numerals.
+% \end{itemize}
+%
+% That covered, we can now move on to how these features are
+% exploited by the user.
+%
+% \subsection{Base Conversion}
+% \label{sub:numconv}
+%
+% The |dozenal| package provides several new commands for
+% base conversion. The first, and by far the most important
+% given the purpose and content of this package, is
+% |\basexii|\DescribeMacro{\basexii}. This is a very simple
+% command which takes the following structure:
+% \begin{quote}
+% \cs{basexii}\marg{number}\marg{ten symbol}\marg{eleven symbol}
+% \end{quote}
+% What the above means is that the command is |\basexii| and
+% it takes three mandatory arguments: first, the number to
+% be converted into dozenal; second, the symbol that should
+% be used for ten; and third, the symbol that should be used
+% for eleven. This number should be positive and whole;
+% that is, it should be zero or higher, and it should not
+% contain a fractional part. \TeX\ is a typesetting
+% program, after all; if you want a robust decimal to
+% dozenal converter, there are many options that any
+% dozenalists caring enough to use this package will already
+% know about.
+%
+% This |\basexii| algorithm was produced by David Kastrup,
+% well known and admired in the \TeX\ world for his many
+% useful packages and other contributions. He posted this
+% algorithm on comp.text.tex; it is included here with his
+% kind and generous permission.
+%
+% \label{page:dozens}
+% That one would want to use the same ten and eleven symbols
+% throughout a document seems a reasonable assumption;
+% therefore, I have provided a simplified version of the
+% |\basexii| command, |\dozens|\DescribeMacro{\dozens}.
+% |\dozens| takes only a single argument, the number to be
+% converted; the ten and eleven symbols used are those
+% produced by the commands |\x| and |\e|, to which we'll get
+% in a moment.
+%
+% Finally, as of v5.0, we can convert numbers back to
+% decimal from dozenal, if we wish. We do this with the
+% \DescribeMacro{\basex}|\basex| macro, which takes a single
+% argument, which is the dozenal number you wish to convert
+% to decimal. This is subject to a pretty harsh
+% restriction, however: the only tokens allowed in
+% the number are 0--9, |X|, and |E|; putting in anything
+% else will cause violent choking with ``expected a
+% number''-type errors.
+%
+% To illustrate these limitations, let's define a new
+% counter and dozenize it. Here, we define the counter and
+% give it a nice value which will ensure that its dozenal
+% value will have an |\e| in it:
+%
+% \newcounter{testcount}\setcounter{testcount}{47}
+% \begin{quotation}
+% |\newcounter{testcount}\setcounter{testcount}{47}|
+% \end{quotation}
+%
+% In dozenal, of course, ``47'' is ``3\e.'' Now, let's
+% redefine that counter so that its results will be dozenal:
+%
+% \renewcommand\thetestcount{\basexii{\value{testcount}}{\x}{\e}}
+% \begin{quotation}
+% |\renewcommand\thetestcount{\basexii{\value{testcount}}{\x}{\e}}|
+% \end{quotation}
+%
+% Now |dozenal| allow us to do lovely things like the following:
+%
+% \begin{quotation}
+% |\thetestcount| = \thetestcount
+% \end{quotation}
+%
+% It's tempting to try to put that number into |\basex| to
+% get it in decimal; but don't try it;
+% |\basex{\thetestcount}| doesn't work because it contains
+% expanded versions of |\x| and |\e|. Fortunately, you
+% don't need it; \LaTeX\ already has the value of the
+% |testcount| counter in its innards, and is quite used to
+% outputting it in decimal:
+%
+% \begin{quotation}
+% |\arabic{testcount}| = \arabic{testcount}
+% \end{quotation}
+%
+% On the other hand, if you have an actual string you want
+% converted, you can send it directly to |\basex|:
+%
+% \begin{quotation}
+% |\basex{3E}| = \basex{3E}
+% \end{quotation}
+%
+% So |\basex| is of limited utility, but it's a nice tool to
+% add to the box.
+%
+% \subsection{Numbers to Words}
+% \label{sub:numtowords}
+%
+% |dozenal| allows you to easily convert counters into
+% \emph{words}, by supplying said counter's name to the
+% \DescribeMacro{\doznumtoword}|\doznumtoword| macro. It
+% takes as its argument the name of a \emph{counter} (not a
+% number itself!) and converts this into words:
+%
+% \newcounter{somecount}\setcounter{somecount}{851}
+% \begin{quote}
+% |This page's number is ``\doznumtoword{page}.''| \\
+% This page's number is ``\doznumtoword{page}.''
+% \end{quote}
+%
+% This macro works with much larger numbers, as well.
+% Purely for exemplary purposes, let's define a counter
+% |somecount| with |\newcounter{somecount}|, and set it
+% equal to (decimal) 851 with |\setcounter{somecount}{851}|.
+% ``851''
+% in dozenal is ``5\x\e.'' Therefore,
+% |\doznumtoword{somecount}| will yield
+% ``\doznumtoword{somecount}.'' If you want to change the
+% capitalization, use other macros; e.g.,
+% \DescribeMacro{\DOZnumtoword}|\DOZnumtoword{somecount}| gives
+% ``\DOZnumtoword{somecount},'' while
+% \DescribeMacro{\Doznumtoword}|\Doznumtoword{somecount}| gives
+% ``\Doznumtoword{somecount}.''
+%
+% |\doznumtoword| (and friends) do act correctly when there
+% are zeroes in the middle of the number, e.g., when
+% |somecount| is equal to decimal 6977, which is dozenal
+% 4055, it will output
+% \setcounter{somecount}{6977}``\doznumtoword{somecount}.''
+% When there's a zero at the \emph{end} of the number, that
+% zero is still output: |\doznumtoword{somecount}| where
+% |somecount|\setcounter{somecount}{144} is equal to 144 gives
+% ``\doznumtoword{somecount},'' not simply ``one biqua.'' I
+% haven't decided yet if this is a bug or a feature; when I
+% do, I'll act accordingly.
+%
+% The rank words (``unqua,'' ``biqua,'' and so forth) are
+% all customizable by user-level commands, which are named
+% |\dozrankoneword| for ``unqua,'' |\dozranktwoword| for
+% ``biqua,'' and so forth. Simply redefine them like so:
+%
+% \begin{quote}
+% |\def\dozrankoneword{dozen}|\def\dozrankoneword{dozen} \\
+% |\setcounter{somecount}{51}|\setcounter{somecount}{51} \\
+% |\doznumtoword{somecount}| = \doznumtoword{somecount}
+% \end{quote}
+% \def\dozrankoneword{unqua}
+%
+% This type of macro is useful for putting page numbers in
+% both digits and words, for example.
+%
+% \subsection{Doman Numerals}
+% \label{sub:domannums}
+%
+% Dozenalists have also come up with some ideas for how to
+% use Roman numerals in a decimal way; therefore, the
+% |dozenal| package provides some macros to assist with
+% that, as well.
+%
+% To form ``Doman'' numerals, we simply alter the values of
+% the traditional Roman characters into more
+% dozenal-friendly alternatives. So ``v'' is 6, ``x'' is
+% 10, and so on. Then, to avoid stringing four of the same
+% character together, we extend the subtractive principle to
+% allow up to \emph{two} lower characters prior to a
+% higher-value character. So, e.g., ``iiv'' is $6 - 2$, or
+% 4, while ``iv'' is $6 - 1$, or 5.
+%
+% The macros |\Doman|\DescribeMacro{\Doman}\ and
+% |\doman|\DescribeMacro{\doman}\ are equivalent to |\Roman|
+% and |\roman|, giving either capitalized or lowercase
+% dozenal Roman numerals.
+%
+% \newcounter{testdoman}\setcounter{testdoman}{1}
+% \renewcommand\thetestdoman{\doman{\value{testdoman}}}
+%
+% \begin{center}
+% \begin{tabular}{cccccccccccccc}
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} &
+% \dozens{\value{testdoman}} & \thetestdoman\stepcounter{testdoman} \\
+% \end{tabular}
+% \end{center}
+%
+% In the table above, the Doman numerals 1--60 are
+% displayed, along with their Hindu-Arabic equivalents. This
+% table was produced entirely using a new \LaTeX\ counter,
+% |testdoman|; |\thetestdoman| was defined by saying
+%
+% \begin{quote}
+% |\renewcommand\thetestdoman{\doman{\value{testdoman}}}|
+% \end{quote}
+%
+% The Hindu-Arabic columns were displayed with
+% |\dozens{\value{testdoman}}|. Every two table cells,
+% |testdoman| is increased by one. The whole table was
+% produced without manually entering a single number in
+% either form.
+%
+% Most commonly, Roman numerals are seen in part numbers and
+% in the page numbering of frontmatter.
+% To achieve that result, do:
+%
+% \begin{quote}
+% |\renewcommand\thepage{\doman{\arabic{page}}}|
+% \end{quote}
+%
+% You can reset this to normal dozenal numerals (or whatever
+% else you'd prefer) when you reach your mainmatter.
+%
+% \section{Dozenal Characters and Fonts}
+% \label{sect:fonts}
+%
+% \subsection{Shorthands for Dozenal Characters}
+% \label{sub:shorthands}
+%
+% To make use of the |\dozens| shorthand discussed
+% earlier,\footnote{See supra, Section \ref{sub:numconv},
+% at page \pageref{page:dozens}.} you need to have the
+% commands |\x| and |\e| defined. Fortunately, this package
+% does that for you.
+%
+% |\x|\DescribeMacro{\x}\ and |\e|\DescribeMacro{\e}\ are
+% the commands used to quickly and easily access the symbols
+% for ten and eleven. They default to using the special
+% dozenal characters that are part of this package; they
+% could be easily redefined if for some reason you don't
+% like the Pitman characters (which are soon to be included
+% in Unicode) in the following manner:
+% \begin{quote}
+% |\renewcommand\x{X}|
+% \end{quote}
+% Or whichever characters you like to use. If you prefer
+% the Dozenal Society of America's proposed characters (a
+% stylized X and E), then this package will disappoint you.
+% May I suggest |$\chi$| ($\chi$) and |$\xi$| ($\xi$) as a
+% stopgap while you locate or produce real characters of
+% your own? Sorry; I'm an American myself, but I much
+% prefer the Pitman characters for a variety of reasons
+% (feel free to email me if you care), and creating fonts in
+% \MF, even small and inconsequential ones like this, is too
+% much work for characters that I don't even like.
+%
+% \subsection{The \texttt{dozenal} Fonts}
+% \label{sub:dozfonts}
+%
+% The fonts provided by the dozenal package are essentially
+% complete fonts which contain only the Pitman dozenal
+% characters; these are \x\ for ten and \e\ for eleven.
+% These characters are designed to blend well with the
+% Computer Modern fonts; they work passably well with
+% Times-type fonts and with kpfonts, and possibly with
+% others.
+%
+% The characters also come in all the appropriate shapes and
+% sizes; a few examples follow.
+%
+% \begin{center}
+% \begin{tabular}{lccc}
+% {} & Roman & \textit{Italic} & \textbf{Boldface} \\
+% \footnotesize Footnotesize & \footnotesize\x\ \e & \footnotesize\itshape
+% \x\ \e & \footnotesize\bfseries \x \e \\
+% \normalsize Normalsize & \normalsize\x\ \e & \normalsize\itshape
+% \x\ \e & \normalsize\bfseries \x \e \\
+% \LARGE LARGE & \LARGE\x\ \e & \LARGE\itshape
+% \x\ \e & \LARGE\bfseries \x \e \\
+% \Huge Huge & \Huge\x\ \e & \Huge\itshape
+% \x\ \e & \Huge\bfseries \x \e \\
+% \end{tabular}
+% \end{center}
+%
+% They will work in paragraph or math mode without
+% distinction.
+%
+% \subsection{Tally Marks}
+% \label{sub:tallymarks}
+%
+% As of v4.0, |dozenal| also includes fonts for tally marks
+% specifically designed for use in the dozenal base. In many
+% European countries tallies are kept in a very similar way;
+% this font demonstrates a way that such tally marks can be
+% made consistent as well as dozenal.
+%
+% \begin{center}
+% \begin{tabular}{cccccc}
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% \Huge\tally{1} & \Huge\tally{2} & \Huge\tally{3} & \Huge\tally{4} & \Huge\tally{5} & \Huge\tally{6} \\
+% \end{tabular}
+% \end{center}
+%
+% These are accessed by the \DescribeMacro{\tally}|\tally|
+% command, which takes one argument: the number, 1--6,
+% which you want to put in tallies. Entering ``X'' or ``E''
+% will yield ``\x'' or ``\e'' respectively. Other
+% characters will produce nothing.
+%
+% As of v6.0, there are separate, hand-written versions of
+% the tally marks, accessed by putting tallies in italic:
+%
+% \begin{center}\itshape
+% \begin{tabular}{cccccc}
+% 1 & 2 & 3 & 4 & 5 & 6 \\
+% \Huge\tally{1} & \Huge\tally{2} & \Huge\tally{3} & \Huge\tally{4} & \Huge\tally{5} & \Huge\tally{6} \\
+% \end{tabular}
+% \end{center}
+%
+% In other words, to get these shapes, say
+% |\textit{\tally{6}}|; this will give you
+% ``\textit{\tally{6}}.''
+%
+% The fonts are all prefixed |dozch|, if for some reason
+% direct access to them is needed.
+%
+% \subsection{Dozenal Radix Point}
+% \label{sub:dozradixpoint}
+%
+% Lastly, |dozenal| allows the use of the common dozenal
+% radix point, ``;'', to work properly in math mode. Some
+% dozenalists prefer to use ``;'' rather than ``.'' (or
+% ``,'') to mark the transition from integers to fractions
+% in numbers; e.g., three-and-a-half is ``3;6.'' In math
+% mode, however, this doesn't work; a semicolon in math
+% mode is punctuation, and a spurious space is inserted
+% (quite correctly) afterward. We don't want this space
+% when we're using it as a radix point. So |dozenal| (using
+% code adapted from Walter Schmidt's |icomma| package) fixes
+% this:
+%
+% |$3;6$| = 3;6
+%
+% And all is right with the world.
+%
+% \section{Package Options}
+% \label{sect:packopts}
+%
+% The |dozenal| package redefines all the standard
+% \LaTeX\ counters, such as |section| and |enumii|. If
+% you've defined your own counters, you'll need to dozenize
+% them yourself; however, this is an easy matter:
+% \begin{quote}
+% |\renewcommand\thecounter{\basexii{\arabic{counter}}{\x}{\e}}|
+% \end{quote}
+% For example. Of course, you can fill in the |\x| and |\e|
+% with whatever you want (though it would make more sense to
+% simply redefine |\x| and |\e|, so that all the counters
+% would use the same characters), or you could use the
+% |\dozens| command instead. Whatever your pleasure might
+% be.
+%
+% If you \emph{don't} want all the counters to be redefined,
+% or if you're using a class which doesn't include basic
+% \LaTeX\ counters, you'll want to use the |nocounters|
+% option. The |nocounters|\DescribeMacro{nocounters}\
+% option to the package prevents the redefinition of these
+% counters. The effect of this is that the commands of the
+% package (|\basexii|, |\dozens|, etc.) are made available,
+% but all the counters will still be in decimal. This
+% permits using dozenal characters in an otherwise decimal
+% document; it also proves useful in document classes in
+% which these counters are undefined (e.g., |minimal|).
+%
+% The |dozenal| fonts were designed in \MF, and they are
+% distributed in both \MF-generated bitmaps and autotraced
+% Postscript Type1 fonts. The
+% |typeone|\DescribeMacro{typeone}\ option forces |dozenal|
+% to provide Postscript Type 1 fonts rather than \MF\
+% bitmaps to \TeX. Both of these are produced from the same
+% font files, though, so the difference is very slight.
+% However, the Type1 fonts do generally look better on
+% screen; the |typeone| option will probably be used most of
+% the time that |dozenal| itself is used.
+%
+% \section{Implementation}
+% \label{sect:code}
+%
+% Make sure that we have |fixltx2e| loaded, so that the
+% |\TextOrMath| magic will work. Also, as of v6.0, we also
+% require |xstring| to use |\IfStrEq| in the number-to-word
+% code.
+% \begin{macrocode}
+\RequirePackage{fixltx2e}
+\RequirePackage{xstring}
+% \end{macrocode}
+% Now we ensure that |ifpdf| is loaded, so that we can test
+% for pdf or dvi modes. We also make sure we have
+% |ifluatex|, so that |dozenal| won't choke when you use it
+% with the |typeone| option. We'll take care of the
+% |luatex| stuff right away, while we're at it:
+% \begin{macrocode}
+\RequirePackage{ifpdf}
+\RequirePackage{ifluatex}
+\ifluatex
+ \protected\def\pdfmapfile {\pdfextension mapfile }
+\fi
+% \end{macrocode}
+% We also require |mfirstuc|, because it's \emph{great}:
+% \begin{macrocode}
+\RequirePackage{mfirstuc}
+% \end{macrocode}
+% Now we declare the option ``nocounters'', which prevents
+% |dozenal| from redefining all the counters. This prevents
+% errors in document classes which don't have these counters,
+% such as |minimal|. Defines the command |\nocounters| if
+% and only if the options is named.
+% \begin{macrocode}
+\DeclareOption{nocounters}{%
+ \def\nocounters{}%
+}%
+% \end{macrocode}
+% Now we define the |typeone| option, which forces the use
+% of the Type 1 versions of the dozenal fonts.
+% \begin{macrocode}
+\newif\iftypeone\typeonefalse
+\DeclareOption{typeone}{\typeonetrue}
+\ProcessOptions\relax
+% \end{macrocode}
+% We then define the font that we're using for our
+% \MF-produced Pitman characters. Incidentally, we also
+% define the command |\doz|, though I can't foresee any
+% decent use for it except in packages and preambles; it is
+% then used to define |\x| and |\e|, which provide the ten
+% and eleven symbols for all the counter redefinitions.
+% This includes definitions for both T1 and OT1 encodings,
+% so it will work with either.
+% \begin{macrocode}
+\iftypeone%
+ \ifpdf
+ \pdfmapfile{=dozenal.map}
+ \fi
+ \DeclareFontFamily{T1}{dozch}{}
+ \DeclareFontShape{T1}{dozch}{m}{n}{<-6> dozchars6
+ <7> dozchars7 <8> dozchars8 <9> dozchars9 <10-11>
+ dozchars10 <12-16> dozchars12 <17-> dozchars17 }{}
+ \DeclareFontShape{T1}{dozch}{b}{n}{<-> dozchb10 }{}
+ \DeclareFontShape{T1}{dozch}{bx}{n}{<-6> dozchbx6
+ <7> dozchbx7 <8> dozchbx8 <9> dozchbx9 <10-11>
+ dozchbx10 <12-> dozchbx12 }{}
+ \DeclareFontShape{T1}{dozch}{m}{sl}{<-8> dozchsl8
+ <9> dozchsl9 <10-11> dozchsl10 <12-> dozchsl12 }{}
+ \DeclareFontShape{T1}{dozch}{bx}{sl}{<-> dozchbxsl10 }{}
+ \DeclareFontShape{T1}{dozch}{m}{it}{<-7> dozchit7
+ <8> dozchit8 <9> dozchit9 <10-11> dozchit10
+ <12-> dozchit12 }{}
+ \DeclareFontShape{T1}{dozch}{bx}{it}{<-> dozchbxi10 }{}
+ \def\doz#1{{\fontfamily{dozch}\fontencoding{T1}\selectfont #1}}%
+ \DeclareSymbolFont{dozens}{T1}{dozch}{m}{n}
+\else%
+ \DeclareFontFamily{OT1}{dozch}{}
+ \DeclareFontShape{OT1}{dozch}{m}{n}{<-6> dozchars6
+ <7> dozchars7 <8> dozchars8 <9> dozchars9 <10-11>
+ dozchars10 <12-16> dozchars12 <17-> dozchars17 }{}
+ \DeclareFontShape{OT1}{dozch}{b}{n}{<-> dozchb10 }{}
+ \DeclareFontShape{OT1}{dozch}{bx}{n}{<-6> dozchbx6
+ <7> dozchbx7 <8> dozchbx8 <9> dozchbx9 <10-11>
+ dozchbx10 <12-> dozchbx12 }{}
+ \DeclareFontShape{OT1}{dozch}{m}{sl}{<-8> dozchsl8
+ <9> dozchsl9 <10-11> dozchsl10 <12-> dozchsl12 }{}
+ \DeclareFontShape{OT1}{dozch}{bx}{sl}{<-> dozchbxsl10 }{}
+ \DeclareFontShape{OT1}{dozch}{m}{it}{<-7> dozchit7
+ <8> dozchit8 <9> dozchit9 <10-11> dozchit10
+ <12-> dozchit12 }{}
+ \DeclareFontShape{OT1}{dozch}{bx}{it}{<-> dozchbxi10 }{}
+ \def\doz#1{{\fontfamily{dozch}\fontencoding{OT1}\selectfont #1}}%
+ \DeclareSymbolFont{dozens}{OT1}{dozch}{m}{n}
+\fi%
+\newcommand\x{\unexpanded{\TextOrMath{\protect\doz{{X}}}{\doz@X}}}%
+\newcommand\e{\unexpanded{\TextOrMath{\protect\doz{{E}}}{\doz@E}}}%
+\DeclareMathSymbol{\doz@X}{\mathord}{dozens}{88}%
+\DeclareMathSymbol{\doz@E}{\mathord}{dozens}{69}%
+% \end{macrocode}
+% Put in some additional code for the tally marks.
+% \begin{macrocode}
+\newcommand\tally[1]{%
+% \usefont{OT1}{dozch}{m}{n}\selectfont{#1}%
+ \doz{#1}%
+}%
+% \end{macrocode}
+% Then we define our command which will produce the dozenal
+% numbers from decimal sources. This algorithm was taken
+% directly from the publicly available archives of
+% comp.text.tex, where it was posted by the well-known and
+% redoubtable David Kastrup. We also define the |\dozens|
+% command, a simplified |\basexii| (which, in fact, depends
+% utterly upon |\basexii|), just to make it easy for
+% everyone.
+% \begin{macrocode}
+\def\basexii#1#2#3{\ifcase\numexpr(#1)\relax
+0\or1\or2\or3\or4\or5\or6\or7\or8\or9\or#2\or#3\else
+\expandafter\basexii\expandafter{\number\numexpr((#1)-6)/12}{#2}{#3}\expandafter\basexii\expandafter{\number\numexpr(#1)-((#1)-6)/12*12}{#2}{#3}\fi}
+\newcommand\dozens[1]{\basexii{#1}{\x}{\e}}
+% \end{macrocode}
+% Now that we can convert numbers \emph{to} dozenal, let's
+% set it up so that we can convert them \emph{from} dozenal.
+% I use |xstring| here, replacing a messy macro mesh from
+% the last version (5.3).
+% \begin{macrocode}
+\newcount\doz@countchar
+\def\doz@charcount#1{%
+ \StrLen{#1}[\doz@filler]%
+ \doz@countchar=\doz@filler%
+}%
+% \end{macrocode}
+% Now we develop our conversion routines for |\basex|. For
+% v6.0, these were hugely simplified by using the |xstring|
+% package instead of trying to bash through in plain
+% \TeX, which eventually worked but was \emph{not} pretty.
+% We start by defining a few counters to help us out:
+% \begin{macrocode}
+\newcount\doz@lfiller\doz@lfiller=-1%
+\newcount\doz@total\doz@total=0%
+\newcount\doz@loopi\doz@loopi=0%
+\newcount\doz@multiplier\doz@multiplier=1%
+% \end{macrocode}
+% Next we adopt a macro from TeX.SE question 140476, from
+% user "Dan", which works like a charm even when using
+% counter values rather than simple integers. These macros
+% let us grab an individual character from a string; in this
+% case, from the argument of |\basex|.
+% \begin{macrocode}
+% macro from TeX.SE question 140476, posted by user "Dan"
+\def\ninthofmany#1#2#3#4#5#6#7#8#9{#9\gobbletorelax}
+\def\gobbletorelax#1\relax{}
+\def\doz@CharAt#1#2{%
+ \expandafter\ninthofmany\romannumeral\numexpr(9000-\number#1000)#2\relax}
+% end "Dan" macro
+% \end{macrocode}
+% Here's where the money happens. We loop through each
+% digit of the argument, multiplying it by the appropriate
+% factor of 10 (the dozen, of course), and then add that to
+% a rolling total. At the end, we output the number.
+% \begin{macrocode}
+\def\doz@ten{X}%
+\def\doz@elv{E}%
+\def\doz@basex#1{%
+ \doz@total=0%
+ \doz@loopi=\doz@countchar%
+ \doz@multiplier=1%
+ \def\doz@wholenum{#1}%
+ \loop\ifnum\doz@loopi>0%
+ \def\doz@currchar{\doz@CharAt{\number\doz@loopi}{\doz@wholenum}}%
+ \if\doz@currchar\doz@ten%
+ \doz@lfiller=10%
+ \else\if\doz@currchar\doz@elv%
+ \doz@lfiller=11%
+ \else%
+ \doz@lfiller=\doz@currchar%
+ \fi\fi%
+ \multiply\doz@lfiller by\doz@multiplier%
+ \multiply\doz@multiplier by12%
+ \advance\doz@total by\doz@lfiller%
+ \advance\doz@loopi by-1%
+ \repeat%
+ \the\doz@total%
+}%
+\def\basex#1{%
+ \doz@charcount{#1}%
+ \doz@loopi=0%
+ \doz@basex{#1}%
+ \doz@multiplier=1%
+ \doz@total=0%
+}%
+% \end{macrocode}
+% Finally, we define the macros for creating ``Doman''
+% (dozenal Roman) numerals. One, of course, is defined in
+% terms of the other. First, though, we need a modulus
+% operator:
+% \begin{macrocode}
+\newcount\doz@modulus%
+\def\doz@modulo#1#2{%
+ \doz@modulus=#1%
+ \divide\doz@modulus by#2%
+ \multiply\doz@modulus by#2%
+ \multiply\doz@modulus by-1%
+ \advance\doz@modulus by#1\relax%
+}%
+\newcount\doz@quotient%
+\def\doz@quot#1#2{%
+ \doz@quotient=#1%
+ \divide\doz@quotient by#2%
+}%
+% \end{macrocode}
+% Now we can move on to the meat of the operation:
+% \begin{macrocode}
+\newcount\doz@romct%
+\newif\ifdoz@domancaps%
+\def\doz@doman#1{%
+ \doz@romct=#1%
+ \doz@quot{\doz@romct}{1728}%
+ \loop\ifnum\doz@quotient>0%
+ \ifdoz@domancaps M\else m\fi%
+ \advance\doz@quotient by-1%
+ \advance\doz@romct by-1728%
+ \repeat
+ \ifnum\doz@romct>1440
+ \ifnum\doz@romct<1584
+ \ifdoz@domancaps CCM\else ccm\fi%
+ \advance\doz@romct by-1440
+ \else%\ifnum\doz@romct>1583
+ \ifdoz@domancaps CM\else cm\fi%
+ \advance\doz@romct by-1584
+ \fi
+ \fi
+ \ifnum\doz@romct>575%
+ \ifnum\doz@romct<719
+ \ifdoz@domancaps CCD\else ccd\fi%
+ \advance\doz@romct by-576
+ \else
+ \ifnum\doz@romct<864%
+ \ifdoz@domancaps CD\else cd\fi%
+ \advance\doz@romct by-720%
+ \fi
+ \fi
+ \else
+ \ifnum\doz@romct>719
+ \ifdoz@domancaps D\else d\fi%
+ \advance\doz@romct by-719%
+ \fi
+ \fi
+ \doz@quot{\doz@romct}{144}%
+ \loop\ifnum\doz@quotient>0%
+ \ifdoz@domancaps C\else c\fi%
+ \advance\doz@quotient by-1%
+ \advance\doz@romct by-144%
+ \repeat
+ \ifnum\doz@romct>119
+ \ifnum\doz@romct<132
+ \ifdoz@domancaps XXC\else xxc\fi%
+ \advance\doz@romct by-120
+ \else
+ \ifdoz@domancaps XC\else xc\fi%
+ \advance\doz@romct by-132
+ \fi
+ \fi
+ \ifnum\doz@romct>71
+ \ifdoz@domancaps L\else l\fi%
+ \advance\doz@romct by-72
+ \fi
+ \ifnum\doz@romct>47%
+ \ifnum\doz@romct>59%
+ \ifdoz@domancaps XL\else xl\fi%
+ \advance\doz@romct by-60%
+ \else
+ \ifdoz@domancaps XXL\else xxl\fi%
+ \advance\doz@romct by-48%
+ \fi
+ \fi
+ \doz@quot{\doz@romct}{12}%
+ \loop\ifnum\doz@quotient>0%
+ \ifdoz@domancaps X\else x\fi%
+ \advance\doz@quotient by-1%
+ \advance\doz@romct by-12%
+ \repeat
+ \doz@modulo{\doz@romct}{12}%
+ \ifnum\doz@modulus=10
+ \ifdoz@domancaps IIX\else iix\fi%
+ \advance\doz@romct by-10
+ \fi
+ \ifnum\doz@modulus=11
+ \ifdoz@domancaps IX\else ix\fi%
+ \advance\doz@romct by-11
+ \fi
+ \ifnum\doz@romct>5
+ \ifdoz@domancaps V\else v\fi%
+ \advance\doz@romct by-6
+ \fi
+ \ifnum\doz@romct>3%
+ \ifnum\doz@romct=4%
+ \ifdoz@domancaps IIV\else iiv\fi%
+ \advance\doz@romct by-4%
+ \else
+ \ifnum\doz@romct=5%
+ \ifdoz@domancaps IV\else iv\fi%
+ \advance\doz@romct by-5%
+ \fi
+ \ifnum\doz@romct=6%
+ \ifdoz@domancaps V\else v\fi%
+ \advance\doz@romct by-6
+ \fi
+ \fi
+ \fi
+ \doz@quot{\doz@romct}{1}%
+ \loop\ifnum\doz@quotient>0%
+ \ifdoz@domancaps I\else i\fi%
+ \advance\doz@quotient by-1%
+ \advance\doz@romct by-1%
+ \repeat
+}
+\protected\def\doman#1{%
+ \doz@domancapsfalse%
+ \doz@doman{#1}%
+}%
+\protected\def\Doman#1{%
+ \doz@domancapstrue%
+ \doz@doman{#1}%
+}%
+% \end{macrocode}
+% Now, of course, we simply redefine all the counters. This
+% covers only those counters included in the basic \LaTeX\
+% document classes, however, so if you've written your own,
+% you'll need to redefine them yourself.
+%
+% This first bit ensures that the counters are redefined
+% even if the command |\mainmatter| is not defined. We have
+% to do this outside of the |\g@addto@macro| below;
+% otherwise, in documents where |\mainmatter| is defined but
+% not used, the counters will not be redefined. This way,
+% they're redefined in all cases.
+%
+% This also takes care of ensuring that the counters are
+% only redefined if the ``nocounters'' options was
+% \emph{not} specified.
+% \begin{macrocode}
+\@ifundefined{nocounters}{%
+ \@ifundefined{c@page}{}{%
+ \renewcommand\thepage{\basexii{\value{page}}{\x}{\e}}}
+ \@ifundefined{c@footnote}{}{%
+ \renewcommand\thefootnote{%
+ \basexii{\value{footnote}}{\x}{\e}}}
+ \@ifundefined{c@part}{}{%
+ \renewcommand\thepart{%
+ \basexii{\value{part}}{\x}{\e}}}
+ \@ifundefined{c@subparagraph}{}{%
+ \renewcommand\thesubparagraph{%
+ \basexii{\value{subparagraph}}{\x}{\e}}}
+ \@ifundefined{c@paragraph}{}{%
+ \renewcommand\theparagraph{%
+ \basexii{\value{paragraph}}{\x}{\e}}}
+ \@ifundefined{c@equation}{}{%
+ \renewcommand\theequation{%
+ \basexii{\value{equation}}{\x}{\e}}}
+ \@ifundefined{c@figure}{}{%
+ \renewcommand\thefigure{%
+ \basexii{\value{figure}}{\x}{\e}}}
+ \@ifundefined{c@table}{}{%
+ \renewcommand\thetable{%
+ \basexii{\value{table}}{\x}{\e}}}
+ \@ifundefined{c@table}{}{%
+ \renewcommand\thempfootnote{%
+ \basexii{\value{mpfootnote}}{\x}{\e}}}
+ \@ifundefined{c@enumi}{}{%
+ \renewcommand\theenumi{%
+ \basexii{\value{enumi}}{\x}{\e}}}
+ \@ifundefined{c@enumii}{}{%
+ \renewcommand\theenumii{%
+ \basexii{\value{enumii}}{\x}{\e}}}
+ \@ifundefined{c@enumiii}{}{%
+ \renewcommand\theenumiii{%
+ \basexii{\value{enumiii}}{\x}{\e}}}
+ \@ifundefined{c@enumiv}{}{%
+ \renewcommand\theenumiv{%
+ \basexii{\value{enumiv}}{\x}{\e}}}
+ \@ifundefined{c@chapter}{%
+ \renewcommand\thesection{%
+ \basexii{\value{section}}{\x}{\e}}
+ \renewcommand\thesubsection{%
+ \thesection.\basexii{\value{subsection}}{\x}{\e}}
+ \renewcommand\thesubsubsection{%
+ \thesubsection.\basexii{\value{subsubsection}}{\x}{\e}}
+ }{
+ \renewcommand\thechapter{%
+ \basexii{\value{chapter}}{\x}{\e}}
+ \renewcommand\thesection{%
+ \thechapter.\basexii{\value{section}}{\x}{\e}}
+ \renewcommand\thesubsection{%
+ \thesection.\basexii{\value{subsection}}{\x}{\e}}
+ \renewcommand\thesubsubsection{%
+ \thesubsection.\basexii{\value{subsubsection}}{\x}{\e}}
+ }
+% \end{macrocode}
+% Finally, if the |\mainmatter| command is used, we need to
+% make sure that it doesn't mess up our numbering scheme.
+% \begin{macrocode}
+\@ifundefined{mainmatter}{}{%
+ \g@addto@macro\mainmatter{%
+ \@ifundefined{c@page}{}{%
+ \renewcommand\thepage{\basexii{\value{page}}{\x}{\e}}}
+ \@ifundefined{c@footnote}{}{%
+ \renewcommand\thefootnote{\basexii{\value{footnote}}{\x}{\e}}}
+ \@ifundefined{c@part}{}{%
+ \renewcommand\thepart{\basexii{\value{part}}{\x}{\e}}}
+ \@ifundefined{c@subparagraph}{}{%
+ \renewcommand\thesubparagraph{%
+ \basexii{\value{subparagraph}}{\x}{\e}}}
+ \@ifundefined{c@paragraph}{}{%
+ \renewcommand\theparagraph{%
+ \basexii{\value{paragraph}}{\x}{\e}}}
+ \@ifundefined{c@equation}{}{%
+ \renewcommand\theequation{%
+ \basexii{\value{equation}}{\x}{\e}}}
+ \@ifundefined{c@figure}{}{%
+ \renewcommand\thefigure{%
+ \basexii{\value{figure}}{\x}{\e}}}
+ \@ifundefined{c@table}{}{%
+ \renewcommand\thetable{%
+ \basexii{\value{table}}{\x}{\e}}}
+ \@ifundefined{c@table}{}{%
+ \renewcommand\thempfootnote{%
+ \basexii{\value{mpfootnote}}{\x}{\e}}}
+ \@ifundefined{c@enumi}{}{%
+ \renewcommand\theenumi{%
+ \basexii{\value{enumi}}{\x}{\e}}}
+ \@ifundefined{c@enumii}{}{%
+ \renewcommand\theenumii{%
+ \basexii{\value{enumii}}{\x}{\e}}}
+ \@ifundefined{c@enumiii}{}{%
+ \renewcommand\theenumiii{%
+ \basexii{\value{enumiii}}{\x}{\e}}}
+ \@ifundefined{c@enumiv}{}{%
+ \renewcommand\theenumiv{%
+ \basexii{\value{enumiv}}{\x}{\e}}}
+ \@ifundefined{c@chapter}{
+ \renewcommand\thesection{%
+ \basexii{\value{section}}{\x}{\e}}
+ \renewcommand\thesubsection{%
+ \thesection.\basexii{\value{subsection}}{\x}{\e}}
+ \renewcommand\thesubsubsection{%
+ \thesubsection.\basexii{\value{subsubsection}}{\x}{\e}}
+ }{
+ \renewcommand\thechapter{%
+ \basexii{\value{chapter}}{\x}{\e}}
+ \renewcommand\thesection{%
+ \thechapter.\basexii{\value{section}}{\x}{\e}}
+ \renewcommand\thesubsection{%
+ \thesection.\basexii{\value{subsection}}{\x}{\e}}
+ \renewcommand\thesubsubsection{%
+ \thesubsection.\basexii{\value{subsubsection}}{\x}{\e}}
+ } % end if it's defined
+ }
+}
+}{} % end redefinition of counters block
+% \end{macrocode}
+% Now we begin the number-to-word macros. First, we define
+% the macros which allow the user to specify his own words
+% for each rank:
+% \begin{macrocode}
+\def\dozrankoneword{unqua}
+\def\dozranktwoword{biqua}
+\def\dozrankthreeword{triqua}
+\def\dozrankfourword{quadqua}
+\def\dozrankfiveword{pentqua}
+\def\dozranksixword{hexqua}
+\def\dozranksevenword{septqua}
+\def\dozrankeightword{octqua}
+\def\dozranknineword{ennqua}
+\def\dozranktenword{decqua}
+\def\dozrankelvword{elvqua}
+% \end{macrocode}
+% Then we define some |\if|s to help us decide how we should
+% capitalize the end result.
+% \begin{macrocode}
+\newif\ifDOZcaps\DOZcapsfalse
+\newif\ifDozcaps\Dozcapsfalse
+% \end{macrocode}
+% Then, we give some utility macros:
+% \begin{macrocode}
+\def\doz@expandloop#1{\doz@xloop#1\relax}
+\def\doz@xloop#1{%
+ \ifx\relax#1\else%
+ \doz@numword#1%
+ \expandafter\doz@xloop\fi%
+}
+\def\printdozrankword{}
+\def\doz@rankword{%
+ \ifnum\doz@countchar=12
+ \def\printdozrankword{\dozrankelvword}%
+ \fi
+ \ifnum\doz@countchar=11
+ \def\printdozrankword{\dozranktenword}%
+ \fi
+ \ifnum\doz@countchar=10
+ \def\printdozrankword{\dozranknineword}%
+ \fi
+ \ifnum\doz@countchar=9
+ \def\printdozrankword{\dozrankeightword}%
+ \fi
+ \ifnum\doz@countchar=8
+ \def\printdozrankword{\dozranksevenword}%
+ \fi
+ \ifnum\doz@countchar=7
+ \def\printdozrankword{\dozranksixword}%
+ \fi
+ \ifnum\doz@countchar=6
+ \def\printdozrankword{\dozrankfiveword}%
+ \fi
+ \ifnum\doz@countchar=5
+ \def\printdozrankword{\dozrankfourword}%
+ \fi
+ \ifnum\doz@countchar=4
+ \def\printdozrankword{\dozrankthreeword}%
+ \fi
+ \ifnum\doz@countchar=3
+ \def\printdozrankword{\dozranktwoword}%
+ \fi
+ \ifnum\doz@countchar=2
+ \def\printdozrankword{\dozrankoneword}%
+ \fi
+ \ifnum\doz@countchar=1
+ \def\printdozrankword{\relax}%
+ \fi
+ \advance\doz@countchar by-1
+ \ifDOZcaps
+ \edef\printdozrankword{\uppercase{\printdozrankword}}%
+ \fi
+ \ifDozcaps
+ \edef\printdozrankword{\capitalisewords{\printdozrankword}}%
+ \fi
+ \ifnum\doz@countchar>0
+ \ \printdozrankword\ %
+ \else
+ \printdozrankword%
+ \fi
+}%
+\def\doz@numword#1{%
+ \IfStrEq{#1}{0}{\def\doz@numberword{zero}}{}%
+ \IfStrEq{#1}{1}{\def\doz@numberword{one}}{}%
+ \IfStrEq{#1}{2}{\def\doz@numberword{two}}{}%
+ \IfStrEq{#1}{3}{\def\doz@numberword{three}}{}%
+ \IfStrEq{#1}{4}{\def\doz@numberword{four}}{}%
+ \IfStrEq{#1}{5}{\def\doz@numberword{five}}{}%
+ \IfStrEq{#1}{6}{\def\doz@numberword{six}}{}%
+ \IfStrEq{#1}{7}{\def\doz@numberword{seven}}{}%
+ \IfStrEq{#1}{8}{\def\doz@numberword{eight}}{}%
+ \IfStrEq{#1}{9}{\def\doz@numberword{nine}}{}%
+ \IfStrEq{#1}{X}{\def\doz@numberword{ten}}{}%
+ \IfStrEq{#1}{E}{\def\doz@numberword{eleven}}{}%
+ \ifDOZcaps
+ \edef\doz@numberword{\uppercase{\doz@numberword}}%
+ \fi
+ \ifDozcaps
+ \edef\doz@numberword{\makefirstuc{\doz@numberword}}%
+ \fi
+ \doz@numberword%
+ \doz@rankword%
+}%
+\def\doznumtoword#1{%
+ \edef\thenumber{\basexii{\value{#1}}{X}{E}}%
+ \expandafter\doz@charcount\expandafter{\thenumber}%
+ \expandafter\doz@expandloop\expandafter{\thenumber}%
+ \doz@countchar=0%
+}%
+\def\DOZnumtoword#1{%
+ \DOZcapstrue%
+ \doznumtoword{#1}%
+ \DOZcapsfalse%
+}%
+\def\Doznumtoword#1{%
+ \Dozcapstrue%
+ \doznumtoword{#1}%
+ \Dozcapsfalse%
+}%
+% \end{macrocode}
+% Our last job is to make sure the semicolon (Humphrey
+% point) works correctly as a radix point in math mode.
+% This code is adapted from the |icomma| package by Walter
+% Schmidt.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \mathchardef\humphrey\mathcode`\;%
+ \mathcode`\;="8000 %
+}
+{\catcode`;=\active
+ \gdef;{\futurelet\@let@token\sm@rtsemi}
+}
+\def\sm@rtsemi{%
+ \ifx\@let@token\@sptoken \else
+ \ifx\@let@token\space \else
+ \mathord\fi\fi \humphrey}
+% \end{macrocode}
+% And that's the end. Thanks for reading,
+% folks; please email me with any suggestions or improvements.
diff --git a/fonts/dozenal/dozenal.ins b/fonts/dozenal/dozenal.ins
new file mode 100644
index 0000000000..c3ea430f89
--- /dev/null
+++ b/fonts/dozenal/dozenal.ins
@@ -0,0 +1,63 @@
+% +AMDG This document was begun on 17 Jan 11EE, the
+% Commemoration of Ss. Marius, Martha, Audifax, and Abachum,
+% MM, and of St. Canute, M, and it is humbly dedicated to
+% them and to the Immaculate Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+%
+% This document is copyright 2015-2018 by Donald P. Goodman, and is
+% released publicly under the LaTeX Project Public License. The
+% distribution and modification of this work is constrained by the
+% conditions of that license. See
+% http://www.latex-project.org/lppl.txt
+% for the text of the license. This document is released
+% under version 1.3 of that license, and this work may be distributed
+% or modified under the terms of that license or, at your option, any
+% later version.
+%
+% This work has the LPPL maintenance status 'maintained'.
+%
+% The Current Maintainer of this work is Donald P. Goodman
+% (dgoodmaniii@gmail.com).
+%
+% This work consists of the files listed in dozenalfilelist.txt.
+
+\input docstrip.tex
+
+\preamble
+This is a generated file.
+
+This document is copyright 2015 by Donald P. Goodman, and is
+released publicly under the LaTeX Project Public License. The
+distribution and modification of this work is constrained by the
+conditions of that license. See
+ http://www.latex-project.org/lppl.txt
+for the text of the license. This document is released
+under version 1.3 of that license, and this work may be distributed
+or modified under the terms of that license or, at your option, any
+later version.
+
+This work has the LPPL maintenance status 'maintained'.
+
+The Current Maintainer of this work is Donald P. Goodman
+(dgoodmaniii@gmail.com).
+
+This work consists of the files listed in dozenalfilelist.txt.
+\endpreamble
+
+\keepsilent
+\generate{\file{dozenal.sty}{\from{dozenal.dtx}{package}}}
+
+\Msg{******************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* following file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space dozenal.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file dozenal.dtx}
+\Msg{* through LaTeX.}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{******************************************************}
+
+\endbatchfile
diff --git a/fonts/dozenal/dozenalfilelist.txt b/fonts/dozenal/dozenalfilelist.txt
new file mode 100644
index 0000000000..8ebc8d9c18
--- /dev/null
+++ b/fonts/dozenal/dozenalfilelist.txt
@@ -0,0 +1,119 @@
+dozchars10.mf
+dozchars12.mf
+dozchars17.mf
+dozchars6.mf
+dozchars7.mf
+dozchars8.mf
+dozchars9.mf
+dozchb10.mf
+dozchbx10.mf
+dozchbx12.mf
+dozchbx5.mf
+dozchbx6.mf
+dozchbx7.mf
+dozchbx8.mf
+dozchbx9.mf
+dozchbxi10.mf
+dozchbxsl10.mf
+dozchit10.mf
+dozchit12.mf
+dozchit7.mf
+dozchit8.mf
+dozchit9.mf
+dozchsl10.mf
+dozchsl12.mf
+dozchsl8.mf
+dozchsl9.mf
+dozenalb.mf
+dozenali.mf
+dozenalitalic.mf
+dozenal.mf
+dozenalroman.mf
+dozchars10.tfm
+dozchars12.tfm
+dozchars17.tfm
+dozchars6.tfm
+dozchars7.tfm
+dozchars8.tfm
+dozchars9.tfm
+dozchb10.tfm
+dozchbx10.tfm
+dozchbx12.tfm
+dozchbx5.tfm
+dozchbx6.tfm
+dozchbx7.tfm
+dozchbx8.tfm
+dozchbx9.tfm
+dozchbxi10.tfm
+dozchbxsl10.tfm
+dozchit10.tfm
+dozchit12.tfm
+dozchit7.tfm
+dozchit8.tfm
+dozchit9.tfm
+dozchsl10.tfm
+dozchsl12.tfm
+dozchsl8.tfm
+dozchsl9.tfm
+fdz.map
+dozchars10.pfb
+dozchars12.pfb
+dozchars17.pfb
+dozchars6.pfb
+dozchars7.pfb
+dozchars8.pfb
+dozchars9.pfb
+dozchb10.pfb
+dozchbx10.pfb
+dozchbx12.pfb
+dozchbx5.pfb
+dozchbx6.pfb
+dozchbx7.pfb
+dozchbx8.pfb
+dozchbx9.pfb
+dozchbxi10.pfb
+dozchbxsl10.pfb
+dozchit10.pfb
+dozchit12.pfb
+dozchit7.pfb
+dozchit8.pfb
+dozchit9.pfb
+dozchsl10.pfb
+dozchsl12.pfb
+dozchsl8.pfb
+dozchsl9.pfb
+dozchars10.afm
+dozchars12.afm
+dozchars17.afm
+dozchars6.afm
+dozchars7.afm
+dozchars8.afm
+dozchars9.afm
+dozchb10.afm
+dozchbx10.afm
+dozchbx12.afm
+dozchbx5.afm
+dozchbx6.afm
+dozchbx7.afm
+dozchbx8.afm
+dozchbx9.afm
+dozchbxi10.afm
+dozchbxsl10.afm
+dozchit10.afm
+dozchit12.afm
+dozchit7.afm
+dozchit8.afm
+dozchit9.afm
+dozchsl10.afm
+dozchsl12.afm
+dozchsl8.afm
+dozchsl9.afm
+testfdzchars.tex
+testdozchars.tex
+dozenal.ins
+dozenal.dtx
+dozenal.sty
+dozenal.pdf
+README
+CHANGES
+lppl.txt
diff --git a/fonts/dozenal/lppl.txt b/fonts/dozenal/lppl.txt
new file mode 100644
index 0000000000..2244313901
--- /dev/null
+++ b/fonts/dozenal/lppl.txt
@@ -0,0 +1,416 @@
+The LaTeX Project Public License
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+LPPL Version 1.3c 2008-05-04
+
+Copyright 1999 2002-2008 LaTeX3 Project
+ Everyone is allowed to distribute verbatim copies of this
+ license document, but modification of it is not allowed.
+
+
+PREAMBLE
+========
+
+The LaTeX Project Public License (LPPL) is the primary license under
+which the LaTeX kernel and the base LaTeX packages are distributed.
+
+You may use this license for any work of which you hold the copyright
+and which you wish to distribute. This license may be particularly
+suitable if your work is TeX-related (such as a LaTeX package), but
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
+
+The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
+below, gives instructions, examples, and recommendations for authors
+who are considering distributing their works under this license.
+
+This license gives conditions under which a work may be distributed
+and modified, as well as conditions under which modified versions of
+that work may be distributed.
+
+We, the LaTeX3 Project, believe that the conditions below give you
+the freedom to make and distribute modified versions of your work
+that conform with whatever technical specifications you wish while
+maintaining the availability, integrity, and reliability of
+that work. If you do not see how to achieve your goal while
+meeting these conditions, then read the document `cfgguide.tex'
+and `modguide.tex' in the base LaTeX distribution for suggestions.
+
+
+DEFINITIONS
+===========
+
+In this license document the following terms are used:
+
+ `Work'
+ Any work being distributed under this License.
+
+ `Derived Work'
+ Any work that under any applicable law is derived from the Work.
+
+ `Modification'
+ Any procedure that produces a Derived Work under any applicable
+ law -- for example, the production of a file containing an
+ original file associated with the Work or a significant portion of
+ such a file, either verbatim or with modifications and/or
+ translated into another language.
+
+ `Modify'
+ To apply any procedure that produces a Derived Work under any
+ applicable law.
+
+ `Distribution'
+ Making copies of the Work available from one person to another, in
+ whole or in part. Distribution includes (but is not limited to)
+ making any electronic components of the Work accessible by
+ file transfer protocols such as FTP or HTTP or by shared file
+ systems such as Sun's Network File System (NFS).
+
+ `Compiled Work'
+ A version of the Work that has been processed into a form where it
+ is directly usable on a computer system. This processing may
+ include using installation facilities provided by the Work,
+ transformations of the Work, copying of components of the Work, or
+ other activities. Note that modification of any installation
+ facilities provided by the Work constitutes modification of the Work.
+
+ `Current Maintainer'
+ A person or persons nominated as such within the Work. If there is
+ no such explicit nomination then it is the `Copyright Holder' under
+ any applicable law.
+
+ `Base Interpreter'
+ A program or process that is normally needed for running or
+ interpreting a part or the whole of the Work.
+
+ A Base Interpreter may depend on external components but these
+ are not considered part of the Base Interpreter provided that each
+ external component clearly identifies itself whenever it is used
+ interactively. Unless explicitly specified when applying the
+ license to the Work, the only applicable Base Interpreter is a
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
+
+
+
+CONDITIONS ON DISTRIBUTION AND MODIFICATION
+===========================================
+
+1. Activities other than distribution and/or modification of the Work
+are not covered by this license; they are outside its scope. In
+particular, the act of running the Work is not restricted and no
+requirements are made concerning any offers of support for the Work.
+
+2. You may distribute a complete, unmodified copy of the Work as you
+received it. Distribution of only part of the Work is considered
+modification of the Work, and no right to distribute such a Derived
+Work may be assumed under the terms of this clause.
+
+3. You may distribute a Compiled Work that has been generated from a
+complete, unmodified copy of the Work as distributed under Clause 2
+above, as long as that Compiled Work is distributed in such a way that
+the recipients may install the Compiled Work on their system exactly
+as it would have been installed if they generated a Compiled Work
+directly from the Work.
+
+4. If you are the Current Maintainer of the Work, you may, without
+restriction, modify the Work, thus creating a Derived Work. You may
+also distribute the Derived Work without restriction, including
+Compiled Works generated from the Derived Work. Derived Works
+distributed in this manner by the Current Maintainer are considered to
+be updated versions of the Work.
+
+5. If you are not the Current Maintainer of the Work, you may modify
+your copy of the Work, thus creating a Derived Work based on the Work,
+and compile this Derived Work, thus creating a Compiled Work based on
+the Derived Work.
+
+6. If you are not the Current Maintainer of the Work, you may
+distribute a Derived Work provided the following conditions are met
+for every component of the Work unless that component clearly states
+in the copyright notice that it is exempt from that condition. Only
+the Current Maintainer is allowed to add such statements of exemption
+to a component of the Work.
+
+ a. If a component of this Derived Work can be a direct replacement
+ for a component of the Work when that component is used with the
+ Base Interpreter, then, wherever this component of the Work
+ identifies itself to the user when used interactively with that
+ Base Interpreter, the replacement component of this Derived Work
+ clearly and unambiguously identifies itself as a modified version
+ of this component to the user when used interactively with that
+ Base Interpreter.
+
+ b. Every component of the Derived Work contains prominent notices
+ detailing the nature of the changes to that component, or a
+ prominent reference to another file that is distributed as part
+ of the Derived Work and that contains a complete and accurate log
+ of the changes.
+
+ c. No information in the Derived Work implies that any persons,
+ including (but not limited to) the authors of the original version
+ of the Work, provide any support, including (but not limited to)
+ the reporting and handling of errors, to recipients of the
+ Derived Work unless those persons have stated explicitly that
+ they do provide such support for the Derived Work.
+
+ d. You distribute at least one of the following with the Derived Work:
+
+ 1. A complete, unmodified copy of the Work;
+ if your distribution of a modified component is made by
+ offering access to copy the modified component from a
+ designated place, then offering equivalent access to copy
+ the Work from the same or some similar place meets this
+ condition, even though third parties are not compelled to
+ copy the Work along with the modified component;
+
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
+
+7. If you are not the Current Maintainer of the Work, you may
+distribute a Compiled Work generated from a Derived Work, as long as
+the Derived Work is distributed to all recipients of the Compiled
+Work, and as long as the conditions of Clause 6, above, are met with
+regard to the Derived Work.
+
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
+it is distributed by the Current Maintainer under Clause 4, above.
+
+9. Distribution of the Work or any Derived Work in an alternative
+format, where the Work or that Derived Work (in whole or in part) is
+then produced by applying some process to that format, does not relax or
+nullify any sections of this license as they pertain to the results of
+applying that process.
+
+10. a. A Derived Work may be distributed under a different license
+ provided that license itself honors the conditions listed in
+ Clause 6 above, in regard to the Work, though it does not have
+ to honor the rest of the conditions in this license.
+
+ b. If a Derived Work is distributed under a different license, that
+ Derived Work must provide sufficient documentation as part of
+ itself to allow each recipient of that Derived Work to honor the
+ restrictions in Clause 6 above, concerning changes from the Work.
+
+11. This license places no restrictions on works that are unrelated to
+the Work, nor does this license place any restrictions on aggregating
+such works with the Work by any means.
+
+12. Nothing in this license is intended to, or may be used to, prevent
+complete compliance by all parties with all applicable laws.
+
+
+NO WARRANTY
+===========
+
+There is no warranty for the Work. Except when otherwise stated in
+writing, the Copyright Holder provides the Work `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 Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
+programs), even if the Copyright Holder or said author or said other
+party has been advised of the possibility of such damages.
+
+
+MAINTENANCE OF THE WORK
+=======================
+
+The Work has the status `author-maintained' if the Copyright Holder
+explicitly and prominently states near the primary copyright notice in
+the Work that the Work can only be maintained by the Copyright Holder
+or simply that it is `author-maintained'.
+
+The Work has the status `maintained' if there is a Current Maintainer
+who has indicated in the Work that they are willing to receive error
+reports for the Work (for example, by supplying a valid e-mail
+address). It is not required for the Current Maintainer to acknowledge
+or act upon these error reports.
+
+The Work changes from status `maintained' to `unmaintained' if there
+is no Current Maintainer, or the person stated to be Current
+Maintainer of the work cannot be reached through the indicated means
+of communication for a period of six months, and there are no other
+significant signs of active maintenance.
+
+You can become the Current Maintainer of the Work by agreement with
+any existing Current Maintainer to take over this role.
+
+If the Work is unmaintained, you can become the Current Maintainer of
+the Work through the following steps:
+
+ 1. Make a reasonable attempt to trace the Current Maintainer (and
+ the Copyright Holder, if the two differ) through the means of
+ an Internet or similar search.
+
+ 2. If this search is successful, then enquire whether the Work
+ is still maintained.
+
+ a. If it is being maintained, then ask the Current Maintainer
+ to update their communication data within one month.
+
+ b. If the search is unsuccessful or no action to resume active
+ maintenance is taken by the Current Maintainer, then announce
+ within the pertinent community your intention to take over
+ maintenance. (If the Work is a LaTeX work, this could be
+ done, for example, by posting to comp.text.tex.)
+
+ 3a. If the Current Maintainer is reachable and agrees to pass
+ maintenance of the Work to you, then this takes effect
+ immediately upon announcement.
+
+ b. If the Current Maintainer is not reachable and the Copyright
+ Holder agrees that maintenance of the Work be passed to you,
+ then this takes effect immediately upon announcement.
+
+ 4. If you make an `intention announcement' as described in 2b. above
+ and after three months your intention is challenged neither by
+ the Current Maintainer nor by the Copyright Holder nor by other
+ people, then you may arrange for the Work to be changed so as
+ to name you as the (new) Current Maintainer.
+
+ 5. If the previously unreachable Current Maintainer becomes
+ reachable once more within three months of a change completed
+ under the terms of 3b) or 4), then that Current Maintainer must
+ become or remain the Current Maintainer upon request provided
+ they then update their communication data within one month.
+
+A change in the Current Maintainer does not, of itself, alter the fact
+that the Work is distributed under the LPPL license.
+
+If you become the Current Maintainer of the Work, you should
+immediately provide, within the Work, a prominent and unambiguous
+statement of your status as Current Maintainer. You should also
+announce your new status to the same pertinent community as
+in 2b) above.
+
+
+WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
+======================================================
+
+This section contains important instructions, examples, and
+recommendations for authors who are considering distributing their
+works under this license. These authors are addressed as `you' in
+this section.
+
+Choosing This License or Another License
+----------------------------------------
+
+If for any part of your work you want or need to use *distribution*
+conditions that differ significantly from those in this license, then
+do not refer to this license anywhere in your work but, instead,
+distribute your work under a different license. You may use the text
+of this license as a model for your own license, but your license
+should not refer to the LPPL or otherwise give the impression that
+your work is distributed under the LPPL.
+
+The document `modguide.tex' in the base LaTeX distribution explains
+the motivation behind the conditions of this license. It explains,
+for example, why distributing LaTeX under the GNU General Public
+License (GPL) was considered inappropriate. Even if your work is
+unrelated to LaTeX, the discussion in `modguide.tex' may still be
+relevant, and authors intending to distribute their works under any
+license are encouraged to read it.
+
+A Recommendation on Modification Without Distribution
+-----------------------------------------------------
+
+It is wise never to modify a component of the Work, even for your own
+personal use, without also meeting the above conditions for
+distributing the modified component. While you might intend that such
+modifications will never be distributed, often this will happen by
+accident -- you may forget that you have modified that component; or
+it may not occur to you when allowing others to access the modified
+version that you are thus distributing it and violating the conditions
+of this license in ways that could have legal implications and, worse,
+cause problems for the community. It is therefore usually in your
+best interest to keep your copy of the Work identical with the public
+one. Many works provide ways to control the behavior of that work
+without altering any of its licensed components.
+
+How to Use This License
+-----------------------
+
+To use this license, place in each of the components of your work both
+an explicit copyright notice including your name and the year the work
+was authored and/or last substantially modified. Include also a
+statement that the distribution and/or modification of that
+component is constrained by the conditions in this license.
+
+Here is an example of such a notice and statement:
+
+ %% pig.dtx
+ %% Copyright 2005 M. Y. Name
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2005/12/01 or later.
+ %
+ % This work has the LPPL maintenance status `maintained'.
+ %
+ % The Current Maintainer of this work is M. Y. Name.
+ %
+ % This work consists of the files pig.dtx and pig.ins
+ % and the derived file pig.sty.
+
+Given such a notice and statement in a file, the conditions
+given in this license document would apply, with the `Work' referring
+to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
+generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
+referring to any `LaTeX-Format', and both `Copyright Holder' and
+`Current Maintainer' referring to the person `M. Y. Name'.
+
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
+
+
+Important Recommendations
+-------------------------
+
+ Defining What Constitutes the Work
+
+ The LPPL requires that distributions of the Work contain all the
+ files of the Work. It is therefore important that you provide a
+ way for the licensee to determine which files constitute the Work.
+ This could, for example, be achieved by explicitly listing all the
+ files of the Work near the copyright notice of each file or by
+ using a line such as:
+
+ % This work consists of all files listed in manifest.txt.
+
+ in that place. In the absence of an unequivocal list it might be
+ impossible for the licensee to determine what is considered by you
+ to comprise the Work and, in such a case, the licensee would be
+ entitled to make reasonable conjectures as to which files comprise
+ the Work.
+
diff --git a/fonts/dozenal/map/dozenal.map b/fonts/dozenal/map/dozenal.map
new file mode 100644
index 0000000000..299aa875f7
--- /dev/null
+++ b/fonts/dozenal/map/dozenal.map
@@ -0,0 +1,26 @@
+dozchars10 <[tex256.enc <dozchars10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchars12 <[tex256.enc <dozchars12.pfb " TeXBase1Encoding ReEncodeFont "
+dozchars17 <[tex256.enc <dozchars17.pfb " TeXBase1Encoding ReEncodeFont "
+dozchars6 <[tex256.enc <dozchars6.pfb " TeXBase1Encoding ReEncodeFont "
+dozchars7 <[tex256.enc <dozchars7.pfb " TeXBase1Encoding ReEncodeFont "
+dozchars8 <[tex256.enc <dozchars8.pfb " TeXBase1Encoding ReEncodeFont "
+dozchars9 <[tex256.enc <dozchars9.pfb " TeXBase1Encoding ReEncodeFont "
+dozchb10 <[tex256.enc <dozchb10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx10 <[tex256.enc <dozchbx10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx12 <[tex256.enc <dozchbx12.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx5 <[tex256.enc <dozchbx5.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx6 <[tex256.enc <dozchbx6.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx7 <[tex256.enc <dozchbx7.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx8 <[tex256.enc <dozchbx8.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbx9 <[tex256.enc <dozchbx9.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbxi10 <[tex256.enc <dozchbxi10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchbxsl10 <[tex256.enc <dozchbxsl10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchit10 <[tex256.enc <dozchit10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchit12 <[tex256.enc <dozchit12.pfb " TeXBase1Encoding ReEncodeFont "
+dozchit7 <[tex256.enc <dozchit7.pfb " TeXBase1Encoding ReEncodeFont "
+dozchit8 <[tex256.enc <dozchit8.pfb " TeXBase1Encoding ReEncodeFont "
+dozchit9 <[tex256.enc <dozchit9.pfb " TeXBase1Encoding ReEncodeFont "
+dozchsl10 <[tex256.enc <dozchsl10.pfb " TeXBase1Encoding ReEncodeFont "
+dozchsl12 <[tex256.enc <dozchsl12.pfb " TeXBase1Encoding ReEncodeFont "
+dozchsl8 <[tex256.enc <dozchsl8.pfb " TeXBase1Encoding ReEncodeFont "
+dozchsl9 <[tex256.enc <dozchsl9.pfb " TeXBase1Encoding ReEncodeFont "
diff --git a/fonts/dozenal/mf/dozchars10.mf b/fonts/dozenal/mf/dozchars10.mf
new file mode 100644
index 0000000000..434626ca90
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars10.mf
@@ -0,0 +1,71 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size:=10pt#;
+
+mode_setup;
+
+u#=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal
diff --git a/fonts/dozenal/mf/dozchars12.mf b/fonts/dozenal/mf/dozchars12.mf
new file mode 100644
index 0000000000..d5725d88b7
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars12.mf
@@ -0,0 +1,72 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size 12pt#;
+
+mode_setup;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchars17.mf b/fonts/dozenal/mf/dozchars17.mf
new file mode 100644
index 0000000000..6c56d4da8f
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars17.mf
@@ -0,0 +1,72 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size 17.28pt#;
+
+mode_setup;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchars6.mf b/fonts/dozenal/mf/dozchars6.mf
new file mode 100644
index 0000000000..ad52f848d0
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars6.mf
@@ -0,0 +1,72 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size 6pt#;
+
+mode_setup;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchars7.mf b/fonts/dozenal/mf/dozchars7.mf
new file mode 100644
index 0000000000..ea86d387b9
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars7.mf
@@ -0,0 +1,72 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size 7pt#;
+
+mode_setup;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchars8.mf b/fonts/dozenal/mf/dozchars8.mf
new file mode 100644
index 0000000000..f76638fd5e
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars8.mf
@@ -0,0 +1,72 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size 8pt#;
+
+mode_setup;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchars9.mf b/fonts/dozenal/mf/dozchars9.mf
new file mode 100644
index 0000000000..d145e6184f
--- /dev/null
+++ b/fonts/dozenal/mf/dozchars9.mf
@@ -0,0 +1,72 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+font_identifier:="dozchars"; font_size 9pt#;
+
+mode_setup;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchb10.mf b/fonts/dozenal/mf/dozchb10.mf
new file mode 100644
index 0000000000..fa2b44fdf1
--- /dev/null
+++ b/fonts/dozenal/mf/dozchb10.mf
@@ -0,0 +1,73 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchb"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=10/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx10.mf b/fonts/dozenal/mf/dozchbx10.mf
new file mode 100644
index 0000000000..b49e8dbe36
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx10.mf
@@ -0,0 +1,73 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchbx"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx12.mf b/fonts/dozenal/mf/dozchbx12.mf
new file mode 100644
index 0000000000..ed9e9c65ca
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx12.mf
@@ -0,0 +1,73 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchbx"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx5.mf b/fonts/dozenal/mf/dozchbx5.mf
new file mode 100644
index 0000000000..0f83a5b2a6
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx5.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx5.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx6.mf b/fonts/dozenal/mf/dozchbx6.mf
new file mode 100644
index 0000000000..16b3208201
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx6.mf
@@ -0,0 +1,73 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchbx"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx7.mf b/fonts/dozenal/mf/dozchbx7.mf
new file mode 100644
index 0000000000..94fad7777c
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx7.mf
@@ -0,0 +1,73 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchbx"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx8.mf b/fonts/dozenal/mf/dozchbx8.mf
new file mode 100644
index 0000000000..a2670bb761
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx8.mf
@@ -0,0 +1,73 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchbx"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbx9.mf b/fonts/dozenal/mf/dozchbx9.mf
new file mode 100644
index 0000000000..72c726edec
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbx9.mf
@@ -0,0 +1,74 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+
+mode_setup;
+
+font_identifier:="dozchbx"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+input dozenalroman
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbxi10.mf b/fonts/dozenal/mf/dozchbxi10.mf
new file mode 100644
index 0000000000..ee8a761728
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbxi10.mf
@@ -0,0 +1,83 @@
+% +AMDG This document was begun on 4 December 2008, the
+% feast of a saint I can't remember, and it is humbly
+% dedicated to him and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchbxi"; font_size 10pt#;
+
+u#:=21.2/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=11/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=49/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=50/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+%square_dots:=false; % should dots be square?
+%hefty:=false; % should we try hard not to be overweight?
+%serifs:=true; % should serifs and bulbs be attached?
+%monospace:=false; % should all characters have the same width?
+%variant_g:=true; % should an italic-style g be used?
+%low_asterisk:=false; % should the asterisk be centered at the axis?
+%math_fitting:=false; % should math-mode spacing be used?
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenali % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchbxsl10.mf b/fonts/dozenal/mf/dozchbxsl10.mf
new file mode 100644
index 0000000000..33dc10fb87
--- /dev/null
+++ b/fonts/dozenal/mf/dozchbxsl10.mf
@@ -0,0 +1,75 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+mode_setup;
+
+font_identifier:="dozchbxsl"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenalb % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchit10.mf b/fonts/dozenal/mf/dozchit10.mf
new file mode 100644
index 0000000000..f3f2cbb19e
--- /dev/null
+++ b/fonts/dozenal/mf/dozchit10.mf
@@ -0,0 +1,75 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+mode_setup;
+
+font_identifier:="dozchit"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenali % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchit12.mf b/fonts/dozenal/mf/dozchit12.mf
new file mode 100644
index 0000000000..365d54dce0
--- /dev/null
+++ b/fonts/dozenal/mf/dozchit12.mf
@@ -0,0 +1,75 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+mode_setup;
+
+font_identifier:="dozchit"; font_size 12pt#;
+
+u#:=21.6/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10.8/36pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=12/36pt#; % lowercase hairline breadth
+stem#:=26/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=38/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenali % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchit7.mf b/fonts/dozenal/mf/dozchit7.mf
new file mode 100644
index 0000000000..a3e36907ea
--- /dev/null
+++ b/fonts/dozenal/mf/dozchit7.mf
@@ -0,0 +1,75 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+mode_setup;
+
+font_identifier:="dozchit"; font_size 7pt#;
+
+u#:=14.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=10.5/36pt#; % lowercase hairline breadth
+stem#:=18.5/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=10.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24.5/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenali % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchit8.mf b/fonts/dozenal/mf/dozchit8.mf
new file mode 100644
index 0000000000..8a6df9fe95
--- /dev/null
+++ b/fonts/dozenal/mf/dozchit8.mf
@@ -0,0 +1,75 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+mode_setup;
+
+font_identifier:="dozchit"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenali % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchit9.mf b/fonts/dozenal/mf/dozchit9.mf
new file mode 100644
index 0000000000..56eb3915b3
--- /dev/null
+++ b/fonts/dozenal/mf/dozchit9.mf
@@ -0,0 +1,75 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+mode_setup;
+
+font_identifier:="dozchit"; font_size 9pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=8.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenali % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchsl10.mf b/fonts/dozenal/mf/dozchsl10.mf
new file mode 100644
index 0000000000..66885b90df
--- /dev/null
+++ b/fonts/dozenal/mf/dozchsl10.mf
@@ -0,0 +1,76 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchsl"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchsl12.mf b/fonts/dozenal/mf/dozchsl12.mf
new file mode 100644
index 0000000000..9fe3adb253
--- /dev/null
+++ b/fonts/dozenal/mf/dozchsl12.mf
@@ -0,0 +1,76 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchsl"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchsl8.mf b/fonts/dozenal/mf/dozchsl8.mf
new file mode 100644
index 0000000000..c8af59b960
--- /dev/null
+++ b/fonts/dozenal/mf/dozchsl8.mf
@@ -0,0 +1,76 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchsl"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozchsl9.mf b/fonts/dozenal/mf/dozchsl9.mf
new file mode 100644
index 0000000000..7b76fcfd4c
--- /dev/null
+++ b/fonts/dozenal/mf/dozchsl9.mf
@@ -0,0 +1,76 @@
+% +AMDG This document was begun on 22 November 2008, the
+% feast of St. Cecilia, Virgin and Martyr; and it is humbly
+% dedicated to her and to the Immaculate Heart of Mary for
+% their prayers, and to the Sacred Heart of Jesus for His
+% mercy.
+
+mode_setup;
+
+font_identifier:="dozchsl"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+font_slant slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio scaled granularity;
+
+input dozenalitalic
+input dozenal % switch to the driver file
diff --git a/fonts/dozenal/mf/dozenal.mf b/fonts/dozenal/mf/dozenal.mf
new file mode 100644
index 0000000000..9fbbdeec7e
--- /dev/null
+++ b/fonts/dozenal/mf/dozenal.mf
@@ -0,0 +1,149 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate Heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+define_pixels(u,fig_height,cap_stem,thin_join,o,stem,stem,bar,tiny);
+define_blacker_pixels(thin_join, curve);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the numeral X %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("X",9u#,fig_height#,0); "The Numeral X";
+
+z1 = (w-u, h+o/2);
+z2 = (w-u, (h+o/2)-1.5*cap_stem);
+z3 = z2 - (2thin_join, 0);
+x4 = (w-u-2thin_join);
+y4 = ((h+o/2) - ((2cap_stem/3)));
+z5 = (u+2thin_join, ((h+o/2) - ((2*cap_stem)/3)));
+z6 = (w-u, fig_height/3);
+z7 = (w/2, 0-o);
+z8 = (u, fig_height/4);
+z9 = z8 + (5tiny/2, 5tiny/2);
+z10 = z8 + (5tiny,0);
+z11 = z10 - (3tiny, tiny);
+z12 = z7 + (0, 1.5thin_join);
+z13 = z6 - (cap_stem, 0);
+z14 = z5 - (2thin_join, 0);
+z15 = (u, h+o/2);
+
+path X;
+X = z1--z2--z3--z4--z5{z6-z5}..z6..{left}z7{left}..{up}z8..z9..z10..{up}z11{down}..{right}z12{right}..{up}z13..{z14-z13}z14--z15--cycle;
+
+fill X reflectedabout ((w/2,0),(w/2,h));
+
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the numeral E %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("E",9u#,fig_height#,0); "The Numeral E";
+
+z1 = (w/2, h+o);
+z2 = (w/2, 0-o);
+z3 = (w/2, h/2);
+z4 = (w-u, h/4-5tiny/2);
+z5 = (w-u, 3h/4+5tiny/2);
+z6 = (u-o, (h/4));
+z7 = (u-o, (3h/4));
+z8 = z9 + (3tiny,-tiny);
+z9 = z4 - (5tiny, 0);
+z10 = z9 + (5tiny/2, 5tiny/2);
+z11 = z12 + (3tiny,tiny);
+z12 = z5 - (5tiny, 0);
+z13 = z12 + (5tiny/2, -5tiny/2);
+z14 = z2 + (0,1.4thin_join);
+z15 = z6 + (cap_stem, 0);
+z16 = z3 + (cap_stem, -thin_join/2);
+z17 = z16 + (0, thin_join);
+z18 = z7 + (cap_stem, 0);
+z19 = z1 - (0, 1.4thin_join);
+
+fill z5..{left}z1{left}..{down}z7{down}..{right}z3{left}..{down}z6{down}..{right}z2{right}..z4..z10..z9..{up}z8{down}..{left}z14{left}..{up}z15{up}..{right}z16--z17{left}..{up}z18{up}..{right}z19{right}..{down}z11{up}..{down}z12..z13..cycle;
+
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the tally mark 1 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("1",9u#,fig_height#,0); "The Tally Mark 1";
+
+z0 = (w/2,h+o);
+z1 = (w/2,0-o);
+
+pickup pencircle xscaled u rotated 45;
+draw z0--z1;
+
+endchar;
+
+beginchar("2",fig_height#+u#,fig_height#,0); "The Tally Mark 2";
+
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (h-o,0-o);
+
+pickup pencircle xscaled u rotated 45;
+draw z0--z1--z2;
+
+endchar;
+
+beginchar("3",fig_height#+u#,fig_height#,0); "The Tally Mark 3";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled u rotated 45;
+draw z0--z1--z2--z3;
+endchar;
+
+beginchar("4",fig_height#+u#,fig_height#,0); "The Tally Mark 4";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled u rotated 45;
+draw z0--z1--z2--z3--z0;
+endchar;
+
+beginchar("5",fig_height#+u#,fig_height#,0); "The Tally Mark 5";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled u rotated 45;
+draw z0--z1--z2--z3--z0;
+pickup pencircle xscaled u rotated 45;
+draw z0--z2;
+endchar;
+
+beginchar("6",fig_height#+u#,fig_height#,0); "The Tally Mark 6";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled u rotated 45;
+draw z0--z1--z2--z3--z0;
+pickup pencircle xscaled u rotated 45;
+draw z0--z2;
+pickup pencircle xscaled u rotated -45;
+draw z3--z1;
+endchar;
+
+
+end;
diff --git a/fonts/dozenal/mf/dozenalb.mf b/fonts/dozenal/mf/dozenalb.mf
new file mode 100644
index 0000000000..402ee79702
--- /dev/null
+++ b/fonts/dozenal/mf/dozenalb.mf
@@ -0,0 +1,149 @@
+% +AMDG This program was begun on 14 November 2008, the
+% feast of St. Josaphat, and it is humbly dedicated to him
+% and to the Immaculate Heart of Mary for their prayers, and
+% to the Sacred Heart of Jesus for His mercy.
+
+define_pixels(u,fig_height,cap_stem,thin_join,o,stem,stem,bar,tiny);
+define_blacker_pixels(thin_join, curve);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the numeral X %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("X",9u#,fig_height#,0); "The Numeral X";
+
+z1 = (w-u, h+o/2);
+z2 = (w-u, (h+o/2)-1.5*cap_stem);
+z3 = z2 - (2thin_join, 0);
+x4 = (w-u-2thin_join);
+y4 = ((h+o/2) - ((2cap_stem/3)));
+z5 = (u+2thin_join, ((h+o/2) - ((2*cap_stem)/3)));
+z6 = (w-u, fig_height/3);
+z7 = (w/2, 0-o);
+z8 = (u, fig_height/4);
+z9 = z8 + (5tiny/2, 5tiny/2);
+z10 = z8 + (4tiny,0);
+z11 = z10 - (3tiny, 0);
+z12 = z7 + (0, 1.5thin_join);
+z13 = z6 - (cap_stem, 0);
+z14 = z5 - (2thin_join, 0);
+z15 = (u, h+o/2);
+
+path X;
+X = z1--z2--z3--z4--z5{z6-z5}..z6..{left}z7{left}..{up}z8..z9..z10..{up}z11{down}..{right}z12{right}..{up}z13..{z14-z13}z14--z15--cycle;
+
+fill X reflectedabout ((w/2,0),(w/2,h));
+
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the numeral E %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("E",9u#,fig_height#,0); "The Numeral E";
+
+z1 = (w/2, h+o);
+z2 = (w/2, 0-o);
+z3 = (w/2, h/2);
+z4 = (w-u, h/4-5tiny/2);
+z5 = (w-u, 3h/4+5tiny/2);
+z6 = (u-o, (h/4));
+z7 = (u-o, (3h/4));
+z8 = z9 + (tiny,0);
+z9 = z4 - (4tiny, 0);
+z10 = z9 + (5tiny/2, 5tiny/2);
+z11 = z12 + (tiny,0);
+z12 = z5 - (4tiny, 0);
+z13 = z12 + (5tiny/2, -5tiny/2);
+z14 = z2 + (0,1.9thin_join);
+z15 = z6 + (cap_stem, 0);
+z16 = z3 + (cap_stem, -thin_join/2);
+z17 = z16 + (0, thin_join);
+z18 = z7 + (cap_stem, 0);
+z19 = z1 - (0, 1.5thin_join);
+
+fill z5..{left}z1{left}..{down}z7{down}..{right}z3{left}..{down}z6{down}..{right}z2{right}..z4..z10..z9..{up}z8{down}..{left}z14{left}..{up}z15{up}..{right}z16--z17{left}..{up}z18{up}..{right}z19{right}..{down}z11{up}..{down}z12..z13..cycle;
+
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the tally mark 1 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("1",9u#,fig_height#,0); "The Tally Mark 1";
+
+z0 = (w/2,h+o);
+z1 = (w/2,0-o);
+
+pickup pencircle xscaled 8 rotated 45;
+draw z0--z1;
+
+endchar;
+
+beginchar("2",fig_height#+u#,fig_height#,0); "The Tally Mark 2";
+
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (h-o,0-o);
+
+pickup pencircle xscaled 8 rotated 45;
+draw z0--z1--z2;
+
+endchar;
+
+beginchar("3",fig_height#+u#,fig_height#,0); "The Tally Mark 3";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled 8 rotated 45;
+draw z0--z1--z2--z3;
+endchar;
+
+beginchar("4",fig_height#+u#,fig_height#,0); "The Tally Mark 4";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled 8 rotated 45;
+draw z0--z1--z2--z3--z0;
+endchar;
+
+beginchar("5",fig_height#+u#,fig_height#,0); "The Tally Mark 5";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled 8 rotated 45;
+draw z0--z1--z2--z3--z0;
+pickup pencircle xscaled 6 rotated 45;
+draw z0--z2;
+endchar;
+
+beginchar("6",fig_height#+u#,fig_height#,0); "The Tally Mark 6";
+
+z0 = (0+u,h+o);
+z1 = (0+u,0-o);
+z2 = (h-o,0-o);
+z3 = (h-o,h+o);
+
+pickup pencircle xscaled 8 rotated 45;
+draw z0--z1--z2--z3--z0;
+pickup pencircle xscaled 6 rotated 45;
+draw z0--z2;
+pickup pencircle xscaled 6 rotated -45;
+draw z3--z1;
+endchar;
+
+
+end;
diff --git a/fonts/dozenal/mf/dozenali.mf b/fonts/dozenal/mf/dozenali.mf
new file mode 100644
index 0000000000..ad75a85e60
--- /dev/null
+++ b/fonts/dozenal/mf/dozenali.mf
@@ -0,0 +1,299 @@
+% +AMDG This document was begun on 24 November 2008, the
+% feast of St. John of the Cross, and it is humbly dedicated
+% to him and to the Immacualte Heart of Mary for their
+% prayers, and to the Sacred Heart of Jesus for His mercy.
+
+
+define_pixels(u,fig_height,cap_stem,thin_join,o,stem,stem,bar,tiny,curve);
+define_blacker_pixels(thin_join, curve);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the numeral X %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("X",9u#,fig_height#,0); "The Numeral X";
+italcorr fig_height#*slant-.5u#;
+
+z1l = (u, 2(h/3));
+z2 = ((w/3), h);
+z3 = (2(w/3), (8h/9)+o);
+z4r = (w-u, h+o);
+z5 = (2u, h/4);
+y6 = y1;
+x6 = x3;
+z7l = (w/2, 0);
+z8 = (w-u,2h/5);
+x9 = x8;
+y9 = .4(y7 + y8);
+z10 = .5[z7,z8];
+z11 = .5[z7,z6];
+
+penpos1(1.3thin_join,0);
+penpos2(.7curve,270);
+penpos3(1.3thin_join,270);
+penpos4(1.3thin_join,0);
+penpos5(curve,0);
+penpos6(1.3thin_join,315);
+penpos7(1.3thin_join,90);
+penpos8(1.3thin_join,225);
+penpos9(1.3thin_join,125);
+penpos10(1.3thin_join,30);
+penpos11(1.3thin_join,25);
+
+penstroke z1e{up}..{right}z2e{right}..z3e..z4e;
+penstroke z4e..z6e..z5e..z7e..z9e..z8e..z11e..z10e;
+
+%penstroke z1e{up}..{left}z2e{left}..z3e..z4e;
+%penstroke z4e..z6e..z5e..z7e..z9e..z8e..z11e..z10e;
+
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the numeral E %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("E",9u#,fig_height#,0); "The Numeral E";
+italcorr fig_height#*slant-.5u#;
+
+z1 = (w-u, 3h/4);
+z2 = (w-u, h/4);
+z3 = (2w/3, h/2);
+z4 = (u, 3h/4);
+z5 = (u, h/4);
+z6l = (w/2,h);
+z7l = (w/2,0);
+z8 = (w-u, 7h/8);
+z9 = z3;
+z10 = (w-u, h/8);
+z11 = 1/3[z8,z4];
+z12 = 1/3[z10,z5];
+
+penpos1(1.3thin_join,0);
+penpos8(1.3thin_join,45);
+penpos6(1.3thin_join,90);
+penpos4(curve,180);
+penpos3(1.3thin_join,270);
+penpos5(curve,180);
+penpos7(1.3thin_join,270);
+penpos2(1.3thin_join,0);
+penpos9(1.3thin_join,90);
+penpos10(1.3thin_join,315);
+penpos11(1.3thin_join,-180);
+penpos12(1.3thin_join,180);
+
+penstroke z11e..z1e..z8e..z6e..z4e..{right}z3e;
+penstroke z12e..z2e..z10e..z7e..z5e..{right}z9e;
+
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Prepare the character for the tally mark 1 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("1",9u#,fig_height#,0); "The Tally Mark 1";
+
+penpos0(1.5u,45);
+penpos1(0.5u,-45);
+penpos2(1.0u,0);
+z0 = (w/2,h+o);
+z1 = (w/2,0-o);
+z2 = (w/2+w/12,h/2);
+
+pickup pencircle scaled u;
+penstroke z1e..z2e..z0e;
+
+endchar;
+
+beginchar("2",fig_height#+u#,fig_height#,0); "The Tally Mark 2";
+
+penpos0(1.5u,45);
+penpos1(0.5u,-45);
+penpos2(1.0u,0);
+penpos3(1.5u,-45);
+penpos4(1.0u,-90);
+penpos5(0.5u,-135);
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (0+o+w/12,h/2);
+z3 = z1;
+z4 = (w/2,0+w/12);
+z5 = (w-o,0-o);
+
+pickup pencircle scaled u;
+penstroke z0e..z2e..z1e;
+penstroke z3e..z4e..z5e;
+
+%pickup pencircle xscaled 8 rotated 45;
+%draw z0--z1--z2;
+penlabels(0,1,2,3,4,5,6);
+
+endchar;
+
+beginchar("3",fig_height#+u#,fig_height#,0); "The Tally Mark 3";
+
+penpos0(1.5u,45);
+penpos1(0.5u,-45);
+penpos2(1.0u,0);
+penpos3(1.5u,-45);
+penpos4(1.0u,-90);
+penpos5(0.5u,-135);
+penpos6(1.5u,45);
+penpos7(1.0u,0);
+penpos8(0.5u,-45);
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (0+o+w/12,h/2);
+z3 = z1;
+z4 = (w/2,0+w/12);
+z5 = (w-o,0-o);
+z6 = z5;
+z7 = (w-o-w/12,h/2);
+z8 = (w-o,h+o);
+
+pickup pencircle scaled u;
+penstroke z0e..z2e..z1e;
+penstroke z3e..z4e..z5e;
+penstroke z6e..z7e..z8e;
+
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12);
+
+endchar;
+
+beginchar("4",fig_height#+u#,fig_height#,0); "The Tally Mark 4";
+
+penpos0(1.5u,45);
+penpos1(0.5u,-45);
+penpos2(1.0u,0);
+penpos3(1.5u,-45);
+penpos4(1.0u,-90);
+penpos5(0.5u,-135);
+penpos6(1.5u,45);
+penpos7(1.0u,0);
+penpos8(0.5u,-45);
+penpos9(1.5u,-45);
+penpos10(1.0u,-90);
+penpos11(0.5u,-135);
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (0+o+w/12,h/2);
+z3 = z1;
+z4 = (w/2,0+w/12);
+z5 = (w-o,0-o);
+z6 = z5;
+z7 = (w-o-w/12,h/2);
+z8 = (w-o,h+o);
+z9 = z8;
+z10 = (w/2,h-o-w/12);
+z11 = z0;
+
+pickup pencircle scaled u;
+penstroke z0e..z2e..z1e;
+penstroke z3e..z4e..z5e;
+penstroke z6e..z7e..z8e;
+penstroke z9e..z10e..z11e;
+
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar("5",fig_height#+u#,fig_height#,0); "The Tally Mark 5";
+
+penpos0(1.5u,45);
+penpos1(0.5u,-45);
+penpos2(1.0u,0);
+penpos3(1.5u,-45);
+penpos4(1.0u,-90);
+penpos5(0.5u,-135);
+penpos6(1.5u,45);
+penpos7(1.0u,0);
+penpos8(0.5u,-45);
+penpos9(1.5u,-45);
+penpos10(1.0u,-90);
+penpos11(0.5u,-135);
+penpos12(1.5u,45);
+penpos13(1.0u,45);
+penpos14(0.5u,45);
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (0+o+w/12,h/2);
+z3 = z1;
+z4 = (w/2,0+w/12);
+z5 = (w-o,0-o);
+z6 = z5;
+z7 = (w-o-w/12,h/2);
+z8 = (w-o,h+o);
+z9 = z8;
+z10 = (w/2,h-o-w/12);
+z11 = z0;
+z12 = z0;
+z13 = (w/2-w/24,h/2);
+z14 = z5;
+
+pickup pencircle scaled u;
+penstroke z0e..z2e..z1e;
+penstroke z3e..z4e..z5e;
+penstroke z6e..z7e..z8e;
+penstroke z9e..z10e..z11e;
+penstroke z12e..z13e..z14e;
+
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12);
+penlabels(13,14,15,16,17,18);
+
+endchar;
+
+beginchar("6",fig_height#+u#,fig_height#,0); "The Tally Mark 6";
+
+penpos0(1.5u,45);
+penpos1(0.5u,-45);
+penpos2(1.0u,0);
+penpos3(1.5u,-45);
+penpos4(1.0u,-90);
+penpos5(0.5u,-135);
+penpos6(1.5u,45);
+penpos7(1.0u,0);
+penpos8(0.5u,-45);
+penpos9(1.5u,-45);
+penpos10(1.0u,-90);
+penpos11(0.5u,-135);
+penpos12(1.5u,45);
+penpos13(1.0u,45);
+penpos14(0.5u,45);
+penpos15(1.5u,-45);
+penpos16(1.0u,-45);
+penpos17(0.5u,-45);
+z0 = (0+o,h+o);
+z1 = (0+o,0-o);
+z2 = (0+o+w/12,h/2);
+z3 = z1;
+z4 = (w/2,0+w/12);
+z5 = (w-o,0-o);
+z6 = z5;
+z7 = (w-o-w/12,h/2);
+z8 = (w-o,h+o);
+z9 = z8;
+z10 = (w/2,h-o-w/12);
+z11 = z0;
+z12 = z0;
+z13 = (w/2-w/24,h/2);
+z14 = z5;
+z15 = z9;
+z16 = z13;
+z17 = z3;
+
+pickup pencircle scaled u;
+penstroke z0e..z2e..z1e;
+penstroke z3e..z4e..z5e;
+penstroke z6e..z7e..z8e;
+penstroke z9e..z10e..z11e;
+penstroke z12e..z13e..z14e;
+penstroke z15e..z16e..z17e;
+
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12);
+penlabels(13,14,15,16,17,18);
+endchar;
+
+
+end;
diff --git a/fonts/dozenal/mf/dozenalitalic.mf b/fonts/dozenal/mf/dozenalitalic.mf
new file mode 100644
index 0000000000..85c21d546d
--- /dev/null
+++ b/fonts/dozenal/mf/dozenalitalic.mf
@@ -0,0 +1,6 @@
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
diff --git a/fonts/dozenal/mf/dozenalroman.mf b/fonts/dozenal/mf/dozenalroman.mf
new file mode 100644
index 0000000000..262c6f4335
--- /dev/null
+++ b/fonts/dozenal/mf/dozenalroman.mf
@@ -0,0 +1,7 @@
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
diff --git a/fonts/dozenal/tfm/dozchars10.tfm b/fonts/dozenal/tfm/dozchars10.tfm
new file mode 100644
index 0000000000..bbbf2868a4
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchars12.tfm b/fonts/dozenal/tfm/dozchars12.tfm
new file mode 100644
index 0000000000..4e94d43d5f
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars12.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchars17.tfm b/fonts/dozenal/tfm/dozchars17.tfm
new file mode 100644
index 0000000000..8bc389e39d
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars17.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchars6.tfm b/fonts/dozenal/tfm/dozchars6.tfm
new file mode 100644
index 0000000000..0c7639b815
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars6.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchars7.tfm b/fonts/dozenal/tfm/dozchars7.tfm
new file mode 100644
index 0000000000..a25414061d
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars7.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchars8.tfm b/fonts/dozenal/tfm/dozchars8.tfm
new file mode 100644
index 0000000000..55bd9aa80d
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars8.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchars9.tfm b/fonts/dozenal/tfm/dozchars9.tfm
new file mode 100644
index 0000000000..291a8aac58
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchars9.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchb10.tfm b/fonts/dozenal/tfm/dozchb10.tfm
new file mode 100644
index 0000000000..e288e01d2d
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchb10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx10.tfm b/fonts/dozenal/tfm/dozchbx10.tfm
new file mode 100644
index 0000000000..b2ad8b611b
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx12.tfm b/fonts/dozenal/tfm/dozchbx12.tfm
new file mode 100644
index 0000000000..dcc2d9f030
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx12.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx5.tfm b/fonts/dozenal/tfm/dozchbx5.tfm
new file mode 100644
index 0000000000..36dd092496
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx5.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx6.tfm b/fonts/dozenal/tfm/dozchbx6.tfm
new file mode 100644
index 0000000000..ac86346cd5
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx6.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx7.tfm b/fonts/dozenal/tfm/dozchbx7.tfm
new file mode 100644
index 0000000000..8b6e06dbe6
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx7.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx8.tfm b/fonts/dozenal/tfm/dozchbx8.tfm
new file mode 100644
index 0000000000..8f4146ff9d
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx8.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbx9.tfm b/fonts/dozenal/tfm/dozchbx9.tfm
new file mode 100644
index 0000000000..7e64c0e2b9
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbx9.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbxi10.tfm b/fonts/dozenal/tfm/dozchbxi10.tfm
new file mode 100644
index 0000000000..687cf9d55f
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbxi10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchbxsl10.tfm b/fonts/dozenal/tfm/dozchbxsl10.tfm
new file mode 100644
index 0000000000..3074e3802c
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchbxsl10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchit10.tfm b/fonts/dozenal/tfm/dozchit10.tfm
new file mode 100644
index 0000000000..61627c05cd
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchit10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchit12.tfm b/fonts/dozenal/tfm/dozchit12.tfm
new file mode 100644
index 0000000000..75284476d1
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchit12.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchit7.tfm b/fonts/dozenal/tfm/dozchit7.tfm
new file mode 100644
index 0000000000..accfbfdabe
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchit7.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchit8.tfm b/fonts/dozenal/tfm/dozchit8.tfm
new file mode 100644
index 0000000000..0db530936a
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchit8.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchit9.tfm b/fonts/dozenal/tfm/dozchit9.tfm
new file mode 100644
index 0000000000..3ba85627a3
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchit9.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchsl10.tfm b/fonts/dozenal/tfm/dozchsl10.tfm
new file mode 100644
index 0000000000..45a1be7fe8
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchsl10.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchsl12.tfm b/fonts/dozenal/tfm/dozchsl12.tfm
new file mode 100644
index 0000000000..e8a36445a5
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchsl12.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchsl8.tfm b/fonts/dozenal/tfm/dozchsl8.tfm
new file mode 100644
index 0000000000..29609ee375
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchsl8.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/dozchsl9.tfm b/fonts/dozenal/tfm/dozchsl9.tfm
new file mode 100644
index 0000000000..ad54c25aba
--- /dev/null
+++ b/fonts/dozenal/tfm/dozchsl9.tfm
Binary files differ
diff --git a/fonts/dozenal/tfm/gray.tfm b/fonts/dozenal/tfm/gray.tfm
new file mode 100644
index 0000000000..a470b22b6c
--- /dev/null
+++ b/fonts/dozenal/tfm/gray.tfm
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars10.pfb b/fonts/dozenal/type1/dozchars10.pfb
new file mode 100644
index 0000000000..9b2f16853b
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars12.pfb b/fonts/dozenal/type1/dozchars12.pfb
new file mode 100644
index 0000000000..b6d9599c89
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars12.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars17.pfb b/fonts/dozenal/type1/dozchars17.pfb
new file mode 100644
index 0000000000..6eb4c9a7e8
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars17.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars6.pfb b/fonts/dozenal/type1/dozchars6.pfb
new file mode 100644
index 0000000000..ee913ad43c
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars6.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars7.pfb b/fonts/dozenal/type1/dozchars7.pfb
new file mode 100644
index 0000000000..22b3bd94f5
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars7.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars8.pfb b/fonts/dozenal/type1/dozchars8.pfb
new file mode 100644
index 0000000000..a473ccdad8
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars8.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchars9.pfb b/fonts/dozenal/type1/dozchars9.pfb
new file mode 100644
index 0000000000..b27b3ffc40
--- /dev/null
+++ b/fonts/dozenal/type1/dozchars9.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchb10.pfb b/fonts/dozenal/type1/dozchb10.pfb
new file mode 100644
index 0000000000..8f62bd754f
--- /dev/null
+++ b/fonts/dozenal/type1/dozchb10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx10.pfb b/fonts/dozenal/type1/dozchbx10.pfb
new file mode 100644
index 0000000000..0a61504861
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx12.pfb b/fonts/dozenal/type1/dozchbx12.pfb
new file mode 100644
index 0000000000..dd06194170
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx12.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx5.pfb b/fonts/dozenal/type1/dozchbx5.pfb
new file mode 100644
index 0000000000..df2eca0f43
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx5.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx6.pfb b/fonts/dozenal/type1/dozchbx6.pfb
new file mode 100644
index 0000000000..e71f404fc4
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx6.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx7.pfb b/fonts/dozenal/type1/dozchbx7.pfb
new file mode 100644
index 0000000000..9be884d01b
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx7.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx8.pfb b/fonts/dozenal/type1/dozchbx8.pfb
new file mode 100644
index 0000000000..a24c4f04ce
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx8.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbx9.pfb b/fonts/dozenal/type1/dozchbx9.pfb
new file mode 100644
index 0000000000..931c84c707
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbx9.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbxi10.pfb b/fonts/dozenal/type1/dozchbxi10.pfb
new file mode 100644
index 0000000000..c7002b56c0
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbxi10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchbxsl10.pfb b/fonts/dozenal/type1/dozchbxsl10.pfb
new file mode 100644
index 0000000000..e103a95193
--- /dev/null
+++ b/fonts/dozenal/type1/dozchbxsl10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchit10.pfb b/fonts/dozenal/type1/dozchit10.pfb
new file mode 100644
index 0000000000..fe69758f6f
--- /dev/null
+++ b/fonts/dozenal/type1/dozchit10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchit12.pfb b/fonts/dozenal/type1/dozchit12.pfb
new file mode 100644
index 0000000000..c20243047c
--- /dev/null
+++ b/fonts/dozenal/type1/dozchit12.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchit7.pfb b/fonts/dozenal/type1/dozchit7.pfb
new file mode 100644
index 0000000000..ae7820f787
--- /dev/null
+++ b/fonts/dozenal/type1/dozchit7.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchit8.pfb b/fonts/dozenal/type1/dozchit8.pfb
new file mode 100644
index 0000000000..fd162e1e59
--- /dev/null
+++ b/fonts/dozenal/type1/dozchit8.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchit9.pfb b/fonts/dozenal/type1/dozchit9.pfb
new file mode 100644
index 0000000000..0aa7f3c63f
--- /dev/null
+++ b/fonts/dozenal/type1/dozchit9.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchsl10.pfb b/fonts/dozenal/type1/dozchsl10.pfb
new file mode 100644
index 0000000000..ed591b2ca5
--- /dev/null
+++ b/fonts/dozenal/type1/dozchsl10.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchsl12.pfb b/fonts/dozenal/type1/dozchsl12.pfb
new file mode 100644
index 0000000000..e3150ad74e
--- /dev/null
+++ b/fonts/dozenal/type1/dozchsl12.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchsl8.pfb b/fonts/dozenal/type1/dozchsl8.pfb
new file mode 100644
index 0000000000..201c377e07
--- /dev/null
+++ b/fonts/dozenal/type1/dozchsl8.pfb
Binary files differ
diff --git a/fonts/dozenal/type1/dozchsl9.pfb b/fonts/dozenal/type1/dozchsl9.pfb
new file mode 100644
index 0000000000..fdd62a8ecf
--- /dev/null
+++ b/fonts/dozenal/type1/dozchsl9.pfb
Binary files differ