texlive[46480] Master: bookhands for new tgothic (29jan18)

commits+karl at tug.org commits+karl at tug.org
Tue Jan 30 01:25:16 CET 2018


Revision: 46480
          http://tug.org/svn/texlive?view=revision&revision=46480
Author:   karl
Date:     2018-01-30 01:25:16 +0100 (Tue, 30 Jan 2018)
Log Message:
-----------
bookhands for new tgothic (29jan18)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/fonts/bookhands/auncial/allfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/auncial-tryfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/bsamples.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/huncial/allfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/huncial-tryfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/inslrmaj/allfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/inslrmaj-tryfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/rustic/allfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/rustic-tryfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/uncial/allfont.ps.gz
    trunk/Master/texmf-dist/doc/fonts/bookhands/uncial-tryfont.ps.gz
    trunk/Master/tlpkg/libexec/ctan2tds

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-README
    trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-tryfont.tex
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
    trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
    trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb10.tfm
    trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb17.tfm
    trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr10.tfm
    trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr17.tfm
    trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr7.tfm
    trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.dtx
    trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.ins
    trunk/Master/texmf-dist/tex/latex/bookhands/alltgoth.sty
    trunk/Master/texmf-dist/tex/latex/bookhands/ot1tgoth.fd
    trunk/Master/texmf-dist/tex/latex/bookhands/t1tgoth.fd
    trunk/Master/texmf-dist/tex/latex/bookhands/tgothic.sty

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/README
    trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.dtx
    trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.ins
    trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tryfont.tex

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/auncial/allfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/auncial-tryfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/bsamples.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/huncial/allfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/huncial-tryfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/inslrmaj/allfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/inslrmaj-tryfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/rustic/allfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/rustic-tryfont.ps.gz
===================================================================
(Binary files differ)

Deleted: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/README
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/README	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/README	2018-01-30 00:25:16 UTC (rev 46480)
@@ -1,71 +0,0 @@
-    The tgothic and alltgoth packages provide Metafont fonts based on the 
-Gothic Textura Quadrata manuscript book-hand used between the 13th & 15th century AD. 
-The font consists of minuscules and digits, with some appropriate 
-period punctuation marks. Both normal and bold versions are provided. 
-This is one in a series of manuscript fonts.
-
-    Access to the docmfp package is desireable but not essential.
-
-    The distribution consists of the following files:
-README (this file)
-tgothic.ins
-tgothic.dtx
-tryfont.tex
-allfont.tex
-
-    The distribution is provided under the terms of the LaTeX
-Project Public License (LPPL).
-
-To install the package:
-=======================
-
-o run: latex tgothic.ins, which will generate:
-       tgoth*.mf files
-       *.fd files
-       tgothic.sty
-       alltgoth.sty
-o Move the generated files to locations where LaTeX will find them.
-    For example: the tgoth*.mf files to .../texmf/fonts/source/public/tgothic
-                 the *.fd and *.sty files to /texmf/tex/latex/local/tgothic
-
-    On a teTeX distribution you might also have to add lines like the 
-    following to texmf/fontname/special.map:
-      tgoth7.mf        public    tgothic
-      tgoth10.mf       public    tgothic
-      tgoth17.mf       public    tgothic
-      tgothb7.mf       public    tgothic
-      tgothb10.mf      public    tgothic
-      tgothb17.mf      public    tgothic
-    On a teTeX distribution remember to run texhash after moving the files.
-
-    (I use a teTeX distribution and found that if I didn't add to the special.map
-     file, then the generated tfm and pk files were put in directories corresponding
-     to some vendor's font.) 
-
-    Other LaTeX distributions might require procedures similar to those for teTeX.
-
-To typeset the documentation:
-=============================
-
-o run: latex tgothic.dtx
-o if you want an index then run: makeindex -s gind.ist tgothic
-o run: latex tgothic.dtx
-o Print tgothic.dvi for a hardcopy of the package manual 
-
-    Note that the docmfp package is normally required for LaTeXing tgothic.dtx.
-The package is available from CTAN in tex-archive/macros/latex/contrib/supported.
-If you haven't got this and don't want to get it, then there are instructions
-in the first part of the .dtx file about how to edit it to avoid the use of docmfp.
-(docmfp is an extension of the doc package for describing METAFONT, or other
-non-LaTeX, code.)
-
-
-To check out your installation:
-===============================
-
-o run: latex tryfont  for a testpage of the fonts
-o run: latex allfont  for a document typeset with the fonts
-
-2002/12/30
-Peter Wilson
-peter.r.wilson at boeing.com

Deleted: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.dtx
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.dtx	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.dtx	2018-01-30 00:25:16 UTC (rev 46480)
@@ -1,5402 +0,0 @@
-% \iffalse meta-comment
-%
-% tgothic.dtx
-% Copyright 1999 Peter R. Wilson
-%
-% This program is provided under the terms of the
-% LaTeX Project Public License distributed from CTAN
-% archives in directory macros/latex/base/lppl.txt.
-%
-% Author: Peter Wilson (CUA) (now at: peter.r.wilson at boeing.com)
-% 
-% If you do not have the docmfp package (available from CTAN in
-% tex-archive/macros/latex/contrib/supported), comment out the
-% \usepackage{docmfp} line below and uncomment the line following it. 
-% 
-%<*driver>
-\documentclass{ltxdoc}
-\usepackage{docmfp}
-%%%%%% \providecommand{\DescribeVariable}[1]{} \newenvironment{routine}[1]{}{}
-\EnableCrossrefs
-\CodelineIndex
-%% comment out the next line to show the code
-\OnlyDescription
-\setcounter{StandardModuleDepth}{1}
-\begin{document}
-  \DocInput{tgothic.dtx}
-\end{document}
-%</driver>
-%
-% \fi
-%
-% \CheckSum{134}
-%
-% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
-% \DoNotIndex{\@centercr,\@cite}
-% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
-% \DoNotIndex{\@input,\@ixpt,\@m}
-% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set at topoint}
-% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
-% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
-% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
-% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
-% \DoNotIndex{\advance,\Alph,\alph}
-% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
-% \DoNotIndex{\bullet}
-% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
-% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
-% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
-% \DoNotIndex{\EnableCrossrefs,\end,\end at dblfloat,\end at float,\endgroup}
-% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
-% \DoNotIndex{\fbox}
-% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
-% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
-% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if at tempswa,\ifcase,\or,\fi,\fi}
-% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
-% \DoNotIndex{\input}
-% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
-% \DoNotIndex{\list,\llap,\long,\m at ne,\m at th,\mark,\markboth,\markright}
-% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
-% \DoNotIndex{\NeedsTeXFormat,\newdimen}
-% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
-% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
-% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
-% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
-% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
-% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset at font}
-% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman}
-% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
-% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
-% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
-% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
-% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
-% \DoNotIndex{\wd,\xiipt,\year,\z@}
-%
-% \changes{v1.0}{2002/12/30}{First public release}
-%
-% \def\fileversion{v1.0}
-% \def\filedate{2002/12/30}
-% \newcommand*{\Lpack}[1]{\textsf {#1}}           ^^A typeset a package
-% \newcommand*{\Lopt}[1]{\textsf {#1}}            ^^A typeset an option
-% \newcommand*{\file}[1]{\texttt {#1}}            ^^A typeset a file
-% \newcommand*{\Lcount}[1]{\textsl {\small#1}}    ^^A typeset a counter
-% \newcommand*{\pstyle}[1]{\textsl {#1}}          ^^A typeset a pagestyle
-% \newcommand*{\Lenv}[1]{\texttt {#1}}            ^^A typeset an environment
-% \newcommand*{\AD}{\textsc{ad}}
-% \newcommand*{\thisfont}{Gothic Textura Quadrata}
-%
-% \title{The \Lpack{Gothic Textura Quadrata} fonts\thanks{This
-%        file has version number \fileversion, last revised
-%        \filedate.}}
-%
-% \author{%
-% Peter Wilson\\
-% Catholic University of America \\
-% Now at \texttt{peter.r.wilson at boeing.com}
-% }
-% \date{\filedate}
-% \maketitle
-% \begin{abstract}
-%    The \Lpack{tgothic} and \Lpack{alltgoth} packages provide a set of 
-% Metafont \thisfont{} book-hands 
-% as used
-% for manuscripts in the 13th to the 15th century. This is one in a series
-% of manuscript fonts.
-% \end{abstract}
-% \tableofcontents
-% \listoftables
-%
-%
-% 
-%
-% \section{Introduction}
-%
-%    The \Lpack{tgothic} and \Lpack{alltgoth} packages provide a Metafont~\cite{METAFONT} version
-% of the \thisfont{} manuscript book-hand that was in use between about the
-% thirteenth and fifteenth centuries~\AD. It is part of a project to provide fonts
-% covering the major manuscript hands between the first century~\AD{} and
-% the invention of printing. The principal resources used in this project
-% are listed in the Bibliography.
-%
-% This manual is typeset according to the conventions of the
-% \LaTeX{} \textsc{docstrip} utility which enables the automatic
-% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}.
-% The \Lpack{docmfp} package is used for documenting the Metafont portions
-% of the distribution~\cite{DOCMFP}.
-%
-%    Section~\ref{sec:usc} describes the usage of the package.
-% Commented code for the fonts is in Sections~\ref{sec:mf} and~\ref{sec:fd}
-% and source code for the package is in Section~\ref{sec:code}.
-%
-% \subsection{Manuscript book-hands}
-%
-% Before the invention of printing all books were written by hand. The book-hands
-% used by the scribes and copyists for the manuscripts changed as time 
-% went on. Table~\ref{tab:1} lists some of the common book-hands which were used
-% between the 1st and 15th centuries. The later book-hands formed the basis of the
-% fonts used by the early printers, which in turn form the basis of the printing
-% fonts in use today.
-%
-%    The manuscript book-hands were written with a broad nibbed reed or quill
-% pen. Among the distinguishing characteristics of a hand, apart from the 
-% actual shape of the letters, are the angle of the pen (which controls the
-% variation between thick and thin strokes) and the height of a letter compared
-% to the width of the nib. The lower the ratio of the letter height to nib
-% width, the more condensed is the script. The scripts also varied in their
-% typical height. 
-%
-%    Table~\ref{tab:1} gives an `average' x-height for each
-% script, which I obtained by measuring a sample of photographs of
-% manuscripts written in the various hands. About a dozen examples
-% of each book-hand were measured. This figure should not be taken too
-% seriously.
-% 
-%    There was not a sharp division between the use of one hand and another.
-% Many manuscripts exhibit a variety of hands in the same document. For example,
-% the scribe writing in an Uncial hand may have used Roman Rustic letters
-% for capitals. Usually the same pen was used for the two different scripts.
-%
-%    Generally speaking, as a hand got older it became more embelished, and 
-% therefore took longer to write. As this happened a new hand would appear that
-% was faster, and which would eventually make the earlier one obsolete.
-%
-%    Many of the book-hands were single-cased; that is, they did not have an
-% upper- and lower-case as we do nowadays in Western scripts. On the other
-% hand, a script might be majuscule or minuscule. A \textit{majuscule} script
-% is one, like our upper-case, where the letters are drawn between two lines
-% and are of a uniform height with no ascenders or descenders. 
-% A \textit{minuscule} script, like our lower-case, is drawn between four lines 
-% and has ascenders and  descenders.
-%
-% \begin{table}
-% \centering
-% \caption{The main manuscript book-hands} \label{tab:1}
-% \begin{tabular}{lccccc} \hline
-% Name                  & Century  & x-height & Height     & Pen  & Normalised \\
-%                       &          & (mm)   & (nib widths) & angle & height  \\ \hline
-% Roman Rustic          & 1--6     & 5.7    & 4--6         & 45     & 1.90 \\
-% Uncial                & 3--6     & 4.1    & 4--5         & 30     & 1.37 \\
-% Half Uncial           & 3--9     & 3.2    & 3--6         & 20--30 & 1.07 \\
-% Artificial Uncial     & 6--10    & 4.2    & 3--6         & 10     & 1.40 \\
-% Insular majuscule     & 6--9     & 4.2    & 5            & 0--20  & 1.40 \\
-% Insular minuscule     & 6 onward & 4.1    & 5--6         & 45--70 & 1.37 \\
-% Carolingian minuscule & 8--12    & 3.0    & 3--5         & 45     & 1.00 \\
-% Early Gothic          & 11--12   & 3.8    & 4--6         & 20--45 & 1.27 \\
-% Gothic Textura        & 13--15   & 3.9    & 3--5         & 30--45 & 1.30 \\
-% Gothic Prescius       & 13 onward & 3.3   & 4--5         & 45     & 1.10 \\
-% Rotunda               & 13--15   & 3.2    & 4--6         & 30     & 1.07 \\
-% Humanist minuscule    & 14 onward & 3.0   & 4--5         & 30--40 & 1.00 \\ \hline
-% \end{tabular}
-% \end{table}
-%
-%    During the period under consideration arabic numerals were effectively
-% not used. At the beginning they were unknown and even though some knew
-% of them towards the end, the glyphs used for them are not recognisable ---
-% to me they look somewhat like cryllic letters --- and each locality
-% and time had its own highly individualistic rendering. The general rule
-% when using one of these book-hands is to write all numbers using
-% roman numerals.
-%
-%    The Roman alphabet consisted of 23 capital letters --- the J, U and W 
-% were absent. The book-hands initially used both a `u' and a `v' interchangeably
-% but by the 10th century the practice had become to use the `v' before a vowel 
-% and the `u' otherwise. The letter corresponding to the W sound appeared 
-% in England around the 7th century in
-% the form of the runic \textit{wen} character and by about the 11th century
-% the `w' chacter was generally used. The `J' is the newest letter of all, not
-% appearing until about the mid 16th century.
-%
-%    In the first century punctuation was virtually unknown, and typically
-% would not even be any additional space between individual words, never
-% mind denoting ends of sentences. Sometimes a dot at mid-height would be
-% used as a word seperator, or to mark off the end of a paragraph. Effectively
-% a text was a continuous stream of letters. By the time that printing was
-% invented, though, all of our modern punctuation marks were being used.
-%
-%    Among all these manuscript hands, the Carolingian minuscule is the
-% most important as our modern fonts are based on its letter shapes, and it is
-% also at this point in time where the division occured between the black letter
-% scripts as used even today in Germany, and the lighter fonts used elesewhere.
-% The Rotunda and Humanist minuscule hands were developed in Italy and were
-% essentially a rediscovery of the Carolingian minusucle. Guthenberg took the
-% Gothic scripts as the model for his types. Later printers, 
-% such as Nicholas Jenson of Venice,
-% took the Humanist scripts as their models.
-%
-%
-% \subsection{The \thisfont{} script}
-%
-%    With the Gothic hands, used from the thirteenth century, the attention of
-% the scribes moved from the individual letter to the word. The scripts
-% changed to accomodate this interest so the appearance of the letters
-% became subordinate to the overall appearance of the words they formed.
-% Many of the letters appear to be indistinguishable today but the contemporary
-% reading public seemed to have no difficulty.
-%
-%    It was during the heyday of the Gothic scripts that separate capital
-% letters were introduced. Also, as a small concession to legibility,
-% the lowecase `i' acquired a small mark above it. Ligatures were similar
-% to those in Early Gothic. The letter `w' was added to the hand early on
-% and `j' started to appear after 1400, providing the full 26 letter alphabet
-% for the first time.
-%
-%    This font includes both lowercase and (fancy) uppercase letters. Guthenberg
-% used this script as a model.
-%
-% \section{The \Lpack{tgothic} and \Lpack{alltgoth} packages} \label{sec:usc}
-%
-%     The \thisfont{} font family is called |tgoth|. The font is supplied in both
-% OT1 and T1 encodings.
-%
-% \subsection{The \Lpack{tgothic} package}
-%
-%    This is intended for the occasions when some short pieces of text have
-% to be written in \thisfont{} while the majority of the document is in another
-% font. The normal baselineskips are used.
-%
-% \DescribeMacro{\tgothfamily}
-%    The |\tgothfamily| declaration starts typesetting with the \thisfont{} fonts.
-% Use of the \thisfont{} font will continue until either there is another |\...family|
-% declaration or the current group (e.g., environment) is closed.
-%
-% \DescribeMacro{\texttgoth}
-%    The command |\texttgoth{|\meta{text}|}| will typeset \meta{text} using the
-% \thisfont{} fonts.
-%
-% \subsection{The \Lpack{alltgoth} package}
-%
-%
-%    This package is for when the entire document will be typeset with the
-% \thisfont{} font. The baselineskips are set to those appropriate to the
-% book-hand. 
-%
-%    This is a minimalist package. Apart from declaring \thisfont{} to be the
-% default font and setting the baselineskips appropriately, it makes no other
-% alterations. 
-% Vertical spacing
-% before and after section titles and before and after lists, etc., will be
-% too small as the \LaTeX{} design assumes a font comparable in size to
-% normal printing fonts, and the book-hand is much taller.
-% To capture more of the flavour of the time, all numbers
-% should be written using roman numerals. 
-% The \Lpack{romannum} package~\cite{ROMANNUM}
-% can be used so that \LaTeX{} will typeset the numbers that it generates,
-% like sectioning or caption numbers, using roman numerals instead of arabic 
-% digits. 
-%
-% \DescribeMacro{\cmrfamily}
-% \DescribeMacro{\textcmr}
-% \DescribeMacro{\cmssfamily}
-% \DescribeMacro{\textcmss}
-% \DescribeMacro{\cmttfamily}
-% \DescribeMacro{\textcmtt}
-%    The |...family| declarations start typesetting with the Computer Modern Roman
-% (|\cmrfamily|), the Computer Modern Sans (|\cmssfamily|), and the Computer
-% Modern Typewriter (|\cmttfamily|) font families. The |\textcm..{|\meta{text}|}|
-% commands will typeset \meta{text} in the corresponding Computer Modern font.
-%
-%    The \Lpack{alltgoth} package automatically loads the \Lpack{tgothic} package,
-% so its font commands are available if necessary.
-%
-% \StopEventually{
-% \bibliographystyle{alpha}
-% \renewcommand{\refname}{Bibliography}
-% \begin{thebibliography}{GMS94}
-% \addcontentsline{toc}{section}{\refname}
-%
-% \bibitem[And69]{ANDERSON69}
-% Donald M.~Anderson.
-% \newblock {\em The Art of Written Forms: The Theory and Practice of Calligraphy}.
-% \newblock Holt, Rinehart and Winston, 1969.
-%
-% \bibitem[Bol95]{BOLOGNA95}
-% Giulia Bologna.
-% \newblock {\em Illuminated Manuscripts: The Book before Gutenberg}.
-% \newblock Crescent Books, 1995.
-%
-% \bibitem[Day95]{DAY95}
-% Lewis F.~Day.
-% \newblock {\em Alphabets Old \& New}.
-% \newblock (3rd edition originally published by B.~T.~Batsford, 1910) 
-% \newblock Senate, 1995.
-%
-% \bibitem[Dro80]{DROGIN80}
-% Marc Drogin.
-% \newblock {\em Medieval Calligraphy: Its History and Technique}.
-% \newblock Allenheld, Osmun \& Co., 1980.
-%
-% \bibitem[Dru95]{DRUCKER95}
-% Johanna Drucker.
-% \newblock {\em The Alphabetic Labyrinth}.
-% \newblock Thames \& Hudson, 1995.
-%
-% \bibitem[Fir93]{FIRMAGE93}
-% Richard A.~Firmage.
-% \newblock {\em The Alphabet Abecedarium}.
-% \newblock David R~Goodine, 1993.
-%
-% \bibitem[Fli98]{LETTRINE}
-% Daniel Flipo.
-% \newblock {\em The LETTRINE package}.
-% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
-% \newblock 1998.
-%
-% \bibitem[Har95]{HARRIS95}
-% David Harris.
-% \newblock {\em The Art of Calligraphy}.
-% \newblock DK Publishing, 1995.
-%
-% \bibitem[Jen95]{BETON}
-% Frank Jensen.
-% \newblock {\em The BETON package}.
-% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
-% \newblock 1995.
-%
-% \bibitem[Joh71]{JOHNSTON75}
-% Edward Johnston (ed. Heather Child).
-% \newblock {\em Formal Penship and Other Papers}.
-% \newblock Penthalic, 1971.
-%
-% \bibitem[Knu87]{CM}
-% Donald E.~Knuth.
-% \newblock {\em Computer Modern Typefaces}.
-% \newblock Addison-Wesley, 1987.
-%
-% \bibitem[Knu92]{METAFONT}
-% Donald E.~Knuth.
-% \newblock {\em The METAFONTbook}.
-% \newblock Addison-Wesley, 1992.
-%
-% \bibitem[GMS94]{GOOSSENS94}
-% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
-% \newblock {\em The LaTeX Companion}.
-% \newblock Addison-Wesley Publishing Company, 1994.
-%
-% \bibitem[Tho75]{THOMAS75}
-% Alan G.~Thomas.
-% \newblock {\em Great Books and Book Collectors}.
-% \newblock Weidenfield and Nichoson, 1975.
-%
-% \bibitem[Wil99]{DOCMFP}
-% Peter R.~Wilson.
-% \newblock {\em The DOCMFP Package}.
-% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
-% \newblock 1999.
-%
-% \bibitem[Wil99b]{ROMANNUM}
-% Peter R.~Wilson.
-% \newblock {\em The ROMANNUM Package}.
-% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
-% \newblock 1999.
-%
-% \end{thebibliography}
-% }
-%
-% \section{The Metafont code} \label{sec:mf}
-%
-%
-%    As previously noted, this work is part of a larger project to provide
-% fonts covering the main manuscript book-hands. As such, one of the
-% aims is to produce a coordinated set of fonts, especially as multiple
-% hands might be used in a single document. 
-%
-%    Noting that the hands tend to be somewhat larger than the typical 10pt
-% size (where the x-height is approximately 1.5mm) used for modern books, 
-% I have also designed the fonts
-% at a larger than normal size, then applied some non-linear factors when reducing
-% them down to a 10pt size.
-%    Further, I have used the height of the Carolingian minuscule as a 
-% normalising factor when deciding on the absolute height of any particular
-% script. The x-height of the Carolingian font is made equal to the
-% x-height of the Computer Modern Roman (CMR) font.
-%
-%    Modern fonts are effectively drawn. That is, the outline of the letter is
-% drawn carefully and the center is filled with ink. This is shown to good
-% effect in the Metafont code for the Computer Modern fonts~\cite{CM}.
-% In contrast, the manuscript letters were inked by single pen strokes in
-% a calligraphic manner. I have tried to repeat this calligraphic style
-% in the Metafont code.
-%
-%    As much as possible I have tried to use parameter values from the
-% Computer Modern Roman (CMR) fonts in order to reduce possible
-% infelicities if the CM and manuscript fonts are used together. However,
-% few of the CMR parameters are applicable to the calligraphic style.
-%
-%
-% \subsection{The parameter file}
-%
-%    We deal with the parameter files first, and start by announcing
-% what they are for. The \thisfont{} font comes in three sizes and also as a normal
-% and a bold font.
-%    \begin{macrocode}
-%<*base7|base10|base17|base7b|base10b|base17b>
-%<base7>%%% TGOTH7.MF    Gothic Textura Quadrata at 7 point design size.
-%<base10>%%% TGOTH10.MF  Gothic Textura Quadrata at 10 point design size.
-%<base17>%%% TGOTH17.MF  Gothic Textura Quadrata at 17 point design size.
-%<base7b>%%% TGOTHB7.MF    Gothic Textura Quadrata Bold at 7 point design size.
-%<base10b>%%% TGOTHB10.MF  Gothic Textura Quadrata Bold at 10 point design size.
-%<base17b>%%% TGOTHB17.MF  Gothic Textura Quadrata Bold at 17 point design size.
-%
-%    \end{macrocode}
-%    Parameters from CMR are used as much as possible. We also
-% make sure that \Lpack{cmbase} is loaded as well as plain Metafont.
-%    \begin{macrocode}
-if unknown cmbase: input cmbase fi
-
-%<base7>font_identifier:="TGOTH"; font_size 7pt#;
-%<base10>font_identifier:="TGOTH"; font_size 10pt#;
-%<base17>font_identifier:="TGOTH"; font_size 17.28pt#;
-%<base7b>font_identifier:="TGOTHB"; font_size 7pt#;
-%<base10b>font_identifier:="TGOTHB"; font_size 10pt#;
-%<base17b>font_identifier:="TGOTHB"; font_size 17.28pt#;
-
-%    \end{macrocode}
-%
-% \DescribeVariable{jutstretch}
-%    The CMR scaling for lowercase serifs wrt 17pt size.
-%    \begin{macrocode}
-%<base7|base7b> jutstretch:=1.19; 
-%<base10|base10b> jutstretch:=1.152; 
-%<base17|base17b> jutstretch:=1.0;
-%    \end{macrocode}
-%
-% \DescribeVariable{stemstretch}
-%    The CMR scaling for lowercase stem widths wrt 17pt size.
-%    \begin{macrocode}
-%<base7|base7b> stemstretch:=1.50;
-%<base10|base10b> stemstretch:=1.31;
-%<base17|base17b> stemstretch:=1.0;
-%    \end{macrocode}
-%
-% \DescribeVariable{caprat}
-%    The scaling for capitals wrt lowercase. 
-% (the ratio for CMR10 is 1.59).
-%    \begin{macrocode}
- caprat:=7/5;          % ratio of capital height to minuscule height
-%    \end{macrocode}
-%
-% \DescribeVariable{cap_jutstretch}
-%    The CMR scaling for uppercase serifs wrt 17pt size.
-%    \begin{macrocode}
-%<base7|base7b> cap_jutstretch:=1.3;   
-%<base10|base10b> cap_jutstretch:=1.2;   
-%<base17|base17b> cap_jutstretch:=1.0;   
-%    \end{macrocode}
-%
-% \DescribeVariable{cap_stemstretch}
-%    The CMR scaling for uppercase stem width wrt 17pt size.
-%    \begin{macrocode}
-%<base7|base7b> cap_stemstretch:=1.45;  
-%<base10|base10b> cap_stemstretch:=1.31;  
-%<base17|base17b> cap_stemstretch:=1.0;  
-%    \end{macrocode}
-%
-% \DescribeVariable{bfudge}
-%    Letter width scaling for bold font wrt normal font. We don't really
-% need to change this for bold fonts as the letter width is in terms
-% of the pen, not the x-height.
-% 
-%    \begin{macrocode}
-%<base7|base10|base17> bfudge:=1.0;
-%<base7b|base10b|base17b> bfudge:=1.0;  %% normally 1.2
-%    \end{macrocode}
-%
-% \DescribeVariable{szfudge}
-%    Width scaling wrt 17pt letter width.
-%    \begin{macrocode}
-%<base7|base7b> szfudge:=1.18; 
-%<base10|base10b> szfudge:=1.0; 
-%<base17|base17b> szfudge:=1.0; 
-%    \end{macrocode}
-%
-% \DescribeVariable{hstretch}
-%    Horizontal stretching factor wrt 17pt size letter width.
-%    \begin{macrocode}
- hstretch:=szfudge*bfudge;
-%    \end{macrocode}
-%
-% \DescribeVariable{carol_height}
-%    The x-height of the Carolingian gothic font.
-%    \begin{macrocode}
-%<base7|base7b> carol_height#:=108.5/36pt#; 
-%<base10|base10b> carol_height#:=155/36pt#; 
-%<base17|base17b> carol_height#:=268/36pt#; 
-%    \end{macrocode}
-%
-% \DescribeVariable{vstretch}
-%    The height of this font wrt the Carolingian font.
-%    \begin{macrocode}
- vstretch:=1.3;   
-
-%    \end{macrocode}
-%
-% \DescribeVariable{x_height} 
-%    The x-height of lower case letters. Scaled from the Carolingian font.
-%    \begin{macrocode}
- x_height#:=vstretch*carol_height#; 
-%    \end{macrocode}
-%
-% \DescribeVariable{u}
-%    The unit width. The CMR values are used.
-%    \begin{macrocode}
-%<base7> u#:=15.5/36pt#;  
-%<base10> u#:=20/36pt#;  
-%<base17> u#:=32.5/36pt#;  
-%<base7b> u#:=17.9/36pt#;  
-%<base10b> u#:=23/36pt#;  
-%<base17b> u#:=37/36pt#;  
-%    \end{macrocode}
-%
-% \DescribeVariable{width_adj}
-% \DescribeVariable{serif_fit}
-% \DescribeVariable{cap_serif_fit}
-% \DescribeVariable{letter_fit}
-%    The majority of these parameters and values are constant.
-% They are for fine adjustements of characters. The CM values are used.
-%    \begin{macrocode}
- width_adj#:=0pt#;         % width adjustment for certain characters
- serif_fit#:=0pt#;         % extra sidebar near lowercase serifs
-%<base7|base7b> cap_serif_fit#:=3.5/36pt#;  % extra sidebar near uppercase serifs
-%<base10|base10b> cap_serif_fit#:=5/36pt#;  % extra sidebar near uppercase serifs
-%<base17|base17b> cap_serif_fit#:=8/36pt#;  % extra sidebar near uppercase serifs
-%<base7|base7b> letter_fit#:=0pt#;        % extra space added to all sidebars
-%<base10|base10b> letter_fit#:=0pt#;        % extra space added to all sidebars
-%<base17|base17b> letter_fit#:=-0.1pt#;        % extra space added to all sidebars
-%    \end{macrocode}
-%
-% \DescribeVariable{sb}
-%    A length used for adjusting the side bearings of characters. Normally
-% |1/2u| but want it less (1/2) for a Gothic.
-%    \begin{macrocode}
-%<base7|base7b> sb#:=1/4u#;                   % unit for side bearings
-%<base10|base10b> sb#:=1/4u#;                 % unit for side bearings
-%<base17|base17b> sb#:=1/4u#;                 % unit for side bearings
-
-%    \end{macrocode}
-%
-% \DescribeVariable{cap_sb}
-%    A length used for adjusting the side bearings of uppercase characters.
-%    \begin{macrocode}
-%<base7|base7b> cap_sb#:=2sb#;           % unit for uppercase side bearings
-%<base10|base10b> cap_sb#:=2sb#;         % unit for uppercase side bearings
-%<base17|base17b> cap_sb#:=2sb#;         % unit for uppercase side bearings
-
-%    \end{macrocode}
-%
-% \DescribeVariable{cap_height} 
-%    The height of capital letters.
-%    \begin{macrocode}
-%<base7|base7b> cap_height#:=172.2/36pt#;        % height of caps
-%<base10|base10b> cap_height#:=246/36pt#;        % height of caps
-%<base17|base17b> cap_height#:=425/36pt#;        % height of caps
-%    \end{macrocode}
-%
-% \DescribeVariable{thickfudge}
-%    The reciprocal of the font height in nib widths. Normal font height
-% is 5 nib widths and the bold font height is 4 nib widths.
-%    \begin{macrocode}
-%<base7|base10|base17> thickfudge:=1/5;     
-%<base7b|base10b|base17b> thickfudge:=1/4;     
-%    \end{macrocode}
-%
-% \DescribeVariable{thinfudge}
-%    The nib sharpness.
-%    \begin{macrocode}
-thinfudge:=1/6;      
-%    \end{macrocode}
-%
-% \DescribeVariable{thick}
-%    The maximum nib width. 
-% That is, the width of the thickest line that can be penned.
-%    \begin{macrocode}
-thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
-%    \end{macrocode}
-%
-% \DescribeVariable{thin}
-%    The nib thinness. 
-% That is, the width of the thinnest line that can be penned.
-%    \begin{macrocode}
-thin#:=thinfudge*thick#;  
-%    \end{macrocode}
-%
-% \DescribeVariable{pangle}
-%  The pen angle (in degrees).
-%    \begin{macrocode} 
-pangle:=45;                  % pen angle
-%    \end{macrocode}
-%
-% \DescribeVariable{stem_width}
-%   The width of a vertical stem.
-%    \begin{macrocode}
-stem_width#:= thick#*(cosd pangle);
-%    \end{macrocode}
-%
-% \DescribeVariable{perpdec}
-% \DescribeVariable{angdec}
-% The perpendicular shift between pairs of thin decorative lines in capitals
-% is |perpdec| and between angled lines is |angdec|.
-%    \begin{macrocode}
-perpdec#:= 3thin#;
-angdec#:= perpdec#/(cosd pangle);
-%    \end{macrocode}
-%
-%
-% \DescribeVariable{ascratio}
-%    The height of lower case ascenders wrt |x_height|.
-%    \begin{macrocode}
-  ascratio:=5/4;
-%    \end{macrocode}
-%
-% \DescribeVariable{asc_height} 
-%    The height of lower case ascenders.
-%    \begin{macrocode}
-  asc_height#:=ascratio*x_height#;
-%    \end{macrocode}
-%
-% \DescribeVariable{descratio}
-%    The depth of lower case descenders wrt |x_height|.
-%    \begin{macrocode}
-  descratio:=2/4;
-%    \end{macrocode}
-%
-% \DescribeVariable{desc_depth} 
-%    The depth of lower case descenders.
-%    \begin{macrocode}
-  desc_depth#:=descratio*x_height#;
-%    \end{macrocode}
-%
-% \DescribeVariable{body_height} 
-%    The height of the tallest character.
-%    \begin{macrocode}
- body_height#:=caprat*asc_height#;    
-%    \end{macrocode}
-%
-% \DescribeVariable{body_depth} 
-%    The depth of the lowest character.
-%    \begin{macrocode}
- body_depth#:=caprat*desc_depth#;    
-%    \end{macrocode}
-%
-% \DescribeVariable{half_height} 
-%    Half the normal letter height.
-%    \begin{macrocode}
- half_height#:=1/2x_height#;    % half the height of x height letters
-
-%    \end{macrocode}
-%
-% \DescribeVariable{side}
-%    We might be using a square for the character design.
-%    \begin{macrocode}
-side#:=x_height#;     
-%    \end{macrocode}
-%
-% \DescribeVariable{rule_thickness}
-%    Thickness of rules (in math symbols). The CMR values are used.
-%    \begin{macrocode}
-%<base7|base7b> rule_thickness#:=.34pt#; 
-%<base10|base10b> rule_thickness#:=.4pt#; 
-%<base17|base17b> rule_thickness#:=.6pt#; 
-
-%    \end{macrocode}
-%
-% \DescribeVariable{jutfudge}
-%    Controls the protrusion of serifs.
-%    \begin{macrocode}
-%%%jutfudge:= 3/4;
-jutfudge:= 1/2;
-%    \end{macrocode}
-%
-% \DescribeVariable{jut} 
-%    The lowercase serif protrusion.
-%    \begin{macrocode}
-jut#:=jutstretch*jutfudge*thick#; 
-%    \end{macrocode}
-%
-% \DescribeVariable{srad}
-%    |srad| with |0 < srad < 1| controls the serif radius.
-%    \begin{macrocode}
-srad:=0.8;   % was 0.5
-%    \end{macrocode}
-%
-% \DescribeVariable{trijut}
-%    The lowercase triangular serif protrusion.
-%    \begin{macrocode}
-trijut#:=0.75jutstretch*thick#;
-%    \end{macrocode}
-%
-% \DescribeVariable{clubjutfudge}
-%    The fractional protusion of a club serif.
-%    \begin{macrocode}
-clubjutfudge:=1/2;
-%    \end{macrocode}
-%
-% \DescribeVariable{clubjut}
-%    The lowercase club serif protrusion.
-%    \begin{macrocode}
-clubjut#:=jutstretch*clubjutfudge*thick#;
-%    \end{macrocode}
-%
-% \DescribeVariable{wided}
-% \DescribeVariable{widedmin}
-%  Default juts of wide (touching) diamonds.
-%    \begin{macrocode}
-wided:= 0.75;
-widedmin := 1.05 - wided;
-%    \end{macrocode}
-%
-% \DescribeVariable{narrowd}
-% \DescribeVariable{narrowdmin}
-%  Default juts of narrow (non-touching) diamonds.
-%    \begin{macrocode}
-narrowd:= 0.5;
-narrowdmin := 0.7 - narrowd;
-%    \end{macrocode}
-%
-% \DescribeVariable{diawd}
-% \DescribeVariable{diang}
-%  Default width and angle of diamonds.
-%    \begin{macrocode}
-diawd := 1.0;
-diang := 30;
-%    \end{macrocode}
-%
-% \DescribeVariable{fig_height} 
-%    The height of numerals. Make these midway between normal and capital
-% letters.
-%    \begin{macrocode}
-  fig_height#:=(0.5[1,caprat])*x_height#;
-%    \end{macrocode}
-%
-% \DescribeVariable{fig_width} 
-%    The width of numerals. All numerals are the same width (roughly, an `o').
-%    \begin{macrocode}
-  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
-%    \end{macrocode}
-%
-%
-%
-% \DescribeVariable{o}
-%    Amount of overshoot for curves (as in an `o'). Use CMR values.
-%    \begin{macrocode} 
-%<base7|base7b> o#:=5/36pt#;   
-%<base10|base10b> o#:=8/36pt#;   
-%<base17|base17b> o#:=10/36pt#;   
-
-%    \end{macrocode}
-%
-% \DescribeVariable{slant}
-% |slant| is the amount the font slopes to the right. \\
-% 5 degrees = 9/100; 10 degrees = 11/50.
-%    \begin{macrocode}
-slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
-%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
-
-%    \end{macrocode}
-% 
-% \DescribeVariable{monospace} 
-%    We are generating a variable-width font.
-%    \begin{macrocode}
-monospace:=false;    % should all characters have the same width?
-
-%    \end{macrocode}
-%
-% \DescribeVariable{dot_size}
-%    The size of (punctuation) dots.
-%    \begin{macrocode}
-dot_size#:=5thin#;   % size of dots
-%    \end{macrocode}
-%
-% \DescribeVariable{comma_width}
-%    The horizontal width of a comma.
-%    \begin{macrocode}
-comma_width#:=5/4dot_size#; 
-
-%    \end{macrocode}
-%
-%    Finally, call the driver file for the font.
-%    \begin{macrocode} 
-generate tgothtitle      %% switch to the driver file
-
-%    \end{macrocode}
-%
-%    The end of this code section.
-%    \begin{macrocode}
-%</base7|base10|base17|base7b|base10b|base17b>
-%    \end{macrocode}
-%
-%
-% \subsection{The driver file}
-%
-%    The driver file sets up the font parameters and also contains
-% the macros used in the definition of the characters.
-%
-%    \begin{macrocode}
-%<*mfd>
-% This is TGOTHTITLE.MF for the Gothic Textura Quadrata font.
-% This makes a short font.
-% This file also contains special macros universally needed in the 
-% font but either not in the cmbase.mf file or modifications of these.
-%
-%    \end{macrocode}
-%
-% \begin{routine}{makebox}
-%    This is a new version of the \Lpack{cmbase.mf} |makebox| macro.
-% Essentially, as we are only generating a single case font, we don't
-% need all the horizontals for the CMR characters.
-%
-%    \begin{macrocode}
-% A new version of cmbase.mf makebox macro
-def makebox(text rule) =
-  for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
-    rule((l,y)t_,(r,y)t_); endfor  % horizontals
-  for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
-  for x=u*(1+floor(1/u)) step u until r-1:
-    rule((x,-body_depth)t_,(x,body_height)t_); endfor         % more verticals
-  if charic<>0:
-    rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi  % italic correction
-enddef;
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{proofpcbb}
-%    The macro |proofpcbb(S, xoff, yoff)| draws crosses at the corners of the
-% square, and at the bottom and top midpoints, where the point |zS| is at
-% position |(xoff,yoff)| in the square. 
-%    \begin{macrocode}
-
-% A macro to delineate a letter's bounding square in proof mode.
-% Point z$ is at (xoff,yoff) in the bounding square.
-def proofpcbb(suffix $)(expr xoff, yoff) =
-if proofing > 0:
-  x$bl = x$ - xoff; y$bl = y$ - yoff;         % Bottom Left Hand Corner
-  z$br = (x$bl+side, y$bl);                   % BRHC
-  z$tr = (x$bl+side, y$bl+side);              % TRHC
-  z$tl = (x$bl, y$bl+side);                   % TLHC
-  z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr];  % horizontal mid points
-  pair hc, vc;
-  hc = (2u,0); vc = (0,2u);
-  pickup pensquare scaled 2;
-  for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
-    draw s-hc--s+hc;
-    draw s-vc--s+vc;
-  endfor
-fi
-enddef;
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-%
-% \begin{routine}{tgothic_font_setup}
-%    This macro contains the set up for the \thisfont{} fonts.
-%    \begin{macrocode}
- 
-def tgothic_font_setup= % contains special stuff for tgothic fonts
-  define_pixels(side,half_height,carol_height,comma_width);
-  define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
-                cap_serif_fit,jut,clubjut,cap_jut,trijut);
-  define_pixels(fig_width);
-  define_whole_pixels(letter_fit,sb,cap_sb);
-  define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
-                               desc_depth,body_depth,fig_height);
-  define_corrected_pixels(o);
-  define_blacker_pixels(thick,thin);
-  define_pixels(stem_width);
-  define_pixels(perpdec,angdec);
-  let adjust_fit = normal_adjust_fit;
-%    \end{macrocode}
-% \DescribeVariable{stylus}
-%  The pen for drawing the thinnest lines is |stylus|.
-%    \begin{macrocode}
-  pickup pencircle scaled thin;
-  stylus:=savepen;
-%    \end{macrocode}
-% \DescribeVariable{thickstylus}
-%  The pen for drawing lines a bit thicker than the thinnest is |thickstylus|.
-%    \begin{macrocode}
-  pickup pencircle scaled (1.5thin);
-  thickstylus:=savepen;
-%    \end{macrocode}
-% \DescribeVariable{quill}
-%  The normal calligraphic pen is |quill|.
-%    \begin{macrocode}
-  pickup pencircle xscaled thick yscaled thin rotated pangle;
-  quill:=savepen;
-
-%    \end{macrocode}
-%
-% \DescribeVariable{threequarterquill}
-% A pen with 3/4 of the width as quill (but with the same thinness).
-%    \begin{macrocode}
-  pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
-  threequarterquill := savepen;
-
-%    \end{macrocode}
-%
-% \DescribeVariable{halfquill}
-% A pen with 1/2 of the width as quill (but with the same thinness).
-%    \begin{macrocode}
-  pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
-  halfquill := savepen;
-
-%    \end{macrocode}
-%
-% \DescribeVariable{quarterquill}
-% A pen with 1/4 of the width as quill (but with the same thinness).
-%    \begin{macrocode}
-  pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
-  quarterquill := savepen;
-
-%    \end{macrocode}
-%
-%
-%    \begin{macrocode}
-  numeric pcshiftx#; % x value of LHS of box wrt origin of char box
-  define_pixels(pcshiftx);
-  numeric sqxside#;   % x size of the square
-  numeric sqyside#;   % y size of the square
-  define_pixels(sqxside,sqyside);
-
-enddef; % end of tgothic_font_setup
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \DescribeVariable{ductus}
-% A boolean to control drawing the ductus (TRUE) or the full letter (FALSE).
-%    \begin{macrocode}
-boolean ductus;
-ductus:=false;
-%    \end{macrocode}
-%
-% \DescribeVariable{qhor}
-% \DescribeVariable{qvert}
-% The cosine and sine of the pen angle.
-%    \begin{macrocode}
-numeric qhor, qvert;
-qhor:=cosd(pangle); qvert:=sind(pangle);
-%    \end{macrocode}
-%
-% \DescribeVariable{pdir}
-% The vector corresponding to the pen angle.
-%    \begin{macrocode}
-pair pdir; pdir=dir(pangle);
-%    \end{macrocode}
-%
-% \DescribeVariable{ppdir}
-% The vector that is perpendicular (anticlockwise) to the pen angle.
-%    \begin{macrocode}
-pair ppdir; ppdir=dir(pangle+90);
-%    \end{macrocode}
-%
-% \begin{routine}{draw_upforkstem}
-% A macro to draw a vertical stem with a fork at the top.
-% |draw_upforkstem(1,2)| uses the current pen to draw a vertical line, whose absolute
-% top and bottom are at |z1| and |z2|. The top (|z1|) has a wedge shaped slit.
-%    \begin{macrocode}
-
-def draw_upforkstem(suffix $, $$)=
-  pen oldpen; oldpen:=currentpen;
-  x$a=x$; top y$a = bot y$;         % top of straight stem
-  draw z$a--z$$;                    % straight part
-  z$b = (rt x$, y$); z$c = (x$b, top y$a);
-  z$d = (lft x$, bot y$a); z$e = (x$d, y$);
-  pickup stylus;
-  rt x$cc = x$c;  y$cc = y$c;
-  lft x$bb = x$b; y$bb = y$b;
-  lft x$dd = x$d; y$dd = y$d;
-  rt x$ee = x$e;  y$ee = y$e;
-  filldraw z$a--z$bb..z$cc--cycle;    % fork
-  filldraw z$a--z$dd..z$ee--cycle;
-  pickup oldpen;
-  labels($a,$b,$c,$d,$e);
-enddef; % end of draw_upforkstem
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_downforkstem}
-% A macro to draw a vertical stem with a fork at the bottom.
-% |draw_downforkstem(1,2)| uses the current pen to draw a vertical line, whose absolute
-% top and bottom are at |z1| and |z2|. The bottom (|z2|) has a wedge shaped slit.
-%    \begin{macrocode}
-
-def draw_downforkstem(suffix $, $$)=
-  pen oldpen; oldpen:=currentpen;
-  x$$a=x$$; bot y$$a = top y$$;         % bottom of straight stem
-  draw z$--z$$a;                        % straight part
-  z$$b = (rt x$$, y$$); z$$c = (x$$b, top y$$a);
-  z$$d = (lft x$$, bot y$$a); z$$e = (x$$d, y$$);
-  pickup stylus;
-  rt x$$cc = x$$c;  y$$cc = y$$c;
-  lft x$$bb = x$$b; y$$bb = y$$b;
-  lft x$$dd = x$$d; y$$dd = y$$d;
-  rt x$$ee = x$$e;  y$$ee = y$$e;
-  filldraw z$$a--z$$bb..z$$cc--cycle;    % fork
-  filldraw z$$a--z$$dd..z$$ee--cycle;
-  pickup oldpen;
-  labels($$a,$$b,$$c,$$d,$$e);
-enddef; % end of draw_downforkstem
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{draw_upcurlstem}
-% A macro to draw a vertical stem with a curl to the left at the top.
-% |draw_upcurlstem(1,2)| uses the current pen to draw a vertical line, whose absolute
-% top and bottom are at |z1| and |z2|. The top (|z1|) has a fancy curl to the left,
-% jutting out 3 stem widths.
-%    \begin{macrocode}
-
-def draw_upcurlstem(suffix $, $$)=
-  pen oldpen; oldpen:=currentpen;
-  path curlp[]; numeric curln[];
-  x$a=x$; top y$a = y$;         % top of straight stem
-  draw z$a--z$$;                    % straight part
-  curln1 := rt x$a - lft x$a;       % stem width
-  x$b = x$a - 4/2curln1; y$b = y$a;      % left jut
-  curlp1 := z$a{-pdir}..{left}z$b;
-  draw curlp1;
-
-  x$c = x$a-3curln1; top y$c = bot y$a-1/2curln1;
-  x$f = x$b; y$f = 1/3[y$c,y$b];
-  x$tb = rt x$b; y$tb = top y$b;
-  x$bb = lft x$b; y$bb = bot y$b;
-  curlp2 := z$tb--z$bb..{down}z$c..{ppdir}z$f;
-  pickup stylus;
-  draw curlp2;
-  pickup oldpen;
-  labels($a,$b,$c,$d,$e,$f);
-enddef; % end of draw_upcurlstem
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_updiamondstem}
-% A macro to draw a vertical stem with a diamond at the top.
-% |draw_updiamondstem(1,2,fr,minfr,wd,ang)| uses the quill pen to draw a vertical line, 
-% whose absolute
-% top and bottom are at |z1| and |z2|. The top (|z1|) has a leftward diamond, whose
-% left jut is |fr| times the width of the stem, right jut is |minfr*stem_width|, width
-% is |wd*stem_width| and angle above the horizontal is |ang|.
-%    \begin{macrocode}
-
-def draw_updiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
-  pen oldpen; oldpen:=currentpen;
-  numeric sj; sj := fr*stem_width;             % jut distance
-  numeric sjr; sjr := minfr*stem_width;        % right jut distance
-  numeric jw;  jw := wd*stem_width;            % jut width
-  %% $b is bottom left of jut, on LHS of stem
-  %% $c is leftmost point on jut
-  %% $d is topmost point on jut
-  %% $g is topmost point on stem
-  %% $e is on exprapolation of line from $d through $g
-  %%    i.e., the rightmost point on jut
-  %% $f is on RHS of stem
-  pickup quill;
-  x$b = lft x$;
-  x$c = x$b - sj; y$c = y$ - jw*(cosd phi);    % $c done
-  y$b = y$c - sj*(sind phi);                   % $b done
-  x$d = x$c + jw*(sind phi); y$d = y$;         % $d done
-  x$g = x$f = rt x$;
-  y$g = y$ - (x$g-x$d)*(sind phi)/(cosd phi);  % $g done
-  x$a = x$; top y$a = y$g;                     % $a done
-  x$e = x$g + sjr;  z$e = whatever[z$d,z$g];  % $e done
-  z$f-z$e = whatever*(z$c-z$d);                % $f done
-  x$h = x$b; y$h = bot y$a;
-  draw z$a--z$$;                    % straight part
-  pickup stylus;
-  lft x$cc = x$c; y$cc = y$c;
-  x$dd = x$d; top y$dd = y$d;
-  rt x$ee = x$e; bot y$ee=y$e;
-  filldraw z$b--z$cc--z$dd--z$ee--z$f--cycle;    % diamond
-  if y$b > y$h:
-    lft x$hh = x$h; y$hh=y$h; 
-    filldraw z$b--z$hh--z$g--cycle;
-  fi
-  pickup oldpen;
-  labels($a,$b,$c,$d,$e,$f);
-enddef; % end of draw_updiamondstem
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{draw_downdiamondstem}
-% A macro to draw a vertical stem with a diamond at the bottom.
-% |draw_downdiamondstem(1,2,fr,minfr,wd,ang)| uses the quill pen to draw a vertical line, 
-% whose absolute
-% top and bottom are at |z1| and |z2|. The bottom (|z2|) has a rightward diamond, whose
-% right jut is |fr| times the width of the stem, left jut is |minfr*stem_width|,
-% width is |wd*stem_width| and is at |ang| degrees below the horizontal.
-%    \begin{macrocode}
-
-def draw_downdiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
-  pen oldpen; oldpen:=currentpen;
-  numeric sj; sj := fr*stem_width;              % (left) jut distance
-  numeric sjr; sjr := minfr*stem_width;;        % right jut distance
-  numeric jw;  jw := wd*stem_width;             % jut width
-  %% $$b is top right of jut, on RHS of stem
-  %% $$c is rightmost point on jut
-  %% $$d is bottommost point on jut
-  %% $$g is bottommost point on stem
-  %% $$e is on exprapolation of line from $d through $g
-  %%    i.e., the leftmost point on jut
-  %% $$f is on LHS of stem
-  pickup quill;
-  x$$b = rt x$$;
-  x$$c = x$$b + sj; y$$c = y$$ + jw*(cosd phi);    % $$c done
-  y$$b = y$$c + sj*(sind phi);                     % $$b done
-  x$$d = x$$c - jw*(sind phi); y$$d = y$$;         % $$d done
-  x$$g = x$$f = lft x$$;
-  y$$g = y$$ + (x$$d-x$$g)*(sind phi)/(cosd phi);  % $$g done
-  x$$a = x$$; bot y$$a = y$$g;                     % $$a done
-  x$$e = x$$g - sjr;  z$$e = whatever[z$$d,z$$g];  % $$e done
-  z$$f-z$$e = whatever*(z$$c-z$$d);                % $$f done
-  x$$h = x$$b; y$$h = top y$$a;
-  draw z$--z$$a;                    % straight part
-  pickup stylus;
-  rt x$$cc = x$$c; y$$cc=y$$c;
-  x$$dd = x$$d; bot y$$dd = y$$d;
-  lft x$$ee = x$$e; top y$$ee = y$$e;
-  filldraw z$$b--z$$cc--z$$dd--z$$ee--z$$f--cycle;    % diamond
-  if y$$b < y$$h:
-    rt x$$hh = x$$h; y$$hh=y$$h; 
-    filldraw z$$b--z$$hh--z$$g--cycle;
-  fi
-  pickup oldpen;
-  labels($$a,$$b,$$c,$$d,$$e,$$f);
-enddef; % end of draw_downdiamondstem
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_serif}
-% A macro to draw a serif. |draw_serif(1,2,f)| uses the current pen to
-% draw a serif of extent |jut| at |z1| to the left of the line from |z2| 
-% to |z1|. The
-% radius is controlled by |f|, where $0<f<1$. The `stem' from |z1| to |z2|
-% starts at the point |z1a|.
-%    \begin{macrocode}
-
-def draw_serif(suffix $, $$)(expr fr)=
-  numeric beta, ajut, bjut;
-%    \end{macrocode}
-% |fr| and |beta| control the serif radius.
-%    \begin{macrocode}
-  beta=1-fr;
-  ajut=fr*jut; bjut=beta*jut;
-%    \end{macrocode}
-% The points |$c|, |$b| and |$a| define the serif. For a top (bottom) serif
-% the leftmost (rightmost) point is 
-% |$c| and |$a| is on the stem. |$a| is moved from |$| towards |$$| by the 
-% distance |ajut|, and the other points are calculated from this. If the stem
-% is not vertical, then we have to rotate |$b| to match.
-%    \begin{macrocode}
-  pair vec[]; vec1=unitvector(z$$-z$);
-  vec2=ajut*vec1;
-  z$a=z$ shifted vec2;
-  z$b=z$a rotatedaround (z$,-90);
-  boolean top_serif;
-  if y$>y$$:
-    top_serif := true;
-    z$c=z$b shifted (-bjut*pdir);
-  else:
-    top_serif:=false;
-    z$c=z$b shifted (bjut*pdir);
-  fi
-%    \end{macrocode}
-% Draw the parts, and finish off.
-%    \begin{macrocode}
-  if top_serif:
-    draw z$c--z$b{pdir}..{z$$-z$}z$a;    % the serif
-  else:
-    draw z$c--z$b{-pdir}..{z$$-z$}z$a;
-  fi
-  labels($a,$b,$c);
-enddef; % end of draw_serif
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_roundserif}
-% The |draw_serif| routine can leave a bump at the end of the stem.
-% The |draw_roundserif| routine, which takes the same arguments,
-% is meant to eliminate the bump.
-%    \begin{macrocode}
-
-def draw_roundserif(suffix $, $$)(expr fr)=
-  draw_serif($, $$, fr);
-  undraw z$--z$a;
-enddef; % end of draw_roundserif
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{draw_flatserif}
-% A macro to draw a serif. |draw_serif(1,2,f)| uses the current pen to
-% draw a serif of extent |jut| at |z1| to the left of the line from |z2| 
-% to |z1|. The
-% radius is controlled by |f|, where $0<f<1$. The `stem' from |z1| to |z2|
-% starts at the point |z1a|. This produces a serif like |draw_serif| except
-% that one side of the seerif is flat.
-%    \begin{macrocode}
-
-def draw_flatserif(suffix $, $$)(expr fr)=
-  numeric beta, ajut, bjut;
-%    \end{macrocode}
-% |fr| and |beta| control the serif radius.
-%    \begin{macrocode}
-  beta=1-fr;
-  ajut=fr*jut; bjut=beta*jut;
-%    \end{macrocode}
-% The points |$c|, |$b| and |$a| define the serif. For a top (bottom) serif
-% the leftmost (rightmost) point is 
-% |$c| and |$a| is on the stem. |$a| is moved from |$| towards |$$| by the 
-% distance |ajut|, and the other points are calculated from this. If the stem
-% is not vertical, then we have to rotate |$b| to match.
-%    \begin{macrocode}
-  pair vec[]; vec1=unitvector(z$$-z$);
-  vec2=ajut*vec1;
-  z$a=z$ shifted vec2;
-%%%  z$b=z$a rotatedaround (z$,-90);
-  boolean top_serif;
-  if y$>y$$:
-    top_serif := true;
-    z$c=z$ shifted (-jut*pdir);
-  else:
-    top_serif:=false;
-    z$c=z$ shifted (jut*pdir);
-  fi
-  z$b = fr[z$,z$c];
-%    \end{macrocode}
-% Draw the parts, and finish off.
-%    \begin{macrocode}
-  draw z$a--z$;
-  if top_serif:
-    draw z$c--z$b{pdir}..{z$$-z$}z$a;    % the serif
-  else:
-    draw z$c--z$b{-pdir}..{z$$-z$}z$a;
-  fi
-  labels($a,$b,$c);
-enddef; % end of draw_flatserif
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{draw_clubserif}
-% A macro to draw a clubbed serif. |draw_clubserif(1,2,f)| uses the current 
-% pen to
-% draw a clubbed serif of extent |clubjut| at |z1| to the left of the line 
-% from |z2| 
-% to |z1|. The serif matches |z1| like the flatserif does and ends at the
-% point |f[z1,z2]|.
-%    \begin{macrocode}
-
-def draw_clubserif(suffix $, $$)(expr fr)=
-  numeric beta, ajut, bjut;
-%    \end{macrocode}
-% |fr| controls the length of the serif.
-%    \begin{macrocode}
-%%  beta=1-fr;
-  ajut=clubjut; bjut=beta*jut;
-%    \end{macrocode}
-% The points |$c|, |$b| and |$a| define the serif. For a top (bottom) serif
-% the leftmost (rightmost) point is 
-% |$c| and |$a| is on the stem, |fr| between |$| and |$$|.
-%    \begin{macrocode}
-  pair vec[]; vec1=unitvector(z$$-z$);
-%%  vec2=ajut*vec1;
-%%  z$a=z$ shifted vec2;
-  boolean top_serif;
-  if y$>y$$:
-    top_serif := true;
-    z$c=z$ shifted (-clubjut*pdir);
-  else:
-    top_serif:=false;
-    z$c=z$ shifted (clubjut*pdir);
-  fi
-  z$a = fr[z$,z$$];
-%    \end{macrocode}
-% Draw the parts, and finish off.
-%    \begin{macrocode}
-  draw z$c..z$a{vec1};
-  labels($a,$b,$c);
-enddef; % end of draw_clubserif
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-%
-% \begin{routine}{draw_triserif}
-% A macro to draw a triangular top left serif.
-% |draw_triserif(1,tj)| draws a serif at |z1| with its leftmost x
-% value at |x1-tj|, where it is assumed that the
-% top point on the stem is at |z1| and the stem was drawn with |quill|.
-%    \begin{macrocode}
-
-def draw_triserif(suffix $)(expr tj)=
-  pen oldpen; oldpen:=currentpen;
-  pickup quill;
-  x$ts1'=lft x$; y$ts1'=bot y$;
-  pickup stylus;
-  lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
-  x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
-  x$ts3=x$ts1; y$ts3=y$ts2-tj;
-  pickup stylus;
-%%  filldraw z$ts1--z$ts2--z$ts3--cycle;
-  filldraw z$--z$ts2--z$ts3--cycle;
-  pickup oldpen;
-  labels($ts1,$ts2,$ts3);
-enddef; % end of draw_triserif
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_istem}
-%  A macro to draw the shape of an i. |draw_istem(1,2,f)| draws a stem whose
-% top is at |z1| and bottom at |z2|. It draws with the current pen and the serifs
-% are of extent |jut|. There is a top left and bottom right serif.
-% The serif radius is controlled by |f|, with $0<f<1$.
-%    \begin{macrocode}
-
-def draw_istem(suffix $, $$)(expr fr)=
-  draw_serif($, $$, fr);  % top serif
-  draw_serif($$, $, fr);  % bottom serif
-  draw z$a--z$$a;  % the stem
-enddef; % end of draw_istem
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_tstem}
-%  A macro to draw the shape of the stem of a `t'. |draw_tstem(1,2,f)| draws a 
-% stem whose
-% top is at |z1| and bottom at |z2| with a right serif at |z2|. The radius
-% is controlled by |f|, with $0 < f < 1$.
-% It draws with the current pen and the serif is of extent |jut|.
-% NOTE: for the TGOTH font, just the stem is drawn --- no serif!
-%    \begin{macrocode}
-
-def draw_tstem(suffix $, $$)(expr fr)=
-%%  draw_serif($$, $, fr);  % the serif
-%%  draw z$--z$$a;                      % the stem
-  draw z$--z$$;
-enddef; % end of draw_tstem
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_tlserif}
-%  A macro to draw a top left serif. |draw_tlserif(1,2,f)| draws a serif on top
-% of a stem whose absolute 
-% top is at |z1| and bottom at |z2|. It draws with the current pen and the serif
-% is of extent |jut|. It also draws the stem to the point |z2|. The serif
-% radius is controlled by |f|, with $0<f<1$.
-%    \begin{macrocode}
-
-def draw_tlserif(suffix $, $$)(expr fr)=
-  draw_serif($, $$, fr);  % the serif
-  draw z$a--z$$;                       % the stem
-enddef; % end of draw_tlserif
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{draw_flick}
-%  A macro to draw a flick (like an eyebrow). 
-% |draw_flick(1,rise,fall,fjut)| draws a stroke starting at |z1| rising up by
-% |rise| and falling down by |fall| wrt |z1|. The overall stroke distance is
-% |fjut| to the right of |z1|. It is drawn with the current pen.
-%    \begin{macrocode}
-
-def draw_flick(suffix $)(expr rise, fall, fjut)=
-%    \end{macrocode}
-% The points |z$a| and |z$b|, together with |z$| make up three points on the
-% ductus.
-%    \begin{macrocode}
-  rt x$b = x1+fjut; top y$b=y$-fall;
-  x$a=0.5[x$,x$b]; top y$a=y$+rise;
-%    \end{macrocode}
-% Draw the part, and finish off.
-%    \begin{macrocode}
-  draw z$..z$a..z$b; 
-  labels($a,$b);
-enddef; % end of draw_flick
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{draw_wave}
-% A macro to draw a (horizontal) stroke with a flick at each end 
-% (down at the left and up at the right). |draw_wave(1,2,f)| uses the current
-% pen to draw from |z1wl| to |z1wr|, where |x1wl=x1|, |y1wl=y1-f|, and
-% |x1wr=x2|, |y1wr=y2+f|, with |z1| assumed to be at the left of |z2|.
-%    \begin{macrocode}
-
-def draw_wave(suffix $,$$)(expr f)=
-  x$wl=x$; y$wl=y$-f;
-  x$wr=x$$; y$wr=y$$+f;
-  z$wc=0.5[z$wl,z$wr];
-  draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
-  labels($wl,$wc,$wr);
-enddef; % end of draw_wave
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_tail}
-% A macro to draw a tail at the bottom of a (vertical) stem.
-% |draw_tail(1,fjut)| draws a tail at the bottom of the stem which ends at |z1|.
-% The depth is controlled by the |desc_depth| value and the jut by |fjut|.
-%    \begin{macrocode}
-
-def draw_tail(suffix $)(expr fj)=
-  pen oldpen; oldpen:=currentpen;
-  pickup quill;
-  x$tl' = lft x$; y$tl=bot y$;
-  pickup stylus;
-  lft x$tl=x$tl';
-  x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
-  filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
-  pickup oldpen;
-  labels($tb,$tl);
-enddef; % end of draw_tail
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_triangle}
-% A macro to draw a downward pointing equilateral triangle.
-% |draw_triangle(1,sz)| draws a triangle of side length |sz| with |z1| in the middle
-% of the base.
-%    \begin{macrocode}
-
-def draw_triangle(suffix $)(expr sz)=
-  pen oldpen; oldpen:=currentpen;
-  pickup stylus;
-  x$t1=x$-sz/2; x$t3=x$+sz/2;
-  y$t1=y$t3=y$;
-  x$t2=x$; y$t2=y$-0.9sz;   % approx sqrt(3)/2
-  filldraw z$t1--z$t2--z$t3--cycle;
-  pickup oldpen;
-  labels($t1,$t2,$t3);
-enddef; % end of draw_triangle
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_utriangle}
-% A macro to draw an upward pointing equilateral triangle.
-% |draw_utriangle(1,sz)| draws a triangle of side length |sz| with |z1| in the middle
-% of the base.
-%    \begin{macrocode}
-
-def draw_utriangle(suffix $)(expr sz)=
-  pen oldpen; oldpen:=currentpen;
-  pickup stylus;
-  x$t1=x$-sz/2; x$t3=x$+sz/2;
-  y$t1=y$t3=y$;
-  x$t2=x$; y$t2=y$+0.9sz;   % approx sqrt(3)/2
-  filldraw z$t1--z$t2--z$t3--cycle;
-  pickup oldpen;
-  labels($t1,$t2,$t3);
-enddef; % end of draw_utriangle
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_rtriangle}
-% A macro to draw a downward pointing right angled triangle.
-% |draw_rtriangle(1,sz)| draws a triangle of side length |sz| with |z1| at the
-% right (where the right angle is).
-%    \begin{macrocode}
-
-def draw_rtriangle(suffix $)(expr sz)=
-  pen oldpen; oldpen:=currentpen;
-  pickup stylus;
-  x$t1=x$-sz; rt x$t3=x$;
-  y$t1=y$t3=y$;
-  x$t2=x$t3; y$t2=y$-sz;
-  filldraw z$t1--z$t2--z$t3--cycle;
-  pickup oldpen;
-  labels($t1,$t2,$t3);
-enddef; % end of draw_rtriangle
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_rutriangle}
-% A macro to draw an upward pointing right angled triangle.
-% |draw_rutriangle(1,sz)| draws a triangle of side length |sz| with |z1| at the
-% right (where the right angle is).
-%    \begin{macrocode}
-
-def draw_rutriangle(suffix $)(expr sz)=
-  pen oldpen; oldpen:=currentpen;
-  pickup stylus;
-  x$t1=x$-sz; rt x$t3=x$;
-  y$t1=y$t3=y$;
-  x$t2=x$t3; y$t2=y$+sz;
-  filldraw z$t1--z$t2--z$t3--cycle;
-  pickup oldpen;
-  labels($t1,$t2,$t3);
-enddef; % end of draw_rutriangle
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_fork}
-% A macro to draw a forked line.
-% |draw_fork(1,2,sz)| draws a graduated line from |z1| to |z2| with a forked
-% end of size |sz|.
-%    \begin{macrocode}
-
-def draw_fork(suffix $, $$)(expr sz)=
-  pen oldpen; oldpen:=currentpen;
-  pickup quill;
-  x$f1'=lft x$; y$f1'=bot y$;
-  x$f3'=rt x$;  y$f3'=top y$;
-  pickup stylus;
-  lft x$f1=x$f1'; bot y$f1=y$f1';
-  rt x$f3=x$f3';  y$f3-y$=2*(y$-y$f1);
-  rt x$f2=x$$-sz; bot y$f2=y$$;
-  rt x$f4= rt x$f5=x$$;
-  bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
-  filldraw z$f1--z$f2--z$f3--cycle;   % the line
-  draw z$f2{right}..z$f4;             % upper fork
-  draw z$f2{right}..z$f5;             % lower fork
-  pickup oldpen;
-  labels($f1,$f2,$f3,$f4,$f5);
-enddef; % end of draw_fork
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_urswish}
-% A macro to draw a line up and to the right with an under curl at the end.
-% |draw_urswish(1,2)| draws from |z1| towards |z2|, which is the max upper right
-% of a bounding box, where the curl is.
-%    \begin{macrocode}
-
-def draw_urswish(suffix $, $$)=
-  pen oldpen; oldpen:=currentpen;
-  pickup quill;
-  rt x$$s1=x$$-thick; top y$$s1=y$$;
-  rt x$$s2=x$$; 
-%%  x$$s3=x$$-thick;
-  lft x$$s3=x$$s1;
-  bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
-%%  draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
-  draw z$..z$$s1{pdir}..z$$s2{down};
-  labels($$s1,$$s2,$$s3); 
-enddef; % end of draw_urswish
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{bowl_stem}
-%  Calculate where a bowl should meet a stem so that the pen is moving in the
-% pen direction.
-% |bowl_stem(1,2)| calculates the point |z1i|, where |z1| is on the bowl and
-% there is a vertical line at |x2|.
-%
-%    \begin{macrocode}
-
-def bowl_stem(suffix $, $$)=
-  x$'=0.5[x$,x$$]; y$'=y$;    % the mid-point
-  z$''=z$' shifted (thick*pdir);
-  x$i=x$$; z$i=whatever[z$',z$''];
-  labels($',$i);
-enddef; % end of bowl_stem
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_clubbase}
-% Draw a clubbed bottom of a vertical stem for the TGOTH font.
-% |draw_clubbase(1, 2, st, left, right)| draws from |st[z2,z1]| to |z2|. 
-% At |z2| the pen
-% is shifted |left| fraction of the pen width and |right| fraction of the
-% pen width, both in the direction of the pen angle. Pen draws smoothly the
-% path |z1|, |left|, |right|, |z1|.
-%    \begin{macrocode}
-
-% draw clubbed bottom of vertical stem for TGOTH font.
-def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
-  z$$l = z$$ shifted (lft*thick*(-pdir));
-  z$$r = z$$ shifted (rt*thick*(pdir));
-  z$$t = st[z$$,z$];
-  draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
-  labels($$t,$$l,$$r);
-enddef; % end of draw_clubbase
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_pdot}
-%  A macro to draw a period dot.
-% |draw_pdot(1,sz)| uses |stylus| to draw a dot centered at |z1| of overall size |sz|.
-%    \begin{macrocode}
-
-def draw_pdot(suffix $)(expr sz)=
-%    \end{macrocode}
-% Draw a square rotated 45 degrees.
-%    \begin{macrocode}
-  z$s = z$ shifted (0.5sz*left);
-  z$t = z$ shifted (0.5sz*up);
-  z$u = z$s shifted (sz*right);
-  z$v = z$t shifted (sz*down);
-  pickup stylus;
-  filldraw z$s--z$t--z$u--z$v--cycle;
-  labels($s,$t,$u,$v);
-enddef; % end of draw_pdot
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_pcomma}
-%  A macro to draw a period comma.
-% |draw_pcomma(1,t,w)| draws a comma placed at |z1| (the top), line width is |t|
-% and bottom of line is |w| horizontally from |z1|. The pen is |stylus|.
-%    \begin{macrocode}
-
-def draw_pcomma(suffix $)(expr sz, ar)=
-%    \end{macrocode}
-% Draw a line of at |z$| of width |sz| sloping back and down 
-% for a total width of |ar| and deptrh of |2ar|.
-%    \begin{macrocode}
-  z$s = z$ shifted (0.5sz*left);
-  z$t = z$s shifted (sz*right);
-  x$v=x$s-ar; y$v=y$s-2ar;
-  z$u = z$v shifted (sz*right);
-  z$sv = (x$s, 1/3[y$s,y$v]);
-  z$tu = (x$t, y$sv);
-  z$uv = 1/3[z$u,z$v];
-  z$vu = 1/3[z$v,z$u];
-  pickup stylus;
-%%  filldraw z$s--z$t--z$u--z$v--cycle;
-  filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
-  labels($s,$t,$u,$v);
-enddef; % end of draw_pcomma
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{draw_plq}
-%  A macro to draw a period left quote.
-% |draw_pcomma(1,t,w)| draws a left quote placed at |z1| (the top), line width is |t|
-% and bottom of line is |w| horizontally from |z1|.
-%    \begin{macrocode}
-
-def draw_plq(suffix $)(expr sz, ar)=
-%    \end{macrocode}
-% Draw a line of at |z$| of width |sz| sloping forward and down 
-% for a total width of |ar| and depth |2ar|.
-%    \begin{macrocode}
-  z$s = z$ shifted (0.5sz*left);
-  z$t = z$s shifted (sz*right);
-  x$v=x$s+ar; y$v=y$s-2ar;
-  z$u = z$v shifted (sz*right);
-  z$sv = (x$s, 1/3[y$s,y$v]);
-  z$tu = (x$t, y$sv);
-  z$uv = 1/3[z$u,z$v];
-  z$vu = 1/3[z$v,z$u];
-  pickup stylus;
-%%  filldraw z$s--z$t--z$u--z$v--cycle;
-  filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
-  labels($s,$t,$u,$v);
-enddef; % end of draw_plq
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{offsetbowl}
-%    A macro to calculate the outer and inner paths (|obouter| and |obinner|)
-% for a non-centered letter `o'. |offsetbowl($, sx, sy, fx, fy)| 
-% calculates the paths for an `o'
-% enclosed in a rectangle size |sx| by |sy| with its bottom lefthand corner
-% located at |z$|, where the center of the o is at |(fx*sx, fy*sy)| in the
-% bounding rectangle.
-%
-%    Two construction paths, namely |obfirst| and |obsecond| are also
-% available. They should be identical.
-%
-%    All paths have points listed in a clockwise direction, starting with
-% |z$nh| or |z$minl| as appropriate.
-%
-%  |offsetbowl($, sx, sy, 1/2, 1/2)| gives the same results as |obowl($, sx, sy)|.
-%    \begin{macrocode}
-
-path obouter, obinner, obfirst, obsecond;
-def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
-  numeric inx, iny, cx, cy;
-  pair pt[];
-  path pth[];
-  inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
-  cx := x$+fx*sx; cy := y$+fy*sy;
-  z$obc = (cx,cy);
-%    \end{macrocode}
-% Calulate points on the centre path of the pen. These are offset by |inx|
-% from the rectangles vertical sides and by |iny| from the horizontal sides.
-% If the pen is parallel to a side, offset the point by half the pen's 
-% dimension. First do the West, East, North and South points.
-%    \begin{macrocode}
-  if pangle = 90:
-    z$wt=(x$+1/2thin, cy);
-    z$et=(x$+sx-1/2thin, cy);
-  else:
-    z$wt=(x$+inx, cy);
-    z$et=(x$+sx-inx, cy);
-    penpos$wt(thick,pangle);
-    penpos$et(thick,pangle);
-  fi
-  if pangle = 0:
-    z$nh=(cx, y$+sy-1/2thin);
-    z$sh=(cx, y$+1/2thin);
-  else:
-    z$nh=(cx, y$+sy-iny);
-    z$sh=(cx, y$+iny);
-    penpos$nh(thick,pangle);
-    penpos$sh(thick,pangle);
-  fi
-  obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
-%    \end{macrocode}
-% Now calculate the points on the path |obfirst| where the pen will
-% draw the min width lines (i.e., the points where the pen will be
-% moving parallel to |pangle|).
-%    \begin{macrocode}
-  if pangle = 90:
-      z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
-  else:
-    if pangle = 0:
-      z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
-    else:
-      z$minl = directionpoint dir(pangle)     of obfirst;
-      z$minr = directionpoint -dir(pangle)    of obfirst;
-%    \end{macrocode}
-% The max points are roughly where the inner and outer diverge 
-% the most. These are simple for 0 and 90 degree pens and have
-% been calculated above. It's not so simple for intermediate
-% angles. For a reasonable looking result, we pick the max
-% points to be halfway between the min points. This involves
-% calculating some angles, paths and intersections.
-%    \begin{macrocode}
-      pt1 := z$minr - z$minl;           % direction
-      pt2 := (- ypart pt1, xpart pt1);  % perpendicular
-      pt3 := 1/2[z$minl, z$minr];
-      pt4 := pt3 shifted pt2;
-      pt5 := pt3 shifted -pt2;
-      pth1 := pt3--pt4;
-      pth2 := pt3--pt5;
-      z$maxr = pth1 intersectionpoint obfirst;
-      z$maxl = pth2 intersectionpoint obfirst;
-    \fi
-  \fi
-%    \end{macrocode}
-% Place the pen at each of these points to get the outer and inner points.
-%    \begin{macrocode}
-  penpos$minl(thin,pangle+90);
-  penpos$maxr(thick,pangle);
-  penpos$minr(thin,pangle+90);
-  penpos$maxl(thick,pangle);
-%    \end{macrocode}
-% Finally, the outer and inner paths.
-%    \begin{macrocode}
-  obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
-  z$minlo = z$minl.r; z$maxro = z$maxr.r;
-  z$minro = z$minr.l; z$maxlo = z$maxl.l;
-  obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
-  z$minli = z$minl.l; z$maxri = z$maxr.l;
-  z$minri = z$minr.r; z$maxli = z$maxl.r;
-  obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
-  labels($obc, $nh, $et, $sh, $wt);
-  labels($minl, $maxr, $minr, $maxl);
-  labels($minlo, $maxro, $minro, $maxlo);
-  labels($minli, $maxri, $minri, $maxli);
-enddef;
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{obowl}
-%    A macro to calculate the outer and inner paths (|obouter| and |obinner|)
-% for the letter `o'. |obowl($, sx, sy)| calculates the paths for an `o'
-% centered and enclosed in a rectangle size |sx| by |sy| with its bottom 
-% lefthand corner located at |z$|.
-%    \begin{macrocode}
-
-def obowl(suffix $)(expr sx, sy)=
-  offsetbowl($, sx, sy, 1/2, 1/2);
-enddef;
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{scalarprod}
-%  |v scalarprod w| calulates the scalar product between the
-% two vectors |v| and |w|.
-%    \begin{macrocode}
-
-primarydef v scalarprod w =
-  (xpart v * ypart w - ypart v * xpart w)
-enddef;
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{tangentpoint}
-% |tangentpoint($, path)| calculates the point |z$tan| on the |path|
-% so that |z$tan--z$| is tangent to the path. It uses a binary search
-% to find a point on the path such that the path direction is
-% (anti-) parallel to the dirction from that point to the given point.
-%    \begin{macrocode}
-
-def tangentpoint(suffix $)(expr pth)=
-  pair vecll, veclr, veclm;    % "tangent" line directions
-  numeric pl, pr, pm;          % path parameter values
-  pair vecpl, vecpr, vecpm;    % path directions
-  pair ptl, ptr, ptm;          % path points
-  numeric sl, sr, sm;          % scalar products of path/line directions
-  numeric stpsize;             % size of current binary step
-  numeric tantol;              % tolerance
-  boolean wtest;               % a boolean
-
-  tantol := eps;
-%    \end{macrocode}
-% Initialise using the left right and middle points on the path.
-%    \begin{macrocode}
-  pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
-  ptl := point pl of pth;
-  ptm := point pm of pth;
-  ptr := point pr of pth;
-%    \end{macrocode}
-% Now the various vectors, and make sure they are unit vectors to
-% have a consistent measure scale when we take the scalar products.
-%    \begin{macrocode}
-  vecll := unitvector (z$-ptl);
-  veclm := unitvector (z$-ptm);
-  veclr := unitvector (z$-ptr);
-  vecpl := unitvector (direction pl of pth);
-  vecpm := unitvector (direction pm of pth);
-  vecpr := unitvector (direction pr of pth);
-  sl := vecll scalarprod vecpl;
-  sm := veclm scalarprod vecpm;
-  sr := veclr scalarprod vecpr;
-%    \end{macrocode}
-% We stop if any of the points is the tangent point, or if the step
-% size is too small, or if the signs of the left and right scalar
-% products are the same.
-%    \begin{macrocode}
-  wtest := (stpsize < tantol) or (sl*sr > 0) or
-           (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
-  if wtest:
-    if (stpsize < tantol):
-      z$tan=(0,0);
-      errmessage("No tangent; path too short");
-    else:
-      if (sl*sr > 0):
-        z$tan=(0,0);
-        errmessage("No tangent; end products have the same sign");
-      else:
-        if (abs sl < tantol):
-          z$tan=ptl;
-        else:
-          if (abs sm < tantol):
-            z$tan=ptm;
-          else:
-            z$tan=ptr;
-          fi
-        fi
-      fi
-    fi
-  else:
-%    \end{macrocode}
-% There should be a tangent and we iterate to find it, using
-% bisection. If there is one to be found it will be at the
-% current middle point. The tangent point will be somewhere
-% between the two points that lead to opposite signed scalar 
-% products. 
-%    \begin{macrocode}
-    forever:
-      if (sl*sm < 0):  % opposite signs, look between pl & pm
-        pr:=pm; pm:=0.5(pr+pl);
-        vecpr := vecpm; veclr := veclm; sr:=sm;
-      else:
-        pl:=pm; pm:=0.5(pr+pl);
-        vecpl:=vecpm; vecll:=veclm; sl:=sm;
-      fi
-      stpsize:=pr-pl;
-      ptm := point pm of pth;
-      veclm := unitvector (z$-ptm);
-      vecpm := unitvector (direction pm of pth);
-      sm := veclm scalarprod vecpm;
-%    \end{macrocode}
-%  We stop the iteration if the step size is too small or the
-% middle point is the tangent point. In either case, the
-% middle point is the best guess that can be made.
-%    \begin{macrocode}
-      wtest := (stpsize < tantol) or (abs sm < tantol);
-      if wtest:
-        if (abs sm < tantol):
-          z$tan = ptm;
-        else:
-          z$tan = ptm;
-%%%%%%          errmessage("Warning: tangent approximated");
-        fi
-      fi
-      exitif wtest;
-    endfor
-  fi
-enddef;
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-%    Set the mode and font setup.
-%    \begin{macrocode}
- 
-font_coding_scheme:="ASCII minuscules and punctuation";
-mode_setup; 
-tgothic_font_setup;
-
-%    \end{macrocode}
-%
-%
-%    We generate letters, together with some punctuation and
-% analphabetics.
-%    \begin{macrocode}
- 
-input tgothl;        % lower case
-input tgothu;        % capitals
-input tgothpunct;    % punctuation
-input tgothlig;      % the several dashes
-input tgothdig;      % arabic digits
-
-%    \end{macrocode}
-%
-% Set up the spacings, stretches and shrinks.
-%
-%    \begin{macrocode}
- 
-font_slant slant; font_x_height x_height#;
-if monospace: 
-  font_normal_space 2vstretch*stem_width#; % no stretching or shrinking
-  font_quad vstretch*18u#;
-  font_extra_space vstretch*9u#;
-else: 
-  font_normal_space 2vstretch*stem_width#+2letter_fit#;
-  font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
-  font_quad vstretch*18u#+4letter_fit#;
-  font_extra_space vstretch*2u#;
-
-%    \end{macrocode}
-%
-% Finally, do the ligtables, but I don't think they are needed (yet?).
-%
-%    \begin{macrocode}
-
-fi
-
-bye.
-
-  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
-  kks#:=-4u#;  kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
-  ligtable "s":
-                "a" kern kks#, "A" kern kks#,
-                "c" kern kks#, "C" kern kks#,
-                "d" kern kks#, "D" kern kks#,
-                "e" kern kks#, "E" kern kks#,
-                "f" kern kks#, "F" kern kks#,
-                "g" kern kks#, "G" kern kks#,
-                "i" kern kks#, "I" kern kks#,
-                "j" kern kks#, "J" kern kks#,
-                "k" kern kks#, "K" kern kks#,
-                "m" kern kks#, "M" kern kks#,
-                "n" kern kks#, "N" kern kks#,
-                "o" kern kks#, "O" kern kks#,
-                "p" kern kks#, "P" kern kks#,
-                "q" kern kks#, "Q" kern kks#,
-                "r" kern kks#, "R" kern kks#,
-                "t" kern kks#, "T" kern kks#,
-                "u" kern kks#, "U" kern kks#,
-                "v" kern kks#, "V" kern kks#,
-                "w" kern kks#, "W" kern kks#,
-                "x" kern kks#, "X" kern kks#,
-                "y" kern kks#, "Y" kern kks#,
-                "z" kern kks#, "Z" kern kks#;
-
-  ligtable "S":
-                "a" kern kks#, "A" kern kks#,
-                "c" kern kks#, "C" kern kks#,
-                "d" kern kks#, "D" kern kks#,
-                "e" kern kks#, "E" kern kks#,
-                "f" kern kks#, "F" kern kks#,
-                "g" kern kks#, "G" kern kks#,
-                "i" kern kks#, "I" kern kks#,
-                "j" kern kks#, "J" kern kks#,
-                "k" kern kks#, "K" kern kks#,
-                "m" kern kks#, "M" kern kks#,
-                "n" kern kks#, "N" kern kks#,
-                "o" kern kks#, "O" kern kks#,
-                "p" kern kks#, "P" kern kks#,
-                "q" kern kks#, "Q" kern kks#,
-                "r" kern kks#, "R" kern kks#,
-                "t" kern kks#, "T" kern kks#,
-                "u" kern kks#, "U" kern kks#,
-                "v" kern kks#, "V" kern kks#,
-                "w" kern kks#, "W" kern kks#,
-                "x" kern kks#, "X" kern kks#,
-                "y" kern kks#, "Y" kern kks#,
-                "z" kern kks#, "Z" kern kks#;
-
-  ligtable "x": 
-                "a" kern kkx#, "A" kern kkx#,
-                "b" kern kkx#, "B" kern kkx#,
-                "c" kern kkx#, "C" kern kkx#,
-                "d" kern kkx#, "D" kern kkx#,
-                "e" kern kkx#, "E" kern kkx#,
-                "g" kern kkx#, "G" kern kkx#,
-                "j" kern kkx#, "J" kern kkx#,
-                "l" kern kkx#, "L" kern kkx#,
-                "o" kern kkx#, "O" kern kkx#,
-                "q" kern kkx#, "Q" kern kkx#,
-                "t" kern kkx#, "T" kern kkx#,
-                "u" kern kkx#, "U" kern kkx#,
-                "v" kern kkx#, "V" kern kkx#,
-                "w" kern kkx#, "W" kern kkx#,
-                "y" kern kkx#, "Y" kern kkx#;
-
-  ligtable "X": 
-                "a" kern kkx#, "A" kern kkx#,
-                "b" kern kkx#, "B" kern kkx#,
-                "c" kern kkx#, "C" kern kkx#,
-                "d" kern kkx#, "D" kern kkx#,
-                "e" kern kkx#, "E" kern kkx#,
-                "g" kern kkx#, "G" kern kkx#,
-                "j" kern kkx#, "J" kern kkx#,
-                "l" kern kkx#, "L" kern kkx#,
-                "o" kern kkx#, "O" kern kkx#,
-                "q" kern kkx#, "Q" kern kkx#,
-                "t" kern kkx#, "T" kern kkx#,
-                "u" kern kkx#, "U" kern kkx#,
-                "v" kern kkx#, "V" kern kkx#,
-                "w" kern kkx#, "W" kern kkx#,
-                "y" kern kkx#, "Y" kern kkx#;
-
-  ligtable "a": "A":
-           "b": "B":
-           "c": "C":
-           "d": "D":
-           "e": "E":
-           "h": "H":
-           "i": "I":
-           "k": "K":
-           "l": "L":
-           "m": "M":
-           "n": "N":
-           "o": "O":
-           "p": "P":
-           "t": "T":
-           "u": "U":
-           "v": "V":
-           "w": "W":
-           "z": "Z":
-           "j" kern kkj#, "J" kern kkj#;
-
-  ligtable "r":
-                "a" kern kkr#, "A" kern kkr#,
-                "b" kern kkr#, "B" kern kkr#,
-                "c" kern kkr#, "C" kern kkr#,
-                "d" kern kkr#, "D" kern kkr#,
-                "e" kern kkr#, "E" kern kkr#,
-                "f" kern kkrs#, "F" kern kkrs#,
-                "g" kern kkrs#, "G" kern kkrs#,
-                "h" kern kkr#, "H" kern kkr#,
-                "i" kern kkr#, "I" kern kkr#,
-                "j" kern kkj#, "J" kern kkj#,
-                "k" kern kkrs#, "K" kern kkrs#,
-                "l" kern kkr#, "L" kern kkr#,
-                "m" kern kkr#, "M" kern kkr#,
-                "n" kern kkrs#, "N" kern kkrs#,
-                "o" kern kkr#, "O" kern kkr#,
-                "p" kern kkrs#, "P" kern kkrs#,
-                "q" kern kkr#, "Q" kern kkr#,
-                "r" kern kkrs#, "R" kern kkrs#,
-                "s" kern kkr#, "S" kern kkr#,
-                "t" kern kkr#, "T" kern kkr#,
-                "u" kern kkr#, "U" kern kkr#,
-                "v" kern kkr#, "V" kern kkr#,
-                "w" kern kkr#, "W" kern kkr#,
-                "x" kern kkx#, "X" kern kkx#,
-                "y" kern kkr#, "Y" kern kkr#,
-                "z" kern kkr#, "Z" kern kkr#;
-
-  ligtable "R":
-                "a" kern kkr#, "A" kern kkr#,
-                "b" kern kkr#, "B" kern kkr#,
-                "c" kern kkr#, "C" kern kkr#,
-                "d" kern kkr#, "D" kern kkr#,
-                "e" kern kkr#, "E" kern kkr#,
-                "f" kern kkrs#, "F" kern kkrs#,
-                "g" kern kkrs#, "G" kern kkrs#,
-                "h" kern kkr#, "H" kern kkr#,
-                "i" kern kkr#, "I" kern kkr#,
-                "j" kern kkj#, "J" kern kkj#,
-                "k" kern kkrs#, "K" kern kkrs#,
-                "l" kern kkr#, "L" kern kkr#,
-                "m" kern kkr#, "M" kern kkr#,
-                "n" kern kkrs#, "N" kern kkrs#,
-                "o" kern kkr#, "O" kern kkr#,
-                "p" kern kkrs#, "P" kern kkrs#,
-                "q" kern kkr#, "Q" kern kkr#,
-                "r" kern kkrs#, "R" kern kkrs#,
-                "s" kern kkr#, "S" kern kkr#,
-                "t" kern kkr#, "T" kern kkr#,
-                "u" kern kkr#, "U" kern kkr#,
-                "v" kern kkr#, "V" kern kkr#,
-                "w" kern kkr#, "W" kern kkr#,
-                "x" kern kkx#, "X" kern kkx#,
-                "y" kern kkr#, "Y" kern kkr#,
-                "z" kern kkr#, "Z" kern kkr#;
-
-
-fi
-
-bye.
-
-%</mfd>
-%    \end{macrocode}
-%
-% \subsection{The code for normal letters}
-%
-%    The following code is for the lower case characters.
-%
-%    \begin{macrocode}
-%<*min>
-% TGOTHL.MF Program file for Gothic Textura Quadrata lower case
-%
-
-%    \end{macrocode}
-%
-%
-% \begin{routine}{a}
-% The letter `a'.
-%    \begin{macrocode}
-cmchar "TGOTH letter a";
-beginchar("a", 2sb#+hstretch*((3+widedmin+wided)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-path pth[];
-pair pr[];
-pickup quill;
-%% left hand
-lft x1 = pcshiftx + widedmin*stem_width; y1 = 1/2h;
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
-%% right stem
-rt x3 = w - pcshiftx - wided*stem_width; y3=h;
-x4=x3; y4=0;
-z34=1/2[z3,z4];
-draw_updiamondstem(3,34,1.0,0.1,diawd,diang);
-draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
-%% swirl
-x11=rt x1; y11 = top y1;
-pickup stylus;
-draw z3d--z3c..{-ppdir}z11;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
-endchar; % end "a"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{b}
-% The letter `b'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter b";
-beginchar("b", 2sb#+hstretch*((3 + widedmin + narrowdmin)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := sb;
-pickup quill;
-n1:=w-2pcshiftx;    % actual letter width
-n2:=h/ascratio;    % top of bowl
-%%ductus:=true;
-lft x1 = pcshiftx + widedmin*st; y1=h;
-x2 = x1; y2=0;
-z3=1/2[z1,z2];
-draw_upforkstem(1,3);
-draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
-lft x6 = x2c; bot y6 = y2c;
-x4 = x6; y4=n2;
-draw_updiamondstem(4,6,narrowd,narrowdmin,diawd,diang);
-x7 = x1; z7 = whatever[z4d,z4c];
-pickup stylus;
-draw z4d--z7;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,100);
-endchar; % end "b"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{c}
-% The letter `c'.
-%    \begin{macrocode}
-cmchar "TGOTH letter c";
-beginchar("c", 2sb#+hstretch*((3+wided)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st;
-st := stem_width;
-pcshiftx := sb;
-pickup quill;
-%% left
-lft x1 = pcshiftx+wided*st; y1 = 3/4h;
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
-%% top
-lft x3 = rt x1; bot y3 = top y1;
-rt x4 = w - pcshiftx;
-z3 - z4 = -whatever*ppdir;
-draw z3--z4;
-z11-z2c = z2c - z2d;
-pickup stylus;
-draw z2d--z11;
-ductus:=false;
-penlabels(1,2,3,4,5,6,14,16,17,18,100);
-endchar; % end "c"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{d}
-% The letter `d'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter d";
-beginchar("d", 2sb#+hstretch*((3+widedmin+narrowdmin)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := sb;
-pickup quill;
-n1 = h/ascratio;    %  x-height
-%% left
-n2 := st*(cosd diang);
-lft x1 = pcshiftx + widedmin*st; top y1 = 12/16n1;
-x2=x1; y2=0;
-draw_downdiamondstem(1,2, 1.0, widedmin, diawd,diang);
-%% right
-rt x3 = w-pcshiftx-narrowdmin*st; y3=h;
-x4 = x3; bot y4 = y2c;
-draw_updiamondstem(3,4, 2.0, narrowdmin, diawd,diang);
-x31 = lft x1; y31 = bot y1;
-x32 = rt x1; y32 = top y1;
-z33 = whatever[z31,z32] = whatever[z3e,z3c];
-pickup stylus;
-draw z31--z33;
-ductus:=false;
-penlabels(0,1,2,3,4,5,6,7,8,100);
-endchar; % end "d"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{e}
-% The letter `e'.
-%    \begin{macrocode}
-cmchar "TGOTH letter e";
-beginchar("e", 2sb#+hstretch*((3+wided)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st;
-st := stem_width;
-path pth[];
-pickup quill;
-%% left
-lft x1 = pcshiftx+wided*st; y1 = 3/4h;
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
-%% top
-lft x3 = rt x1; bot y3 = top y1;
-rt x4 = w - pcshiftx;
-z3 - z4 = -whatever*ppdir;
-draw z3--z4;
-x5 = x1;
-z4-z5 = whatever*pdir;
-pickup stylus;
-draw z4--z5;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
-endchar; % end "e"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{f}
-% The letter `f'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter f";
-beginchar("f", 2sb#+hstretch*((3+widedmin)*stem_width#), 
-               (asc_height#), 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-pcshiftx := sb;
-pickup quill;
-n1 := h/ascratio;      % x-height
-%% stem
-lft x1=lft x2=pcshiftx+widedmin*st; y2=0; top y1 = h - (top y2 - bot y2);
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
-%% top bar
-lft x3 = rt x1; rt x5 = w-pcshiftx; bot y3 = top y1; y5=y3;
-draw z3--z5;
-%% middle bar
-lft x7 = pcshiftx; rt x9 = x5;
-y7 = y9 = 10/16h;
-draw z7--z9; 
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,14,15,16,100);
-endchar; % end "f"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{g}
-% The letter `g'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter g";
-beginchar("g", 2sb#+hstretch*((4)*stem_width#), 
-               x_height#, desc_depth#);
-adjust_fit(0,0);
-path pth[];
-pair vec[];
-numeric n[];
-numeric st; st := stem_width;
-pcshiftx := sb;
-pickup quill;
-%% left
-lft x1 = pcshiftx;
-x2 = x1; bot y2 = 0; top y1 = h - (top y2 - bot y2);
-draw z1--z2;
-x3 = x4 = x1 + 2st; y4 = y2;
-lft x13 = rt x1; bot y13 = top y1;
-(z3-z13) = whatever*(dir -diang);
-draw z13--z3--z4;
-z34 = 1/2[z13,z3]; rt x37 = w-pcshiftx; top y37 = h;
-draw z34{right}..{pdir}z37;
-pickup stylus;
-bot y5 = -d;
-(z4-z5) = whatever*pdir;
-draw z4--z5;
-pickup quill;
-%% bottom loop
-z21 = z2;
-lft x25 = x5; bot y25=-d;
-x29 = 1/2[x3,x37];
-(z29-z21) = whatever*(dir -diang);
-x23 = x29; y23 = 1/2[y29,y25];
-draw z21{dir - diang}..z23{down}..{left}z25;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
-endchar; % end "g"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{h}
-% The letter `h'.
-%    \begin{macrocode}
-cmchar "TGOTH letter h";
-beginchar("h", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-pickup quill;
-numeric n[];
-n1 = h/ascratio;
-%% stem
-lft x1=lft x2=pcshiftx + narrowdmin*stem_width;
-y1=h; y2=0;
-z12 = 1/2[z1,z2];
-draw_upforkstem(1,12);
-draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
-%% bowl
-x3 = x1 + 2stem_width; x4 = x3;
-y3 = n1; y4=0;
-z34 = 1/2[z3,z4];
-draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
-draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
-x7 = x1; z7 = whatever[z3d,z3c];
-pickup stylus;
-draw z3d--z7;
-penlabels(1,2,3,4,5,6,100);
-endchar; % end "h"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{i}
-% The letter `i'.
-%    \begin{macrocode}
-cmchar "TGOTH letter i";
-beginchar("i", 2sb#+hstretch*(2stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-pickup quill;
-x1 = x2 = 1/2w; y1 = h; y2 = 0;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
-draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
-x3= x1-thin; bot y3 = h + 1/2stem_width;
-z4 = (x3+3thin,y3);
-pickup halfquill;
-draw z3--z4;
-penlabels(1,2,100);
-endchar; % end "i"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{j}
-% The letter `j'. This letter was not in the script, it being a later invention.
-%    \begin{macrocode}
-cmchar "TGOTH letter j";
-beginchar("j", sb#+hstretch*(5/2stem_width#), 
-               x_height#, desc_depth#);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-pickup quill;
-%% stem
-rt x1 = w-pcshiftx - 1/2stem_width; y1 = h;
-x2=x1; y2=-1/2d;
-%% bottom hook
-lft x3 = pcshiftx; bot y3 = -d;
-draw_updiamondstem(1,2,narrowd,narrowdmin,diawd,diang);
-draw z2{down}..z3{-pdir};               % hook
-ductus:=false;
-penlabels(1,2,3,100);
-endchar; % end "j"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{k}
-% The letter `k'.
-%    \begin{macrocode}
-cmchar "TGOTH letter k";
-beginchar("k", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-path pth[];
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-n1 = h/ascratio;                 % x-height
-lft x1=lft x2=pcshiftx + narrowdmin*st;
-y1=h; y2=0;
-z12 = 1/2[z1,z2];
-draw_upforkstem(1,12);
-draw_downdiamondstem(12,2, narrowd, narrowdmin, diawd,diang);
-%% right leg
-x3 = x1 + 2st; y3 = 8/16n1;
-x4 = x3; y4 = 0;
-z34 = 1/2[z3,z4];
-draw_downdiamondstem(34,4, narrowd, narrowdmin, diawd,diang);
-draw z3--z34;
-lft x5 = rt x1;
-(z3-z5) = whatever*(dir -diang);
-draw z5--z3;
-
-%% top arm
-x6 = 1/2[x3, rt x3];
-(z6-z5) = whatever*(pdir);
-rt x8 = lft x5; top y8 = bot y5+thick;
-(z7-z8) = whatever*(z6-z5);
-(z7-z6)=whatver*(z5-z3);
-draw z6--z7;
-pickup stylus;
-draw z5--z6--z7--z8;
-
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
-endchar; % end "k"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{l}
-% The letter `l'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter l";
-beginchar("l", 2sb#+hstretch*((2 + widedmin)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-numeric st; st := stem_width;
-pcshiftx := sb;
-pickup quill;
-lft x1=pcshiftx + widedmin*st; y1=h;
-x2=x1; y2 =0;
-z3 = 1/2[z1,z2];
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw_upforkstem(1,3);
-draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
-ductus:=false;
-penlabels(1,2,3,4,100);
-endchar; % end "l"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{m}
-% The letter `m'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter m";
-beginchar("m", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),   
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-path pth[];
-pickup quill;
-%% left stem
-lft x1=pcshiftx+wided*stem_width; y1 = y3 = y5 = h;
-x2=x1; y2=y4=y6=0;
-z12=1/2[z1,z2];
-draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
-draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
-%% right stem
-rt x5 = rt x6 = w-pcshiftx-narrowd*stem_width;
-z56 = 1/2[z5,z6];
-draw_updiamondstem(5,56,wided,widedmin,diawd,diang);
-draw_downdiamondstem(56,6,narrowd,narrowdmin,diawd,diang);
-%% middle stem
-z3=1/2[z1,z5]; z4 = 1/2[z2,z6]; z34=1/2[z3,z4];
-draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
-draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
-endchar; % end "m"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{n}
-% The letter `n'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter n";
-beginchar("n", 2sb#+hstretch*((3+wided+narrowd)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-pickup quill;
-%% left stem
-lft x1 = pcshiftx + wided*stem_width; y1 = h;
-x2 = x1; y2 = 0;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
-draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
-%% right stem
-rt x3 = w-pcshiftx - narrowd*stem_width; y3=y1;
-x4=x3;y4=y2;
-z34=1/2[z3,z4];
-draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
-draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
-penlabels(1,2,3,4,5,6,13,14,100);
-endchar; % end "n"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{o}
-% The letter `o'.
-%    \begin{macrocode}
-cmchar "TGOTH letter o";
-beginchar("o", 2sb#+hstretch*((3 + narrowdmin + narrowdmin)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[]; 
-numeric st; st := stem_width;
-pickup quill;
-%% bottom left
-lft x12 = pcshiftx + narrowdmin*st; y12 = 1/2h;
-x2 = x12; y2 = 0;
-draw_downdiamondstem(12,2, 1.0, narrowdmin, diawd,diang);
-%% right
-rt x3 = w - pcshiftx - narrowdmin*st; x4=x3;
-y3 = h; bot y4 = y2c;
-draw_updiamondstem(3,4, 1.0, narrowdmin, diawd,diang);
-%% top left
-x1 = x12; top y1 = y3c;
-draw z1--z12;
-ductus:=false;
-penlabels(1,2,3,4,5,100);
-endchar; % end "o"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{p}
-% The letter `p'.
-%    \begin{macrocode}
-cmchar "TGOTH letter p";
-beginchar("p", 2sb#+hstretch*((3 + wided + widedmin)*stem_width#), 
-               x_height#, desc_depth#);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-lft x1=lft x2=pcshiftx+wided*st;
-y1=h; y2=-d;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
-draw_downforkstem(12,2);
-%% bowl
-x3 = x4 = x1 + 2st;
-y3 = y1; bot y4 = 0;
-draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
-lft x5 = pcshiftx; y5 = y4;
-draw z5--z4;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,100);
-endchar; % end "p"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{q}
-% The letter `q'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter q";
-beginchar("q", 2sb#+hstretch*((3 + widedmin)*stem_width#), 
-               x_height#, desc_depth#);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% left/bottom of bowl
-y99 = 0;
-lft x1 = pcshiftx +widedmin*st; top y1 = h - (top y99 - bot y99);
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2, 1.0, widedmin,diawd,diang);
-%% rest
-x3 = x1 + 2st; x4 = x3; y3 = y1; y4 = -d;
-lft x5 = rt x1; bot y5 = top y1;
-draw_downforkstem(3,4);
-draw z5--z3;
-ductus:=false;
-penlabels(0,1,2,3,4,5,6,7,8,100);
-endchar; % end "q"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{r}
-% The letter `r'.
-%    \begin{macrocode}
-cmchar "TGOTH letter r";
-beginchar("r", 2sb#+hstretch*((3+wided)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-lft x1=lft x2=pcshiftx + wided*st;
-y1=h; y2=0;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-%% bar
-lft x3 = rt x1; rt x4 = w-pcshiftx; top y3 = top y4 = h;
-draw z3--z4;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,100);
-endchar; % end "r"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{s}
-% The letter `s'. This is a short S.
-%    \begin{macrocode}
-cmchar "TGOTH letter s";
-beginchar("s", 2sb#+hstretch*((4)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-pcshiftx := sb;
-pickup stylus;
-%% the diagonal
-lft x2 = pcshiftx; bot y2 = 0;
-rt x1 = w-pcshiftx; top y1 = h;
-draw z1--z2;
-pickup quill;
-z211 = 13/32[z2,z1];   %% 10/32 too small, 16/32 too large
-z213 = 24/32[z2,z1];   %% 26/32 too large
-z212 = 1/2[z211,z213];
-%% bottom bowl
-lft x21 = x2; bot y21 = 0;
-rt x22 = w - pcshiftx; bot y22 = 0;
-x23 = x22; z24 = z212;
-(z24-z23) = whatever*(dir (180-diang));
-draw z21{pdir}..z22--z23--z24;
-%% top bowl
-z14 = z211; z11 = z213;
-lft x12 = lft x13 = pcshiftx;
-(z13-z14) = whatever*(dir (180-diang));
-(z12-z11) = whatever*(dir (180-diang));
-draw z11--z12--z13--z14;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,100);
-endchar; % end "s"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{t}
-% The letter `t'.
-%    \begin{macrocode}
-cmchar "TGOTH letter t";
-beginchar("t", 2sb#+hstretch*((2+1.0)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% bar
-lft x3 = pcshiftx; top y1 = h;
-top y3 = bot y1;
-rt x4 = w-pcshiftx; y4=y3;
-draw z3--z4;
-%% stem
-lft x1 = rt x3;
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
-ductus:=false;
-penlabels(1,2,3,4,5,6,11,12,100);
-endchar; % end "t"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{u}
-% The letter `u'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter u";
-beginchar("u", 2sb#+hstretch*((3+narrowd+wided)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-pickup quill;
-%% left stem
-lft x1 = pcshiftx + narrowd*stem_width; y1 = h;
-x2 = x1; y2 = 0;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,narrowd,narrowdmin,diawd,diang);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-rt x3 = w - pcshiftx - wided*stem_width; y3=y1;
-x4=x3;y4=y2;
-z34=1/2[z3,z4];
-draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
-draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
-endchar; % end "u"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{v}
-% The letter `v'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter v";
-beginchar("v", 2sb#+hstretch*((4 + narrowdmin)*stem_width#),   
-               asc_height#, 0);
-adjust_fit(0,0);
-numeric n[]; numeric st;
-pcshiftx := sb;
-st := stem_width;
-n1 := h/ascratio;  % x-height
-pickup quill;
-%% bottom left stem
-%% right and bottom left stems
-rt x23 = w - pcshiftx - narrowdmin*st; y23 = n1; x24=x23;
-x1 = x23 - 2st; y1 = 1/2n1;
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2, 1.0, widedmin, diawd, diang);
-bot y24 = y2c;
-draw_updiamondstem(23, 24, narrowd, narrowdmin, diawd, diang);
-%% curly bit
-x11=x1; top y11 = h;
-lft x12 = pcshiftx; y12 = 1/2[y11,y1];
-draw z11{down}..z12{down}..{down}z1;
-ductus:=false;
-penlabels(1,2,3,4,5,11,13,14,23,26,100);
-endchar; % end "v"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{w}
-% The letter `w'. This is a modern version as the font did not have a W.
-%    \begin{macrocode}
-cmchar "TGOTH letter w";
-beginchar("w", 2sb#+hstretch*((5+wided+narrowd)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-pickup quill;
-%% left stem
-lft x1 = pcshiftx + narrowd*stem_width; y1 = y3 = y5 = h;
-x2 = x1; y2 = y4 = y6 = 0;
-z12=1/2[z1,z2];
-draw_updiamondstem(1,12, narrowd, narrowdmin, diawd, diang);
-draw_downdiamondstem(12,2, wided, widedmin, diawd, diang);
-%% right stem
-rt x5 = w -pcshiftx-wided*stem_width; x6 = x5;
-z56 = 1/2[z5,z6];
-draw_updiamondstem(5,56, narrowd, narrowdmin, diawd, diang);
-draw_downdiamondstem(56,6, wided, widedmin, diawd, diang);
-%% middle stem
-z3 = 1/2[z1,z5]; z4 = 1/2[z2,z6]; z34 = 1/2[z3,z4];
-draw_updiamondstem(3,34, narrowd, narrowdmin, diawd, diang);
-draw_downdiamondstem(34,4, wided, widedmin, diawd, diang);
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
-endchar; % end "w"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{x}
-% The letter `x'.
-%    \begin{macrocode}
-cmchar "TGOTH letter x";
-beginchar("x", 2sb#+hstretch*((4)*stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-path pth[];
-numeric n[];
-numeric st; st := stem_width;
-pcshiftx := sb;
-pickup quill;
-%% upright
-x1 = 1/2w; y1 = h;
-x2 = x1; y2 = 0;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12, 1.5, widedmin,diawd,2/3diang);
-draw_downdiamondstem(12,2, 1.5, widedmin,diawd,2/3diang);
-%% top right bar
-lft x3 = rt x1; top y3 = h;
-rt x4 = w - pcshiftx; y4=y3;
-draw z3--z4;
-%% middle bar
-n1 := h-y3;
-lft x5 = pcshiftx; rt x6 = w - pcshiftx;
-y5 = 1/2h - n1; y6 = 1/2h;
-z56 = 1/2[z5,z6];
-draw z5{pdir}..z56..{pdir}z6;
-%% bottom left
-pickup stylus;
-lft x11 = pcshiftx; bot y11 = 0;
-draw z2e--z11;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
-endchar; % end "x"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{y}
-% The letter `y'. Modern, but with a dot on top.
-%    \begin{macrocode}
-cmchar "TGOTH letter y";
-beginchar("y", 2sb#+hstretch*((3 + narrowd+ narrowdmin)*stem_width#), 
-               x_height#, desc_depth#);
-adjust_fit(0,0);
-pcshiftx := sb;
-path pth[];
-numeric n[];
-numeric st; st = stem_width;
-pickup quill;
-%% right side
-rt x3 = w - pcshiftx - narrowdmin*st; y3 = h;
-x33 = x3; y33 = 0;
-%%draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
-%% left side
-x1 = x3 - 2st; y1 = y3;
-x2 = x1; y2 = 0;
-n1 := top y2 - y2;
-draw_updiamondstem(1,2,narrowd,narrowdmin, diawd,diang);
-%% tail
-x11 = rt x2; y11 = top y2;
-x12 = lft x2; y12 = bot y2;
-pickup stylus;
-lft x14 = x1 - 2st; y14 = -d + n1;
-x15 = x14+n1; bot y15 = -d;
-z4 = whatever[z11,z12] = whatever[z3,z33];
-x10=x4; bot y10 = y4;
-draw z10--z11--z12..{down}z14..{-ppdir}z15;
-pickup quill;
-draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,33,100);
-endchar; % end "y"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{z}
-% The letter `z'.
-%    \begin{macrocode}
-cmchar "TGOTH letter z";
-beginchar("z", 2sb#+hstretch*(3stem_width#), 
-               x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := sb;
-pickup quill;
-%% top bar ends
-top y12 = h;
-n1 := h - y12;
-lft x1 = pcshiftx; rt x2 = w-pcshiftx;
-%%y1 = y12-n1; y2=y12+n1;
-y1 = y12-n1/2; y2=y12;
-x12 = 1/2[x1,x2];
-pth1 := z1{pdir}..z12{right}..z2{pdir};
-%% bottom bar ends
-bot y34 = 0;
-x3=x1; x4=x2;
-%%y3=y34-n1; y4=y34+n1;
-y3=y34-n1/2; y4=y34;
-x34 = 1/2[x3,x4];
-pth2 := z3{pdir}..z34{right}..z4{pdir};
-%% centre bar
-z5 = 1/2[z1,z3]; z6 = 1/2[z2,z4]; z56 = 1/2[z5,z6];
-pth3 := z5{pdir}..z56{right}..z6{pdir};
-draw pth1; draw pth2; draw pth3;              %  bars
-draw z2--z3;
-ductus:=false;
-penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
-endchar; % end "z"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-%    The end of this file
-%    \begin{macrocode} 
-%</min>
-%    \end{macrocode}
-%
-%
-% \subsection{The code for capital letters}
-%
-%    \thisfont{} `capitals' were drawn with the same pen as for the minuscules.
-% The letters are pretty fancy.
-%
-%    \begin{macrocode}
-%<*maj>
-% TGOTHU.MF Program file for Early Gothic `capitals'
-%
-
-%    \end{macrocode}
-%
-%
-% \begin{routine}{A}
-% The letter `A'.
-%    \begin{macrocode}
-cmchar "TGOTH letter A";
-beginchar("A", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pair pr[];
-pickup quill;
-%% stem
-rt x1 = w - pcshiftx - wided*st; y1 = h;
-x2 = x1; y2 = 0;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-%% leg
-x21 = x1; top y21 = h;
-lft x22 = pcshiftx + widedmin*st; bot y22 = 0;
-draw z21--z22;
-draw (x22-widedmin*st, y22)--(x22+wided*st, y22);
-%% bar
-z13 = z12;
-y16 = y13; z16 = whatever[z21,z22];
-x14 = 1/2[x13,x16]; (z13-z14) = whatever*pdir;
-pickup threequarterquill;
-draw z13--z14;
-draw z14{ppdir}..{left}z16;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
-endchar; % end "A"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{B}
-% The letter `B'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter B";
-beginchar("B", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% stem
-lft x1 = pcshiftx; bot y1 = 0;
-n1 := top y1;
-lft x99 = 2/5w; bot y99 = 12/16h;
-rt x12 = lft x99; top y12 = bot y99;
-x14 = x1; y14 = y12;
-x13 = 1/2[x14,x12]; y13 = 1/2[y12,(h-n1/2)];
-pth1 := z1{pdir}..z12..{left}z13..{-pdir}z14;
-%% stem decoration
-z101=z99;
-z181 = (x99,-h);
-z102 = (x101,y1);
-z112 = 1/2[z101,z102];
-lft x8 = x112; y8 = y112;
-%% lower bowl
-x113 = w-pcshiftx;
-(z113-z112) = whatever*(pdir);
-rt x5 = w-pcshiftx; y5 = 6/16y113;
-x3 = 10/16[x1,x5]; y3 = y1;
-z7 = 2/16[z8,z113];
-pth2 := z1{pdir}..{right}z3..{up}z5..{-pdir}z7--z8;
-
-%% upper bowl
-x10 = 1/2[x7,x5]; y10 = 1/2[y12,y99]; 
-x19 = 1/2[x99,x10]; top y19 = h;
-pth3 := z8--z7{pdir}..{up}z10..{left}z19..{-pdir}z99;
-%% angled decoration
-
-z105 = 1/4[z102,z112];
-x185 = 2w;
-(z185-z105) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth2;
-
-z107 = 1/4[z112,z101];
-x187 = 2w;
-(z187-z107) = whatever*(pdir);
-z108 = (z107--z187) intersectionpoint pth3;
-
-if ductus:
-  pickup stylus;
-fi
-draw pth1;
-draw pth2;
-draw pth3;
-pickup stylus;
-draw z101--z102; 
-draw z105--z106; draw z107--z108; 
-
-ductus:=false;
-penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,99,100);
-endchar; % end "B"
-
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{C}
-% The letter `C'.
-%    \begin{macrocode}
-cmchar "TGOTH letter C";
-beginchar("C", 2cap_sb#+hstretch*((5)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% bowl
-n1:=w-2pcshiftx;     % actual letter width
-n2:=6/5w-2pcshiftx;  % width of full bowl
-x1=pcshiftx + 1/2n1; top y1 = h;
-lft x2 = pcshiftx; y2 = 1/2h;
-x3 = x1; bot y3 = 0;
-rt x4 = w-pcshiftx; y4 = 1/4h;
-x24 = x4; y24 = 3/4h;
-pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
-%% decoration
-z101 = (x1,y1); z102 = (x1,y3);
-z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
-z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
-x185 = -w; (z105-z185) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth1;
-x187 = -w; (z107-z187) = whatever*(pdir);
-z108 = (z107--z187) intersectionpoint pth1;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;      %% bowl
-pickup stylus;
-draw z101--z102; draw z103--z104;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,14,16,17,18,100,101,102,103,104,105,106,107,108,185);
-endchar; % end "C"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{D}
-% The letter `D'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter D";
-beginchar("D", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% bowl
-lft x1 = pcshiftx; bot y1 = 0;
-rt x5 = w-pcshiftx; y5 = 1/2h;
-x3 = 10/16[x1,x5]; y3 = y1;
-x7 = x3; top y7 = h;
-lft x9 = 2/5w; bot y9 = 12/16h;
-pth1 := z1{pdir}..{right}z3..{up}z5..{left}z7..{-pdir}z9;
-%% stem
-rt x12 = lft x9; top y12 = bot y9;
-x14 = x1; y14 = y12;
-x13 = 1/2[x14,x12]; y13 = 1/2[y12,y7];
-pth2 := z1{pdir}..z12..{left}z13..{-pdir}z14;
-%% vertical decoration
-z101=z9;
-z181 = (x9,-h);
-z102 = ((x101,h/2)--z181) intersectionpoint pth1;
-z103a=(x101+perpdec,h); z103b=(x103a,h/2); z103c=(x103a,-h);
-z103 = (z103a--z103b) intersectionpoint pth1;
-z104 = (z103b--z103c) intersectionpoint pth1;
-%% angled decoration
-z106 = (lft x5, y5);
-x105 = x103; (z106-z105) = whatever*(pdir);
-z107 = (x105, y105+angdec);
-x108a = 2w; (z108a-z107) = whatever*(pdir);
-z108 = (z108a--z107) intersectionpoint pth1;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;
-draw pth2;
-pickup stylus;
-draw z101--z102; draw z103--z104;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,100);
-endchar; % end "D"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{E}
-% The letter `E'.
-%    \begin{macrocode}
-cmchar "TGOTH letter E";
-beginchar("E", 2cap_sb#+hstretch*((6)*stem_width#),   %% (5) too small
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% bowl
-n1:=w-2pcshiftx;     % actual letter width
-n2:=6/5w-2pcshiftx;  % width of full bowl
-x1=pcshiftx + 1/2n1; top y1 = h;
-lft x2 = pcshiftx; y2 = 1/2h;
-x3 = x1; bot y3 = 0;
-rt x4 = w-pcshiftx; y4 = 1/4h;
-x24 = x4; y24 = 3/4h;
-pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
-%% decoration
-z101 = (x1,y1); z102 = (x1,y3);
-z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
-z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
-x185 = -w; (z105-z185) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth1;
-x187 = -w; (z107-z187) = whatever*(pdir);
-z108 = (z107--z187) intersectionpoint pth1;
-%% bar
-lft x31 = x103; top y31 = y105;
-rt x32 = w-pcshiftx; y32=y31;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;      %% bowl
-draw z31--z32;  %% bar
-pickup stylus;
-draw z101--z102; draw z103--z104;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,14,16,17,18,100,105,185,106);
-endchar; % end "E"
-
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{F}
-% The letter `F'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter F";
-beginchar("F", 2cap_sb#+hstretch*((5)*stem_width#), 
-               5/4caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% stem (1--2) and top bar (21--22)
-lft x1=lft x2=pcshiftx+widedmin*st; y2 = 0;
-top y21 = top y22 = h - (top y2 - bot y2); x22 = w-pcshiftx-st;
-lft x21 = rt x1; top y1 = bot y21;
-z12 = 1/3[z1,z2];
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-draw z1--z12;
-draw z21--z22;
-%% vertical decoration
-z102 = 2/3[z2b,z2c];
-x101 = x102; y101 = y21;
-%% bar
-lft x14 = x101; y14 = y12;
-rt x16 = w-pcshiftx; y16 = y14;
-draw z14--z16;
-z16tr = (rt x16, top y16);
-pickup stylus;
-draw z101--z102;
-%% Other decoration
-%% bottom bar
-rt x201 = x16tr; top y201 = y16tr;
-y202 = y201 - 2st; (z201-z202) = whatever*pdir;
-draw z201--z202;
-%% top bar
-pickup quill;
-z22tb = (rt x22, top y22);
-x22bb - x22 = x22 - x22tb; y22bb - y22 = y22 - y22tb;
-x22c = x22 + st; bot y22c = top y22 + 1/2st;
-x22f = x22; y22f = 1/3[y22c, y22];
-pickup stylus;
-x22br = x22bb; bot y22br = y22bb;
-pth3 := z22br--z22tb..{up}z22c..{-ppdir}z22f;
-draw pth3;
-
-penlabels(1,2,3,4,5,6,7,14,15,16,21,22,100);
-endchar; % end "F"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{G}
-% The letter `G'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter G";
-beginchar("G", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pickup quill;
-%% bar
-top y3=h; n3 := h - top y3;
-lft x1 = pcshiftx; rt x2=w-pcshiftx;
-y1 = y3-n3; y2=y3;
-x3=1/2[x1,x2];
-pth1 := z1{pdir}..z3..z2{pdir};
-%% bowl
-n1 := w;     % width of bowl
-n2 := h;     % height of bowl
-lft x4 = pcshiftx; y4 = 1/2h;
-x5=x3; bot y5 = 0;
-rt x6 = w-pcshiftx; y6 = 6/16h;
-%% decoration
-x101 = lft x3; y101=y3;
-x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
-z102=(x101,y5);
-z103 = (x101+3thin, y101); z104 = (x103,y102);
-lft x7 = x104; y7 = 10/16[y104,y103];
-%%pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
-%%pth2 := z2{-pdir}..z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
-pth2 := z2--z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
-z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
-x185 = 2w; (z185-z105) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth2;
-z108 = (x106,y106+3thin);
-%% fork
-z2tr = (rt x2, top y2);
-x2a = x2tr; y2a = y2tr + thin;
-x2b = x2a; y2b - y2 = y2 - y2a;
-x2d = x2 - thick; y2d = y2;
-pickup stylus;
-% finish off the fork
-x2c = x2d = x2e;
-top y2e = y2tr; y2c - y2d = y2d - y2e;
-%%filldraw z2d--z2c{right}..z2b--cycle;
-%%filldraw z2d--z2a..{left}z2e--cycle;
-filldraw z2e--z2c{right}..z2b--cycle;
-filldraw z2c--z2a..{left}z2e--cycle;
-pth9 := (rt x2a,y2a)--(rt x2b,y2b)--(rt x2d,y2d)--cycle;
-unfill pth9;
-unfill pth9;
-unfill pth9;
-draw z101--z102; draw z103--z104;
-draw z105--z106; draw z107--z108;
-pickup quill;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-%%draw pth1;             %% bar
-draw pth2;             %% bowl
-ductus:=false;
-penlabels(1,2,2a,2b,2c,2d,2e,3,4,5,6,11,12,100,101,102,103,104,181,191);
-endchar; % end "G"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{H}
-% The letter `H'.
-%    \begin{macrocode}
-cmchar "TGOTH letter H";
-beginchar("H", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric st; st := stem_width;
-numeric n[];
-path pth[];
-pickup quill;
-%% left stem
-lft x1=pcshiftx+3st; y1=h;
-x2=x1; y2=0;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-% start of bowl
-n1 := 12/16h;    %% take this as the top of the bowl
-x13=x1; y13=3/4n1;
-rt x3 = w-pcshiftx; y3 = 8/16n1;
-x14 = 8/16[x13,x3]; top y14 = n1;
-x4 = 1/2[x14,x3]; bot y4=0;
-pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
-%% bottom curl
-z21 = z4;
-x24 = x3; top y24 = 0;
-x23 = 1/2[x21,x24]; top y23 = bot y24;
-pth2 := z21{-pdir}..z23..{ppdir}z24;
-%% vertical decoration
-z102 = 2/3[z2b,z2c];
-z182 = (x102,h);
-z101 = (z102--z182) intersectionpoint pth1;
-z105 = 1/2[z102,z101];
-x185 = 2w;
-(z185-z105) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth1;
-z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
-z108 = (z107--z187) intersectionpoint pth1;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;
-pickup stylus;
-draw pth2;
-draw z101--z102;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,13,14,100);
-endchar; % end "H"
-
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{I}
-% The letter `I'.
-%    \begin{macrocode}
-cmchar "TGOTH letter I";
-beginchar("I", 2cap_sb#+hstretch*((4+wided)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric st; st := stem_width;
-pickup quill;
-lft x1=lft x2=pcshiftx+3st;
-y1=h; y2=0;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided, widedmin,diawd,diang);
-%% vertical decoration
-z102 = 2/3[z2b,z2c];
-pickup stylus;
-x101=x102; top y101 = h;
-draw z101--z102;
-ductus:=false;
-penlabels(1,2,101,102,100);
-endchar; % end "I"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{J}
-% The letter `J'. This letter was not in the script, it being a later invention.
-%    \begin{macrocode}
-cmchar "TGOTH letter J";
-beginchar("J", cap_sb#+hstretch*((4+wided)*stem_width#), 
-               caprat*x_height#, 1/2caprat*x_height#);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-lft x1 = pcshiftx+3st; y1 = h;
-x2=x1; y2=-d + (top y1 - bot y1);
-%% bottom hook
-lft x3 = pcshiftx; bot y3 = -d;
-draw_upcurlstem(1,2);
-draw z2{ppdir}..{-pdir}z3;
-%% vertical decoration
-x201 = rt x1;
-x101 = x201 + 2/3wided*st;
-pickup stylus;
-top y101 = h; y201=y101;
-z102=(x101,0);
-draw z201--z101--z102;
-ductus:=false;
-penlabels(1,2,3,101,102,100);
-endchar; % end "J"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{K}
-% The letter `K'.
-%    \begin{macrocode}
-cmchar "TGOTH letter K";
-beginchar("K", 2cap_sb#+hstretch*((8+wided)*stem_width#), 
-               5/4caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-path pth[];
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-n1 = 4/5h;                 % x-height
-lft x1=lft x2=pcshiftx+3st;
-y1=h; y2=0;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-%% top arm
-%%z3=(x1,1/2n1);
-x3 = x1; top y3 = 14/16n1;
-z7c = 1/2[z2,z3];
-top y3a = n1; (z3a-z3) = whatever*pdir;
-rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
-x4 = 1/2[x3a,x7a]; y4 = y3a;
-x5 = x7a; y5 = 1/2[y3a, y7a];
-z7 = (rt x7c, y7c);
-pth1 := z3{pdir}..z4..z5..{-pdir}z7;
-%% lower arm
-z21=z7;
-z24=(x5+st,y2a);
-x23 = x24; y23 = 1/2[y21,y24];
-rt x25 = w-pcshiftx; bot y25 = 0;
-pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
-pickup quill;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;                        % upper bowl
-draw pth2;                        % lower half
-%% decorations
-z1tr = (rt x1, top y1);
-pickup stylus;
-z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
-x103 = x1tr; y103 = y101;
-draw z103--z101--z102;
-x105 = x101; y105 = 1/2[y7,y3];
-y185 = 2w; (z185-z105) = whatever*pdir;
-z106 = (z105--z185) intersectionpoint pth1;
-x107 = x105; y107 = y105-angdec;
-x187 = x185; y187-y185 = y107-y105;
-%%z108 = (z107--z187) intersectionpoint pth1;
-draw z105--z106; 
-%%draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
-endchar; % end "K"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{L}
-% The letter `L'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter L";
-beginchar("L", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric st; st := stem_width;
-pickup quill;
-lft x1=pcshiftx+3st; y1=h;
-x2=x1; bot y2 =0;
-draw_upcurlstem(1,2);
-rt x4 = w-pcshiftx; bot y4 = 0;
-draw z2{right}..{pdir}z4;
-%% vertical decoration
-x201 = rt x1;
-x101 = x201+2/3wided*st;
-pickup stylus;
-top y101 = h; y201 = y101;
-x102 = x101; bot y102=0;
-draw z201--z101--z102;
-ductus:=false;
-penlabels(1,2,3,4,101,102,201,100);
-endchar; % end "L"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{M}
-% The letter `M'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter M";
-beginchar("M", 2cap_sb#+hstretch*((11)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric st; st := stem_width;
-path pth[];
-pickup quill;
-%%% left part
-lft x301 = pcshiftx+3st; y301 = h;
-x302 = x301; y302 = 0;
-z312 = 1/2[z301,z302];
-draw_upcurlstem(301,312);
-draw_downdiamondstem(312,302,wided,widedmin,diawd,diang);
-
-%% left N stem (and N part)
-%%%lft x1=pcshiftx+3st; y1=h;
-x1 = x301 + 3st; y1 = h;
-x2=x1; y2=0;
-z12 = 1/2[z1,z2];
-%%draw_upcurlstem(1,12);
-%%draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-% start of bowl
-x13=x1; y13=3/4h;
-rt x3 = w-pcshiftx; y3 = 8/16h;
-x14 = 8/16[x13,x3]; top y14 = h;
-x4 = 1/2[x14,x3]; bot y4=0;
-pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
-%% bottom curl
-z21 = z4;
-x24 = x3; top y24 = 0;
-x23 = 1/2[x21,x24]; top y23 = bot y24;
-pth2 := z21{-pdir}..z23..{ppdir}z24;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;
-pickup stylus;
-draw pth2;
-pickup quill;
-%% finish off the left part
-x3011 = 1/2[x301,x1]; top y3011 = h;
-z3123 = (x301,3/4h); z123 = (x1,y3123);
-draw z3123--z3011--z123--z12;
-%% vertical decorations
-  %% left part
-z402 = 2/3[z302b,z302c];
-x401 = x402; z401 = whatever[z3123,z3011];
-  %% right part
-z102 = 2/3[z2b,z2c];
-z182 = (x102,h);
-z101 = (z102--z182) intersectionpoint pth1;
-%% angled decorations
-  %% left part
-z406 = z13;
-x405 = x402; (z406-z405) = whatever*pdir;
-z407 = (x405, y405-angdec); z408 = (x406, y406-angdec);
-  %% right part
-z105 = (x102,y405);
-x185 = 2w;
-(z185-z105) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth1;
-z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
-z108 = (z107--z187) intersectionpoint pth1;
-pickup stylus;
-draw z401--z402;
-draw z405--z406; draw z407--z408;
-draw z101--z102;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,13,14,101,102,105,106,107,108,301,302,100);
-endchar; % end "M"
-
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{N}
-% The letter `N'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter N";
-beginchar("N", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric st; st := stem_width;
-path pth[];
-pickup quill;
-%% left stem
-lft x1=pcshiftx+3st; y1=h;
-x2=x1; y2=0;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-% start of bowl
-x13=x1; y13=3/4h;
-rt x3 = w-pcshiftx; y3 = 8/16h;
-x14 = 8/16[x13,x3]; top y14 = h;
-x4 = 1/2[x14,x3]; bot y4=0;
-pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
-%% bottom curl
-z21 = z4;
-x24 = x3; top y24 = 0;
-x23 = 1/2[x21,x24]; top y23 = bot y24;
-pth2 := z21{-pdir}..z23..{ppdir}z24;
-%% vertical decoration
-z102 = 2/3[z2b,z2c];
-z182 = (x102,h);
-z101 = (z102--z182) intersectionpoint pth1;
-z105 = 1/2[z102,z101];
-x185 = 2w;
-(z185-z105) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth1;
-z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
-z108 = (z107--z187) intersectionpoint pth1;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;
-pickup stylus;
-draw pth2;
-draw z101--z102;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,13,14,100);
-endchar; % end "N"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{O}
-% The letter `O'.
-%    \begin{macrocode}
-cmchar "TGOTH letter O";
-beginchar("O", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-path pth[];
-pickup quill;
-lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
-x2=x4=w/2; top y2=h; bot y4=0;
-pth1 := z1..z2..z3..z4..cycle;
-%% vertical decoration
-z101=z2; z102=z4;
-z103 = (x101-perpdec, y101); z104 = (x103,y102);
-%% angled decoration
-z108 = (lft x3,y3);
-x107 = x101; (z108-z107) = whatever*(pdir);
-z105 = (x107, y107+angdec);
-x106a = 2w; (z106a-z105) = whatever*(pdir);
-z106 = (z105--z106a) intersectionpoint pth1;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;
-pickup stylus;
-draw z101--z102; draw z103--z104; 
-draw z105--z106; draw z107--z108; 
-ductus:=false;
-penlabels(1,2,3,4,5,100);
-endchar; % end "O"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{P}
-% The letter `P'.
-%    \begin{macrocode}
-cmchar "TGOTH letter P";
-beginchar("P", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 1/2caprat*x_height#);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-path pth[];
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-lft x1=lft x2=pcshiftx+3st;
-y1=h; y2=-d;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-%% vertical decoration
-z1tr = (rt x1, top y1);
-z102 = 2/3[z2b,z2c];
-pickup stylus;
-x101 = x102; top y101 = h;
-x103 = x1tr; y103 = y101;
-draw z103--z101--z102;
-pickup quill;
-%% bowl
-lft x22 = x101; top y22 = h;
-x21 = x1; (z22-z21) = whatever*pdir;
-rt x24 = w - pcshiftx; y24 = 1/2h;
-x25 = 1/2[x22,x24]; bot y25 = 0;
-pth1 := z21--z22{down}..{down}z24..{-pdir}z25;
-z31 = z25;
-lft x33 = pcshiftx; bot y33 = 0;
-pth2 := z33{pdir}..{right}z31;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1; draw pth2;
-%% angled decoration
-x105 = x101; y105 = 1/3h;
-x185 = 2w;
-(z185-z105) = whatever*pdir;
-z106 = (z105--z185) intersectionpoint pth1;
-z107 = (x105,y105-angdec); 
-x187 = x185; y107 - y105 = y187 - y185;
-z108 = (z107--z187) intersectionpoint pth1;
-pickup stylus;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,100);
-endchar; % end "P"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{Q}
-% The letter `Q'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter Q";
-beginchar("Q", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-path pth[];
-pickup quill;
-lft x1=pcshiftx; rt x3=w-pcshiftx-stem_width; y1=y3=h/2;
-x2=x4=w/2; top y2=h; bot y4=0;
-pth1 := z1..z2..z3..z4..cycle;
-%% tail
-pth2 := z1..z4..z3;
-z11 = directionpoint pdir of pth2;
-rt x13 = w-pcshiftx; bot y13 = 0;
-pth3 := z11{pdir}..{pdir}z13;
-%% vertical decoration
-z101=z2; z102=z4;
-z103 = (x101-perpdec, y101); z104 = (x103,y102);
-%% angled decoration
-z108 = (lft x3,y3);
-x107 = x101; (z108-z107) = whatever*(pdir);
-z105 = (x107, y107+angdec);
-x106a = 2w; (z106a-z105) = whatever*(pdir);
-z106 = (z105--z106a) intersectionpoint pth1;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1; draw pth3;
-pickup stylus;
-draw z101--z102; draw z103--z104; 
-draw z105--z106; draw z107--z108; 
-ductus:=false;
-penlabels(1,2,3,4,5,100);
-endchar; % end "Q"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{R}
-% The letter `R'.
-%    \begin{macrocode}
-cmchar "TGOTH letter R";
-beginchar("R", 2cap_sb#+hstretch*((8+wided)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-path pth[];
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% stem
-n1 = h;                 % x-height
-lft x1=lft x2=pcshiftx+3st;
-y1=h; y2=0;
-z12 = 1/2[z1,z2];
-draw_upcurlstem(1,12);
-draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
-%% top arm
-%%z3=(x1,1/2n1);
-x3 = x1; top y3 = 14/16n1;
-z7c = 1/2[z2,z3];
-top y3a = n1; (z3a-z3) = whatever*pdir;
-rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
-x4 = 1/2[x3a,x7a]; y4 = y3a;
-x5 = x7a; y5 = 1/2[y3a, y7a];
-z7 = (rt x7c, y7c);
-pth1 := z3{pdir}..z4..z5..{-pdir}z7;
-%% lower arm
-z21=z7;
-z24=(x5,y2a);
-x23 = x24; y23 = 1/2[y21,y24];
-rt x25 = w-pcshiftx; bot y25 = 0;
-pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
-pickup quill;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;                        % upper bowl
-draw pth2;                        % lower half
-%% decorations
-z1tr = (rt x1, top y1);
-pickup stylus;
-z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
-x103 = x1tr; y103 = y101;
-draw z103--z101--z102;
-x105 = x101; y105 = 1/2[y7,y3];
-y185 = 2w; (z185-z105) = whatever*pdir;
-z106 = (z105--z185) intersectionpoint pth1;
-x107 = x105; y107 = y105-angdec;
-x187 = x185; y187-y185 = y107-y105;
-%%z108 = (z107--z187) intersectionpoint pth1;
-draw z105--z106; 
-%%draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
-endchar; % end "R"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{S}
-% The letter `S'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter S";
-beginchar("S", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-pickup threequarterquill;
-%% top
-n1 := 1;
-lft x1 = pcshiftx + n1*st; top y1 = h;
-rt x3 = w - pcshiftx; y3 = y1;
-x2 = 1/2[x1,x3]; top y2 = y1;
-pth1 := z1..z2..{pdir}z3;
-draw pth1;
-%% bottom
-lft x4 = pcshiftx; bot y4 = 0;
-rt x6 = w -pcshiftx - n1*st; y6 = y4;
-x5 = 1/2[x4,x6]; bot y5 = y4;
-pth2 := z4{pdir}..z5..z6;
-draw pth2;
-%% top path
-z100 = (1/2w, 1/2h);
-z11 = z1; z15 = z6;
-x13 = x100; y13 = y100 + st;
-pth3 := z11..{right}z13{right}..z15;
-draw pth3;
-%% bottom path
-z21 = z11; z25 = z6;
-x23 = x100; y100 - y23 = y13 - y100;
-pth4 := z21..{right}z23{right}..z25;
-draw pth4;
-%% decorations
-  %% top
-z101 = (x2+angdec,y2); y181 = 0; (z101-z181) = whatever*pdir;
-z102 = (z101--z181) intersectionpoint pth3;
-z103 = (x101-angdec, y101); x183-x181 = x103-x101; y183 = 0;
-z104 = (z103--z183) intersectionpoint pth3;
-  %% bottom
-z201 = (x5,y5); y281 = h; (z201-z281) = whatever*pdir;
-z202 = (z201--z281) intersectionpoint pth4;
-z203 = (x201-angdec, y201); x283-x281 = x203-x201; y283 = h;
-z204 = (z203--z283) intersectionpoint pth4;
-pickup stylus;
-draw z101--z102; draw z103--z104;
-draw z201--z202; draw z203--z204;
-
-
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100,101,102,103,104,201,202,203,204);
-endchar; % end "S"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{T}
-% The letter `T'.
-%    \begin{macrocode}
-cmchar "TGOTH letter T";
-beginchar("T", 2cap_sb#+hstretch*((7)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pickup quill;
-%% bar
-top y3=h; n3 := h - top y3;
-lft x1 = pcshiftx; rt x2=w-pcshiftx;
-y1 = y3-n3; y2=y3;
-x3=1/2[x1,x2];
-pth1 := z1{pdir}..z3..z2{pdir};
-%% bowl
-n1 := w;     % width of bowl
-n2 := h;     % height of bowl
-lft x4 = pcshiftx; y4 = 1/2h;
-x5=x3; bot y5 = 0;
-rt x6 = w-pcshiftx; y6 = 6/16h;
-%%pth2 := z3..z4{down}..z5{right}..z6{pdir};
-%% decoration
-x101 = lft x3; y101=y3;
-x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
-%%z102 = z191--z181 intersectionpoint pth2;   %%% ???? NO INTERSECTION!!!!!!
-z102=(x101,y5);
-z103 = (x101+3thin, y101); z104 = (x103,y102);
-lft x7 = x104; y7 = 10/16[y104,y103];
-pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
-z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
-x185 = 2w; (z185-z105) = whatever*(pdir);
-z106 = (z105--z185) intersectionpoint pth2;
-z108 = (x106,y106+3thin);
-pickup stylus;
-draw z101--z102; draw z103--z104;
-draw z105--z106; draw z107--z108;
-pickup quill;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw pth1;             %% bar
-draw pth2;             %% bowl
-ductus:=false;
-penlabels(1,2,3,4,5,6,11,12,100,101,102,103,104,181,191);
-endchar; % end "T"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{U}
-% The letter `U'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter U";
-beginchar("U", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-pcshiftx := cap_sb;
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pickup quill;
-%% stem tops
-lft x1 = pcshiftx + 3st; y1 = h;
-rt x3 = w - pcshiftx - widedmin*st; y3 = h;
-% bottom of bowl
-x7 = x1 - 3/2st; bot y7 = 0;
-rt x9 = lft x3; bot y9 = 0;
-pth1 := z7{pdir}..{pdir}z9;
-draw pth1;
-%% stem bottoms
-z2 = (z1 -- (x1,-h)) intersectionpoint pth1;
-x4 = x3; bot y4 = top y9;
-draw_upcurlstem(1,2);
-draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
-%% decorations
-z1tr = (rt x1, top y1);
-pickup stylus;
-z99 = 2/3[z3b,z3c];
-x101 - x1 = x3 - x99; top y101 = h;
-x102 = x101; y102 = y2;
-x103 = x1tr; y103 = y101;
-draw z103--z101--z102;
-x105 = x101; y105 = 1/3h;
-x106 = x3; (z106-z105) = whatever*pdir;
-z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
-draw z105--z106; draw z107--z108;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
-endchar; % end "U"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{V}
-% The letter `V'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter V";
-beginchar("V", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% left stem top
-lft x1 = pcshiftx + 3st; y1 = h;
-% bottom of bowl
-x7 = x1 - 3/2st; bot y7 = 0;
-x9 = w/2; bot y9 = 0;
-pth1 := z7{pdir}..{right}z9;
-draw pth1;
-%% left stem bottom
-x81 = x1; y81 = - h;
-z2 = (z1--z81) intersectionpoint pth1;
-draw_upcurlstem(1,2);
-%% right stem
-z6 = z9;
-rt x5 = w - pcshiftx; top y5 = 3/4h;
-x3 = 1/2[rt x1, lft x5];
-x4 = 1/2[x3,x5]; top y4 = h;
-y3 = 1/2[y4,y5];
-pth2 := z6{pdir}..{up}z5..{left}z4..{-pdir}z3;
-draw pth2;
-pth3 := pth1 & pth2;
-%% decoration
-z1tr = (rt x1, top y1);
-x101 = x1tr + 2/3wided*st;
-pickup stylus;
-top y101 = h;
-z103 = (x1tr,y101);
-z181 = (x101,-w);
-z102 = (z101--z181) intersectionpoint pth3;
-draw z103--z101--z102;
-x105 = x101; y105 = 1/3[y102,y101];
-x185 = 2w; (z185-z105) = whatever*pdir;
-z106 = (z105--z185) intersectionpoint pth2;
-z107 = (x105, y105-angdec); 
-x187 = x185; y187-y185 = y107-y105;
-z108 = (z107--z187) intersectionpoint pth2;
-draw z105--z106; draw z107--z108;
-
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-
-ductus:=false;
-penlabels(1,2,3,4,5,11,13,14,23,26,100);
-endchar; % end "V"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{W}
-% The letter `W'. This is a modern version as the font did not have a W.
-%    \begin{macrocode}
-cmchar "TGOTH letter W";
-beginchar("W", 2cap_sb#+hstretch*((12)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% top of stems
-lft x1 = pcshiftx + 3st; y1 = h;
-rt x999 = w - pcshiftx;
-x3 = 1/2[x1,x999]; y3 = h;
-%% bowl bottoms
-x21 = x1 - 3/2st; bot y21 = 0;
-rt x23 = lft x3; bot y23 = 0;
-pth1 := z21{pdir}..z23;
-draw pth1;
-lft x31 = rt x23; bot y31 = top y23;
-x33 = 1/2[x31,x999]; bot y33 = 0;
-pth2 := z31{pdir}..z33;
-draw pth2;
-%% bottom of stems
-z2 = (z1--(x1,0)) intersectionpoint pth1;
-x4 = x3; bot y4 = top y23;
-draw_upcurlstem(1,2);
-draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
-%% right V stem
-z16 = z33;
-x15 = x999; top y15 = 3/4h;
-x13 = 1/2[rt x3, lft x15];
-x14 = 1/2[x13,x15]; top y14 = h;
-y13 = 1/2[y14,y15];
-pth3 = z16{pdir}..{up}z15..{left}z14..{-pdir}z13;
-draw pth3;
-%% decorations
-z1tr = (rt x1, top y1);
-z3tr = (rt x3, top y3);
-pickup stylus;
-%% for U
-z99 = 2/3[z3b,z3c];
-x101 - x1 = x3 - x99; top y101 = h;
-x102 = x101; y102 = y2;
-x103 = x1tr; y103 = y101;
-draw z103--z101--z102;
-x105 = x101; y105 = 1/3h;
-x106 = x3; (z106-z105) = whatever*pdir;
-z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
-draw z105--z106; draw z107--z108;
-%% for V
-
-x301 = x3tr+2/3wided*st; top y301 = y3e;
-z381 = (x301,-w);
-z302 = (z301--z381) intersectionpoint pth2;
-draw z3e--z301--z302;
-x305 = x301; y305 = 1/3[y302,y301];
-x385 = 2w; (z385-z305) = whatever*pdir;
-z306 = (z305--z385) intersectionpoint pth3;
-z307 = (x305, y305-angdec); 
-x387 = x385; y387-y385 = y307-y305;
-z308 = (z307--z387) intersectionpoint pth3;
-draw z305--z306; draw z307--z308;
-
-
-
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
-endchar; % end "W"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{X}
-% The letter `X'.
-%    \begin{macrocode}
-cmchar "TGOTH letter X";
-beginchar("X", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-path pth[];
-numeric n[];
-numeric st; st := stem_width;
-pcshiftx := cap_sb;
-pickup quill;
-%% center stem
-lft x1 = lft x2 = pcshiftx + 3st;
-y1 = 3/4h; y2 = 1/4h;
-draw z1--z2;
-%% top right
-z21 = z1; top y22 = h; (z22-z21) = whatever*pdir;
-rt x24 = w-pcshiftx; y24 = y21;
-pth1 := z21--z22{-ppdir}..{pdir}z24;
-draw pth1;
-%% bottom right
-z31 = z2; 
-rt x33 = w-pcshiftx; bot y33 = 0;
-pth2 := z31{-ppdir}..{pdir}z33;
-draw pth2;
-%% bottom left
-z41 = z2; 
-bot y43 = -1/4h; (z41-z43) = whatever*pdir;
-x45 = x43 + st; y45=y43;
-pth3 := z41--z43{-pdir}..{pdir}z45;
-pickup stylus;
-draw pth3;
-pickup quill;
-%% top left
-x11 = x1; y11 = h;
-draw_upcurlstem(11,1);
-%% decoration
-x81 = rt x1;
-pickup stylus;
-x101 = x102 = x81 + 2/3wided*st;
-z101 = whatever[z1,z22];
-z102 = (z101--(x101,0)) intersectionpoint pth2;
-draw z101--z102;
-pickup quill;
-%% middle arms
-z120 = 1/2[z1,z2];
-z51 = z120;
-lft x53 = pcshiftx; top y53 = y51;
-x52 = 1/2[x51,x53]; y52 = y51;
-pth5 := z51--z52{left}..{-pdir}z53;
-draw pth5;
-lft x61 = x101; y61 = y120;
-rt x63 = w-pcshiftx; bot y63 = y61;
-x62 = 1/2[x61,x63]; y62 = y61;
-pth6 := z61--z62{right}..{pdir}z63;
-draw pth6;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,51,52,53,61,62,63,101,102,150,60,160,100);
-endchar; % end "X"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{Y}
-% The letter `Y'. 
-%    \begin{macrocode}
-cmchar "TGOTH letter Y";
-beginchar("Y", 2cap_sb#+hstretch*((8)*stem_width#), 
-               caprat*x_height#, 1/2caprat*x_height#);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% stem tops
-lft x1 = pcshiftx + 3st; y1 = h;
-rt x3 = w - pcshiftx - widedmin*st; y3 = h;
-% bottom of bowl
-x7 = x1 - 3/2st; bot y7 = 0;
-x9 = 1/2[x1,x3]; bot y9 = 0;
-pth1 := z7{pdir}..{right}z9;
-draw pth1;
-%% left stem bottom
-x81 = x1; y81 = - h;
-z2 = (z1--z81) intersectionpoint pth1;
-draw_upcurlstem(1,2);
-%% right stem
-x4 = x3; y4 = 0;
-x5 = x4; y5 = -1/4d;
-lft x6 = x9; bot y6 = -d;
-draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
-draw z6{pdir}..{up}z5--z4;
-z3cd = 1/2[z3c,z3d];
-pth2 = z5--z3a--z3cd;
-%% fill bowl bottom
-x91 = x3; (z91-z9) = whatever*pdir;
-draw z9--z91;
-
-%% decoration
-z1tr = (rt x1, top y1);
-x101 = x1tr + 2/3wided*st;
-pickup stylus;
-top y101 = h;
-z103 = (x1tr,y101);
-z181 = (x101,-w);
-z102 = (z101--z181) intersectionpoint pth1;
-draw z103--z101--z102;
-x105 = x101; y105 = 1/3[y102,y101];
-x185 = 2w; (z185-z105) = whatever*pdir;
-z106 = (z105--z185) intersectionpoint pth2;
-z107 = (x105, y105-angdec); 
-x187 = x185; y187-y185 = y107-y105;
-z108 = (z107--z187) intersectionpoint pth2;
-draw z105--z106; draw z107--z108;
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,10,100,101,102,181);
-endchar; % end "Y"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{Z}
-% The letter `Z'.
-%    \begin{macrocode}
-cmchar "TGOTH letter Z";
-beginchar("Z", 2cap_sb#+hstretch*((5)*stem_width#), 
-               caprat*x_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-path pth[];
-pcshiftx := cap_sb;
-pickup quill;
-%% top bar ends
-top y12 = h;
-n1 := h - y12;
-lft x1 = pcshiftx; rt x2 = w-pcshiftx-perpdec;
-%%y1 = y12-n1; y2=y12+n1;
-y1 = y12-n1/2; y2=y12;
-x12 = 1/2[x1,x2];
-pth1 := z1{pdir}..z12{right}..z2{pdir};
-x102 = rt x2; y102 = top y2; x202 = x102+perpdec; y202=y102;
-%% bottom bar ends
-bot y34 = 0;
-x3=x1+perpdec; rt x4= w-pcshiftx;
-y3=y34-n1/2; y4=y34;
-x34 = 1/2[x3,x4];
-pth2 := z3{pdir}..z34{right}..z4{pdir};
-x203 = lft x3; y203 = bot y3; x103 = x203-perpdec; y103=y203;
-%% centre bar
-z5 = (x1,1/2[y1,y3]); z6 = (x4,1/2[y2,y4]); z56 = 1/2[z5,z6];
-pth3 := z5{pdir}..z56{right}..z6{pdir};
-draw pth1; draw pth2;            %  bars
-draw pth3;
-%% decorations
-pickup stylus;
-draw z102--z103; draw z202--z203;
-unfill z102--z103--z203--z202--cycle;
-draw z102--z103; draw z202--z203;
-ductus:=false;
-penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
-endchar; % end "Z"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-%
-%    The end of this file
-%    \begin{macrocode} 
-%</maj>
-%    \end{macrocode}
-%
-%
-%
-% \subsection{The punctuation file}
-%
-% The main punctuation marks are defined in this file.
-%
-%    \begin{macrocode}
-%<*punct>
-% TGOTHPUNCT.MF This file contains punctuation marks
-
-%    \end{macrocode}
-%
-%
-% \begin{routine}{!}
-%    The `!' character, which had not been invented at this time.
-%    \begin{macrocode}
-
-cmchar "Exclamation mark";
-beginchar("!", 2sb#+hstretch*(thick#+trijut#),
-               asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-pickup quill;
-x1=w/2; top y1 = h;
-z3=(x1, 1/2dot_size);
-z2=(x1, y3+3/2dot_size);
-draw z1--z2;
-draw_pdot(3,dot_size);
-penlabels(1,2,3);
-
-endchar;  % end of "!"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{?}
-%    The `?' character, which had not been invented at this time.
-%    \begin{macrocode}
-
-cmchar "Question mark";
-beginchar("?", 2sb#+hstretch*((3+wided+widedmin)*stem_width#),
-               asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-path pth[];
-pickup quill;
-n1 := w-2pcshiftx;     % actual character width
-n2 := 1/3h;            % height of top bowl
-n3 := n2;              % height of bottom bowl
-z5=(1/2w,1/2dot_size);
-x45 = x5; y45=y5+3/2dot_size;
-lft x1 = pcshiftx; y1 = 3/4h;
-x2 = 1/2w; top y2 = h;
-rt x3 = w-pcshiftx; y3 = 11/16h;
-
-x4 = x45;
-(z3-z4) = whatever*pdir;
-
-%%ductus:= true;
-if ductus:
-  pickup stylus;
-fi
-%%draw z1..z2{right}..z3{down}..z4{down};
-draw z1--z2--z3--z4--z45;
-draw_pdot(5, dot_size);
-penlabels(1,2,3,4,45,5);
-endchar;  % end of "?"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{,}
-%    The `,' character.
-%    \begin{macrocode}
-
-cmchar "Comma";
-beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb;
-x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
-draw_pcomma(1,dot_size,comma_width);
-penlabels(1); 
-endchar; % end of ","
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{.}
-%    The `.' character.
-%    \begin{macrocode}
-
-cmchar "Period";
-beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
-pcshiftx:=sb;
-z1=(w/2, 1/2dot_size);
-draw_pdot(1,dot_size);
-penlabels(1); 
-endchar; % end of "."
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{:}
-%    The `:' character.
-%    \begin{macrocode}
-
-cmchar "Colon";
-beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
-pcshiftx:=sb;
-x1=x2=w/2; y1=3/4h; y2=1/4h;
-draw_pdot(1,dot_size);
-draw_pdot(2,dot_size);
-penlabels(1,2); 
-endchar; % end ":"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{;}
-%    The `;' character.
-%    \begin{macrocode}
-
-cmchar "Semicolon";
-beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb;
-x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
-draw_pdot(1,dot_size);
-draw_pcomma(2,dot_size,comma_width);
-penlabels(1,2); 
-endchar; % end of ";"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{'}
-%    The `'' character.
-%    \begin{macrocode}
-
-cmchar "Apostrophe";
-beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb;
-x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
-draw_pcomma(1,dot_size,comma_width);
-penlabels(1); 
-endchar;  % end of "'"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{`}
-%    The ``' character.
-%    \begin{macrocode}
-
-cmchar "Reverse apostrophe";
-beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb;
-x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
-draw_plq(1,dot_size,comma_width);
-penlabels(1); 
-endchar;  % end of "`"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% The end of this file.
-%    \begin{macrocode}
-%</punct>
-%    \end{macrocode}
-%
-%
-% \subsection{The ligatures and dashes file}
-%
-%    The ligatured letters, punctuation marks and dashes are defined in this file.
-%    \begin{macrocode}
-%<*lig>
-% TGOTHLIG.MF Uncial ligatured letters, punctation and dashes
-
-%    \end{macrocode}
-%  First the ligtables.
-%    \begin{macrocode}
-
-ligtable "`": "`"=:oct"134";
-ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
-
-ligtable "-": "-"=:oct"173";
-ligtable oct"173": "-"=:oct"174";
-
-%%%%ligtable "c": "t"=:oct"014";
-ligtable "s": "t"=:oct"015";
-
-%    \end{macrocode}
-%
-%
-%
-% \begin{routine}{st}
-%    The `st' ligature.
-%    \begin{macrocode}
-
-cmchar "TGOTH st ligature";
-beginchar(oct"015", 2sb#+hstretch*((1 + narrowd + 3)*stem_width#), 
-               asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st; st := stem_width;
-n1 := h/ascratio;  % x-height
-pickup quill;
-%% the S (long)
-lft x1 = pcshiftx + narrowd*st;
-x2 = x1; y2 = 0; y1 = h - (top y2 - bot y2);
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,narrowd, 1/4narrowdmin, diawd, diang);
-draw_downdiamondstem(12,2,narrowd, narrowdmin, diawd, diang);
-%% the T
-%% bar
-lft x23 = rt x1 + pcshiftx; top y23 = n1;
-rt x24 = w-pcshiftx; y24=y23;
-draw z23--z24;
-%% stem
-lft x21 = rt x23; top y21 = h;
-x22 = x21; y22 = 0;
-draw_downdiamondstem(21,22,narrowd,narrowdmin,diawd,diang);
-%% the ligature
-x11=x1; top y11=h;
-draw z12--z11--z21;
-ductus:=false;
-penlabels(1,2,3,4,5,11,21,22,23,24,100);
-%% end "t"
-endchar; %% end st ligature
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{''}
-%   The `''' ligature.
-%    \begin{macrocode}
-
-cmchar "Closing quotes";
-beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb;
-x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
-x2=x1-(2hstretch*dot_size);
-draw_pcomma(1,dot_size,comma_width);  % right
-draw_pcomma(2,dot_size,comma_width);  % left
-penlabels(1,2); 
-endchar; % end of "''"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{``}
-%   The ```' ligature.
-%    \begin{macrocode}
-
-cmchar "Opening quotes";
-beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb;
-x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
-x2=x1+(2hstretch*dot_size);
-draw_plq(1,dot_size,comma_width); % left
-draw_plq(2,dot_size,comma_width); % right
-penlabels(1,2); 
-endchar; % end of "``"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{-}
-%   The `-' (hyphen) character.
-%    \begin{macrocode}
-
-cmchar "Hyphen";
-beginchar("-",sb#+hstretch*((2)*stem_width#),x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb/2;
-pickup threequarterquill;
-lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
-draw z21--z22;
-%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
-penlabels(1,2); 
-endchar; % end of "-"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{--}
-%   The `--' (en-dash) ligature. 
-%    \begin{macrocode}
-
-cmchar "En dash";
-beginchar(oct"173",sb#+hstretch*((3)*stem_width#),x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb/2;
-pickup threequarterquill;
-lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
-draw z21--z22;
-%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
-penlabels(1,2); 
-endchar; % end of "--"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{---}
-%   The `---' (em dash) ligature. The em dash is twice the width of the en dash.
-%    \begin{macrocode}
-
-cmchar "Em dash";
-beginchar(oct"174",sb#+hstretch*((6)*stem_width#),x_height#,0);
-adjust_fit(0,0);
-pcshiftx:=sb/2;
-pickup threequarterquill;
-lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
-draw z21--z22;
-%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
-penlabels(1,2); 
-endchar; % end of "---"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{&}
-% The ampersand (which is really an `et' ligature).
-% In this case, a `t' with one thin bar.
-%    \begin{macrocode}
-
-cmchar "TGOTH ampersand";
-beginchar("&", 2sb#+hstretch*((7/2)*stem_width#), asc_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[];
-numeric st; st := stem_width;
-pickup quill;
-%% bar
-lft x3 = pcshiftx; top y1 = h;
-top y3 = bot y1;
-rt x4 = w-pcshiftx; y4=y3;
-draw z3--z4;
-%% stem
-lft x1 = rt x3;
-x2 = x1; y2 = 0;
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
-%% E bars
-n1 = 1/2[y3,y2a] + 1/2angdec;
-pickup halfquill;
-lft x11 = pcshiftx; rt x12 = w-pcshiftx; 
-%y11=y12=n1;
-y11 = y12 = 1/2h;
-x13 = x11; x14=x12; y13 = y14 = n1-angdec;
-draw z11--z12; 
-%%draw z13--z14;
-ductus:=false;
-penlabels(1,2,3,4,5,6,11,12,13,14,100);
-endchar; % end "&"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% The end of this file.
-%    \begin{macrocode}
-%</lig>
-%    \end{macrocode}
-%
-% \subsection{The digits file}
-%
-%    These are arabic digits in the style of the book-hand. They are a
-% modern invention.
-%
-%    \begin{macrocode}
-%<*dig>
-% TGOTHDIG.MF  Program file for Early Gothic digits
-%
-
-%    \end{macrocode}
-% 
-% 
-%
-% \begin{routine}{1}
-% The digit `1'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 1";
-beginchar("1", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-pickup quill;
-x1 = x2 = 1/2w; y1 = h; y2 = 0;
-z12 = 1/2[z1,z2];
-draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
-draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
-penlabels(1,2,100);
-endchar; % end "1"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{2}
-% The digit `2'. 
-%    \begin{macrocode}
-cmchar "TGOTH digit 2";
-beginchar("2", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := u;
-numeric st; st := stem_width;
-numeric n[];
-n1 := 1/2st;
-pickup quill;
-% stem
-lft x1=pcshiftx+n1; top y1=h-2n1;
-rt x3=w-pcshiftx-n1; y3=3/4h;
-x2=1/2[x1,x3]; top y2= h;
-% foot
-x5= lft x1; bot y5=0;
-x6= rt x3; y6=y5;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw_wave(5,6,thin);                          % foot
-draw z1--z2--z3--z5wl;                          % curve
-ductus:=false;
-penlabels(1,2,3,4,5,6,100);
-endchar; % end "2"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{3}
-% The digit `3'. 
-%    \begin{macrocode}
-cmchar "TGOTH digit 3";
-beginchar("3", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-numeric n[];
-numeric st; st := stem_width;
-n1 := st;
-pcshiftx := u;
-pickup quill;
-%% top
-lft x1 = pcshiftx + n1; rt x3 = w - pcshiftx - n1;
-x2 = 1/2[x1,x3]; x4 = 1/2[x1,x2];
-top y2 = h; y3 = 12/16h;
-(z2-z1) = whatever*pdir;
-(z3-z4) = whatever*pdir;
-%% bottom
-x5 = 12/16[x4, rt x4]; x6 = x3; x7 = x2; 
-x18 = x1-n1; x17 = x7;
-bot y7 = thin;
-y5 = 12/16[y4, top y4]; 
-(z5-z6) = whatever*(z2-z3);
-bot y18 = 0; bot y17 = 0;
-
-draw z1--z2--z3--z4;   % top
-draw_wave(18,17,thin);
-draw z5--z6--z18wr;       % bottom
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,8,9,10,17,18,100);
-endchar; % end "3"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{4}
-% The digit `4'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 4";
-beginchar("4", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-numeric st; st := stem_width;
-numeric n[];
-pcshiftx := u;
-pickup quill;
-% the stem
-x1=x2=w-pcshiftx-(wided+widedmin)*st;
-y1=h;  y2=0;
-% the crossbar
-lft x3=pcshiftx; y3=7/16h;
-rt x4=w-pcshiftx; y4=y3;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);   % stem
-draw z3--z4;                       % horizontal
-draw z1--z3;                       % diagonal
-ductus:=false;
-penlabels(1,2,3,4,100);
-endchar; % end "4"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-%
-% \begin{routine}{5}
-% The digit `5'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 5";
-beginchar("5", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := u;
-numeric n[];
-numeric st; st := stem_width;
-n1 := st;
-pickup quill;
-% for the top
-rt x1=w-pcshiftx; top y1=h;
-lft x2=pcshiftx+n1; y2=y1;
-% the S curve
-x3=x2; y3=0.5h;
-x4=0.5[x1,x3]; y4=0.5[y3,y5];
-rt x5=w-pcshiftx; y5=1/2[thick,y3];
-x6=w/2; bot y6=0;
-%%x16 = 12/16[x3,x5]; 
-x16 = lft x5;
-bot y16 = 0;
-lft x17=pcshiftx; bot y17=0;
-z167 = 1/2[z16,z17];
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw_wave(2,1,thin);                      % top squiggle
-draw z2wl--z3;                            % vertical
-%%draw_wave(17,16,thin);                    % foot
-draw z17{pdir}..{pdir}z16;              % foot
-draw z3{pdir}..z5{down}..z16;    % curve
-ductus:=false;
-penlabels(1,2,3,4,5,6,7,100);
-endchar; % end "5"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{6}
-% The digit `6'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 6";
-beginchar("6", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[]; 
-numeric st; st := stem_width;
-n1 := 24/16st;
-pickup quill;
-%% bottom left
-x1 = x4 = w/2; top y1 = h - thick; bot y4 = 0;
-x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
-y2 = y6 = 3/4[y4,y1];
-y3 = y5 = 1/4[y4,y1];
-%% bowl
-draw z1--z2--z3--z4--z5--z6--cycle;
-%% head
-x11 = x5; top y11 = h;
-x12 = x2; y12 = y11;
-draw_wave(11,12,thin);
-x16 = x11; y16 = y11-thin;
-draw z6--z16;
-penlabels(1,2,3,4,5,6,12,100);
-endchar; % end "6"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{7}
-% The digit `7'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 7";
-beginchar("7", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := u;
-pickup quill;
-% top bar
-lft x1=pcshiftx;
-rt x2=w-pcshiftx;
-top y1=top y2=h;
-% bowed leg
-x4=w/2; bot y4=0;
-x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-draw_wave(1,2,thin);         % top bar
-draw z1wr..z3..z4;
-ductus:=false;
-penlabels(1,2,3,4,5,6,100);
-endchar; % end "7"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{8}
-% The digit `8'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 8";
-beginchar("8", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := u;
-numeric alpha; alpha:=1;
-pickup quill;
-lft x1= pcshiftx; rt x3=w-pcshiftx; top y1 = y3 = 3/4h;
-rt x2 = lft x4 = w/2; top y2=h; bot y4=0;
-x5=x2; y5=h/2+2o;
-lft x11=pcshiftx; rt x13=w-pcshiftx; y11 = bot y13 = 1/4h;
-%%ductus:=true;
-if ductus:
-  pickup stylus;
-fi
-%%draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
-draw z1--z2--z3--z11--z4--z13--cycle;
-ductus:=false;
-penlabels(1,2,3,4,5,11,13,100);
-endchar; % end "8"
-
-%    \end{macrocode}
-% \end{routine}
-%
-% \begin{routine}{9}
-% The digit `9'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 9";
-beginchar("9", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[]; 
-numeric st; st := stem_width;
-n1 := 24/16st;
-pickup quill;
-%% bottom left
-x1 = x4 = w/2; top y1 = h; bot y4 = thick;
-x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
-y2 = y6 = 3/4[y4,y1];
-y3 = y5 = 1/4[y4,y1];
-%% bowl
-draw z1--z2--z3--z4--z5--z6--cycle;
-%% foot
-x11 = x5; bot y11 = 0;
-x12 = x2; y12 = y11;
-draw_wave(11,12,thin);
-x13 = x12; y13 = y12+thin;
-draw z3--z13;
-penlabels(1,2,3,4,5,6,12,100);
-endchar; % end "9"
-
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% \begin{routine}{0}
-% The digit `0'.
-%    \begin{macrocode}
-cmchar "TGOTH digit 0";
-beginchar("0", 2u#+fig_width#, fig_height#, 0);
-adjust_fit(0,0);
-pcshiftx := sb;
-numeric n[]; 
-numeric st; st := stem_width;
-n1 := 24/16st;
-pickup quill;
-%% bottom left
-x1 = x4 = w/2; top y1 = h; bot y4 = 0;
-x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
-y2 = y6 = 3/4h;
-y3 = y5 = 1/4h;
-
-draw z1--z2--z3--z4--z5--z6--cycle;
-
-penlabels(1,2,3,4,5,6,12,100);
-endchar; % end "0"
-
-%    \end{macrocode}
-% \end{routine}
-%
-%
-% The end of this file.
-%    \begin{macrocode}
-%</dig>
-%    \end{macrocode}
-%
-%
-% \section{The font definition files} \label{sec:fd}
-%
-%    The font comes in normal and bold weights only.
-%
-%    \begin{macrocode}
-%<*fdot1>
-\DeclareFontFamily{OT1}{tgoth}{}
-  \DeclareFontShape{OT1}{tgoth}{m}{n}{ <-8.5> tgoth7 <8.5-15> tgoth10 <15-> tgoth17 }{} 
-  \DeclareFontShape{OT1}{tgoth}{m}{sl}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{OT1}{tgoth}{m}{it}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{OT1}{tgoth}{m}{sc}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{OT1}{tgoth}{m}{u}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{OT1}{tgoth}{bx}{n}{ <-15> tgothb10 <15-> tgothb17 }{}
-  \DeclareFontShape{OT1}{tgoth}{bx}{it}{ <-> sub * tgoth/bx/n }{}
-  \DeclareFontShape{OT1}{tgoth}{bx}{sl}{ <-> sub * tgoth/bx/n }{}
-  \DeclareFontShape{OT1}{tgoth}{b}{n}{ <-> sub * tgoth/bx/n }{}
-%</fdot1>
-%    \end{macrocode}
-%
-%
-%    \begin{macrocode}
-%<*fdt1>
-\DeclareFontFamily{T1}{tgoth}{}
-  \DeclareFontShape{T1}{tgoth}{m}{n}{ <-8.5> tgoth7 <8.5-15> tgoth10 <15-> tgoth17 }{} 
-  \DeclareFontShape{T1}{tgoth}{m}{sl}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{T1}{tgoth}{m}{it}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{T1}{tgoth}{m}{sc}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{T1}{tgoth}{m}{u}{ <-> sub * tgoth/m/n }{}
-  \DeclareFontShape{T1}{tgoth}{bx}{n}{ <-15> tgothb10 <15-> tgothb17 }{}
-  \DeclareFontShape{T1}{tgoth}{bx}{it}{ <-> sub * tgoth/bx/n }{}
-  \DeclareFontShape{T1}{tgoth}{bx}{sl}{ <-> sub * tgoth/bx/n }{}
-  \DeclareFontShape{T1}{tgoth}{b}{n}{ <-> sub * tgoth/bx/n }{}
-%</fdt1>
-%    \end{macrocode}
-%
-% \section{The package code} \label{sec:code}
-%
-% \subsection{The \Lpack{tgothic} package}
-%
-%    The \Lpack{tgothic} package is for typesetting short pieces of text
-% in the \thisfont{} fonts.
-%
-%    Announce the name and version of the package, which requires
-% \LaTeXe{}.
-%    \begin{macrocode}
-%<*usc>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tgothic}[2002/12/30 v1.0 package for Gothic Textura fonts]
-%    \end{macrocode}
-%
-% \begin{macro}{\Tienc}
-%  A  macro for testing the value of |\encodingdefault|.
-%    \begin{macrocode}
-\providecommand{\Tienc}{T1}
-%    \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\tgothfamily}
-%    Selects the \thisfont{} font family in the OT1 or T1 encoding.
-%    \begin{macrocode}
-\ifx\Tienc\encodingdefault
-  \newcommand{\tgothfamily}{\usefont{T1}{tgoth}{m}{n}}
-\else
-  \newcommand{\tgothfamily}{\usefont{OT1}{tgoth}{m}{n}}
-\fi
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\texttgoth}
-%    Text command for the \thisfont{} font family.
-%    \begin{macrocode}
-\DeclareTextFontCommand{\texttgoth}{\tgothfamily}
-%    \end{macrocode}
-% \end{macro}
-%
-%    The end of this package.
-%    \begin{macrocode}
-%</usc>
-%    \end{macrocode}
-%
-% \subsection{The \Lpack{alltgoth} package}
-%
-%    The \Lpack{alltgoth} package is intended for use when the entire document
-% will be typeset in the book-hand. This is a minimal package. Because the
-% book-hand should not contain arabic digits a fuller package would redefine
-% anything numbered in \LaTeX{} to use roman instead of arabic numbering.
-% Also, because of the large |\baselineskip| many other aspects of \LaTeX{}
-% to do with vertical positioning should also be redefined. 
-%
-%
-%    Announce the name and version of the package, which requires
-% \LaTeXe{}. It also uses the \Lpack{tgothic} package.
-%    \begin{macrocode}
-%<*uscall>
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{alltgoth}[2002/12/30 v1.0 package for all Gothic Textura fonts]
-\RequirePackage{tgothic}
-%    \end{macrocode}
-%
-% \begin{macro}{\Tienc}
-%  A  macro for testing the value of |\encodingdefault|.
-%    \begin{macrocode}
-\providecommand{\Tienc}{T1}
-%    \end{macrocode}
-% \end{macro}
-%
-%  Redefine the default fonts to be \thisfont, which has only one family 
-% member.
-% \begin{macro}{\rmdefault}
-% \begin{macro}{\sfdefault}
-% \begin{macro}{\ttdefault}
-%    \begin{macrocode}
-\renewcommand{\rmdefault}{tgoth}
-\renewcommand{\sfdefault}{tgoth}
-\renewcommand{\ttdefault}{tgoth}
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% The `leading' in the book-hands is a function of the |x-height|, which is 
-% normally much
-% greater than for the CMR fonts. I have borrowed code from Frank Jensen's
-% \Lpack{beton} package~\cite{BETON} to do this. The |x-height| (in points) 
-% for the CMR
-% fonts is given in Table~\ref{tab:cmrx}. Note that the CMR design sizes are
-% 5--10, 12, and 17.28 points. The other values given are scaled from these 
-% figures.
-%
-% \begin{table}
-% \centering
-% \caption{The x heights of the CMR and \thisfont{} fonts} \label{tab:cmrx}
-% \begin{tabular}{ccc} \hline
-% Design & CMR & \thisfont \\
-% Size & X Height & X Height \\ \hline
-% 5 & 2.14 & 3.00 \\     ^^A CMR skip = 6pt = 2.8 times
-% 6 & 2.58 & 3.61 \\     ^^A CMR skip = 7pt = 2.7 times
-% 7 & 3.00 & 4.20 \\     ^^A CMR skip = 8pt = 2.7 times
-% 8 & 3.44 & 4.81 \\     ^^A CMR skip = 9.5pt = 2.8 times
-% 9 & 3.86 & 5.40 \\     ^^A CMR skip = 11pt = 2.8 times
-% 10 & 4.31 & 6.03 \\    ^^A CMR skip = 12pt = 2.8 times
-% 11 & 4.74 & 6.64 \\    ^^A CMR skip = 13.6pt = 2.8 times
-% 12 & 5.17 & 7.24 \\    ^^A CMR skip = 14.5pt = 2.8 times
-% 14 & 6.03 & 8.44 \\    ^^A CMR skip = 18pt = 3.0 times
-% 17 & 7.44 & 10.41 \\    ^^A CMR skip = 22pt = 3.0 times
-% 20 & 8.75 & 12.25  \\   ^^A CMR skip = 25pt = 2.9 times
-% 25 & 10.94 & 15.32 \\  ^^A CMR skip = 30pt = 2.7 times
-% \hline
-% \end{tabular}
-% \end{table}
-%
-% \begin{macro}{\tgoth at baselineskip@table}
-% A table of the normal font sizes and the corresponding baselineskip.
-% The distance between baselines for \thisfont{} is over twice 
-% the |x-height|.  ^^A actually 2.5 times to nearest half point
-% 
-%    \begin{macrocode}
-\newcommand{\tgoth at baselineskip@table}{%
-  <\@vpt>7.5%
-  <\@vipt>9.0%
-  <\@viipt>10.5%
-  <\@viiipt>12.0%
-  <\@ixpt>13.5%
-  <\@xpt>15.0%
-  <\@xipt>16.5%
-  <\@xiipt>18.0%
-  <\@xivpt>21.0%
-  <\@xviipt>26.0%
-  <\@xxpt>30.5%
-  <\@xxvpt>38.5}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\tgoth at new@setfontsize}
-%  This is a macro that replaces the |\@setfontsize| macro which is called by
-% the font size changing commands.
-%    \begin{macrocode}
-\newcommand{\tgoth at new@setfontsize}[3]{%
-  \edef\@tempa{\def\noexpand\@tempb####1<#2}%
-  \@tempa>##2<##3\@nil{\def\tgoth at baselineskip@value{##2}}%
-  \edef\@tempa{\noexpand\@tempb\tgoth at baselineskip@table<#2}%
-  \@tempa><\@nil
-  \ifx\tgoth at baselineskip@value\@empty
-    \def\tgoth at baselineskip@value{#3}%
-  \fi
-  \tgoth at old@setfontsize{#1}{#2}\tgoth at baselineskip@value}
-%    \end{macrocode}
-% \end{macro}
-%
-% We had better give an author a means of using The Computer Modern fonts
-% if necessary.
-%
-% \begin{macro}{\cmrfamily}
-% \begin{macro}{\cmssfamily}
-% \begin{macro}{\cmttfamily}
-%    These macros select the Computer Modern Roman, Sans, and Typewriter 
-% font families in either the T1 or OT1 encodings.
-%    \begin{macrocode}
-\ifx\Tienc\encodingdefault
-  \providecommand{\cmrfamily}{\usefont{T1}{cmr}{m}{n}}
-  \providecommand{\cmssfamily}{\usefont{T1}{cmss}{m}{n}}
-  \providecommand{\cmttfamily}{\usefont{T1}{cmtt}{m}{n}}
-\else
-  \providecommand{\cmrfamily}{\usefont{OT1}{cmr}{m}{n}}
-  \providecommand{\cmssfamily}{\usefont{OT1}{cmss}{m}{n}}
-  \providecommand{\cmttfamily}{\usefont{OT1}{cmtt}{m}{n}}
-\fi
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\textcmr}
-%    Text command for the Computer Modern Roman font family.
-%    \begin{macrocode}
-\DeclareTextFontCommand{\textcmr}{\cmrfamily}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\textcmss}
-%    Text command for the Computer Modern Sans font family.
-%    \begin{macrocode}
-\DeclareTextFontCommand{\textcmss}{\cmssfamily}
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\textcmtt}
-%    Text command for the Computer Modern Typewriter font family.
-%    \begin{macrocode}
-\DeclareTextFontCommand{\textcmtt}{\cmttfamily}
-%    \end{macrocode}
-% \end{macro}
-%
-%
-% At the start of the document, change the |\@setfontsize| macro and call
-% the normal font to implement the change.
-%    \begin{macrocode}
-\AtBeginDocument{%
-  \let\tgoth at old@setfontsize=\@setfontsize
-  \let\@setfontsize=\tgoth at new@setfontsize}
-\AtBeginDocument{\normalsize}
-%    \end{macrocode}
-%
-%
-%    The end of this package.
-%    \begin{macrocode}
-%</uscall>
-%    \end{macrocode}
-%
-%
-%
-%
-%
-% \Finale
-% \PrintIndex
-%
-\endinput
-
-%% \CharacterTable
-%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
-%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
-%%   Digits        \0\1\2\3\4\5\6\7\8\9
-%%   Exclamation   \!     Double quote  \"     Hash (number) \#
-%%   Dollar        \$     Percent       \%     Ampersand     \&
-%%   Acute accent  \'     Left paren    \(     Right paren   \)
-%%   Asterisk      \*     Plus          \+     Comma         \,
-%%   Minus         \-     Point         \.     Solidus       \/
-%%   Colon         \:     Semicolon     \;     Less than     \<
-%%   Equals        \=     Greater than  \>     Question mark \?
-%%   Commercial at \@     Left bracket  \[     Backslash     \\
-%%   Right bracket \]     Circumflex    \^     Underscore    \_
-%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
-%%   Right brace   \}     Tilde         \~}
-
-

Deleted: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.ins
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.ins	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tgothic.ins	2018-01-30 00:25:16 UTC (rev 46480)
@@ -1,101 +0,0 @@
-%%
-%% tgothic.ins
-%% Copyright 1999 Peter R. Wilson
-%%
-%% This program is provided under the terms of the
-%% LaTeX Project Public License distributed from CTAN
-%% archives in directory macros/latex/base/lppl.txt.
-%%
-%% Author: Peter Wilson (CUA)
-%%         now at: peter.r.wilson at boeing.com
-%% 
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% --------------- start of docstrip commands ------------------
-%%
-\def\batchfile{tgothic.ins}
-\input docstrip.tex
-\preamble
-
- Copyright 1999 Peter R. Wilson
-
- This program is provided under the terms of the
- LaTeX Project Public License distributed from CTAN
- archives in directory macros/latex/base/lppl.txt.
-
-Author: Peter Wilson (CUA)
-        now at: peter.r.wilson at boeing.com
-
-\endpreamble
-
-\keepsilent
-
-%%% \Msg{*** Generating the driver file ***}
-%%% \generateFile{tgothic.drv}{t}{\from{tgothic.dtx}{driver}}
-
-\Msg{*** Generating the Metafont files ***}
-
-\usepostamble\empty
-\generateFile{tgoth7.mf}{t}{\from{tgothic.dtx}{base7}}
-\generateFile{tgoth10.mf}{t}{\from{tgothic.dtx}{base10}}
-\generateFile{tgoth17.mf}{t}{\from{tgothic.dtx}{base17}}
-\generateFile{tgothb7.mf}{t}{\from{tgothic.dtx}{base7b}}
-\generateFile{tgothb10.mf}{t}{\from{tgothic.dtx}{base10b}}
-\generateFile{tgothb17.mf}{t}{\from{tgothic.dtx}{base17b}}
-\generateFile{tgothl.mf}{t}{\from{tgothic.dtx}{min}}
-\generateFile{tgothu.mf}{t}{\from{tgothic.dtx}{maj}}
-\generateFile{tgothtitle.mf}{t}{\from{tgothic.dtx}{mfd}}
-\generateFile{tgothpunct.mf}{t}{\from{tgothic.dtx}{punct}}
-\generateFile{tgothlig.mf}{t}{\from{tgothic.dtx}{lig}}
-\generateFile{tgothdig.mf}{t}{\from{tgothic.dtx}{dig}}
-
-\Msg{*** Generating the Font Definition files ***}
-\usepostamble\defaultpostamble
-
-\generateFile{ot1tgoth.fd}{t}{\from{tgothic.dtx}{fdot1}}
-\generateFile{t1tgoth.fd}{t}{\from{tgothic.dtx}{fdt1}}
-
-\Msg{*** Generating the LaTeX2e package files ***}
-
-\generateFile{tgothic.sty}{t}{\from{tgothic.dtx}{usc}}
-\generateFile{alltgoth.sty}{t}{\from{tgothic.dtx}{uscall}}
-
-\Msg{***********************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into directories searched by TeX:}
-\Msg{*}
-\Msg{* Move these into the font source area:}
-\Msg{* \space\space tgoth7.mf}
-\Msg{* \space\space tgoth10.mf}
-\Msg{* \space\space tgoth17.mf}
-\Msg{* \space\space tgothb7.mf}
-\Msg{* \space\space tgothb10.mf}
-\Msg{* \space\space tgothb17.mf}
-\Msg{* \space\space tgothl.mf}
-\Msg{* \space\space tgothu.mf}
-\Msg{* \space\space tgothtitle.mf}
-\Msg{* \space\space tgothpunct.mf}
-\Msg{* \space\space tgothlig.mf}
-\Msg{* \space\space tgothdig.mf}
-\Msg{*}
-\Msg{* Move these into the LaTeX macro area:}
-\Msg{* \space\space ot1tgoth.fd}
-\Msg{* \space\space t1tgoth.fd}
-\Msg{* \space\space tgothic.sty}
-\Msg{* \space\space alltgoth.sty}
-\Msg{*}
-\Msg{*}
-\Msg{* To produce the documentation run the files ending with}
-\Msg{* `.dtx' through LaTeX.}
-\Msg{* Process any name.idx file by:}
-\Msg{* \space\space\space\space makeindex -s gind.ist name}
-\Msg{* Process any name.glo file by:}
-\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo}
-\Msg{*}
-\Msg{* Happy TeXing}
-\Msg{***********************************************************}
-
-\endinput

Deleted: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tryfont.tex
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tryfont.tex	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic/tryfont.tex	2018-01-30 00:25:16 UTC (rev 46480)
@@ -1,124 +0,0 @@
-% tryfont.tex    Test Gothic Textura Quadrata fonts
-%\documentclass[12pt]{article}
-\documentclass{article}
-\usepackage{tgothic}
-
-\newcommand{\ABC}{ABCDEFGHIJKL MNOPQRSTUVWXYZ}
-\newcommand{\abc}{abcdefghijkl mnopqrs{}tuvwxyz}
-\newcommand{\ABCnb}{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
-\newcommand{\abcnb}{abcdefghijklmnopqrs{}tuvwxyz}
-\newcommand{\punct}{.,;:!?`' () []}
-\newcommand{\figs}{0123456789}
-\newcommand{\dashes}{- -- ---}
-\newcommand{\ligs}{\&{} ct st}
-\newcommand{\sentence}{%
-this is an example of the gothic textura quadrata font. now is the time for all good
-men, and women, to come to the aid of the party while the quick brown fox
-jumps over the lazy dog.}
-
-\newcommand{\Sentence}{%
-This is an example of the Gothic Textura Quadrata font. Now is the time for all good
-men, and women, to come to the aid of the party while the quick brown fox
-jumps over the lazy dog.}
-
-\newcommand{\esses}{sa sb sc sd se sf sg sh si sj sk sl sm 
-                    sn so sp sq sr ss st su sv sw sx sy sz}
-
-\newcommand{\exes}{xa xb xc xd xe xf xg xh xi xj xk xl xm 
-                  xn xo xp xq xr xs xt xu xv xw xx xy xz}
-          
-\newcommand{\jays}{aj bj cj dj ej fj gj hj ij jj kj lj mj 
-                   nj oj pj qj rj sj tj uj vj wj xj yj zj}
-
-\newcommand{\dees}{ad bd cd dd ed fd gd hd id jd kd ld md 
-                   nd od pd qd rd sd td ud vd wd xd yd zd}
-
-\newcommand{\ares}{ra rb rc rd re rf rg rh ri rj rk rl rm 
-                   rn ro rp rq rr rs rt ru rv rw rx ry rz}
-
-\newcommand{\Esses}{SA SB SC SD SE SF SG SH SI SJ SK SL SM 
-                    SN SO SP SQ SR SS ST SU SV SW SX SY SZ}
-
-\newcommand{\Exes}{XA XB XC XD XE XF XG XH XI XJ XK XL XM 
-                  XN XO XP XQ XR XS XT XU XV XW XX XY XZ}
-          
-\newcommand{\Jays}{AJ BJ CJ DJ EJ FJ GJ HJ IJ JJ KJ LJ MJ 
-                   NJ OJ PJ QJ RJ SJ TJ UJ VJ WJ XJ YJ ZJ}
-
-\newcommand{\Dees}{AD BD CD DD ED FD GD HD ID JD KD LD MD 
-                   ND OD PD QD RD SD TD UD VD WD XD YD ZD}
-
-\newcommand{\Ares}{RA RB RC RD RE RF RG RH RI RJ RK RL RM 
-                   RN RO RP RQ RR RS RT RU RV RW RX RY RZ}
-
-\title{Try Gothic Textura Quadrata Fonts}
-\author{}
-\date{}
-\begin{document}
-\maketitle
-
-    This provides a short test of the characters in the Gothic Textura Quadrata fonts
---- the \verb|tgoth| font family. Pen angle 45 degrees, 5 and 4 nibs for
-normal and bold versions.
-
-
-
-\begin{center}
-The Gothic Textura Quadrata Huge normal font. \\ \par
-{\tgothfamily\Huge \ABC\\ \abc\\ \punct{} \dashes\\ \ligs{} \figs\\ \par }
-\end{center}
-
-\begin{center}
-The Gothic Textura Quadrata font in its normal size \\
-\texttgoth{\ABCnb{} \abcnb{} \punct{} \dashes{} \ligs{} \figs} \\
-\end{center}
-
-\begin{center}
-The bold Gothic font, the normal Gothic font, and the bold Computer Modern
-Roman, all in the normal size \\
-\texttgoth{\textbf{\abcnb{} \figs{}  \ligs{}}} \\
-\texttgoth{\abcnb{} \figs{} \ligs{}} \\
-\textbf{\abcnb{} \figs{} \ligs{}} \\
-\end{center}
-
-\begin{center}
-The bold versions, in Huge and tiny sizes. \par
-\tgothfamily\bfseries
-\Huge \abc{} \figs{}  \ligs{} \par
-\tiny \abc{} \figs{}  \ligs{} \par
-\end{center}
-
-\begin{center}
-The font in the tiny size \\ \par
-{\tgothfamily\tiny \ABC{} \\ \abc\\ \figs\\  \ligs{} \par } 
-\end{center}
-
-\begin{center}
-    Some built-in ligatures in the normal font \\
-\texttgoth{``first active brown dog --- but quick \& red fox?''}
-\end{center}
-
-%\begin{center}
-%    Individual ligatures in the normal font \\
-% \texttgoth{\esses} \\
-% \texttgoth{\exes} \\
-% \texttgoth{\jays} \\
-% \texttgoth{\dees} \\
-% \texttgoth{\ares} \\
-% \texttgoth{\Esses} \\
-% \texttgoth{\Exes} \\
-% \texttgoth{\Jays} \\
-% \texttgoth{\Dees} \\
-% \texttgoth{\Ares} \\
-%\end{center}
-
-{
-\tgothfamily 
-\sentence{}
-
-\Sentence{}
-}
-    
-    This is the end of the test file.
-
-\end{document}
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-README
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-README	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-README	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,89 @@
+    The tgothic and alltgoth packages provide Metafont fonts based on the 
+Gothic Textura Quadrata manuscript book-hand used between the 13th & 15th century AD. 
+The font consists of minuscules and digits, with some appropriate 
+period punctuation marks. Both normal and bold versions are provided. 
+This is one in a series of manuscript fonts.
+
+    Access to the docmfp package is desireable but not essential.
+
+    The distribution consists of the following files:
+README (this file)
+tgothic.ins
+tgothic.dtx
+tryfont.tex
+allfont.tex
+
+    The distribution is provided under the terms of the LaTeX
+Project Public License (LPPL).
+
+To install the package:
+=======================
+
+o run: latex tgothic.ins, which will generate:
+       tgoth*.mf files
+       *.fd files
+       tgothic.sty
+       alltgoth.sty
+o Move the generated files to locations where LaTeX will find them.
+    For example: the tgoth*.mf files to .../texmf/fonts/source/public/tgothic
+                 the *.fd and *.sty files to /texmf/tex/latex/local/tgothic
+
+    On a teTeX distribution you might also have to add lines like the 
+    following to texmf/fontname/special.map:
+      tgothr7.mf       public    tgothic
+      tgothr10.mf      public    tgothic
+      tgothr17.mf      public    tgothic
+      tgothb7.mf       public    tgothic
+      tgothb10.mf      public    tgothic
+      tgothb17.mf      public    tgothic
+    On a teTeX distribution remember to run texhash after moving the files.
+
+    (I use a teTeX distribution and found that if I didn't add to the special.map
+     file, then the generated tfm and pk files were put in directories corresponding
+     to some vendor's font.) 
+
+    Other LaTeX distributions might require procedures similar to those for teTeX.
+
+To typeset the documentation:
+=============================
+
+o run: latex tgothic.dtx
+o if you want an index then run: makeindex -s gind.ist tgothic
+o run: latex tgothic.dtx
+o Print tgothic.dvi for a hardcopy of the package manual 
+
+    Note that the docmfp package is normally required for LaTeXing tgothic.dtx.
+The package is available from CTAN in tex-archive/macros/latex/contrib/supported.
+If you haven't got this and don't want to get it, then there are instructions
+in the first part of the .dtx file about how to edit it to avoid the use of docmfp.
+(docmfp is an extension of the doc package for describing METAFONT, or other
+non-LaTeX, code.)
+
+
+To check out your installation:
+===============================
+
+o run: latex tryfont  for a testpage of the fonts
+o run: latex allfont  for a document typeset with the fonts
+
+
+Changes:
+========
+
+2018-01-25 Norbert Preining <norbert at preining.info>
+  Change the name of the main font from tgothN to tgothrN
+  to avoid name clash with Japanese TeX engines which also
+  use tgoth.
+
+  This change will break old dvi files, as well as old plain
+  TeX files that explicitely ask for the font tgoth10 (etc).
+  LaTeX files that use the style file interface are not 
+  concerned.
+
+  Please direct complains and suggestions concerning this change
+  to Norbert Preining.
+
+
+2002/12/30
+Peter Wilson
+peter.r.wilson at boeing.com

Added: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-tryfont.tex
===================================================================
--- trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-tryfont.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-tryfont.tex	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,124 @@
+% tryfont.tex    Test Gothic Textura Quadrata fonts
+%\documentclass[12pt]{article}
+\documentclass{article}
+\usepackage{tgothic}
+
+\newcommand{\ABC}{ABCDEFGHIJKL MNOPQRSTUVWXYZ}
+\newcommand{\abc}{abcdefghijkl mnopqrs{}tuvwxyz}
+\newcommand{\ABCnb}{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
+\newcommand{\abcnb}{abcdefghijklmnopqrs{}tuvwxyz}
+\newcommand{\punct}{.,;:!?`' () []}
+\newcommand{\figs}{0123456789}
+\newcommand{\dashes}{- -- ---}
+\newcommand{\ligs}{\&{} ct st}
+\newcommand{\sentence}{%
+this is an example of the gothic textura quadrata font. now is the time for all good
+men, and women, to come to the aid of the party while the quick brown fox
+jumps over the lazy dog.}
+
+\newcommand{\Sentence}{%
+This is an example of the Gothic Textura Quadrata font. Now is the time for all good
+men, and women, to come to the aid of the party while the quick brown fox
+jumps over the lazy dog.}
+
+\newcommand{\esses}{sa sb sc sd se sf sg sh si sj sk sl sm 
+                    sn so sp sq sr ss st su sv sw sx sy sz}
+
+\newcommand{\exes}{xa xb xc xd xe xf xg xh xi xj xk xl xm 
+                  xn xo xp xq xr xs xt xu xv xw xx xy xz}
+          
+\newcommand{\jays}{aj bj cj dj ej fj gj hj ij jj kj lj mj 
+                   nj oj pj qj rj sj tj uj vj wj xj yj zj}
+
+\newcommand{\dees}{ad bd cd dd ed fd gd hd id jd kd ld md 
+                   nd od pd qd rd sd td ud vd wd xd yd zd}
+
+\newcommand{\ares}{ra rb rc rd re rf rg rh ri rj rk rl rm 
+                   rn ro rp rq rr rs rt ru rv rw rx ry rz}
+
+\newcommand{\Esses}{SA SB SC SD SE SF SG SH SI SJ SK SL SM 
+                    SN SO SP SQ SR SS ST SU SV SW SX SY SZ}
+
+\newcommand{\Exes}{XA XB XC XD XE XF XG XH XI XJ XK XL XM 
+                  XN XO XP XQ XR XS XT XU XV XW XX XY XZ}
+          
+\newcommand{\Jays}{AJ BJ CJ DJ EJ FJ GJ HJ IJ JJ KJ LJ MJ 
+                   NJ OJ PJ QJ RJ SJ TJ UJ VJ WJ XJ YJ ZJ}
+
+\newcommand{\Dees}{AD BD CD DD ED FD GD HD ID JD KD LD MD 
+                   ND OD PD QD RD SD TD UD VD WD XD YD ZD}
+
+\newcommand{\Ares}{RA RB RC RD RE RF RG RH RI RJ RK RL RM 
+                   RN RO RP RQ RR RS RT RU RV RW RX RY RZ}
+
+\title{Try Gothic Textura Quadrata Fonts}
+\author{}
+\date{}
+\begin{document}
+\maketitle
+
+    This provides a short test of the characters in the Gothic Textura Quadrata fonts
+--- the \verb|tgoth| font family. Pen angle 45 degrees, 5 and 4 nibs for
+normal and bold versions.
+
+
+
+\begin{center}
+The Gothic Textura Quadrata Huge normal font. \\ \par
+{\tgothfamily\Huge \ABC\\ \abc\\ \punct{} \dashes\\ \ligs{} \figs\\ \par }
+\end{center}
+
+\begin{center}
+The Gothic Textura Quadrata font in its normal size \\
+\texttgoth{\ABCnb{} \abcnb{} \punct{} \dashes{} \ligs{} \figs} \\
+\end{center}
+
+\begin{center}
+The bold Gothic font, the normal Gothic font, and the bold Computer Modern
+Roman, all in the normal size \\
+\texttgoth{\textbf{\abcnb{} \figs{}  \ligs{}}} \\
+\texttgoth{\abcnb{} \figs{} \ligs{}} \\
+\textbf{\abcnb{} \figs{} \ligs{}} \\
+\end{center}
+
+\begin{center}
+The bold versions, in Huge and tiny sizes. \par
+\tgothfamily\bfseries
+\Huge \abc{} \figs{}  \ligs{} \par
+\tiny \abc{} \figs{}  \ligs{} \par
+\end{center}
+
+\begin{center}
+The font in the tiny size \\ \par
+{\tgothfamily\tiny \ABC{} \\ \abc\\ \figs\\  \ligs{} \par } 
+\end{center}
+
+\begin{center}
+    Some built-in ligatures in the normal font \\
+\texttgoth{``first active brown dog --- but quick \& red fox?''}
+\end{center}
+
+%\begin{center}
+%    Individual ligatures in the normal font \\
+% \texttgoth{\esses} \\
+% \texttgoth{\exes} \\
+% \texttgoth{\jays} \\
+% \texttgoth{\dees} \\
+% \texttgoth{\ares} \\
+% \texttgoth{\Esses} \\
+% \texttgoth{\Exes} \\
+% \texttgoth{\Jays} \\
+% \texttgoth{\Dees} \\
+% \texttgoth{\Ares} \\
+%\end{center}
+
+{
+\tgothfamily 
+\sentence{}
+
+\Sentence{}
+}
+    
+    This is the end of the test file.
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/fonts/bookhands/tgothic-tryfont.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/uncial/allfont.ps.gz
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/fonts/bookhands/uncial-tryfont.ps.gz
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `base10b')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%%% TGOTHB10.MF  Gothic Textura Quadrata Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5;          % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;  %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ 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
+ sb#:=1/4u#;                 % unit for side bearings
+
+ cap_sb#:=2sb#;         % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#;        % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45;                  % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+  ascratio:=5/4;
+  asc_height#:=ascratio*x_height#;
+  descratio:=2/4;
+  desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8;   % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+  fig_height#:=(0.5[1,caprat])*x_height#;
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+monospace:=false;    % should all characters have the same width?
+
+dot_size#:=5thin#;   % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle      %% switch to the driver file
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `base17b')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%%% TGOTHB17.MF  Gothic Textura Quadrata Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5;          % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;  %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ 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
+ sb#:=1/4u#;                 % unit for side bearings
+
+ cap_sb#:=2sb#;         % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#;        % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45;                  % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+  ascratio:=5/4;
+  asc_height#:=ascratio*x_height#;
+  descratio:=2/4;
+  desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8;   % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+  fig_height#:=(0.5[1,caprat])*x_height#;
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+monospace:=false;    % should all characters have the same width?
+
+dot_size#:=5thin#;   % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle      %% switch to the driver file
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `base7b')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%%% TGOTHB7.MF    Gothic Textura Quadrata Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5;          % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;  %% normally 1.2
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ 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#:=0pt#;        % extra space added to all sidebars
+ sb#:=1/4u#;                   % unit for side bearings
+
+ cap_sb#:=2sb#;           % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#;        % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45;                  % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+  ascratio:=5/4;
+  asc_height#:=ascratio*x_height#;
+  descratio:=2/4;
+  desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8;   % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+  fig_height#:=(0.5[1,caprat])*x_height#;
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+monospace:=false;    % should all characters have the same width?
+
+dot_size#:=5thin#;   % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle      %% switch to the driver file
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,243 @@
+%%
+%% This is file `tgothdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `dig')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+
+cmchar "TGOTH digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "TGOTH digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric st; st := stem_width;
+numeric n[];
+n1 := 1/2st;
+pickup quill;
+lft x1=pcshiftx+n1; top y1=h-2n1;
+rt x3=w-pcshiftx-n1; y3=3/4h;
+x2=1/2[x1,x3]; top y2= h;
+x5= lft x1; bot y5=0;
+x6= rt x3; y6=y5;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_wave(5,6,thin);                          % foot
+draw z1--z2--z3--z5wl;                          % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "TGOTH digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pcshiftx := u;
+pickup quill;
+%% top
+lft x1 = pcshiftx + n1; rt x3 = w - pcshiftx - n1;
+x2 = 1/2[x1,x3]; x4 = 1/2[x1,x2];
+top y2 = h; y3 = 12/16h;
+(z2-z1) = whatever*pdir;
+(z3-z4) = whatever*pdir;
+%% bottom
+x5 = 12/16[x4, rt x4]; x6 = x3; x7 = x2;
+x18 = x1-n1; x17 = x7;
+bot y7 = thin;
+y5 = 12/16[y4, top y4];
+(z5-z6) = whatever*(z2-z3);
+bot y18 = 0; bot y17 = 0;
+
+draw z1--z2--z3--z4;   % top
+draw_wave(18,17,thin);
+draw z5--z6--z18wr;       % bottom
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,17,18,100);
+endchar; % end "3"
+
+cmchar "TGOTH digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+numeric n[];
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-(wided+widedmin)*st;
+y1=h;  y2=0;
+lft x3=pcshiftx; y3=7/16h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);   % stem
+draw z3--z4;                       % horizontal
+draw z1--z3;                       % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "TGOTH digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx+n1; y2=y1;
+x3=x2; y3=0.5h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=1/2[thick,y3];
+x6=w/2; bot y6=0;
+%%x16 = 12/16[x3,x5];
+x16 = lft x5;
+bot y16 = 0;
+lft x17=pcshiftx; bot y17=0;
+z167 = 1/2[z16,z17];
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_wave(2,1,thin);                      % top squiggle
+draw z2wl--z3;                            % vertical
+%%draw_wave(17,16,thin);                    % foot
+draw z17{pdir}..{pdir}z16;              % foot
+draw z3{pdir}..z5{down}..z16;    % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "TGOTH digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h - thick; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% head
+x11 = x5; top y11 = h;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x16 = x11; y16 = y11-thin;
+draw z6--z16;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "6"
+
+cmchar "TGOTH digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_wave(1,2,thin);         % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "TGOTH digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1= pcshiftx; rt x3=w-pcshiftx; top y1 = y3 = 3/4h;
+rt x2 = lft x4 = w/2; top y2=h; bot y4=0;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11 = bot y13 = 1/4h;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+%%draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+draw z1--z2--z3--z11--z4--z13--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "TGOTH digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = thick;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% foot
+x11 = x5; bot y11 = 0;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x13 = x12; y13 = y12+thin;
+draw z3--z13;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "9"
+
+cmchar "TGOTH digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4h;
+y3 = y5 = 1/4h;
+
+draw z1--z2--z3--z4--z5--z6--cycle;
+
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "0"
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,695 @@
+%%
+%% This is file `tgothl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `min')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+
+cmchar "TGOTH letter a";
+beginchar("a", 2sb#+hstretch*((3+widedmin+wided)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+%% left hand
+lft x1 = pcshiftx + widedmin*stem_width; y1 = 1/2h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% right stem
+rt x3 = w - pcshiftx - wided*stem_width; y3=h;
+x4=x3; y4=0;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,1.0,0.1,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+%% swirl
+x11=rt x1; y11 = top y1;
+pickup stylus;
+draw z3d--z3c..{-ppdir}z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "TGOTH letter b";
+beginchar("b", 2sb#+hstretch*((3 + widedmin + narrowdmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx;    % actual letter width
+n2:=h/ascratio;    % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx + widedmin*st; y1=h;
+x2 = x1; y2=0;
+z3=1/2[z1,z2];
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+lft x6 = x2c; bot y6 = y2c;
+x4 = x6; y4=n2;
+draw_updiamondstem(4,6,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z4d,z4c];
+pickup stylus;
+draw z4d--z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "TGOTH letter c";
+beginchar("c", 2sb#+hstretch*((3+wided)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st;
+st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+z11-z2c = z2c - z2d;
+pickup stylus;
+draw z2d--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "TGOTH letter d";
+beginchar("d", 2sb#+hstretch*((3+widedmin+narrowdmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio;    %  x-height
+%% left
+n2 := st*(cosd diang);
+lft x1 = pcshiftx + widedmin*st; top y1 = 12/16n1;
+x2=x1; y2=0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd,diang);
+%% right
+rt x3 = w-pcshiftx-narrowdmin*st; y3=h;
+x4 = x3; bot y4 = y2c;
+draw_updiamondstem(3,4, 2.0, narrowdmin, diawd,diang);
+x31 = lft x1; y31 = bot y1;
+x32 = rt x1; y32 = top y1;
+z33 = whatever[z31,z32] = whatever[z3e,z3c];
+pickup stylus;
+draw z31--z33;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "TGOTH letter e";
+beginchar("e", 2sb#+hstretch*((3+wided)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st;
+st := stem_width;
+path pth[];
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+x5 = x1;
+z4-z5 = whatever*pdir;
+pickup stylus;
+draw z4--z5;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+cmchar "TGOTH letter f";
+beginchar("f", 2sb#+hstretch*((3+widedmin)*stem_width#),
+               (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio;      % x-height
+%% stem
+lft x1=lft x2=pcshiftx+widedmin*st; y2=0; top y1 = h - (top y2 - bot y2);
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top bar
+lft x3 = rt x1; rt x5 = w-pcshiftx; bot y3 = top y1; y5=y3;
+draw z3--z5;
+%% middle bar
+lft x7 = pcshiftx; rt x9 = x5;
+y7 = y9 = 10/16h;
+draw z7--z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,15,16,100);
+endchar; % end "f"
+
+cmchar "TGOTH letter g";
+beginchar("g", 2sb#+hstretch*((4)*stem_width#),
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx;
+x2 = x1; bot y2 = 0; top y1 = h - (top y2 - bot y2);
+draw z1--z2;
+x3 = x4 = x1 + 2st; y4 = y2;
+lft x13 = rt x1; bot y13 = top y1;
+(z3-z13) = whatever*(dir -diang);
+draw z13--z3--z4;
+z34 = 1/2[z13,z3]; rt x37 = w-pcshiftx; top y37 = h;
+draw z34{right}..{pdir}z37;
+pickup stylus;
+bot y5 = -d;
+(z4-z5) = whatever*pdir;
+draw z4--z5;
+pickup quill;
+%% bottom loop
+z21 = z2;
+lft x25 = x5; bot y25=-d;
+x29 = 1/2[x3,x37];
+(z29-z21) = whatever*(dir -diang);
+x23 = x29; y23 = 1/2[y29,y25];
+draw z21{dir - diang}..z23{down}..{left}z25;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "TGOTH letter h";
+beginchar("h", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+n1 = h/ascratio;
+%% stem
+lft x1=lft x2=pcshiftx + narrowdmin*stem_width;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% bowl
+x3 = x1 + 2stem_width; x4 = x3;
+y3 = n1; y4=0;
+z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z3d,z3c];
+pickup stylus;
+draw z3d--z7;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "TGOTH letter i";
+beginchar("i", 2sb#+hstretch*(2stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+x3= x1-thin; bot y3 = h + 1/2stem_width;
+z4 = (x3+3thin,y3);
+pickup halfquill;
+draw z3--z4;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "TGOTH letter j";
+beginchar("j", sb#+hstretch*(5/2stem_width#),
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx - 1/2stem_width; y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_updiamondstem(1,2,narrowd,narrowdmin,diawd,diang);
+draw z2{down}..z3{-pdir};               % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "TGOTH letter k";
+beginchar("k", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h/ascratio;                 % x-height
+lft x1=lft x2=pcshiftx + narrowdmin*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2, narrowd, narrowdmin, diawd,diang);
+%% right leg
+x3 = x1 + 2st; y3 = 8/16n1;
+x4 = x3; y4 = 0;
+z34 = 1/2[z3,z4];
+draw_downdiamondstem(34,4, narrowd, narrowdmin, diawd,diang);
+draw z3--z34;
+lft x5 = rt x1;
+(z3-z5) = whatever*(dir -diang);
+draw z5--z3;
+
+%% top arm
+x6 = 1/2[x3, rt x3];
+(z6-z5) = whatever*(pdir);
+rt x8 = lft x5; top y8 = bot y5+thick;
+(z7-z8) = whatever*(z6-z5);
+(z7-z6)=whatver*(z5-z3);
+draw z6--z7;
+pickup stylus;
+draw z5--z6--z7--z8;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "TGOTH letter l";
+beginchar("l", 2sb#+hstretch*((2 + widedmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx + widedmin*st; y1=h;
+x2=x1; y2 =0;
+z3 = 1/2[z1,z2];
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "TGOTH letter m";
+beginchar("m", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+wided*stem_width; y1 = y3 = y5 = h;
+x2=x1; y2=y4=y6=0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x5 = rt x6 = w-pcshiftx-narrowd*stem_width;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56,wided,widedmin,diawd,diang);
+draw_downdiamondstem(56,6,narrowd,narrowdmin,diawd,diang);
+%% middle stem
+z3=1/2[z1,z5]; z4 = 1/2[z2,z6]; z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "TGOTH letter n";
+beginchar("n", 2sb#+hstretch*((3+wided+narrowd)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + wided*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x3 = w-pcshiftx - narrowd*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "TGOTH letter o";
+beginchar("o", 2sb#+hstretch*((3 + narrowdmin + narrowdmin)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bottom left
+lft x12 = pcshiftx + narrowdmin*st; y12 = 1/2h;
+x2 = x12; y2 = 0;
+draw_downdiamondstem(12,2, 1.0, narrowdmin, diawd,diang);
+%% right
+rt x3 = w - pcshiftx - narrowdmin*st; x4=x3;
+y3 = h; bot y4 = y2c;
+draw_updiamondstem(3,4, 1.0, narrowdmin, diawd,diang);
+%% top left
+x1 = x12; top y1 = y3c;
+draw z1--z12;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "TGOTH letter p";
+beginchar("p", 2sb#+hstretch*((3 + wided + widedmin)*stem_width#),
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+wided*st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downforkstem(12,2);
+%% bowl
+x3 = x4 = x1 + 2st;
+y3 = y1; bot y4 = 0;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+lft x5 = pcshiftx; y5 = y4;
+draw z5--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "TGOTH letter q";
+beginchar("q", 2sb#+hstretch*((3 + widedmin)*stem_width#),
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% left/bottom of bowl
+y99 = 0;
+lft x1 = pcshiftx +widedmin*st; top y1 = h - (top y99 - bot y99);
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin,diawd,diang);
+%% rest
+x3 = x1 + 2st; x4 = x3; y3 = y1; y4 = -d;
+lft x5 = rt x1; bot y5 = top y1;
+draw_downforkstem(3,4);
+draw z5--z3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "TGOTH letter r";
+beginchar("r", 2sb#+hstretch*((3+wided)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx + wided*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% bar
+lft x3 = rt x1; rt x4 = w-pcshiftx; top y3 = top y4 = h;
+draw z3--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "TGOTH letter s";
+beginchar("s", 2sb#+hstretch*((4)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup stylus;
+%% the diagonal
+lft x2 = pcshiftx; bot y2 = 0;
+rt x1 = w-pcshiftx; top y1 = h;
+draw z1--z2;
+pickup quill;
+z211 = 13/32[z2,z1];   %% 10/32 too small, 16/32 too large
+z213 = 24/32[z2,z1];   %% 26/32 too large
+z212 = 1/2[z211,z213];
+%% bottom bowl
+lft x21 = x2; bot y21 = 0;
+rt x22 = w - pcshiftx; bot y22 = 0;
+x23 = x22; z24 = z212;
+(z24-z23) = whatever*(dir (180-diang));
+draw z21{pdir}..z22--z23--z24;
+%% top bowl
+z14 = z211; z11 = z213;
+lft x12 = lft x13 = pcshiftx;
+(z13-z14) = whatever*(dir (180-diang));
+(z12-z11) = whatever*(dir (180-diang));
+draw z11--z12--z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,100);
+endchar; % end "s"
+
+cmchar "TGOTH letter t";
+beginchar("t", 2sb#+hstretch*((2+1.0)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "TGOTH letter u";
+beginchar("u", 2sb#+hstretch*((3+narrowd+wided)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+rt x3 = w - pcshiftx - wided*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "TGOTH letter v";
+beginchar("v", 2sb#+hstretch*((4 + narrowdmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric n[]; numeric st;
+pcshiftx := sb;
+st := stem_width;
+n1 := h/ascratio;  % x-height
+pickup quill;
+%% bottom left stem
+%% right and bottom left stems
+rt x23 = w - pcshiftx - narrowdmin*st; y23 = n1; x24=x23;
+x1 = x23 - 2st; y1 = 1/2n1;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd, diang);
+bot y24 = y2c;
+draw_updiamondstem(23, 24, narrowd, narrowdmin, diawd, diang);
+%% curly bit
+x11=x1; top y11 = h;
+lft x12 = pcshiftx; y12 = 1/2[y11,y1];
+draw z11{down}..z12{down}..{down}z1;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "TGOTH letter w";
+beginchar("w", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = y3 = y5 = h;
+x2 = x1; y2 = y4 = y6 = 0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2, wided, widedmin, diawd, diang);
+%% right stem
+rt x5 = w -pcshiftx-wided*stem_width; x6 = x5;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(56,6, wided, widedmin, diawd, diang);
+%% middle stem
+z3 = 1/2[z1,z5]; z4 = 1/2[z2,z6]; z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(34,4, wided, widedmin, diawd, diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "TGOTH letter x";
+beginchar("x", 2sb#+hstretch*((4)*stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% upright
+x1 = 1/2w; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12, 1.5, widedmin,diawd,2/3diang);
+draw_downdiamondstem(12,2, 1.5, widedmin,diawd,2/3diang);
+%% top right bar
+lft x3 = rt x1; top y3 = h;
+rt x4 = w - pcshiftx; y4=y3;
+draw z3--z4;
+%% middle bar
+n1 := h-y3;
+lft x5 = pcshiftx; rt x6 = w - pcshiftx;
+y5 = 1/2h - n1; y6 = 1/2h;
+z56 = 1/2[z5,z6];
+draw z5{pdir}..z56..{pdir}z6;
+%% bottom left
+pickup stylus;
+lft x11 = pcshiftx; bot y11 = 0;
+draw z2e--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "TGOTH letter y";
+beginchar("y", 2sb#+hstretch*((3 + narrowd+ narrowdmin)*stem_width#),
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st = stem_width;
+pickup quill;
+%% right side
+rt x3 = w - pcshiftx - narrowdmin*st; y3 = h;
+x33 = x3; y33 = 0;
+%%draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+%% left side
+x1 = x3 - 2st; y1 = y3;
+x2 = x1; y2 = 0;
+n1 := top y2 - y2;
+draw_updiamondstem(1,2,narrowd,narrowdmin, diawd,diang);
+%% tail
+x11 = rt x2; y11 = top y2;
+x12 = lft x2; y12 = bot y2;
+pickup stylus;
+lft x14 = x1 - 2st; y14 = -d + n1;
+x15 = x14+n1; bot y15 = -d;
+z4 = whatever[z11,z12] = whatever[z3,z33];
+x10=x4; bot y10 = y4;
+draw z10--z11--z12..{down}z14..{-ppdir}z15;
+pickup quill;
+draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,33,100);
+endchar; % end "y"
+
+cmchar "TGOTH letter z";
+beginchar("z", 2sb#+hstretch*(3stem_width#),
+               x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% centre bar
+z5 = 1/2[z1,z3]; z6 = 1/2[z2,z4]; z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; draw pth3;              %  bars
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,150 @@
+%%
+%% This is file `tgothlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `lig')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "TGOTH st ligature";
+beginchar(oct"015", 2sb#+hstretch*((1 + narrowd + 3)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := h/ascratio;  % x-height
+pickup quill;
+%% the S (long)
+lft x1 = pcshiftx + narrowd*st;
+x2 = x1; y2 = 0; y1 = h - (top y2 - bot y2);
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd, 1/4narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2,narrowd, narrowdmin, diawd, diang);
+%% the T
+%% bar
+lft x23 = rt x1 + pcshiftx; top y23 = n1;
+rt x24 = w-pcshiftx; y24=y23;
+draw z23--z24;
+%% stem
+lft x21 = rt x23; top y21 = h;
+x22 = x21; y22 = 0;
+draw_downdiamondstem(21,22,narrowd,narrowdmin,diawd,diang);
+%% the ligature
+x11=x1; top y11=h;
+draw z12--z11--z21;
+ductus:=false;
+penlabels(1,2,3,4,5,11,21,22,23,24,100);
+%% end "t"
+endchar; %% end st ligature
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width);  % right
+draw_pcomma(2,dot_size,comma_width);  % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*((2)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*((3)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*((6)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "TGOTH ampersand";
+beginchar("&", 2sb#+hstretch*((7/2)*stem_width#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% E bars
+n1 = 1/2[y3,y2a] + 1/2angdec;
+pickup halfquill;
+lft x11 = pcshiftx; rt x12 = w-pcshiftx;
+y11 = y12 = 1/2h;
+x13 = x11; x14=x12; y13 = y14 = n1-angdec;
+draw z11--z12;
+%%draw z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "&"
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,125 @@
+%%
+%% This is file `tgothpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `punct')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar;  % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*((3+wided+widedmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx;     % actual character width
+n2 := 1/3h;            % height of top bowl
+n3 := n2;              % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x45 = x5; y45=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 11/16h;
+
+x4 = x45;
+(z3-z4) = whatever*pdir;
+
+%%ductus:= true;
+if ductus:
+  pickup stylus;
+fi
+%%draw z1..z2{right}..z3{down}..z4{down};
+draw z1--z2--z3--z4--z45;
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,45,5);
+endchar;  % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar;  % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar;  % end of "`"
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothr10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `base10')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%%% TGOTH10.MF  Gothic Textura Quadrata at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5;          % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ 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
+ sb#:=1/4u#;                 % unit for side bearings
+
+ cap_sb#:=2sb#;         % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#;        % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45;                  % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+  ascratio:=5/4;
+  asc_height#:=ascratio*x_height#;
+  descratio:=2/4;
+  desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8;   % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+  fig_height#:=(0.5[1,caprat])*x_height#;
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+monospace:=false;    % should all characters have the same width?
+
+dot_size#:=5thin#;   % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle      %% switch to the driver file
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr10.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothr17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `base17')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%%% TGOTH17.MF  Gothic Textura Quadrata at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5;          % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ 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
+ sb#:=1/4u#;                 % unit for side bearings
+
+ cap_sb#:=2sb#;         % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#;        % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45;                  % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+  ascratio:=5/4;
+  asc_height#:=ascratio*x_height#;
+  descratio:=2/4;
+  desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8;   % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+  fig_height#:=(0.5[1,caprat])*x_height#;
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+monospace:=false;    % should all characters have the same width?
+
+dot_size#:=5thin#;   % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle      %% switch to the driver file
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr17.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothr7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `base7')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%%% TGOTH7.MF    Gothic Textura Quadrata at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5;          % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ 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#:=0pt#;        % extra space added to all sidebars
+ sb#:=1/4u#;                   % unit for side bearings
+
+ cap_sb#:=2sb#;           % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#;        % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45;                  % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+  ascratio:=5/4;
+  asc_height#:=ascratio*x_height#;
+  descratio:=2/4;
+  desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8;   % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+  fig_height#:=(0.5[1,caprat])*x_height#;
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+monospace:=false;    % should all characters have the same width?
+
+dot_size#:=5thin#;   % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle      %% switch to the driver file
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothr7.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,842 @@
+%%
+%% This is file `tgothtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `mfd')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+def makebox(text rule) =
+  for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+    rule((l,y)t_,(r,y)t_); endfor  % horizontals
+  for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+  for x=u*(1+floor(1/u)) step u until r-1:
+    rule((x,-body_depth)t_,(x,body_height)t_); endfor         % more verticals
+  if charic<>0:
+    rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi  % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+  x$bl = x$ - xoff; y$bl = y$ - yoff;         % Bottom Left Hand Corner
+  z$br = (x$bl+side, y$bl);                   % BRHC
+  z$tr = (x$bl+side, y$bl+side);              % TRHC
+  z$tl = (x$bl, y$bl+side);                   % TLHC
+  z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr];  % horizontal mid points
+  pair hc, vc;
+  hc = (2u,0); vc = (0,2u);
+  pickup pensquare scaled 2;
+  for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+    draw s-hc--s+hc;
+    draw s-vc--s+vc;
+  endfor
+fi
+enddef;
+
+
+def tgothic_font_setup= % contains special stuff for tgothic fonts
+  define_pixels(side,half_height,carol_height,comma_width);
+  define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+                cap_serif_fit,jut,clubjut,cap_jut,trijut);
+  define_pixels(fig_width);
+  define_whole_pixels(letter_fit,sb,cap_sb);
+  define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+                               desc_depth,body_depth,fig_height);
+  define_corrected_pixels(o);
+  define_blacker_pixels(thick,thin);
+  define_pixels(stem_width);
+  define_pixels(perpdec,angdec);
+  let adjust_fit = normal_adjust_fit;
+  pickup pencircle scaled thin;
+  stylus:=savepen;
+  pickup pencircle scaled (1.5thin);
+  thickstylus:=savepen;
+  pickup pencircle xscaled thick yscaled thin rotated pangle;
+  quill:=savepen;
+
+  pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+  threequarterquill := savepen;
+
+  pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+  halfquill := savepen;
+
+  pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+  quarterquill := savepen;
+
+  numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+  define_pixels(pcshiftx);
+  numeric sqxside#;   % x size of the square
+  numeric sqyside#;   % y size of the square
+  define_pixels(sqxside,sqyside);
+
+enddef; % end of tgothic_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_upforkstem(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  x$a=x$; top y$a = bot y$;         % top of straight stem
+  draw z$a--z$$;                    % straight part
+  z$b = (rt x$, y$); z$c = (x$b, top y$a);
+  z$d = (lft x$, bot y$a); z$e = (x$d, y$);
+  pickup stylus;
+  rt x$cc = x$c;  y$cc = y$c;
+  lft x$bb = x$b; y$bb = y$b;
+  lft x$dd = x$d; y$dd = y$d;
+  rt x$ee = x$e;  y$ee = y$e;
+  filldraw z$a--z$bb..z$cc--cycle;    % fork
+  filldraw z$a--z$dd..z$ee--cycle;
+  pickup oldpen;
+  labels($a,$b,$c,$d,$e);
+enddef; % end of draw_upforkstem
+
+
+def draw_downforkstem(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  x$$a=x$$; bot y$$a = top y$$;         % bottom of straight stem
+  draw z$--z$$a;                        % straight part
+  z$$b = (rt x$$, y$$); z$$c = (x$$b, top y$$a);
+  z$$d = (lft x$$, bot y$$a); z$$e = (x$$d, y$$);
+  pickup stylus;
+  rt x$$cc = x$$c;  y$$cc = y$$c;
+  lft x$$bb = x$$b; y$$bb = y$$b;
+  lft x$$dd = x$$d; y$$dd = y$$d;
+  rt x$$ee = x$$e;  y$$ee = y$$e;
+  filldraw z$$a--z$$bb..z$$cc--cycle;    % fork
+  filldraw z$$a--z$$dd..z$$ee--cycle;
+  pickup oldpen;
+  labels($$a,$$b,$$c,$$d,$$e);
+enddef; % end of draw_downforkstem
+
+
+def draw_upcurlstem(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  path curlp[]; numeric curln[];
+  x$a=x$; top y$a = y$;         % top of straight stem
+  draw z$a--z$$;                    % straight part
+  curln1 := rt x$a - lft x$a;       % stem width
+  x$b = x$a - 4/2curln1; y$b = y$a;      % left jut
+  curlp1 := z$a{-pdir}..{left}z$b;
+  draw curlp1;
+
+  x$c = x$a-3curln1; top y$c = bot y$a-1/2curln1;
+  x$f = x$b; y$f = 1/3[y$c,y$b];
+  x$tb = rt x$b; y$tb = top y$b;
+  x$bb = lft x$b; y$bb = bot y$b;
+  curlp2 := z$tb--z$bb..{down}z$c..{ppdir}z$f;
+  pickup stylus;
+  draw curlp2;
+  pickup oldpen;
+  labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_upcurlstem
+
+
+def draw_updiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+  pen oldpen; oldpen:=currentpen;
+  numeric sj; sj := fr*stem_width;             % jut distance
+  numeric sjr; sjr := minfr*stem_width;        % right jut distance
+  numeric jw;  jw := wd*stem_width;            % jut width
+  %% $b is bottom left of jut, on LHS of stem
+  %% $c is leftmost point on jut
+  %% $d is topmost point on jut
+  %% $g is topmost point on stem
+  %% $e is on exprapolation of line from $d through $g
+  %%    i.e., the rightmost point on jut
+  %% $f is on RHS of stem
+  pickup quill;
+  x$b = lft x$;
+  x$c = x$b - sj; y$c = y$ - jw*(cosd phi);    % $c done
+  y$b = y$c - sj*(sind phi);                   % $b done
+  x$d = x$c + jw*(sind phi); y$d = y$;         % $d done
+  x$g = x$f = rt x$;
+  y$g = y$ - (x$g-x$d)*(sind phi)/(cosd phi);  % $g done
+  x$a = x$; top y$a = y$g;                     % $a done
+  x$e = x$g + sjr;  z$e = whatever[z$d,z$g];  % $e done
+  z$f-z$e = whatever*(z$c-z$d);                % $f done
+  x$h = x$b; y$h = bot y$a;
+  draw z$a--z$$;                    % straight part
+  pickup stylus;
+  lft x$cc = x$c; y$cc = y$c;
+  x$dd = x$d; top y$dd = y$d;
+  rt x$ee = x$e; bot y$ee=y$e;
+  filldraw z$b--z$cc--z$dd--z$ee--z$f--cycle;    % diamond
+  if y$b > y$h:
+    lft x$hh = x$h; y$hh=y$h;
+    filldraw z$b--z$hh--z$g--cycle;
+  fi
+  pickup oldpen;
+  labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_updiamondstem
+
+
+def draw_downdiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+  pen oldpen; oldpen:=currentpen;
+  numeric sj; sj := fr*stem_width;              % (left) jut distance
+  numeric sjr; sjr := minfr*stem_width;;        % right jut distance
+  numeric jw;  jw := wd*stem_width;             % jut width
+  %% $$b is top right of jut, on RHS of stem
+  %% $$c is rightmost point on jut
+  %% $$d is bottommost point on jut
+  %% $$g is bottommost point on stem
+  %% $$e is on exprapolation of line from $d through $g
+  %%    i.e., the leftmost point on jut
+  %% $$f is on LHS of stem
+  pickup quill;
+  x$$b = rt x$$;
+  x$$c = x$$b + sj; y$$c = y$$ + jw*(cosd phi);    % $$c done
+  y$$b = y$$c + sj*(sind phi);                     % $$b done
+  x$$d = x$$c - jw*(sind phi); y$$d = y$$;         % $$d done
+  x$$g = x$$f = lft x$$;
+  y$$g = y$$ + (x$$d-x$$g)*(sind phi)/(cosd phi);  % $$g done
+  x$$a = x$$; bot y$$a = y$$g;                     % $$a done
+  x$$e = x$$g - sjr;  z$$e = whatever[z$$d,z$$g];  % $$e done
+  z$$f-z$$e = whatever*(z$$c-z$$d);                % $$f done
+  x$$h = x$$b; y$$h = top y$$a;
+  draw z$--z$$a;                    % straight part
+  pickup stylus;
+  rt x$$cc = x$$c; y$$cc=y$$c;
+  x$$dd = x$$d; bot y$$dd = y$$d;
+  lft x$$ee = x$$e; top y$$ee = y$$e;
+  filldraw z$$b--z$$cc--z$$dd--z$$ee--z$$f--cycle;    % diamond
+  if y$$b < y$$h:
+    rt x$$hh = x$$h; y$$hh=y$$h;
+    filldraw z$$b--z$$hh--z$$g--cycle;
+  fi
+  pickup oldpen;
+  labels($$a,$$b,$$c,$$d,$$e,$$f);
+enddef; % end of draw_downdiamondstem
+
+
+def draw_serif(suffix $, $$)(expr fr)=
+  numeric beta, ajut, bjut;
+  beta=1-fr;
+  ajut=fr*jut; bjut=beta*jut;
+  pair vec[]; vec1=unitvector(z$$-z$);
+  vec2=ajut*vec1;
+  z$a=z$ shifted vec2;
+  z$b=z$a rotatedaround (z$,-90);
+  boolean top_serif;
+  if y$>y$$:
+    top_serif := true;
+    z$c=z$b shifted (-bjut*pdir);
+  else:
+    top_serif:=false;
+    z$c=z$b shifted (bjut*pdir);
+  fi
+  if top_serif:
+    draw z$c--z$b{pdir}..{z$$-z$}z$a;    % the serif
+  else:
+    draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+  fi
+  labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+  draw_serif($, $$, fr);
+  undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+  numeric beta, ajut, bjut;
+  beta=1-fr;
+  ajut=fr*jut; bjut=beta*jut;
+  pair vec[]; vec1=unitvector(z$$-z$);
+  vec2=ajut*vec1;
+  z$a=z$ shifted vec2;
+%%%  z$b=z$a rotatedaround (z$,-90);
+  boolean top_serif;
+  if y$>y$$:
+    top_serif := true;
+    z$c=z$ shifted (-jut*pdir);
+  else:
+    top_serif:=false;
+    z$c=z$ shifted (jut*pdir);
+  fi
+  z$b = fr[z$,z$c];
+  draw z$a--z$;
+  if top_serif:
+    draw z$c--z$b{pdir}..{z$$-z$}z$a;    % the serif
+  else:
+    draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+  fi
+  labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+  numeric beta, ajut, bjut;
+%%  beta=1-fr;
+  ajut=clubjut; bjut=beta*jut;
+  pair vec[]; vec1=unitvector(z$$-z$);
+%%  vec2=ajut*vec1;
+%%  z$a=z$ shifted vec2;
+  boolean top_serif;
+  if y$>y$$:
+    top_serif := true;
+    z$c=z$ shifted (-clubjut*pdir);
+  else:
+    top_serif:=false;
+    z$c=z$ shifted (clubjut*pdir);
+  fi
+  z$a = fr[z$,z$$];
+  draw z$c..z$a{vec1};
+  labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  x$ts1'=lft x$; y$ts1'=bot y$;
+  pickup stylus;
+  lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+  x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+  x$ts3=x$ts1; y$ts3=y$ts2-tj;
+  pickup stylus;
+%%  filldraw z$ts1--z$ts2--z$ts3--cycle;
+  filldraw z$--z$ts2--z$ts3--cycle;
+  pickup oldpen;
+  labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+  draw_serif($, $$, fr);  % top serif
+  draw_serif($$, $, fr);  % bottom serif
+  draw z$a--z$$a;  % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%%  draw_serif($$, $, fr);  % the serif
+%%  draw z$--z$$a;                      % the stem
+  draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+  draw_serif($, $$, fr);  % the serif
+  draw z$a--z$$;                       % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+  rt x$b = x1+fjut; top y$b=y$-fall;
+  x$a=0.5[x$,x$b]; top y$a=y$+rise;
+  draw z$..z$a..z$b;
+  labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+  x$wl=x$; y$wl=y$-f;
+  x$wr=x$$; y$wr=y$$+f;
+  z$wc=0.5[z$wl,z$wr];
+  draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+  labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  x$tl' = lft x$; y$tl=bot y$;
+  pickup stylus;
+  lft x$tl=x$tl';
+  x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+  filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+  pickup oldpen;
+  labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz/2; x$t3=x$+sz/2;
+  y$t1=y$t3=y$;
+  x$t2=x$; y$t2=y$-0.9sz;   % approx sqrt(3)/2
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz/2; x$t3=x$+sz/2;
+  y$t1=y$t3=y$;
+  x$t2=x$; y$t2=y$+0.9sz;   % approx sqrt(3)/2
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz; rt x$t3=x$;
+  y$t1=y$t3=y$;
+  x$t2=x$t3; y$t2=y$-sz;
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz; rt x$t3=x$;
+  y$t1=y$t3=y$;
+  x$t2=x$t3; y$t2=y$+sz;
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  x$f1'=lft x$; y$f1'=bot y$;
+  x$f3'=rt x$;  y$f3'=top y$;
+  pickup stylus;
+  lft x$f1=x$f1'; bot y$f1=y$f1';
+  rt x$f3=x$f3';  y$f3-y$=2*(y$-y$f1);
+  rt x$f2=x$$-sz; bot y$f2=y$$;
+  rt x$f4= rt x$f5=x$$;
+  bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+  filldraw z$f1--z$f2--z$f3--cycle;   % the line
+  draw z$f2{right}..z$f4;             % upper fork
+  draw z$f2{right}..z$f5;             % lower fork
+  pickup oldpen;
+  labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  rt x$$s1=x$$-thick; top y$$s1=y$$;
+  rt x$$s2=x$$;
+%%  x$$s3=x$$-thick;
+  lft x$$s3=x$$s1;
+  bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%%  draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+  draw z$..z$$s1{pdir}..z$$s2{down};
+  labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+  x$'=0.5[x$,x$$]; y$'=y$;    % the mid-point
+  z$''=z$' shifted (thick*pdir);
+  x$i=x$$; z$i=whatever[z$',z$''];
+  labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+  z$$l = z$$ shifted (lft*thick*(-pdir));
+  z$$r = z$$ shifted (rt*thick*(pdir));
+  z$$t = st[z$$,z$];
+  draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+  labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+  z$s = z$ shifted (0.5sz*left);
+  z$t = z$ shifted (0.5sz*up);
+  z$u = z$s shifted (sz*right);
+  z$v = z$t shifted (sz*down);
+  pickup stylus;
+  filldraw z$s--z$t--z$u--z$v--cycle;
+  labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+  z$s = z$ shifted (0.5sz*left);
+  z$t = z$s shifted (sz*right);
+  x$v=x$s-ar; y$v=y$s-2ar;
+  z$u = z$v shifted (sz*right);
+  z$sv = (x$s, 1/3[y$s,y$v]);
+  z$tu = (x$t, y$sv);
+  z$uv = 1/3[z$u,z$v];
+  z$vu = 1/3[z$v,z$u];
+  pickup stylus;
+%%  filldraw z$s--z$t--z$u--z$v--cycle;
+  filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+  labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+  z$s = z$ shifted (0.5sz*left);
+  z$t = z$s shifted (sz*right);
+  x$v=x$s+ar; y$v=y$s-2ar;
+  z$u = z$v shifted (sz*right);
+  z$sv = (x$s, 1/3[y$s,y$v]);
+  z$tu = (x$t, y$sv);
+  z$uv = 1/3[z$u,z$v];
+  z$vu = 1/3[z$v,z$u];
+  pickup stylus;
+%%  filldraw z$s--z$t--z$u--z$v--cycle;
+  filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+  labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+  numeric inx, iny, cx, cy;
+  pair pt[];
+  path pth[];
+  inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+  cx := x$+fx*sx; cy := y$+fy*sy;
+  z$obc = (cx,cy);
+  if pangle = 90:
+    z$wt=(x$+1/2thin, cy);
+    z$et=(x$+sx-1/2thin, cy);
+  else:
+    z$wt=(x$+inx, cy);
+    z$et=(x$+sx-inx, cy);
+    penpos$wt(thick,pangle);
+    penpos$et(thick,pangle);
+  fi
+  if pangle = 0:
+    z$nh=(cx, y$+sy-1/2thin);
+    z$sh=(cx, y$+1/2thin);
+  else:
+    z$nh=(cx, y$+sy-iny);
+    z$sh=(cx, y$+iny);
+    penpos$nh(thick,pangle);
+    penpos$sh(thick,pangle);
+  fi
+  obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+  if pangle = 90:
+      z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+  else:
+    if pangle = 0:
+      z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+    else:
+      z$minl = directionpoint dir(pangle)     of obfirst;
+      z$minr = directionpoint -dir(pangle)    of obfirst;
+      pt1 := z$minr - z$minl;           % direction
+      pt2 := (- ypart pt1, xpart pt1);  % perpendicular
+      pt3 := 1/2[z$minl, z$minr];
+      pt4 := pt3 shifted pt2;
+      pt5 := pt3 shifted -pt2;
+      pth1 := pt3--pt4;
+      pth2 := pt3--pt5;
+      z$maxr = pth1 intersectionpoint obfirst;
+      z$maxl = pth2 intersectionpoint obfirst;
+    \fi
+  \fi
+  penpos$minl(thin,pangle+90);
+  penpos$maxr(thick,pangle);
+  penpos$minr(thin,pangle+90);
+  penpos$maxl(thick,pangle);
+  obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+  z$minlo = z$minl.r; z$maxro = z$maxr.r;
+  z$minro = z$minr.l; z$maxlo = z$maxl.l;
+  obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+  z$minli = z$minl.l; z$maxri = z$maxr.l;
+  z$minri = z$minr.r; z$maxli = z$maxl.r;
+  obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+  labels($obc, $nh, $et, $sh, $wt);
+  labels($minl, $maxr, $minr, $maxl);
+  labels($minlo, $maxro, $minro, $maxlo);
+  labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+  offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+  (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+  pair vecll, veclr, veclm;    % "tangent" line directions
+  numeric pl, pr, pm;          % path parameter values
+  pair vecpl, vecpr, vecpm;    % path directions
+  pair ptl, ptr, ptm;          % path points
+  numeric sl, sr, sm;          % scalar products of path/line directions
+  numeric stpsize;             % size of current binary step
+  numeric tantol;              % tolerance
+  boolean wtest;               % a boolean
+
+  tantol := eps;
+  pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+  ptl := point pl of pth;
+  ptm := point pm of pth;
+  ptr := point pr of pth;
+  vecll := unitvector (z$-ptl);
+  veclm := unitvector (z$-ptm);
+  veclr := unitvector (z$-ptr);
+  vecpl := unitvector (direction pl of pth);
+  vecpm := unitvector (direction pm of pth);
+  vecpr := unitvector (direction pr of pth);
+  sl := vecll scalarprod vecpl;
+  sm := veclm scalarprod vecpm;
+  sr := veclr scalarprod vecpr;
+  wtest := (stpsize < tantol) or (sl*sr > 0) or
+           (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+  if wtest:
+    if (stpsize < tantol):
+      z$tan=(0,0);
+      errmessage("No tangent; path too short");
+    else:
+      if (sl*sr > 0):
+        z$tan=(0,0);
+        errmessage("No tangent; end products have the same sign");
+      else:
+        if (abs sl < tantol):
+          z$tan=ptl;
+        else:
+          if (abs sm < tantol):
+            z$tan=ptm;
+          else:
+            z$tan=ptr;
+          fi
+        fi
+      fi
+    fi
+  else:
+    forever:
+      if (sl*sm < 0):  % opposite signs, look between pl & pm
+        pr:=pm; pm:=0.5(pr+pl);
+        vecpr := vecpm; veclr := veclm; sr:=sm;
+      else:
+        pl:=pm; pm:=0.5(pr+pl);
+        vecpl:=vecpm; vecll:=veclm; sl:=sm;
+      fi
+      stpsize:=pr-pl;
+      ptm := point pm of pth;
+      veclm := unitvector (z$-ptm);
+      vecpm := unitvector (direction pm of pth);
+      sm := veclm scalarprod vecpm;
+      wtest := (stpsize < tantol) or (abs sm < tantol);
+      if wtest:
+        if (abs sm < tantol):
+          z$tan = ptm;
+        else:
+          z$tan = ptm;
+%%%%%%          errmessage("Warning: tangent approximated");
+        fi
+      fi
+      exitif wtest;
+    endfor
+  fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+tgothic_font_setup;
+
+
+input tgothl;        % lower case
+input tgothu;        % capitals
+input tgothpunct;    % punctuation
+input tgothlig;      % the several dashes
+input tgothdig;      % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+  font_normal_space 2vstretch*stem_width#; % no stretching or shrinking
+  font_quad vstretch*18u#;
+  font_extra_space vstretch*9u#;
+else:
+  font_normal_space 2vstretch*stem_width#+2letter_fit#;
+  font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+  font_quad vstretch*18u#+4letter_fit#;
+  font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+  kks#:=-4u#;  kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+  ligtable "s":
+                "a" kern kks#, "A" kern kks#,
+                "c" kern kks#, "C" kern kks#,
+                "d" kern kks#, "D" kern kks#,
+                "e" kern kks#, "E" kern kks#,
+                "f" kern kks#, "F" kern kks#,
+                "g" kern kks#, "G" kern kks#,
+                "i" kern kks#, "I" kern kks#,
+                "j" kern kks#, "J" kern kks#,
+                "k" kern kks#, "K" kern kks#,
+                "m" kern kks#, "M" kern kks#,
+                "n" kern kks#, "N" kern kks#,
+                "o" kern kks#, "O" kern kks#,
+                "p" kern kks#, "P" kern kks#,
+                "q" kern kks#, "Q" kern kks#,
+                "r" kern kks#, "R" kern kks#,
+                "t" kern kks#, "T" kern kks#,
+                "u" kern kks#, "U" kern kks#,
+                "v" kern kks#, "V" kern kks#,
+                "w" kern kks#, "W" kern kks#,
+                "x" kern kks#, "X" kern kks#,
+                "y" kern kks#, "Y" kern kks#,
+                "z" kern kks#, "Z" kern kks#;
+
+  ligtable "S":
+                "a" kern kks#, "A" kern kks#,
+                "c" kern kks#, "C" kern kks#,
+                "d" kern kks#, "D" kern kks#,
+                "e" kern kks#, "E" kern kks#,
+                "f" kern kks#, "F" kern kks#,
+                "g" kern kks#, "G" kern kks#,
+                "i" kern kks#, "I" kern kks#,
+                "j" kern kks#, "J" kern kks#,
+                "k" kern kks#, "K" kern kks#,
+                "m" kern kks#, "M" kern kks#,
+                "n" kern kks#, "N" kern kks#,
+                "o" kern kks#, "O" kern kks#,
+                "p" kern kks#, "P" kern kks#,
+                "q" kern kks#, "Q" kern kks#,
+                "r" kern kks#, "R" kern kks#,
+                "t" kern kks#, "T" kern kks#,
+                "u" kern kks#, "U" kern kks#,
+                "v" kern kks#, "V" kern kks#,
+                "w" kern kks#, "W" kern kks#,
+                "x" kern kks#, "X" kern kks#,
+                "y" kern kks#, "Y" kern kks#,
+                "z" kern kks#, "Z" kern kks#;
+
+  ligtable "x":
+                "a" kern kkx#, "A" kern kkx#,
+                "b" kern kkx#, "B" kern kkx#,
+                "c" kern kkx#, "C" kern kkx#,
+                "d" kern kkx#, "D" kern kkx#,
+                "e" kern kkx#, "E" kern kkx#,
+                "g" kern kkx#, "G" kern kkx#,
+                "j" kern kkx#, "J" kern kkx#,
+                "l" kern kkx#, "L" kern kkx#,
+                "o" kern kkx#, "O" kern kkx#,
+                "q" kern kkx#, "Q" kern kkx#,
+                "t" kern kkx#, "T" kern kkx#,
+                "u" kern kkx#, "U" kern kkx#,
+                "v" kern kkx#, "V" kern kkx#,
+                "w" kern kkx#, "W" kern kkx#,
+                "y" kern kkx#, "Y" kern kkx#;
+
+  ligtable "X":
+                "a" kern kkx#, "A" kern kkx#,
+                "b" kern kkx#, "B" kern kkx#,
+                "c" kern kkx#, "C" kern kkx#,
+                "d" kern kkx#, "D" kern kkx#,
+                "e" kern kkx#, "E" kern kkx#,
+                "g" kern kkx#, "G" kern kkx#,
+                "j" kern kkx#, "J" kern kkx#,
+                "l" kern kkx#, "L" kern kkx#,
+                "o" kern kkx#, "O" kern kkx#,
+                "q" kern kkx#, "Q" kern kkx#,
+                "t" kern kkx#, "T" kern kkx#,
+                "u" kern kkx#, "U" kern kkx#,
+                "v" kern kkx#, "V" kern kkx#,
+                "w" kern kkx#, "W" kern kkx#,
+                "y" kern kkx#, "Y" kern kkx#;
+
+  ligtable "a": "A":
+           "b": "B":
+           "c": "C":
+           "d": "D":
+           "e": "E":
+           "h": "H":
+           "i": "I":
+           "k": "K":
+           "l": "L":
+           "m": "M":
+           "n": "N":
+           "o": "O":
+           "p": "P":
+           "t": "T":
+           "u": "U":
+           "v": "V":
+           "w": "W":
+           "z": "Z":
+           "j" kern kkj#, "J" kern kkj#;
+
+  ligtable "r":
+                "a" kern kkr#, "A" kern kkr#,
+                "b" kern kkr#, "B" kern kkr#,
+                "c" kern kkr#, "C" kern kkr#,
+                "d" kern kkr#, "D" kern kkr#,
+                "e" kern kkr#, "E" kern kkr#,
+                "f" kern kkrs#, "F" kern kkrs#,
+                "g" kern kkrs#, "G" kern kkrs#,
+                "h" kern kkr#, "H" kern kkr#,
+                "i" kern kkr#, "I" kern kkr#,
+                "j" kern kkj#, "J" kern kkj#,
+                "k" kern kkrs#, "K" kern kkrs#,
+                "l" kern kkr#, "L" kern kkr#,
+                "m" kern kkr#, "M" kern kkr#,
+                "n" kern kkrs#, "N" kern kkrs#,
+                "o" kern kkr#, "O" kern kkr#,
+                "p" kern kkrs#, "P" kern kkrs#,
+                "q" kern kkr#, "Q" kern kkr#,
+                "r" kern kkrs#, "R" kern kkrs#,
+                "s" kern kkr#, "S" kern kkr#,
+                "t" kern kkr#, "T" kern kkr#,
+                "u" kern kkr#, "U" kern kkr#,
+                "v" kern kkr#, "V" kern kkr#,
+                "w" kern kkr#, "W" kern kkr#,
+                "x" kern kkx#, "X" kern kkx#,
+                "y" kern kkr#, "Y" kern kkr#,
+                "z" kern kkr#, "Z" kern kkr#;
+
+  ligtable "R":
+                "a" kern kkr#, "A" kern kkr#,
+                "b" kern kkr#, "B" kern kkr#,
+                "c" kern kkr#, "C" kern kkr#,
+                "d" kern kkr#, "D" kern kkr#,
+                "e" kern kkr#, "E" kern kkr#,
+                "f" kern kkrs#, "F" kern kkrs#,
+                "g" kern kkrs#, "G" kern kkrs#,
+                "h" kern kkr#, "H" kern kkr#,
+                "i" kern kkr#, "I" kern kkr#,
+                "j" kern kkj#, "J" kern kkj#,
+                "k" kern kkrs#, "K" kern kkrs#,
+                "l" kern kkr#, "L" kern kkr#,
+                "m" kern kkr#, "M" kern kkr#,
+                "n" kern kkrs#, "N" kern kkrs#,
+                "o" kern kkr#, "O" kern kkr#,
+                "p" kern kkrs#, "P" kern kkrs#,
+                "q" kern kkr#, "Q" kern kkr#,
+                "r" kern kkrs#, "R" kern kkrs#,
+                "s" kern kkr#, "S" kern kkr#,
+                "t" kern kkr#, "T" kern kkr#,
+                "u" kern kkr#, "U" kern kkr#,
+                "v" kern kkr#, "V" kern kkr#,
+                "w" kern kkr#, "W" kern kkr#,
+                "x" kern kkx#, "X" kern kkx#,
+                "y" kern kkr#, "Y" kern kkr#,
+                "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
===================================================================
--- trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf	                        (rev 0)
+++ trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,1234 @@
+%%
+%% This is file `tgothu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `maj')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+
+cmchar "TGOTH letter A";
+beginchar("A", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pair pr[];
+pickup quill;
+%% stem
+rt x1 = w - pcshiftx - wided*st; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% leg
+x21 = x1; top y21 = h;
+lft x22 = pcshiftx + widedmin*st; bot y22 = 0;
+draw z21--z22;
+draw (x22-widedmin*st, y22)--(x22+wided*st, y22);
+%% bar
+z13 = z12;
+y16 = y13; z16 = whatever[z21,z22];
+x14 = 1/2[x13,x16]; (z13-z14) = whatever*pdir;
+pickup threequarterquill;
+draw z13--z14;
+draw z14{ppdir}..{left}z16;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "TGOTH letter B";
+beginchar("B", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem
+lft x1 = pcshiftx; bot y1 = 0;
+n1 := top y1;
+lft x99 = 2/5w; bot y99 = 12/16h;
+rt x12 = lft x99; top y12 = bot y99;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,(h-n1/2)];
+pth1 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% stem decoration
+z101=z99;
+z181 = (x99,-h);
+z102 = (x101,y1);
+z112 = 1/2[z101,z102];
+lft x8 = x112; y8 = y112;
+%% lower bowl
+x113 = w-pcshiftx;
+(z113-z112) = whatever*(pdir);
+rt x5 = w-pcshiftx; y5 = 6/16y113;
+x3 = 10/16[x1,x5]; y3 = y1;
+z7 = 2/16[z8,z113];
+pth2 := z1{pdir}..{right}z3..{up}z5..{-pdir}z7--z8;
+
+%% upper bowl
+x10 = 1/2[x7,x5]; y10 = 1/2[y12,y99];
+x19 = 1/2[x99,x10]; top y19 = h;
+pth3 := z8--z7{pdir}..{up}z10..{left}z19..{-pdir}z99;
+%% angled decoration
+
+z105 = 1/4[z102,z112];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+
+z107 = 1/4[z112,z101];
+x187 = 2w;
+(z187-z107) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth3;
+
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+draw pth2;
+draw pth3;
+pickup stylus;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,99,100);
+endchar; % end "B"
+
+cmchar "TGOTH letter C";
+beginchar("C", 2cap_sb#+hstretch*((5)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx;     % actual letter width
+n2:=6/5w-2pcshiftx;  % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;      %% bowl
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,101,102,103,104,105,106,107,108,185);
+endchar; % end "C"
+
+cmchar "TGOTH letter D";
+beginchar("D", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+lft x1 = pcshiftx; bot y1 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2h;
+x3 = 10/16[x1,x5]; y3 = y1;
+x7 = x3; top y7 = h;
+lft x9 = 2/5w; bot y9 = 12/16h;
+pth1 := z1{pdir}..{right}z3..{up}z5..{left}z7..{-pdir}z9;
+%% stem
+rt x12 = lft x9; top y12 = bot y9;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,y7];
+pth2 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% vertical decoration
+z101=z9;
+z181 = (x9,-h);
+z102 = ((x101,h/2)--z181) intersectionpoint pth1;
+z103a=(x101+perpdec,h); z103b=(x103a,h/2); z103c=(x103a,-h);
+z103 = (z103a--z103b) intersectionpoint pth1;
+z104 = (z103b--z103c) intersectionpoint pth1;
+%% angled decoration
+z106 = (lft x5, y5);
+x105 = x103; (z106-z105) = whatever*(pdir);
+z107 = (x105, y105+angdec);
+x108a = 2w; (z108a-z107) = whatever*(pdir);
+z108 = (z108a--z107) intersectionpoint pth1;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+draw pth2;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,100);
+endchar; % end "D"
+
+cmchar "TGOTH letter E";
+beginchar("E", 2cap_sb#+hstretch*((6)*stem_width#),   %% (5) too small
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx;     % actual letter width
+n2:=6/5w-2pcshiftx;  % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%% bar
+lft x31 = x103; top y31 = y105;
+rt x32 = w-pcshiftx; y32=y31;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;      %% bowl
+draw z31--z32;  %% bar
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,105,185,106);
+endchar; % end "E"
+
+cmchar "TGOTH letter F";
+beginchar("F", 2cap_sb#+hstretch*((5)*stem_width#),
+               5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem (1--2) and top bar (21--22)
+lft x1=lft x2=pcshiftx+widedmin*st; y2 = 0;
+top y21 = top y22 = h - (top y2 - bot y2); x22 = w-pcshiftx-st;
+lft x21 = rt x1; top y1 = bot y21;
+z12 = 1/3[z1,z2];
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+draw z1--z12;
+draw z21--z22;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+x101 = x102; y101 = y21;
+%% bar
+lft x14 = x101; y14 = y12;
+rt x16 = w-pcshiftx; y16 = y14;
+draw z14--z16;
+z16tr = (rt x16, top y16);
+pickup stylus;
+draw z101--z102;
+%% Other decoration
+%% bottom bar
+rt x201 = x16tr; top y201 = y16tr;
+y202 = y201 - 2st; (z201-z202) = whatever*pdir;
+draw z201--z202;
+%% top bar
+pickup quill;
+z22tb = (rt x22, top y22);
+x22bb - x22 = x22 - x22tb; y22bb - y22 = y22 - y22tb;
+x22c = x22 + st; bot y22c = top y22 + 1/2st;
+x22f = x22; y22f = 1/3[y22c, y22];
+pickup stylus;
+x22br = x22bb; bot y22br = y22bb;
+pth3 := z22br--z22tb..{up}z22c..{-ppdir}z22f;
+draw pth3;
+
+penlabels(1,2,3,4,5,6,7,14,15,16,21,22,100);
+endchar; % end "F"
+
+cmchar "TGOTH letter G";
+beginchar("G", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w;     % width of bowl
+n2 := h;     % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+%%pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+%%pth2 := z2{-pdir}..z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+pth2 := z2--z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+%% fork
+z2tr = (rt x2, top y2);
+x2a = x2tr; y2a = y2tr + thin;
+x2b = x2a; y2b - y2 = y2 - y2a;
+x2d = x2 - thick; y2d = y2;
+pickup stylus;
+x2c = x2d = x2e;
+top y2e = y2tr; y2c - y2d = y2d - y2e;
+%%filldraw z2d--z2c{right}..z2b--cycle;
+%%filldraw z2d--z2a..{left}z2e--cycle;
+filldraw z2e--z2c{right}..z2b--cycle;
+filldraw z2c--z2a..{left}z2e--cycle;
+pth9 := (rt x2a,y2a)--(rt x2b,y2b)--(rt x2d,y2d)--cycle;
+unfill pth9;
+unfill pth9;
+unfill pth9;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+%%draw pth1;             %% bar
+draw pth2;             %% bowl
+ductus:=false;
+penlabels(1,2,2a,2b,2c,2d,2e,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "G"
+
+cmchar "TGOTH letter H";
+beginchar("H", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+n1 := 12/16h;    %% take this as the top of the bowl
+x13=x1; y13=3/4n1;
+rt x3 = w-pcshiftx; y3 = 8/16n1;
+x14 = 8/16[x13,x3]; top y14 = n1;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "H"
+
+cmchar "TGOTH letter I";
+beginchar("I", 2cap_sb#+hstretch*((4+wided)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided, widedmin,diawd,diang);
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101=x102; top y101 = h;
+draw z101--z102;
+ductus:=false;
+penlabels(1,2,101,102,100);
+endchar; % end "I"
+
+cmchar "TGOTH letter J";
+beginchar("J", cap_sb#+hstretch*((4+wided)*stem_width#),
+               caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1 = pcshiftx+3st; y1 = h;
+x2=x1; y2=-d + (top y1 - bot y1);
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_upcurlstem(1,2);
+draw z2{ppdir}..{-pdir}z3;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201 + 2/3wided*st;
+pickup stylus;
+top y101 = h; y201=y101;
+z102=(x101,0);
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,101,102,100);
+endchar; % end "J"
+
+cmchar "TGOTH letter K";
+beginchar("K", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+               5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = 4/5h;                 % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5+st,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;                        % upper bowl
+draw pth2;                        % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "K"
+
+cmchar "TGOTH letter L";
+beginchar("L", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; bot y2 =0;
+draw_upcurlstem(1,2);
+rt x4 = w-pcshiftx; bot y4 = 0;
+draw z2{right}..{pdir}z4;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201+2/3wided*st;
+pickup stylus;
+top y101 = h; y201 = y101;
+x102 = x101; bot y102=0;
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,4,101,102,201,100);
+endchar; % end "L"
+
+cmchar "TGOTH letter M";
+beginchar("M", 2cap_sb#+hstretch*((11)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%%% left part
+lft x301 = pcshiftx+3st; y301 = h;
+x302 = x301; y302 = 0;
+z312 = 1/2[z301,z302];
+draw_upcurlstem(301,312);
+draw_downdiamondstem(312,302,wided,widedmin,diawd,diang);
+
+%% left N stem (and N part)
+%%%lft x1=pcshiftx+3st; y1=h;
+x1 = x301 + 3st; y1 = h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+%%draw_upcurlstem(1,12);
+%%draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+pickup quill;
+%% finish off the left part
+x3011 = 1/2[x301,x1]; top y3011 = h;
+z3123 = (x301,3/4h); z123 = (x1,y3123);
+draw z3123--z3011--z123--z12;
+%% vertical decorations
+  %% left part
+z402 = 2/3[z302b,z302c];
+x401 = x402; z401 = whatever[z3123,z3011];
+  %% right part
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+%% angled decorations
+  %% left part
+z406 = z13;
+x405 = x402; (z406-z405) = whatever*pdir;
+z407 = (x405, y405-angdec); z408 = (x406, y406-angdec);
+  %% right part
+z105 = (x102,y405);
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z401--z402;
+draw z405--z406; draw z407--z408;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,101,102,105,106,107,108,301,302,100);
+endchar; % end "M"
+
+cmchar "TGOTH letter N";
+beginchar("N", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "TGOTH letter O";
+beginchar("O", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "TGOTH letter P";
+beginchar("P", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% vertical decoration
+z1tr = (rt x1, top y1);
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+pickup quill;
+%% bowl
+lft x22 = x101; top y22 = h;
+x21 = x1; (z22-z21) = whatever*pdir;
+rt x24 = w - pcshiftx; y24 = 1/2h;
+x25 = 1/2[x22,x24]; bot y25 = 0;
+pth1 := z21--z22{down}..{down}z24..{-pdir}z25;
+z31 = z25;
+lft x33 = pcshiftx; bot y33 = 0;
+pth2 := z33{pdir}..{right}z31;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1; draw pth2;
+%% angled decoration
+x105 = x101; y105 = 1/3h;
+x185 = 2w;
+(z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105,y105-angdec);
+x187 = x185; y107 - y105 = y187 - y185;
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "TGOTH letter Q";
+beginchar("Q", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-stem_width; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% tail
+pth2 := z1..z4..z3;
+z11 = directionpoint pdir of pth2;
+rt x13 = w-pcshiftx; bot y13 = 0;
+pth3 := z11{pdir}..{pdir}z13;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1; draw pth3;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "Q"
+
+cmchar "TGOTH letter R";
+beginchar("R", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h;                 % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;                        % upper bowl
+draw pth2;                        % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "R"
+
+cmchar "TGOTH letter S";
+beginchar("S", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+pickup threequarterquill;
+%% top
+n1 := 1;
+lft x1 = pcshiftx + n1*st; top y1 = h;
+rt x3 = w - pcshiftx; y3 = y1;
+x2 = 1/2[x1,x3]; top y2 = y1;
+pth1 := z1..z2..{pdir}z3;
+draw pth1;
+%% bottom
+lft x4 = pcshiftx; bot y4 = 0;
+rt x6 = w -pcshiftx - n1*st; y6 = y4;
+x5 = 1/2[x4,x6]; bot y5 = y4;
+pth2 := z4{pdir}..z5..z6;
+draw pth2;
+%% top path
+z100 = (1/2w, 1/2h);
+z11 = z1; z15 = z6;
+x13 = x100; y13 = y100 + st;
+pth3 := z11..{right}z13{right}..z15;
+draw pth3;
+%% bottom path
+z21 = z11; z25 = z6;
+x23 = x100; y100 - y23 = y13 - y100;
+pth4 := z21..{right}z23{right}..z25;
+draw pth4;
+%% decorations
+  %% top
+z101 = (x2+angdec,y2); y181 = 0; (z101-z181) = whatever*pdir;
+z102 = (z101--z181) intersectionpoint pth3;
+z103 = (x101-angdec, y101); x183-x181 = x103-x101; y183 = 0;
+z104 = (z103--z183) intersectionpoint pth3;
+  %% bottom
+z201 = (x5,y5); y281 = h; (z201-z281) = whatever*pdir;
+z202 = (z201--z281) intersectionpoint pth4;
+z203 = (x201-angdec, y201); x283-x281 = x203-x201; y283 = h;
+z204 = (z203--z283) intersectionpoint pth4;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z201--z202; draw z203--z204;
+
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100,101,102,103,104,201,202,203,204);
+endchar; % end "S"
+
+cmchar "TGOTH letter T";
+beginchar("T", 2cap_sb#+hstretch*((7)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w;     % width of bowl
+n2 := h;     % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%%pth2 := z3..z4{down}..z5{right}..z6{pdir};
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+%%z102 = z191--z181 intersectionpoint pth2;   %%% ???? NO INTERSECTION!!!!!!
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;             %% bar
+draw pth2;             %% bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "T"
+
+cmchar "TGOTH letter U";
+beginchar("U", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+rt x9 = lft x3; bot y9 = 0;
+pth1 := z7{pdir}..{pdir}z9;
+draw pth1;
+%% stem bottoms
+z2 = (z1 -- (x1,-h)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y9;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "TGOTH letter V";
+beginchar("V", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + 3st; y1 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = w/2; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+z6 = z9;
+rt x5 = w - pcshiftx; top y5 = 3/4h;
+x3 = 1/2[rt x1, lft x5];
+x4 = 1/2[x3,x5]; top y4 = h;
+y3 = 1/2[y4,y5];
+pth2 := z6{pdir}..{up}z5..{left}z4..{-pdir}z3;
+draw pth2;
+pth3 := pth1 & pth2;
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth3;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "TGOTH letter W";
+beginchar("W", 2cap_sb#+hstretch*((12)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top of stems
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x999 = w - pcshiftx;
+x3 = 1/2[x1,x999]; y3 = h;
+%% bowl bottoms
+x21 = x1 - 3/2st; bot y21 = 0;
+rt x23 = lft x3; bot y23 = 0;
+pth1 := z21{pdir}..z23;
+draw pth1;
+lft x31 = rt x23; bot y31 = top y23;
+x33 = 1/2[x31,x999]; bot y33 = 0;
+pth2 := z31{pdir}..z33;
+draw pth2;
+%% bottom of stems
+z2 = (z1--(x1,0)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y23;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% right V stem
+z16 = z33;
+x15 = x999; top y15 = 3/4h;
+x13 = 1/2[rt x3, lft x15];
+x14 = 1/2[x13,x15]; top y14 = h;
+y13 = 1/2[y14,y15];
+pth3 = z16{pdir}..{up}z15..{left}z14..{-pdir}z13;
+draw pth3;
+%% decorations
+z1tr = (rt x1, top y1);
+z3tr = (rt x3, top y3);
+pickup stylus;
+%% for U
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%% for V
+
+x301 = x3tr+2/3wided*st; top y301 = y3e;
+z381 = (x301,-w);
+z302 = (z301--z381) intersectionpoint pth2;
+draw z3e--z301--z302;
+x305 = x301; y305 = 1/3[y302,y301];
+x385 = 2w; (z385-z305) = whatever*pdir;
+z306 = (z305--z385) intersectionpoint pth3;
+z307 = (x305, y305-angdec);
+x387 = x385; y387-y385 = y307-y305;
+z308 = (z307--z387) intersectionpoint pth3;
+draw z305--z306; draw z307--z308;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "TGOTH letter X";
+beginchar("X", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := cap_sb;
+pickup quill;
+%% center stem
+lft x1 = lft x2 = pcshiftx + 3st;
+y1 = 3/4h; y2 = 1/4h;
+draw z1--z2;
+%% top right
+z21 = z1; top y22 = h; (z22-z21) = whatever*pdir;
+rt x24 = w-pcshiftx; y24 = y21;
+pth1 := z21--z22{-ppdir}..{pdir}z24;
+draw pth1;
+%% bottom right
+z31 = z2;
+rt x33 = w-pcshiftx; bot y33 = 0;
+pth2 := z31{-ppdir}..{pdir}z33;
+draw pth2;
+%% bottom left
+z41 = z2;
+bot y43 = -1/4h; (z41-z43) = whatever*pdir;
+x45 = x43 + st; y45=y43;
+pth3 := z41--z43{-pdir}..{pdir}z45;
+pickup stylus;
+draw pth3;
+pickup quill;
+%% top left
+x11 = x1; y11 = h;
+draw_upcurlstem(11,1);
+%% decoration
+x81 = rt x1;
+pickup stylus;
+x101 = x102 = x81 + 2/3wided*st;
+z101 = whatever[z1,z22];
+z102 = (z101--(x101,0)) intersectionpoint pth2;
+draw z101--z102;
+pickup quill;
+%% middle arms
+z120 = 1/2[z1,z2];
+z51 = z120;
+lft x53 = pcshiftx; top y53 = y51;
+x52 = 1/2[x51,x53]; y52 = y51;
+pth5 := z51--z52{left}..{-pdir}z53;
+draw pth5;
+lft x61 = x101; y61 = y120;
+rt x63 = w-pcshiftx; bot y63 = y61;
+x62 = 1/2[x61,x63]; y62 = y61;
+pth6 := z61--z62{right}..{pdir}z63;
+draw pth6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,51,52,53,61,62,63,101,102,150,60,160,100);
+endchar; % end "X"
+
+cmchar "TGOTH letter Y";
+beginchar("Y", 2cap_sb#+hstretch*((8)*stem_width#),
+               caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = 1/2[x1,x3]; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+x4 = x3; y4 = 0;
+x5 = x4; y5 = -1/4d;
+lft x6 = x9; bot y6 = -d;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+draw z6{pdir}..{up}z5--z4;
+z3cd = 1/2[z3c,z3d];
+pth2 = z5--z3a--z3cd;
+%% fill bowl bottom
+x91 = x3; (z91-z9) = whatever*pdir;
+draw z9--z91;
+
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth1;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100,101,102,181);
+endchar; % end "Y"
+
+cmchar "TGOTH letter Z";
+beginchar("Z", 2cap_sb#+hstretch*((5)*stem_width#),
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx-perpdec;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+x102 = rt x2; y102 = top y2; x202 = x102+perpdec; y202=y102;
+%% bottom bar ends
+bot y34 = 0;
+x3=x1+perpdec; rt x4= w-pcshiftx;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+x203 = lft x3; y203 = bot y3; x103 = x203-perpdec; y103=y203;
+%% centre bar
+z5 = (x1,1/2[y1,y3]); z6 = (x4,1/2[y2,y4]); z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2;            %  bars
+draw pth3;
+%% decorations
+pickup stylus;
+draw z102--z103; draw z202--z203;
+unfill z102--z103--z203--z202--cycle;
+draw z102--z103; draw z202--z203;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+


Property changes on: trunk/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb10.tfm
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb10.tfm
===================================================================
--- trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb10.tfm	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb10.tfm	2018-01-30 00:25:16 UTC (rev 46480)

Property changes on: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb10.tfm
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb17.tfm
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb17.tfm
===================================================================
--- trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb17.tfm	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb17.tfm	2018-01-30 00:25:16 UTC (rev 46480)

Property changes on: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothb17.tfm
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr10.tfm
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr10.tfm
===================================================================
--- trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr10.tfm	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr10.tfm	2018-01-30 00:25:16 UTC (rev 46480)

Property changes on: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr10.tfm
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr17.tfm
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr17.tfm
===================================================================
--- trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr17.tfm	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr17.tfm	2018-01-30 00:25:16 UTC (rev 46480)

Property changes on: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr17.tfm
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr7.tfm
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr7.tfm
===================================================================
--- trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr7.tfm	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr7.tfm	2018-01-30 00:25:16 UTC (rev 46480)

Property changes on: trunk/Master/texmf-dist/fonts/tfm/public/bookhands/tgothr7.tfm
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.dtx
===================================================================
--- trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.dtx	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,5402 @@
+% \iffalse meta-comment
+%
+% tgothic.dtx
+% Copyright 1999 Peter R. Wilson
+%
+% This program is provided under the terms of the
+% LaTeX Project Public License distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt.
+%
+% Author: Peter Wilson (CUA) (now at: peter.r.wilson at boeing.com)
+% 
+% If you do not have the docmfp package (available from CTAN in
+% tex-archive/macros/latex/contrib/supported), comment out the
+% \usepackage{docmfp} line below and uncomment the line following it. 
+% 
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{docmfp}
+%%%%%% \providecommand{\DescribeVariable}[1]{} \newenvironment{routine}[1]{}{}
+\EnableCrossrefs
+\CodelineIndex
+%% comment out the next line to show the code
+\OnlyDescription
+\setcounter{StandardModuleDepth}{1}
+\begin{document}
+  \DocInput{tgothic.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{134}
+%
+% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
+% \DoNotIndex{\@centercr,\@cite}
+% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
+% \DoNotIndex{\@input,\@ixpt,\@m}
+% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set at topoint}
+% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
+% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
+% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
+% \DoNotIndex{\advance,\Alph,\alph}
+% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+% \DoNotIndex{\bullet}
+% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
+% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
+% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
+% \DoNotIndex{\EnableCrossrefs,\end,\end at dblfloat,\end at float,\endgroup}
+% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
+% \DoNotIndex{\fbox}
+% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
+% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if at tempswa,\ifcase,\or,\fi,\fi}
+% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
+% \DoNotIndex{\input}
+% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
+% \DoNotIndex{\list,\llap,\long,\m at ne,\m at th,\mark,\markboth,\markright}
+% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+% \DoNotIndex{\NeedsTeXFormat,\newdimen}
+% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
+% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
+% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
+% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset at font}
+% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman}
+% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
+% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
+% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
+% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
+% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
+% \DoNotIndex{\wd,\xiipt,\year,\z@}
+%
+% \changes{v1.0}{2002/12/30}{First public release}
+%
+% \def\fileversion{v1.0}
+% \def\filedate{2002/12/30}
+% \newcommand*{\Lpack}[1]{\textsf {#1}}           ^^A typeset a package
+% \newcommand*{\Lopt}[1]{\textsf {#1}}            ^^A typeset an option
+% \newcommand*{\file}[1]{\texttt {#1}}            ^^A typeset a file
+% \newcommand*{\Lcount}[1]{\textsl {\small#1}}    ^^A typeset a counter
+% \newcommand*{\pstyle}[1]{\textsl {#1}}          ^^A typeset a pagestyle
+% \newcommand*{\Lenv}[1]{\texttt {#1}}            ^^A typeset an environment
+% \newcommand*{\AD}{\textsc{ad}}
+% \newcommand*{\thisfont}{Gothic Textura Quadrata}
+%
+% \title{The \Lpack{Gothic Textura Quadrata} fonts\thanks{This
+%        file has version number \fileversion, last revised
+%        \filedate.}}
+%
+% \author{%
+% Peter Wilson\\
+% Catholic University of America \\
+% Now at \texttt{peter.r.wilson at boeing.com}
+% }
+% \date{\filedate}
+% \maketitle
+% \begin{abstract}
+%    The \Lpack{tgothic} and \Lpack{alltgoth} packages provide a set of 
+% Metafont \thisfont{} book-hands 
+% as used
+% for manuscripts in the 13th to the 15th century. This is one in a series
+% of manuscript fonts.
+% \end{abstract}
+% \tableofcontents
+% \listoftables
+%
+%
+% 
+%
+% \section{Introduction}
+%
+%    The \Lpack{tgothic} and \Lpack{alltgoth} packages provide a Metafont~\cite{METAFONT} version
+% of the \thisfont{} manuscript book-hand that was in use between about the
+% thirteenth and fifteenth centuries~\AD. It is part of a project to provide fonts
+% covering the major manuscript hands between the first century~\AD{} and
+% the invention of printing. The principal resources used in this project
+% are listed in the Bibliography.
+%
+% This manual is typeset according to the conventions of the
+% \LaTeX{} \textsc{docstrip} utility which enables the automatic
+% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}.
+% The \Lpack{docmfp} package is used for documenting the Metafont portions
+% of the distribution~\cite{DOCMFP}.
+%
+%    Section~\ref{sec:usc} describes the usage of the package.
+% Commented code for the fonts is in Sections~\ref{sec:mf} and~\ref{sec:fd}
+% and source code for the package is in Section~\ref{sec:code}.
+%
+% \subsection{Manuscript book-hands}
+%
+% Before the invention of printing all books were written by hand. The book-hands
+% used by the scribes and copyists for the manuscripts changed as time 
+% went on. Table~\ref{tab:1} lists some of the common book-hands which were used
+% between the 1st and 15th centuries. The later book-hands formed the basis of the
+% fonts used by the early printers, which in turn form the basis of the printing
+% fonts in use today.
+%
+%    The manuscript book-hands were written with a broad nibbed reed or quill
+% pen. Among the distinguishing characteristics of a hand, apart from the 
+% actual shape of the letters, are the angle of the pen (which controls the
+% variation between thick and thin strokes) and the height of a letter compared
+% to the width of the nib. The lower the ratio of the letter height to nib
+% width, the more condensed is the script. The scripts also varied in their
+% typical height. 
+%
+%    Table~\ref{tab:1} gives an `average' x-height for each
+% script, which I obtained by measuring a sample of photographs of
+% manuscripts written in the various hands. About a dozen examples
+% of each book-hand were measured. This figure should not be taken too
+% seriously.
+% 
+%    There was not a sharp division between the use of one hand and another.
+% Many manuscripts exhibit a variety of hands in the same document. For example,
+% the scribe writing in an Uncial hand may have used Roman Rustic letters
+% for capitals. Usually the same pen was used for the two different scripts.
+%
+%    Generally speaking, as a hand got older it became more embelished, and 
+% therefore took longer to write. As this happened a new hand would appear that
+% was faster, and which would eventually make the earlier one obsolete.
+%
+%    Many of the book-hands were single-cased; that is, they did not have an
+% upper- and lower-case as we do nowadays in Western scripts. On the other
+% hand, a script might be majuscule or minuscule. A \textit{majuscule} script
+% is one, like our upper-case, where the letters are drawn between two lines
+% and are of a uniform height with no ascenders or descenders. 
+% A \textit{minuscule} script, like our lower-case, is drawn between four lines 
+% and has ascenders and  descenders.
+%
+% \begin{table}
+% \centering
+% \caption{The main manuscript book-hands} \label{tab:1}
+% \begin{tabular}{lccccc} \hline
+% Name                  & Century  & x-height & Height     & Pen  & Normalised \\
+%                       &          & (mm)   & (nib widths) & angle & height  \\ \hline
+% Roman Rustic          & 1--6     & 5.7    & 4--6         & 45     & 1.90 \\
+% Uncial                & 3--6     & 4.1    & 4--5         & 30     & 1.37 \\
+% Half Uncial           & 3--9     & 3.2    & 3--6         & 20--30 & 1.07 \\
+% Artificial Uncial     & 6--10    & 4.2    & 3--6         & 10     & 1.40 \\
+% Insular majuscule     & 6--9     & 4.2    & 5            & 0--20  & 1.40 \\
+% Insular minuscule     & 6 onward & 4.1    & 5--6         & 45--70 & 1.37 \\
+% Carolingian minuscule & 8--12    & 3.0    & 3--5         & 45     & 1.00 \\
+% Early Gothic          & 11--12   & 3.8    & 4--6         & 20--45 & 1.27 \\
+% Gothic Textura        & 13--15   & 3.9    & 3--5         & 30--45 & 1.30 \\
+% Gothic Prescius       & 13 onward & 3.3   & 4--5         & 45     & 1.10 \\
+% Rotunda               & 13--15   & 3.2    & 4--6         & 30     & 1.07 \\
+% Humanist minuscule    & 14 onward & 3.0   & 4--5         & 30--40 & 1.00 \\ \hline
+% \end{tabular}
+% \end{table}
+%
+%    During the period under consideration arabic numerals were effectively
+% not used. At the beginning they were unknown and even though some knew
+% of them towards the end, the glyphs used for them are not recognisable ---
+% to me they look somewhat like cryllic letters --- and each locality
+% and time had its own highly individualistic rendering. The general rule
+% when using one of these book-hands is to write all numbers using
+% roman numerals.
+%
+%    The Roman alphabet consisted of 23 capital letters --- the J, U and W 
+% were absent. The book-hands initially used both a `u' and a `v' interchangeably
+% but by the 10th century the practice had become to use the `v' before a vowel 
+% and the `u' otherwise. The letter corresponding to the W sound appeared 
+% in England around the 7th century in
+% the form of the runic \textit{wen} character and by about the 11th century
+% the `w' chacter was generally used. The `J' is the newest letter of all, not
+% appearing until about the mid 16th century.
+%
+%    In the first century punctuation was virtually unknown, and typically
+% would not even be any additional space between individual words, never
+% mind denoting ends of sentences. Sometimes a dot at mid-height would be
+% used as a word seperator, or to mark off the end of a paragraph. Effectively
+% a text was a continuous stream of letters. By the time that printing was
+% invented, though, all of our modern punctuation marks were being used.
+%
+%    Among all these manuscript hands, the Carolingian minuscule is the
+% most important as our modern fonts are based on its letter shapes, and it is
+% also at this point in time where the division occured between the black letter
+% scripts as used even today in Germany, and the lighter fonts used elesewhere.
+% The Rotunda and Humanist minuscule hands were developed in Italy and were
+% essentially a rediscovery of the Carolingian minusucle. Guthenberg took the
+% Gothic scripts as the model for his types. Later printers, 
+% such as Nicholas Jenson of Venice,
+% took the Humanist scripts as their models.
+%
+%
+% \subsection{The \thisfont{} script}
+%
+%    With the Gothic hands, used from the thirteenth century, the attention of
+% the scribes moved from the individual letter to the word. The scripts
+% changed to accomodate this interest so the appearance of the letters
+% became subordinate to the overall appearance of the words they formed.
+% Many of the letters appear to be indistinguishable today but the contemporary
+% reading public seemed to have no difficulty.
+%
+%    It was during the heyday of the Gothic scripts that separate capital
+% letters were introduced. Also, as a small concession to legibility,
+% the lowecase `i' acquired a small mark above it. Ligatures were similar
+% to those in Early Gothic. The letter `w' was added to the hand early on
+% and `j' started to appear after 1400, providing the full 26 letter alphabet
+% for the first time.
+%
+%    This font includes both lowercase and (fancy) uppercase letters. Guthenberg
+% used this script as a model.
+%
+% \section{The \Lpack{tgothic} and \Lpack{alltgoth} packages} \label{sec:usc}
+%
+%     The \thisfont{} font family is called |tgoth|. The font is supplied in both
+% OT1 and T1 encodings.
+%
+% \subsection{The \Lpack{tgothic} package}
+%
+%    This is intended for the occasions when some short pieces of text have
+% to be written in \thisfont{} while the majority of the document is in another
+% font. The normal baselineskips are used.
+%
+% \DescribeMacro{\tgothfamily}
+%    The |\tgothfamily| declaration starts typesetting with the \thisfont{} fonts.
+% Use of the \thisfont{} font will continue until either there is another |\...family|
+% declaration or the current group (e.g., environment) is closed.
+%
+% \DescribeMacro{\texttgoth}
+%    The command |\texttgoth{|\meta{text}|}| will typeset \meta{text} using the
+% \thisfont{} fonts.
+%
+% \subsection{The \Lpack{alltgoth} package}
+%
+%
+%    This package is for when the entire document will be typeset with the
+% \thisfont{} font. The baselineskips are set to those appropriate to the
+% book-hand. 
+%
+%    This is a minimalist package. Apart from declaring \thisfont{} to be the
+% default font and setting the baselineskips appropriately, it makes no other
+% alterations. 
+% Vertical spacing
+% before and after section titles and before and after lists, etc., will be
+% too small as the \LaTeX{} design assumes a font comparable in size to
+% normal printing fonts, and the book-hand is much taller.
+% To capture more of the flavour of the time, all numbers
+% should be written using roman numerals. 
+% The \Lpack{romannum} package~\cite{ROMANNUM}
+% can be used so that \LaTeX{} will typeset the numbers that it generates,
+% like sectioning or caption numbers, using roman numerals instead of arabic 
+% digits. 
+%
+% \DescribeMacro{\cmrfamily}
+% \DescribeMacro{\textcmr}
+% \DescribeMacro{\cmssfamily}
+% \DescribeMacro{\textcmss}
+% \DescribeMacro{\cmttfamily}
+% \DescribeMacro{\textcmtt}
+%    The |...family| declarations start typesetting with the Computer Modern Roman
+% (|\cmrfamily|), the Computer Modern Sans (|\cmssfamily|), and the Computer
+% Modern Typewriter (|\cmttfamily|) font families. The |\textcm..{|\meta{text}|}|
+% commands will typeset \meta{text} in the corresponding Computer Modern font.
+%
+%    The \Lpack{alltgoth} package automatically loads the \Lpack{tgothic} package,
+% so its font commands are available if necessary.
+%
+% \StopEventually{
+% \bibliographystyle{alpha}
+% \renewcommand{\refname}{Bibliography}
+% \begin{thebibliography}{GMS94}
+% \addcontentsline{toc}{section}{\refname}
+%
+% \bibitem[And69]{ANDERSON69}
+% Donald M.~Anderson.
+% \newblock {\em The Art of Written Forms: The Theory and Practice of Calligraphy}.
+% \newblock Holt, Rinehart and Winston, 1969.
+%
+% \bibitem[Bol95]{BOLOGNA95}
+% Giulia Bologna.
+% \newblock {\em Illuminated Manuscripts: The Book before Gutenberg}.
+% \newblock Crescent Books, 1995.
+%
+% \bibitem[Day95]{DAY95}
+% Lewis F.~Day.
+% \newblock {\em Alphabets Old \& New}.
+% \newblock (3rd edition originally published by B.~T.~Batsford, 1910) 
+% \newblock Senate, 1995.
+%
+% \bibitem[Dro80]{DROGIN80}
+% Marc Drogin.
+% \newblock {\em Medieval Calligraphy: Its History and Technique}.
+% \newblock Allenheld, Osmun \& Co., 1980.
+%
+% \bibitem[Dru95]{DRUCKER95}
+% Johanna Drucker.
+% \newblock {\em The Alphabetic Labyrinth}.
+% \newblock Thames \& Hudson, 1995.
+%
+% \bibitem[Fir93]{FIRMAGE93}
+% Richard A.~Firmage.
+% \newblock {\em The Alphabet Abecedarium}.
+% \newblock David R~Goodine, 1993.
+%
+% \bibitem[Fli98]{LETTRINE}
+% Daniel Flipo.
+% \newblock {\em The LETTRINE package}.
+% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
+% \newblock 1998.
+%
+% \bibitem[Har95]{HARRIS95}
+% David Harris.
+% \newblock {\em The Art of Calligraphy}.
+% \newblock DK Publishing, 1995.
+%
+% \bibitem[Jen95]{BETON}
+% Frank Jensen.
+% \newblock {\em The BETON package}.
+% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
+% \newblock 1995.
+%
+% \bibitem[Joh71]{JOHNSTON75}
+% Edward Johnston (ed. Heather Child).
+% \newblock {\em Formal Penship and Other Papers}.
+% \newblock Penthalic, 1971.
+%
+% \bibitem[Knu87]{CM}
+% Donald E.~Knuth.
+% \newblock {\em Computer Modern Typefaces}.
+% \newblock Addison-Wesley, 1987.
+%
+% \bibitem[Knu92]{METAFONT}
+% Donald E.~Knuth.
+% \newblock {\em The METAFONTbook}.
+% \newblock Addison-Wesley, 1992.
+%
+% \bibitem[GMS94]{GOOSSENS94}
+% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+% \newblock {\em The LaTeX Companion}.
+% \newblock Addison-Wesley Publishing Company, 1994.
+%
+% \bibitem[Tho75]{THOMAS75}
+% Alan G.~Thomas.
+% \newblock {\em Great Books and Book Collectors}.
+% \newblock Weidenfield and Nichoson, 1975.
+%
+% \bibitem[Wil99]{DOCMFP}
+% Peter R.~Wilson.
+% \newblock {\em The DOCMFP Package}.
+% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
+% \newblock 1999.
+%
+% \bibitem[Wil99b]{ROMANNUM}
+% Peter R.~Wilson.
+% \newblock {\em The ROMANNUM Package}.
+% \newblock (Available from CTAN in \texttt{macros/latex/contrib/supported}). 
+% \newblock 1999.
+%
+% \end{thebibliography}
+% }
+%
+% \section{The Metafont code} \label{sec:mf}
+%
+%
+%    As previously noted, this work is part of a larger project to provide
+% fonts covering the main manuscript book-hands. As such, one of the
+% aims is to produce a coordinated set of fonts, especially as multiple
+% hands might be used in a single document. 
+%
+%    Noting that the hands tend to be somewhat larger than the typical 10pt
+% size (where the x-height is approximately 1.5mm) used for modern books, 
+% I have also designed the fonts
+% at a larger than normal size, then applied some non-linear factors when reducing
+% them down to a 10pt size.
+%    Further, I have used the height of the Carolingian minuscule as a 
+% normalising factor when deciding on the absolute height of any particular
+% script. The x-height of the Carolingian font is made equal to the
+% x-height of the Computer Modern Roman (CMR) font.
+%
+%    Modern fonts are effectively drawn. That is, the outline of the letter is
+% drawn carefully and the center is filled with ink. This is shown to good
+% effect in the Metafont code for the Computer Modern fonts~\cite{CM}.
+% In contrast, the manuscript letters were inked by single pen strokes in
+% a calligraphic manner. I have tried to repeat this calligraphic style
+% in the Metafont code.
+%
+%    As much as possible I have tried to use parameter values from the
+% Computer Modern Roman (CMR) fonts in order to reduce possible
+% infelicities if the CM and manuscript fonts are used together. However,
+% few of the CMR parameters are applicable to the calligraphic style.
+%
+%
+% \subsection{The parameter file}
+%
+%    We deal with the parameter files first, and start by announcing
+% what they are for. The \thisfont{} font comes in three sizes and also as a normal
+% and a bold font.
+%    \begin{macrocode}
+%<*base7|base10|base17|base7b|base10b|base17b>
+%<base7>%%% TGOTH7.MF    Gothic Textura Quadrata at 7 point design size.
+%<base10>%%% TGOTH10.MF  Gothic Textura Quadrata at 10 point design size.
+%<base17>%%% TGOTH17.MF  Gothic Textura Quadrata at 17 point design size.
+%<base7b>%%% TGOTHB7.MF    Gothic Textura Quadrata Bold at 7 point design size.
+%<base10b>%%% TGOTHB10.MF  Gothic Textura Quadrata Bold at 10 point design size.
+%<base17b>%%% TGOTHB17.MF  Gothic Textura Quadrata Bold at 17 point design size.
+%
+%    \end{macrocode}
+%    Parameters from CMR are used as much as possible. We also
+% make sure that \Lpack{cmbase} is loaded as well as plain Metafont.
+%    \begin{macrocode}
+if unknown cmbase: input cmbase fi
+
+%<base7>font_identifier:="TGOTH"; font_size 7pt#;
+%<base10>font_identifier:="TGOTH"; font_size 10pt#;
+%<base17>font_identifier:="TGOTH"; font_size 17.28pt#;
+%<base7b>font_identifier:="TGOTHB"; font_size 7pt#;
+%<base10b>font_identifier:="TGOTHB"; font_size 10pt#;
+%<base17b>font_identifier:="TGOTHB"; font_size 17.28pt#;
+
+%    \end{macrocode}
+%
+% \DescribeVariable{jutstretch}
+%    The CMR scaling for lowercase serifs wrt 17pt size.
+%    \begin{macrocode}
+%<base7|base7b> jutstretch:=1.19; 
+%<base10|base10b> jutstretch:=1.152; 
+%<base17|base17b> jutstretch:=1.0;
+%    \end{macrocode}
+%
+% \DescribeVariable{stemstretch}
+%    The CMR scaling for lowercase stem widths wrt 17pt size.
+%    \begin{macrocode}
+%<base7|base7b> stemstretch:=1.50;
+%<base10|base10b> stemstretch:=1.31;
+%<base17|base17b> stemstretch:=1.0;
+%    \end{macrocode}
+%
+% \DescribeVariable{caprat}
+%    The scaling for capitals wrt lowercase. 
+% (the ratio for CMR10 is 1.59).
+%    \begin{macrocode}
+ caprat:=7/5;          % ratio of capital height to minuscule height
+%    \end{macrocode}
+%
+% \DescribeVariable{cap_jutstretch}
+%    The CMR scaling for uppercase serifs wrt 17pt size.
+%    \begin{macrocode}
+%<base7|base7b> cap_jutstretch:=1.3;   
+%<base10|base10b> cap_jutstretch:=1.2;   
+%<base17|base17b> cap_jutstretch:=1.0;   
+%    \end{macrocode}
+%
+% \DescribeVariable{cap_stemstretch}
+%    The CMR scaling for uppercase stem width wrt 17pt size.
+%    \begin{macrocode}
+%<base7|base7b> cap_stemstretch:=1.45;  
+%<base10|base10b> cap_stemstretch:=1.31;  
+%<base17|base17b> cap_stemstretch:=1.0;  
+%    \end{macrocode}
+%
+% \DescribeVariable{bfudge}
+%    Letter width scaling for bold font wrt normal font. We don't really
+% need to change this for bold fonts as the letter width is in terms
+% of the pen, not the x-height.
+% 
+%    \begin{macrocode}
+%<base7|base10|base17> bfudge:=1.0;
+%<base7b|base10b|base17b> bfudge:=1.0;  %% normally 1.2
+%    \end{macrocode}
+%
+% \DescribeVariable{szfudge}
+%    Width scaling wrt 17pt letter width.
+%    \begin{macrocode}
+%<base7|base7b> szfudge:=1.18; 
+%<base10|base10b> szfudge:=1.0; 
+%<base17|base17b> szfudge:=1.0; 
+%    \end{macrocode}
+%
+% \DescribeVariable{hstretch}
+%    Horizontal stretching factor wrt 17pt size letter width.
+%    \begin{macrocode}
+ hstretch:=szfudge*bfudge;
+%    \end{macrocode}
+%
+% \DescribeVariable{carol_height}
+%    The x-height of the Carolingian gothic font.
+%    \begin{macrocode}
+%<base7|base7b> carol_height#:=108.5/36pt#; 
+%<base10|base10b> carol_height#:=155/36pt#; 
+%<base17|base17b> carol_height#:=268/36pt#; 
+%    \end{macrocode}
+%
+% \DescribeVariable{vstretch}
+%    The height of this font wrt the Carolingian font.
+%    \begin{macrocode}
+ vstretch:=1.3;   
+
+%    \end{macrocode}
+%
+% \DescribeVariable{x_height} 
+%    The x-height of lower case letters. Scaled from the Carolingian font.
+%    \begin{macrocode}
+ x_height#:=vstretch*carol_height#; 
+%    \end{macrocode}
+%
+% \DescribeVariable{u}
+%    The unit width. The CMR values are used.
+%    \begin{macrocode}
+%<base7> u#:=15.5/36pt#;  
+%<base10> u#:=20/36pt#;  
+%<base17> u#:=32.5/36pt#;  
+%<base7b> u#:=17.9/36pt#;  
+%<base10b> u#:=23/36pt#;  
+%<base17b> u#:=37/36pt#;  
+%    \end{macrocode}
+%
+% \DescribeVariable{width_adj}
+% \DescribeVariable{serif_fit}
+% \DescribeVariable{cap_serif_fit}
+% \DescribeVariable{letter_fit}
+%    The majority of these parameters and values are constant.
+% They are for fine adjustements of characters. The CM values are used.
+%    \begin{macrocode}
+ width_adj#:=0pt#;         % width adjustment for certain characters
+ serif_fit#:=0pt#;         % extra sidebar near lowercase serifs
+%<base7|base7b> cap_serif_fit#:=3.5/36pt#;  % extra sidebar near uppercase serifs
+%<base10|base10b> cap_serif_fit#:=5/36pt#;  % extra sidebar near uppercase serifs
+%<base17|base17b> cap_serif_fit#:=8/36pt#;  % extra sidebar near uppercase serifs
+%<base7|base7b> letter_fit#:=0pt#;        % extra space added to all sidebars
+%<base10|base10b> letter_fit#:=0pt#;        % extra space added to all sidebars
+%<base17|base17b> letter_fit#:=-0.1pt#;        % extra space added to all sidebars
+%    \end{macrocode}
+%
+% \DescribeVariable{sb}
+%    A length used for adjusting the side bearings of characters. Normally
+% |1/2u| but want it less (1/2) for a Gothic.
+%    \begin{macrocode}
+%<base7|base7b> sb#:=1/4u#;                   % unit for side bearings
+%<base10|base10b> sb#:=1/4u#;                 % unit for side bearings
+%<base17|base17b> sb#:=1/4u#;                 % unit for side bearings
+
+%    \end{macrocode}
+%
+% \DescribeVariable{cap_sb}
+%    A length used for adjusting the side bearings of uppercase characters.
+%    \begin{macrocode}
+%<base7|base7b> cap_sb#:=2sb#;           % unit for uppercase side bearings
+%<base10|base10b> cap_sb#:=2sb#;         % unit for uppercase side bearings
+%<base17|base17b> cap_sb#:=2sb#;         % unit for uppercase side bearings
+
+%    \end{macrocode}
+%
+% \DescribeVariable{cap_height} 
+%    The height of capital letters.
+%    \begin{macrocode}
+%<base7|base7b> cap_height#:=172.2/36pt#;        % height of caps
+%<base10|base10b> cap_height#:=246/36pt#;        % height of caps
+%<base17|base17b> cap_height#:=425/36pt#;        % height of caps
+%    \end{macrocode}
+%
+% \DescribeVariable{thickfudge}
+%    The reciprocal of the font height in nib widths. Normal font height
+% is 5 nib widths and the bold font height is 4 nib widths.
+%    \begin{macrocode}
+%<base7|base10|base17> thickfudge:=1/5;     
+%<base7b|base10b|base17b> thickfudge:=1/4;     
+%    \end{macrocode}
+%
+% \DescribeVariable{thinfudge}
+%    The nib sharpness.
+%    \begin{macrocode}
+thinfudge:=1/6;      
+%    \end{macrocode}
+%
+% \DescribeVariable{thick}
+%    The maximum nib width. 
+% That is, the width of the thickest line that can be penned.
+%    \begin{macrocode}
+thick#:=stemstretch*thickfudge*x_height#;    % max pen breadth
+%    \end{macrocode}
+%
+% \DescribeVariable{thin}
+%    The nib thinness. 
+% That is, the width of the thinnest line that can be penned.
+%    \begin{macrocode}
+thin#:=thinfudge*thick#;  
+%    \end{macrocode}
+%
+% \DescribeVariable{pangle}
+%  The pen angle (in degrees).
+%    \begin{macrocode} 
+pangle:=45;                  % pen angle
+%    \end{macrocode}
+%
+% \DescribeVariable{stem_width}
+%   The width of a vertical stem.
+%    \begin{macrocode}
+stem_width#:= thick#*(cosd pangle);
+%    \end{macrocode}
+%
+% \DescribeVariable{perpdec}
+% \DescribeVariable{angdec}
+% The perpendicular shift between pairs of thin decorative lines in capitals
+% is |perpdec| and between angled lines is |angdec|.
+%    \begin{macrocode}
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+%    \end{macrocode}
+%
+%
+% \DescribeVariable{ascratio}
+%    The height of lower case ascenders wrt |x_height|.
+%    \begin{macrocode}
+  ascratio:=5/4;
+%    \end{macrocode}
+%
+% \DescribeVariable{asc_height} 
+%    The height of lower case ascenders.
+%    \begin{macrocode}
+  asc_height#:=ascratio*x_height#;
+%    \end{macrocode}
+%
+% \DescribeVariable{descratio}
+%    The depth of lower case descenders wrt |x_height|.
+%    \begin{macrocode}
+  descratio:=2/4;
+%    \end{macrocode}
+%
+% \DescribeVariable{desc_depth} 
+%    The depth of lower case descenders.
+%    \begin{macrocode}
+  desc_depth#:=descratio*x_height#;
+%    \end{macrocode}
+%
+% \DescribeVariable{body_height} 
+%    The height of the tallest character.
+%    \begin{macrocode}
+ body_height#:=caprat*asc_height#;    
+%    \end{macrocode}
+%
+% \DescribeVariable{body_depth} 
+%    The depth of the lowest character.
+%    \begin{macrocode}
+ body_depth#:=caprat*desc_depth#;    
+%    \end{macrocode}
+%
+% \DescribeVariable{half_height} 
+%    Half the normal letter height.
+%    \begin{macrocode}
+ half_height#:=1/2x_height#;    % half the height of x height letters
+
+%    \end{macrocode}
+%
+% \DescribeVariable{side}
+%    We might be using a square for the character design.
+%    \begin{macrocode}
+side#:=x_height#;     
+%    \end{macrocode}
+%
+% \DescribeVariable{rule_thickness}
+%    Thickness of rules (in math symbols). The CMR values are used.
+%    \begin{macrocode}
+%<base7|base7b> rule_thickness#:=.34pt#; 
+%<base10|base10b> rule_thickness#:=.4pt#; 
+%<base17|base17b> rule_thickness#:=.6pt#; 
+
+%    \end{macrocode}
+%
+% \DescribeVariable{jutfudge}
+%    Controls the protrusion of serifs.
+%    \begin{macrocode}
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+%    \end{macrocode}
+%
+% \DescribeVariable{jut} 
+%    The lowercase serif protrusion.
+%    \begin{macrocode}
+jut#:=jutstretch*jutfudge*thick#; 
+%    \end{macrocode}
+%
+% \DescribeVariable{srad}
+%    |srad| with |0 < srad < 1| controls the serif radius.
+%    \begin{macrocode}
+srad:=0.8;   % was 0.5
+%    \end{macrocode}
+%
+% \DescribeVariable{trijut}
+%    The lowercase triangular serif protrusion.
+%    \begin{macrocode}
+trijut#:=0.75jutstretch*thick#;
+%    \end{macrocode}
+%
+% \DescribeVariable{clubjutfudge}
+%    The fractional protusion of a club serif.
+%    \begin{macrocode}
+clubjutfudge:=1/2;
+%    \end{macrocode}
+%
+% \DescribeVariable{clubjut}
+%    The lowercase club serif protrusion.
+%    \begin{macrocode}
+clubjut#:=jutstretch*clubjutfudge*thick#;
+%    \end{macrocode}
+%
+% \DescribeVariable{wided}
+% \DescribeVariable{widedmin}
+%  Default juts of wide (touching) diamonds.
+%    \begin{macrocode}
+wided:= 0.75;
+widedmin := 1.05 - wided;
+%    \end{macrocode}
+%
+% \DescribeVariable{narrowd}
+% \DescribeVariable{narrowdmin}
+%  Default juts of narrow (non-touching) diamonds.
+%    \begin{macrocode}
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+%    \end{macrocode}
+%
+% \DescribeVariable{diawd}
+% \DescribeVariable{diang}
+%  Default width and angle of diamonds.
+%    \begin{macrocode}
+diawd := 1.0;
+diang := 30;
+%    \end{macrocode}
+%
+% \DescribeVariable{fig_height} 
+%    The height of numerals. Make these midway between normal and capital
+% letters.
+%    \begin{macrocode}
+  fig_height#:=(0.5[1,caprat])*x_height#;
+%    \end{macrocode}
+%
+% \DescribeVariable{fig_width} 
+%    The width of numerals. All numerals are the same width (roughly, an `o').
+%    \begin{macrocode}
+  fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+%    \end{macrocode}
+%
+%
+%
+% \DescribeVariable{o}
+%    Amount of overshoot for curves (as in an `o'). Use CMR values.
+%    \begin{macrocode} 
+%<base7|base7b> o#:=5/36pt#;   
+%<base10|base10b> o#:=8/36pt#;   
+%<base17|base17b> o#:=10/36pt#;   
+
+%    \end{macrocode}
+%
+% \DescribeVariable{slant}
+% |slant| is the amount the font slopes to the right. \\
+% 5 degrees = 9/100; 10 degrees = 11/50.
+%    \begin{macrocode}
+slant:=0;      % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10;  %% 10 degree slant
+
+%    \end{macrocode}
+% 
+% \DescribeVariable{monospace} 
+%    We are generating a variable-width font.
+%    \begin{macrocode}
+monospace:=false;    % should all characters have the same width?
+
+%    \end{macrocode}
+%
+% \DescribeVariable{dot_size}
+%    The size of (punctuation) dots.
+%    \begin{macrocode}
+dot_size#:=5thin#;   % size of dots
+%    \end{macrocode}
+%
+% \DescribeVariable{comma_width}
+%    The horizontal width of a comma.
+%    \begin{macrocode}
+comma_width#:=5/4dot_size#; 
+
+%    \end{macrocode}
+%
+%    Finally, call the driver file for the font.
+%    \begin{macrocode} 
+generate tgothtitle      %% switch to the driver file
+
+%    \end{macrocode}
+%
+%    The end of this code section.
+%    \begin{macrocode}
+%</base7|base10|base17|base7b|base10b|base17b>
+%    \end{macrocode}
+%
+%
+% \subsection{The driver file}
+%
+%    The driver file sets up the font parameters and also contains
+% the macros used in the definition of the characters.
+%
+%    \begin{macrocode}
+%<*mfd>
+% This is TGOTHTITLE.MF for the Gothic Textura Quadrata font.
+% This makes a short font.
+% This file also contains special macros universally needed in the 
+% font but either not in the cmbase.mf file or modifications of these.
+%
+%    \end{macrocode}
+%
+% \begin{routine}{makebox}
+%    This is a new version of the \Lpack{cmbase.mf} |makebox| macro.
+% Essentially, as we are only generating a single case font, we don't
+% need all the horizontals for the CMR characters.
+%
+%    \begin{macrocode}
+% A new version of cmbase.mf makebox macro
+def makebox(text rule) =
+  for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+    rule((l,y)t_,(r,y)t_); endfor  % horizontals
+  for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+  for x=u*(1+floor(1/u)) step u until r-1:
+    rule((x,-body_depth)t_,(x,body_height)t_); endfor         % more verticals
+  if charic<>0:
+    rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi  % italic correction
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{proofpcbb}
+%    The macro |proofpcbb(S, xoff, yoff)| draws crosses at the corners of the
+% square, and at the bottom and top midpoints, where the point |zS| is at
+% position |(xoff,yoff)| in the square. 
+%    \begin{macrocode}
+
+% A macro to delineate a letter's bounding square in proof mode.
+% Point z$ is at (xoff,yoff) in the bounding square.
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+  x$bl = x$ - xoff; y$bl = y$ - yoff;         % Bottom Left Hand Corner
+  z$br = (x$bl+side, y$bl);                   % BRHC
+  z$tr = (x$bl+side, y$bl+side);              % TRHC
+  z$tl = (x$bl, y$bl+side);                   % TLHC
+  z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr];  % horizontal mid points
+  pair hc, vc;
+  hc = (2u,0); vc = (0,2u);
+  pickup pensquare scaled 2;
+  for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+    draw s-hc--s+hc;
+    draw s-vc--s+vc;
+  endfor
+fi
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%
+% \begin{routine}{tgothic_font_setup}
+%    This macro contains the set up for the \thisfont{} fonts.
+%    \begin{macrocode}
+ 
+def tgothic_font_setup= % contains special stuff for tgothic fonts
+  define_pixels(side,half_height,carol_height,comma_width);
+  define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+                cap_serif_fit,jut,clubjut,cap_jut,trijut);
+  define_pixels(fig_width);
+  define_whole_pixels(letter_fit,sb,cap_sb);
+  define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+                               desc_depth,body_depth,fig_height);
+  define_corrected_pixels(o);
+  define_blacker_pixels(thick,thin);
+  define_pixels(stem_width);
+  define_pixels(perpdec,angdec);
+  let adjust_fit = normal_adjust_fit;
+%    \end{macrocode}
+% \DescribeVariable{stylus}
+%  The pen for drawing the thinnest lines is |stylus|.
+%    \begin{macrocode}
+  pickup pencircle scaled thin;
+  stylus:=savepen;
+%    \end{macrocode}
+% \DescribeVariable{thickstylus}
+%  The pen for drawing lines a bit thicker than the thinnest is |thickstylus|.
+%    \begin{macrocode}
+  pickup pencircle scaled (1.5thin);
+  thickstylus:=savepen;
+%    \end{macrocode}
+% \DescribeVariable{quill}
+%  The normal calligraphic pen is |quill|.
+%    \begin{macrocode}
+  pickup pencircle xscaled thick yscaled thin rotated pangle;
+  quill:=savepen;
+
+%    \end{macrocode}
+%
+% \DescribeVariable{threequarterquill}
+% A pen with 3/4 of the width as quill (but with the same thinness).
+%    \begin{macrocode}
+  pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+  threequarterquill := savepen;
+
+%    \end{macrocode}
+%
+% \DescribeVariable{halfquill}
+% A pen with 1/2 of the width as quill (but with the same thinness).
+%    \begin{macrocode}
+  pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+  halfquill := savepen;
+
+%    \end{macrocode}
+%
+% \DescribeVariable{quarterquill}
+% A pen with 1/4 of the width as quill (but with the same thinness).
+%    \begin{macrocode}
+  pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+  quarterquill := savepen;
+
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+  numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+  define_pixels(pcshiftx);
+  numeric sqxside#;   % x size of the square
+  numeric sqyside#;   % y size of the square
+  define_pixels(sqxside,sqyside);
+
+enddef; % end of tgothic_font_setup
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \DescribeVariable{ductus}
+% A boolean to control drawing the ductus (TRUE) or the full letter (FALSE).
+%    \begin{macrocode}
+boolean ductus;
+ductus:=false;
+%    \end{macrocode}
+%
+% \DescribeVariable{qhor}
+% \DescribeVariable{qvert}
+% The cosine and sine of the pen angle.
+%    \begin{macrocode}
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+%    \end{macrocode}
+%
+% \DescribeVariable{pdir}
+% The vector corresponding to the pen angle.
+%    \begin{macrocode}
+pair pdir; pdir=dir(pangle);
+%    \end{macrocode}
+%
+% \DescribeVariable{ppdir}
+% The vector that is perpendicular (anticlockwise) to the pen angle.
+%    \begin{macrocode}
+pair ppdir; ppdir=dir(pangle+90);
+%    \end{macrocode}
+%
+% \begin{routine}{draw_upforkstem}
+% A macro to draw a vertical stem with a fork at the top.
+% |draw_upforkstem(1,2)| uses the current pen to draw a vertical line, whose absolute
+% top and bottom are at |z1| and |z2|. The top (|z1|) has a wedge shaped slit.
+%    \begin{macrocode}
+
+def draw_upforkstem(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  x$a=x$; top y$a = bot y$;         % top of straight stem
+  draw z$a--z$$;                    % straight part
+  z$b = (rt x$, y$); z$c = (x$b, top y$a);
+  z$d = (lft x$, bot y$a); z$e = (x$d, y$);
+  pickup stylus;
+  rt x$cc = x$c;  y$cc = y$c;
+  lft x$bb = x$b; y$bb = y$b;
+  lft x$dd = x$d; y$dd = y$d;
+  rt x$ee = x$e;  y$ee = y$e;
+  filldraw z$a--z$bb..z$cc--cycle;    % fork
+  filldraw z$a--z$dd..z$ee--cycle;
+  pickup oldpen;
+  labels($a,$b,$c,$d,$e);
+enddef; % end of draw_upforkstem
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_downforkstem}
+% A macro to draw a vertical stem with a fork at the bottom.
+% |draw_downforkstem(1,2)| uses the current pen to draw a vertical line, whose absolute
+% top and bottom are at |z1| and |z2|. The bottom (|z2|) has a wedge shaped slit.
+%    \begin{macrocode}
+
+def draw_downforkstem(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  x$$a=x$$; bot y$$a = top y$$;         % bottom of straight stem
+  draw z$--z$$a;                        % straight part
+  z$$b = (rt x$$, y$$); z$$c = (x$$b, top y$$a);
+  z$$d = (lft x$$, bot y$$a); z$$e = (x$$d, y$$);
+  pickup stylus;
+  rt x$$cc = x$$c;  y$$cc = y$$c;
+  lft x$$bb = x$$b; y$$bb = y$$b;
+  lft x$$dd = x$$d; y$$dd = y$$d;
+  rt x$$ee = x$$e;  y$$ee = y$$e;
+  filldraw z$$a--z$$bb..z$$cc--cycle;    % fork
+  filldraw z$$a--z$$dd..z$$ee--cycle;
+  pickup oldpen;
+  labels($$a,$$b,$$c,$$d,$$e);
+enddef; % end of draw_downforkstem
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{draw_upcurlstem}
+% A macro to draw a vertical stem with a curl to the left at the top.
+% |draw_upcurlstem(1,2)| uses the current pen to draw a vertical line, whose absolute
+% top and bottom are at |z1| and |z2|. The top (|z1|) has a fancy curl to the left,
+% jutting out 3 stem widths.
+%    \begin{macrocode}
+
+def draw_upcurlstem(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  path curlp[]; numeric curln[];
+  x$a=x$; top y$a = y$;         % top of straight stem
+  draw z$a--z$$;                    % straight part
+  curln1 := rt x$a - lft x$a;       % stem width
+  x$b = x$a - 4/2curln1; y$b = y$a;      % left jut
+  curlp1 := z$a{-pdir}..{left}z$b;
+  draw curlp1;
+
+  x$c = x$a-3curln1; top y$c = bot y$a-1/2curln1;
+  x$f = x$b; y$f = 1/3[y$c,y$b];
+  x$tb = rt x$b; y$tb = top y$b;
+  x$bb = lft x$b; y$bb = bot y$b;
+  curlp2 := z$tb--z$bb..{down}z$c..{ppdir}z$f;
+  pickup stylus;
+  draw curlp2;
+  pickup oldpen;
+  labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_upcurlstem
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_updiamondstem}
+% A macro to draw a vertical stem with a diamond at the top.
+% |draw_updiamondstem(1,2,fr,minfr,wd,ang)| uses the quill pen to draw a vertical line, 
+% whose absolute
+% top and bottom are at |z1| and |z2|. The top (|z1|) has a leftward diamond, whose
+% left jut is |fr| times the width of the stem, right jut is |minfr*stem_width|, width
+% is |wd*stem_width| and angle above the horizontal is |ang|.
+%    \begin{macrocode}
+
+def draw_updiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+  pen oldpen; oldpen:=currentpen;
+  numeric sj; sj := fr*stem_width;             % jut distance
+  numeric sjr; sjr := minfr*stem_width;        % right jut distance
+  numeric jw;  jw := wd*stem_width;            % jut width
+  %% $b is bottom left of jut, on LHS of stem
+  %% $c is leftmost point on jut
+  %% $d is topmost point on jut
+  %% $g is topmost point on stem
+  %% $e is on exprapolation of line from $d through $g
+  %%    i.e., the rightmost point on jut
+  %% $f is on RHS of stem
+  pickup quill;
+  x$b = lft x$;
+  x$c = x$b - sj; y$c = y$ - jw*(cosd phi);    % $c done
+  y$b = y$c - sj*(sind phi);                   % $b done
+  x$d = x$c + jw*(sind phi); y$d = y$;         % $d done
+  x$g = x$f = rt x$;
+  y$g = y$ - (x$g-x$d)*(sind phi)/(cosd phi);  % $g done
+  x$a = x$; top y$a = y$g;                     % $a done
+  x$e = x$g + sjr;  z$e = whatever[z$d,z$g];  % $e done
+  z$f-z$e = whatever*(z$c-z$d);                % $f done
+  x$h = x$b; y$h = bot y$a;
+  draw z$a--z$$;                    % straight part
+  pickup stylus;
+  lft x$cc = x$c; y$cc = y$c;
+  x$dd = x$d; top y$dd = y$d;
+  rt x$ee = x$e; bot y$ee=y$e;
+  filldraw z$b--z$cc--z$dd--z$ee--z$f--cycle;    % diamond
+  if y$b > y$h:
+    lft x$hh = x$h; y$hh=y$h; 
+    filldraw z$b--z$hh--z$g--cycle;
+  fi
+  pickup oldpen;
+  labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_updiamondstem
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{draw_downdiamondstem}
+% A macro to draw a vertical stem with a diamond at the bottom.
+% |draw_downdiamondstem(1,2,fr,minfr,wd,ang)| uses the quill pen to draw a vertical line, 
+% whose absolute
+% top and bottom are at |z1| and |z2|. The bottom (|z2|) has a rightward diamond, whose
+% right jut is |fr| times the width of the stem, left jut is |minfr*stem_width|,
+% width is |wd*stem_width| and is at |ang| degrees below the horizontal.
+%    \begin{macrocode}
+
+def draw_downdiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+  pen oldpen; oldpen:=currentpen;
+  numeric sj; sj := fr*stem_width;              % (left) jut distance
+  numeric sjr; sjr := minfr*stem_width;;        % right jut distance
+  numeric jw;  jw := wd*stem_width;             % jut width
+  %% $$b is top right of jut, on RHS of stem
+  %% $$c is rightmost point on jut
+  %% $$d is bottommost point on jut
+  %% $$g is bottommost point on stem
+  %% $$e is on exprapolation of line from $d through $g
+  %%    i.e., the leftmost point on jut
+  %% $$f is on LHS of stem
+  pickup quill;
+  x$$b = rt x$$;
+  x$$c = x$$b + sj; y$$c = y$$ + jw*(cosd phi);    % $$c done
+  y$$b = y$$c + sj*(sind phi);                     % $$b done
+  x$$d = x$$c - jw*(sind phi); y$$d = y$$;         % $$d done
+  x$$g = x$$f = lft x$$;
+  y$$g = y$$ + (x$$d-x$$g)*(sind phi)/(cosd phi);  % $$g done
+  x$$a = x$$; bot y$$a = y$$g;                     % $$a done
+  x$$e = x$$g - sjr;  z$$e = whatever[z$$d,z$$g];  % $$e done
+  z$$f-z$$e = whatever*(z$$c-z$$d);                % $$f done
+  x$$h = x$$b; y$$h = top y$$a;
+  draw z$--z$$a;                    % straight part
+  pickup stylus;
+  rt x$$cc = x$$c; y$$cc=y$$c;
+  x$$dd = x$$d; bot y$$dd = y$$d;
+  lft x$$ee = x$$e; top y$$ee = y$$e;
+  filldraw z$$b--z$$cc--z$$dd--z$$ee--z$$f--cycle;    % diamond
+  if y$$b < y$$h:
+    rt x$$hh = x$$h; y$$hh=y$$h; 
+    filldraw z$$b--z$$hh--z$$g--cycle;
+  fi
+  pickup oldpen;
+  labels($$a,$$b,$$c,$$d,$$e,$$f);
+enddef; % end of draw_downdiamondstem
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_serif}
+% A macro to draw a serif. |draw_serif(1,2,f)| uses the current pen to
+% draw a serif of extent |jut| at |z1| to the left of the line from |z2| 
+% to |z1|. The
+% radius is controlled by |f|, where $0<f<1$. The `stem' from |z1| to |z2|
+% starts at the point |z1a|.
+%    \begin{macrocode}
+
+def draw_serif(suffix $, $$)(expr fr)=
+  numeric beta, ajut, bjut;
+%    \end{macrocode}
+% |fr| and |beta| control the serif radius.
+%    \begin{macrocode}
+  beta=1-fr;
+  ajut=fr*jut; bjut=beta*jut;
+%    \end{macrocode}
+% The points |$c|, |$b| and |$a| define the serif. For a top (bottom) serif
+% the leftmost (rightmost) point is 
+% |$c| and |$a| is on the stem. |$a| is moved from |$| towards |$$| by the 
+% distance |ajut|, and the other points are calculated from this. If the stem
+% is not vertical, then we have to rotate |$b| to match.
+%    \begin{macrocode}
+  pair vec[]; vec1=unitvector(z$$-z$);
+  vec2=ajut*vec1;
+  z$a=z$ shifted vec2;
+  z$b=z$a rotatedaround (z$,-90);
+  boolean top_serif;
+  if y$>y$$:
+    top_serif := true;
+    z$c=z$b shifted (-bjut*pdir);
+  else:
+    top_serif:=false;
+    z$c=z$b shifted (bjut*pdir);
+  fi
+%    \end{macrocode}
+% Draw the parts, and finish off.
+%    \begin{macrocode}
+  if top_serif:
+    draw z$c--z$b{pdir}..{z$$-z$}z$a;    % the serif
+  else:
+    draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+  fi
+  labels($a,$b,$c);
+enddef; % end of draw_serif
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_roundserif}
+% The |draw_serif| routine can leave a bump at the end of the stem.
+% The |draw_roundserif| routine, which takes the same arguments,
+% is meant to eliminate the bump.
+%    \begin{macrocode}
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+  draw_serif($, $$, fr);
+  undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{draw_flatserif}
+% A macro to draw a serif. |draw_serif(1,2,f)| uses the current pen to
+% draw a serif of extent |jut| at |z1| to the left of the line from |z2| 
+% to |z1|. The
+% radius is controlled by |f|, where $0<f<1$. The `stem' from |z1| to |z2|
+% starts at the point |z1a|. This produces a serif like |draw_serif| except
+% that one side of the seerif is flat.
+%    \begin{macrocode}
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+  numeric beta, ajut, bjut;
+%    \end{macrocode}
+% |fr| and |beta| control the serif radius.
+%    \begin{macrocode}
+  beta=1-fr;
+  ajut=fr*jut; bjut=beta*jut;
+%    \end{macrocode}
+% The points |$c|, |$b| and |$a| define the serif. For a top (bottom) serif
+% the leftmost (rightmost) point is 
+% |$c| and |$a| is on the stem. |$a| is moved from |$| towards |$$| by the 
+% distance |ajut|, and the other points are calculated from this. If the stem
+% is not vertical, then we have to rotate |$b| to match.
+%    \begin{macrocode}
+  pair vec[]; vec1=unitvector(z$$-z$);
+  vec2=ajut*vec1;
+  z$a=z$ shifted vec2;
+%%%  z$b=z$a rotatedaround (z$,-90);
+  boolean top_serif;
+  if y$>y$$:
+    top_serif := true;
+    z$c=z$ shifted (-jut*pdir);
+  else:
+    top_serif:=false;
+    z$c=z$ shifted (jut*pdir);
+  fi
+  z$b = fr[z$,z$c];
+%    \end{macrocode}
+% Draw the parts, and finish off.
+%    \begin{macrocode}
+  draw z$a--z$;
+  if top_serif:
+    draw z$c--z$b{pdir}..{z$$-z$}z$a;    % the serif
+  else:
+    draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+  fi
+  labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{draw_clubserif}
+% A macro to draw a clubbed serif. |draw_clubserif(1,2,f)| uses the current 
+% pen to
+% draw a clubbed serif of extent |clubjut| at |z1| to the left of the line 
+% from |z2| 
+% to |z1|. The serif matches |z1| like the flatserif does and ends at the
+% point |f[z1,z2]|.
+%    \begin{macrocode}
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+  numeric beta, ajut, bjut;
+%    \end{macrocode}
+% |fr| controls the length of the serif.
+%    \begin{macrocode}
+%%  beta=1-fr;
+  ajut=clubjut; bjut=beta*jut;
+%    \end{macrocode}
+% The points |$c|, |$b| and |$a| define the serif. For a top (bottom) serif
+% the leftmost (rightmost) point is 
+% |$c| and |$a| is on the stem, |fr| between |$| and |$$|.
+%    \begin{macrocode}
+  pair vec[]; vec1=unitvector(z$$-z$);
+%%  vec2=ajut*vec1;
+%%  z$a=z$ shifted vec2;
+  boolean top_serif;
+  if y$>y$$:
+    top_serif := true;
+    z$c=z$ shifted (-clubjut*pdir);
+  else:
+    top_serif:=false;
+    z$c=z$ shifted (clubjut*pdir);
+  fi
+  z$a = fr[z$,z$$];
+%    \end{macrocode}
+% Draw the parts, and finish off.
+%    \begin{macrocode}
+  draw z$c..z$a{vec1};
+  labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%
+% \begin{routine}{draw_triserif}
+% A macro to draw a triangular top left serif.
+% |draw_triserif(1,tj)| draws a serif at |z1| with its leftmost x
+% value at |x1-tj|, where it is assumed that the
+% top point on the stem is at |z1| and the stem was drawn with |quill|.
+%    \begin{macrocode}
+
+def draw_triserif(suffix $)(expr tj)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  x$ts1'=lft x$; y$ts1'=bot y$;
+  pickup stylus;
+  lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+  x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+  x$ts3=x$ts1; y$ts3=y$ts2-tj;
+  pickup stylus;
+%%  filldraw z$ts1--z$ts2--z$ts3--cycle;
+  filldraw z$--z$ts2--z$ts3--cycle;
+  pickup oldpen;
+  labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_istem}
+%  A macro to draw the shape of an i. |draw_istem(1,2,f)| draws a stem whose
+% top is at |z1| and bottom at |z2|. It draws with the current pen and the serifs
+% are of extent |jut|. There is a top left and bottom right serif.
+% The serif radius is controlled by |f|, with $0<f<1$.
+%    \begin{macrocode}
+
+def draw_istem(suffix $, $$)(expr fr)=
+  draw_serif($, $$, fr);  % top serif
+  draw_serif($$, $, fr);  % bottom serif
+  draw z$a--z$$a;  % the stem
+enddef; % end of draw_istem
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_tstem}
+%  A macro to draw the shape of the stem of a `t'. |draw_tstem(1,2,f)| draws a 
+% stem whose
+% top is at |z1| and bottom at |z2| with a right serif at |z2|. The radius
+% is controlled by |f|, with $0 < f < 1$.
+% It draws with the current pen and the serif is of extent |jut|.
+% NOTE: for the TGOTH font, just the stem is drawn --- no serif!
+%    \begin{macrocode}
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%%  draw_serif($$, $, fr);  % the serif
+%%  draw z$--z$$a;                      % the stem
+  draw z$--z$$;
+enddef; % end of draw_tstem
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_tlserif}
+%  A macro to draw a top left serif. |draw_tlserif(1,2,f)| draws a serif on top
+% of a stem whose absolute 
+% top is at |z1| and bottom at |z2|. It draws with the current pen and the serif
+% is of extent |jut|. It also draws the stem to the point |z2|. The serif
+% radius is controlled by |f|, with $0<f<1$.
+%    \begin{macrocode}
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+  draw_serif($, $$, fr);  % the serif
+  draw z$a--z$$;                       % the stem
+enddef; % end of draw_tlserif
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{draw_flick}
+%  A macro to draw a flick (like an eyebrow). 
+% |draw_flick(1,rise,fall,fjut)| draws a stroke starting at |z1| rising up by
+% |rise| and falling down by |fall| wrt |z1|. The overall stroke distance is
+% |fjut| to the right of |z1|. It is drawn with the current pen.
+%    \begin{macrocode}
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+%    \end{macrocode}
+% The points |z$a| and |z$b|, together with |z$| make up three points on the
+% ductus.
+%    \begin{macrocode}
+  rt x$b = x1+fjut; top y$b=y$-fall;
+  x$a=0.5[x$,x$b]; top y$a=y$+rise;
+%    \end{macrocode}
+% Draw the part, and finish off.
+%    \begin{macrocode}
+  draw z$..z$a..z$b; 
+  labels($a,$b);
+enddef; % end of draw_flick
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{draw_wave}
+% A macro to draw a (horizontal) stroke with a flick at each end 
+% (down at the left and up at the right). |draw_wave(1,2,f)| uses the current
+% pen to draw from |z1wl| to |z1wr|, where |x1wl=x1|, |y1wl=y1-f|, and
+% |x1wr=x2|, |y1wr=y2+f|, with |z1| assumed to be at the left of |z2|.
+%    \begin{macrocode}
+
+def draw_wave(suffix $,$$)(expr f)=
+  x$wl=x$; y$wl=y$-f;
+  x$wr=x$$; y$wr=y$$+f;
+  z$wc=0.5[z$wl,z$wr];
+  draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+  labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_tail}
+% A macro to draw a tail at the bottom of a (vertical) stem.
+% |draw_tail(1,fjut)| draws a tail at the bottom of the stem which ends at |z1|.
+% The depth is controlled by the |desc_depth| value and the jut by |fjut|.
+%    \begin{macrocode}
+
+def draw_tail(suffix $)(expr fj)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  x$tl' = lft x$; y$tl=bot y$;
+  pickup stylus;
+  lft x$tl=x$tl';
+  x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+  filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+  pickup oldpen;
+  labels($tb,$tl);
+enddef; % end of draw_tail
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_triangle}
+% A macro to draw a downward pointing equilateral triangle.
+% |draw_triangle(1,sz)| draws a triangle of side length |sz| with |z1| in the middle
+% of the base.
+%    \begin{macrocode}
+
+def draw_triangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz/2; x$t3=x$+sz/2;
+  y$t1=y$t3=y$;
+  x$t2=x$; y$t2=y$-0.9sz;   % approx sqrt(3)/2
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_utriangle}
+% A macro to draw an upward pointing equilateral triangle.
+% |draw_utriangle(1,sz)| draws a triangle of side length |sz| with |z1| in the middle
+% of the base.
+%    \begin{macrocode}
+
+def draw_utriangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz/2; x$t3=x$+sz/2;
+  y$t1=y$t3=y$;
+  x$t2=x$; y$t2=y$+0.9sz;   % approx sqrt(3)/2
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_rtriangle}
+% A macro to draw a downward pointing right angled triangle.
+% |draw_rtriangle(1,sz)| draws a triangle of side length |sz| with |z1| at the
+% right (where the right angle is).
+%    \begin{macrocode}
+
+def draw_rtriangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz; rt x$t3=x$;
+  y$t1=y$t3=y$;
+  x$t2=x$t3; y$t2=y$-sz;
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_rutriangle}
+% A macro to draw an upward pointing right angled triangle.
+% |draw_rutriangle(1,sz)| draws a triangle of side length |sz| with |z1| at the
+% right (where the right angle is).
+%    \begin{macrocode}
+
+def draw_rutriangle(suffix $)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup stylus;
+  x$t1=x$-sz; rt x$t3=x$;
+  y$t1=y$t3=y$;
+  x$t2=x$t3; y$t2=y$+sz;
+  filldraw z$t1--z$t2--z$t3--cycle;
+  pickup oldpen;
+  labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_fork}
+% A macro to draw a forked line.
+% |draw_fork(1,2,sz)| draws a graduated line from |z1| to |z2| with a forked
+% end of size |sz|.
+%    \begin{macrocode}
+
+def draw_fork(suffix $, $$)(expr sz)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  x$f1'=lft x$; y$f1'=bot y$;
+  x$f3'=rt x$;  y$f3'=top y$;
+  pickup stylus;
+  lft x$f1=x$f1'; bot y$f1=y$f1';
+  rt x$f3=x$f3';  y$f3-y$=2*(y$-y$f1);
+  rt x$f2=x$$-sz; bot y$f2=y$$;
+  rt x$f4= rt x$f5=x$$;
+  bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+  filldraw z$f1--z$f2--z$f3--cycle;   % the line
+  draw z$f2{right}..z$f4;             % upper fork
+  draw z$f2{right}..z$f5;             % lower fork
+  pickup oldpen;
+  labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_urswish}
+% A macro to draw a line up and to the right with an under curl at the end.
+% |draw_urswish(1,2)| draws from |z1| towards |z2|, which is the max upper right
+% of a bounding box, where the curl is.
+%    \begin{macrocode}
+
+def draw_urswish(suffix $, $$)=
+  pen oldpen; oldpen:=currentpen;
+  pickup quill;
+  rt x$$s1=x$$-thick; top y$$s1=y$$;
+  rt x$$s2=x$$; 
+%%  x$$s3=x$$-thick;
+  lft x$$s3=x$$s1;
+  bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%%  draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+  draw z$..z$$s1{pdir}..z$$s2{down};
+  labels($$s1,$$s2,$$s3); 
+enddef; % end of draw_urswish
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{bowl_stem}
+%  Calculate where a bowl should meet a stem so that the pen is moving in the
+% pen direction.
+% |bowl_stem(1,2)| calculates the point |z1i|, where |z1| is on the bowl and
+% there is a vertical line at |x2|.
+%
+%    \begin{macrocode}
+
+def bowl_stem(suffix $, $$)=
+  x$'=0.5[x$,x$$]; y$'=y$;    % the mid-point
+  z$''=z$' shifted (thick*pdir);
+  x$i=x$$; z$i=whatever[z$',z$''];
+  labels($',$i);
+enddef; % end of bowl_stem
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_clubbase}
+% Draw a clubbed bottom of a vertical stem for the TGOTH font.
+% |draw_clubbase(1, 2, st, left, right)| draws from |st[z2,z1]| to |z2|. 
+% At |z2| the pen
+% is shifted |left| fraction of the pen width and |right| fraction of the
+% pen width, both in the direction of the pen angle. Pen draws smoothly the
+% path |z1|, |left|, |right|, |z1|.
+%    \begin{macrocode}
+
+% draw clubbed bottom of vertical stem for TGOTH font.
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+  z$$l = z$$ shifted (lft*thick*(-pdir));
+  z$$r = z$$ shifted (rt*thick*(pdir));
+  z$$t = st[z$$,z$];
+  draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+  labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_pdot}
+%  A macro to draw a period dot.
+% |draw_pdot(1,sz)| uses |stylus| to draw a dot centered at |z1| of overall size |sz|.
+%    \begin{macrocode}
+
+def draw_pdot(suffix $)(expr sz)=
+%    \end{macrocode}
+% Draw a square rotated 45 degrees.
+%    \begin{macrocode}
+  z$s = z$ shifted (0.5sz*left);
+  z$t = z$ shifted (0.5sz*up);
+  z$u = z$s shifted (sz*right);
+  z$v = z$t shifted (sz*down);
+  pickup stylus;
+  filldraw z$s--z$t--z$u--z$v--cycle;
+  labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_pcomma}
+%  A macro to draw a period comma.
+% |draw_pcomma(1,t,w)| draws a comma placed at |z1| (the top), line width is |t|
+% and bottom of line is |w| horizontally from |z1|. The pen is |stylus|.
+%    \begin{macrocode}
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+%    \end{macrocode}
+% Draw a line of at |z$| of width |sz| sloping back and down 
+% for a total width of |ar| and deptrh of |2ar|.
+%    \begin{macrocode}
+  z$s = z$ shifted (0.5sz*left);
+  z$t = z$s shifted (sz*right);
+  x$v=x$s-ar; y$v=y$s-2ar;
+  z$u = z$v shifted (sz*right);
+  z$sv = (x$s, 1/3[y$s,y$v]);
+  z$tu = (x$t, y$sv);
+  z$uv = 1/3[z$u,z$v];
+  z$vu = 1/3[z$v,z$u];
+  pickup stylus;
+%%  filldraw z$s--z$t--z$u--z$v--cycle;
+  filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+  labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_plq}
+%  A macro to draw a period left quote.
+% |draw_pcomma(1,t,w)| draws a left quote placed at |z1| (the top), line width is |t|
+% and bottom of line is |w| horizontally from |z1|.
+%    \begin{macrocode}
+
+def draw_plq(suffix $)(expr sz, ar)=
+%    \end{macrocode}
+% Draw a line of at |z$| of width |sz| sloping forward and down 
+% for a total width of |ar| and depth |2ar|.
+%    \begin{macrocode}
+  z$s = z$ shifted (0.5sz*left);
+  z$t = z$s shifted (sz*right);
+  x$v=x$s+ar; y$v=y$s-2ar;
+  z$u = z$v shifted (sz*right);
+  z$sv = (x$s, 1/3[y$s,y$v]);
+  z$tu = (x$t, y$sv);
+  z$uv = 1/3[z$u,z$v];
+  z$vu = 1/3[z$v,z$u];
+  pickup stylus;
+%%  filldraw z$s--z$t--z$u--z$v--cycle;
+  filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+  labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{offsetbowl}
+%    A macro to calculate the outer and inner paths (|obouter| and |obinner|)
+% for a non-centered letter `o'. |offsetbowl($, sx, sy, fx, fy)| 
+% calculates the paths for an `o'
+% enclosed in a rectangle size |sx| by |sy| with its bottom lefthand corner
+% located at |z$|, where the center of the o is at |(fx*sx, fy*sy)| in the
+% bounding rectangle.
+%
+%    Two construction paths, namely |obfirst| and |obsecond| are also
+% available. They should be identical.
+%
+%    All paths have points listed in a clockwise direction, starting with
+% |z$nh| or |z$minl| as appropriate.
+%
+%  |offsetbowl($, sx, sy, 1/2, 1/2)| gives the same results as |obowl($, sx, sy)|.
+%    \begin{macrocode}
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+  numeric inx, iny, cx, cy;
+  pair pt[];
+  path pth[];
+  inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+  cx := x$+fx*sx; cy := y$+fy*sy;
+  z$obc = (cx,cy);
+%    \end{macrocode}
+% Calulate points on the centre path of the pen. These are offset by |inx|
+% from the rectangles vertical sides and by |iny| from the horizontal sides.
+% If the pen is parallel to a side, offset the point by half the pen's 
+% dimension. First do the West, East, North and South points.
+%    \begin{macrocode}
+  if pangle = 90:
+    z$wt=(x$+1/2thin, cy);
+    z$et=(x$+sx-1/2thin, cy);
+  else:
+    z$wt=(x$+inx, cy);
+    z$et=(x$+sx-inx, cy);
+    penpos$wt(thick,pangle);
+    penpos$et(thick,pangle);
+  fi
+  if pangle = 0:
+    z$nh=(cx, y$+sy-1/2thin);
+    z$sh=(cx, y$+1/2thin);
+  else:
+    z$nh=(cx, y$+sy-iny);
+    z$sh=(cx, y$+iny);
+    penpos$nh(thick,pangle);
+    penpos$sh(thick,pangle);
+  fi
+  obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+%    \end{macrocode}
+% Now calculate the points on the path |obfirst| where the pen will
+% draw the min width lines (i.e., the points where the pen will be
+% moving parallel to |pangle|).
+%    \begin{macrocode}
+  if pangle = 90:
+      z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+  else:
+    if pangle = 0:
+      z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+    else:
+      z$minl = directionpoint dir(pangle)     of obfirst;
+      z$minr = directionpoint -dir(pangle)    of obfirst;
+%    \end{macrocode}
+% The max points are roughly where the inner and outer diverge 
+% the most. These are simple for 0 and 90 degree pens and have
+% been calculated above. It's not so simple for intermediate
+% angles. For a reasonable looking result, we pick the max
+% points to be halfway between the min points. This involves
+% calculating some angles, paths and intersections.
+%    \begin{macrocode}
+      pt1 := z$minr - z$minl;           % direction
+      pt2 := (- ypart pt1, xpart pt1);  % perpendicular
+      pt3 := 1/2[z$minl, z$minr];
+      pt4 := pt3 shifted pt2;
+      pt5 := pt3 shifted -pt2;
+      pth1 := pt3--pt4;
+      pth2 := pt3--pt5;
+      z$maxr = pth1 intersectionpoint obfirst;
+      z$maxl = pth2 intersectionpoint obfirst;
+    \fi
+  \fi
+%    \end{macrocode}
+% Place the pen at each of these points to get the outer and inner points.
+%    \begin{macrocode}
+  penpos$minl(thin,pangle+90);
+  penpos$maxr(thick,pangle);
+  penpos$minr(thin,pangle+90);
+  penpos$maxl(thick,pangle);
+%    \end{macrocode}
+% Finally, the outer and inner paths.
+%    \begin{macrocode}
+  obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+  z$minlo = z$minl.r; z$maxro = z$maxr.r;
+  z$minro = z$minr.l; z$maxlo = z$maxl.l;
+  obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+  z$minli = z$minl.l; z$maxri = z$maxr.l;
+  z$minri = z$minr.r; z$maxli = z$maxl.r;
+  obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+  labels($obc, $nh, $et, $sh, $wt);
+  labels($minl, $maxr, $minr, $maxl);
+  labels($minlo, $maxro, $minro, $maxlo);
+  labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{obowl}
+%    A macro to calculate the outer and inner paths (|obouter| and |obinner|)
+% for the letter `o'. |obowl($, sx, sy)| calculates the paths for an `o'
+% centered and enclosed in a rectangle size |sx| by |sy| with its bottom 
+% lefthand corner located at |z$|.
+%    \begin{macrocode}
+
+def obowl(suffix $)(expr sx, sy)=
+  offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{scalarprod}
+%  |v scalarprod w| calulates the scalar product between the
+% two vectors |v| and |w|.
+%    \begin{macrocode}
+
+primarydef v scalarprod w =
+  (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{tangentpoint}
+% |tangentpoint($, path)| calculates the point |z$tan| on the |path|
+% so that |z$tan--z$| is tangent to the path. It uses a binary search
+% to find a point on the path such that the path direction is
+% (anti-) parallel to the dirction from that point to the given point.
+%    \begin{macrocode}
+
+def tangentpoint(suffix $)(expr pth)=
+  pair vecll, veclr, veclm;    % "tangent" line directions
+  numeric pl, pr, pm;          % path parameter values
+  pair vecpl, vecpr, vecpm;    % path directions
+  pair ptl, ptr, ptm;          % path points
+  numeric sl, sr, sm;          % scalar products of path/line directions
+  numeric stpsize;             % size of current binary step
+  numeric tantol;              % tolerance
+  boolean wtest;               % a boolean
+
+  tantol := eps;
+%    \end{macrocode}
+% Initialise using the left right and middle points on the path.
+%    \begin{macrocode}
+  pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+  ptl := point pl of pth;
+  ptm := point pm of pth;
+  ptr := point pr of pth;
+%    \end{macrocode}
+% Now the various vectors, and make sure they are unit vectors to
+% have a consistent measure scale when we take the scalar products.
+%    \begin{macrocode}
+  vecll := unitvector (z$-ptl);
+  veclm := unitvector (z$-ptm);
+  veclr := unitvector (z$-ptr);
+  vecpl := unitvector (direction pl of pth);
+  vecpm := unitvector (direction pm of pth);
+  vecpr := unitvector (direction pr of pth);
+  sl := vecll scalarprod vecpl;
+  sm := veclm scalarprod vecpm;
+  sr := veclr scalarprod vecpr;
+%    \end{macrocode}
+% We stop if any of the points is the tangent point, or if the step
+% size is too small, or if the signs of the left and right scalar
+% products are the same.
+%    \begin{macrocode}
+  wtest := (stpsize < tantol) or (sl*sr > 0) or
+           (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+  if wtest:
+    if (stpsize < tantol):
+      z$tan=(0,0);
+      errmessage("No tangent; path too short");
+    else:
+      if (sl*sr > 0):
+        z$tan=(0,0);
+        errmessage("No tangent; end products have the same sign");
+      else:
+        if (abs sl < tantol):
+          z$tan=ptl;
+        else:
+          if (abs sm < tantol):
+            z$tan=ptm;
+          else:
+            z$tan=ptr;
+          fi
+        fi
+      fi
+    fi
+  else:
+%    \end{macrocode}
+% There should be a tangent and we iterate to find it, using
+% bisection. If there is one to be found it will be at the
+% current middle point. The tangent point will be somewhere
+% between the two points that lead to opposite signed scalar 
+% products. 
+%    \begin{macrocode}
+    forever:
+      if (sl*sm < 0):  % opposite signs, look between pl & pm
+        pr:=pm; pm:=0.5(pr+pl);
+        vecpr := vecpm; veclr := veclm; sr:=sm;
+      else:
+        pl:=pm; pm:=0.5(pr+pl);
+        vecpl:=vecpm; vecll:=veclm; sl:=sm;
+      fi
+      stpsize:=pr-pl;
+      ptm := point pm of pth;
+      veclm := unitvector (z$-ptm);
+      vecpm := unitvector (direction pm of pth);
+      sm := veclm scalarprod vecpm;
+%    \end{macrocode}
+%  We stop the iteration if the step size is too small or the
+% middle point is the tangent point. In either case, the
+% middle point is the best guess that can be made.
+%    \begin{macrocode}
+      wtest := (stpsize < tantol) or (abs sm < tantol);
+      if wtest:
+        if (abs sm < tantol):
+          z$tan = ptm;
+        else:
+          z$tan = ptm;
+%%%%%%          errmessage("Warning: tangent approximated");
+        fi
+      fi
+      exitif wtest;
+    endfor
+  fi
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%    Set the mode and font setup.
+%    \begin{macrocode}
+ 
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup; 
+tgothic_font_setup;
+
+%    \end{macrocode}
+%
+%
+%    We generate letters, together with some punctuation and
+% analphabetics.
+%    \begin{macrocode}
+ 
+input tgothl;        % lower case
+input tgothu;        % capitals
+input tgothpunct;    % punctuation
+input tgothlig;      % the several dashes
+input tgothdig;      % arabic digits
+
+%    \end{macrocode}
+%
+% Set up the spacings, stretches and shrinks.
+%
+%    \begin{macrocode}
+ 
+font_slant slant; font_x_height x_height#;
+if monospace: 
+  font_normal_space 2vstretch*stem_width#; % no stretching or shrinking
+  font_quad vstretch*18u#;
+  font_extra_space vstretch*9u#;
+else: 
+  font_normal_space 2vstretch*stem_width#+2letter_fit#;
+  font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+  font_quad vstretch*18u#+4letter_fit#;
+  font_extra_space vstretch*2u#;
+
+%    \end{macrocode}
+%
+% Finally, do the ligtables, but I don't think they are needed (yet?).
+%
+%    \begin{macrocode}
+
+fi
+
+bye.
+
+  k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+  kks#:=-4u#;  kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+  ligtable "s":
+                "a" kern kks#, "A" kern kks#,
+                "c" kern kks#, "C" kern kks#,
+                "d" kern kks#, "D" kern kks#,
+                "e" kern kks#, "E" kern kks#,
+                "f" kern kks#, "F" kern kks#,
+                "g" kern kks#, "G" kern kks#,
+                "i" kern kks#, "I" kern kks#,
+                "j" kern kks#, "J" kern kks#,
+                "k" kern kks#, "K" kern kks#,
+                "m" kern kks#, "M" kern kks#,
+                "n" kern kks#, "N" kern kks#,
+                "o" kern kks#, "O" kern kks#,
+                "p" kern kks#, "P" kern kks#,
+                "q" kern kks#, "Q" kern kks#,
+                "r" kern kks#, "R" kern kks#,
+                "t" kern kks#, "T" kern kks#,
+                "u" kern kks#, "U" kern kks#,
+                "v" kern kks#, "V" kern kks#,
+                "w" kern kks#, "W" kern kks#,
+                "x" kern kks#, "X" kern kks#,
+                "y" kern kks#, "Y" kern kks#,
+                "z" kern kks#, "Z" kern kks#;
+
+  ligtable "S":
+                "a" kern kks#, "A" kern kks#,
+                "c" kern kks#, "C" kern kks#,
+                "d" kern kks#, "D" kern kks#,
+                "e" kern kks#, "E" kern kks#,
+                "f" kern kks#, "F" kern kks#,
+                "g" kern kks#, "G" kern kks#,
+                "i" kern kks#, "I" kern kks#,
+                "j" kern kks#, "J" kern kks#,
+                "k" kern kks#, "K" kern kks#,
+                "m" kern kks#, "M" kern kks#,
+                "n" kern kks#, "N" kern kks#,
+                "o" kern kks#, "O" kern kks#,
+                "p" kern kks#, "P" kern kks#,
+                "q" kern kks#, "Q" kern kks#,
+                "r" kern kks#, "R" kern kks#,
+                "t" kern kks#, "T" kern kks#,
+                "u" kern kks#, "U" kern kks#,
+                "v" kern kks#, "V" kern kks#,
+                "w" kern kks#, "W" kern kks#,
+                "x" kern kks#, "X" kern kks#,
+                "y" kern kks#, "Y" kern kks#,
+                "z" kern kks#, "Z" kern kks#;
+
+  ligtable "x": 
+                "a" kern kkx#, "A" kern kkx#,
+                "b" kern kkx#, "B" kern kkx#,
+                "c" kern kkx#, "C" kern kkx#,
+                "d" kern kkx#, "D" kern kkx#,
+                "e" kern kkx#, "E" kern kkx#,
+                "g" kern kkx#, "G" kern kkx#,
+                "j" kern kkx#, "J" kern kkx#,
+                "l" kern kkx#, "L" kern kkx#,
+                "o" kern kkx#, "O" kern kkx#,
+                "q" kern kkx#, "Q" kern kkx#,
+                "t" kern kkx#, "T" kern kkx#,
+                "u" kern kkx#, "U" kern kkx#,
+                "v" kern kkx#, "V" kern kkx#,
+                "w" kern kkx#, "W" kern kkx#,
+                "y" kern kkx#, "Y" kern kkx#;
+
+  ligtable "X": 
+                "a" kern kkx#, "A" kern kkx#,
+                "b" kern kkx#, "B" kern kkx#,
+                "c" kern kkx#, "C" kern kkx#,
+                "d" kern kkx#, "D" kern kkx#,
+                "e" kern kkx#, "E" kern kkx#,
+                "g" kern kkx#, "G" kern kkx#,
+                "j" kern kkx#, "J" kern kkx#,
+                "l" kern kkx#, "L" kern kkx#,
+                "o" kern kkx#, "O" kern kkx#,
+                "q" kern kkx#, "Q" kern kkx#,
+                "t" kern kkx#, "T" kern kkx#,
+                "u" kern kkx#, "U" kern kkx#,
+                "v" kern kkx#, "V" kern kkx#,
+                "w" kern kkx#, "W" kern kkx#,
+                "y" kern kkx#, "Y" kern kkx#;
+
+  ligtable "a": "A":
+           "b": "B":
+           "c": "C":
+           "d": "D":
+           "e": "E":
+           "h": "H":
+           "i": "I":
+           "k": "K":
+           "l": "L":
+           "m": "M":
+           "n": "N":
+           "o": "O":
+           "p": "P":
+           "t": "T":
+           "u": "U":
+           "v": "V":
+           "w": "W":
+           "z": "Z":
+           "j" kern kkj#, "J" kern kkj#;
+
+  ligtable "r":
+                "a" kern kkr#, "A" kern kkr#,
+                "b" kern kkr#, "B" kern kkr#,
+                "c" kern kkr#, "C" kern kkr#,
+                "d" kern kkr#, "D" kern kkr#,
+                "e" kern kkr#, "E" kern kkr#,
+                "f" kern kkrs#, "F" kern kkrs#,
+                "g" kern kkrs#, "G" kern kkrs#,
+                "h" kern kkr#, "H" kern kkr#,
+                "i" kern kkr#, "I" kern kkr#,
+                "j" kern kkj#, "J" kern kkj#,
+                "k" kern kkrs#, "K" kern kkrs#,
+                "l" kern kkr#, "L" kern kkr#,
+                "m" kern kkr#, "M" kern kkr#,
+                "n" kern kkrs#, "N" kern kkrs#,
+                "o" kern kkr#, "O" kern kkr#,
+                "p" kern kkrs#, "P" kern kkrs#,
+                "q" kern kkr#, "Q" kern kkr#,
+                "r" kern kkrs#, "R" kern kkrs#,
+                "s" kern kkr#, "S" kern kkr#,
+                "t" kern kkr#, "T" kern kkr#,
+                "u" kern kkr#, "U" kern kkr#,
+                "v" kern kkr#, "V" kern kkr#,
+                "w" kern kkr#, "W" kern kkr#,
+                "x" kern kkx#, "X" kern kkx#,
+                "y" kern kkr#, "Y" kern kkr#,
+                "z" kern kkr#, "Z" kern kkr#;
+
+  ligtable "R":
+                "a" kern kkr#, "A" kern kkr#,
+                "b" kern kkr#, "B" kern kkr#,
+                "c" kern kkr#, "C" kern kkr#,
+                "d" kern kkr#, "D" kern kkr#,
+                "e" kern kkr#, "E" kern kkr#,
+                "f" kern kkrs#, "F" kern kkrs#,
+                "g" kern kkrs#, "G" kern kkrs#,
+                "h" kern kkr#, "H" kern kkr#,
+                "i" kern kkr#, "I" kern kkr#,
+                "j" kern kkj#, "J" kern kkj#,
+                "k" kern kkrs#, "K" kern kkrs#,
+                "l" kern kkr#, "L" kern kkr#,
+                "m" kern kkr#, "M" kern kkr#,
+                "n" kern kkrs#, "N" kern kkrs#,
+                "o" kern kkr#, "O" kern kkr#,
+                "p" kern kkrs#, "P" kern kkrs#,
+                "q" kern kkr#, "Q" kern kkr#,
+                "r" kern kkrs#, "R" kern kkrs#,
+                "s" kern kkr#, "S" kern kkr#,
+                "t" kern kkr#, "T" kern kkr#,
+                "u" kern kkr#, "U" kern kkr#,
+                "v" kern kkr#, "V" kern kkr#,
+                "w" kern kkr#, "W" kern kkr#,
+                "x" kern kkx#, "X" kern kkx#,
+                "y" kern kkr#, "Y" kern kkr#,
+                "z" kern kkr#, "Z" kern kkr#;
+
+
+fi
+
+bye.
+
+%</mfd>
+%    \end{macrocode}
+%
+% \subsection{The code for normal letters}
+%
+%    The following code is for the lower case characters.
+%
+%    \begin{macrocode}
+%<*min>
+% TGOTHL.MF Program file for Gothic Textura Quadrata lower case
+%
+
+%    \end{macrocode}
+%
+%
+% \begin{routine}{a}
+% The letter `a'.
+%    \begin{macrocode}
+cmchar "TGOTH letter a";
+beginchar("a", 2sb#+hstretch*((3+widedmin+wided)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+%% left hand
+lft x1 = pcshiftx + widedmin*stem_width; y1 = 1/2h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% right stem
+rt x3 = w - pcshiftx - wided*stem_width; y3=h;
+x4=x3; y4=0;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,1.0,0.1,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+%% swirl
+x11=rt x1; y11 = top y1;
+pickup stylus;
+draw z3d--z3c..{-ppdir}z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{b}
+% The letter `b'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter b";
+beginchar("b", 2sb#+hstretch*((3 + widedmin + narrowdmin)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx;    % actual letter width
+n2:=h/ascratio;    % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx + widedmin*st; y1=h;
+x2 = x1; y2=0;
+z3=1/2[z1,z2];
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+lft x6 = x2c; bot y6 = y2c;
+x4 = x6; y4=n2;
+draw_updiamondstem(4,6,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z4d,z4c];
+pickup stylus;
+draw z4d--z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{c}
+% The letter `c'.
+%    \begin{macrocode}
+cmchar "TGOTH letter c";
+beginchar("c", 2sb#+hstretch*((3+wided)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st;
+st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+z11-z2c = z2c - z2d;
+pickup stylus;
+draw z2d--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{d}
+% The letter `d'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter d";
+beginchar("d", 2sb#+hstretch*((3+widedmin+narrowdmin)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio;    %  x-height
+%% left
+n2 := st*(cosd diang);
+lft x1 = pcshiftx + widedmin*st; top y1 = 12/16n1;
+x2=x1; y2=0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd,diang);
+%% right
+rt x3 = w-pcshiftx-narrowdmin*st; y3=h;
+x4 = x3; bot y4 = y2c;
+draw_updiamondstem(3,4, 2.0, narrowdmin, diawd,diang);
+x31 = lft x1; y31 = bot y1;
+x32 = rt x1; y32 = top y1;
+z33 = whatever[z31,z32] = whatever[z3e,z3c];
+pickup stylus;
+draw z31--z33;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{e}
+% The letter `e'.
+%    \begin{macrocode}
+cmchar "TGOTH letter e";
+beginchar("e", 2sb#+hstretch*((3+wided)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st;
+st := stem_width;
+path pth[];
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+x5 = x1;
+z4-z5 = whatever*pdir;
+pickup stylus;
+draw z4--z5;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{f}
+% The letter `f'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter f";
+beginchar("f", 2sb#+hstretch*((3+widedmin)*stem_width#), 
+               (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio;      % x-height
+%% stem
+lft x1=lft x2=pcshiftx+widedmin*st; y2=0; top y1 = h - (top y2 - bot y2);
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top bar
+lft x3 = rt x1; rt x5 = w-pcshiftx; bot y3 = top y1; y5=y3;
+draw z3--z5;
+%% middle bar
+lft x7 = pcshiftx; rt x9 = x5;
+y7 = y9 = 10/16h;
+draw z7--z9; 
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,15,16,100);
+endchar; % end "f"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{g}
+% The letter `g'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter g";
+beginchar("g", 2sb#+hstretch*((4)*stem_width#), 
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx;
+x2 = x1; bot y2 = 0; top y1 = h - (top y2 - bot y2);
+draw z1--z2;
+x3 = x4 = x1 + 2st; y4 = y2;
+lft x13 = rt x1; bot y13 = top y1;
+(z3-z13) = whatever*(dir -diang);
+draw z13--z3--z4;
+z34 = 1/2[z13,z3]; rt x37 = w-pcshiftx; top y37 = h;
+draw z34{right}..{pdir}z37;
+pickup stylus;
+bot y5 = -d;
+(z4-z5) = whatever*pdir;
+draw z4--z5;
+pickup quill;
+%% bottom loop
+z21 = z2;
+lft x25 = x5; bot y25=-d;
+x29 = 1/2[x3,x37];
+(z29-z21) = whatever*(dir -diang);
+x23 = x29; y23 = 1/2[y29,y25];
+draw z21{dir - diang}..z23{down}..{left}z25;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{h}
+% The letter `h'.
+%    \begin{macrocode}
+cmchar "TGOTH letter h";
+beginchar("h", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+n1 = h/ascratio;
+%% stem
+lft x1=lft x2=pcshiftx + narrowdmin*stem_width;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% bowl
+x3 = x1 + 2stem_width; x4 = x3;
+y3 = n1; y4=0;
+z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z3d,z3c];
+pickup stylus;
+draw z3d--z7;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{i}
+% The letter `i'.
+%    \begin{macrocode}
+cmchar "TGOTH letter i";
+beginchar("i", 2sb#+hstretch*(2stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+x3= x1-thin; bot y3 = h + 1/2stem_width;
+z4 = (x3+3thin,y3);
+pickup halfquill;
+draw z3--z4;
+penlabels(1,2,100);
+endchar; % end "i"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{j}
+% The letter `j'. This letter was not in the script, it being a later invention.
+%    \begin{macrocode}
+cmchar "TGOTH letter j";
+beginchar("j", sb#+hstretch*(5/2stem_width#), 
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx - 1/2stem_width; y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_updiamondstem(1,2,narrowd,narrowdmin,diawd,diang);
+draw z2{down}..z3{-pdir};               % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{k}
+% The letter `k'.
+%    \begin{macrocode}
+cmchar "TGOTH letter k";
+beginchar("k", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h/ascratio;                 % x-height
+lft x1=lft x2=pcshiftx + narrowdmin*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2, narrowd, narrowdmin, diawd,diang);
+%% right leg
+x3 = x1 + 2st; y3 = 8/16n1;
+x4 = x3; y4 = 0;
+z34 = 1/2[z3,z4];
+draw_downdiamondstem(34,4, narrowd, narrowdmin, diawd,diang);
+draw z3--z34;
+lft x5 = rt x1;
+(z3-z5) = whatever*(dir -diang);
+draw z5--z3;
+
+%% top arm
+x6 = 1/2[x3, rt x3];
+(z6-z5) = whatever*(pdir);
+rt x8 = lft x5; top y8 = bot y5+thick;
+(z7-z8) = whatever*(z6-z5);
+(z7-z6)=whatver*(z5-z3);
+draw z6--z7;
+pickup stylus;
+draw z5--z6--z7--z8;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{l}
+% The letter `l'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter l";
+beginchar("l", 2sb#+hstretch*((2 + widedmin)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx + widedmin*st; y1=h;
+x2=x1; y2 =0;
+z3 = 1/2[z1,z2];
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{m}
+% The letter `m'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter m";
+beginchar("m", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),   
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+wided*stem_width; y1 = y3 = y5 = h;
+x2=x1; y2=y4=y6=0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x5 = rt x6 = w-pcshiftx-narrowd*stem_width;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56,wided,widedmin,diawd,diang);
+draw_downdiamondstem(56,6,narrowd,narrowdmin,diawd,diang);
+%% middle stem
+z3=1/2[z1,z5]; z4 = 1/2[z2,z6]; z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{n}
+% The letter `n'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter n";
+beginchar("n", 2sb#+hstretch*((3+wided+narrowd)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + wided*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x3 = w-pcshiftx - narrowd*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{o}
+% The letter `o'.
+%    \begin{macrocode}
+cmchar "TGOTH letter o";
+beginchar("o", 2sb#+hstretch*((3 + narrowdmin + narrowdmin)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[]; 
+numeric st; st := stem_width;
+pickup quill;
+%% bottom left
+lft x12 = pcshiftx + narrowdmin*st; y12 = 1/2h;
+x2 = x12; y2 = 0;
+draw_downdiamondstem(12,2, 1.0, narrowdmin, diawd,diang);
+%% right
+rt x3 = w - pcshiftx - narrowdmin*st; x4=x3;
+y3 = h; bot y4 = y2c;
+draw_updiamondstem(3,4, 1.0, narrowdmin, diawd,diang);
+%% top left
+x1 = x12; top y1 = y3c;
+draw z1--z12;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{p}
+% The letter `p'.
+%    \begin{macrocode}
+cmchar "TGOTH letter p";
+beginchar("p", 2sb#+hstretch*((3 + wided + widedmin)*stem_width#), 
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+wided*st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downforkstem(12,2);
+%% bowl
+x3 = x4 = x1 + 2st;
+y3 = y1; bot y4 = 0;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+lft x5 = pcshiftx; y5 = y4;
+draw z5--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{q}
+% The letter `q'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter q";
+beginchar("q", 2sb#+hstretch*((3 + widedmin)*stem_width#), 
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% left/bottom of bowl
+y99 = 0;
+lft x1 = pcshiftx +widedmin*st; top y1 = h - (top y99 - bot y99);
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin,diawd,diang);
+%% rest
+x3 = x1 + 2st; x4 = x3; y3 = y1; y4 = -d;
+lft x5 = rt x1; bot y5 = top y1;
+draw_downforkstem(3,4);
+draw z5--z3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{r}
+% The letter `r'.
+%    \begin{macrocode}
+cmchar "TGOTH letter r";
+beginchar("r", 2sb#+hstretch*((3+wided)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx + wided*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% bar
+lft x3 = rt x1; rt x4 = w-pcshiftx; top y3 = top y4 = h;
+draw z3--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{s}
+% The letter `s'. This is a short S.
+%    \begin{macrocode}
+cmchar "TGOTH letter s";
+beginchar("s", 2sb#+hstretch*((4)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup stylus;
+%% the diagonal
+lft x2 = pcshiftx; bot y2 = 0;
+rt x1 = w-pcshiftx; top y1 = h;
+draw z1--z2;
+pickup quill;
+z211 = 13/32[z2,z1];   %% 10/32 too small, 16/32 too large
+z213 = 24/32[z2,z1];   %% 26/32 too large
+z212 = 1/2[z211,z213];
+%% bottom bowl
+lft x21 = x2; bot y21 = 0;
+rt x22 = w - pcshiftx; bot y22 = 0;
+x23 = x22; z24 = z212;
+(z24-z23) = whatever*(dir (180-diang));
+draw z21{pdir}..z22--z23--z24;
+%% top bowl
+z14 = z211; z11 = z213;
+lft x12 = lft x13 = pcshiftx;
+(z13-z14) = whatever*(dir (180-diang));
+(z12-z11) = whatever*(dir (180-diang));
+draw z11--z12--z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,100);
+endchar; % end "s"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{t}
+% The letter `t'.
+%    \begin{macrocode}
+cmchar "TGOTH letter t";
+beginchar("t", 2sb#+hstretch*((2+1.0)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{u}
+% The letter `u'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter u";
+beginchar("u", 2sb#+hstretch*((3+narrowd+wided)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+rt x3 = w - pcshiftx - wided*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{v}
+% The letter `v'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter v";
+beginchar("v", 2sb#+hstretch*((4 + narrowdmin)*stem_width#),   
+               asc_height#, 0);
+adjust_fit(0,0);
+numeric n[]; numeric st;
+pcshiftx := sb;
+st := stem_width;
+n1 := h/ascratio;  % x-height
+pickup quill;
+%% bottom left stem
+%% right and bottom left stems
+rt x23 = w - pcshiftx - narrowdmin*st; y23 = n1; x24=x23;
+x1 = x23 - 2st; y1 = 1/2n1;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd, diang);
+bot y24 = y2c;
+draw_updiamondstem(23, 24, narrowd, narrowdmin, diawd, diang);
+%% curly bit
+x11=x1; top y11 = h;
+lft x12 = pcshiftx; y12 = 1/2[y11,y1];
+draw z11{down}..z12{down}..{down}z1;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{w}
+% The letter `w'. This is a modern version as the font did not have a W.
+%    \begin{macrocode}
+cmchar "TGOTH letter w";
+beginchar("w", 2sb#+hstretch*((5+wided+narrowd)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = y3 = y5 = h;
+x2 = x1; y2 = y4 = y6 = 0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2, wided, widedmin, diawd, diang);
+%% right stem
+rt x5 = w -pcshiftx-wided*stem_width; x6 = x5;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(56,6, wided, widedmin, diawd, diang);
+%% middle stem
+z3 = 1/2[z1,z5]; z4 = 1/2[z2,z6]; z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(34,4, wided, widedmin, diawd, diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{x}
+% The letter `x'.
+%    \begin{macrocode}
+cmchar "TGOTH letter x";
+beginchar("x", 2sb#+hstretch*((4)*stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% upright
+x1 = 1/2w; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12, 1.5, widedmin,diawd,2/3diang);
+draw_downdiamondstem(12,2, 1.5, widedmin,diawd,2/3diang);
+%% top right bar
+lft x3 = rt x1; top y3 = h;
+rt x4 = w - pcshiftx; y4=y3;
+draw z3--z4;
+%% middle bar
+n1 := h-y3;
+lft x5 = pcshiftx; rt x6 = w - pcshiftx;
+y5 = 1/2h - n1; y6 = 1/2h;
+z56 = 1/2[z5,z6];
+draw z5{pdir}..z56..{pdir}z6;
+%% bottom left
+pickup stylus;
+lft x11 = pcshiftx; bot y11 = 0;
+draw z2e--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{y}
+% The letter `y'. Modern, but with a dot on top.
+%    \begin{macrocode}
+cmchar "TGOTH letter y";
+beginchar("y", 2sb#+hstretch*((3 + narrowd+ narrowdmin)*stem_width#), 
+               x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st = stem_width;
+pickup quill;
+%% right side
+rt x3 = w - pcshiftx - narrowdmin*st; y3 = h;
+x33 = x3; y33 = 0;
+%%draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+%% left side
+x1 = x3 - 2st; y1 = y3;
+x2 = x1; y2 = 0;
+n1 := top y2 - y2;
+draw_updiamondstem(1,2,narrowd,narrowdmin, diawd,diang);
+%% tail
+x11 = rt x2; y11 = top y2;
+x12 = lft x2; y12 = bot y2;
+pickup stylus;
+lft x14 = x1 - 2st; y14 = -d + n1;
+x15 = x14+n1; bot y15 = -d;
+z4 = whatever[z11,z12] = whatever[z3,z33];
+x10=x4; bot y10 = y4;
+draw z10--z11--z12..{down}z14..{-ppdir}z15;
+pickup quill;
+draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,33,100);
+endchar; % end "y"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{z}
+% The letter `z'.
+%    \begin{macrocode}
+cmchar "TGOTH letter z";
+beginchar("z", 2sb#+hstretch*(3stem_width#), 
+               x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% centre bar
+z5 = 1/2[z1,z3]; z6 = 1/2[z2,z4]; z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; draw pth3;              %  bars
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%    The end of this file
+%    \begin{macrocode} 
+%</min>
+%    \end{macrocode}
+%
+%
+% \subsection{The code for capital letters}
+%
+%    \thisfont{} `capitals' were drawn with the same pen as for the minuscules.
+% The letters are pretty fancy.
+%
+%    \begin{macrocode}
+%<*maj>
+% TGOTHU.MF Program file for Early Gothic `capitals'
+%
+
+%    \end{macrocode}
+%
+%
+% \begin{routine}{A}
+% The letter `A'.
+%    \begin{macrocode}
+cmchar "TGOTH letter A";
+beginchar("A", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pair pr[];
+pickup quill;
+%% stem
+rt x1 = w - pcshiftx - wided*st; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% leg
+x21 = x1; top y21 = h;
+lft x22 = pcshiftx + widedmin*st; bot y22 = 0;
+draw z21--z22;
+draw (x22-widedmin*st, y22)--(x22+wided*st, y22);
+%% bar
+z13 = z12;
+y16 = y13; z16 = whatever[z21,z22];
+x14 = 1/2[x13,x16]; (z13-z14) = whatever*pdir;
+pickup threequarterquill;
+draw z13--z14;
+draw z14{ppdir}..{left}z16;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{B}
+% The letter `B'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter B";
+beginchar("B", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem
+lft x1 = pcshiftx; bot y1 = 0;
+n1 := top y1;
+lft x99 = 2/5w; bot y99 = 12/16h;
+rt x12 = lft x99; top y12 = bot y99;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,(h-n1/2)];
+pth1 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% stem decoration
+z101=z99;
+z181 = (x99,-h);
+z102 = (x101,y1);
+z112 = 1/2[z101,z102];
+lft x8 = x112; y8 = y112;
+%% lower bowl
+x113 = w-pcshiftx;
+(z113-z112) = whatever*(pdir);
+rt x5 = w-pcshiftx; y5 = 6/16y113;
+x3 = 10/16[x1,x5]; y3 = y1;
+z7 = 2/16[z8,z113];
+pth2 := z1{pdir}..{right}z3..{up}z5..{-pdir}z7--z8;
+
+%% upper bowl
+x10 = 1/2[x7,x5]; y10 = 1/2[y12,y99]; 
+x19 = 1/2[x99,x10]; top y19 = h;
+pth3 := z8--z7{pdir}..{up}z10..{left}z19..{-pdir}z99;
+%% angled decoration
+
+z105 = 1/4[z102,z112];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+
+z107 = 1/4[z112,z101];
+x187 = 2w;
+(z187-z107) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth3;
+
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+draw pth2;
+draw pth3;
+pickup stylus;
+draw z101--z102; 
+draw z105--z106; draw z107--z108; 
+
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,99,100);
+endchar; % end "B"
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{C}
+% The letter `C'.
+%    \begin{macrocode}
+cmchar "TGOTH letter C";
+beginchar("C", 2cap_sb#+hstretch*((5)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx;     % actual letter width
+n2:=6/5w-2pcshiftx;  % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;      %% bowl
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,101,102,103,104,105,106,107,108,185);
+endchar; % end "C"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{D}
+% The letter `D'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter D";
+beginchar("D", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+lft x1 = pcshiftx; bot y1 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2h;
+x3 = 10/16[x1,x5]; y3 = y1;
+x7 = x3; top y7 = h;
+lft x9 = 2/5w; bot y9 = 12/16h;
+pth1 := z1{pdir}..{right}z3..{up}z5..{left}z7..{-pdir}z9;
+%% stem
+rt x12 = lft x9; top y12 = bot y9;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,y7];
+pth2 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% vertical decoration
+z101=z9;
+z181 = (x9,-h);
+z102 = ((x101,h/2)--z181) intersectionpoint pth1;
+z103a=(x101+perpdec,h); z103b=(x103a,h/2); z103c=(x103a,-h);
+z103 = (z103a--z103b) intersectionpoint pth1;
+z104 = (z103b--z103c) intersectionpoint pth1;
+%% angled decoration
+z106 = (lft x5, y5);
+x105 = x103; (z106-z105) = whatever*(pdir);
+z107 = (x105, y105+angdec);
+x108a = 2w; (z108a-z107) = whatever*(pdir);
+z108 = (z108a--z107) intersectionpoint pth1;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+draw pth2;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,100);
+endchar; % end "D"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{E}
+% The letter `E'.
+%    \begin{macrocode}
+cmchar "TGOTH letter E";
+beginchar("E", 2cap_sb#+hstretch*((6)*stem_width#),   %% (5) too small
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx;     % actual letter width
+n2:=6/5w-2pcshiftx;  % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%% bar
+lft x31 = x103; top y31 = y105;
+rt x32 = w-pcshiftx; y32=y31;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;      %% bowl
+draw z31--z32;  %% bar
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,105,185,106);
+endchar; % end "E"
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{F}
+% The letter `F'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter F";
+beginchar("F", 2cap_sb#+hstretch*((5)*stem_width#), 
+               5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem (1--2) and top bar (21--22)
+lft x1=lft x2=pcshiftx+widedmin*st; y2 = 0;
+top y21 = top y22 = h - (top y2 - bot y2); x22 = w-pcshiftx-st;
+lft x21 = rt x1; top y1 = bot y21;
+z12 = 1/3[z1,z2];
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+draw z1--z12;
+draw z21--z22;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+x101 = x102; y101 = y21;
+%% bar
+lft x14 = x101; y14 = y12;
+rt x16 = w-pcshiftx; y16 = y14;
+draw z14--z16;
+z16tr = (rt x16, top y16);
+pickup stylus;
+draw z101--z102;
+%% Other decoration
+%% bottom bar
+rt x201 = x16tr; top y201 = y16tr;
+y202 = y201 - 2st; (z201-z202) = whatever*pdir;
+draw z201--z202;
+%% top bar
+pickup quill;
+z22tb = (rt x22, top y22);
+x22bb - x22 = x22 - x22tb; y22bb - y22 = y22 - y22tb;
+x22c = x22 + st; bot y22c = top y22 + 1/2st;
+x22f = x22; y22f = 1/3[y22c, y22];
+pickup stylus;
+x22br = x22bb; bot y22br = y22bb;
+pth3 := z22br--z22tb..{up}z22c..{-ppdir}z22f;
+draw pth3;
+
+penlabels(1,2,3,4,5,6,7,14,15,16,21,22,100);
+endchar; % end "F"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{G}
+% The letter `G'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter G";
+beginchar("G", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w;     % width of bowl
+n2 := h;     % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+%%pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+%%pth2 := z2{-pdir}..z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+pth2 := z2--z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+%% fork
+z2tr = (rt x2, top y2);
+x2a = x2tr; y2a = y2tr + thin;
+x2b = x2a; y2b - y2 = y2 - y2a;
+x2d = x2 - thick; y2d = y2;
+pickup stylus;
+% finish off the fork
+x2c = x2d = x2e;
+top y2e = y2tr; y2c - y2d = y2d - y2e;
+%%filldraw z2d--z2c{right}..z2b--cycle;
+%%filldraw z2d--z2a..{left}z2e--cycle;
+filldraw z2e--z2c{right}..z2b--cycle;
+filldraw z2c--z2a..{left}z2e--cycle;
+pth9 := (rt x2a,y2a)--(rt x2b,y2b)--(rt x2d,y2d)--cycle;
+unfill pth9;
+unfill pth9;
+unfill pth9;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+%%draw pth1;             %% bar
+draw pth2;             %% bowl
+ductus:=false;
+penlabels(1,2,2a,2b,2c,2d,2e,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "G"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{H}
+% The letter `H'.
+%    \begin{macrocode}
+cmchar "TGOTH letter H";
+beginchar("H", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+% start of bowl
+n1 := 12/16h;    %% take this as the top of the bowl
+x13=x1; y13=3/4n1;
+rt x3 = w-pcshiftx; y3 = 8/16n1;
+x14 = 8/16[x13,x3]; top y14 = n1;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "H"
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{I}
+% The letter `I'.
+%    \begin{macrocode}
+cmchar "TGOTH letter I";
+beginchar("I", 2cap_sb#+hstretch*((4+wided)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided, widedmin,diawd,diang);
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101=x102; top y101 = h;
+draw z101--z102;
+ductus:=false;
+penlabels(1,2,101,102,100);
+endchar; % end "I"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{J}
+% The letter `J'. This letter was not in the script, it being a later invention.
+%    \begin{macrocode}
+cmchar "TGOTH letter J";
+beginchar("J", cap_sb#+hstretch*((4+wided)*stem_width#), 
+               caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1 = pcshiftx+3st; y1 = h;
+x2=x1; y2=-d + (top y1 - bot y1);
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_upcurlstem(1,2);
+draw z2{ppdir}..{-pdir}z3;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201 + 2/3wided*st;
+pickup stylus;
+top y101 = h; y201=y101;
+z102=(x101,0);
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,101,102,100);
+endchar; % end "J"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{K}
+% The letter `K'.
+%    \begin{macrocode}
+cmchar "TGOTH letter K";
+beginchar("K", 2cap_sb#+hstretch*((8+wided)*stem_width#), 
+               5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = 4/5h;                 % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5+st,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;                        % upper bowl
+draw pth2;                        % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106; 
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "K"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{L}
+% The letter `L'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter L";
+beginchar("L", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; bot y2 =0;
+draw_upcurlstem(1,2);
+rt x4 = w-pcshiftx; bot y4 = 0;
+draw z2{right}..{pdir}z4;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201+2/3wided*st;
+pickup stylus;
+top y101 = h; y201 = y101;
+x102 = x101; bot y102=0;
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,4,101,102,201,100);
+endchar; % end "L"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{M}
+% The letter `M'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter M";
+beginchar("M", 2cap_sb#+hstretch*((11)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%%% left part
+lft x301 = pcshiftx+3st; y301 = h;
+x302 = x301; y302 = 0;
+z312 = 1/2[z301,z302];
+draw_upcurlstem(301,312);
+draw_downdiamondstem(312,302,wided,widedmin,diawd,diang);
+
+%% left N stem (and N part)
+%%%lft x1=pcshiftx+3st; y1=h;
+x1 = x301 + 3st; y1 = h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+%%draw_upcurlstem(1,12);
+%%draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+% start of bowl
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+pickup quill;
+%% finish off the left part
+x3011 = 1/2[x301,x1]; top y3011 = h;
+z3123 = (x301,3/4h); z123 = (x1,y3123);
+draw z3123--z3011--z123--z12;
+%% vertical decorations
+  %% left part
+z402 = 2/3[z302b,z302c];
+x401 = x402; z401 = whatever[z3123,z3011];
+  %% right part
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+%% angled decorations
+  %% left part
+z406 = z13;
+x405 = x402; (z406-z405) = whatever*pdir;
+z407 = (x405, y405-angdec); z408 = (x406, y406-angdec);
+  %% right part
+z105 = (x102,y405);
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z401--z402;
+draw z405--z406; draw z407--z408;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,101,102,105,106,107,108,301,302,100);
+endchar; % end "M"
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{N}
+% The letter `N'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter N";
+beginchar("N", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+% start of bowl
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{O}
+% The letter `O'.
+%    \begin{macrocode}
+cmchar "TGOTH letter O";
+beginchar("O", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw z101--z102; draw z103--z104; 
+draw z105--z106; draw z107--z108; 
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{P}
+% The letter `P'.
+%    \begin{macrocode}
+cmchar "TGOTH letter P";
+beginchar("P", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% vertical decoration
+z1tr = (rt x1, top y1);
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+pickup quill;
+%% bowl
+lft x22 = x101; top y22 = h;
+x21 = x1; (z22-z21) = whatever*pdir;
+rt x24 = w - pcshiftx; y24 = 1/2h;
+x25 = 1/2[x22,x24]; bot y25 = 0;
+pth1 := z21--z22{down}..{down}z24..{-pdir}z25;
+z31 = z25;
+lft x33 = pcshiftx; bot y33 = 0;
+pth2 := z33{pdir}..{right}z31;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1; draw pth2;
+%% angled decoration
+x105 = x101; y105 = 1/3h;
+x185 = 2w;
+(z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105,y105-angdec); 
+x187 = x185; y107 - y105 = y187 - y185;
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{Q}
+% The letter `Q'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter Q";
+beginchar("Q", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-stem_width; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% tail
+pth2 := z1..z4..z3;
+z11 = directionpoint pdir of pth2;
+rt x13 = w-pcshiftx; bot y13 = 0;
+pth3 := z11{pdir}..{pdir}z13;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1; draw pth3;
+pickup stylus;
+draw z101--z102; draw z103--z104; 
+draw z105--z106; draw z107--z108; 
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "Q"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{R}
+% The letter `R'.
+%    \begin{macrocode}
+cmchar "TGOTH letter R";
+beginchar("R", 2cap_sb#+hstretch*((8+wided)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h;                 % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;                        % upper bowl
+draw pth2;                        % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106; 
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "R"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{S}
+% The letter `S'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter S";
+beginchar("S", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+pickup threequarterquill;
+%% top
+n1 := 1;
+lft x1 = pcshiftx + n1*st; top y1 = h;
+rt x3 = w - pcshiftx; y3 = y1;
+x2 = 1/2[x1,x3]; top y2 = y1;
+pth1 := z1..z2..{pdir}z3;
+draw pth1;
+%% bottom
+lft x4 = pcshiftx; bot y4 = 0;
+rt x6 = w -pcshiftx - n1*st; y6 = y4;
+x5 = 1/2[x4,x6]; bot y5 = y4;
+pth2 := z4{pdir}..z5..z6;
+draw pth2;
+%% top path
+z100 = (1/2w, 1/2h);
+z11 = z1; z15 = z6;
+x13 = x100; y13 = y100 + st;
+pth3 := z11..{right}z13{right}..z15;
+draw pth3;
+%% bottom path
+z21 = z11; z25 = z6;
+x23 = x100; y100 - y23 = y13 - y100;
+pth4 := z21..{right}z23{right}..z25;
+draw pth4;
+%% decorations
+  %% top
+z101 = (x2+angdec,y2); y181 = 0; (z101-z181) = whatever*pdir;
+z102 = (z101--z181) intersectionpoint pth3;
+z103 = (x101-angdec, y101); x183-x181 = x103-x101; y183 = 0;
+z104 = (z103--z183) intersectionpoint pth3;
+  %% bottom
+z201 = (x5,y5); y281 = h; (z201-z281) = whatever*pdir;
+z202 = (z201--z281) intersectionpoint pth4;
+z203 = (x201-angdec, y201); x283-x281 = x203-x201; y283 = h;
+z204 = (z203--z283) intersectionpoint pth4;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z201--z202; draw z203--z204;
+
+
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100,101,102,103,104,201,202,203,204);
+endchar; % end "S"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{T}
+% The letter `T'.
+%    \begin{macrocode}
+cmchar "TGOTH letter T";
+beginchar("T", 2cap_sb#+hstretch*((7)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w;     % width of bowl
+n2 := h;     % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%%pth2 := z3..z4{down}..z5{right}..z6{pdir};
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+%%z102 = z191--z181 intersectionpoint pth2;   %%% ???? NO INTERSECTION!!!!!!
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw pth1;             %% bar
+draw pth2;             %% bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "T"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{U}
+% The letter `U'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter U";
+beginchar("U", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+% bottom of bowl
+x7 = x1 - 3/2st; bot y7 = 0;
+rt x9 = lft x3; bot y9 = 0;
+pth1 := z7{pdir}..{pdir}z9;
+draw pth1;
+%% stem bottoms
+z2 = (z1 -- (x1,-h)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y9;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{V}
+% The letter `V'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter V";
+beginchar("V", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + 3st; y1 = h;
+% bottom of bowl
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = w/2; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+z6 = z9;
+rt x5 = w - pcshiftx; top y5 = 3/4h;
+x3 = 1/2[rt x1, lft x5];
+x4 = 1/2[x3,x5]; top y4 = h;
+y3 = 1/2[y4,y5];
+pth2 := z6{pdir}..{up}z5..{left}z4..{-pdir}z3;
+draw pth2;
+pth3 := pth1 & pth2;
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth3;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec); 
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{W}
+% The letter `W'. This is a modern version as the font did not have a W.
+%    \begin{macrocode}
+cmchar "TGOTH letter W";
+beginchar("W", 2cap_sb#+hstretch*((12)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top of stems
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x999 = w - pcshiftx;
+x3 = 1/2[x1,x999]; y3 = h;
+%% bowl bottoms
+x21 = x1 - 3/2st; bot y21 = 0;
+rt x23 = lft x3; bot y23 = 0;
+pth1 := z21{pdir}..z23;
+draw pth1;
+lft x31 = rt x23; bot y31 = top y23;
+x33 = 1/2[x31,x999]; bot y33 = 0;
+pth2 := z31{pdir}..z33;
+draw pth2;
+%% bottom of stems
+z2 = (z1--(x1,0)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y23;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% right V stem
+z16 = z33;
+x15 = x999; top y15 = 3/4h;
+x13 = 1/2[rt x3, lft x15];
+x14 = 1/2[x13,x15]; top y14 = h;
+y13 = 1/2[y14,y15];
+pth3 = z16{pdir}..{up}z15..{left}z14..{-pdir}z13;
+draw pth3;
+%% decorations
+z1tr = (rt x1, top y1);
+z3tr = (rt x3, top y3);
+pickup stylus;
+%% for U
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%% for V
+
+x301 = x3tr+2/3wided*st; top y301 = y3e;
+z381 = (x301,-w);
+z302 = (z301--z381) intersectionpoint pth2;
+draw z3e--z301--z302;
+x305 = x301; y305 = 1/3[y302,y301];
+x385 = 2w; (z385-z305) = whatever*pdir;
+z306 = (z305--z385) intersectionpoint pth3;
+z307 = (x305, y305-angdec); 
+x387 = x385; y387-y385 = y307-y305;
+z308 = (z307--z387) intersectionpoint pth3;
+draw z305--z306; draw z307--z308;
+
+
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{X}
+% The letter `X'.
+%    \begin{macrocode}
+cmchar "TGOTH letter X";
+beginchar("X", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := cap_sb;
+pickup quill;
+%% center stem
+lft x1 = lft x2 = pcshiftx + 3st;
+y1 = 3/4h; y2 = 1/4h;
+draw z1--z2;
+%% top right
+z21 = z1; top y22 = h; (z22-z21) = whatever*pdir;
+rt x24 = w-pcshiftx; y24 = y21;
+pth1 := z21--z22{-ppdir}..{pdir}z24;
+draw pth1;
+%% bottom right
+z31 = z2; 
+rt x33 = w-pcshiftx; bot y33 = 0;
+pth2 := z31{-ppdir}..{pdir}z33;
+draw pth2;
+%% bottom left
+z41 = z2; 
+bot y43 = -1/4h; (z41-z43) = whatever*pdir;
+x45 = x43 + st; y45=y43;
+pth3 := z41--z43{-pdir}..{pdir}z45;
+pickup stylus;
+draw pth3;
+pickup quill;
+%% top left
+x11 = x1; y11 = h;
+draw_upcurlstem(11,1);
+%% decoration
+x81 = rt x1;
+pickup stylus;
+x101 = x102 = x81 + 2/3wided*st;
+z101 = whatever[z1,z22];
+z102 = (z101--(x101,0)) intersectionpoint pth2;
+draw z101--z102;
+pickup quill;
+%% middle arms
+z120 = 1/2[z1,z2];
+z51 = z120;
+lft x53 = pcshiftx; top y53 = y51;
+x52 = 1/2[x51,x53]; y52 = y51;
+pth5 := z51--z52{left}..{-pdir}z53;
+draw pth5;
+lft x61 = x101; y61 = y120;
+rt x63 = w-pcshiftx; bot y63 = y61;
+x62 = 1/2[x61,x63]; y62 = y61;
+pth6 := z61--z62{right}..{pdir}z63;
+draw pth6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,51,52,53,61,62,63,101,102,150,60,160,100);
+endchar; % end "X"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{Y}
+% The letter `Y'. 
+%    \begin{macrocode}
+cmchar "TGOTH letter Y";
+beginchar("Y", 2cap_sb#+hstretch*((8)*stem_width#), 
+               caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+% bottom of bowl
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = 1/2[x1,x3]; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+x4 = x3; y4 = 0;
+x5 = x4; y5 = -1/4d;
+lft x6 = x9; bot y6 = -d;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+draw z6{pdir}..{up}z5--z4;
+z3cd = 1/2[z3c,z3d];
+pth2 = z5--z3a--z3cd;
+%% fill bowl bottom
+x91 = x3; (z91-z9) = whatever*pdir;
+draw z9--z91;
+
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth1;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec); 
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100,101,102,181);
+endchar; % end "Y"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{Z}
+% The letter `Z'.
+%    \begin{macrocode}
+cmchar "TGOTH letter Z";
+beginchar("Z", 2cap_sb#+hstretch*((5)*stem_width#), 
+               caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx-perpdec;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+x102 = rt x2; y102 = top y2; x202 = x102+perpdec; y202=y102;
+%% bottom bar ends
+bot y34 = 0;
+x3=x1+perpdec; rt x4= w-pcshiftx;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+x203 = lft x3; y203 = bot y3; x103 = x203-perpdec; y103=y203;
+%% centre bar
+z5 = (x1,1/2[y1,y3]); z6 = (x4,1/2[y2,y4]); z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2;            %  bars
+draw pth3;
+%% decorations
+pickup stylus;
+draw z102--z103; draw z202--z203;
+unfill z102--z103--z203--z202--cycle;
+draw z102--z103; draw z202--z203;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%
+%    The end of this file
+%    \begin{macrocode} 
+%</maj>
+%    \end{macrocode}
+%
+%
+%
+% \subsection{The punctuation file}
+%
+% The main punctuation marks are defined in this file.
+%
+%    \begin{macrocode}
+%<*punct>
+% TGOTHPUNCT.MF This file contains punctuation marks
+
+%    \end{macrocode}
+%
+%
+% \begin{routine}{!}
+%    The `!' character, which had not been invented at this time.
+%    \begin{macrocode}
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar;  % end of "!"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{?}
+%    The `?' character, which had not been invented at this time.
+%    \begin{macrocode}
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*((3+wided+widedmin)*stem_width#),
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx;     % actual character width
+n2 := 1/3h;            % height of top bowl
+n3 := n2;              % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x45 = x5; y45=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 11/16h;
+
+x4 = x45;
+(z3-z4) = whatever*pdir;
+
+%%ductus:= true;
+if ductus:
+  pickup stylus;
+fi
+%%draw z1..z2{right}..z3{down}..z4{down};
+draw z1--z2--z3--z4--z45;
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,45,5);
+endchar;  % end of "?"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{,}
+%    The `,' character.
+%    \begin{macrocode}
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1); 
+endchar; % end of ","
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{.}
+%    The `.' character.
+%    \begin{macrocode}
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1); 
+endchar; % end of "."
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{:}
+%    The `:' character.
+%    \begin{macrocode}
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2); 
+endchar; % end ":"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{;}
+%    The `;' character.
+%    \begin{macrocode}
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2); 
+endchar; % end of ";"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{'}
+%    The `'' character.
+%    \begin{macrocode}
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1); 
+endchar;  % end of "'"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{`}
+%    The ``' character.
+%    \begin{macrocode}
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1); 
+endchar;  % end of "`"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% The end of this file.
+%    \begin{macrocode}
+%</punct>
+%    \end{macrocode}
+%
+%
+% \subsection{The ligatures and dashes file}
+%
+%    The ligatured letters, punctuation marks and dashes are defined in this file.
+%    \begin{macrocode}
+%<*lig>
+% TGOTHLIG.MF Uncial ligatured letters, punctation and dashes
+
+%    \end{macrocode}
+%  First the ligtables.
+%    \begin{macrocode}
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+%    \end{macrocode}
+%
+%
+%
+% \begin{routine}{st}
+%    The `st' ligature.
+%    \begin{macrocode}
+
+cmchar "TGOTH st ligature";
+beginchar(oct"015", 2sb#+hstretch*((1 + narrowd + 3)*stem_width#), 
+               asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := h/ascratio;  % x-height
+pickup quill;
+%% the S (long)
+lft x1 = pcshiftx + narrowd*st;
+x2 = x1; y2 = 0; y1 = h - (top y2 - bot y2);
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd, 1/4narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2,narrowd, narrowdmin, diawd, diang);
+%% the T
+%% bar
+lft x23 = rt x1 + pcshiftx; top y23 = n1;
+rt x24 = w-pcshiftx; y24=y23;
+draw z23--z24;
+%% stem
+lft x21 = rt x23; top y21 = h;
+x22 = x21; y22 = 0;
+draw_downdiamondstem(21,22,narrowd,narrowdmin,diawd,diang);
+%% the ligature
+x11=x1; top y11=h;
+draw z12--z11--z21;
+ductus:=false;
+penlabels(1,2,3,4,5,11,21,22,23,24,100);
+%% end "t"
+endchar; %% end st ligature
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{''}
+%   The `''' ligature.
+%    \begin{macrocode}
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width);  % right
+draw_pcomma(2,dot_size,comma_width);  % left
+penlabels(1,2); 
+endchar; % end of "''"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{``}
+%   The ```' ligature.
+%    \begin{macrocode}
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2); 
+endchar; % end of "``"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{-}
+%   The `-' (hyphen) character.
+%    \begin{macrocode}
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*((2)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2); 
+endchar; % end of "-"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{--}
+%   The `--' (en-dash) ligature. 
+%    \begin{macrocode}
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*((3)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2); 
+endchar; % end of "--"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{---}
+%   The `---' (em dash) ligature. The em dash is twice the width of the en dash.
+%    \begin{macrocode}
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*((6)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2); 
+endchar; % end of "---"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{&}
+% The ampersand (which is really an `et' ligature).
+% In this case, a `t' with one thin bar.
+%    \begin{macrocode}
+
+cmchar "TGOTH ampersand";
+beginchar("&", 2sb#+hstretch*((7/2)*stem_width#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% E bars
+n1 = 1/2[y3,y2a] + 1/2angdec;
+pickup halfquill;
+lft x11 = pcshiftx; rt x12 = w-pcshiftx; 
+%y11=y12=n1;
+y11 = y12 = 1/2h;
+x13 = x11; x14=x12; y13 = y14 = n1-angdec;
+draw z11--z12; 
+%%draw z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "&"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% The end of this file.
+%    \begin{macrocode}
+%</lig>
+%    \end{macrocode}
+%
+% \subsection{The digits file}
+%
+%    These are arabic digits in the style of the book-hand. They are a
+% modern invention.
+%
+%    \begin{macrocode}
+%<*dig>
+% TGOTHDIG.MF  Program file for Early Gothic digits
+%
+
+%    \end{macrocode}
+% 
+% 
+%
+% \begin{routine}{1}
+% The digit `1'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+penlabels(1,2,100);
+endchar; % end "1"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{2}
+% The digit `2'. 
+%    \begin{macrocode}
+cmchar "TGOTH digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric st; st := stem_width;
+numeric n[];
+n1 := 1/2st;
+pickup quill;
+% stem
+lft x1=pcshiftx+n1; top y1=h-2n1;
+rt x3=w-pcshiftx-n1; y3=3/4h;
+x2=1/2[x1,x3]; top y2= h;
+% foot
+x5= lft x1; bot y5=0;
+x6= rt x3; y6=y5;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_wave(5,6,thin);                          % foot
+draw z1--z2--z3--z5wl;                          % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{3}
+% The digit `3'. 
+%    \begin{macrocode}
+cmchar "TGOTH digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pcshiftx := u;
+pickup quill;
+%% top
+lft x1 = pcshiftx + n1; rt x3 = w - pcshiftx - n1;
+x2 = 1/2[x1,x3]; x4 = 1/2[x1,x2];
+top y2 = h; y3 = 12/16h;
+(z2-z1) = whatever*pdir;
+(z3-z4) = whatever*pdir;
+%% bottom
+x5 = 12/16[x4, rt x4]; x6 = x3; x7 = x2; 
+x18 = x1-n1; x17 = x7;
+bot y7 = thin;
+y5 = 12/16[y4, top y4]; 
+(z5-z6) = whatever*(z2-z3);
+bot y18 = 0; bot y17 = 0;
+
+draw z1--z2--z3--z4;   % top
+draw_wave(18,17,thin);
+draw z5--z6--z18wr;       % bottom
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,17,18,100);
+endchar; % end "3"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{4}
+% The digit `4'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+numeric n[];
+pcshiftx := u;
+pickup quill;
+% the stem
+x1=x2=w-pcshiftx-(wided+widedmin)*st;
+y1=h;  y2=0;
+% the crossbar
+lft x3=pcshiftx; y3=7/16h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);   % stem
+draw z3--z4;                       % horizontal
+draw z1--z3;                       % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%
+% \begin{routine}{5}
+% The digit `5'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pickup quill;
+% for the top
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx+n1; y2=y1;
+% the S curve
+x3=x2; y3=0.5h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=1/2[thick,y3];
+x6=w/2; bot y6=0;
+%%x16 = 12/16[x3,x5]; 
+x16 = lft x5;
+bot y16 = 0;
+lft x17=pcshiftx; bot y17=0;
+z167 = 1/2[z16,z17];
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_wave(2,1,thin);                      % top squiggle
+draw z2wl--z3;                            % vertical
+%%draw_wave(17,16,thin);                    % foot
+draw z17{pdir}..{pdir}z16;              % foot
+draw z3{pdir}..z5{down}..z16;    % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{6}
+% The digit `6'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[]; 
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h - thick; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% head
+x11 = x5; top y11 = h;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x16 = x11; y16 = y11-thin;
+draw z6--z16;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "6"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{7}
+% The digit `7'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+% top bar
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+% bowed leg
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+draw_wave(1,2,thin);         % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{8}
+% The digit `8'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1= pcshiftx; rt x3=w-pcshiftx; top y1 = y3 = 3/4h;
+rt x2 = lft x4 = w/2; top y2=h; bot y4=0;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11 = bot y13 = 1/4h;
+%%ductus:=true;
+if ductus:
+  pickup stylus;
+fi
+%%draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+draw z1--z2--z3--z11--z4--z13--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{9}
+% The digit `9'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[]; 
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = thick;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% foot
+x11 = x5; bot y11 = 0;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x13 = x12; y13 = y12+thin;
+draw z3--z13;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "9"
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{0}
+% The digit `0'.
+%    \begin{macrocode}
+cmchar "TGOTH digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[]; 
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4h;
+y3 = y5 = 1/4h;
+
+draw z1--z2--z3--z4--z5--z6--cycle;
+
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "0"
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% The end of this file.
+%    \begin{macrocode}
+%</dig>
+%    \end{macrocode}
+%
+%
+% \section{The font definition files} \label{sec:fd}
+%
+%    The font comes in normal and bold weights only.
+%
+%    \begin{macrocode}
+%<*fdot1>
+\DeclareFontFamily{OT1}{tgoth}{}
+  \DeclareFontShape{OT1}{tgoth}{m}{n}{ <-8.5> tgothr7 <8.5-15> tgothr10 <15-> tgothr17 }{} 
+  \DeclareFontShape{OT1}{tgoth}{m}{sl}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{it}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{sc}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{u}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{bx}{n}{ <-15> tgothb10 <15-> tgothb17 }{}
+  \DeclareFontShape{OT1}{tgoth}{bx}{it}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{OT1}{tgoth}{bx}{sl}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{OT1}{tgoth}{b}{n}{ <-> sub * tgoth/bx/n }{}
+%</fdot1>
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+%<*fdt1>
+\DeclareFontFamily{T1}{tgoth}{}
+  \DeclareFontShape{T1}{tgoth}{m}{n}{ <-8.5> tgothr7 <8.5-15> tgothr10 <15-> tgothr17 }{} 
+  \DeclareFontShape{T1}{tgoth}{m}{sl}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{m}{it}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{m}{sc}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{m}{u}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{bx}{n}{ <-15> tgothb10 <15-> tgothb17 }{}
+  \DeclareFontShape{T1}{tgoth}{bx}{it}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{T1}{tgoth}{bx}{sl}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{T1}{tgoth}{b}{n}{ <-> sub * tgoth/bx/n }{}
+%</fdt1>
+%    \end{macrocode}
+%
+% \section{The package code} \label{sec:code}
+%
+% \subsection{The \Lpack{tgothic} package}
+%
+%    The \Lpack{tgothic} package is for typesetting short pieces of text
+% in the \thisfont{} fonts.
+%
+%    Announce the name and version of the package, which requires
+% \LaTeXe{}.
+%    \begin{macrocode}
+%<*usc>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tgothic}[2002/12/30 v1.0 package for Gothic Textura fonts]
+%    \end{macrocode}
+%
+% \begin{macro}{\Tienc}
+%  A  macro for testing the value of |\encodingdefault|.
+%    \begin{macrocode}
+\providecommand{\Tienc}{T1}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\tgothfamily}
+%    Selects the \thisfont{} font family in the OT1 or T1 encoding.
+%    \begin{macrocode}
+\ifx\Tienc\encodingdefault
+  \newcommand{\tgothfamily}{\usefont{T1}{tgoth}{m}{n}}
+\else
+  \newcommand{\tgothfamily}{\usefont{OT1}{tgoth}{m}{n}}
+\fi
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\texttgoth}
+%    Text command for the \thisfont{} font family.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\texttgoth}{\tgothfamily}
+%    \end{macrocode}
+% \end{macro}
+%
+%    The end of this package.
+%    \begin{macrocode}
+%</usc>
+%    \end{macrocode}
+%
+% \subsection{The \Lpack{alltgoth} package}
+%
+%    The \Lpack{alltgoth} package is intended for use when the entire document
+% will be typeset in the book-hand. This is a minimal package. Because the
+% book-hand should not contain arabic digits a fuller package would redefine
+% anything numbered in \LaTeX{} to use roman instead of arabic numbering.
+% Also, because of the large |\baselineskip| many other aspects of \LaTeX{}
+% to do with vertical positioning should also be redefined. 
+%
+%
+%    Announce the name and version of the package, which requires
+% \LaTeXe{}. It also uses the \Lpack{tgothic} package.
+%    \begin{macrocode}
+%<*uscall>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{alltgoth}[2002/12/30 v1.0 package for all Gothic Textura fonts]
+\RequirePackage{tgothic}
+%    \end{macrocode}
+%
+% \begin{macro}{\Tienc}
+%  A  macro for testing the value of |\encodingdefault|.
+%    \begin{macrocode}
+\providecommand{\Tienc}{T1}
+%    \end{macrocode}
+% \end{macro}
+%
+%  Redefine the default fonts to be \thisfont, which has only one family 
+% member.
+% \begin{macro}{\rmdefault}
+% \begin{macro}{\sfdefault}
+% \begin{macro}{\ttdefault}
+%    \begin{macrocode}
+\renewcommand{\rmdefault}{tgoth}
+\renewcommand{\sfdefault}{tgoth}
+\renewcommand{\ttdefault}{tgoth}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The `leading' in the book-hands is a function of the |x-height|, which is 
+% normally much
+% greater than for the CMR fonts. I have borrowed code from Frank Jensen's
+% \Lpack{beton} package~\cite{BETON} to do this. The |x-height| (in points) 
+% for the CMR
+% fonts is given in Table~\ref{tab:cmrx}. Note that the CMR design sizes are
+% 5--10, 12, and 17.28 points. The other values given are scaled from these 
+% figures.
+%
+% \begin{table}
+% \centering
+% \caption{The x heights of the CMR and \thisfont{} fonts} \label{tab:cmrx}
+% \begin{tabular}{ccc} \hline
+% Design & CMR & \thisfont \\
+% Size & X Height & X Height \\ \hline
+% 5 & 2.14 & 3.00 \\     ^^A CMR skip = 6pt = 2.8 times
+% 6 & 2.58 & 3.61 \\     ^^A CMR skip = 7pt = 2.7 times
+% 7 & 3.00 & 4.20 \\     ^^A CMR skip = 8pt = 2.7 times
+% 8 & 3.44 & 4.81 \\     ^^A CMR skip = 9.5pt = 2.8 times
+% 9 & 3.86 & 5.40 \\     ^^A CMR skip = 11pt = 2.8 times
+% 10 & 4.31 & 6.03 \\    ^^A CMR skip = 12pt = 2.8 times
+% 11 & 4.74 & 6.64 \\    ^^A CMR skip = 13.6pt = 2.8 times
+% 12 & 5.17 & 7.24 \\    ^^A CMR skip = 14.5pt = 2.8 times
+% 14 & 6.03 & 8.44 \\    ^^A CMR skip = 18pt = 3.0 times
+% 17 & 7.44 & 10.41 \\    ^^A CMR skip = 22pt = 3.0 times
+% 20 & 8.75 & 12.25  \\   ^^A CMR skip = 25pt = 2.9 times
+% 25 & 10.94 & 15.32 \\  ^^A CMR skip = 30pt = 2.7 times
+% \hline
+% \end{tabular}
+% \end{table}
+%
+% \begin{macro}{\tgoth at baselineskip@table}
+% A table of the normal font sizes and the corresponding baselineskip.
+% The distance between baselines for \thisfont{} is over twice 
+% the |x-height|.  ^^A actually 2.5 times to nearest half point
+% 
+%    \begin{macrocode}
+\newcommand{\tgoth at baselineskip@table}{%
+  <\@vpt>7.5%
+  <\@vipt>9.0%
+  <\@viipt>10.5%
+  <\@viiipt>12.0%
+  <\@ixpt>13.5%
+  <\@xpt>15.0%
+  <\@xipt>16.5%
+  <\@xiipt>18.0%
+  <\@xivpt>21.0%
+  <\@xviipt>26.0%
+  <\@xxpt>30.5%
+  <\@xxvpt>38.5}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tgoth at new@setfontsize}
+%  This is a macro that replaces the |\@setfontsize| macro which is called by
+% the font size changing commands.
+%    \begin{macrocode}
+\newcommand{\tgoth at new@setfontsize}[3]{%
+  \edef\@tempa{\def\noexpand\@tempb####1<#2}%
+  \@tempa>##2<##3\@nil{\def\tgoth at baselineskip@value{##2}}%
+  \edef\@tempa{\noexpand\@tempb\tgoth at baselineskip@table<#2}%
+  \@tempa><\@nil
+  \ifx\tgoth at baselineskip@value\@empty
+    \def\tgoth at baselineskip@value{#3}%
+  \fi
+  \tgoth at old@setfontsize{#1}{#2}\tgoth at baselineskip@value}
+%    \end{macrocode}
+% \end{macro}
+%
+% We had better give an author a means of using The Computer Modern fonts
+% if necessary.
+%
+% \begin{macro}{\cmrfamily}
+% \begin{macro}{\cmssfamily}
+% \begin{macro}{\cmttfamily}
+%    These macros select the Computer Modern Roman, Sans, and Typewriter 
+% font families in either the T1 or OT1 encodings.
+%    \begin{macrocode}
+\ifx\Tienc\encodingdefault
+  \providecommand{\cmrfamily}{\usefont{T1}{cmr}{m}{n}}
+  \providecommand{\cmssfamily}{\usefont{T1}{cmss}{m}{n}}
+  \providecommand{\cmttfamily}{\usefont{T1}{cmtt}{m}{n}}
+\else
+  \providecommand{\cmrfamily}{\usefont{OT1}{cmr}{m}{n}}
+  \providecommand{\cmssfamily}{\usefont{OT1}{cmss}{m}{n}}
+  \providecommand{\cmttfamily}{\usefont{OT1}{cmtt}{m}{n}}
+\fi
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\textcmr}
+%    Text command for the Computer Modern Roman font family.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\textcmr}{\cmrfamily}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textcmss}
+%    Text command for the Computer Modern Sans font family.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\textcmss}{\cmssfamily}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textcmtt}
+%    Text command for the Computer Modern Typewriter font family.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\textcmtt}{\cmttfamily}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% At the start of the document, change the |\@setfontsize| macro and call
+% the normal font to implement the change.
+%    \begin{macrocode}
+\AtBeginDocument{%
+  \let\tgoth at old@setfontsize=\@setfontsize
+  \let\@setfontsize=\tgoth at new@setfontsize}
+\AtBeginDocument{\normalsize}
+%    \end{macrocode}
+%
+%
+%    The end of this package.
+%    \begin{macrocode}
+%</uscall>
+%    \end{macrocode}
+%
+%
+%
+%
+%
+% \Finale
+% \PrintIndex
+%
+\endinput
+
+%% \CharacterTable
+%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%%   Digits        \0\1\2\3\4\5\6\7\8\9
+%%   Exclamation   \!     Double quote  \"     Hash (number) \#
+%%   Dollar        \$     Percent       \%     Ampersand     \&
+%%   Acute accent  \'     Left paren    \(     Right paren   \)
+%%   Asterisk      \*     Plus          \+     Comma         \,
+%%   Minus         \-     Point         \.     Solidus       \/
+%%   Colon         \:     Semicolon     \;     Less than     \<
+%%   Equals        \=     Greater than  \>     Question mark \?
+%%   Commercial at \@     Left bracket  \[     Backslash     \\
+%%   Right bracket \]     Circumflex    \^     Underscore    \_
+%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
+%%   Right brace   \}     Tilde         \~}
+
+


Property changes on: trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.ins
===================================================================
--- trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/fonts/bookhands/tgothic.ins	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,101 @@
+%%
+%% tgothic.ins
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\batchfile{tgothic.ins}
+\input docstrip.tex
+\preamble
+
+ Copyright 1999 Peter R. Wilson
+
+ This program is provided under the terms of the
+ LaTeX Project Public License distributed from CTAN
+ archives in directory macros/latex/base/lppl.txt.
+
+Author: Peter Wilson (CUA)
+        now at: peter.r.wilson at boeing.com
+
+\endpreamble
+
+\keepsilent
+
+%%% \Msg{*** Generating the driver file ***}
+%%% \generateFile{tgothic.drv}{t}{\from{tgothic.dtx}{driver}}
+
+\Msg{*** Generating the Metafont files ***}
+
+\usepostamble\empty
+\generateFile{tgothr7.mf}{t}{\from{tgothic.dtx}{base7}}
+\generateFile{tgothr10.mf}{t}{\from{tgothic.dtx}{base10}}
+\generateFile{tgothr17.mf}{t}{\from{tgothic.dtx}{base17}}
+\generateFile{tgothb7.mf}{t}{\from{tgothic.dtx}{base7b}}
+\generateFile{tgothb10.mf}{t}{\from{tgothic.dtx}{base10b}}
+\generateFile{tgothb17.mf}{t}{\from{tgothic.dtx}{base17b}}
+\generateFile{tgothl.mf}{t}{\from{tgothic.dtx}{min}}
+\generateFile{tgothu.mf}{t}{\from{tgothic.dtx}{maj}}
+\generateFile{tgothtitle.mf}{t}{\from{tgothic.dtx}{mfd}}
+\generateFile{tgothpunct.mf}{t}{\from{tgothic.dtx}{punct}}
+\generateFile{tgothlig.mf}{t}{\from{tgothic.dtx}{lig}}
+\generateFile{tgothdig.mf}{t}{\from{tgothic.dtx}{dig}}
+
+\Msg{*** Generating the Font Definition files ***}
+\usepostamble\defaultpostamble
+
+\generateFile{ot1tgoth.fd}{t}{\from{tgothic.dtx}{fdot1}}
+\generateFile{t1tgoth.fd}{t}{\from{tgothic.dtx}{fdt1}}
+
+\Msg{*** Generating the LaTeX2e package files ***}
+
+\generateFile{tgothic.sty}{t}{\from{tgothic.dtx}{usc}}
+\generateFile{alltgoth.sty}{t}{\from{tgothic.dtx}{uscall}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* files into directories searched by TeX:}
+\Msg{*}
+\Msg{* Move these into the font source area:}
+\Msg{* \space\space tgothr7.mf}
+\Msg{* \space\space tgothr10.mf}
+\Msg{* \space\space tgothr17.mf}
+\Msg{* \space\space tgothb7.mf}
+\Msg{* \space\space tgothb10.mf}
+\Msg{* \space\space tgothb17.mf}
+\Msg{* \space\space tgothl.mf}
+\Msg{* \space\space tgothu.mf}
+\Msg{* \space\space tgothtitle.mf}
+\Msg{* \space\space tgothpunct.mf}
+\Msg{* \space\space tgothlig.mf}
+\Msg{* \space\space tgothdig.mf}
+\Msg{*}
+\Msg{* Move these into the LaTeX macro area:}
+\Msg{* \space\space ot1tgoth.fd}
+\Msg{* \space\space t1tgoth.fd}
+\Msg{* \space\space tgothic.sty}
+\Msg{* \space\space alltgoth.sty}
+\Msg{*}
+\Msg{*}
+\Msg{* To produce the documentation run the files ending with}
+\Msg{* `.dtx' through LaTeX.}
+\Msg{* Process any name.idx file by:}
+\Msg{* \space\space\space\space makeindex -s gind.ist name}
+\Msg{* Process any name.glo file by:}
+\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***********************************************************}
+
+\endinput

Added: trunk/Master/texmf-dist/tex/latex/bookhands/alltgoth.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bookhands/alltgoth.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/bookhands/alltgoth.sty	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,65 @@
+%%
+%% This is file `alltgoth.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `uscall')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{alltgoth}[2002/12/30 v1.0 package for all Gothic Textura fonts]
+\RequirePackage{tgothic}
+\providecommand{\Tienc}{T1}
+\renewcommand{\rmdefault}{tgoth}
+\renewcommand{\sfdefault}{tgoth}
+\renewcommand{\ttdefault}{tgoth}
+\newcommand{\tgoth at baselineskip@table}{%
+  <\@vpt>7.5%
+  <\@vipt>9.0%
+  <\@viipt>10.5%
+  <\@viiipt>12.0%
+  <\@ixpt>13.5%
+  <\@xpt>15.0%
+  <\@xipt>16.5%
+  <\@xiipt>18.0%
+  <\@xivpt>21.0%
+  <\@xviipt>26.0%
+  <\@xxpt>30.5%
+  <\@xxvpt>38.5}
+\newcommand{\tgoth at new@setfontsize}[3]{%
+  \edef\@tempa{\def\noexpand\@tempb####1<#2}%
+  \@tempa>##2<##3\@nil{\def\tgoth at baselineskip@value{##2}}%
+  \edef\@tempa{\noexpand\@tempb\tgoth at baselineskip@table<#2}%
+  \@tempa><\@nil
+  \ifx\tgoth at baselineskip@value\@empty
+    \def\tgoth at baselineskip@value{#3}%
+  \fi
+  \tgoth at old@setfontsize{#1}{#2}\tgoth at baselineskip@value}
+\ifx\Tienc\encodingdefault
+  \providecommand{\cmrfamily}{\usefont{T1}{cmr}{m}{n}}
+  \providecommand{\cmssfamily}{\usefont{T1}{cmss}{m}{n}}
+  \providecommand{\cmttfamily}{\usefont{T1}{cmtt}{m}{n}}
+\else
+  \providecommand{\cmrfamily}{\usefont{OT1}{cmr}{m}{n}}
+  \providecommand{\cmssfamily}{\usefont{OT1}{cmss}{m}{n}}
+  \providecommand{\cmttfamily}{\usefont{OT1}{cmtt}{m}{n}}
+\fi
+\DeclareTextFontCommand{\textcmr}{\cmrfamily}
+\DeclareTextFontCommand{\textcmss}{\cmssfamily}
+\DeclareTextFontCommand{\textcmtt}{\cmttfamily}
+\AtBeginDocument{%
+  \let\tgoth at old@setfontsize=\@setfontsize
+  \let\@setfontsize=\tgoth at new@setfontsize}
+\AtBeginDocument{\normalsize}
+\endinput
+%%
+%% End of file `alltgoth.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/bookhands/alltgoth.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/bookhands/ot1tgoth.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bookhands/ot1tgoth.fd	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/bookhands/ot1tgoth.fd	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,30 @@
+%%
+%% This is file `ot1tgoth.fd',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `fdot1')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+\DeclareFontFamily{OT1}{tgoth}{}
+  \DeclareFontShape{OT1}{tgoth}{m}{n}{ <-8.5> tgothr7 <8.5-15> tgothr10 <15-> tgothr17 }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{sl}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{it}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{sc}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{m}{u}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{OT1}{tgoth}{bx}{n}{ <-15> tgothb10 <15-> tgothb17 }{}
+  \DeclareFontShape{OT1}{tgoth}{bx}{it}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{OT1}{tgoth}{bx}{sl}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{OT1}{tgoth}{b}{n}{ <-> sub * tgoth/bx/n }{}
+\endinput
+%%
+%% End of file `ot1tgoth.fd'.


Property changes on: trunk/Master/texmf-dist/tex/latex/bookhands/ot1tgoth.fd
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/bookhands/t1tgoth.fd
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bookhands/t1tgoth.fd	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/bookhands/t1tgoth.fd	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,30 @@
+%%
+%% This is file `t1tgoth.fd',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `fdt1')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+\DeclareFontFamily{T1}{tgoth}{}
+  \DeclareFontShape{T1}{tgoth}{m}{n}{ <-8.5> tgothr7 <8.5-15> tgothr10 <15-> tgothr17 }{}
+  \DeclareFontShape{T1}{tgoth}{m}{sl}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{m}{it}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{m}{sc}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{m}{u}{ <-> sub * tgoth/m/n }{}
+  \DeclareFontShape{T1}{tgoth}{bx}{n}{ <-15> tgothb10 <15-> tgothb17 }{}
+  \DeclareFontShape{T1}{tgoth}{bx}{it}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{T1}{tgoth}{bx}{sl}{ <-> sub * tgoth/bx/n }{}
+  \DeclareFontShape{T1}{tgoth}{b}{n}{ <-> sub * tgoth/bx/n }{}
+\endinput
+%%
+%% End of file `t1tgoth.fd'.


Property changes on: trunk/Master/texmf-dist/tex/latex/bookhands/t1tgoth.fd
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/bookhands/tgothic.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/bookhands/tgothic.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/bookhands/tgothic.sty	2018-01-30 00:25:16 UTC (rev 46480)
@@ -0,0 +1,29 @@
+%%
+%% This is file `tgothic.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx  (with options: `usc')
+%% 
+%%  Copyright 1999 Peter R. Wilson
+%% 
+%%  This program is provided under the terms of the
+%%  LaTeX Project Public License distributed from CTAN
+%%  archives in directory macros/latex/base/lppl.txt.
+%% 
+%% Author: Peter Wilson (CUA)
+%%         now at: peter.r.wilson at boeing.com
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{tgothic}[2002/12/30 v1.0 package for Gothic Textura fonts]
+\providecommand{\Tienc}{T1}
+\ifx\Tienc\encodingdefault
+  \newcommand{\tgothfamily}{\usefont{T1}{tgoth}{m}{n}}
+\else
+  \newcommand{\tgothfamily}{\usefont{OT1}{tgoth}{m}{n}}
+\fi
+\DeclareTextFontCommand{\texttgoth}{\tgothfamily}
+\endinput
+%%
+%% End of file `tgothic.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/bookhands/tgothic.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/libexec/ctan2tds
===================================================================
--- trunk/Master/tlpkg/libexec/ctan2tds	2018-01-30 00:05:57 UTC (rev 46479)
+++ trunk/Master/tlpkg/libexec/ctan2tds	2018-01-30 00:25:16 UTC (rev 46480)
@@ -4723,9 +4723,6 @@
      next;
    }
    
-   # tgothic filenames conflict with ptex fonts.
-   next if $d eq "tgothic";
-   
    my $target = "$docdir/$d";
    next if ! -d $target;  # samples/readme files
    print "\t PROCESS Wilson subdir $d\n";



More information about the tex-live-commits mailing list