summaryrefslogtreecommitdiff
path: root/fonts/archaic/oldprsn/oldprsn.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/archaic/oldprsn/oldprsn.dtx')
-rw-r--r--fonts/archaic/oldprsn/oldprsn.dtx2167
1 files changed, 2167 insertions, 0 deletions
diff --git a/fonts/archaic/oldprsn/oldprsn.dtx b/fonts/archaic/oldprsn/oldprsn.dtx
new file mode 100644
index 0000000000..628a3927ac
--- /dev/null
+++ b/fonts/archaic/oldprsn/oldprsn.dtx
@@ -0,0 +1,2167 @@
+% \iffalse meta-comment
+%
+% oldprsn.dtx
+% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+% Copyright 1999--2005 Peter R. Wilson
+%
+% This work may be distributed and/or modified under the
+% conditions of the Latex Project Public License, either
+% version 1.3 of this license or (at your option) any
+% later version.
+% The latest version of the license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of
+% LaTeX version 2003/06/01 or later.
+%
+% This work has the LPPL maintenance status "author-maintained".
+%
+% This work consists of the files listed in the README file.
+%
+%
+%<*driver>
+\documentclass[twoside]{ltxdoc}
+\usepackage{url}
+\usepackage[draft=false,
+ plainpages=false,
+ pdfpagelabels,
+ bookmarksnumbered,
+ hyperindex=false
+ ]{hyperref}
+\providecommand{\phantomsection}{}
+\OnlyDescription %% comment this out for the full glory
+\EnableCrossrefs
+\CodelineIndex
+\setcounter{StandardModuleDepth}{1}
+\makeatletter
+ \@mparswitchfalse
+\makeatother
+\renewcommand{\MakeUppercase}[1]{#1}
+\pagestyle{headings}
+\newenvironment{addtomargins}[1]{%
+ \begin{list}{}{%
+ \topsep 0pt%
+ \addtolength{\leftmargin}{#1}%
+ \addtolength{\rightmargin}{#1}%
+ \listparindent \parindent
+ \itemindent \parindent
+ \parsep \parskip}%
+ \item[]}{\end{list}}
+\begin{document}
+ \raggedbottom
+ \DocInput{oldprsn.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{250}
+%
+% \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@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@dblfloat,\end@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@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@ne,\m@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@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}{1999/03/14}{First public release}
+% \changes{v1.1}{2000/09/24}{Added numerals}
+% \changes{v1.2}{2005/06/17}{Added map file}
+%
+% \def\fileversion{v1.0} \def\filedate{1999/03/14}
+% \def\fileversion{v1.1} \def\filedate{2000/09/24}
+% \def\fileversion{v1.2} \def\filedate{2005/06/17}
+% \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{\BC}{\textsc{bc}}
+% \newcommand{\AD}{\textsc{ad}}
+% \newcommand{\thisfont}{Old Persian}
+%
+%
+% \title{The \Lpack{Old Persian} font\thanks{This
+% file has version number \fileversion, last revised
+% \filedate.}}
+%
+% \author{%
+% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\
+% Herries Press }
+% \date{\filedate}
+% \maketitle
+% \begin{abstract}
+% The \Lpack{oldprsn} bundle provides a set of fonts for the
+% \thisfont{} cuneiform script which was used between about 500 and 350~\BC{}
+% in Persia. This is one in a series for archaic scripts.
+% \end{abstract}
+% \tableofcontents
+%
+%
+% \section{Introduction}
+%
+% The Phoenician alphabet and characters is a direct ancestor of our modern day
+% Latin alphabet and fonts.
+% The font presented here is one of a series of fonts intended to show how
+% the modern Latin alphabet has evolved from its original Phoenician form
+% to its present day appearance.
+%
+% 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}.
+%
+% Section~\ref{sec:usc} describes the usage of the package.
+% Commented code for the fonts and
+% source code for the package is in later sections.
+%
+% \subsection{An alphabetic tree}
+%
+% Scholars are reasonably agreed that all the world's alphabets are descended
+% from a Semitic alphabet invented about 1600~\BC{} in the Middle
+% East~\cite{DRUCKER95}. The word `Semitic' refers
+% to the family of languages used in the geographical area from
+% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and
+% west to the valley of the Euphrates.
+%
+% The Phoenician alphabet was stable by about 1100~\BC{} and the script was
+% written right to left. In earlier times the writing direction was variable,
+% and so were
+% the shapes and orientation of the characters. The alphabet consisted of
+% 22 letters and they were named after things. For example, their first two
+% letters were called \textit{aleph} (ox), and \textit{beth} (house).
+% The Phoenician script had
+% only one case --- unlike our modern fonts which have both upper- and
+% lower-cases. In modern terms the Phoenician abecedary was: \\
+% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\
+% where the `Y' (\textit{vau}) character was sometimes written as `F', and
+% `ts' stands for the \textit{tsade} character.
+%
+% The Greek alphabet is one of the descendants of the Phoenician alphabet;
+% another was Aramaic which is the ancestor of the Arabic, Persian and Indian
+% scripts.
+% Initially Greek was written right to left but around the 6th C~\BC{} became
+% \textit{boustrophedron}, meaning that the lines
+% alternated in direction. At about 500~\BC{} the writing direction stabilised
+% as left to
+% right. The Greeks modified the Phoenician alphabet to match the vocalisation
+% of their language. They kept the Phoenician names of the letters, suitably
+% `greekified', so \textit{aleph} became the familar \textit{alpha} and
+% \textit{beth} became \textit{beta}. At this
+% point the names of the letters had no meaning. Their were several variants
+% of the Greek character glyphs until they were finally fixed in Athens in
+% 403~\BC.
+% The Greeks did not develop a lower-case
+% script until about 600--700~\AD.
+%
+% The Etruscans based their alphabet on the Greek one, and again modified it.
+% However, the Etruscans wrote right to left, so their borrowed characters are
+% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan
+% script consisted of only one case; they died out before ever needing a
+% lower-case script. The Etruscan script was used up until the first century
+% \AD, even though the Etruscans themselves had dissapeared by that time.
+%
+%
+% In turn, the Romans based their alphabet on the Etruscan one, but as they
+% wrote left to right, the characters were again mirrored (although the early
+% Roman inscriptions are boustrophedron).
+%
+% As the English alphabet is descended from the Roman alphabet
+% it has a pedigree of some three and a half thousand years.
+%
+% \section{The \Lpack{oldprsn} package} \label{sec:usc}
+%
+% The earliest cuneiform writing, about 2800~\BC, was used by
+% the Sumerians in the Middle East~\cite{WALKER87,HEALEY90}.
+% Other cuneiform scripts were used for Akkadian (2300~\BC) and
+% Babylonian (2000~\BC). These were partly ideographic and partly
+% syllabic scripts. The last dated use of a cuneiform script was
+% in 75~\AD.
+%
+% It is claimed that the \thisfont{} cuneiform script was invented by order
+% of the Achaemenid Persian king Darius~I (521--486~\BC)
+% for inscriptions on royal monuments. In everday use the Persian scribes
+% used the Elamite cuneiform or Aramaic scripts. \thisfont{} was
+% abandoned after Ataxerxes~III (358--338~\BC).
+%
+% The script is a syllabary, with 3 vowels and 33 syllabic glyphs.
+% There are also 5 ideograms, some in multiple forms, for \textit{king},
+% \textit{country}, \textit{earth}, \textit{god}, and \textit{Ahuramazda}.
+% The last of these is the name of the Persian god. There are also glyphs for
+% numbers and a word divider. Walker~\cite{WALKER87} gives general information
+% on how cuneiform numerals
+% were used to form numbers; for detailed information
+% consult Ifrah's magnificent work~\cite{IFRAH00}. Basically, the
+% writers used a system like the Romans where large numbers were formed
+% by adding smaller numbers.
+%
+% Table~\ref{tab1} lists the
+% translitered values of the script and Table~\ref{tab2} lists the
+% ideographs, numerals, and the word divider.
+%
+% \DescribeMacro{\copsnfamily}
+% This command selects the \thisfont{} font family.
+% The family name is |copsn|.
+%
+% \DescribeMacro{\textcopsn}
+% The command |\textcopsn{|\meta{ASCII/commands}|}|
+% typesets \meta{ASCII/commands} in the
+% \thisfont{} font.
+%
+% I have provided two means of accessing the \thisfont{} glyphs:
+% (a)~by ASCII characters, and (b)~via commands.
+% These are shown in Tables~\ref{tab1} and~\ref{tab2}.
+%
+%
+% \begin{table}
+% \centering
+% \caption{The Old Persian syllabary}\label{tab1}
+% \begin{tabular}{ccl} \hline
+% Old Persian & ASCII & Command \\ \hline
+% \textit{a} & a & |\Oa| \\
+% \textit{i} & i & |\Oi| \\
+% \textit{u} & u & |\Ou| \\
+% \textit{ka} & k & |\Oka| \\
+% \textit{ku} & K & |\Oku| \\
+% \textit{xa} & x & |\Oxa| \\
+% \textit{ga} & g & |\Oga| \\
+% \textit{gu} & G & |\Ogu| \\
+% \textit{ca} & c & |\Oca| \\
+% \textit{ja} & j & |\Oja| \\
+% \textit{ji} & J & |\Oji| \\
+% \textit{ta} & t & |\Ota| \\
+% \textit{tu} & T & |\Otu| \\
+% \textit{tha} & o & |\Otha| \\
+% \textit{\c{c}a} & C & |\Occa| \\
+% \textit{da} & d & |\Oda| \\
+% \textit{di} & P & |\Odi| \\
+% \textit{du} & D & |\Odu| \\
+% \textit{na} & n & |\Ona| \\
+% \textit{nu} & N & |\Onu| \\
+% \textit{pa} & p & |\Opa| \\
+% \textit{fa} & f & |\Ofa| \\
+% \textit{ba} & b & |\Oba| \\
+% \textit{ma} & m & |\Oma| \\
+% \textit{mi} & w & |\Omi| \\
+% \textit{mu} & M & |\Omu| \\
+% \textit{ya} & y & |\Oya| \\
+% \textit{ra} & r & |\Ora| \\
+% \textit{ru} & R & |\Oru| \\
+% \textit{la} & l & |\Ola| \\
+% \textit{va} & v & |\Ova| \\
+% \textit{vi} & V & |\Ovi| \\
+% \textit{sa} & s & |\Osa| \\
+% \textit{\v{s}a} & S & |\Osva| \\
+% \textit{za} & z & |\Oza| \\
+% \textit{ha} & h & |\Oha| \\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+% \begin{table}
+% \centering
+% \caption{The Old Persian ideographs}\label{tab2}
+% \begin{tabular}{ccl} \hline
+% Old Persian & ASCII & Command \\ \hline
+% \textit{x\v{s}\={a}yathiya} & X & |\Oking| \\
+% \textit{dahy\={a}u\v{s}} & q & |\Ocountrya| \\
+% \textit{dahy\={a}u\v{s}} & Q & |\Ocountryb| \\
+% \textit{b\={u}mi\v{s}} & L & |\Oearth| \\
+% \textit{baga} & B & |\Ogod| \\
+% \textit{Auramazd\={a}} & e & |\OAura| \\
+% \textit{Ahuramazda} & E & |\OAurb| \\
+% \textit{Ahuramazda} & F & |\OAurc| \\
+% \textit{1} & 1 & |\Oone| \\
+% \textit{2} & 2 & |\Otwo| \\
+% \textit{10} & 3 & |\Oten| \\
+% \textit{20} & 4 & |\Otwenty| \\
+% \textit{100} & 5 & |\Ohundred| \\
+% \DeleteShortVerb{\|}\texttt{|}\MakeShortVerb{\|} & : & |\Owd| \\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+% \DescribeMacro{\translitcopsn}
+% The command |\translitcopsn{|\meta{commands}|}| will typeset the
+% transliteration of the \thisfont{} character commands (those in the
+% third column of the Tables).
+%
+% \DescribeMacro{\translitcopsnfont}
+% The font used for the transliteration is defined by this macro,
+% which is initialised to an italic font (i.e., |\itshape|).
+%
+% \StopEventually{
+% \bibliographystyle{alpha}
+% \begin{thebibliography}{GMS94}
+%
+% \bibitem[Dav97]{DAVIES97}
+% W. V. Davies.
+% \newblock \emph{Reading the Past: Egyptian Hieroglyphs}.
+% \newblock University of California Press/British Museum, 1997.
+% \newblock (ISBN 0-520-06287-6)
+%
+% \bibitem[Dru95]{DRUCKER95}
+% Johanna Drucker.
+% \newblock \emph{The Alphabetic Labyrinth}.
+% \newblock Thames and Hudson, 1995.
+%
+% \bibitem[Fir93]{FIRMAGE93}
+% Richard A.~Firmage.
+% \newblock \emph{The Alphabet Abecedarium}.
+% \newblock David R.~Goodine, 1993.
+%
+%
+% \bibitem[GMS94]{GOOSSENS94}
+% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+% \newblock \emph{The LaTeX Companion}.
+% \newblock Addison-Wesley Publishing Company, 1994.
+%
+% \bibitem[Hea90]{HEALEY90}
+% John F.~Healey.
+% \newblock \emph{Reading the Past: The Early Alphabet}.
+% \newblock University of California Press/British Museum, 1990.
+% \newblock (ISBN 0-520-07309-6)
+%
+% \bibitem[Ifr00]{IFRAH00}
+% Georges Ifrah.
+% \newblock \emph{The Universal History of Numbers}.
+% \newblock John Wiley \& Sons, 2000 (ISBN 0-471-37568-3).
+% \newblock (Originally published as \textit{Histoire universelle des chiffres}.
+% Robert Laffort, Paris, 1994.)
+%
+% \bibitem[Wal87]{WALKER87}
+% C.~B.~F.~Walker.
+% \newblock \emph{Reading the Past: Cuneiform}.
+% \newblock University of California Press/British Museum, 1987.
+% \newblock (ISBN 0-520-06115-2)
+%
+% \end{thebibliography}
+% \PrintIndex
+%
+% }
+%
+%
+%
+% \section{The Metafont code} \label{sec:mf}
+%
+% \subsection{The parameter file}
+%
+% We deal with the parameter file first, and start by announcing
+% what it is for.
+% \begin{macrocode}
+%<*up>
+%%% COPSN10.MF Computer Old Persian Cuneiform font 10 point design size.
+
+% \end{macrocode}
+% Specify the font size.
+% \begin{macrocode}
+
+font_identifier:="oldprsn"; font_size 10pt#;
+
+% \end{macrocode}
+%
+%
+% \begin{macro}{u}
+% \begin{macro}{ht}
+% \begin{macro}{s}
+% \begin{macro}{o}
+% \begin{macro}{px}
+% \begin{macro}{font-normal-space}
+% \begin{macro}{font-normal-shrink}
+% \begin{macro}{font-x-height}
+% \begin{macro}{font-quad}
+% Define the very simple font parameters.
+% \begin{macrocode}
+u#:=.2pt#; % unit width
+ht#:=8pt#; % height of characters (CM cap-height is approx 6.8pt)
+s#:=1.5pt#; % width correction (right and left)
+o#:=1/20pt#; % overshoot
+px#:=.4pt#; % horizontal width of pen
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% Now for the driver (file) for the font.
+%
+% \subsection{The driver file}
+%
+% In a more complex font this would be in a separate driver file.
+%
+% \begin{macrocode}
+font_coding_scheme:="Old Persian glyphs";
+mode_setup;
+
+% \end{macrocode}
+%
+% \begin{macro}{ho}
+% \begin{macro}{leftloc}
+% \begin{macro}{py}
+% Perform additional setup.
+% \begin{macrocode}
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{midloc}
+% \begin{macro}{rightloc}
+% \begin{macro}{aw}
+% Variables for the middldle and rightmost xcoord of a character, and
+% the actual width of a character.
+% \begin{macrocode}
+numeric midloc, rightloc, aw;
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{stylus}
+% Define the pen.
+% \begin{macrocode}
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{trht}
+% \begin{macro}{trbs}
+% The normal height and base of a triangle.
+% \begin{macrocode}
+numeric trht, trbs;
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{th}
+% \begin{macro}{tb}
+% The ratio of the normal height and base of a triangle with respect to
+% the character height.
+% \begin{macrocode}
+numeric th, tb;
+th = 6/24; tb = 8/24;
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{wiht}
+% \begin{macro}{wibs}
+% The normal height and base of a wing.
+% \begin{macrocode}
+numeric wiht, wibs;
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{wh}
+% \begin{macro}{wb}
+% The ratio of the normal height and base of a wing with respect to
+% the character height.
+% \begin{macrocode}
+numeric wh, wb;
+wh = 10/24; wb = 20/24;
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{beginglyph}
+% A macro to save some typing of beginchar arguments, and also assigns
+% values to various variables.
+%
+% \begin{macrocode}
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s); aw := rightloc-leftloc;
+ trht := th*h; trbs := tb*h;
+ wiht := wh*h; wibs := wb*h;
+ pickup stylus enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{cmchar}
+% |cmchar| should precede each character
+% \begin{macrocode}
+let cmchar=\;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{triangle}
+% |triangle($, ht, base, angle)| calculates the points on a triangle
+% whose apex is at |z$|, of height |ht| and base width |base| rotated
+% at |angle| from pointing along the positive |x| axis.
+% \begin{macrocode}
+
+def triangle(suffix $)(expr ht, bs, ang) =
+ path pth[];
+ pair pr[];
+ pr1 := (x$-ht,y$); % midpoint of base in default position
+ pr2 := pr1 shifted (1/2bs*up); % base points
+ pr3 := pr1 shifted (1/2bs*down);
+ z$trl = pr2 rotatedaround(z$, ang);
+ z$trr = pr3 rotatedaround(z$, ang);
+ z$trc = 1/2[z$trl,z$trr];
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{trir}
+% |trir($, ht, base)| calculates the points on a triangle
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the positive |x| direction (i.e., Right).
+% \begin{macrocode}
+
+def trir(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$-ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc+1/2bs); % base points
+ z$trr = (x$trc, y$trc-1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{triu}
+% |triu($, ht, base)| calculates the points on a triangle
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the positive |y| direction (i.e. Up).
+% \begin{macrocode}
+
+def triu(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$, y$-ht); % midpoint of base
+ z$trl = (x$-1/2bs, y$trc); % base points
+ z$trr = (x$+1/2bs, y$trc); % base points
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{tril}
+% |tril($, ht, base)| calculates the points on a triangle
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the negative |x| direction (i.e., Left).
+% \begin{macrocode}
+
+def tril(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$+ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc-1/2bs); % base points
+ z$trr = (x$trc, y$trc+1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{trid}
+% |tril($, ht, base)| calculates the points on a triangle
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the negative |x| direction (i.e., Left).
+% \begin{macrocode}
+
+def tril(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$+ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc-1/2bs); % base points
+ z$trr = (x$trc, y$trc+1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{trid}
+% |trid($, ht, base)| calculates the points on a triangle
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the negative |y| direction (i.e. Down).
+% \begin{macrocode}
+
+def trid(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$, y$+ht); % midpoint of base
+ z$trl = (x$+1/2bs, y$trc); % base points
+ z$trr = (x$-1/2bs, y$trc); % base points
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{wing}
+% |wing($, ht, base, angle)| calculates the points on a `flying wing'
+% whose apex is at |z$|, of height |ht| and base width |base| rotated
+% at |angle| from pointing along the negative |x| axis.
+% \begin{macrocode}
+
+def wing(suffix $)(expr ht, bs, ang) =
+ path pth[];
+ pair pr[];
+ pr1 := (x$+ht,y$); % midpoint of base in default position
+ pr2 := pr1 shifted (1/2bs*down); % base points
+ pr3 := pr1 shifted (1/2bs*up);
+ pr4 := pr1 rotatedaround(z$, ang);
+ z$wil = pr2 rotatedaround(z$, ang);
+ z$wir = pr3 rotatedaround(z$, ang);
+ z$wic = 1/2[z$,pr4];
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{wingl}
+% |wingl($, ht, base)| calculates the points on a `flying wing'
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the negative |x| direction (i.e., Left).
+% \begin{macrocode}
+
+def wingl(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$+ht, y$-1/2bs); % base points
+ z$wir = (x$wil, y$+1/2bs);
+ z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{wingd}
+% |wingd($, ht, base)| calculates the points on a `flying wing'
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the negative |y| direction (i.e., Down).
+% \begin{macrocode}
+
+def wingd(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$+1/2bs, y$+ht); % base points
+ z$wir = (x$-1/2bs, y$wil);
+ z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{wingr}
+% |wingr($, ht, base)| calculates the points on a `flying wing'
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the positive |x| direction (i.e., Right).
+% \begin{macrocode}
+
+def wingr(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$-ht, y$+1/2bs); % base points
+ z$wir = (x$wil, y$-1/2bs);
+ z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{wingu}
+% |wingu($, ht, base)| calculates the points on a `flying wing'
+% whose apex is at |z$|, of height |ht| and base width |base|
+% pointing in the positive |y| direction (i.e., Up).
+% \begin{macrocode}
+
+def wingu(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$-1/2bs, y$-ht); % base points
+ z$wir = (x$+1/2bs, y$wil);
+ z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+% \end{macrocode}
+% \end{macro}
+%
+% Finally the code (file) that does all the work.
+%
+% \subsection{The glyph code}
+%
+% The following code generates the glyphs for the \thisfont{} font.
+% The characters
+% are defined in the original alphabetic ordering.
+%
+%
+% \begin{macro}{a}
+% The \thisfont{} A.
+% \begin{macrocode}
+cmchar "Old Persian letter a";
+beginglyph("a", (3tb+2th));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z12trc=(midloc,y1trr); % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z11trl=z12trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z13trr=z12trl; % right pin
+ trid(13, trht, trbs); fill pth13;
+ z13'=(x13,0); draw z13tic--z13';
+ labels(1,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{i}
+% The \thisfont{} I.
+% \begin{macrocode}
+cmchar "Old Persian letter i";
+beginglyph("i", (2tb)); %% 3tb too large
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2trc=(x11trl,y1); % second top head
+ trir(2, trht, trbs); fill pth2;
+ labels(1,2,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{u}
+% The \thisfont{} U.
+% \begin{macrocode}
+cmchar "Old Persian letter u";
+beginglyph("u", (2tb+wh)); %% 3tb+wh too large
+ z31=(leftloc,1/2h); % left wing
+ wingl(31, wiht, wibs); fill pth31;
+ z1trl=(x31wil,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{k}
+% The \thisfont{} KA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ka (k)";
+beginglyph("k", (3tb)); %% 4tb too large
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(x1trl,1/2h); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{K}
+% The \thisfont{} KU.
+% \begin{macrocode}
+cmchar "Old Persian syllable ku (K)";
+beginglyph("K", (tb+wh));
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2trr=(x1wil,h); % pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ labels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{x}
+% The \thisfont{} XA.
+% \begin{macrocode}
+cmchar "Old Persian syllable xa (x)";
+beginglyph("x", (2tb+2wh));
+ z1=(leftloc,1/2h); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil,h); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{g}
+% The \thisfont{} GA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ga (g)";
+beginglyph("g", (3tb+wh));
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z11trr=(x1wil,h); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z21trc=(x12trl,y1); % small pin
+ trir(21, trht, trbs); fill pth21;
+ z21'=(rightloc,y21); draw z21tic--z21';
+ labels(1,2,11,12,21);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{G}
+% The \thisfont{} syllable GU.
+% \begin{macrocode}
+cmchar "Old Persian syllable gu (G)";
+beginglyph("G", (2tb+th+wh)); %% 3tb+wh too large
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z12trc=(x1wil, 1/2h); % middle pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(rightloc,y13); draw z13tic--z13';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z111trc=1/2[z11trc,z11'];
+ trir(111, trht, trbs); fill pth111;
+ labels(1,2,3,4,5,6,11,12,13,111);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{c}
+% The \thisfont{} syllable CA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ca (c)";
+beginglyph("c", (4tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z11trr=(x1, y1trr); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2trl=z12trl; % bottom pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1'=(x2trl,y1); draw z1tic--z1'; % body of top pin
+ labels(1,2,3,4,5,6,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{j}
+% The \thisfont{} syllable JA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ja (j)";
+beginglyph("j", (th+tb+wh));
+ z1trc=(leftloc,1/2h); % hor pin
+ trir(1, trht, trbs); fill pth1;
+ z2=(rightloc-wiht,y1); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ draw z1tic--z2;
+ z11trc=(1/2[x1,x2], h); % vert pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ labels(1,2,3,4,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{J}
+% The \thisfont{} syllable JI.
+% \begin{macrocode}
+cmchar "Old Persian syllable ji (J)";
+beginglyph("J",(7/2tb+wh)); %% 4tb+wh too large
+ z1trc=(leftloc, 1/2h); % left pin
+ trir(1, trht, trbs); fill pth1;
+ z2=(x1+trbs, y1); % wing
+ draw z1tic--z2;
+ wingl(2, wiht, wibs); fill pth2;
+ z12trc=(x2wil,y1); % middle pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc, y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc, y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(rightloc, y13); draw z13tic--z13';
+ labels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{t}
+% The \thisfont{} syllable TA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ta (t)";
+beginglyph("t", (4tb+th)); %% 5tb too large
+ z3trl=(rightloc,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z1trl=(x3trr-trbs,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(leftloc,1/2h); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ z2trc=(1/2[x1,x3], y11trl); % middle pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ labels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{T}
+% The \thisfont{} syllable TU.
+% \begin{macrocode}
+cmchar "Old Persian syllable tu (T)";
+beginglyph("T", (4tb+th)); %% 5tb too large
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trr=z1trl; % center pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z3trr=z2trl; % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z11trl=(x3trl, 1/2h); % short hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,3,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{o}
+% The \thisfont{} syllable THA.
+% \begin{macrocode}
+cmchar "Old Persian syllable tha (o)";
+beginglyph("o", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,1/2h); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3trr=(x2wil,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ labels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{C}
+% The \thisfont{} syllable C(cedilla)A.
+% \begin{macrocode}
+cmchar "Old Persian syllable c(cedilla)a (C)";
+beginglyph("C", (2tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z2trl=z1trr; % center pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z11trr=z2trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{d}
+% The \thisfont{} syllable DA.
+% \begin{macrocode}
+cmchar "Old Persian syllable da (d)";
+beginglyph("d", (2tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{P}
+% The \thisfont{} syllable DI.
+% \begin{macrocode}
+cmchar "Old Persian syllable di (P)";
+beginglyph("P", (3tb+th)); %% 4tb too large
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z1trl=z2trr; % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z12trc=(leftloc,1/2h); % center pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(x1,y13); draw z13tic--z13';
+ labels(1,2,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{D}
+% The \thisfont{} syllable DU.
+% \begin{macrocode}
+cmchar "Old Persian syllable du (D)";
+beginglyph("D", (2tb+th+wh)); %% 3tb+wh too large
+ z1=(leftloc,h/2); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z12trc=(x1wil,h/2); % center pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x2,y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2,y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(x2,y13); draw z13tic--z13';
+ labels(1,2,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{n}
+% The \thisfont{} syllable NA.
+% \begin{macrocode}
+cmchar "Old Persian syllable na (n)";
+beginglyph("n", (2tb+wh));
+ z1=(rightloc-wiht, h/2); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z11trr=(leftloc,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{N}
+% The \thisfont{} syllable NU.
+% \begin{macrocode}
+cmchar "Old Persian syllable nu (N)";
+beginglyph("N", (2tb+2wh));
+ z1=(leftloc, h/2); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil, y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{p}
+% The \thisfont{} syllable PA.
+% \begin{macrocode}
+cmchar "Old Persian syllable pa (p)";
+beginglyph("p", (2tb));
+ z1trc=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z2trl=(x1,y1); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z3trl=(x1trc,y2); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(rightloc,y3); draw z3tic--z3';
+ z11trr=z3trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,3,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{f}
+% The \thisfont{} syllable FA.
+% \begin{macrocode}
+cmchar "Old Persian syllable fa (f)";
+beginglyph("f", (tb+2wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11=(x1,h/2); % left wing
+ wingl(11, wiht, wibs); fill pth11;
+ z12=(x11wil,y11); % right wing
+ wingl(12, wiht, wibs); fill pth12;
+ labels(1,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{b}
+% The \thisfont{} syllable BA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ba (b)";
+beginglyph("b", (3tb));
+ z1trl=(rightloc,h); % right pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(leftloc,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{m}
+% The \thisfont{} syllable MA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ma (m)";
+beginglyph("m", (4tb+th)); %% 5tb too large
+ z3trl=(rightloc,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z2trl=(x3trr,y3); % center pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z1trl=(x2trr,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trc=(leftloc, h/2); % hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ labels(1,2,3,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{w}
+% The \thisfont{} syllable MI.
+% \begin{macrocode}
+cmchar "Old Persian syllable mi (w)";
+beginglyph("w", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,h/2); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil, h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{M}
+% The \thisfont{} syllable MU.
+% \begin{macrocode}
+cmchar "Old Persian syllable mu (M)";
+beginglyph("M", (5tb+wh));
+ z5trc=(rightloc-2trbs, h/2); % right pin
+ trir(5, trht, trbs); fill pth5;
+ z5'=(rightloc,y5); draw z5tic--z5';
+ z4=(x5trc-wiht,y5); % wing
+ wingl(4, wiht, wibs); fill pth4;
+ z2trc=(leftloc+trht,y5); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=z4; draw z2tic--z2';
+ z1trr=(leftloc,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(3/4[x1,x2'],y1); draw z1tic--z1';
+ z3trl=(leftloc,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x1',y3); draw z3tic--z3';
+ labels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{y}
+% The \thisfont{} syllable YA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ya (y)";
+beginglyph("y", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,h/2); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trc=(x2wil, h/2); % right pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{r}
+% The \thisfont{} syllable RA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ra (r)";
+beginglyph("r", (3tb+th)); %% 4tb too large
+ z11trl=(rightloc, h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z2trc=(leftloc+trht,h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x11,y2); draw z2tic--z2';
+ z1trr=(leftloc,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(leftloc,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{R}
+% The \thisfont{} syllable RU.
+% \begin{macrocode}
+cmchar "Old Persian syllable ru (R)";
+beginglyph("R", (tb+th+2wh)); %% 2tb+2wh too large
+ z3=(rightloc-wiht,h/2); % right wing
+ wingl(3, wiht, wibs); fill pth3;
+ z2=(x3-wiht,y3); % left wing
+ wingl(2, wiht, wibs); fill pth2;
+ z1trc=(leftloc,y3); % pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=z2; draw z1tic--z1';
+ labels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{l}
+% The \thisfont{} syllable LA.
+% \begin{macrocode}
+cmchar "Old Persian syllable la (l)";
+beginglyph("l", (3tb+th)); %% 4tb too large
+ z11trl=(rightloc,h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z2trc=(leftloc,h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x11,y2); draw z2tic--z2';
+ z1trr=(x2,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{v}
+% The \thisfont{} syllable VA.
+% \begin{macrocode}
+cmchar "Old Persian syllable va (v)";
+beginglyph("v", (5tb));
+ z11trc=(leftloc,h/2); % left hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x11+trbs,y11); draw z11tic--z11';
+ z12trc=(x11',h); % vert pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2=(x12+1/2trbs+2trht, h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1trr=(x2trc-trht,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{V}
+% The \thisfont{} syllable VI.
+% \begin{macrocode}
+cmchar "Old Persian syllable vi (V)";
+beginglyph("V", (2tb));
+ z1trl=(midloc,1/3h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trr=z1trl; % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z3trc=(x1trl,h); % top pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,y1trl); draw z3tic--z3';
+ z11trc=(leftloc, 1/2[y1trl,y3trl]); % hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,3,4,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{s}
+% The \thisfont{} syllable SA.
+% \begin{macrocode}
+cmchar "Old Persian syllable sa (s)";
+beginglyph("s", (3tb+th)); %% 4tb too large
+ z12trr=(leftloc,h); % vert pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2=(x12+1/2trbs+2trht, h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1trr=(x2trc-trht,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{S}
+% The \thisfont{} syllable SvA.
+% \begin{macrocode}
+cmchar "Old Persian syllable sva (S)";
+beginglyph("S", (2wh));
+ z1=(leftloc,1/2wibs); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1+wiht,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3trl=(leftloc,h); % pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(rightloc,y3); draw z3tic--z3';
+ labels(1,2,3);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{z}
+% The \thisfont{} syllable ZA.
+% \begin{macrocode}
+cmchar "Old Persian syllable za (z)";
+beginglyph("z", (4tb));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z11trc=(x1trl,h/2); % hor pins
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2trr,y11); draw z11tic--z11';
+ z12trc=1/2[z11trc,z11'];
+ trir(12, trht, trbs); fill pth12;
+ labels(1,2,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{h}
+% The \thisfont{} syllable HA.
+% \begin{macrocode}
+cmchar "Old Persian syllable ha (h)";
+beginglyph("h", (2tb+2wh));
+ z1=(leftloc,h/2); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(rightloc-wiht,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x1wil,y1); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x2,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{X}
+% The \thisfont{} word: king.
+% \begin{macrocode}
+cmchar "Old Persian word: king (X)";
+beginglyph("X", (3tb+2wh));
+ z4=(rightloc-wiht, h/2); % right wing
+ wingl(4, wiht, wibs); fill pth4;
+ z11trc=(x4,h); % center vert pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z3wir=(x11trr,y4wir); % left wing
+ wingl(3, wiht, wibs); fill pth3;
+ z1trr=(leftloc,y4); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x3,y1); draw z1tic--z1';
+ z2trl=z1trr; % bottom pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x1',y2); draw z2tic--z2';
+ labels(1,2,3,4,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{q}
+% The \thisfont{} word: country (version a).
+% \begin{macrocode}
+cmchar "Old Persian word: country (version a) (q)";
+beginglyph("q", (9/4tb+wh)); %% 5/2tb+wh too large
+ numeric n[];
+ n1 := 1/2wiht;
+ n2 := 1/2wibs;
+ z12trl=(rightloc,h); % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z11trl=z12trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z1=(leftloc, h-1/2n2); % top left wing
+ wingl(1, n1, n2); fill pth1;
+ z2=(x1wil, y1); % top right wing
+ wingl(2, n1, n2); fill pth2;
+ z3=(x1, 1/2n2); % bottom left wing
+ wingl(3, n1, n2); fill pth3;
+ z4=(x2, y3); % bottom right wing
+ wingl(4, n1, n2); fill pth4;
+ labels(1,2,3,4,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{Q}
+% The \thisfont{} word: country (version b).
+% \begin{macrocode}
+cmchar "Old Persian word: country (version b) (Q)";
+beginglyph("Q", (5/4tb+wh)); %% 3/2tb+wh too large
+ numeric n[];
+ n1 := 1/2wiht;
+ n2 := 1/2wibs;
+ z11trl=(rightloc,h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z1=(leftloc, h-1/2n2); % top left wing
+ wingl(1, n1, n2); fill pth1;
+ z2=(x1wil, y1); % top right wing
+ wingl(2, n1, n2); fill pth2;
+ z3=(x1, 1/2n2); % bottom left wing
+ wingl(3, n1, n2); fill pth3;
+ z4=(x2, y3); % bottom right wing
+ wingl(4, n1, n2); fill pth4;
+ labels(1,2,3,4,11,12);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{L}
+% The \thisfont{} word: earth.
+% \begin{macrocode}
+cmchar "Old Persian word: earth (L)";
+beginglyph("L", (3wh));
+ z1=(leftloc, wiht); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil, y1); % center wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3=(x2wil, y1); % right wing
+ wingl(3, wiht, wibs); fill pth3;
+ z11trr=(x1,y1wir); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trc=(x2,y11);
+ trir(12, trht, trbs); fill pth12;
+ z13trc=(x3,y11);
+ trir(13, trht, trbs); fill pth13;
+ labels(1,2,3,11,12,13);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \begin{macro}{B}
+% The \thisfont{} word: god.
+% \begin{macrocode}
+cmchar "Old Persian word: god (B)";
+beginglyph("B", (2tb+2wh));
+ z4=(rightloc-wiht, h/2); % right wing
+ wingl(4, wiht, wibs); fill pth4;
+ z3=(x4-wiht, y4); % left wing
+ wingl(3, wiht, wibs); fill pth3;
+ z1trc=(leftloc,y4); % pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=z3; draw z1tic--z1';
+ z2trc=1/2[z1trc,z1'];
+ trir(2, trht, trbs); fill pth2;
+ labels(1,2,3,4);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{e}
+% The \thisfont{} word: Auramazda (verion a).
+% \begin{macrocode}
+cmchar "Old Persian word: Auramazda (version a) (e)";
+beginglyph("e", (3tb+wh));
+ z43=(rightloc-wiht, h/2); % wing
+ wingl(43, wiht, wibs); fill pth43;
+ z46trc=(x43,h); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,0); draw z46tic--z46';
+ z14trr=(leftloc,h/2); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/2[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+% trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+% trir(32, trht, trbs); fill pth32;
+
+% z21trl=(x24trc, y12trr); % pin 1
+% trir(21, trht, trbs); fill pth21;
+% z21'=(x46,y21); draw z21tic--z21';
+% z31=(x34,y21);
+% trir(31, trht, trbs); fill pth31;
+%
+% z25trr=(x24trc, y14trl); % pin 4
+% trir(25, trht, trbs); fill pth25;
+% z25'=(x46,y25); draw z25tic--z25';
+% z35=(x34,y25);
+% trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{E}
+% The \thisfont{} word: Auramazda (verion b).
+% \begin{macrocode}
+cmchar "Old Persian word: Auramazda (version b) (E)";
+beginglyph("E", (4tb));
+%% z43=(rightloc-wiht, h/2); % wing
+%% wingl(43, wiht, wibs); fill pth43;
+ z46trc=(rightloc,h+trht); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,-1/2trbs); draw z46tic--z46';
+ z14trr=(leftloc,h/2); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+ trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+ trir(32, trht, trbs); fill pth32;
+
+ z21trl=(x24trc, y12trr); % pin 1
+ trir(21, trht, trbs); fill pth21;
+ z21'=(x46,y21); draw z21tic--z21';
+ z31=(x34,y21);
+ trir(31, trht, trbs); fill pth31;
+
+ z25trr=(x24trc, y14trl); % pin 4
+ trir(25, trht, trbs); fill pth25;
+ z25'=(x46,y25); draw z25tic--z25';
+ z35=(x34,y25);
+ trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{F}
+% The \thisfont{} word: Auramazda (verion c).
+% \begin{macrocode}
+cmchar "Old Persian word: Auramazda (version c) (F)";
+beginglyph("F", (4tb+wh));
+ z43=(rightloc-wiht, h/2); % wing
+ wingl(43, wiht, wibs); fill pth43;
+ z46trc=(x43,h+trht); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,-1/2trbs); draw z46tic--z46';
+ z14trr=(leftloc,y43); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+ trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+ trir(32, trht, trbs); fill pth32;
+
+ z21trl=(x24trc, y12trr); % pin 1
+ trir(21, trht, trbs); fill pth21;
+ z21'=(x46,y21); draw z21tic--z21';
+ z31=(x34,y21);
+ trir(31, trht, trbs); fill pth31;
+
+ z25trr=(x24trc, y14trl); % pin 4
+ trir(25, trht, trbs); fill pth25;
+ z25'=(x46,y25); draw z25tic--z25';
+ z35=(x34,y25);
+ trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+% \begin{macro}{1}
+% The \thisfont{} numeral 1
+% \begin{macrocode}
+cmchar "Old Persian numeral 1 (1)";
+beginglyph("1", (tb));
+ z1trc=(midloc,h);
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ labels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{2}
+% The \thisfont{} numeral 2
+% \begin{macrocode}
+cmchar "Old Persian numeral 2 (2)";
+beginglyph("2", (tb));
+ z1trc=(midloc,h);
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trc=1/2[z1trc,z1'];
+ trid(2, trht, trbs); fill pth2;
+ labels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{3}
+% The \thisfont{} numeral 10
+% \begin{macrocode}
+cmchar "Old Persian numeral 10 (3)";
+beginglyph("3", (wh));
+ z1=(leftloc,h/2);
+ wingl(1, wiht, wibs); fill pth1;
+ labels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{4}
+% The \thisfont{} numeral 20
+% \begin{macrocode}
+cmchar "Old Persian numeral 20 (4)";
+beginglyph("4", (1/2wh));
+ z1=(leftloc,3/4h);
+ wingl(1, 1/2wiht, 1/2wibs); fill pth1;
+ z2=(leftloc,1/4h);
+ wingl(2, 1/2wiht, 1/2wibs); fill pth2;
+ labels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{5}
+% The \thisfont{} numeral 100
+% \begin{macrocode}
+cmchar "Old Persian numeral 100 (5)";
+beginglyph("5", (tb+2th));
+ z1trl=(leftloc,h); % top pins
+ trir(1, trht, trbs); fill pth1;
+ z2trr=(rightloc,h);
+ tril(2, trht, trbs); fill pth2;
+ draw z1tic--z2tic;
+ z11trc=(1/2[x1,x2],y1trr); % vertical pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ labels(1,2,11);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+%
+%
+% \begin{macro}{:}
+% The \thisfont{} word divider.
+% \begin{macrocode}
+cmchar "Old Persian word divider (:)";
+beginglyph(":", (3tb));
+ numeric alpha;
+ alpha := trbs;
+ z1=(leftloc+alpha, h-alpha);
+ z2=(rightloc-alpha, alpha);
+ triangle(1, trht, trbs, angle((z2-z1)));
+ fill pth1; draw z1tic--z2;
+ labels(1,2);
+endchar;
+
+% \end{macrocode}
+% \end{macro}
+%
+% The end of the glyphs.
+%
+% \begin{macrocode}
+end
+
+%</up>
+% \end{macrocode}
+%
+%
+%
+% \section{The font definition files} \label{sec:fd}
+%
+% \begin{macrocode}
+%<*fdot1>
+\DeclareFontFamily{OT1}{copsn}{}
+ \DeclareFontShape{OT1}{copsn}{m}{n}{ <-> copsn10 }{}
+ \DeclareFontShape{OT1}{copsn}{bx}{n}{ <-> sub copsn/m/n }{}
+ \DeclareFontShape{OT1}{copsn}{b}{n}{ <-> sub copsn/m/n }{}
+ \DeclareFontShape{OT1}{copsn}{m}{sl}{ <-> sub copsn/m/n }{}
+ \DeclareFontShape{OT1}{copsn}{m}{it}{ <-> sub copsn/m/n }{}
+%</fdot1>
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+%<*fdt1>
+\DeclareFontFamily{T1}{copsn}{}
+ \DeclareFontShape{T1}{copsn}{m}{n}{ <-> copsn10 }{}
+ \DeclareFontShape{T1}{copsn}{bx}{n}{ <-> sub copsn/m/n }{}
+ \DeclareFontShape{T1}{copsn}{b}{n}{ <-> sub copsn/m/n }{}
+ \DeclareFontShape{T1}{copsn}{m}{sl}{ <-> sub copsn/m/n }{}
+ \DeclareFontShape{T1}{copsn}{m}{it}{ <-> sub copsn/m/n }{}
+%</fdt1>
+% \end{macrocode}
+%
+% \section{The \Lpack{oldprsn} package code} \label{sec:code}
+%
+% Announce the name and version of the package, which requires
+% \LaTeXe{}.
+% \begin{macrocode}
+%<*usc>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{oldprsn}[2000/09/24 v1.1 package for Old Persian font]
+% \end{macrocode}
+%
+%
+% \begin{macro}{\copsnfamily}
+% Selects the font family in the OT1 encoding.
+% \begin{macrocode}
+\newcommand{\copsnfamily}{\usefont{OT1}{copsn}{m}{n}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textcopsn}
+% Text command for the font family.
+% \begin{macrocode}
+\DeclareTextFontCommand{\textcopsn}{\copsnfamily}
+
+% \end{macrocode}
+% \end{macro}
+%
+% The commands for the signs.
+% \begin{macrocode}
+\chardef\Oa=`a
+\chardef\Oi=`i
+\chardef\Ou=`u
+\chardef\Oka=`k
+\chardef\Oku=`K
+\chardef\Oxa=`x
+\chardef\Oga=`g
+\chardef\Ogu=`G
+\chardef\Oca=`c
+\chardef\Oja=`j
+\chardef\Oji=`J
+\chardef\Ota=`t
+\chardef\Otu=`T
+\chardef\Otha=`o
+\chardef\Occa=`C
+\chardef\Oda=`d
+\chardef\Odi=`P
+\chardef\Odu=`D
+\chardef\Ona=`n
+\chardef\Onu=`N
+\chardef\Opa=`p
+\chardef\Ofa=`f
+\chardef\Oba=`b
+\chardef\Oma=`m
+\chardef\Omi=`w
+\chardef\Omu=`M
+\chardef\Oya=`y
+\chardef\Ora=`r
+\chardef\Oru=`R
+\chardef\Ola=`l
+\chardef\Ova=`v
+\chardef\Ovi=`V
+\chardef\Osa=`s
+\chardef\Osva=`S
+\chardef\Oza=`z
+\chardef\Oha=`h
+\chardef\Oking=`X
+\chardef\Ocountrya=`q
+\chardef\Ocountryb=`Q
+\chardef\Oearth=`L
+\chardef\Ogod=`B
+\chardef\OAura=`e
+\chardef\OAurb=`E
+\chardef\OAurc=`F
+\chardef\Owd=`:
+\chardef\Oone=`1
+\chardef\Otwo=`2
+\chardef\Oten=`3
+\chardef\Otwenty=`4
+\chardef\Ohundred=`5
+
+% \end{macrocode}
+%
+% \begin{macro}{\translitcopsn}
+% \begin{macro}{\translitcopsnfont}
+% |\translitcopsn{|\meta{char-commands}|}| typesets a transliteration of
+% the \thisfont{} character commands. These are typeset with the
+% |\translitcopsnfont|.
+% \begin{macrocode}
+\newcommand{\translitcopsn}[1]{{%
+ \@translitO\translitcopsnfont #1}}
+\newcommand{\translitcopsnfont}{\itshape}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@translitO}
+% This macro redefines all the character producing commands for use within
+% |\translitcopsn|. It is important not to have any spaces in the definition.
+% \begin{macrocode}
+\newcommand{\@translitO}{%
+\def\Oa{a-}%
+\def\Oi{i-}%
+\def\Ou{u-}%
+\def\Oka{ka-}%
+\def\Oku{ku-}%
+\def\Oxa{xa-}%
+\def\Oga{ga-}%
+\def\Ogu{gu-}%
+\def\Oca{ca-}%
+\def\Oja{ja-}%
+\def\Oji{ji-}%
+\def\Ota{ta-}%
+\def\Otu{tu-}%
+\def\Otha{tha-}%
+\def\Occa{\c{c}a-}%
+\def\Oda{da-}%
+\def\Odi{di-}%
+\def\Odu{du-}%
+\def\Ona{na-}%
+\def\Onu{nu-}%
+\def\Opa{pa-}%
+\def\Ofa{fa-}%
+\def\Oba{ba-}%
+\def\Oma{ma-}%
+\def\Omi{mi-}%
+\def\Omu{mu-}%
+\def\Oya{ya-}%
+\def\Ora{ra-}%
+\def\Oru{ru-}
+\def\Ola{la-}%
+\def\Ova{va-}%
+\def\Ovi{vi-}%
+\def\Osa{sa-}%
+\def\Osva{\v{s}a-}%
+\def\Oza{za-}%
+\def\Oha{ha-}%
+\def\Oking{x\v{s}\={a}yathiya\space}%
+\def\Ocountrya{dahy\={a}u\v{s}\space}%
+\def\Ocountryb{dahy\={a}u\v{s}\space}%
+\def\Oearth{b\={u}mi\v{s}\space}%
+\def\Ogod{baga\space}%
+\def\OAura{Auramazd\={a}\space}%
+\def\OAurb{Ahuramazda\space}%
+\def\OAurc{Ahuramazda\space}%
+\def\Owd{:\space}%
+\def\Oone{1+}%
+\def\Otwo{2+}%
+\def\Oten{10+}%
+\def\Otwenty{20+}%
+\def\Ohundred{100+}%
+}
+
+% \end{macrocode}
+% \end{macro}
+%
+% The end of this package.
+% \begin{macrocode}
+%</usc>
+% \end{macrocode}
+%
+% \section{The map file}
+%
+% Just a short map file.
+% \changes{v1.2}{2005/06/17}{Added the map file}
+%
+% \begin{macrocode}
+%<*map>
+copsn10 Archaic-Old-Persian <copsn10.pfb
+%</map>
+% \end{macrocode}
+%
+%
+% \Finale
+%
+\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 \~}
+
+