From 10e86525da5f0224078b5bb299e21166a36631fc Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Wed, 11 Jan 2006 23:49:08 +0000
Subject: trunk/Master/texmf-dist/source/fonts

git-svn-id: svn://tug.org/texlive/trunk@111 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/source/fonts/archaic/linearb.dtx | 5690 ++++++++++++++++++++
 1 file changed, 5690 insertions(+)
 create mode 100644 Master/texmf-dist/source/fonts/archaic/linearb.dtx

(limited to 'Master/texmf-dist/source/fonts/archaic/linearb.dtx')

diff --git a/Master/texmf-dist/source/fonts/archaic/linearb.dtx b/Master/texmf-dist/source/fonts/archaic/linearb.dtx
new file mode 100644
index 00000000000..6c94d0adade
--- /dev/null
+++ b/Master/texmf-dist/source/fonts/archaic/linearb.dtx
@@ -0,0 +1,5690 @@
+% \iffalse meta-comment
+%
+% linearb.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.
+% 
+% 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[twoside]{ltxdoc}
+\usepackage{docmfp}
+%%%%% \providecommand{\DescribeVariable}[1]{} \newenvironment{routine}[1]{}{}
+\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{linearb.dtx}
+\end{document}
+%</driver>
+%
+%
+% \fi
+%
+% \CheckSum{780}
+%
+% \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/06/20}{First public release}
+% \changes{v1.1}{2001/08/01}{Changed \cs{Bpiii} to \cs{Bpaiii}}
+% \changes{v1.2}{2005/06/22}{Added many more glyphs and just one MF file}
+% \changes{v1.2}{2005/06/22}{Added map file}
+%
+% \def\fileversion{v1.0} \def\filedate{1999/06/20}
+% \def\fileversion{v1.1} \def\filedate{2001/08/01}
+% \def\fileversion{v1.2} \def\filedate{2005/06/22}
+% \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{\jurgen}{J\"urgen Kraus}
+%
+% \title{The \Lpack{Linearb} font\thanks{This
+%        file has version number \fileversion, last revised
+%        \filedate.}}
+%
+% \author{%
+% Peter Wilson\thanks{With thanks to J\"{u}rgen Kraus who corrected my
+% misinterpretations of some of the signs.} \\
+% Herries Press\thanks{\texttt{herries dot press at earthlink dot net}}
+% }
+% \date{\filedate}
+% \maketitle
+% \begin{abstract}
+%    The \Lpack{linearb} bundle provides a font for the Linear B
+% syllabary which was used for writing Greek in the Bronze Age.
+% \end{abstract}
+% \tableofcontents
+% \listoftables
+%
+% 
+%
+% \section{Introduction}
+%
+%    The font presented here is a rendition of (part of) the Linear B script
+% that was used in the Bronze Age, particularly on Crete.
+% It is one of a series of fonts that was initially intended
+%nnn to show how the 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 day 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{linearb} package} \label{sec:usc}
+%
+%    In 1900~\AD{} Arthur Evans (later Sir Arthur) began excavating the
+% palace of Knossos on Crete, which had been destroyed about 1400~\BC. 
+% There he found clay tablets with unknown
+% writing on them. There were two different scripts which he called Linear~A
+% and Linear~B. Sir Arthur was convinced that the script was used for an
+% unknown Minoan language. He tried his hand at deciphering the scripts but
+% made virtually no progess. This was in spite of the fact that the Cypriot
+% script, which had several signs in common with Linear~B, had been deciphered
+% in the 1870's and shown to be used for writing Greek.
+% Later, in 1939, Carl W.~Blegen of the University
+% of Cincinnati led a combined American-Greek excavation at Pylos on
+% the mainland where he also found tablets inscribed with Linear~B.
+% During his lifetime Sir Arthur published only a few
+% of the tablets from Knossos. In 1951 the Pylos tablets were published
+% and in 1952, eleven years after Sir Athur's death, the Knossos tablets 
+% were published.
+%
+%    Michael Ventris (1922--1956) was an English architect who was 
+% fascinated by the
+% problem of deciphering Linear~B. He had studied the few published examples
+% of the script and had decided that Linear~B was a syllabary rather than
+% an alphabet because of the number of different signs. With the 
+% publication of the Pylos and Knossos tablets
+% he had a larger corpus to work on. He ignored the clue of the Cypriot
+% script and independantly determined that Linear~B was probably
+% used to write Greek, and then sought the help of John Chadwick of Cambridge
+% University whose speciality was the early history of the Greek language. 
+% They published their decipherment of Linear~B in the
+% \textit{Journal of Hellenic Studies}, 1953. Tragically, Ventris was killed
+% in a car accident in 1956.
+%
+%    Apart from the specialised literature, the story of Linear~B can be
+% found in~\cite{CHADWICK87} and~\cite{GORDON87} among others.
+%
+%    Linear~B was in use during the approximate period 1500--1200~\BC,
+% for writing in Mycenaean Greek. This was some centuries 
+% before the Greek alphabet
+% was invented. Perhaps surprisingly, Linear~B has no other relationship
+% to the Greek alphabet except that they can both be used to write dialects
+% of the same language.
+%
+%    Linear~B is basically a syllabary, where there is a sign for each 
+% syllable. There are 60 basic signs and 16 optional signs for clarifying
+% meanings; there are still some 11 signs whose meanings have not yet
+% been identified. The script was used for record keeping, not for literary
+% purposes. It has signs for numbering in a decimal system. The script also
+% includes some ideographic signs, such as symbols for various kinds of goods
+% and possesions,
+% for example wheat or sheep or wool or wine. 
+% There is also a system for weights and measures within
+% the script.
+%
+%    The font presented here is based on the signs illustrated by 
+% Chadwick~\cite{CHADWICK87}. \jurgen{} (\texttt{jkraus@uni-goettingen.de})
+% was kind enough to review my first renditions and gave valuable advice
+% concerning my errors of interpretation. 
+% The font consists of the basic, optional,
+% unidentified, and numbering signs only.
+%
+%
+%
+% \DescribeMacro{\linbfamily}
+%    This command selects the Linear B font family. 
+% The family name is |linb|.
+%
+% \DescribeMacro{\textlinb}
+% The command |\textlinb{|\meta{text}|}| typesets \meta{text} in the
+% Linear B font.
+%
+%    All the character commands start with |\B| (for the B in Linear~B).
+%
+%    The commands (and their ASCII equivalents) for the 60 basic signs
+% are given in Table~\ref{tab:basic}; you can use either the command or
+% its ASCII keyboard equivalent. There are 5 signs for the 5 vowels and
+% the remaining 55 signs are two-character syllables.
+% The apparently random
+% ASCII mapping is so that a companion Cypriot font~\cite{CYPRIOT} 
+% can use the same ASCII
+% characters for syllables common to both scripts.
+%
+% \begin{table}
+% \centering
+% \caption{Commands and encoding for the basic signs}\label{tab:basic}
+% \begin{tabular}{cccccc} \hline
+%    & a        & e        & i        & o        & u        \\ \hline
+%    & |\Ba|  a & |\Be|  e & |\Bi|  i & |\Bo|  o & |\Bu|  u \\
+% d  & |\Bda| d & |\Bde| D & |\Bdi| f & |\Bdo| g & |\Bdu| x \\
+% j  & |\Bja| j & |\Bje| J &          & |\Bjo| b & |\Bju| L \\
+% k  & |\Bka| k & |\Bke| K & |\Bki| c & |\Bko| h & |\Bku| v \\
+% m  & |\Bma| m & |\Bme| M & |\Bmi| y & |\Bmo| A & |\Bmu| B \\
+% n  & |\Bna| n & |\Bne| N & |\Bni| C & |\Bno| E & |\Bnu| F \\
+% p  & |\Bpa| p & |\Bpe| P & |\Bpi| G & |\Bpo| H & |\Bpu| I \\
+% q  & |\Bqa| q & |\Bqe| Q & |\Bqi| X & |\Bqo| 8 &          \\
+% r  & |\Bra| r & |\Bre| R & |\Bri| O & |\Bro| U & |\Bru| V \\
+% s  & |\Bsa| s & |\Bse| S & |\Bsi| Y & |\Bso| 1 & |\Bsu| 2 \\
+% t  & |\Bta| t & |\Bte| T & |\Bti| 3 & |\Bto| 4 & |\Btu| 5 \\
+% w  & |\Bwa| w & |\Bwe| W & |\Bwi| 6 & |\Bwo| 7 &          \\
+% z  & |\Bza| z & |\Bze| Z &          & |\Bzo| 9 &          \\
+% \hline
+% \end{tabular}
+% \end{table}
+%     
+%    The commands for the 16 optional signs
+% are given in Table~\ref{tab:optional}. Each entry is of the form: X |\Bcom|, 
+% where X is the value of the sign and |\Bcom| is the command. Where the
+% value includes a digit, I have used the corresponding roman numeral in the
+% command.
+%
+% \changes{v1.1}{2001/08/01}{Changed `p3' to `pa3' in optional signs table}
+% \changes{v1.1}{2001/08/01}{Changed \cs{Bpiii} to \cs{Bpaiii} in optional signs table}
+% \begin{table}
+% \centering
+% \caption{Commands for the optional signs}\label{tab:optional}
+% \begin{tabular}{lll} \hline
+%  a2  |\Baii|  & a3  |\Baiii|  & au  |\Bau|   \\
+%  dwe |\Bdwe|  & dwo |\Bdwo|   &              \\
+%  nwa |\Bnwa|  &               &              \\
+%  pa3 |\Bpaiii| & pu2 |\Bpuii|  & pte |\Bpte|  \\
+%  ra2 |\Braii| & ra3 |\Braiii| & ro2 |\Broii| \\
+%  swa |\Bswa|  & swi |\Bswi|   &              \\
+%  ta2 |\Btaii| & two |\Btwo|   &              \\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+% The commands for the unidentified signs all have the form |\BUr|, where
+% |r| is a roman numeral. There are either eleven or twelve of these signs,
+% depending on the particular source for the character descriptions.
+% The commands range from |\BUi| to |\BUxii|. The last of these signs,
+% which looks like a `B', 
+% may be classified as `unidentified' in one source, while another source
+%  may give it the meaning \textit{twe}; 
+% the commands |\BUxii| and |\Btwe| both print the same sign.
+%
+%     The commands for the numbers are given in Table~\ref{tab:num}. The
+% commands are of the form |\BNr|, where |r| is the roman number for the
+% numeral in question.
+%
+% \begin{table}
+% \centering
+% \caption{Commands for the numbers}\label{tab:num}
+% \begin{tabular}{lllll} \hline
+%     & digits     & tens      & hundreds  & thousands \\ \hline
+% 1   & |\BNi|     & |\BNx|    & |\BNc|    & |\BNm|    \\
+% 2   & |\BNii|    & |\BNxx|   & |\BNcc|   &   \\
+% 3   & |\BNiii|   & |\BNxxx|  & |\BNccc|  &   \\
+% 4   & |\BNiv|    & |\BNxl|   & |\BNcd|   &   \\
+% 5   & |\BNv|     & |\BNl|    & |\BNd|    &   \\
+% 6   & |\BNvi|    & |\BNlx|   & |\BNdc|   &   \\
+% 7   & |\BNvii|   & |\BNlxx|  & |\BNdcc|  &   \\
+% 8   & |\BNviii|  & |\BNlxxx| & |\BNdccc| &   \\
+% 9   & |\BNix|    & |\BNxc|   & |\BNcm|   &   \\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+%     The Linear~B script includes a word divider, which is a short vertical
+% line. In this font, there are three synonomous dividers which are produced
+% by the ASCII keyboard characters |: , /| (i.e., colon or comma or slash).
+% Using any of these when typesetting the script produce the same word divider
+% sign. 
+%
+% \begin{table}
+% \centering
+% \caption{Commands for weights and measures}\label{tab:measures}
+% \begin{tabular}{llcll} \hline
+% Weight & & & Volume & \\ \hline
+% Lightest & \cs{BPwta} & & Smallest & \cs{BPvola} \\
+%          & \cs{BPwtb} & &          & \cs{BPvolb} \\
+%          & \cs{BPwtc} & & Largest (dry) & \cs{BPvolcd} \\
+%          & \cs{BPwtd} & & Largest (fluid) & \cs{BPvolcf} \\
+% Heaviest & \cs{BPtalent} & & & \\ \hline
+% \end{tabular}
+% \end{table}
+%
+% \begin{table}
+% \centering
+% \caption{Commands for commodities}\label{tab:commodities}
+% \begin{tabular}{llcll} \hline
+% cloth & \cs{BPcloth} & & wool & \cs{BPwool} \\
+% wheat & \cs{BPwheat} & & barley & \cs{BPbarley} \\
+% wine  & \cs{BPwine} & & olive oil & \cs{BPolive} \\
+% bronze & \cs{BPbronze} & & gold & \cs{BPgold} \\ \hline
+% \end{tabular}
+% \end{table}
+%
+% \begin{table}
+% \centering
+% \caption{Commands for people and livestock}\label{tab:animals}
+% \begin{tabular}{llcllcll} \hline
+%       & & & man & \cs{BPman} & & woman & \cs{BPwoman} \\
+% sheep & \cs{BPsheep} & & ram & \cs{BPram} & & ewe & \cs{BPewe} \\
+% goat  & \cs{BPgoat} & & he goat & \cs{BPbilly} & & she goat & \cs{BPnanny} \\
+% pig   & \cs{BPpig} & & boar & \cs{BPboar} & & sow & \cs{BPsow} \\
+% ox    & \cs{BPox} & & bull & \cs{BPbull} & & cow & \cs{BPcow} \\
+% horse & \cs{BPhorse} & & foal & \cs{BPfoal} & & &  \\ \hline
+% \end{tabular}
+% \end{table}
+%
+%  
+% \begin{table}
+% \centering
+% \caption{Commands for weapons}\label{tab:weapons}
+% \begin{tabular}{llcll} \hline
+% chariot & \cs{BPchariot} & & sword & \cs{BPsword} \\
+% chariot body & \cs{BPchassis} & & arrow & \cs{BParrow} \\
+% (chariot) wheel & \cs{BPwheel} & & spear & \cs{BPspear} \\ \hline
+% \end{tabular}
+% \end{table}
+%
+%    A variety of glyphs are provided encompassing some of the pictograms in
+% the script. These are given in the following tables. All the commands
+% start with \verb?\BP? (the \verb?P? for pictogram).
+%
+% Table~\ref{tab:measures} lists the commands for the system of weights, 
+% and for volumetric quantities. There is an assumption that the heaviest 
+% weight might be a \textit{talent}, which was the most common one in 
+% archaic times. There are different pictograms for the largest volume for
+% dry materials (e.g., flour) and liquids.
+%
+% Table~\ref{tab:commodities} lists pictograms for various goods, and 
+% table~\ref{tab:animals} is for livestock as well as pictograms for 
+% a man and a woman.
+%
+% Pictograms related to warlike activities are in table~\ref{tab:weapons}.
+%
+%  
+%  
+%
+%
+% \DescribeMacro{\translitlinb}
+%  The command |\translitlinb{|\meta{char-commands}|}|, where \meta{char-commands}
+% are the Linear~B character commands, will typeset a transliteration of the
+% signs. For example,\\
+% |\translitlinb{\Bti\Bme:\Bto/\Bre\Bti\Bre}| will generate \\
+% \textit{ti-me-:to-/re-ti-re-} \\
+% Note that in the transliterated form the word dividers 
+% (|:| and |/| in this example) are printed as themselves. This is because
+% only the character commands are modified while any other text is printed as is.
+% The unidentified signs, |\BUi| through |\BUxii|, are all transliterated
+% as \textit{?-}.
+% It is a feature of the command that all transliterated commands, except
+% for pictograms, have a trailing |-| sign.
+%
+% The transliterations of the pictograms are given as words, enclosed in
+% slashes. For example, 
+% \verb?\translitlinb{\BPolive}? is \textit{ /olive oil/ }.
+% 
+% \DescribeMacro{\translitlinbfont}
+% The transliterated Linear~B is typeset with the font declarations specified by
+% |\translitlinbfont|, which defaults to |\itshape| thus printing the
+% transliteration in an italic font. The font can be changed by redefining
+% the command. For example, if you wanted to use a bold sans font you
+% would do: \\
+% |\renewcommand{\translitlinbfont}{\sffamily\bfseries}|
+%
+% 
+% \StopEventually{
+% \bibliographystyle{alpha}
+% \begin{thebibliography}{GMS94}
+%
+% \bibitem[Cha87]{CHADWICK87}
+% John Chadwick.
+% \newblock \emph{Linear~B and Related Scripts}.
+% \newblock University of California Press/British Museum, 1987.
+% (ISBN 0-520-06019-9)
+%
+% \bibitem[Dru95]{DRUCKER95}
+% Johanna Drucker.
+% \newblock \emph{The Alphabetic Labyrinth}.
+% \newblock Thames and Hudson, 1995.
+%
+% \bibitem[GMS94]{GOOSSENS94}
+% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+% \newblock \emph{The LaTeX Companion}.
+% \newblock Addison-Wesley Publishing Company, 1994.
+%
+% \bibitem[Gor87]{GORDON87}
+% Cyrus H.~Gordon.
+% \newblock \emph{Forgotten Scripts}.
+% \newblock Dorset Press, (Revised and enlarged edition) 1987.
+%
+% \bibitem[Rob02]{ROBINSON02}
+% Andrew Robinson.
+% \newblock \emph{Lost Languages}.
+% \newblock McGraw Hill, 2002.
+%
+% \bibitem[Wil99]{CYPRIOT}
+% Peter R.~Wilson.
+% \newblock \emph{The Cypriot Package}.
+% \newblock 1999. (Available from CTAN in \texttt{fonts/archaic}).
+%
+% \end{thebibliography}
+% \PrintIndex
+% }
+%
+%     
+%
+% \section{The Metafont code} \label{sec:mf}
+%
+% \subsection{Parameters and setup}
+%
+%    We deal with the parameter file first, and start by announcing
+% what it is for.
+%    \begin{macrocode}
+%<*up>
+%%% LINB10.MF  Linear B font 10 point design size.
+
+%    \end{macrocode}
+%    Specify the font size.
+%    \begin{macrocode}
+
+font_identifier:="LinearB"; font_size 10pt#;
+
+%    \end{macrocode}
+%
+%
+% \DescribeVariable{penfudge}
+%  Increase (decrease) this to get bolder (lighter) characters.
+%    \begin{macrocode}
+penfudge:=1.0;
+%    \end{macrocode}
+%  
+%
+% \DescribeVariable{heightfudge}
+%  Increase (decrease) this to get taller (shorter) characters.
+%    \begin{macrocode}
+heightfudge:=1.0;
+%    \end{macrocode}
+%  
+%
+% \DescribeVariable{u} 
+% |u| is the unit width.
+%    \begin{macrocode}
+u#:=.2pt#;                 % unit width
+%    \end{macrocode}
+%
+% \DescribeVariable{ht} 
+% |ht| is the height of the characters (the Computer Modern value 
+% for the capital letters is
+% approximately 6.8pt).
+%    \begin{macrocode}
+ht#:=heightfudge*10pt#;    % height of characters 
+%    \end{macrocode}
+%
+% \DescribeVariable{s} 
+% \DescribeVariable{o} 
+% |s| is the width of the space at either side of a character; |o| is
+% the amount that a charcter stroke can overshoot its normal width or height.
+%    \begin{macrocode}
+s#:=1.5pt#;                % width correction (right and left)
+o#:=1/20pt#;               % overshoot
+%    \end{macrocode}
+%
+% \DescribeVariable{px} 
+% |px| is the horizontal width of the pen.
+%    \begin{macrocode}
+%%%%%%px#:=penfudge*0.7pt#;      % horizontal width of pen
+px#:=penfudge*0.5pt#;      % horizontal width of pen
+%    \end{macrocode}
+%
+% \DescribeVariable{font-normal-space} 
+% \DescribeVariable{font-normal-shrink} 
+% \DescribeVariable{font-x-height} 
+% \DescribeVariable{font-quad}
+%    Define the very simple font values.
+%    \begin{macrocode}
+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}
+%  
+% \DescribeVariable{digwd}
+% \DescribeVariable{digsz}
+% |digwid| is the character `width' of a pair of digit dashes. |digsz| is
+% the length (as a proportion of the character height) of a digit dash.
+%    \begin{macrocode}
+digwd:=0.2;
+digsz:=0.4;
+%    \end{macrocode}
+%  
+% \DescribeVariable{tenwd}
+% \DescribeVariable{tensz} 
+% \DescribeVariable{tensep} 
+% |tenwd| is the character `width' of a column of tens dashes. |tensz|
+% is the length (as a proportion of the character height) of a ten dash. 
+% |tensep| is the horizontal seperation between columns of tens dashes.
+%    \begin{macrocode}
+tensz:=0.4;
+tenwd:=tensz;
+tensep:=0.2;
+%    \end{macrocode}
+%  
+% \DescribeVariable{hunwd}
+% \DescribeVariable{hunsep}
+% \DescribeVariable{hunsz}
+% |hunwid| is the character `width' of hundred circle and |hunsep| is
+% the horizontal spacing the perimeters of a pair. |hunsz| is
+% the diameter (as a proportion of the character height) of a hundred
+% circle.
+%    \begin{macrocode}
+hunsz:=0.4;
+hunwd:=hunsz;
+hunsep:=0.1;
+
+%    \end{macrocode}
+%  
+%    This is where the driver file would normally be called.
+%
+%
+%    Here is the code for what would normally be the driver file.
+% \changes{v1.2}{2005/06/22}{Merged MF driver file into the main file}
+%
+% Switch into Metafont mode
+%
+%    \begin{macrocode}
+font_coding_scheme:="Linear B glyphs";
+mode_setup;
+
+%    \end{macrocode}
+%
+% \DescribeVariable{ho}
+% \DescribeVariable{leftloc}
+% \DescribeVariable{py}
+%  Perform additional setup.
+%    \begin{macrocode}
+ho#:=o#;                   % horizontal overshoot
+leftloc#:=s#;        % leftmost xcoord of character
+py#:=.9px#;                % 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}
+%  
+%
+% \DescribeVariable{midloc}
+% \DescribeVariable{rightloc}
+%    Variables for the middle xcoord and rightmost xcoord of a character.
+%    \begin{macrocode}
+numeric midloc, rightloc;
+%    \end{macrocode}
+%  
+%
+% \DescribeVariable{tiny}
+% \DescribeVariable{small}
+% \DescribeVariable{medium}
+% \DescribeVariable{large}
+% \DescribeVariable{huge}
+%   Some lengths.
+%    \begin{macrocode}
+tiny#:=px#;
+small#:=2px#;
+medium#:=3px#;
+large#:=4px#;
+huge#:=5px#;
+define_pixels(tiny,small,medium,large,huge);
+%    \end{macrocode}
+%  
+% \DescribeVariable{NE} 
+% \DescribeVariable{NW} 
+% \DescribeVariable{SW} 
+% \DescribeVariable{SE} 
+% Shorthand for direction vectors corresponding to the designated compass point.
+%    \begin{macrocode}
+pair NE,NW,SW,SE;
+NE:=(1,1);
+NW:=(-1,1);
+SW:=(-1,-1);
+SE:=(1,-1);
+%    \end{macrocode}
+%  
+%
+% \DescribeVariable{stylus}
+%    Define the pen.
+%    \begin{macrocode}
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+%    \end{macrocode}
+%  
+%
+% \begin{routine}{draw_hdash}
+%    |draw_hdash(1,len)| draws a horizontal line, length |len|, with its
+% midpoint at |z1|.
+%    \begin{macrocode}
+def draw_hdash(suffix $)(expr len)=
+  x$l=x$-len/2; x$r=x$+len/2; y$l=y$r=y$;
+  draw z$l--z$r;
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_vdash}
+%    |draw_vdash(1,len)| draws a vertical line, length |len|, with its
+% midpoint at |z1|.
+%    \begin{macrocode}
+def draw_vdash(suffix $)(expr len)=
+  x$t=x$b=x$; y$t=y$+len/2; y$b=y$-len/2;
+  draw z$t--z$b;
+enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{draw_vloop}
+% Draws a vertical elliptical shape. |draw_vloop(1,2,f)| draws ellipse between
+% |z1| and |z2| with minor (horizontal) radius fraction |f| of major 
+% (vertical) radius.
+%    \begin{macrocode}
+def draw_vloop(suffix $, $$)(expr len)=
+  z$m=1/2[z$,z$$];
+  y$l=y$r=y$m;
+  q:=len*(y$-y$m);
+  x$l=x$m-q; x$r=x$m+q;
+  draw z$..z$l..z$$; draw z$$..z$r..z$;
+  labels($,$l,$m,$r,$$);
+enddef;  
+  
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{beginglyph}
+%    A macro to save some typing of beginchar arguments.
+%    \begin{macrocode}
+def beginglyph(expr code, unit_width) =
+  beginchar(code, unit_width*ht#+2s#, ht#, 0);
+  midloc:=1/2w; rightloc:=(w-s);
+  pickup stylus enddef;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{cmchar}
+%    |cmchar| should precede each character
+%    \begin{macrocode}
+let cmchar=\;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%    This is where the glyph code file would normally be called.
+%
+%    The following code generates the glyphs for the Linear B font. 
+% \changes{v1.2}{2005/06/22}{Merged MF glyph file into the main one}
+%
+% \subsection{The basic glyphs}
+%
+% There are 60 basic glyphs. These are composed of the five vowels 
+% (a e i o u), and 55 syllables. First I define the vowels,
+% then the remaining characters in syllable order 
+% (e.g. \ldots nu, pa, pe, pi, po, pu, qa \ldots). The basic glyphs
+% are encoded as roman upper and lower case characters and the digits.
+%
+%    The somewhat peculiar mapping to the alphanumerics is so that a
+% companion Cypriot syllabary can use an identical encoding for the
+% syllables that are common between Linear B and Cypriot.
+%
+%    The vowels are mapped to their lowercase ASCII equivalents.
+% A syllable `xa' is mapped to ASCII x and `xe' is mapped to X.
+% Otherwise, the mapping appears random, although there is an 
+% underlying methodology.
+%
+% \begin{routine}{a}
+%    The sign \textit{a}. Like an old-rashioned English TV aerial.
+%    \begin{macrocode}
+cmchar "Linear B sign a";
+beginglyph("a",0.6);
+x1=x3=leftloc; x4=midloc;  x6=x8=rightloc;    
+y1=y6=1/2h; y3=y8=h; y4=0;
+z2=0.5[z1,z3]; z7=0.5[z6,z8]; z5=0.5[z2,z7];
+draw z1--z3;  % left vertical
+draw z4--z5;  % centre vertical
+draw z6--z8;  % right vertical
+draw z2--z7;  % bar
+labels(1,2,3,4,5,6,7,8);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{e}
+%    The sign \textit{e}. Much like our modern A but but with an additional
+% crossbar.
+%    \begin{macrocode}
+cmchar "Linear B sign e";
+beginglyph("e",0.6);
+x1=x6=leftloc; x3=x7=rightloc;       % base points
+y1=y3=0;
+x2=midloc; y2=h;               % apex
+z4=0.4[z1,z2]; z5=0.4[z3,z2];  % lower bar
+y6=y7=0.5[y4,y2];              % upper bar
+draw z1--z2--z3;               % the legs
+draw z4--z5;                   % lower bar
+draw z6--z7;                   % upper bar
+labels(1,2,3,4,5,6,7);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{i}
+%    The sign \textit{i}. Top half of an asterisk on a stem.
+%    \begin{macrocode}
+cmchar "Linear B sign i";
+beginglyph("i",0.6);
+x1=x2=x4=midloc; y1=0; y2=h;            % upright
+x3=leftloc; x5=rightloc;             % bar
+y3=y4=y5=2/3h;
+x6=leftloc; x7=rightloc;             % diagonals
+top y6=top y7=h;
+draw z1--z2;       % upright
+draw z3--z5;       % horizontal
+draw z6--z4--z7;   % diagonals
+labels(1,2,3,4,5,6,7);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{o}
+%    The sign \textit{o}. Like a box with partially opened lid.
+%    \begin{macrocode}
+cmchar "Linear B sign o";
+beginglyph("o",0.6);
+numeric alpha; alpha:=2/3;
+x1=x2=leftloc; y1=h; y2=0;                  % left vertical
+x3=x4=rightloc; y3=y2; y4=y5=alpha*h;       % right vertical
+x5=x6=0.4[x1,x3]; y6=y1;                    % center vertical
+x7=x8=1/2[x5,x4]; y7=y4; y8=0.5[y4,y6];     % dash
+draw z1--z2--z3--z4;                        % main shape
+draw z1--z6{right}..{right}z5--z4;
+draw z7--z8;                                % dash
+labels(1,2,3,4,5,6,7,8);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{u}
+%    The sign \textit{u}. Like an f.
+%    \begin{macrocode}
+cmchar "Linear B sign u";
+beginglyph("u",0.6);
+numeric alpha; alpha:=2/3;
+x1=x2=leftloc; y1=0; y2=alpha*h;            % left vertical
+x3=x5=midloc; x4=x6=rightloc;               % cross and curve
+y6=y2; y3=y4=h;
+y2-y5=y3-y2;
+draw z1--z2{up}..{right}z3--z4;             % vertical and curve top
+draw z2--z6; draw z3--z5;                   % cross
+labels(1,2,3,4,5,6,7,8);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{da}
+%    The sign \textit{da}. Like |!-|.
+%    \begin{macrocode}
+cmchar "Linear B sign da";
+beginglyph("d",0.4);
+x1=x2=leftloc; y1=0; y2=h;            % left vertical
+z3=0.5[z1,z2];                        % horizontal
+x4=rightloc; y4=y3;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{de}
+%    The sign \textit{de}, with corrections suggested by \jurgen. Like a W on
+% top of a trestle table.
+% \begin{verbatim}
+% cmchar "Linear B sign de (original)";
+% beginglyph("D",0.8);
+% numeric alpha; alpha:=0.01;
+% x8=leftloc; x9=rightloc; y8=y9=0;     % base points
+% y2=y4=y6=h;                           % top points
+% y1=y3=y5=y7=0.7h;                     % middle points
+% x1=x8+alpha*w; x7=x9-alpha*w;
+% x2=1/6[x1,x7]; x3=2/6[x1,x7]; x4=3/6[x1,x7]; x5=4/6[x1,x7]; x6=5/6[x1,x7];
+% draw z1--z2--z3--z4--z5--z6--z7;      % top wavy
+% draw z3--z5;                          % triangle base
+% draw z8--z5; draw z9--z3;             % legs
+% labels(1,2,3,4,5,6,7,8,9); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign de";
+beginglyph("D",0.8);
+numeric alpha; alpha:=0.01;
+x2=leftloc; x6=rightloc; x4=0.5[x2,x6];  % top of W
+y2=y4=y6=h;                           
+x3=0.5[x2,x4]; x5=0.5[x4,x6]; y1=y3=y5=y7=0.7h;  % bottom of W
+z11=2/3[z3,z2]; z17=2/3[z5,z6];          % side points on W
+x1=x2; x7=x6;
+x12=x11; x15=x17; y12=y13=y14=y15=y1-3/4small;  % the horizontal
+x13=x3; x14=x5;
+x8=x12; x9=x15; y8=y9=0;                     % base points
+draw z2--z3--z4--z5--z6;                 % W
+draw z11--z1; draw z17--z7;              % side arms
+draw z12--z15;                           % horizontal
+draw z8--z14; draw z9--z13;              % legs
+labels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{di}
+%    The sign \textit{di}. Like a T with a fringe under the crossbar.
+%    \begin{macrocode}
+cmchar "Linear B sign di";
+beginglyph("f",0.6);
+numeric alpha; 
+alpha:=small;
+x1=x2=midloc; y1=0; y2=0.6h;          % stem
+x3=leftloc; x4=rightloc; y3=y4=h;     % bar
+x5=x6=x3; x7=x8=x2; x9=x10=x4;        % fringe
+y5=y7=y9=y3-alpha;
+y6=y8=y10=y2+alpha;
+draw z1--z2;                             % stem
+draw z3--z4;                             % bar
+draw z5--z6; draw z7--z8; draw z9--z10;  % fringe
+labels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{do}
+%    The sign \textit{do}, circle on a stem with various spikes emenating from 
+% the circle. \jurgen{} suggested a kinked stem with a semicircle and a dash.
+% \begin{verbatim}
+cmchar "Linear B sign do (original)";
+% beginglyph("g",0.8);
+% numeric alpha; alpha:=0.2*(rightloc-leftloc);
+% numeric rad;   rad:=0.3*(rightloc-leftloc);
+% x0=midloc; y0=h-rad-0.5alpha;         % circle center
+% x1=x2=x5=x9=x0;                       % mid vertical points
+% y1=0; y2=y0-rad; y5=y0+rad; y9=h;
+% y7=y3=y6=y11=y0;                      % mid horizontal points
+% x7=leftloc; x3=x0-rad; x6=x0+rad; x11=rightloc;
+% x10=x9-0.5alpha; y10=y9;              % top line
+% y12=y13=y11+small; x13=x11; x12=x13-0.25alpha;
+% path p;
+% p=z2..z3..z5..z6..cycle;
+% x8=x7; x4=x3; y8=y4=y3+small;
+% draw p;                               % circle
+% draw z1--z2;                          % stem
+% draw z7--z3; draw z6--z11;            % main horizontals
+% draw z12--z13;                        % right dash
+% draw z5--z9--z10;                     % top L
+% draw z4--z8;                          % left dash
+% labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign do";
+beginglyph("g",0.4);
+numeric alpha; alpha:=small;
+numeric rad;   rad:=0.15h;
+numeric beta; beta:=1.5tiny; % gap size
+numeric gam; gam:=1.5;    % the tension
+x0=midloc; y0=h-rad-alpha;            % circle center
+x1=x2=x4=x5=x0;                       % stem vertical points
+y1=0; y2=y0-rad; y4=y0+rad; y5=h;
+x3=x0-0.75rad; y3=y0;                     % mid arc point
+x12=x14=x0+beta; y12=y2; y14=y4;      % points on right arc
+x13=x14+rad; y13=y3;
+x15=x1; x16=x13; y15=y16=y2-beta;     % horizontal
+%%draw z1..tension gam..z2..tension gam..z3..tension gam..z4..tension gam..z5;
+%%draw z1---z2..tension gam..z3..tension gam..z4---z5;
+draw z1--z2{up}..z3..{up}z4--z5;
+draw z12..z13..z14;                   % right hand arc
+draw z15--z16;                        % horizontal
+labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{du}
+%    The sign \textit{du}. A very vague resemblance to a chef's hat,
+%    \begin{macrocode}
+cmchar "Linear B sign du";
+beginglyph("x",0.6);
+x4=leftloc; x6=rightloc-tiny; x5=1/3[x4,x6];   % base points
+y4=y5=y6=0;
+y1=y2=y3=0.8h;                                % mid points
+x1=x4+tiny; x3=x6; x2=1/3[x1,x3];
+x7=leftloc; x8=rightloc;                      % top points
+y7=y8=h;
+draw z1--z3;                                  % horizontal
+draw z6--z3--z8;                              % right uprights
+draw z1{up}..z7;                              % top left
+draw z4{up}..z1; draw z5{up}..z2;             % curved legs
+labels(1,2,3,4,5,6,7,8);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ja}
+% The sign \textit{ja}. A rectangle with two interior lines.
+%    \begin{macrocode}
+cmchar "Linear B sign ja";
+beginglyph("j",0.6);
+x1=x2=x3=x4=leftloc;                       % left points
+y1=0; y4=h; y2=1/3[y1,y4]; y3=2/3[y1,y4];
+x5=x6=x7=x8=rightloc;
+y5=y1; y6=y2; y7=y3; y8=y4;
+draw z1--z4--z8--z5--cycle;               % exterior
+draw z2--z6; draw z3--z7;                 % lines
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{je}
+% The sign \textit{je}. 
+%    \begin{macrocode}
+cmchar "Linear B sign je";
+beginglyph("J",0.6);
+path p[]; numeric alpha; alpha:=0.8;
+x1=leftloc; y1=0; x2=rightloc; y2=h;       % left leg
+p1=z1{up}..z2;
+z3 = point alpha of p1;
+x5=x2; y5=y1; x6=x1; y6=y2;                % right leg
+p2=z5{up}..z6;
+z7 = point alpha of p2;
+z4'=z3 shifted (w*(1,-1));
+z4 = whatever[z3,z4']= whatever[z5,z2];
+z7'= z7 shifted (w*(-1,-1));
+z8 = whatever[z7,z7'] = whatever[z1,z6];
+draw p1; draw z3--z4;                     % left leg
+draw p2; draw z7--z8;                     % right leg
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{jo}
+% The sign \textit{jo}. An angled top bar on a kinked stem.
+%    \begin{macrocode}
+cmchar "Linear B sign jo";
+beginglyph("b",0.4);
+x1=x2=x4=midloc; y1=0;                      % center points
+x6=leftloc; y6=h-tiny; x7=rightloc; y7=h;   % crossbar
+z5=0.5[z6,z7];
+y4=y5-small; y2=y4-medium;
+x3=0.75[x4,x7]; y3=0.5[y2,y4];
+draw z6--z7;                                % crossbar
+draw z1--z2; draw z4--z5; draw z2{right}..z3..{left}z4;  % stem
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ju}
+% The sign \textit{ju}. Looks a bit like a chair. 
+%    \begin{macrocode}
+cmchar "Linear B sign ju";
+beginglyph("L",0.8);
+x1=x5=leftloc; y1=0; y5=h-tiny;    % back and leg
+x4=x1+tiny; y4=h;
+x2=0.5[x1,x4]; y2=1/2h;            
+x9=rightloc-tiny; y9=0;            % seat and leg
+x7=x9; y7=y2+tiny;
+x8=rightloc; y8=y7-2tiny;
+z10=1/3[z1,z9]; z12=2/3[z1,z9];
+x11=x10; x13=x12;
+y11=y2; y13=1/3[y2,y4];
+draw z1--z2--z4--z5;               % back leg
+draw z2---z7..z8---z9;               % seat and leg
+draw z10--z11; draw z12--z13;      % other legs
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ka}
+% The sign \textit{ka}. It is a circle with horizontal and vertical diameters.
+%    \begin{macrocode}
+cmchar "Linear B sign ka";
+beginglyph("k",0.8);
+numeric rad; rad:=0.5*(rightloc-leftloc);
+x0=midloc; y0=h/2;
+x1=x0-rad; x3=x0+rad;
+y2=y0+rad; y4=y0-rad;
+x2=x4=x0;
+y1=y3=y0;
+draw z1..z2..z3..z4..cycle;  % the circle
+draw z1--z3; draw z2--z4;   % the cross
+labels(0,1,2,3,4); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ke}
+%    The sign \textit{ke}. A W on curved legs (similar to \textit{de}).
+%    \begin{macrocode}
+cmchar "Linear B sign ke";
+beginglyph("K",0.8);
+numeric alpha; alpha:=0.01;
+x8=leftloc; x9=rightloc; y8=y9=0;     % base points
+y2=y4=y6=h;                           % top points
+y1=y3=y5=y7=0.7h;                     % middle points
+x1=x8+alpha*w; x7=x9-alpha*w;
+x2=1/6[x1,x7]; x3=2/6[x1,x7]; x4=3/6[x1,x7]; x5=4/6[x1,x7]; x6=5/6[x1,x7];
+x10=x11=x4; y10=y3;                       % line points
+y10-y11 = y4-y3;
+draw z1--z2--z3--z4--z5--z6--z7;      % top wavy
+draw z3--z5;                          % triangle base
+draw z8{up}..z5; draw z9{up}..z3;             % legs
+draw z10--z11;                        % line
+labels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ki}
+%    The sign \textit{ki}, which is like a triangle with a bow at top left.
+%    \begin{macrocode}
+cmchar "Linear B sign ki";
+beginglyph("c",0.8);
+numeric rad; rad:=small;
+x0=leftloc+rad; y0=h-rad;      % circle center
+path p;
+p=fullcircle scaled (2rad) shifted z0;
+z2 = directionpoint (1,1) of p;    % triangle points
+x3=rightloc; y3=y2;
+x1=0.5[x2,x3]; y1=0;
+z4=z2 shifted (-rad,-rad);
+z5-z2=z2-z4;
+draw z1--z2--z3--cycle;  % triangle
+draw z4--z5; draw p;     % bow
+
+labels(0,1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ko}
+%    The sign \textit{ko}, which is like an icecream cone.
+%    \begin{macrocode}
+cmchar "Linear B sign ko";
+beginglyph("h",0.4);
+numeric rad; rad:=0.5*(rightloc-leftloc);
+x1=x6=midloc; y1=0; y6=h;      % axis points
+x5=leftloc; x7=rightloc;       % circle horizontal diameter
+y5=y7=y6-rad;
+x9=x6; y9=y6-2rad;
+x2=x9-rad/2; x3=x9+rad/2;      % cone points
+y2=y3=3/4[y9,y5];
+path p[];
+p1=z5{down}..z9{right}..{up}z7;
+p2=z1--z2; p3=z1--z3;
+z4 = p2 intersectionpoint p1;
+z8 = p3 intersectionpoint p1;
+draw z1--z2--z3--cycle;       % cone
+draw z4..z5{up}..z6{right}..z7{down}..z8;  % icecream
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ku}
+%    The sign \textit{ku}, which is similar to our modern B, but no upright and
+% a faucet on the upper bowl. The correction by \jurgen{} looks very different,
+% a bit like |w)?|, or a satelite TV dish.
+% \begin{verbatim} 
+cmchar "Linear B sign ku (original)";
+% beginglyph("v",0.6);
+% x1=x3=x5=leftloc;
+% x2=x4=rightloc-small; 
+% bot y1=-o; top y5=h;
+% y2=1/4h; y3=1/2h; y4=3/4h;
+% path p;
+% p = z3{right}..z4..z5{left};    % upper bowl
+% z6 = directionpoint (1,1) of p;  % faucet
+% x7=rightloc; y7=y6;
+% x8=x7; y8=0.5[y2,y3];
+% draw z1{right}..z2..z3{left};  % lower bowl
+% draw p;                        % upper bowl
+% draw z6--z7--z8;               % faucet
+% labels(1,2,3,4,5,6,7,8); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign ku)";
+beginglyph("v",0.6);
+numeric alpha; alpha:=1/3(rightloc-leftloc);
+numeric beta; beta:=0.5alpha;
+x1=x3=leftloc; x2=rightloc-alpha; y1=0; y2=h/2; y3=h;  % the right paren
+x12=leftloc; x11=x13=1/4[x12,x2];                      % the w
+x14=1/2[x12,x2]; x15=3/4[x12,x2];
+y11=y2; y13=y15=y2-beta; y12=y14=0.5[y11,y13];
+x23=rightloc; x21=x22=0.5[x2,x23];                     % the ?
+y21=0; y23=y13; y23-y22=y2-y23;
+draw z1..z2{up}..z3;                          % the paren
+draw z11..z12..z13..z14; draw z14..z15..z2;   % the w
+draw z2{right}..z23..{down}z22--z21;          % the ?
+labels(1,2,3,11,12,13,14,15,21,22,23,24); 
+endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ma}
+%    The sign \textit{ma}. My original was a bit like a V in a bucket.
+% \jurgen's correction is more like a Y with two stirrups.
+% \begin{verbatim} 
+cmchar "Linear B sign ma (original)";
+% beginglyph("m",0.75);
+% x1=leftloc; x3=midloc; x5=rightloc;  % triangley
+% y1=y5=h; y3=1/8h;                  
+% z2=3/4[z3,z1]; z4=3/4[z3,z5];    % top of bucket
+% x6=x8=x2; x7=x9=x4;              % bottom lines
+% y6=y7=0; y8=y9=y3;
+% draw z1--z3--z5;                   % triangle
+% draw z2--z6--z7--z4; draw z8--z9;  % bucket
+% labels(1,2,3,4,5,6,7,8,9); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign ma";
+beginglyph("m",0.75);
+x1=leftloc; x2=x3=midloc; x4=rightloc;  % The Y
+y1=y4=h; y2=1/2h; y3=0;
+z5=0.5[z1,z2];                          % top of left stirrup strap
+x7=x9=0.5[x5,x2]; x8=0.5[x5,x1];        % left stirrup
+y9=1/6[y3,y2]; y7=2/3[y9,y2]; y8=0.5[y7,y9];
+path p; p=z7..z8..z9;                   % strap point on stirrup
+z6=point 0.5 of p;
+z15=z5 reflectedabout (z3,z2);          % right strap and stirrup
+z16=z6 reflectedabout (z3,z2);
+z17=z7 reflectedabout (z3,z2);
+z18=z8 reflectedabout (z3,z2);
+z19=z9 reflectedabout (z3,z2);
+draw z1--z2--z3; draw z4--z2;       % Y
+draw z5--z6; draw z7..z8..z9;       % straps
+draw z15--z16; draw z17..z18..z19;  % right half
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{me}
+%    The sign \textit{me}. A walking stick with a flash at the curved handle.
+%    \begin{macrocode}
+cmchar "Linear B sign me";
+beginglyph("M",0.8);
+numeric alpha; alpha:=2/3;
+x1=x2=midloc; y1=0; y2=alpha*h;            % right vertical and curve
+x4=leftloc; x3=0.5[x4,x1]; y4=y3=h;
+x5=x3; y5=y2;                              % cross 
+path p[];                                  % right jiggle
+p1=z1--z2{up}..{left}z3--z4;
+z6 = point 1.33 of p1;
+x9=rightloc; y9=y2;
+z8=1/3[z2,z9];
+x7=0.5[x2,x9]; y7=y6;
+draw p1;                                   % vertical and curve
+draw z2--z5--z3;                           % cross
+draw z6--z7--z8--z9;                       % jiggle
+labels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{mi}
+%    The sign \textit{mi}. A bit like a V.
+%    \begin{macrocode}
+cmchar "Linear B sign mi";
+beginglyph("y",0.8);
+numeric alpha; alpha:=small;
+x1=leftloc; x2=x1+alpha; x3=x4=x1+2alpha;   % left half
+y1=y3=h-alpha; y2=h; y4=0;
+x7=rightloc; y7=h;                          % right half
+x6=x7-alpha; y6=y7-alpha;
+x5=x7; y5=y6-alpha;
+draw z1..z2..z3---z4;                       % left half
+draw z4{up}..{(1,1)}z5--z6--z7;             % right half
+labels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{mo}
+%    The sign \textit{mo}, having a vague resemblance to a shepherd's crook.
+% \jurgen{} gives a different sign looking like a reflected epsilon by a kinked
+% stem.
+% \begin{verbatim} 
+cmchar "Linear B sign mo (initial)";
+% beginglyph("A",0.8);
+% numeric alpha; alpha:=small;
+% x1=x2=x4=midloc; y1=0; y2=0.65h; y4=h;  % shepherds crook
+% x3=rightloc; y3=0.5[y2,y4];
+% x5=leftloc; y5=0.5[y2,y3];
+% path p;
+% p = z5..z4{right}..z3{down}..z2--z1;
+% z6 = point 0.3 of p;                    % lines
+% z8 = point 0.6 of p;
+% z7=z6 shifted (alpha*(-1,1));
+% z9=z8 shifted (alpha*(-1,1));
+% draw p;
+% draw z6--z7; draw z8--z9;
+% labels(1,2,3,4,5,6,7,8,9);
+% endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign mo";
+beginglyph("A",0.6);
+numeric alpha; alpha:=small;
+numeric rad;   rad:=0.15h;
+numeric beta; beta:=0.2h; % e radius
+numeric gam; gam:=1.5;    % the tension
+x3=rightloc;                           % stem points
+x1=x2=x4=x5=x0=x3-0.75rad;
+y1=0; y5=h; y0=h-rad-alpha;
+y2=y0-rad; y4=y0+rad; y3=y0;
+x7-x0 = x0-x3; y7=y0;                 % midpoint of e arc perimeter
+z9'=z7 shifted (beta*left); z9=z9' shifted (tiny*up);
+z6'=z9 shifted (beta*down); z6=z6' shifted (tiny*left);
+z8'=z9 shifted (beta*up);   z8=z8' shifted (tiny*right);
+%%draw z1..tension gam..z2..tension gam..z3..tension gam..z4..tension gam..z5;
+%%draw z1---z2..tension gam..z3..tension gam..z4---z5;
+draw z1--z2{up}..z3..{up}z4--z5;
+draw z7--z9;       % the e
+draw z6..z7..z8;
+labels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{mu}
+%    The sign \textit{mu}. 
+%    \begin{macrocode}
+cmchar "Linear B sign mu";
+beginglyph("B",0.8);
+numeric rad; rad:=small;
+x1=x2=leftloc+2rad; y1=0; y2=h-rad;     % stem
+x3=x5=leftloc+rad; y3=h; y5=y3-2rad;
+x4=leftloc; y4=y2;
+x6=x8=rightloc; y6=y5; y8=y3;            % bar and curve
+x7=x6-rad; y7=0.5[y6,y8];
+x9=x7-1/2rad; y9=y6;
+x10=x9; y10=y9-2rad;
+draw z1--z2{up}..z3{left}..z4{down}..{right}z5--z6;  % stem and bar
+draw z6{left}..z7{up}..{right}z8;                    % curve
+draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{na}
+% The sign \textit{na}. Sort of semi-mirrored version of \textit{jo} (i.e.,
+% an angled top bar on a kinked stem).
+% \jurgen{} instead draws it as a Y with two bars on top.
+% \begin{verbatim} 
+cmchar "Linear B sign na (original)";
+% beginglyph("n",0.4);
+% x1=x2=midloc; y1=0;                      % center points
+% x6=leftloc; y6=h-tiny; x7=rightloc; y7=h;   % crossbar
+% z5=0.5[z6,z7];
+% y4=y5-small; y2=y4-small; x4=x2+small;
+% x3=0.5[x2,x6]; y3=0.5[y2,y4];
+% z8'= z6 shifted (tiny*down); z9'= z7 shifted (tiny*down);
+% z8 =0.45[z8',z9']; z9=0.55[z8',z9'];
+% draw z6--z7;                                % crossbar
+% draw z1--z2; draw z2{left}..z3..{right}z4;  % stem
+% draw z8--z9;                                % little bar
+% labels(1,2,3,4,5,6,7,8); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign na";
+beginglyph("n",0.4);
+numeric alpha; alpha:=(rightloc-leftloc);
+x1=leftloc; x3=rightloc; y1=y3=2/3h;     % top of Y
+x2=x4=midloc; y4=0; y2=2/3[y4,y1];       % leg of Y
+x5=x6=midloc; y6=h; y5=0.5[y1,y6];       % dash centers
+draw z1--z2--z3; draw z4--z2;              % Y
+draw_hdash(5,alpha); draw_hdash(6,alpha);  % crossbars
+labels(1,2,3,4,5,6); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ne}
+%    The sign \textit{ne}. A bit like a telegraph pole. \jurgen{} suggested
+% shortening the top bar.
+%    \begin{macrocode}
+cmchar "Linear B sign ne";
+beginglyph("N",1.0);
+numeric rad; 
+x1=x2=x3=midloc; y1=0; y2=h; y3=2/3[y1,y2];     % stem
+rad:=0.2*(y2-y3);                              % circle radius
+x6=leftloc; y6=y16=y3+4rad; x16=rightloc;      % curvey bar
+x7=x6+rad; x15=x16-rad; y7=y15=y6;
+x8=x9=x7+rad; x14=x13=x15-rad; y8=y14=y7-rad; y9=y13=y3+rad;
+x10=x9+rad; x12=x13-rad; y10=y12=y3;
+z0l=(x10,y9); z0r=(x12,y13);                    % circle centers
+%%x4=x0l; x5=x0r; y4=y5=y2;                       % top bar
+x4=0.25[x0l,x2]; x5=0.25[x0r,x2]; y4=y5=y2;       % top bar
+draw z1--z2;                     % stem
+draw z4--z5;                     % top bar
+draw z6..z8..{down}z9; draw z10--z12; draw z13{up}..z14..z16; 
+draw fullcircle scaled (2rad) shifted z0l;
+draw fullcircle scaled (2rad) shifted z0r;
+labels(0l,0r,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ni}
+%    The sign \textit{ni}. A curved V with dashes near the top.
+%    \begin{macrocode}
+cmchar "Linear B sign ni";
+beginglyph("C",0.6);
+numeric alpha, beta;
+alpha:=0.2; beta:=tiny;
+x1=leftloc; x2=midloc; x3=rightloc; y1=y3=h; y2=0;  % V
+path p[];
+p1=z1{(1,-1)}...{down}z2;
+p2=z3{(-1,-1)}...{down}z2;
+z5 = point alpha of p1; 
+z8 = point alpha of p2;
+z4=z5 shifted (beta*(-1,-1)); z6=z5 shifted (beta*(1,1));
+z7=z8 shifted (beta*(-1,1)); z9=z8 shifted (beta*(1,-1));
+draw p1; draw p2;           % V
+draw z4--z6; draw z7--z9;   % dashes
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{no}
+%    The sign \textit{no}. 
+%    \begin{macrocode}
+cmchar "Linear B sign no";
+beginglyph("E",1.0);
+numeric alpha, beta;
+alpha:=small; beta:=tiny;
+x1=x2=leftloc; y1=h; x3=x2+alpha; y3=1/3h; y2=y3+alpha;  % curves
+x4=x5-alpha; y4=y3; x5=rightloc; y5=y4+alpha;
+x6=x4; x9=x5; 
+y6=y5+alpha; y7=y6+alpha/2; y8=y9=y7+alpha/2;
+x7=x6-alpha/2; x8=0.5[x7,x9];
+x10=x11=1/4[x2,x7];             % toast rack
+x12=x13=1/2[x2,x7];
+x14=x15=3/4[x2,x7];
+y10=y12=y14=y3;
+y11=y13=y15=y1;
+x16=x10; x17=x14; y16=y17=0;    % legs
+draw z1---z2{down}..{right}z3---z4{right}..z5..z6..z7..z8--z9;
+draw z10--z11;         % toast rack
+draw z12--z13;
+draw z14--z15;
+draw z16--z12--z17;    % legs
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{nu}
+%    The sign \textit{nu}. Two semicircles within two uprights.
+%    \begin{macrocode}
+cmchar "Linear B sign nu";
+beginglyph("F",0.6);
+numeric alpha, beta;
+alpha:=0.2*(rightloc-leftloc);
+beta:=small;
+x1=x2=leftloc; x3=x4=rightloc; y1=y3=0; y2=y4=h;  % uprights
+x9=x6=midloc; x5=x8=x6-alpha; x10=x7=x6+alpha;    % curves
+y8=y10=h/2 - beta; y5=y7=h/2 + beta;
+y6=y5+3/2alpha; y9=y8-3/2alpha;
+draw z1--z2; draw z3--z4;                         % uprights
+draw z5{up}..z6..{down}z7;                        % curves
+draw z8{down}..z9..{up}z10;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pa}
+%    The sign \textit{pa}. Like a Lorraine cross. \jurgen{} drew this with
+% the crossbars equidistant from the center.
+%    \begin{macrocode}
+cmchar "Linear B sign pa";
+beginglyph("p",0.4);
+x1=x2=midloc; y1=0; y2=h;  % stem
+x3=x5=leftloc;             % crossbars
+%%y3=0.7h; y5=0.85h; 
+y3=0.375h; y5=0.625h; 
+x4=x6=rightloc; y4=y3; y6=y5;
+draw z1--z2;               % stem
+draw z3--z4; draw z5--z6;  % cross bars
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pe}
+%    The sign \textit{pe}. 
+%    \begin{macrocode}
+cmchar "Linear B sign pe";
+beginglyph("P",0.4);
+numeric alpha, beta; alpha:=0.2;
+x1=x2=leftloc; y1=0; y2=h;  % stem
+x3=x4=rightloc; y3=alpha[y1,y2]; y4=(1-alpha)[y1,y2];
+x6=0.5[x1,x3]; y6=h/2;
+beta:=0.5*(x6-x1);
+x5=x7=x1; y7=y6+beta; y5=y6-beta;
+draw z3--z1--z2--z4;
+draw z5..z6..z7;
+labels(1,2,3,4,5,6,7); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pi}
+%    The sign \textit{pi}. A triangle with a vertical divider and a crossbar
+% near the apex.
+%    \begin{macrocode}
+cmchar "Linear B sign pi";
+beginglyph("G",0.6);
+x1=x6=leftloc; x3=x7=rightloc; x4=midloc;       % base points
+y1=y3=y4=0;
+x2=midloc; y2=h;               % apex
+y6=y7=0.65h;                    % upper bar
+draw z1--z2--z3--cycle;        % the main triangle
+draw z2--z4;                   % vertical bisector
+draw z6--z7;                   % upper bar
+labels(1,2,3,4,5,6,7);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{po}
+%    The sign \textit{po}. \jurgen{} drew an upright and more angular version of
+% my original.
+% \begin{verbatim} 
+% cmchar "Linear B sign po (original)";
+% beginglyph("H",0.6);
+% x4=leftloc; y4=h/3; x7=x4+small; y7=h;  % LHS
+% z5=1/3[z4,z7]; z6=2/3[z4,z7];
+% x3=rightloc; y3=h;      % RHS
+% x2=x3-small; y2=y5;
+% x1=midloc; y1=0;
+% draw z4--z7;                   % LHS
+% draw z1--z2--z5; draw z6--z3;  % RHS
+% labels(1,2,3,4,5,6,7); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign po";
+beginglyph("H",0.6);
+x1=x2=leftloc; y1=h; y2=h/2;        % LHS
+x3=x4=rightloc; y3=y2; y4=0;        % RHS
+z5=0.5[z1,z2]; x6=rightloc; y6=y5;  % bar
+draw z1--z2--z3--z4;                % h shape
+draw z5--z6;                        % bar
+labels(1,2,3,4,5,6,7);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pu}
+%    The sign \textit{pu}. An elephant with three legs and raised trunk.
+%    \begin{macrocode}
+cmchar "Linear B sign pu";
+beginglyph("I",0.6);
+numeric rad; rad:=small;
+x1=leftloc; y1=0;                              % bottom left
+x8=rightloc; y9=h; y8=y9-rad; x9=x8-rad;       % curl at top right
+x7=x9; y7=y8-rad;
+y2=y7-rad; x2=x1+rad;
+path p[];
+p1=z1{up}..z2..{right}z7..{up}z8..{left}z9;
+x5=x6=x7; y6=0; y5=y7;
+x4=0.5[x1,x6]; y4=0;
+z4'=z4 shifted (h*up);
+z3 = (z4--z4') intersectionpoint p1;
+draw p1;
+draw z4--z3; draw z6--z5;
+labels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{qa}
+%    The sign \textit{qa}. A circle with ears, on a stem.
+%    \begin{macrocode}
+cmchar "Linear B sign qa";
+beginglyph("q",0.8);
+numeric alpha; alpha:=0.2*(rightloc-leftloc);
+numeric rad;   rad:=0.3*(rightloc-leftloc);
+x0=midloc; y0=h-rad;                  % circle center
+x1=x2=x5=x0;                          % mid vertical points
+y1=0; y2=y0-rad; y5=y0+rad;
+y3=y6=y0;                             % mid horizontal points
+x3=x0-rad; x6=x0+rad; 
+path p[];                             % ears
+p1=z2{left}..z3{up}..{right}z5;
+p2=z5{right}..z6{down}..{left}z2;
+x7'=leftloc; y7'=y3-0.5rad; x11'=rightloc; y11'=y7';
+p3=z7'--z11';
+z7= p3 intersectionpoint p1;
+z11= p3 intersectionpoint p2;
+x8=leftloc; y8=0.5[y3,y7]; 
+x10=rightloc; y10=y8;
+draw p1; draw p2;                     % circle
+draw z1--z2;                          % stem
+draw z3..z8..z7; draw z6..z10..z11;   % ears
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{qe}
+%    The sign \textit{qe}. A circle with 4 interior dashes.
+%    \begin{macrocode}
+cmchar "Linear B sign qe";
+beginglyph("Q",0.8);
+numeric alpha, beta; 
+numeric rad;   rad:=0.5*(rightloc-leftloc);
+alpha:=0.3rad;
+beta:= small;
+x0=midloc; y0=h/2;                    % circle center
+x1=x2=x5=x0;                          % mid vertical points
+y1=0; y2=y0-rad; y5=y0+rad;
+y3=y6=y0;                             % mid horizontal points
+x3=x0-rad; x6=x0+rad; 
+
+z10'=z0 shifted (alpha*(1,1)); 
+z11'=z0 shifted (alpha*(1,-1)); 
+z12'=z0 shifted (alpha*(-1,-1)); 
+z13'=z0 shifted (alpha*(-1,1)); 
+draw fullcircle scaled (2rad) shifted z0;
+draw_hdash(10',beta); draw_hdash(11',beta); draw_hdash(12',beta); draw_hdash(13',beta);
+labels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,12',13,13'); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{qi}
+%    The sign \textit{qi}. A T with an additional wavy line under the crossbar.
+%    \begin{macrocode}
+cmchar "Linear B sign qi";
+beginglyph("X",0.8);
+numeric alpha, beta;
+alpha:=small;
+beta:=medium;
+x1=leftloc; x2=rightloc-alpha; y1=y2=h;      % top bar
+x3=0.25[x1,x2]; y3=y1;                       % wave
+x4=0.25[x3,x2]; y4=y3-beta;
+x6=rightloc; y6=y3-0.5beta;
+x7=0.8[x1,x2]; y7=y1;                        % stem
+x8=x7; y8=0;
+draw z1--z2;                                 % top bar
+draw z8--z7;                                 % stem
+draw z3..z4{right}..z2{right}..z6;           % wave
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{qo}
+%    The sign \textit{qo}. Vertically symmetric with the right half like an
+% L on top of the right half of a T.
+%    \begin{macrocode}
+cmchar "Linear B sign qo";
+beginglyph("8",0.6);
+numeric alpha, beta;
+alpha:=small;
+beta:=small;
+x1=x2=midloc; y1=0; y2=h/2;   % stem
+x5=leftloc; x8=rightloc;      % the Ls
+y5=y6=y9=y8=3/4h; y7=y10=h;
+x6=x7=1/3[x5,x8]; x9=x10=2/3[x5,x8];
+x3=0.5[x5,x6]; x4=0.5[x8,x9]; y3=y4=0.5[y2,y5]; % bar
+draw z1--z2;      % stem
+draw z3--z4;      % bar
+draw z5--z6--z7;  % left L
+draw z8--z9--z10; % right L
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ra}
+%    The sign \textit{ra}. Like an `L' with a kerned c.
+%    \begin{macrocode}
+cmchar "Linear B sign ra";
+beginglyph("r",0.6);
+x1=x2=leftloc; y1=h; y2=0;  x3=rightloc; y3=y2;  % the L
+x4=x6=x3; y4=y3+small; y6=y4+large;               % the c
+x5=x4-0.5*(y6-y4); y5=0.5[y4,y6];
+draw z1--z2--z3;                    % L
+draw z4{left}..z5{up}..{right}z6;   % c
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{re}
+%    The sign \textit{re}. Like a Greek \textit{psi}.
+%    \begin{macrocode}
+cmchar "Linear B sign re";
+beginglyph("R",0.6);
+numeric rad;
+x1=x2=x4=midloc; y1=h; y2=0;       % stem
+rad = 0.5*(rightloc-leftloc);
+x3=leftloc; y3=y5=h; x5=rightloc; y4=y3-rad;
+draw z1--z2;          % stem
+draw z3..z4..z5;      % bowl
+labels(1,2,3,4,5); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ri}
+%    The sign \textit{ri}, sort of like a box on legs. \jurgen's rendition
+% is more like a pawn with a wsip of hair.
+% \begin{verbatim} 
+% cmchar "Linear B sign ri (original)";
+% beginglyph("O",0.8);
+% numeric rad;
+% x1=leftloc; x2=rightloc; y1=y2=0.2h;   % horizontal
+% x3=leftloc; y3=0;                      % left verticals
+% x4=x5=1/3[x1,x2]; y4=y1; y5=0.8h;
+% x6=rightloc; y6=0;                     % right verticals
+% x7=x8=2/3[x1,x2]; y7=y4; y8=y5;
+% x11=x5; y11=h;                         % top curve
+% draw z1--z2;                           % horizontal
+% draw z3--z4--z5--z8--z7--z6;           % box and legs
+% draw z8{up}..{left}z11;                 % top curve
+% labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+% \end{verbatim}
+%
+%    \begin{macrocode}
+cmchar "Linear B sign ri";
+beginglyph("O",0.4);   %% was 0.6
+numeric beta; beta:=small;
+x1=leftloc; x3=rightloc; y1=y3=0.55h;   % horizontal
+x4=0.1[x1,x3]; x5=0.1[x3,x1]; y4=y5=0; % legs
+z2=0.5[z1,z3];
+x14=x12=midloc; y14=h;                 % head
+y12=0.75[y2,y14];
+x11=0.3[x1,x2]; y11=2/3[y2,y12];
+z13=z11 reflectedabout (z2,z12);
+x15=x14-beta; y15=y14; %% y15=y14-0.5beta;
+draw z1--z3;                 % horizontal
+draw z4--z2--z5;             % base
+draw z2..z13..{left}z12; draw z2..z11..{right}z12; % head
+draw z2..z13..z14..z15;      % hair
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ro}
+%    The sign \textit{ro}. A cross.
+%    \begin{macrocode}
+cmchar "Linear B sign ro";
+beginglyph("U",0.6);
+x1=x2=midloc; y1=0; y2=h;
+x3=leftloc; x4=rightloc; y3=y4=0.6h;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ru}
+%    The sign \textit{ru}. A bit like a tulip.
+%    \begin{macrocode}
+cmchar "Linear B sign ru";
+beginglyph("V",0.6);
+x1=x2=midloc; y1=0; y2=0.75h;
+x5=leftloc; x6=rightloc; 
+x3=0.25[x5,x6]; x4=0.75[x5,x6]; y3=y4=h;
+x7=x3; x8=x4; y7=y8=y2-0.1h;
+y5=y6=0.5[y7,y3];
+draw z1--z2;      % stem
+draw z2{down}..z7{left}..z5{up}..z3;   % left petal
+draw z2{down}..z8{right}..z6{up}..z4;  % right petal
+labels(1,2,3,4); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{sa}
+%    The sign \textit{sa}. A Y with a dash on each arm.
+%    \begin{macrocode}
+cmchar "Linear B sign sa";
+beginglyph("s",0.6);
+x1=midloc; y1=0; 
+x3=leftloc; x4=rightloc; y3=y4=h;
+z3' = z3 shifted (w*(1,-1)); z4' = z4 shifted (w*(-1,-1));
+z2= whatever[z3,z3'] = whatever[z4,z4'];
+z5=0.5[z2,z3]; z6=0.5[z2,z4];
+z5'= z5 shifted (w*(-1,-1)); z6'= z6 shifted (w*(1,-1));
+z7 = whatever[z5,z5']; x7=x3;
+z8 = whatever[z6,z6']; x8=x4;
+draw z1--z2;                % stem
+draw z3--z2--z4;            % V
+draw z5--z7; draw z6--z8;   % 
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{se}
+%    The sign \textit{se}. An E rotated 90 degrees on a stem.
+%    \begin{macrocode}
+cmchar "Linear B sign se";
+beginglyph("S",0.6);
+x1=x3=x2=leftloc; y1=0; y2=h; y3=2/3[y1,y2];
+x4=x5=midloc; x6=x7=rightloc;
+y4=y6=y3; y5=y7=y2;
+draw z1--z2;               % upright
+draw z3--z6;               % horizontal
+draw z4--z5; draw z6--z7;  % short uprights
+labels(1,2,3,4,5,6,7); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{si}
+%    The sign \textit{si}. A bit like a cooling tower.
+%    \begin{macrocode}
+cmchar "Linear B sign si";
+beginglyph("Y",0.6);
+numeric alpha; alpha:=small;
+x1=leftloc; y1=0; x3=x1+alpha; y3=h-alpha;     % left leg
+x4=rightloc; y4=y1; x6=rightloc-alpha; y6=y3;  % right leg
+path p[];
+p1 = z1..{up}z3; p2 = z4..{up}z6;              % cross bar
+z2 = point 2/3 of p1;
+z5 = point 2/3 of p2;
+x7=x9=midloc; y9=h; y2-y7 = y3-y2;             % vertical
+draw p1; draw p2;      % legs
+draw z2--z5;           % bar
+draw z9--z7;           % vertical
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{so}
+%    The sign \textit{so}. A bit like a backwards ? mark with half a cross 
+%   at the left. \jurgen's version is a kinked stem with a pi rotated 90 
+% degrees. However, I don't see that in any example tablets and it is not
+% in Robinson~\cite{ROBINSON02}.
+%
+%    \begin{macrocode}
+cmchar "Linear B sign so";
+beginglyph("1",0.6);
+numeric alpha, beta; 
+alpha:=medium;
+beta:=small;
+x5=rightloc-alpha; y5=0;       % stem
+x8=rightloc; y8=h;
+x6=rightloc; y6=y8-2alpha;
+x7=x6-alpha; y7=0.5[y6,y8];
+x1=x2=x3=leftloc;              % tother part
+y2=y7; y1=y2-2alpha; y3=y4=0.5[y1,y2];
+%%x4=x7-alpha;
+x4=0.5[x7,x2];
+draw z5---z6{left}..z7..z8;    % stem
+draw z1--z2; draw z3--z4;      % tother
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+%
+% \begin{verbatim}
+% cmchar "Linear B sign so (Jurgen's)";
+% beginglyph("1",0.6);
+% numeric alpha; alpha:=small;
+% numeric rad;   rad:=0.15h;
+% numeric gam; gam:=1.5;    % the tension
+% x3=rightloc;                           % stem points
+% x1=x2=x4=x5=x0=x3-0.75rad;
+% y1=0; y5=h; y0=h-rad-alpha;
+% y2=y0-rad; y4=y0+rad; y3=y0;
+% x6=x7=x8=x9=leftloc; x10=x11=x0-alpha;  % [ points
+% y9=y5; y8=y11=y4; y7=y10=y2; y7-y6=y9-y8;
+% %%draw z1..tension gam..z2..tension gam..z3..tension gam..z4..tension gam..z5;
+% %%draw z1---z2..tension gam..z3..tension gam..z4---z5;
+% draw z1--z2{up}..z3..{up}z4--z5;
+% draw z6--z9; draw z7--z10; draw z8--z11;
+% labels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+% \end{verbatim}
+%
+% \end{routine}
+%
+% \begin{routine}{su}
+%    The sign \textit{su}. Like an angular sloping lowercase E, except that
+% \jurgen{} showed it upright without the small vertical dash.
+% \begin{verbatim} 
+% cmchar "Linear B sign su (original)";
+% beginglyph("2",0.6);
+% numeric alpha;
+% alpha:=small;
+% x1=leftloc; x3=x1+alpha; y1=y4=0; y3=y7=h;   % rectangle corner points
+% x7=rightloc; x4=x7-alpha;
+% z2=2/3[z1,z3];
+% z6=2/3[z4,z7];
+% z5=1/3[z4,z7];
+% draw z5--z4--z1--z3--z7--z6--z2;
+% labels(1,2,3,4,5,6,7,8,9); endchar;
+% \end{verbatim}
+% 
+%    \begin{macrocode}
+cmchar "Linear B sign su";
+beginglyph("2",0.6);
+numeric alpha;
+alpha:=small;
+x1=leftloc; x3=x1; y1=y4=0; y3=y7=h;   % rectangle corner points
+x7=rightloc; x4=x7;
+z2=2/3[z1,z3];
+z6=2/3[z4,z7];
+z5=1/3[z4,z7];
+draw z4--z1--z3--z7--z6--z2;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ta}
+%    The sign \textit{ta}. Bit like a pi lying on its side.
+%    \begin{macrocode}
+cmchar "Linear B sign ta";
+beginglyph("t",0.6);
+x1=x3=leftloc; y1=0; y3=h;     % left upright
+x2=x3+small; y2=h/2;
+path p[];
+p1 = z1..z2{up}..z3;
+z4= point 0.5 of p1; z7= point 1.5 of p1;
+x6=x5=x8=x9=rightloc;
+y5=y4-small; y8=y7+small;
+y6=y1; y9=y3;
+draw p1;                       % upright
+draw z4--z5--z6;               % bottom arm
+draw z7--z8--z9;               % top arm
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{te}
+%    The sign \textit{te}. Vertical stem with three crossbars.
+%    \begin{macrocode}
+cmchar "Linear B sign te";
+beginglyph("T",0.6);
+numeric alpha; alpha:=1/3;
+x1=x2=midloc; y1=0; y2=h;     % upright
+x3=x4=x5=leftloc; x6=x7=x8=x1-alpha;
+x9=x10=x11=x1+alpha; x12=x13=x14=rightloc;
+y3=y6=y9=y12=alpha*h;
+y5=y8=y11=y14=(1-alpha)*h;
+y4=y7=y10=y13=0.5[y3,y5];
+draw z1--z2;                                  % stem
+draw z3--z6; draw z4--z7; draw z5--z8;        % left dashes
+draw z9--z12; draw z10--z13; draw z11--z14;   % right dashes
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ti}
+%    The sign \textit{ti}. A dome enclosing a vertical dash.
+%    \begin{macrocode}
+cmchar "Linear B sign ti";
+beginglyph("3",0.6);
+numeric alpha; alpha:=0.15h;
+numeric beta; beta:=1.5;                % for tension
+x1=leftloc; x3=rightloc; y1=y3=0;      % base points
+x2=midloc; y2=h;                       % top point
+x4=x5=x6=midloc; y5=0.5h;
+y4=y5-alpha; y6=y5+alpha;
+draw z1{up}..tension beta..z2..tension beta..{down}z3;      % curve
+draw z4--z6;                           % vertical
+labels(1,2,3,4,5,6); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{to}
+%    The sign \textit{to}. Like a T but two crossbars.
+%    \begin{macrocode}
+cmchar "Linear B sign to";
+beginglyph("4",0.6);
+numeric alpha; alpha:=0.2;
+x1=x2=midloc; y1=0; y2=h;             % stem
+x3=leftloc; x4=rightloc; y3=y4=y2;    % top bar
+x5=alpha[x3,x4]; x6-x2=x2-x5; y5=y6=0.75h;
+draw z1--z2;    % stem
+draw z3--z4;    % top bar
+draw z5--z6;    % middle bar
+labels(1,2,3,4,5,6); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{tu}
+%    The sign \textit{tu}. Like a heart with a stalk. \jurgen{} has the stalk
+% going down to the point of the heart.
+%    \begin{macrocode}
+cmchar "Linear B sign tu";
+beginglyph("5",0.6);
+numeric alpha; alpha:=0.1h;
+x1=x5=midloc; y1=0;
+x3=leftloc; x7=rightloc;
+x4=0.25[x3,x7]; x6=0.75[x3,x7];
+y4=y6=h-alpha; y3=y7=2/3[y1,y4];
+y5=0.5[y3,y4];
+x10=x6; y10=h;
+draw z1{up}..z3{up}..z4{right}..z5;   % left half
+draw z1{up}..z7{up}..z6{left}..z5;    % right half
+%%draw z5{up}..z10;                     % stalk (original)
+draw z1---z5..z10;                    % stalk (jurgen)
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{wa}
+%    The sign \textit{wa}. A box on three legs
+%    \begin{macrocode}
+cmchar "Linear B sign wa";
+beginglyph("w",0.6);
+x1=x2=x3=leftloc; y1=0; y2=0.67h; y3=h;
+x4=x5=midloc; y4=y1; y5=y2;
+x6=x7=x8=rightloc;
+y6=y1; y7=y2; y8=y3;
+draw z2--z3--z8--z7--cycle;  % box
+draw z1--z2; draw z4--z5; draw z6--z7;  % legs
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{we}
+%    The sign \textit{we}. A reversed `S'.
+%    \begin{macrocode}
+cmchar "Linear B sign we";
+beginglyph("W",0.4);
+numeric alpha; alpha:=0.5*(rightloc-leftloc);
+x1=x5=leftloc; x6=x4=x2=midloc; x7=x3=rightloc;
+y6=0; y5=y7=y6+alpha; y4=h/2; y1=y3=y2-alpha; y2=h;
+draw z1..z2..z3..z4..z5..z6..z7;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{wi}
+%    The sign \textit{wi}. A bit like a whale's tooth with a cross at the bottom.
+%    \begin{macrocode}
+cmchar "Linear B sign wi";
+beginglyph("6",0.6);
+numeric alpha; alpha:=small;
+numeric beta; beta:= 0.15;
+x1=leftloc; x3=rightloc; x5=x3-alpha; y1=y5=0; y3=h;  % curves
+path p[];
+p1=z1{up}..z3; p2=z5{up}..z3;
+z2= point beta of p1; z4= point beta of p2;
+x6=x7=0.5[x1,x5]; y6=y1; y7-y2=y2;
+draw p1; draw p2; draw z1--z5;        % tooth
+draw z2--z4; draw z6--z7;             % cross
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{wo}
+%    The sign \textit{wo}. Bit like pi with a small 3 tacked at the right of the 
+% crossbar.
+%    \begin{macrocode}
+cmchar "Linear B sign wo";
+beginglyph("7",0.6);
+numeric alpha; alpha:=small;
+numeric beta; beta:= 0.15;
+x1=x3=leftloc; x4=rightloc; x2=0.7[x1,x4]; y1=y4=0; y3=y2=h-alpha;
+x10=x11=x12=0.5[x2,x4]; x13=x14=rightloc;    % the 3
+y12=h; y11=y2; y11-y10=y12-y11;
+y14=0.5[y11,y12]; y13=0.5[y10,y11];
+draw z1--z2; draw z3--z2{down}..z4;      % main part
+draw z10..z13{up}..{left}z11;            % the 3
+draw z12..z14{down}..{left}z11;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{za}
+%    The sign \textit{za}. A circle on a stem with a crossbar at the bottom
+% of the circle.
+%    \begin{macrocode}
+cmchar "Linear B sign za";
+beginglyph("z",0.8);
+numeric alpha; alpha:=0.2*(rightloc-leftloc);
+numeric rad;   rad:=0.3*(rightloc-leftloc);
+x0=midloc; y0=h-rad;                  % circle center
+x1=x2=x5=x0;                          % mid vertical points
+y1=0; y2=y0-rad; y5=y0+rad;
+y3=y6=y0;                             % mid horizontal points
+x3=x0-rad; x6=x0+rad; 
+path p[];             
+p1=z2{left}..z3{up}..{right}z5;
+p2=z5{right}..z6{down}..{left}z2;
+x7=leftloc; y7=y2; x11=rightloc; y11=y7;
+p3=z7--z11;
+draw p1; draw p2;                     % circle
+draw z1--z2;                          % stem
+draw p3;                              % horizontal line
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ze}
+%    The sign \textit{ze}. Looks a bit like a fish hook.
+%    \begin{macrocode}
+cmchar "Linear B sign ze";
+beginglyph("Z",0.6);
+numeric rad;   rad:=0.5*(rightloc-leftloc);
+numeric alpha; alpha:=0.2*(rightloc-leftloc);
+numeric beta;
+x1=x2=leftloc; y1=h; y2=rad;            % the hook
+x3=midloc; y3=0; x4=rightloc; y4=y2;
+x5=x7=x1; y7=1/8[y2,y1]; y5=3/4[y2,y1]; % the lure
+x6=0.25[x2,x4]; y6=0.5[y7,y5];
+x10=x11=x12=x13=0.5[x6,x4];             % and dashes
+y10=0.1[y7,y5]; y13=0.9[y7,y5];
+y11=1/3[y10,y13]; y12=2/3[y10,y13];
+beta:=0.5(x4-x6);
+draw z1--z2..z3..z4;                  % hook
+draw z5..z6..z7;                      % lure
+draw_hdash(10,beta); draw_hdash(11,beta); 
+draw_hdash(12,beta); draw_hdash(13,beta);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,17); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{zo}
+%    The sign \textit{zo}. An upward arrow with a horizontal dash near the bottom.
+% \jurgen{} suggested that the dash be a little shorter.
+%    \begin{macrocode}
+cmchar "Linear B sign zo";
+beginglyph("9",0.6);
+x1=x2=midloc; y1=0; y2=h;      % stem
+x5=leftloc; x6=rightloc; y5=y6=3/4h;
+%%x3=leftloc; x4=rightloc; y3=y4=1/4h;  % bar (original)
+x3=0.2[x5,x6]; x4=0.2[x6,x5]; y3=y4=1/4h;  % bar (jurgen)
+draw z1--z2;      % stem
+draw z3--z4;      % bar
+draw z5--z2--z6;  % roof
+labels(1,2,3,4,5,6); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \subsection{Unidentified glyphs}
+%
+%    There are 11 glyphs whose meanings have not yet been identified.
+% I will put these at the start of the encoding, where the upper case Greek
+% characters (there are 11 of them) normally reside.
+% \changes{v1.2}{2005/06/22}{Reordered the unknown glyphs}
+%
+% \begin{routine}{unkown 1}
+%    The 1st unknown character. A bit like a stick figure of a man with
+% spiky hair.
+%    \begin{macrocode}
+cmchar "Linear B unknown 1";
+beginglyph(oct"035", 0.6);
+numeric alpha; alpha:=0.2*(rightloc-leftloc);
+numeric rad;   rad:=0.3*(rightloc-leftloc);
+numeric hair;  hair:=0.1h;
+x0=midloc; y0=h-rad-hair;             % circle center
+x1=x2=x5=x0;                          % mid vertical points
+y1=0; y2=y0-rad; y5=y0+rad;
+y3=y6=y0;                             % mid horizontal points
+x3=x0-rad; x6=x0+rad; 
+path p[];             
+p1=z5{left}..z3{down}..{right}z2;
+p2=z5{right}..z6{down}..{left}z2;
+x7=leftloc; y7=y2; x11=rightloc; y11=y7;
+p3=z7--z11;
+% for the the hair lines
+x25=x5; y25=h;
+z16= point 1/3 of p1; z17= point 1/3 of p2;
+z26'=z16 shifted (w*(-1,2)); z27'=z17 shifted (w*(1,2));
+y26=y27=h; 
+z26=whatever[z16,z26']; z27=whatever[z17,z27'];
+draw p1; draw p2;                     % circle
+draw z1--z2;                          % stem
+draw p3;                              % horizontal line
+draw z16--z26; draw z5--z25; draw z17--z27;  % hairs
+labels(1,2,3,4,5,6,15,16,17,25,26,27); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 2}
+%    The 2nd unknown character. A bit like a chess pawn.
+%    \begin{macrocode}
+cmchar "Linear B unknown 2";
+beginglyph(oct"036", 0.6);
+numeric alpha; alpha:=0.2*(rightloc-leftloc);
+x1=leftloc; x2=rightloc; y1=y2=0;     % base points
+x3=leftloc; x4=midloc; x5=rightloc; y3=y4=y5=h/2;  % middle points
+x8=x4;y8=h;                           % top point
+x6=leftloc+alpha; x7=rightloc-alpha; y6=y7=0.5[y4,y8];
+draw z1--z2--z4--cycle;               % bottom triangle
+draw z3--z5;                          % horizontal bar
+draw z4{left}..z6{up}..z8{right}..z7{down}..cycle;  % head
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 3}
+%    The 3rd unknown character, like a T with a wavy top bar. 
+%    \begin{macrocode}
+cmchar "Linear B unknown 3";
+beginglyph(oct"037", 0.8);
+numeric alpha; alpha:=0.2h;
+x3=leftloc; x4=rightloc; x1=x2=2/3[x3,x4]; 
+y1=0; y3=y2=y4=h-alpha;
+x6=0.5[x3,x2]; y6=h;
+x7=0.5[x2,x4]; y7=h;
+draw z1--z2;                   % stem
+draw z3..z6{right}..z2;        % left bar
+draw z2..z7{right}..z4;        % right bar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 4}
+%    The 4th unknown character. A bow with a circle.
+%    \begin{macrocode}
+cmchar "Linear B unknown 4";
+beginglyph(oct"040", 0.6);
+numeric rad; rad:=1/3*(rightloc-leftloc);
+x1=rightloc; y1=0; 
+x3=rightloc; y3=h;
+x2=leftloc+rad; y2=0.5[y1,y3];
+draw z1..z2{up}..z3;
+draw fullcircle scaled (2rad) shifted z2;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 5}
+%    Suggested by \jurgen. A mirror image of the bow with circle.
+%    \begin{macrocode}
+cmchar "Linear B unknown 5";
+beginglyph(oct"041", 0.6);
+numeric rad; rad:=1/3*(rightloc-leftloc);
+x1=leftloc; y1=0; 
+x3=leftloc; y3=h;
+x2=rightloc-rad; y2=0.5[y1,y3];
+draw z1..z2{up}..z3;
+draw fullcircle scaled (2rad) shifted z2;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 6}
+%    The 6th unknown character. Two intersecting curves with a square
+% around the intersection.
+%    \begin{macrocode}
+cmchar "Linear B unknown 6";
+beginglyph(oct"042", 0.6);
+numeric alpha; 
+x1=x4=leftloc; x3=x2=rightloc; y1=y3=0; y2=y4=h;  % leg points
+path p[];
+p1=z1{up}..z2; p2=z3{up}..z4;
+z0 = p1 intersectionpoint p2;
+%%alpha:=0.5*(x0-x4);
+alpha:=0.75*(x0-x4);
+x5=x0-alpha; x7=x0+alpha; y5=y7=y0;
+x6=x8=x0; y8=y0-alpha; y6=y0+alpha;
+draw p1; draw p2;            % the legs
+draw z5--z6--z7--z8--cycle;  % the square
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{unknown 7}
+%    The 7th unknown character. Like a sketch of a bird, and three legs.
+%    \begin{macrocode}
+cmchar "Linear B unknown 7";
+beginglyph(oct"043", 0.8);
+numeric alpha; alpha:=0.1h;
+numeric beta; beta:=0.1;
+numeric gamma; gamma:=0.15*(rightloc-leftloc);
+x1=leftloc; x5=rightloc; y1=y5=(h-alpha);           % bird wings
+x3=0.5[x1,x5]; y3=y1;
+x2=0.5[x1,x3]; x4=0.5[x3,x5]; y2=y4=h;
+x12=x2; y12=y2; x15=x3; y15=y3; x18=x4; y18=y4;           % top of legs
+x10=leftloc+0.5gamma; x13=midloc; x16=rightloc-0.5gamma;  % bottom of legs
+y10=y13=y16=0;
+z11=beta[z10,z12]; z14=beta[z13,z15]; z17=beta[z16,z18]; % dash points
+draw z1..z2..z3; draw z3..z4..z5;                   % wings
+draw z10--z12; draw z13--z15; draw z16--z18;        % legs
+draw_hdash(10,gamma); draw_hdash(11,gamma);         % dashes
+draw_hdash(13,gamma); draw_hdash(14,gamma); 
+draw_hdash(16,gamma); draw_hdash(17,gamma); 
+labels(1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 8}
+%    The 8th unknown character. A bit like castle battlements.
+%    \begin{macrocode}
+cmchar "Linear B unknown 8";
+beginglyph(oct"044", 1.0);
+numeric alpha; alpha:=0.1h;
+numeric beta,gamma; 
+x1=x2=x3=leftloc; y1=0; y3=h; y2=(h-alpha);         % left upright
+x14=rightloc; y14=h;                                % rightmost point
+x9=x11=x12=4/5[x1,x14]; y9=y1; y11=(y2-2alpha); y12=y2;   % right upright
+x13=0.5[x12,x14]; y13=y14;
+x4=x6=x7=x8=0.5[x1,x9]; y4=y1; y6=y11; y7=y2; y8=y3; % middle upright
+x5=0.75[x1,x4]; x10=0.75[x4,x9]; y5=y10=0.25[y9,y11];  % dashes
+beta:=0.5*(x4-x1);                  % dash length
+gamma:=0.55;                        % zigzag overlap
+x2'=gamma[x2,x6]; y2'=y2; x6'=gamma[x6,x2]; y6'=y6;
+x7'=gamma[x7,x11]; y7'=y7; x11'=gamma[x11,x7]; y11'=y11;
+draw z1--z9;                        % base line
+draw z1--z3; draw z4--z8;           % uprights
+draw z9--z12{up}..{right}z13--z14;
+draw_hdash(5,beta); draw_hdash(10,beta);  % dashes
+draw z2---z2'{right}..{right}z6'---z6;    % left zigzag
+draw z7---z7'{right}..{right}z11'---z11;  % right zigzag
+labels(1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 9}
+%    The 9th unknown character.  Like a paramecium.
+%    \begin{macrocode}
+cmchar "Linear B unknown 9";
+beginglyph(oct"045", 0.8);
+numeric majrad,minrad;      % major and minor ellipse radii
+numeric alpha; 
+numeric beta,gamma; 
+x0=0.5[leftloc,rightloc]; y0=h/2;                      % center of ellipse
+majrad:=0.5*(rightloc-leftloc); minrad:=0.5majrad;
+z1=z0 shifted (majrad*NW); z3=z0 shifted (majrad*SE);  % ellipse points
+z2=z0 shifted (minrad*NE);  z4=z0 shifted (minrad*SW);
+path p[];
+p1=z1..z2..z3..z4..cycle;
+alpha:=0.4minrad;
+z1'=z1 shifted (alpha*NW); z3'=z3 shifted (alpha*SE); % expanded ellipse points
+z2'=z2 shifted (alpha*NE); z4'=z4 shifted (alpha*SW);
+p2= z1'..z2'..z3'..z4'..cycle;
+p3= z1'..z4'..z3'..z2'..cycle;
+gamma:=0.15;    % half the dash skip
+z14=point (1-3gamma) of p2; z24=point (1-3gamma) of p3;
+z15=point (1-gamma)  of p2; z25=point (1-gamma)  of p3;
+z16=point (1+gamma)  of p2; z26=point (1+gamma)  of p3;
+z17=point (1+3gamma) of p2; z27=point (1+3gamma) of p3;
+beta:=0.5tiny;
+z14''= z14 shifted (beta*SE); z14'=z14 shifted (beta*NW);
+z24''= z24 shifted (beta*SE); z24'=z24 shifted (beta*NW);
+z15''= z15 shifted (beta*SE); z15'=z15 shifted (beta*NW);
+z25''= z25 shifted (beta*SE); z25'=z25 shifted (beta*NW);
+z16''= z16 shifted (beta*SE); z16'=z16 shifted (beta*NW);
+z26''= z26 shifted (beta*SE); z26'=z26 shifted (beta*NW);
+z17''= z17 shifted (beta*SE); z17'=z17 shifted (beta*NW);
+z27''= z27 shifted (beta*SE); z27'=z27 shifted (beta*NW);
+draw p1;                                  % the ellipse
+draw z14'--z14''; draw z24'--z24'';       % the dashes
+draw z15'--z15''; draw z25'--z25'';
+draw z16'--z16''; draw z26'--z26'';
+draw z17'--z17''; draw z27'--z27'';
+labels(0,1,1',2,2',3,3',4,4',5,6,7,8,10,11,12,13,14,15,16,17,24,25,26,27); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 10}
+%    The 10th unknown character.  Like a dome with a weathervane on top.
+% \jurgen{} changes the weather vane to a line with curls at each end.
+% \begin{verbatim}
+% cmchar "Linear B unknown 10 (original)";
+% beginglyph(oct"046", 0.8);
+% x1=leftloc; x7=rightloc; y1=y7=0;         % outside base points
+% x4=midloc; y4=2/3h;
+% z8=0.15[z1,z7]; z9=0.85[z1,z7];
+% x3=x8; x5=x9; y3=y5=y4-small;
+% x10=x4; y10=2/3[y4,h];                             % weathervane
+% x11=x8; x12=x9; y11=y12=y10;
+% z15=0.75[z10,z12];
+% numeric beta; beta:=(h-y10);
+% z13=z11 shifted (beta*SE); z14=z11 shifted (beta*NE); % arrow
+% draw z1{up}..z3..z4{right}..z5..{down}z7;          % dome
+% draw z8--z3; draw z9--z5;
+% draw z4--z10;                                      % weathervane support
+% draw z11--z12;                                     % arrow shaft
+% draw z13--z11--z14;                                % arrow head
+% draw_vdash(15,2beta); draw_vdash(12,2beta);        % feathers
+% labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,24,25,26,27); endchar;
+% \end{verbatim}
+% 
+%    \begin{macrocode}
+cmchar "Linear B unknown 10";
+beginglyph(oct"046", 0.8);
+numeric rad; rad:=1/16h;
+x1=leftloc; x7=rightloc; y1=y7=0;                % dome outside base points
+x4=midloc; y4=h-6rad;                            % center top
+z8=0.15[z1,z7]; z9=0.85[z1,z7];                  % internal uprights
+x3=x8; x5=x9; y3=y5=y4-small;
+x22=x4; y22=h-2rad;                              % stem
+x24=x26=x8; y24=y22+rad; y26=y22-rad;            % left curls
+x23=x25=x27=x24+rad; y23=y24+rad; y25=y22; y27=y26-rad;
+z13=z23 reflectedabout (z4,z22);                 % right curls
+z14=z24 reflectedabout (z4,z22);
+z15=z25 reflectedabout (z4,z22);
+z16=z26 reflectedabout (z4,z22);
+z17=z27 reflectedabout (z4,z22);
+draw z1{up}..z3..z4{right}..z5..{down}z7;    % dome
+draw z8--z3; draw z9--z5;                    % internal uprights
+draw z4--z22;                                % stem
+draw z25--z15;                               % crossbar
+draw z23..z24..z25; draw z25..z26..z27;      % left curls
+draw z13..z14..z15; draw z15..z16..z17;      % right curls
+labels(1,2,3,4,5,6,7,8,9,13,14,15,16,17,22,23,24,25,26,27); endchar;
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 11}
+%    The 11th unknown character.  Like a scythe.
+%    \begin{macrocode}
+cmchar "Linear B unknown 11";
+beginglyph(oct"047", 0.8);
+x1=x5=x2=leftloc; y1=0; y2=h; y5= 0.2h;   % vertical handle
+x7=rightloc; y7-y5 = y5-y1;                    % rightmost point
+x4=0.9[x1,x7]; y7-y4=0.5(y5-y1);
+x3=x6=0.5[x1,x7]; y3-y1 = 0.25(y4-y1); y6-y3=y5-y1;
+draw z1--z2;                           % handle
+draw z1{right}..z3..z4; draw z4--z7;   % the blade
+draw z5{right}..z6..z7;
+draw z3--z6;
+labels(1,2,3,4,5,6,7); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{unknown 12}
+%    The last unknown character. Like a capital letter B. \jurgen{} suggested
+% that it should be narrower, and also said that it was the \textit{twe} sign.
+%    \begin{macrocode}
+cmchar "Linear B unknown 12 (or twe)";
+beginglyph(oct"177", 0.35);
+numeric beta; beta:=2.0;  % tension
+x1=x3=leftloc; y1=0; y3=h; z2=0.5[z1,z3];   % upright
+x4=x5=rightloc;
+y4=0.5[y1,y2];
+y5=0.5[y2,y3];
+draw z1--z3;
+%%draw z1..tension beta..z4..tension beta..z2;  % lower bowl
+%%draw z2..tension beta..z5..tension beta..z3;  % lower bowl
+%%draw z1{right}..z4..{left}z2; 
+%%draw z2{right}..z5..{left}z3;
+draw z1{(2,1)}..z4..{(-2,1)}z2;
+draw z2{(2,1)}..z5..{(-2,1)}z3;
+labels(1,2,3,4,5,6,7); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \subsection{The optional signs}
+%
+%    There are 16 optional signs. There is also a word divider.
+% Hyphenation was, of course, unknown but it might be useful to
+% leave the normal character position for the hyphen (i.e., octal 055)
+% empty allowing, perhaps, \TeX{} to perform hyphenation but without
+% marking it.
+%
+% \begin{routine}{,}
+%    A word divider coded as a comma. It is a short vertical line above the
+% text baseline.
+%    \begin{macrocode}
+cmchar "Linear B word divider (1)";
+beginglyph(",",0.1);
+x1=x2=midloc; y1=0.2h; y2=0.4h;
+draw z1--z2;
+labels(1,2); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{:}
+%    A word divider coded as a colon. It is a short vertical line above the
+% text baseline.
+%    \begin{macrocode}
+cmchar "Linear B word divider (2)";
+beginglyph(":",0.1);
+x1=x2=midloc; y1=0.2h; y2=0.4h;
+draw z1--z2;
+labels(1,2); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{/}
+%    A word divider coded as a forward slash. It is a short vertical line above the
+% text baseline.
+%    \begin{macrocode}
+cmchar "Linear B word divider (3)";
+beginglyph("/",0.1);
+x1=x2=midloc; y1=0.2h; y2=0.4h;
+draw z1--z2;
+labels(1,2); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{a2}
+%    Optional character \textit{a2}. Like a T with two loops under the crossbar.
+%    \begin{macrocode}
+cmchar "Linear B optional sign a2";
+beginglyph(oct"073",0.8);
+x1=x2=midloc; y1=0; y2=h;                          % upright
+x3=leftloc; x4=rightloc; y3=y4=y2;                 % crossbar
+x5=0.1[x3,x2]; x7=0.6[x3,x2]; y5=y7=y2-tiny;       % left loop
+x6=0.5[x5,x7]; y6=y5-small;
+z8=z7 reflectedabout (z1,z2);
+z9=z6 reflectedabout (z1,z2);
+z10=z5 reflectedabout (z1,z2);
+draw z1--z2; draw z3--z4;      % stem and crossbar
+draw z5..z6..z7;               % loops
+draw z8..z9..z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{a3}
+%    Optional character \textit{a3}. Like a crown on bowed legs.
+%    \begin{macrocode}
+cmchar "Linear B optional sign a3";
+beginglyph(oct"074",0.8);
+x5=leftloc; x10=rightloc; y5=y10=h;           % top left & right
+x4=0.1[x5,x10]; x9=0.9[x5,x10]; y4=y9=0.75h;  % ends of crossbar
+z11=1/3[z4,z9]; z13=2/3[z4,z9];               % vertical dashes
+x11=x12; y12=y5; x14=x13; y14=y12;
+z3=0.5[z4,z11]; x2=leftloc; y2=0.5[y1,y3];    % left leg
+x1=0.5[x2,x3]; y1=0;
+z8=0.5[z13,z9]; x7=rightloc; y7=y2;           % right leg
+x6=0.5[x8,x7]; y6=0;
+x15=x16=midloc; y15=y2; y16=0.5[y15,y4];      % central dash
+draw z1..z2{up}..z3;  draw z6..z7{up}..z8;    % legs
+draw z4--z9; draw z11--z12; draw z13--z14;    % crown
+draw z4{up}..z5; draw z9{up}..z10;
+draw z15--z16;                                % central dash
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{au}
+%    Optional character \textit{au}. Like an antelope's head.
+%    \begin{macrocode}
+cmchar "Linear B optional sign au";
+beginglyph(oct"075",0.8);
+numeric alpha; alpha:=0.1h;
+x1=x2=x3=leftloc+alpha; y1=0; y2=0.33h; y3=h-3alpha;  % neck
+x5=leftloc; y5=h-small;                               % bottom of ear
+x4=0.5[x5,x3]; y4=0.5[y5,y3] - tiny;
+x6=x5+small; y6=h;                                    % top of ear
+x8-x6=x3-x5; y6-y8=y5-y3;
+x7=0.5[x8,x6]; y7=0.5[y8,y6] + tiny;
+x9=x10=rightloc; y10=1/3[y2,y8]; y9=2/3[y2,y8];       % head
+x12=x8; y12=y3; x11=0.3[x8,x9]; y11=0.5[y10,y9];      % eye
+draw z1--z3;                % neck
+draw z3..z4..{up}z5;        % ear
+draw z6{right}..z7..z8;
+draw z8--z9--z10--z2;       % head
+draw z11--z12;              % eye
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{dwe}
+%    Optional character \textit{dwe}. A man with outstretched arms.
+%    \begin{macrocode}
+cmchar "Linear B optional sign dwe";
+beginglyph(oct"076",0.8);
+numeric rad; rad:=1/6h;
+numeric alpha; alpha:=0.1h;
+x1=leftloc; x4=rightloc; x2=x1+rad; x3=x4-rad; % arms
+y2=y3=1/3h; y1=y4=y2+rad;
+x0=midloc; y0=h-rad;                           % center of head
+x5=x0-1/2rad; x7=x0+1/2rad;              % body
+y5=y7=0;
+x0'=x0-rad; x0''=x0; x0'''=x0+rad;
+y0'=y0'''=y0; y0''=y0-rad;
+path p;
+p=z0'{down}..z0''{right}..{up}z0''';
+z5'=z5 shifted (h*up); z7'=z7 shifted (h*up);
+z6= (z5--z5') intersectionpoint p;
+z8= (z7--z7') intersectionpoint p;
+draw fullcircle scaled (2rad) shifted z0;    % head
+draw z6--z5--z7--z8;                         % body
+draw z1{right}..{down}z2--z3{up}..{right}z4; % arms
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{dwo}
+%    Optional character \textit{dwo}. Two curved posts with dashes between at the
+% top. \jurgen{} suggested that the posts be tapered with two 3 between them.
+% \begin{verbatim}
+% cmchar "Linear B optional sign dwo (original)";
+% beginglyph(oct"077",1.0);
+% numeric beta; beta:=0.15h;  % dash length
+% numeric alpha; alpha:=(rightloc-leftloc);
+% x1=leftloc; x9=rightloc; y1=y9=0;        % extreme base points
+% x4=x1+0.4alpha; x6=x9-0.4alpha; y4=y6=0; % inner base points
+% x3=0.5[x1,x4]; x5=x4; x8=0.5[x6,x9]; x10=x9; y3=y5=y8=y10=(h - 1.5beta);
+% x21=x22=1/3[x5,x8]; x23=x24=2/3[x5,x8];
+% y22=y24=h-0.5beta; y21=y23=y22-2beta;
+% draw z1..{up}z3--z5--z4;                  % left half
+% draw z6..{up}z8--z10--z9;                 % right half
+% draw_vdash(21,beta); draw_vdash(22,beta); % dashes
+% draw_vdash(23,beta); draw_vdash(24,beta); 
+% labels(1,2,3,4,5,6,7,8,9,10,21,22,23,24); endchar;
+% \end{verbatim}
+% 
+%    \begin{macrocode}
+cmchar "Linear B optional sign dwo";
+beginglyph(oct"077",1.1);
+numeric alpha; alpha:=(rightloc-leftloc);
+numeric beta; beta:=0.2alpha;  % dash length
+numeric gap; gap:=3/2tiny;
+x0=x0'=midloc; y0=0; y0'=h;   % axis of symmetry
+x1=leftloc; x3=x0-0.5gap; y1=y3=0;    % left base points
+x2=0.5[x1,x3]; y2=0.9h;                  % top point
+x4=x1+gap; x5=x3-gap; y4=y5=0;        % base line
+%%x9=x10=0.5[x5,x3]; x6=x7=x8=0.5[(x2+0.5beta),x9];  % points for the 3
+x9=x10=x3; x6=x7=x8=0.5[(x2+0.5beta),x9];  % points for the 3
+y6=h; y7=y2; y7-y8=y6-y7;
+y10=0.5[y6,y7]; y9=0.5[y7,y8];
+z11=z1 reflectedabout (z0,z0');   % the symmetric right hand side
+z12=z2 reflectedabout (z0,z0');
+z13=z3 reflectedabout (z0,z0');
+z14=z4 reflectedabout (z0,z0');
+z15=z5 reflectedabout (z0,z0');
+z16=z6 reflectedabout (z0,z0');
+z17=z7 reflectedabout (z0,z0');
+z18=z8 reflectedabout (z0,z0');
+z19=z9 reflectedabout (z0,z0');
+z20=z10 reflectedabout (z0,z0');
+draw z1--z2--z3; draw z4--z5;         % triangle
+draw_hdash(2,beta);                   % dash at the top
+draw z6..z10..z7;                     % 3
+draw z7..z9..z8;   
+draw z11--z12--z13; draw z14--z15;    % and for the RHS
+draw_hdash(12,beta);                 
+draw z16..z20..z17;                  
+draw z17..z19..z18;   
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{nwa}
+%    Optional character \textit{nwa}. Two rakes with crossed curved handles.
+%    \begin{macrocode}
+cmchar "Linear B optional sign nwa";
+beginglyph(oct"100",1.0);
+numeric beta; beta:=0.15h;  % dash length
+numeric alpha; alpha:=0.5beta;
+x1=x11=leftloc; x6=x16=rightloc; y1=y6=h-beta;  % extreme points
+z3=0.4[z1,z6]; z4=0.6[z1,z6]; 
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+x7=x2; x8=x5; y7=y8=0;          % base points
+x21=x1; x22=x2; x23=x3; x24=x4; x25=x5; x26=x6;
+y21=y22=y23=y24=y25=y26=h-alpha;
+draw z7{up}..z5; draw z8{up}..z2;       % legs
+draw z1--z3; draw z4--z6;               % 
+draw_vdash(21,beta); draw_vdash(22,beta); draw_vdash(23,beta); 
+draw_vdash(24,beta); draw_vdash(25,beta); draw_vdash(26,beta); 
+labels(1,2,3,4,5,6,7,8,9,10,21,22,23,24,25,26); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pa3}
+%    Optional character \textit{pa3}. A ladder with three rungs.
+%    \begin{macrocode}
+cmchar "Linear B optional sign pa3";
+beginglyph(oct"133",0.6);
+x1=x2=leftloc; x3=x4=rightloc; y1=y3=0; y2=y4=h;  % corner points
+z11=0.25[z1,z2]; z12=0.5[z1,z2]; z13=0.75[z1,z2]; % left
+z21=0.25[z3,z4]; z22=0.5[z3,z4]; z23=0.75[z3,z4]; % right
+draw z1--z2; draw z3--z4;                    % uprights
+draw z11--z21; draw z12--z22; draw z13--z23; % crossbars
+labels(1,2,3,4,5,6,7,8,9,10,21,22,23,24,25,26); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pu2}
+%    Optional character \textit{pu2}. 
+%    \begin{macrocode}
+cmchar "Linear B optional sign pu2";
+beginglyph(oct"134",0.8);
+numeric alpha; alpha:=small;   % length of dashes
+x1=leftloc; x2=rightloc; y1=y2=0.6h;       % crossbar
+x3=x4=x5=midloc; y3=0; y4=y1; y5=h;        % upright
+x11=0.5[x1,x4]; x21=0.5[x4,x2]; y11=y21=y4; % base of spikes
+x14=x1; x24=x2; y14=y24=y5;                 % top of spikes
+z12=1/3[z11,z14]; z13=2/3[z11,z14];         % left dash centers
+z22=1/3[z21,z24]; z23=2/3[z21,z24];         % right dash centers
+z32=1/3[z4,z5]; z33=2/3[z4,z5];             % middle dash centers
+draw z3--z5; draw z1--z2;                   % upright and crossbar
+draw z11--z14; draw z21--z24;               % angled stems
+draw_hdash(32,alpha); draw_hdash(33,alpha); % middle dashes
+draw_hdash(12,alpha); draw_hdash(13,alpha); % left dashes
+draw_hdash(22,alpha); draw_hdash(23,alpha); % right dashes
+labels(1,2,3,4,5,6,7,8,9,10,21,22,23,24,25,26); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{pte}
+%    Optional character \textit{pte}. A box with a sunken top.
+%    \begin{macrocode}
+cmchar "Linear B optional sign pte";
+beginglyph(oct"135",0.8);
+numeric rad; rad:=small;   % radius
+x1=x2=leftloc; x3=x4=rightloc; y1=y3=0; y2=y4=h;  % straight exterior
+x13=x14=0.2[x2,x4]; x19=x20=0.8[x2,x4];
+x11=x13-rad; x22=x20+rad; y11=y22=h;
+y13=y20=y11-rad;
+x16=x14+rad; x17=x19-rad; y16=y17=0.6h;
+y14=y19=y16+rad;
+draw z2--z1--z3--z4;                       % straight exterior
+draw z2--z11{right}..{down}z13--z14{down}..{right}z16--z17{right}..{up}z19
+       --z20{up}..{right}z22--z4;          % top dish
+labels(1,2,3,4,11,12,13,14,15,16,17,18,19,20,21,22); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ra2}
+%    Optional character \textit{ra2}, like two lightning flashes.
+%    \begin{macrocode}
+cmchar "Linear B optional sign ra2";
+beginglyph(oct"136",0.6);
+numeric rad;          % radius
+numeric alpha; alpha:=(rightloc-leftloc);
+numeric beta, eta;
+rad:=0.1alpha;
+x1=x5=x6=leftloc; y1=0; y6=h;                   % left stroke leftmost points
+x12=rightloc; y12=h-2rad-rad;                   % right stroke rightmost point
+y13=y14=y12+rad; y15=y14+rad; y16=h;            % other right stroke points
+x13=x12-rad;
+x11=x16=x15=1/4[x1,x12]; y11=0;                 % right stroke leftmost points
+x14=x15+rad;
+y6-y5=2*(y16-y15) + tiny;                       % left stroke y coords
+y4=y3=y5-rad; y2=y3-rad;
+z2-z1=whatever*(z12-z11);                   % left and right strokes are parallel
+x4=x5+rad; x3=x2-rad;
+draw z1---z2..z3..z4..z5---z6;                  % left stroke
+draw z11---z12..z13..z14..z15---z16;            % right stroke
+labels(1,2,3,4,5,6,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ra3}
+%    Optional character \textit{ra3}. 
+%    \begin{macrocode}
+cmchar "Linear B optional sign ra3";
+beginglyph(oct"137",0.8);
+numeric alpha; alpha:=0.15*(rightloc-leftloc);  % dash length
+numeric beta; beta:=tiny;                     % small arc center offset
+x1=leftloc; x6=rightloc; y1=y6=h;              % top boundary points
+x7=x8=midloc; y7=0; y8=0.6h;                   % stem
+x3=x1+alpha; x4=x6-alpha; y3=y4=y1;            % inner ends of top dashes
+z2=0.5[z1,z3]; z5=0.5[z4,z6];                  % dash midpoints
+path p[];
+p1=z2{down}..z8{right}..{up}z5;                % bowl
+p2=z5{down}..z8{left}..{up}z2;
+z11=point 0.3 of p1; z21=point 0.3 of p2;      % end points of the small arcs
+z13=point 0.7 of p1; z23=point 0.7 of p2;
+z12'=0.5[z11,z13];   z22'=0.5[z21,z23];
+z12=z12' shifted (beta*(1,1)); z22=z22' shifted (beta*(-1,1));
+x31=x32=x33=x7-2alpha;                         % left stem dash centers
+y31=1/4[y7,y8]; y32=1/2[y7,y8]; y33=3/4[y7,y8];
+z41=z31 reflectedabout (z7,z8);                % right stem dash centers
+z42=z32 reflectedabout (z7,z8);
+z43=z33 reflectedabout (z7,z8);
+draw p1; draw z1--z3; draw z4--z6;            % bowl and top
+draw z11..z12..z13; draw z21..z22..z23;       % small arcs
+draw z7--z8;                                  % stem
+draw_hdash(31,alpha); draw_hdash(32,alpha); draw_hdash(33,alpha); 
+draw_hdash(41,alpha); draw_hdash(42,alpha); draw_hdash(43,alpha); 
+labels(1,2,3,4,5,6,7,8,11,12,13,21,22,23,31,32,33,41,42,43); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ro2}
+%    Optional character \textit{ro2}. A deep dish with a cross.
+% \jurgen's version is like a cherry with a cross on the long stalk.
+% \begin{verbatim}
+% cmchar "Linear B optional sign ro2 (original)";
+% beginglyph(oct"140",0.8);
+% numeric rad;    % radius
+% numeric beta;
+% x1=x3=midloc; y1=0; y3=h;               % axis of symmetry        
+% x2=leftloc; x4=rightloc; y2=y4=0.8h;    % extreme bowl points
+% rad:=(x4-x2)/8;
+% x11=x2+rad; y11=y2;                     % finish off left points
+% x13=x11+rad; y13=y11-rad;
+% x14=x13; y14=rad;
+% x16=x14+rad; y16=0;
+% z17=z16 reflectedabout (z1,z3);         % and right points
+% z19=z14 reflectedabout (z1,z3);
+% z20=z13 reflectedabout (z1,z3);
+% z22=z11 reflectedabout (z1,z3);
+% x31=x32=midloc; y32=h; y31=0.3h;            % vertical
+% x33=x31; y33=0.5[y2,y32];
+% beta:=0.5(x20-x13);
+% draw z2--z11{right}..{down}z13--z14{down}..{right}z16--z17{right}..{up}z19
+%        --z20{up}..{right}z22--z4;          % dish
+% draw z31--z32;                             % vertical
+% draw_hdash(33,beta);                       % crossbar
+% labels(1,2,3,4,11,12,13,14,15,16,17,18,19,20,21,22,31,32,33); endchar;
+% \end{verbatim}
+% 
+%    \begin{macrocode}
+cmchar "Linear B optional sign ro2";
+beginglyph(oct"140",0.6);
+numeric gap; gap=tiny;
+numeric alpha; alpha:=(rightloc-leftloc);
+numeric beta, eta;
+rad:=0.1alpha;
+x1=x2=midloc; y1=h; y2=0;           % middle points
+x5=x2-gap; y5=h/2;                  % curve points
+x3=leftloc; y3=0.75[y2,y5];
+x4=0.3[x3,x5]; y4=y5; 
+x6=x1; y6=y5+3/2gap;
+z13=z3 reflectedabout (z2,z1);
+z14=z4 reflectedabout (z2,z1);
+z15=z5 reflectedabout (z2,z1);
+draw z1--z2;                          % vertical
+draw_hdash(6,4gap);                   % crossbar
+draw z5---z4..z3..z2..z13..z14---z15;   % curve
+labels(1,2,3,4,5,6,11,12,13,14,15,16); endchar;
+
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{swa}
+%    Optional character \textit{swa}. 
+%    \begin{macrocode}
+cmchar "Linear B optional sign swa";
+beginglyph(oct"173",0.6);
+numeric beta; beta:=2;      % tension value
+numeric eta; eta:=small;    % dash size
+x1=leftloc; x1'=rightloc; y1=y1'=h/2;     % axis of symmetry        
+x2=leftloc; y2=0;
+x3=leftloc; y3=h/5;
+x5=0.75[x1,x1']; y5=y3;
+x7=0.875[x1,x5]; y7=y1;
+z12=z2 reflectedabout (z1,z1');
+z13=z3 reflectedabout (z1,z1');
+z15=z5 reflectedabout (z1,z1');
+z21=1/3[z1,z7]; z22=2/3[z1,z7];
+y23=y5+0.5eta; x23=rightloc;
+z24=z23 reflectedabout (z1,z1');
+draw z2..tension beta..z3..tension beta..z5..tension 0.5beta..z7
+       ..tension 0.5beta..z15..tension beta..z13..tension beta..z12;
+draw_vdash(21,eta); draw_vdash(22,eta);
+draw_vdash(23,eta); draw_vdash(24,eta);
+labels(1,2,3,4,5,6,7,8,12,13,14,15,16,17,18,21,22,23,24); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{swi}
+%    Optional character \textit{swi}. An X inside brackets.
+%    \begin{macrocode}
+cmchar "Linear B optional sign swi";
+beginglyph(oct"174",0.8);
+numeric beta, eta, wid;
+wid:=(rightloc-leftloc);
+x0=x0'=midloc; y0=0; y0'=h;           % axis of symmetry
+x1=x2=leftloc; y1=0; y2=h;            % left bracket
+x3=x4=x1+0.1wid; y3=y1; y4=y2;
+x5=x7=x0-0.3wid; y5=0.3h; y7=0.7h;    % left of bars
+x6=x8=0.2[x5,x0]; y6=y5; y8=y7;       % left of X
+z21=z1 reflectedabout (z0,z0');       % the right half points
+z22=z2 reflectedabout (z0,z0');
+z23=z3 reflectedabout (z0,z0');
+z24=z4 reflectedabout (z0,z0');
+z25=z5 reflectedabout (z0,z0');
+z26=z6 reflectedabout (z0,z0');
+z27=z7 reflectedabout (z0,z0');
+z28=z8 reflectedabout (z0,z0');
+draw z3--z1--z2--z4; draw z23--z21--z22--z24; % brackets
+draw z5--z25; draw z7--z27;                   % bars
+draw z26--z8; draw z6--z28;                   % the X
+labels(1,2,3,4,5,6,7,8,21,22,23,24,25,26,27,28); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{ta2}
+%    Optional character \textit{ta2}. 
+%    \begin{macrocode}
+cmchar "Linear B optional sign ta2";
+beginglyph(oct"175",0.8);
+numeric beta, eta, wid;
+wid:=(rightloc-leftloc);
+eta:= 1/7h;                           % dash length and vertical space
+beta:= 0.2wid;                        % dash horizontal seperation
+x0=x0'=midloc; y0=0; y0'=h;           % axis of symmetry
+x1=leftloc; x2=rightloc; y1=y2=h;     % top
+x3=1/4[x1,x2]; y3=0;                  % bottom left
+z4=z3 reflectedabout (z0,z0');        % bottom right
+x11=x0; y11=3/2eta;                   % bottom dash
+x12=x0-1/2beta; y12=y11+2eta;         % middle dashes
+z13=z12 reflectedabout (z0,z0');
+x15=x0; y15=y12+2eta;                 % top dashes
+x14=x15-beta; y14=y15;
+z16=z14 reflectedabout (z0,z0');
+draw z1--z2;                          % top
+draw z3{up}..z1; draw z4{up}..z2;     % sides
+draw_vdash(11,eta);                   % dashes
+draw_vdash(12,eta); draw_vdash(13,eta);
+draw_vdash(14,eta); draw_vdash(15,eta); draw_vdash(16,eta);
+labels(1,2,3,4,5,6,7,8,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{two}
+%    Optional character \textit{two}. A bit like a bird house.
+%    \begin{macrocode}
+cmchar "Linear B optional sign two";
+beginglyph(oct"176",0.8);
+numeric beta, eta, wid;
+wid:=(rightloc-leftloc);
+eta:= 0.2wid;                           % dash length and vertical space
+x0=x0'=midloc; y0=0; y0'=h;             % axis of symmetry
+x1=leftloc; x2=midloc; y1=2/3h; y2=h;   % the roof
+z3=z1 reflectedabout (z0,z0');
+z4=0.2[z1,z2];                          % top of sides
+z5=z4 reflectedabout (z0,z0');
+x6=0.4[x1,x3]; y6=0;                    % bottom of sides
+z7=z6 reflectedabout (z0,z0');
+x8=0.5[x6,x7]; y8=(x0-x6);              % top of base
+x11=x12=x0; y11=y4-1/2eta; y12=y11+eta; % dash centers
+draw z1--z2--z3;                        % roof
+draw z6{up}..z4; draw z7{up}..z5;       % sides
+draw z6..z8..z7;                        % base
+draw_hdash(11,eta); draw_hdash(12,eta); % dashes
+labels(1,2,3,4,5,6,7,8,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+%
+% \subsection{The numerals}
+%
+%    There are different signs for digits, tens, hundreds, and one thousand.
+% That is, 28 characters. I will put these into the positions normally
+% occupied by the lower case Greek letters and variants.
+% \changes{v1.2}{2005/06/22}{Rordered the numerals}
+%
+%
+%    The digits are composed of vertical dashes.
+% \begin{routine}{9}
+%    The numeral \textit{9}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 9";
+beginglyph(oct"011",4digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=1/4[leftloc,rightloc];
+x3=x8=1/2[leftloc,rightloc];
+x4=x9=3/4[leftloc,rightloc];
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+draw_vdash(3,alpha);
+draw_vdash(4,alpha);
+draw_vdash(5,alpha);
+% bottom row
+draw_vdash(6,alpha);
+draw_vdash(7,alpha);
+draw_vdash(8,alpha);
+draw_vdash(9,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{8}
+%    The numeral \textit{8}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 8";
+beginglyph(oct"010",3digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=1/3[leftloc,rightloc];
+x3=x8=2/3[leftloc,rightloc];
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+draw_vdash(3,alpha);
+draw_vdash(4,alpha);
+% bottom row
+draw_vdash(6,alpha);
+draw_vdash(7,alpha);
+draw_vdash(8,alpha);
+draw_vdash(9,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{7}
+%    The numeral \textit{7}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 7";
+beginglyph(oct"007",3digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=1/3[leftloc,rightloc];
+x3=x8=2/3[leftloc,rightloc];
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+draw_vdash(3,alpha);
+draw_vdash(4,alpha);
+% bottom row
+draw_vdash(6,alpha);
+draw_vdash(7,alpha);
+draw_vdash(8,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{6}
+%    The numeral \textit{6}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 6";
+beginglyph(oct"006",2digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=1/2[leftloc,rightloc];
+x3=x8=rightloc;
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+draw_vdash(3,alpha);
+% bottom row
+draw_vdash(6,alpha);
+draw_vdash(7,alpha);
+draw_vdash(8,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{5}
+%    The numeral \textit{5}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 5";
+beginglyph(oct"005",2digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=1/2[leftloc,rightloc];
+x3=x8=rightloc;
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+draw_vdash(3,alpha);
+% bottom row
+draw_vdash(6,alpha);
+draw_vdash(7,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{4}
+%    The numeral \textit{4}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 4";
+beginglyph(oct"004",digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=rightloc;
+x3=x8=rightloc;
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+% bottom row
+draw_vdash(6,alpha);
+draw_vdash(7,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{3}
+%    The numeral \textit{3}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 3";
+beginglyph(oct"003",2digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=1/2[leftloc,rightloc];
+x3=x8=rightloc;
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+draw_vdash(3,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{2}
+%    The numeral \textit{2}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 2";
+beginglyph(oct"002",digwd);
+numeric alpha; alpha:=digsz*h;
+x1=x6=leftloc; y1=y2=y3=y4=y5=(1-digsz/2)*h;
+x5=rightloc;  y6=y7=y8=y9=(digsz/2)*h;
+x2=x7=rightloc;
+x3=x8=rightloc;
+x4=x9=rightloc;
+% top row
+draw_vdash(1,alpha);
+draw_vdash(2,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{1}
+%    The numeral \textit{1}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 1";
+beginglyph(oct"001",digwd/2);
+numeric alpha; alpha:=digsz*h;
+x1=midloc; y1=(1-digsz/2)*h;
+draw_vdash(1,alpha);
+labels(1,2,3,4,5,6); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%    The tens are all composed of horizontal dashes.
+%
+% \begin{routine}{90}
+%    The numeral \textit{90}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 90";
+beginglyph(oct"022",(2tenwd+tensep));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+draw_hdash(3,alpha);
+draw_hdash(4,alpha);
+draw_hdash(5,alpha);
+% right column
+draw_hdash(6,alpha);
+draw_hdash(7,alpha);
+draw_hdash(8,alpha);
+draw_hdash(9,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{80}
+%    The numeral \textit{80}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 80";
+beginglyph(oct"021",(2tenwd+tensep));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+draw_hdash(3,alpha);
+draw_hdash(4,alpha);
+% right column
+draw_hdash(6,alpha);
+draw_hdash(7,alpha);
+draw_hdash(8,alpha);
+draw_hdash(9,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{70}
+%    The numeral \textit{70}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 70";
+beginglyph(oct"020",(2tenwd+tensep));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+draw_hdash(3,alpha);
+draw_hdash(4,alpha);
+% right column
+draw_hdash(6,alpha);
+draw_hdash(7,alpha);
+draw_hdash(8,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{60}
+%    The numeral \textit{60}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 60";
+beginglyph(oct"017",(2tenwd+tensep));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+draw_hdash(3,alpha);
+% right column
+draw_hdash(6,alpha);
+draw_hdash(7,alpha);
+draw_hdash(8,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{50}
+%    The numeral \textit{50}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 50";
+beginglyph(oct"016",(2tenwd+tensep));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+draw_hdash(3,alpha);
+% right column
+draw_hdash(6,alpha);
+draw_hdash(7,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{40}
+%    The numeral \textit{40}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 40";
+beginglyph(oct"015",(2tenwd+tensep));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+% right column
+draw_hdash(6,alpha);
+draw_hdash(7,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{30}
+%    The numeral \textit{30}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 30";
+beginglyph(oct"014",(tenwd));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+draw_hdash(3,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{20}
+%    The numeral \textit{20}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 20";
+beginglyph(oct"013",(tenwd));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+draw_hdash(2,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{10}
+%    The numeral \textit{10}.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 10";
+beginglyph(oct"012",(tenwd));
+numeric alpha; alpha:=tensz*h;
+x1=x2=x3=x4=x5=leftloc+alpha/2;
+x6=x7=x8=x9=rightloc-alpha/2;
+y1=y6=h;
+y2=y7=3/4h;
+y3=y8=1/2h;
+y4=y9=1/4h;
+y5=0;
+%  left column
+draw_hdash(1,alpha);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%    The hundreds are composed of circles.
+%
+% \begin{routine}{900}
+%    The numeral \textit{900}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 900";
+beginglyph(oct"033",(5hunwd+4hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=1/4[x1,x5];
+x3=x8=1/2[x1,x5];
+x4=x9=3/4[x1,x5];
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+draw fullcircle scaled diam shifted z3;
+draw fullcircle scaled diam shifted z4;
+draw fullcircle scaled diam shifted z5;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+draw fullcircle scaled diam shifted z7;
+draw fullcircle scaled diam shifted z8;
+draw fullcircle scaled diam shifted z9;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{800}
+%    The numeral \textit{800}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 800";
+beginglyph(oct"032",(4hunwd+3hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x4=x9=rightloc-rad;
+x2=x7=1/3[x1,x5];
+x3=x8=2/3[x1,x5];
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+draw fullcircle scaled diam shifted z3;
+draw fullcircle scaled diam shifted z4;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+draw fullcircle scaled diam shifted z7;
+draw fullcircle scaled diam shifted z8;
+draw fullcircle scaled diam shifted z9;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{700}
+%    The numeral \textit{700}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 700";
+beginglyph(oct"031",(4hunwd+3hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x4=x9=rightloc-rad;
+x2=x7=1/3[x1,x5];
+x3=x8=2/3[x1,x5];
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+draw fullcircle scaled diam shifted z3;
+draw fullcircle scaled diam shifted z4;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+draw fullcircle scaled diam shifted z7;
+draw fullcircle scaled diam shifted z8;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{600}
+%    The numeral \textit{600}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 600";
+beginglyph(oct"030",(3hunwd+2hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=1/2[x1,x5];
+x3=x8=rightloc-rad;
+x4=x9=rightloc-rad;
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+draw fullcircle scaled diam shifted z3;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+draw fullcircle scaled diam shifted z7;
+draw fullcircle scaled diam shifted z8;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{500}
+%    The numeral \textit{500}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 500";
+beginglyph(oct"027",(3hunwd+2hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=1/2[x1,x5];
+x3=x8=rightloc-rad;
+x4=x9=rightloc-rad;
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+draw fullcircle scaled diam shifted z3;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+draw fullcircle scaled diam shifted z7;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{400}
+%    The numeral \textit{400}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 400";
+beginglyph(oct"026",(2hunwd+hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=rightloc-rad;
+x3=x8=rightloc-rad;
+x4=x9=rightloc-rad;
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+draw fullcircle scaled diam shifted z7;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{300}
+%    The numeral \textit{400}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 300";
+beginglyph(oct"025",(2hunwd+hunsep));
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=rightloc-rad;
+x3=x8=rightloc-rad;
+x4=x9=rightloc-rad;
+% top row
+draw fullcircle scaled diam shifted z1;
+draw fullcircle scaled diam shifted z2;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{200}
+%    The numeral \textit{200}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 200";
+beginglyph(oct"024",hunwd);
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=rightloc-rad;
+x3=x8=rightloc-rad;
+x4=x9=rightloc-rad;
+% top row
+draw fullcircle scaled diam shifted z1;
+% bottom row
+draw fullcircle scaled diam shifted z6;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{100}
+%    The numeral \textit{100}. 
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 100";
+beginglyph(oct"023",hunwd);
+numeric diam, rad; diam:=hunsz*h; rad:=diam/2;
+x1=x6=leftloc+rad; y1=y2=y3=y4=y5=h-rad;
+x5=rightloc-rad;  y6=y7=y8=y9=rad;
+x2=x7=rightloc-rad;
+x3=x8=rightloc-rad;
+x4=x9=rightloc-rad;
+% top row
+draw fullcircle scaled diam shifted z1;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{1000}
+%    The numeral \textit{1000}. It is a circle with spikes.
+%    \begin{macrocode}
+cmchar "Linear B numeral sign 1000";
+beginglyph(oct"034",1.0);
+numeric diam, rad; diam:=h/2; rad:=diam/2;
+x0=midloc; y0=h/2;   % circle center
+x5=leftloc; x1=x0-rad; x3=x0+rad; x7=rightloc; y5=y1=y3=y7=y0;
+x8=x4=x2=x6=x0; y8=0; y4=y0-rad; y2=y0+rad; y6=h;
+draw fullcircle scaled diam shifted z0;
+draw z5--z1; draw z6--z2; draw z7--z3; draw z8--z4;
+labels(0,1,2,3,4,5,6,7,8,9); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+% \subsection{Weights and measures}
+% 
+%  Chadwick shows 9 glyphs for weight and volume measures: 5 for weights
+% and 4 for volumes.
+% \changes{v1.2}{2005/06/22}{Added 9 weights and measures glyphs}
+%
+% \begin{routine}{wta}
+% The lowest weight unit. A shepherd's crook with a cross-bar.
+%    \begin{macrocode}
+cmchar "Linear B smallest weight (wta)";
+beginglyph(oct"200",0.4);
+x5=leftloc; x6=rightloc;
+x1=x2=x4=1/2[x5,x6]; x3=x5;
+y1=0; y4=h; y2=15/20[y1,y4]; y3=1/2[y2,y4]; y5=y6=15/20[y1,y2];
+draw z1--z2{left}..z3{up}..{right}z4;
+draw z5--z6;
+labels(1,2,3,4,5,6,7); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{wtb}
+% The second lowest weight unit. A reversed S with a slash and dots.
+%    \begin{macrocode}
+cmchar "Linear B second smallest weight (wtb)";
+beginglyph(oct"201",0.4);
+numeric alpha; alpha:=0.5*(rightloc-leftloc);
+x1=x5=leftloc; x6=x4=x2=midloc; x7=x3=rightloc;
+y6=0; y5=y7=y6+alpha; y4=h/2; y1=y3=y2-alpha; y2=h;
+draw z1..z2..z3..z4..z5..z6..z7;
+z11=1/2[z4,z1]; z12=1/2[z4,z7];
+z13=1/2[z1,z3]; z14=1/2[z5,z7];
+draw z11--z12; draw z13; draw z14;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{wtc}
+% The third lowest weight unit. An octothorpe.
+%    \begin{macrocode}
+cmchar "Linear B third smallest weight(wtd)";
+beginglyph(oct"202",1.0);
+x1=x2=leftloc; x3=x4=rightloc;
+y5=y7=0; y6=y8=h;
+y1=y3=1/4[y5,y6]; y2=y4=3/4[y5,y6];
+x5=x6=0.25[x1,x3]; x7=x8=3/4[x1,x3];
+draw z1--z3; draw z2--z4;
+draw z5--z6; draw z7--z8;
+labels(1,2,3,4,5,6,7,8);
+endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{wtd}
+% The fourth lowest weight unit. Two reversed S's.
+%    \begin{macrocode}
+cmchar "Linear B fourth smallest weight (wtd)";
+beginglyph(oct"203",0.2);
+numeric alpha; alpha:=0.5*(rightloc-leftloc);
+x1=x5=leftloc; x6=x4=x2=midloc; x7=x3=rightloc;
+y6=11/20h; y2=h; y4=1/2[y6,y2];  y5=y7=1/2[y6,y4]; y1=y3=1/2[y4,y2];
+draw z1..z2..z3..z4..z5..z6..z7;
+
+x11=x15=x1; x16=x14=x12=x6; x17=x13=x7;
+y16=0; y12=9/20h; y14=1/2[y16,y12];  y15=y17=1/2[y16,y14]; y11=y13=1/2[y14,y12];
+draw z11..z12..z13..z14..z15..z16..z17;
+labels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{talent}
+% The symbol for weights; Chadwick suggests it might be a talent, the most 
+% common weight in antiquity.
+% A pair of scales.
+%    \begin{macrocode}
+cmchar "Linear B highest weight symbol (talent)";
+beginglyph(oct"204",1.1);
+numeric alpha; alpha:=(rightloc-leftloc);
+numeric beta; beta:=0.2alpha;  % dash length
+numeric gap; gap:=3/2tiny;
+x0=x0'=midloc; y0=0; y0'=h;   % axis of symmetry
+x1=leftloc; x3=x0-0.5gap; y1=y3=0;    % left base points
+x2=0.5[x1,x3]; y2=0.9h;                  % top point
+x4=x1+gap; x5=x3-gap; y4=y5=0;        % base line
+%%x9=x10=0.5[x5,x3]; x6=x7=x8=0.5[(x2+0.5beta),x9];  % points for the 3
+x9=x10=x3; x6=x7=x8=0.5[(x2+0.5beta),x9];  % points for the 3
+y6=h; y7=y2; y7-y8=y6-y7;
+y10=0.5[y6,y7]; y9=0.5[y7,y8];
+z11=z1 reflectedabout (z0,z0');   % the symmetric right hand side
+z12=z2 reflectedabout (z0,z0');
+z13=z3 reflectedabout (z0,z0');
+z14=z4 reflectedabout (z0,z0');
+z15=z5 reflectedabout (z0,z0');
+z16=z6 reflectedabout (z0,z0');
+z17=z7 reflectedabout (z0,z0');
+z18=z8 reflectedabout (z0,z0');
+z19=z9 reflectedabout (z0,z0');
+z20=z10 reflectedabout (z0,z0');
+%%draw z1--z2--z3; draw z4--z5;         % triangle
+draw z4--z2--z5--cycle;
+draw_hdash(2,beta);                   % dash at the top
+%%draw z6..z10..z7;                     % 3
+%%draw z7..z9..z8;   
+%%draw z11--z12--z13; draw z14--z15;    % and for the RHS
+draw z14--z12--z15--cycle;
+draw_hdash(12,beta);                 
+%%draw z16..z20..z17;                  
+%%draw z17..z19..z18;   
+draw z2--z12;
+x21=x22=1/2[x2,x12]; y21=0; y22=h;
+draw z21--z22;                          % upright
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{vola}
+% The lowest volume unit. A cup.
+%    \begin{macrocode}
+cmchar "Linear B lowest volume unit (vola)";
+beginglyph(oct"210",1.0);
+x11=leftloc; x2=rightloc; x1=3/20[x11,x2]; x3=1/2[x1,x2];
+y1=y2=1/3h; y3=0; y11=y1+1/2(x1-x11);
+draw z1--z2..z3..cycle;
+draw z1..z11..cycle;
+labels(1,2,3,11); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{volb}
+% The second lowest volume unit. A triangular P.
+%    \begin{macrocode}
+cmchar "Linear B second lowest volume unit (volb)";
+beginglyph(oct"211",0.6);
+x1=x2=midloc; y1=0; y2=h;
+x3=leftloc; x4=rightloc; y3=y4=0.6h;
+z5=0.5[z1,z2]; z6=0.8[z1,z2];
+x7=rightloc; y7=0.5[y5,y6];
+draw z1--z2; %% draw z3--z4;
+draw z5--z4; draw z6--z7;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{volcd}
+% The highest dry volume unit. A T.
+%    \begin{macrocode}
+cmchar "Linear B highest dry volume unit (volcd)";
+beginglyph(oct"212",0.6);
+x1=x3=leftloc; x4=midloc;  x6=x8=rightloc;    
+y1=y6=3/4h; y3=y8=h; y4=0;
+z2=0.5[z1,z3]; z7=0.5[z6,z8]; z5=0.5[z2,z7];
+%%draw z1--z3;  % left vertical
+draw z4--z5;  % centre vertical
+%%draw z6--z8;  % right vertical
+draw z2--z7;  % bar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{volcf}
+% The highest fluid volume unit. A turn left sign.
+%    \begin{macrocode}
+cmchar "Linear B highest fluid volume unit (volcf)";
+beginglyph(oct"213",0.5);
+x1=x2=rightloc; x4=leftloc; x3=2/3[x4,x2]; x5=x6=1/2[x4,x3];
+y1=0; y4=y3=18/20h; y6=h; y2=y3 - (x2-x3); y4-y5=y6-y4;
+draw z1--z2{up}..{left}z3--z4;      % stem
+draw z5--z4--z6;          % arrowhead
+labels(1,2,3,4,5,6,7); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \subsection{Commodities}
+%
+%  A selection of pictograms for commodities.
+% \changes{v1.2}{2005/06/22}{Added 8 commodity glyphs}
+%
+%
+% \begin{routine}{cloth}
+% Cloth. Rectangle with four threads hanging down.
+%    \begin{macrocode}
+cmchar "Linear B cloth pictogram";
+beginglyph(oct"220",0.8);
+x1=x2=x3=leftloc; x6=x7=x8=rightloc;
+y1=y6=0; y2=y7=1/4h; y3=y8=3/4h;
+%x4=x5=midloc; y4=y1; y5=y2;
+%y6=y1; y7=y2; y8=y3;
+z11=1/3[z1,z6]; z13=2/3[z1,z6];
+z12=1/3[z2,z7]; z14=2/3[z2,z7];
+draw z2--z3--z8--z7--cycle;  % box
+%draw z1--z2; draw z4--z5; draw z6--z7;  % legs
+draw z1--z2; draw z11--z12; draw z13--z14; draw z6--z7;  % legs
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{wool}
+% Wool. A bit like an M with squiggles.
+%    \begin{macrocode}
+cmchar "Linear B wool pictogram";
+beginglyph(oct"221",0.8);
+numeric alpha, beta;
+alpha:=0.2; beta:=tiny;
+x1=leftloc; x2=midloc; x3=rightloc; y1=y3=h;
+% y2=0;  % V
+y2 = 2/10h;
+path p[];
+p1=z1{(1,-1)}...{down}z2;
+p2=z3{(-1,-1)}...{down}z2;
+z5 = point alpha of p1; 
+z8 = point alpha of p2;
+z4=z5 shifted (beta*(-1,-1)); z6=z5 shifted (beta*(1,1));
+z7=z8 shifted (beta*(-1,1)); z9=z8 shifted (beta*(1,-1));
+draw p1; draw p2;           % V
+%%draw z4--z6; draw z7--z9;   % dashes
+x15=x1; x18=x3; y15=y18=y2;
+draw z5..{down}z15; draw z8..{down}z18;  % legs
+
+x21=x5; x23=x8; x22=x2; y21=y23=y1; y22=y5;
+draw z21--z22--z23;       % upper V
+
+x31=x33=x5; y31=0; y33=y2;
+draw z31{left}..{right}z33;
+
+x41=x43=x8; y41=y31; y43=y33;
+draw z41{right}..{left}z43;
+labels(1,2,3,4,5,6,7,8,9,15,18,21,22,23,31,33,41,43); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{wheat}
+% Wheat. Upward pointing full arrow.
+%    \begin{macrocode}
+cmchar "Linear B wheat pictogram";
+beginglyph(oct"222",0.6);
+x1=x2=midloc; y1=0; y2=h;      % stem
+x5=leftloc; x6=rightloc; y5=y6=13/20h;
+%%x3=leftloc; x4=rightloc; y3=y4=1/4h;  % bar (original)
+%%x3=0.2[x5,x6]; x4=0.2[x6,x5]; y3=y4=1/4h;  % bar (jurgen)
+draw z1--z2;      % stem
+%%draw z3--z4;      % bar
+draw z5--z2--z6--cycle;  % arrowhead 
+x11=leftloc; x12=rightloc; y11=y12=y2;
+draw z11--z12;
+labels(1,2,3,4,5,6); endchar;
+ 
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{barley}
+% Barley. Sort of turn left sign.
+%    \begin{macrocode}
+cmchar "Linear B barley pictogram";
+beginglyph(oct"223",0.4);
+x7=leftloc; x4=rightloc; x6= 3/8[x7,x4]; x1=1/3[x6,x4];
+y7=h; y1=0; y6=9/10h; y4=8/10h;
+x2=x1; y2=1/3h; x5=7/8[x6,x4]; y5=y6;
+draw z1--z2{up}..{up}z4..{left}z5..{left}z6; % stem
+x14=leftloc; y14=h;
+x11=1/3[x6,x4]; y6-y11 = 3/2(y14-y6);
+x13=x14; y13=y6;
+draw z14{down}..{right}z11; % C at top left of stem
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{wine}
+% Wine.
+%    \begin{macrocode}
+cmchar "Linear B wine pictogram";
+beginglyph(oct"224",0.8);
+x1=x3=leftloc; x7=x4=rightloc; y1=y7=0; y3=y4=h;
+z2=3/4[z1,z3]; z8=3/4[z7,z4]; z5=1/2[z1,z7]; z6=1/2[z2,z8];
+draw z1--z3--z4;
+draw z2--z8--z7;
+draw z5--z6;
+%%%%% the dashes
+x21=x22=1/4[x1,x5]; x23=x24=3/4[x1,x5];
+y22=3/4[y1,y2]; y23=1/4[y1,y2];
+y21=1/4[y23,y22]; y24=3/4[y23,y22];
+draw z21--z23; draw z22--z24;
+x31=x32=1/4[x5,x7]; x33=x34=3/4[x5,x7];
+y31=y21; y32=y22; y33=y23; y34=y24;
+draw z31--z33; draw z32--z34;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22,23,24,31,32,33,34); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{olive-oil}
+% Olive oil. Question mark overlain with a reversed S.
+%    \begin{macrocode}
+cmchar "Linear B olive oil pictogram";
+beginglyph(oct"225",0.4);
+x6=x7=leftloc; x4=rightloc; x1=1/3[x6,x4];
+y7=h; y1=0; y6=9/10h; y4=8/10h;
+x2=x1; y2=1/3h; x5=7/8[x6,x4]; y5=y6;
+draw z1--z2{up}..{up}z4..{left}z5--z6--z7;
+
+x25=1/4[x6,x4]; y6-y25 = 3/2(y7-y6);
+x21=1/2[x2,x4]; y21=3/4[y1,y2];
+z23=1/2[z25,z21];
+y24=1/2[y23,y25]; x24=x4 + (x4-x5);
+x22=1/4[x6,x25]; y22=1/2[y21,y23];
+draw z25{right}..z24..{left}z23..z22..{right}z21;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22,23,24,25); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{bronze}
+% Bronze. Two boxes hung on a wall.
+%    \begin{macrocode}
+cmchar "Linear B bronze pictogram";
+beginglyph(oct"226",0.6);
+x1=x2=leftloc; y1=0; y2=h;
+z3=1/4[z1,z2]; z4=1/2[z1,z2]; z5=3/4[z1,z2];
+x6=x7=x8=rightloc; y6=y3; y7=y4; y8=y5;
+draw z1--z2;   % wall
+draw z3--z6--z8--z5; % box outside
+draw z4--z7;         % box interior
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+%
+% \begin{routine}{gold}
+% Gold. Small folding table with a box on top.
+%    \begin{macrocode}
+cmchar "Linear B gold pictogram";
+beginglyph(oct"227",0.6);
+numeric alpha; 
+x1=x4=leftloc; x3=x2=rightloc; y1=y3=0; y2=y4=9/10h;  % leg points
+path p[];
+p1=z1{up}..z2; p2=z3{up}..z4;
+z0 = p1 intersectionpoint p2;
+%%alpha:=0.5*(x0-x4);
+alpha:=0.75*(x0-x4);
+x5=x0-alpha; x7=x0+alpha; y5=y7=y0;
+x6=x8=x0; y8=y0-alpha; y6=y0+alpha;
+draw p1; draw p2;            % the legs
+%%draw z5--z6--z7--z8--cycle;  % the square
+p5=z5--z6; p7=z7--z6;
+z15 = p5 intersectionpoint p2; z17 = p7 intersectionpoint p1;
+draw z15--z5--z8--z7--z17;
+draw z2--z4;  % table top
+z21=1/4[z4,z2]; z24=3/4[z4,z2];
+x22=x21; x23=x24; y22 = y23 = y21 + 1/2(x24-x21); 
+draw z21--z22--z23--z24--cycle; % box
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \subsection{Vessels}
+%
+% Pictograms of various kinds of vessels for liquids.
+% \changes{v1.2}{2005/06/22}{Added 8 jar/cup/cauldron glyphs}
+%
+%
+% \begin{routine}{cup}
+%    \begin{macrocode}
+cmchar "Linear B cup";
+beginglyph(oct"230",1.0);
+x1=2/16[leftloc,rightloc]; x2=3/16[rightloc,leftloc];
+y1=y2=13/20h;
+y4=y6=0; y5=y7=8/20y1;
+x4=6/20[x1,x2]; x6=6/20[x2,x1]; x5=2/8[x4,x6]; x7=2/8[x6,x4];
+draw z5--z4--z6--z7;                         % stem
+draw z1{down}..z5..z7..{up}z2; draw z1--z2;  % bowl
+x21=x1; y21=8/20[y1,h]; draw z1{left}..{right}z21; % left handle
+x22=rightloc; y22=y2; draw z2..{down}z22;          % right handle
+labels(1,2,3,4,5,6,7,8,9,10,11,12,21,22); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{goblet}
+%    \begin{macrocode}
+cmchar "Linear B goblet";
+beginglyph(oct"231",0.6);
+x2=leftloc; x5=rightloc; x1=1/3[x2,x5]; x4=2/3[x2,x5]; x3=2/8[x2,x5]; x6=6/8[x2,x5];
+y1=y4=0; y3=y6=17/20h; y2=y5=3/4[y1,y3];
+draw z1{up}..z2; draw z2..{up}z3; draw z3--z6; draw z6{down}..z5; draw z5..{down}z4; draw z4--z1;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{amphora}
+%    \begin{macrocode}
+cmchar "Linear B amphora";
+beginglyph(oct"232",0.5);
+x2=leftloc; x12=rightloc; x1=1/4[x2,x12]; x11=3/4[x2,x12]; x4=1/3[x2,x12]; x14=2/3[x2,x12];
+x3=x4; x13=x14;
+y1=y11=0; y4=y14=h;
+y2=y12=5/8[y1,y4];
+y3=y13=1/2[y2,y4];
+draw z1..{up}z2..{up}z3..{up}z4; 
+draw z11..{up}z12..{up}z13..{up}z14; 
+draw z4--z14; draw z1--z11;
+x5=x2; x15=x12;
+y5=y15=1/2[y3,y4];
+draw z3{left}..z5..{right}z4; draw z13{right}..z15..{left}z14;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{wine jar}
+%    \begin{macrocode}
+cmchar "Linear B wine jar";
+beginglyph(oct"233",0.6);
+x2=leftloc; x5=rightloc; x1=1/3[x2,x5]; x4=2/3[x2,x5]; x3=2/8[x2,x5]; x6=6/8[x2,x5];
+y1=y4=0; y3=y6=17/20h; y2=y5=3/4[y1,y3];
+draw z1{up}..z2; draw z2..{up}z3; draw z3--z6; draw z6{down}..z5; draw z5..{down}z4; draw z4--z1;
+x12=x2; x15=x5; y12=y15=2/3[y2,y3];
+draw z2..{left}z12..z2; draw z5..{left}z15..z5;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{wine jar (3 handles)}
+%    \begin{macrocode}
+cmchar "Linear B 3 handled wine jar";
+beginglyph(oct"234",0.8);
+save P; P:=0.75;
+x2=leftloc; x5=rightloc; x1=1/3[x2,x5]; x4=2/3[x2,x5]; x3=1/8[x2,x5]; x6=7/8[x2,x5];
+y1=y4=0; y3=y6=17/20h; y2=y5=3/4[y1,y3];
+draw z1{up}..z2; draw z2..{up}z3; draw z3--z6; draw z6{down}..z5; draw z5..{down}z4; draw z4--z1;
+z11=1/2[z3,z6]; z12=2/3[z3,z6];
+x13=x3; x16=x6; y13=y16=h;
+z21=1/2[z13,z16]; z22=2/3[z13,z16];
+draw_vloop(3, 13, P);
+draw_vloop(11, 21, P);
+draw_vloop(16, 6, P);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{wine jar (4 handles)}
+%    \begin{macrocode}
+cmchar "Linear B 4 handled wine jar";
+beginglyph(oct"235",0.8);
+save Q;
+x2=leftloc; x5=rightloc; x1=1/3[x2,x5]; x4=2/3[x2,x5]; x3=1/8[x2,x5]; x6=7/8[x2,x5];
+y1=y4=0; y3=y6=17/20h; y2=y5=3/4[y1,y3];
+draw z1{up}..z2; draw z2..{up}z3; draw z3--z6; 
+draw z6{down}..z5; draw z5..{down}z4; draw z4--z1;
+z11=1/3[z3,z6]; z12=2/3[z3,z6];
+x13=1/2[x2,x3]; x16=1/2[x6,x5]; y13=y16=h;
+z21=1/3[z13,z16]; z22=2/3[z13,z16];
+Q:=0.75;
+draw_vloop(3,13,Q); draw_vloop(11,21,Q); 
+draw_vloop(12,22,Q); draw_vloop(6,16,Q);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,21,22); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{cauldron type 1}
+%    \begin{macrocode}
+cmchar "Linear B cauldron type 1";
+beginglyph(oct"236",1.0);
+save Q; Q:=0.75;
+path p[];
+x1=1/16[leftloc,rightloc]; x2=15/16[leftloc,rightloc]; y1=y2=18/20h;
+y6=0; y5=y7=10/20y1;
+x6=10/20[x1,x2]; x5=9/20[x1,x2]; x7-x6=x6-x5;
+p1 := z1{down}..z5..z7..{up}z2;
+draw p1; draw z1--z2;   % bowl
+draw z5--z6--z7;        % middle leg
+x11=leftloc; y11=y12=h; x12=rightloc;
+draw_vloop(1,11,Q); draw_vloop(2,12,Q);  % handles
+z0=1/2[z1,z2];
+x16=x1; y16=0; p2=z16--z0; z15=p2 intersectionpoint p1;
+x17-x15=x5-x7; y17=y15;
+draw z15--z16--z17;     % left leg
+x26=x2; y26=0; p3=z26--z0; z25=p3 intersectionpoint p1;
+x25-x27=x5-x7; y27=y25;
+draw z25--z26--z27;     % right leg
+labels(1,2,3,4,5,6,7,11,12,15,16,17,21,22,25,26,27); endchar;
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{cauldron type 2}
+%    \begin{macrocode}
+cmchar "Linear B cauldron type 2";
+beginglyph(oct"237",1.0);
+save Q; Q:=0.75;
+path p[];
+x1=3/32[leftloc,rightloc]; x2=3/32[rightloc,leftloc]; y1=y2=18/20h;
+y6=0; y5=y7=6/20y1;
+x6=10/20[x1,x2]; x5=9/20[x1,x2]; x7-x6=x6-x5;
+p1 := z1{down}..z5..z7..{up}z2;
+%%draw p1; draw z1--z2;   % bowl
+draw z5--z6--z7;        % middle leg
+x11=leftloc; y11=y12=h; x12=rightloc;
+draw_vloop(1,11,Q); draw_vloop(2,12,Q);  % handles
+x21=x11; y11-y1=y1-y21; 
+x22=x12; y12-y2=y2-y22; 
+z31=z1; z32=z2;
+draw_vloop(31,21,Q); draw_vloop(32,22,Q);  % second handles
+
+z0=1/2[z1,z2];
+x16=x1; y16=0; p2=z16--z0; z15=p2 intersectionpoint p1;
+x17-x15=x5-x7; y17=y15;
+draw z15--z16--z17;     % left leg
+x26=x2; y26=0; p3=z26--z0; z25=p3 intersectionpoint p1;
+x25-x27=x5-x7; y27=y25;
+draw z25--z26--z27;     % right leg
+z157=3/4[z17,z15]; z257=3/4[z27,z25];
+draw z1{down}..z157..z5..z7..z257..{up}z2; draw z2--z1;  % bowl
+labels(1,2,3,4,5,6,7,11,12,15,16,17,21,22,25,26,27,157,257); endchar;
+%    \end{macrocode}
+% \end{routine}
+% 
+% \subsection{Men and horses}
+%
+% \changes{v1.2}{2005/06/22}{Added 4 man, woman and horse glyphs}
+%
+%
+% \begin{routine}{man}
+%    \begin{macrocode}
+cmchar "Linear B man";
+beginglyph(oct"240",0.5);
+x1=1/8[leftloc,rightloc]; x3=1/8[rightloc,leftloc]; y1=y3=16/20h;  % shoulders
+z2=1/2[z1,z3]; x12=x2; y12=h;      % head
+x4=1/10[leftloc,rightloc]; y4=0; z5= z4 reflectedabout (z2,z12); % feet
+x6=leftloc; y6=1/3[y2,y4]; z7= z6 reflectedabout (z2,z12); % hands
+draw z6--z1--z3--z7; % arms and shoulders
+draw z1--z5; draw z3--z4;  % body
+draw z2{left}..{right}z12..cycle;  % head
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{woman}
+%    \begin{macrocode}
+cmchar "Linear B woman";
+beginglyph(oct"241",0.5);
+x1=1/8[leftloc,rightloc]; x3=1/8[rightloc,leftloc]; y1=y3=16/20h;  % shoulders
+z2=1/2[z1,z3]; x12=x2; y12=h;      % head
+x4=1/10[leftloc,rightloc]; y4=0; z5= z4 reflectedabout (z2,z12); % feet
+x6=leftloc; y6=1/3[y2,y4]; z7= z6 reflectedabout (z2,z12); % hands
+draw z6--z2--z7; % arms and shoulders
+draw z4--z2--z5--cycle;;  % body
+y13=1/2[y2,y12]; x13 - x2 = y13 - y2;
+draw z2{left}..z12..z13;  % head
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{horse}
+%    \begin{macrocode}
+cmchar "Linear B horse";
+beginglyph(oct"244", 1.0);
+numeric eye; eye = 1/30h;
+pair mane; mane = (-8/40h, 6/40h);
+x1=leftloc; y1=0; x17=1/2[leftloc,rightloc]; y17=0;  % base of neck
+x10=rightloc; y10=1/4h;            % tip of nose
+x4=1/4[x1,x10]; y4=h;              % top left ear
+x15=1/3[x1,x10]; y15=9/20[y10,y4];  % neck/chin
+x2=1/4[x1,x4]; y2=1/2[y1,y4]; x3=2/3[x1,x4]; y3 = 17/20h; % back of neck
+x5-x4=x4-x3; x6-x5=1/2(x5-x4); x7-x6=x4-x3; x8-x7=x7-x6; % ears
+y5=y6=y8=y3; y7=y4;
+x9=2/3[x8,x10]; y9=2/3[y10,y8];
+x13=1/3[x10,x15]; y13=y10;
+
+x16=2/3[x3,x15]; y16=1/2[y17,y15]; % mid neck
+
+x11=8/20[x10,x13]; y11=y10-1/20h;  % nose/mouth
+x12=12/20[x10,x13]; y12=y11;
+y23=y10 + 1/20h; x23=3/4[x11,x12]; % mouth
+draw z11--z23--z12;
+
+draw z1..z2..z3--z4--z5--z6--z7--z8..z9..{down}z10..z11..z12..z13..z15..z3;
+draw z15..z16..z17;  % mouth
+z30=1/2[z15,z8];
+z31 = z30 shifted (-eye,eye); z32=z30 shifted (eye,-eye);
+draw z31--z32;       % eye
+z42=4/20[z2,z3]; z44=1/2[z2,z3]; z46=16/20[z2,z3];   % mane
+z41=z42 shifted mane; z43=z44 shifted mane; z45 = z46 shifted mane;
+draw z41--z42; draw z43--z44; draw z45--z46;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,30,31,32,41,42,43,44,45,46); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{foal}
+%    \begin{macrocode}
+cmchar "Linear B foal";
+beginglyph(oct"245", 1.0);
+numeric eye; eye = 1/30h;
+pair mane; mane = (-4/40h, 3/40h);
+x1=leftloc; y1=0; x17=1/2[leftloc,rightloc]; y17=0;  % base of neck
+x10=rightloc; y10=1/4h;            % tip of nose
+x4=1/4[x1,x10]; y4=h;              % top left ear
+x15=1/3[x1,x10]; y15=9/20[y10,y4];  % neck/chin
+x2=1/4[x1,x4]; y2=1/2[y1,y4]; x3=2/3[x1,x4]; y3 = 17/20h; % back of neck
+x5-x4=x4-x3; x6-x5=1/2(x5-x4); x7-x6=x4-x3; x8-x7=x7-x6; % ears
+y5=y6=y8=y3; y7=y4;
+x9=2/3[x8,x10]; y9=2/3[y10,y8];
+x13=1/3[x10,x15]; y13=y10;
+
+x16=2/3[x3,x15]; y16=1/2[y17,y15]; % mid neck
+
+x11=8/20[x10,x13]; y11=y10-1/20h;  % nose/mouth
+x12=12/20[x10,x13]; y12=y11;
+y23=y10 + 1/20h; x23=3/4[x11,x12]; % mouth
+draw z11--z23--z12;
+
+draw z1..z2..z3--z4--z5--z6--z7--z8..z9..{down}z10..z11..z12..z13..z15..z3;
+draw z15..z16..z17;  % mouth
+z30=1/2[z15,z8];
+z31 = z30 shifted (-eye,eye); z32=z30 shifted (eye,-eye);
+draw z31--z32;       % eye
+%z42=1/4[z2,z3]; z44=1/2[z2,z3]; z46=3/4[z2,z3];  % mane
+% z41=z42 shifted mane; z43=z44 shifted mane; z45 = z46 shifted mane;
+%draw z41--z42; draw z43--z44; draw z45--z46;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,30,31,32,41,42,43,44,45,46); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \subsection{Livestock}
+%
+% \changes{v1.2}{2005/06/22}{Added 12 livestock glyphs}
+%
+% \begin{routine}{pig}
+% This is also the \texttt{au} glyph but I have modified that slightly to get a 
+% longer neck..
+%    \begin{macrocode}
+cmchar "Linear B pig";
+beginglyph(oct"250",0.8);
+numeric alpha; alpha:=0.1h;
+x1=x2=x3=leftloc+alpha; y1=0; y2=8/20h; y3=h-2alpha;  % neck
+x5=leftloc; y5=h-small;  % top of left ear
+x4=0.5[x5,x3]; y4=0.5[y5,y3]-tiny;
+x6=x5+small; y6=h;       % top of right ear
+x8-x6=x3-x5; y6-y8=y5-y3;
+x7=1/2[x8,x6]; y7=1/2[y8,y6] + tiny;
+x9=x10=rightloc; y10=1/3[y2,y8]; y9=2/3[y2,y8];  % nose
+x12=x8; y12=y3; x11=0.3[x8,x9]; y11=1/2[y10,y9]; % eye
+draw z1--z3;           % neck
+draw z3..z4..{up}z5;   % left ear
+draw z6{right}..z7..z8;% right ear
+draw z8--z9--z10--z2;  % head
+draw z11--z12;         % eye
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{boar}
+% A male pig.
+%    \begin{macrocode}
+cmchar "Linear B boar";
+beginglyph(oct"251",0.8);
+numeric alpha; alpha:=0.1h;
+x1=x2=x3=leftloc+alpha; y1=0;
+y2=10/20h; y3=h-2alpha;  % neck
+x5=leftloc; y5=h-small;  % top of left ear
+x4=0.5[x5,x3]; y4=0.5[y5,y3]-tiny;
+x6=x5+small; y6=h;       % top of right ear
+x8-x6=x3-x5; y6-y8=y5-y3;
+x7=1/2[x8,x6]; y7=1/2[y8,y6] + tiny;
+x9=x10=rightloc; y10=1/3[y2,y8]; y9=2/3[y2,y8];  % nose
+x12=x8; y12=y3; x11=0.3[x8,x9]; y11=1/2[y10,y9]; % eye
+draw z1--z3;           % neck
+draw z3..z4..{up}z5; draw z6{right}..z7..z8; % ears
+draw z8--z9--z10--z2;  % head
+draw z11--z12;         % eye
+x21=x23=leftloc; y21=1/3[y1,y2]; y23=2/3[y1,y2];  % bars
+z22=z21 reflectedabout (z1,z2);
+z24=z23 reflectedabout (z1,z2);
+draw z21--z22; draw z23--z24;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{sow}
+% A female pig.
+%    \begin{macrocode}
+cmchar "Linear B sow";
+beginglyph(oct"252",0.8);
+numeric alpha; alpha:=0.1h;
+x1=x2=x3=leftloc+alpha; y1=0;
+y2=10/20h; y3=h-2alpha;  % neck
+x5=leftloc; y5=h-small;  % left ear
+x4=0.5[x5,x3]; y4=0.5[y5,y3]-tiny;
+x6=x5+small; y6=h;       % right ear
+x8-x6=x3-x5; y6-y8=y5-y3;
+x7=1/2[x8,x6]; y7=1/2[y8,y6] + tiny;
+x9=x10=rightloc; y10=1/3[y2,y8]; y9=2/3[y2,y8];  % nose
+x12=x8; y12=y3; x11=0.3[x8,x9]; y11=1/2[y10,y9]; % eye
+draw z2--z3;           % neck
+draw z3..z4..{up}z5; draw z6{right}..z7..z8; % ears
+draw z8--z9--z10--z2;  % head
+draw z11--z12;         % eye
+x21=leftloc; y21=0;    % female neck
+z22 = z21 reflectedabout (z1,z2);
+draw z21--z2--z22;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{ox}
+% This is the same as the \texttt{mu} glyph.
+%    \begin{macrocode}
+cmchar "Linear B ox (mu)";
+beginglyph(oct"253",0.8);
+numeric rad; rad:=small;
+x1=x2=leftloc+2rad; y1=0; y2=h-rad; % stem
+x3=x5=leftloc+rad; y3=h; y5=y3-2rad;
+x4=leftloc; y4=y2;
+x6=x8=rightloc; y6=y5; y8=y3;   % bar and curve
+x7=x6-rad; y7=0.5[y6,y8];
+x9=x7-1/2rad; y9=y6;
+x10=x9; y10=y9-2rad;
+x11=x1; y11=y5;                % 
+draw z1--z2{up}..z3{left}..z4{down}..{right}z5--z6;  % stem and bar
+draw z6{left}..z7{up}..{right}z8;  % curve
+draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{bull}
+% A male ox.
+%    \begin{macrocode}
+cmchar "Linear B bull";
+beginglyph(oct"254",0.8);
+numeric rad; rad:=small;
+x1=x2=leftloc+2rad; y1=0; y2=h-rad; % stem
+x3=x5=leftloc+rad; y3=h; y5=y3-2rad;
+x4=leftloc; y4=y2;
+x6=x8=rightloc; y6=y5; y8=y3;   % bar and curve
+x7=x6-rad; y7=0.5[y6,y8];
+x9=x7-1/2rad; y9=y6;
+x10=x9; y10=y9-2rad;
+x11=x1; y11=y5;                % 
+draw z1--z2{up}..z3{left}..z4{down}..{right}z5--z6;  % stem and bar
+draw z6{left}..z7{up}..{right}z8;  % curve
+draw z9--z10;
+x21=x23=leftloc; y21=1/3[y1,y11]; y23=2/3[y1,y11];
+z22=z21 reflectedabout (z1,z11); z24=z23 reflectedabout (z1,z11);
+draw z21--z22; draw z23--z24;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \begin{routine}{cow}
+% A female ox.
+%    \begin{macrocode}
+cmchar "Linear B cow (mu)";
+beginglyph(oct"255",0.8);
+numeric rad; rad:=small;
+x1=x2=leftloc+2rad; y1=0; y2=h-rad; % stem
+x3=x5=leftloc+rad; y3=h; y5=y3-2rad;
+x4=leftloc; y4=y2;
+x6=x8=rightloc; y6=y5; y8=y3;   % bar and curve
+x7=x6-rad; y7=0.5[y6,y8];
+x9=x7-1/2rad; y9=y6;
+x10=x9; y10=y9-2rad;
+x11=x1; y11=y5;                % 
+draw z11--z2{up}..z3{left}..z4{down}..{right}z5--z6;  % stem and bar
+draw z6{left}..z7{up}..{right}z8;  % curve
+draw z9--z10;
+x21=leftloc; y21=0;
+z22=z21 reflectedabout (z1,z11); 
+draw z21--z11--z22; 
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{sheep}
+%    \begin{macrocode}
+cmchar "Linear B sheep";
+beginglyph(oct"260",0.8);
+x1=x2=16/20[leftloc,rightloc]; y1=0; y2=17/20h; % upright
+x3=x8=rightloc; y8=h; y8-y2=y2-y3;  % tail
+x5=leftloc; y5=y2;                  % nose
+x6=x4=10/20[x2,x5]; y4=y8; y6=y3;   % middle of body
+draw z1--z2;        % upright
+draw z3..z2..z4..z5..z6..z2..z8;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{ram}
+% Male sheep;
+%    \begin{macrocode}
+cmchar "Linear B ram";
+beginglyph(oct"261",0.8);
+x1=x2=16/20[leftloc,rightloc]; y1=0; y2=17/20h; % upright
+x3=x8=rightloc; y8=h; y8-y2=y2-y3;  % tail
+x5=leftloc; y5=y2;                  % nose
+x6=x4=10/20[x2,x5]; y4=y8; y6=y3;   % middle of body
+draw z1--z2;        % upright
+draw z3..z2..z4..z5..z6..z2..z8;
+x22=x24=rightloc; y22=1/3[y1,y2]; y24=2/3[y1,y2];
+z21 = z22 reflectedabout (z1,z2);
+z23 = z24 reflectedabout (z1,z2);
+draw z21--z22; draw z23--z24;     % bars
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{ewe}
+% Female sheep;
+%    \begin{macrocode}
+cmchar "Linear B ewe";
+beginglyph(oct"262",0.8);
+x1=x2=16/20[leftloc,rightloc]; y1=0; y2=17/20h; % upright
+x3=x8=rightloc; y8=h; y8-y2=y2-y3;  % tail
+x5=leftloc; y5=y2;                  % nose
+x6=x4=10/20[x2,x5]; y4=y8; y6=y3;   % middle of body
+%draw z1--z2;        % upright
+draw z3..z2..z4..z5..z6..z2..z8;
+x22=rightloc; y22=0;
+z21 = z22 reflectedabout (z1,z2);
+draw z21--z2--z22;      % legs
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{goat}
+%    \begin{macrocode}
+cmchar "Linear B goat";
+beginglyph(oct"263",0.8);
+x1=x2= 16/20[leftloc,rightloc]; y1=0; y2=20/20h; % upright
+x3=rightloc; y3=17/20h;  % tail
+x6=leftloc; y6=y3;
+x5=1/3[x6,x2]; x4=2/3[x6,x2]; y5=h; y4=y6; 
+draw z1--z2;        % upright
+draw z3{left}..z2; draw z2..z4..z5..z6;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{billy}
+% Male goat.
+%    \begin{macrocode}
+cmchar "Linear B billy";
+beginglyph(oct"264",0.8);
+x1=x2= 16/20[leftloc,rightloc]; y1=0; y2=20/20h; % upright
+x3=rightloc; y3=17/20h;  % tail
+x6=leftloc; y6=y3;
+x5=1/3[x6,x2]; x4=2/3[x6,x2]; y5=h; y4=y6; 
+draw z1--z2;        % upright
+draw z3{left}..z2; draw z2..z4..z5..z6;
+x22=x24=rightloc; y22=1/3[y1,y2]; y24=2/3[y1,y2];
+z21 = z22 reflectedabout (z1,z2);
+z23 = z24 reflectedabout (z1,z2);
+draw z21--z22; draw z23--z24;     % bars
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{nanny}
+% Female goat.
+%    \begin{macrocode}
+cmchar "Linear B nanny";
+beginglyph(oct"265",0.8);
+x1=x2= 16/20[leftloc,rightloc]; y1=0; y2=20/20h; % upright
+x3=rightloc; y3=17/20h;  % tail
+x6=leftloc; y6=y3;
+x5=1/3[x6,x2]; x4=2/3[x6,x2]; y5=h; y4=y6; 
+%draw z1--z2;        % upright
+draw z3{left}..z2; draw z2..z4..z5..z6;
+x22=rightloc; y22=0;
+z21 = z22 reflectedabout (z1,z2);
+draw z21--z2--z22;      % legs
+labels(1,2,3,4,5,6,7,8); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+% \subsection{Weapons}
+%
+% \changes{v1.2}{2005/06/22}{Added 6 weapon glyphs}
+%
+%
+% \begin{routine}{chariot}
+%    \begin{macrocode}
+cmchar "Linear B chariot";
+beginglyph(oct"270", 1.2);
+x1=leftloc; x2=1/20[rightloc,leftloc];   % chariot ends
+y5=13/20h;   % chariot height
+x3=x4=x5=1/3[x1,x2]; y3=0; y4=1/2[y3,y5]; % wheel locations
+y1=y2=1/2[y4,y5];
+draw z2..z5..z1..z4..z2;    % body
+y13=1/2[y3,y4]; y14=1/2[y4,y5];
+x3-x13=1/2(y4-y3); x14=x13;
+z23=z13 reflectedabout (z3,z5); z24=z14 reflectedabout (z3,z5);
+draw z3..z13..z4..z23..cycle; draw z3--z4; draw z13--z23; % lower wheel
+draw z4..z14..z5..z24..cycle; draw z4--z5; draw z14--z24; % upper wheel
+x32=rightloc; y32-y2 = y5-y24;  % upper harness
+x31=x32; y2-y31=y32-y2; z200=z2;         % lower harness
+draw_vloop(2,32,0.75); draw_vloop(200,31,0.75);  % harness
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{chariot chassis}
+%    \begin{macrocode}
+cmchar "Linear B chariot chassis";
+beginglyph(oct"271", 1.2);
+x1=leftloc; x2=1/20[rightloc,leftloc];   % chariot ends
+y5=13/20h;   % chariot height
+x3=x4=x5=1/3[x1,x2]; y3=0; y4=1/2[y3,y5]; % wheel locations
+y1=y2=1/2[y4,y5];
+y13=1/2[y3,y4]; y14=1/2[y4,y5];
+x3-x13=1/2(y4-y3); x14=x13;
+x100=x3; y100=y13;
+draw z2..z5..z1..z100..z2;    % body
+draw z100--z5;
+z23=z13 reflectedabout (z3,z5); z24=z14 reflectedabout (z3,z5);
+%draw z3..z13..z4..z23..cycle; draw z3--z4; draw z13--z23; % lower wheel
+%draw z4..z14..z5..z24..cycle; draw z4--z5; draw z14--z24; % upper wheel
+x32=rightloc; y32-y2 = y5-y24;  % upper harness
+x31=x32; y2-y31=y32-y2; z200=z2;         % lower harness
+draw_vloop(2,32,0.75); draw_vloop(200,31,0.75);  % harness
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,100); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{chariot wheel}
+%    \begin{macrocode}
+cmchar "Linear B wheel";
+beginglyph(oct"272", 0.6);
+x1=leftloc; x3=rightloc; y4=0; x0=x4=x2=1/2[x1,x3]; 
+y0-y4=x0-x1; y1=y3=y0; y2-y0=y0-y4;
+draw z1..z2..z3..z4..cycle;    % rim
+draw z1--z3; draw z2--z4;      % 4 spokes
+z11=z1 rotatedaround (z0,45); % draw z11--z0;
+z12=z2 rotatedaround (z0,45); % draw z12--z0;
+z13=z3 rotatedaround (z0,45); % draw z13--z0;
+z14=z4 rotatedaround (z0,45); % draw z14--z0;
+draw z11--z13; draw z12--z14;
+labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+%
+% \begin{routine}{sword}
+%    \begin{macrocode}
+cmchar "Linear B sword";
+beginglyph(oct"273", 0.3);
+x1=x2=midloc; y1=0; y2=h;
+x3=x5=leftloc; x4=x7=rightloc; y3=y4=0; y5=y7=1/4h;
+draw z3--z4;  % handle
+draw z5--z2--z7--cycle; % blade
+draw z1--z2;
+labels(1,2,3,4,5,6,7); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{arrow}
+%    \begin{macrocode}
+cmchar "Linear B arrow";
+beginglyph(oct"274", 0.8);
+numeric alpha, beta; alpha=4/20h;
+x1=leftloc+alpha; x3=rightloc; y1=y3=alpha;  % shaft
+z2=5/20[z1,z3];
+beta=x2-x1;
+z11=(leftloc,0); x21=x11; y21-y1=y1-y11;     % fletches
+z12=z11 shifted (beta,0); z22=z21 shifted (beta,0);
+x13=x23 = x3-alpha; y13=y11; y23=y21;        % head
+draw z1--z3; draw z11--z1--z21; draw z12--z2--z22; draw z13--z3--z23;
+labels(1,2,3,11,12,13,21,22,23); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+% \begin{routine}{spear}
+%    \begin{macrocode}
+cmchar "Linear B spear";
+beginglyph(oct"275", 0.8);
+numeric alpha; alpha=4/20h;
+pair SH, HS;
+z1=(leftloc,h); z2=(rightloc,0);             % shaft
+SH = (x2-x1, y2-y1);
+HS = (y2-y1, x1-x2);
+z4=12/20[z1,z2];
+x6=1/3[x4,x2]; y6=0;
+z9 = 1/3[z4,z2]; z7=z9 shifted -0.1HS;
+draw z1--z2;
+draw z4..z6; draw z6..{SH}z2;
+draw z4..z7..z2;
+labels(1,2,3,4,4,6,7,8,9); endchar;
+
+%    \end{macrocode}
+% \end{routine}
+% 
+%
+%    The end of this file
+%    \begin{macrocode} 
+end
+
+%</up> 
+%    \end{macrocode}
+%
+%
+%
+% \section{The font definition files} \label{sec:fd}
+%
+%    \begin{macrocode}
+%<*fdot1>
+\ProvidesFile{ot1linb.fd}[1999/06/20 v1.0 Linear B font definition]
+\DeclareFontFamily{OT1}{linb}{}
+  \DeclareFontShape{OT1}{linb}{m}{n}{ <-> linb10 }{}
+  \DeclareFontShape{OT1}{linb}{bx}{n}{ <-> sub linb/m/n }{}
+  \DeclareFontShape{OT1}{linb}{b}{n}{ <-> sub linb/m/n }{}
+  \DeclareFontShape{OT1}{linb}{m}{sl}{ <-> sub linb/m/n }{}
+  \DeclareFontShape{OT1}{linb}{m}{it}{ <-> sub linb/m/n }{}
+%</fdot1>
+%    \end{macrocode}
+%
+%
+%    \begin{macrocode}
+%<*fdt1>
+\ProvidesFile{t1linb.fd}[1999/06/20 v1.0 Linear B font definition]
+\DeclareFontFamily{T1}{linb}{}
+  \DeclareFontShape{T1}{linb}{m}{n}{ <-> linb10 }{}
+  \DeclareFontShape{T1}{linb}{bx}{n}{ <-> sub linb/m/n }{}
+  \DeclareFontShape{T1}{linb}{b}{n}{ <-> sub linb/m/n }{}
+  \DeclareFontShape{T1}{linb}{m}{sl}{ <-> sub linb/m/n }{}
+  \DeclareFontShape{T1}{linb}{m}{it}{ <-> sub linb/m/n }{}
+%</fdt1>
+%    \end{macrocode}
+%
+% \section{The \Lpack{linearb} package code} \label{sec:code}
+%
+%    Announce the name and version of the package, which requires
+% \LaTeXe{}.
+%    \begin{macrocode}
+%<*usc>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{linearb}[2005/06/22 v1.2 package for Linear B font]
+%    \end{macrocode}
+%
+%   We need to check the encoding default for the document.
+% \begin{macro}{\Tienc}
+%    \begin{macrocode}
+\providecommand{\Tienc}{T1}
+%    \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\linbfamily}
+%    Selects the Linear B font family in the T1 encoding if this
+% is the document's default encoding. With the extended glyphs I think
+% that T1 should be used in any case.
+% \changes{v1.2}{2005/06/22}{Only select the T1 encoding}
+%    \begin{macrocode}
+%%%\ifx\Tienc\encodingdefault
+%%%  \newcommand{\linbfamily}{\usefont{T1}{linb}{m}{n}}
+%%%\else
+%%%  \newcommand{\linbfamily}{\usefont{OT1}{linb}{m}{n}}
+%%%\fi
+\newcommand{\linbfamily}{\usefont{T1}{linb}{m}{n}}
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textlinb}
+%    Text command for the Linear B font family.
+%    \begin{macrocode}
+\DeclareTextFontCommand{\textlinb}{\linbfamily}
+%    \end{macrocode}
+% \end{macro}
+%
+%    The commands for the basic signs.
+% \begin{macro}{\Ba}
+% \begin{macro}{\Be}
+% \begin{macro}{\Bi}
+% \begin{macro}{\Bo}
+% \begin{macro}{\Bu}
+% The 5 vowels.
+%    \begin{macrocode}
+\chardef\Ba=`a
+\chardef\Be=`e
+\chardef\Bi=`i
+\chardef\Bo=`o
+\chardef\Bu=`u
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Bda}
+% \begin{macro}{\Bde}
+% \begin{macro}{\Bdi}
+% \begin{macro}{\Bdo}
+% \begin{macro}{\Bdu}
+% The 5 D syllables.
+%    \begin{macrocode}
+\chardef\Bda=`d
+\chardef\Bde=`D
+\chardef\Bdi=`f
+\chardef\Bdo=`g
+\chardef\Bdu=`x
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Bja}
+% \begin{macro}{\Bje}
+% \begin{macro}{\Bjo}
+% \begin{macro}{\Bju}
+% The 4 J syllables.
+%    \begin{macrocode}
+\chardef\Bja=`j
+\chardef\Bje=`J
+\chardef\Bjo=`b
+\chardef\Bju=`L
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Bka}
+% \begin{macro}{\Bke}
+% \begin{macro}{\Bki}
+% \begin{macro}{\Bko}
+% \begin{macro}{\Bku}
+% The 5 K syllables.
+%    \begin{macrocode}
+\chardef\Bka=`k
+\chardef\Bke=`K
+\chardef\Bki=`c
+\chardef\Bko=`h
+\chardef\Bku=`v
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Bma}
+% \begin{macro}{\Bme}
+% \begin{macro}{\Bmi}
+% \begin{macro}{\Bmo}
+% \begin{macro}{\Bmu}
+% The 5 M syllables.
+%    \begin{macrocode}
+\chardef\Bma=`m
+\chardef\Bme=`M
+\chardef\Bmi=`y
+\chardef\Bmo=`A
+\chardef\Bmu=`B
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Bna}
+% \begin{macro}{\Bne}
+% \begin{macro}{\Bni}
+% \begin{macro}{\Bno}
+% \begin{macro}{\Bnu}
+% The 5 N syllables.
+%    \begin{macrocode}
+\chardef\Bna=`n
+\chardef\Bne=`N
+\chardef\Bni=`C
+\chardef\Bno=`E
+\chardef\Bnu=`F
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Bpa}
+% \begin{macro}{\Bpe}
+% \begin{macro}{\Bpi}
+% \begin{macro}{\Bpo}
+% \begin{macro}{\Bpu}
+% The 5 P syllables.
+%    \begin{macrocode}
+\chardef\Bpa=`p
+\chardef\Bpe=`P
+\chardef\Bpi=`G
+\chardef\Bpo=`H
+\chardef\Bpu=`I
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Bqa}
+% \begin{macro}{\Bqe}
+% \begin{macro}{\Bqi}
+% \begin{macro}{\Bqo}
+% The 4 Q syllables. 
+%    \begin{macrocode}
+\chardef\Bqa=`q
+\chardef\Bqe=`Q
+\chardef\Bqi=`X
+\chardef\Bqo=`8
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Bra}
+% \begin{macro}{\Bre}
+% \begin{macro}{\Bri}
+% \begin{macro}{\Bro}
+% \begin{macro}{\Bru}
+% The 5 R syllables.
+%    \begin{macrocode}
+\chardef\Bra=`r
+\chardef\Bre=`R
+\chardef\Bri=`O
+\chardef\Bro=`U
+\chardef\Bru=`V
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Bsa}
+% \begin{macro}{\Bse}
+% \begin{macro}{\Bsi}
+% \begin{macro}{\Bso}
+% \begin{macro}{\Bsu}
+% The 5 S syllables.
+%    \begin{macrocode}%
+\chardef\Bsa=`s
+\chardef\Bse=`S
+\chardef\Bsi=`Y
+\chardef\Bso=`1
+\chardef\Bsu=`2
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Bta}
+% \begin{macro}{\Bte}
+% \begin{macro}{\Bti}
+% \begin{macro}{\Bto}
+% \begin{macro}{\Btu}
+% The 5 T syllables.
+%    \begin{macrocode}
+\chardef\Bta=`t
+\chardef\Bte=`T
+\chardef\Bti=`3
+\chardef\Bto=`4
+\chardef\Btu=`5
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Bwa}
+% \begin{macro}{\Bwe}
+% \begin{macro}{\Bwi}
+% \begin{macro}{\Bwo}
+% The 4 W syllables.
+%    \begin{macrocode}
+\chardef\Bwa=`w
+\chardef\Bwe=`W
+\chardef\Bwi=`6
+\chardef\Bwo=`7
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Bza}
+% \begin{macro}{\Bze}
+% \begin{macro}{\Bzo}
+% The 3 Z syllables.
+%    \begin{macrocode}
+\chardef\Bza=`z
+\chardef\Bze=`Z
+\chardef\Bzo=`9
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\Baii}
+% \begin{macro}{\Baiii}
+% \begin{macro}{\Bau}
+% \begin{macro}{\Bdwe}
+% \begin{macro}{\Bdwo}
+% \begin{macro}{\Bnwa}
+% \begin{macro}{\Bpaiii}
+% \begin{macro}{\Bpuii}
+% \begin{macro}{\Bpte}
+% \begin{macro}{\Braii}
+% \begin{macro}{\Braiii}
+% \begin{macro}{\Boii}
+% \begin{macro}{\Bswa}
+% \begin{macro}{\Bswi}
+% \begin{macro}{\Btaii}
+% \begin{macro}{\Btwo}
+%    The commands for the 16 optional characters.
+%    \begin{macrocode}
+\chardef\Baii='073
+\chardef\Baiii='074
+\chardef\Bau='075
+\chardef\Bdwe='076
+\chardef\Bdwo='077
+\chardef\Bnwa='100
+\chardef\Bpaiii='133
+\chardef\Bpuii='134
+\chardef\Bpte='135
+\chardef\Braii='136
+\chardef\Braiii='137
+\chardef\Broii='140
+\chardef\Bswa='173
+\chardef\Bswi='174
+\chardef\Btaii='175
+\chardef\Btwo='176
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\BUi}
+% \begin{macro}{\BUii}
+% \begin{macro}{\BUiii}
+% \begin{macro}{\BUiv}
+% \begin{macro}{\BUv}
+% \begin{macro}{\BUvi}
+% \begin{macro}{\BUvii}
+% \begin{macro}{\BUviii}
+% \begin{macro}{\BUix}
+% \begin{macro}{\BUx}
+% \begin{macro}{\BUxi}
+%    The commands for the 11 unidentified characters.
+% \changes{v1.2}{2005/06/22}{Changed the macros for unidentified glyphs}
+%    \begin{macrocode}
+%%%\chardef\BUi='000
+%%%\chardef\BUii='001
+%%%\chardef\BUiii='002
+%%%\chardef\BUiv='003
+%%%\chardef\BUv='004
+%%%\chardef\BUvi='005
+%%%\chardef\BUvii='006
+%%%\chardef\BUviii='007
+%%%\chardef\BUix='010
+%%%\chardef\BUx='011
+%%%\chardef\BUxi='012
+\chardef\BUi='035
+\chardef\BUii='036
+\chardef\BUiii='037
+\chardef\BUiv='040
+\chardef\BUv='041
+\chardef\BUvi='042
+\chardef\BUvii='043
+\chardef\BUviii='044
+\chardef\BUix='045
+\chardef\BUx='046
+\chardef\BUxi='047
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BUxii}
+% \begin{macro}{\Btwe}
+%    My last unidentified character which \jurgen{} says is the \textit{twe}
+% syllable.
+%    \begin{macrocode}
+\chardef\BUxii='177
+\chardef\Btwe='177
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%    Now the commands for numerals.
+% \begin{macro}{\BNi}
+% \begin{macro}{\BNii}
+% \begin{macro}{\BNiii}
+% \begin{macro}{\BNiv}
+% \begin{macro}{\BNv}
+% \begin{macro}{\BNvi}
+% \begin{macro}{\BNvii}
+% \begin{macro}{\BNviii}
+% \begin{macro}{\BNix}
+%    Commands for numbers from 1 to 9.
+% \changes{v1.2}{2005/06/22}{Changed the macros for the numerals}
+% 
+%    \begin{macrocode}
+%%%\chardef\BNi='013
+%%%\chardef\BNii='014
+%%%\chardef\BNiii='015
+%%%\chardef\BNiv='016
+%%%\chardef\BNv='017
+%%%\chardef\BNvi='020
+%%%\chardef\BNvii='021
+%%%\chardef\BNviii='022
+%%%\chardef\BNix='023
+\chardef\BNi='001
+\chardef\BNii='002
+\chardef\BNiii='003
+\chardef\BNiv='004
+\chardef\BNv='005
+\chardef\BNvi='006
+\chardef\BNvii='007
+\chardef\BNviii='010
+\chardef\BNix='011
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BNx}
+% \begin{macro}{\BNxx}
+% \begin{macro}{\BNxxx}
+% \begin{macro}{\BNxl}
+% \begin{macro}{\BNl}
+% \begin{macro}{\BNlx}
+% \begin{macro}{\BNlxx}
+% \begin{macro}{\BNlxxx}
+% \begin{macro}{\BNxc}
+%    Commands for the tens, 10 to 90
+%    \begin{macrocode}
+%%%\chardef\BNx='024
+%%%\chardef\BNxx='025
+%%%\chardef\BNxxx='026
+%%%\chardef\BNxl='027
+%%%\chardef\BNl='030
+%%%\chardef\BNlx='031
+%%%\chardef\BNlxx='032
+%%%\chardef\BNlxxx='033
+%%%\chardef\BNxc='034
+\chardef\BNx='012
+\chardef\BNxx='013
+\chardef\BNxxx='014
+\chardef\BNxl='015
+\chardef\BNl='016
+\chardef\BNlx='017
+\chardef\BNlxx='020
+\chardef\BNlxxx='021
+\chardef\BNxc='022
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BNc}
+% \begin{macro}{\BNcc}
+% \begin{macro}{\BNccc}
+% \begin{macro}{\BNcd}
+% \begin{macro}{\BNd}
+% \begin{macro}{\BNdc}
+% \begin{macro}{\BNdcc}
+% \begin{macro}{\BNdccc}
+% \begin{macro}{\BNcm}
+%    Commands for the hundreds, 100 to 900
+%    \begin{macrocode}
+%%%\chardef\BNc='035
+%%%\chardef\BNcc='036
+%%%\chardef\BNccc='037
+%%%\chardef\BNcd='040
+%%%\chardef\BNd='041
+%%%\chardef\BNdc='042
+%%%\chardef\BNdcc='043
+%%%\chardef\BNdccc='044
+%%%\chardef\BNcm='045
+\chardef\BNc='023
+\chardef\BNcc='024
+\chardef\BNccc='025
+\chardef\BNcd='026
+\chardef\BNd='027
+\chardef\BNdc='030
+\chardef\BNdcc='031
+\chardef\BNdccc='032
+\chardef\BNcm='033
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BNm}
+%    Command for 1000.
+%    \begin{macrocode}
+%%\chardef\BNm='046
+\chardef\BNm='034
+
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\BPwta}
+% \begin{macro}{\BPwtb}
+% \begin{macro}{\BPwtc}
+% \begin{macro}{\BPwtd}
+% \begin{macro}{\BPtalent}
+% \begin{macro}{\BPvola}
+% \begin{macro}{\BPvolb}
+% \begin{macro}{\BPvolcd}
+% \begin{macro}{\BPvolcf}
+%  Macros for the weights and measures pictograms.
+% \changes{v1.2}{2005/06/22}{Added macros for weights and measures}
+%    \begin{macrocode}
+\chardef\BPwta='200
+\chardef\BPwtb='201
+\chardef\BPwtc='202
+\chardef\BPwtd='203
+\chardef\BPtalent='204
+\chardef\BPvola='210
+\chardef\BPvolb='211
+\chardef\BPvolcd='212
+\chardef\BPvolcf='213
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{BPcloth}
+% \begin{macro}{BPwool}
+% \begin{macro}{BPwheat}
+% \begin{macro}{BPbarley}
+% \begin{macro}{BPwine}
+% \begin{macro}{BPolive}
+% \begin{macro}{BPbronze}
+% \begin{macro}{BPgold}
+% Macros for commodities.
+% \changes{v1.2}{2005/06/22}{Added macros for commodities}
+%    \begin{macrocode}
+\chardef\BPcloth='220
+\chardef\BPwool='221
+\chardef\BPwheat='222
+\chardef\BPbarley='223
+\chardef\BPwine='224
+\chardef\BPolive='225
+\chardef\BPbronze='226
+\chardef\BPgold='227
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BPcup}
+% \begin{macro}{\BPgoblet}
+% \begin{macro}{\BPamphora}
+% \begin{macro}{\BPwineiih}
+% \begin{macro}{\BPwineiiih}
+% \begin{macro}{\BPwineivh}
+% \begin{macro}{\BPcauldroni}
+% \begin{macro}{\BPcauldronii}
+% Macros for vessels for holding liquid.
+% \changes{v1.2}{2005/06/22}{Added macros for vessels}
+%    \begin{macrocode}
+\chardef\BPcup='230
+\chardef\BPgoblet='231
+\chardef\BPamphora='232
+\chardef\BPwineiih='233
+\chardef\BPwineiiih='234
+\chardef\BPwineivh='235
+\chardef\BPcauldroni='236
+\chardef\BPcauldronii='237
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BPman}
+% \begin{macro}{\BPwoman}
+% \begin{macro}{\BPhorse}
+% \begin{macro}{\BPfoal}
+% Macros for man, woman, and horses.
+% \changes{v1.2}{2005/06/22}{Added macros for humans and horses}
+%    \begin{macrocode}
+\chardef\BPman='240
+\chardef\BPwoman='241
+\chardef\BPhorse='244
+\chardef\BPfoal='245
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BPpig}
+% \begin{macro}{\BPboar}
+% \begin{macro}{\BPsow}
+% \begin{macro}{\BPox}
+% \begin{macro}{\BPbull}
+% \begin{macro}{\BPcow}
+% Macros for pigs and oxen.
+% \changes{v1.2}{2005/06/22}{Added macros for livestock}
+%    \begin{macrocode}
+\chardef\BPpig='250
+\chardef\BPboar='251
+\chardef\BPsow='252
+\chardef\BPox='253
+\chardef\BPbull='254
+\chardef\BPcow='255
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BPsheep}
+% \begin{macro}{\BPram}
+% \begin{macro}{\BPewe}
+% \begin{macro}{\BPgoat}
+% \begin{macro}{\BPbilly}
+% \begin{macro}{\BPnanny}
+% Macros for sheep and goats.
+%    \begin{macrocode}
+\chardef\BPsheep='260
+\chardef\BPram='261
+\chardef\BPewe='262
+\chardef\BPgoat='263
+\chardef\BPbilly='264
+\chardef\BPnanny='265
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\BPchariot}
+% \begin{macro}{\BPchassis}
+% \begin{macro}{\BPwheel}
+% \begin{macro}{\BPsword}
+% \begin{macro}{\BParrow}
+% \begin{macro}{\BPspear}
+% Weapons of war.
+% \changes{v1.2}{2005/06/22}{Added macros for weapons}
+%    \begin{macrocode}
+\chardef\BPchariot='270
+\chardef\BPchassis='271
+\chardef\BPwheel='272
+\chardef\BPsword='273
+\chardef\BParrow='274
+\chardef\BPspear='275
+
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \begin{macro}{\translitlinbfont}
+% \begin{macro}{\translitlinb}
+%    |\translitlinb{|\meta{char-commands}|}| transliterates Linear B character
+% commands into distinguished syllables; these are typeset using the 
+% |\translitlinbfont| font specification.
+%    \begin{macrocode}
+\newcommand{\translitlinbfont}{\itshape}
+\newcommand{\translitlinb}[1]{{%
+  \@translitB\translitlinbfont #1}}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@translitB}
+%    This macro redefines all the character producing commands for use
+% in |\translitlinb|.
+%
+% Start with the 5 vowels. We have to make sure that there are no extraneous
+% spaces within the command.
+%    \begin{macrocode}
+\newcommand{\@translitB}{%
+\def\Ba{a-}\def\Be{e-}\def\Bi{i-}\def\Bo{o-}\def\Bu{u-}%
+%    \end{macrocode}    
+%
+% The 5 D syllables.
+%    \begin{macrocode}
+\def\Bda{da-}\def\Bde{de-}\def\Bdi{di-}\def\Bdo{do-}\def\Bdu{du-}%
+%    \end{macrocode}
+%
+% The 4 J syllables.
+%    \begin{macrocode}
+\def\Bja{ja-}\def\Bje{je-}\def\Bjo{jo-}\def\Bju{ju-}%
+%    \end{macrocode}
+%
+% The 5 K syllables.
+%    \begin{macrocode}
+\def\Bka{ka-}\def\Bke{ke-}\def\Bki{ki-}\def\Bko{ko-}\def\Bku{ku-}%
+%    \end{macrocode}
+%
+% The 5 M syllables.
+%    \begin{macrocode}
+\def\Bma{ma-}\def\Bme{me-}\def\Bmi{mi-}\def\Bmo{mo-}\def\Bmu{mu-}%
+%    \end{macrocode}
+%
+% The 5 N syllables.
+%    \begin{macrocode}
+\def\Bna{na-}\def\Bne{ne-}\def\Bni{ni-}\def\Bno{no-}\def\Bnu{nu-}%
+%    \end{macrocode}
+%
+% The 5 P syllables.
+%    \begin{macrocode}
+\def\Bpa{pa-}\def\Bpe{pe-}\def\Bpi{pi-}\def\Bpo{po-}\def\Bpu{pu-}%
+%    \end{macrocode}
+%
+% The 4 Q syllables.
+%    \begin{macrocode}
+\def\Bqa{qa-}\def\Bqe{qe-}\def\Bqi{qi-}\def\Bqo{qo-}%
+%    \end{macrocode}
+%
+% The 5 R syllables.
+%    \begin{macrocode}
+\def\Bra{ra-}\def\Bre{re-}\def\Bri{ri-}\def\Bro{ro-}\def\Bru{ru-}%
+%    \end{macrocode}
+%
+% The 5 S syllables.
+%    \begin{macrocode}
+\def\Bsa{sa-}\def\Bse{se-}\def\Bsi{si-}\def\Bso{so-}\def\Bsu{su-}%
+%    \end{macrocode}
+%
+% The 5 T syllables.
+%    \begin{macrocode}
+\def\Bta{ta-}\def\Bte{te-}\def\Bti{ti-}\def\Bto{to-}\def\Btu{tu-}%
+%    \end{macrocode}
+%
+% The 4 W syllables.
+%    \begin{macrocode}
+\def\Bwa{wa-}\def\Bwe{we-}\def\Bwi{wi-}\def\Bwo{wo-}%
+%    \end{macrocode}
+%
+% The 3 Z syllables.
+%    \begin{macrocode}
+\def\Bza{za-}\def\Bze{ze-}\def\Bzo{zo-}%
+%    \end{macrocode}
+%
+% The 16 optional signs.
+%    \begin{macrocode}
+\def\Baii{a2-}\def\Baiii{a3-}\def\Bau{au-}%
+\def\Bdwe{dwe-}\def\Bdwo{dwo-}%
+\def\Bnwa{nwa-}%
+\def\Bpaiii{pa3-}\def\Bpuii{pu2-}\def\Bpte{pte-}%
+\def\Braii{ra2-}\def\Braiii{ra3-}\def\Broii{ro2-}%
+\def\Bswa{swa-}\def\Bswi{swi-}%
+\def\Btaii{ta2-}\def\Btwo{two-}%
+%    \end{macrocode}
+%
+% The numbers.
+%    \begin{macrocode}
+\def\BNi{1-}\def\BNii{2-}\def\BNiii{3-}\def\BNiv{4-}\def\BNv{5-}%
+  \def\BNvi{6-}\def\BNvii{7-}\def\BNviii{8-}\def\BNix{9-}%
+\def\BNx{10-}\def\BNxx{20-}\def\BNxxx{30-}\def\BNxl{40-}\def\BNl{50-}%
+  \def\BNlx{60-}\def\BNlxx{70-}\def\BNlxxx{80-}\def\BNxc{90-}%
+\def\BNc{100-}\def\BNcc{200-}\def\BNccc{300-}\def\BNcd{400-}\def\BNd{500-}%
+  \def\BNdc{600-}\def\BNdcc{700-}\def\BNdccc{800-}\def\BNcm{900-}%
+\def\BNm{1000-}%
+%    \end{macrocode}
+%
+% The 11 unidentified signs. These all map to `?-'.
+%    \begin{macrocode}
+\def\BUi{?-}\def\BUii{?-}\def\BUiii{?-}\def\BUiv{?-}\def\BUv{?-}\def\BUvi{?-}%
+  \def\BUvii{?-}\def\BUviii{?-}\def\BUix{?-}\def\BUx{?-}\def\BUxi{?-}%
+%    \end{macrocode}
+%
+% The unidentified sign looking like a B, which \jurgen says is the \textit{twe}
+% syllable.
+%    \begin{macrocode}
+\def\BUxii{?-}\def\Btwe{twe-}%
+%    \end{macrocode}
+%
+% Weights and measures.
+%    \begin{macrocode}
+\def\BPwta{ /weightA/ }\def\BPwtb{ /weightB/ }\def\BPwtc{ /weightC/ }%
+\def\BPwtd{ /weightC/ }\def\BPtalent{ /talent/ }%
+%    \end{macrocode}
+% Volumetric measures.
+%    \begin{macrocode}
+\def\BPvola{ /volumeA/ }\def\BPvolb{ /volumeB/ }\def\BPvolcd{ /volumeC/ }%
+\def\BPvolcf{ /volumeC/ }%
+%    \end{macrocode}
+%
+% Commodities.
+%    \begin{macrocode}
+\def\BPcloth{ /cloth/ }\def\BPwool{ /wool/ }\def\BPwheat{ /wheat/ }%
+\def\BPbarley{ /barley/ }\def\BPwine{ /wine/ }\def\BPolive{ /olive oil/ }%
+\def\BPbronze{ /bronze/ }\def\BPgold{ /gold/ }%
+%    \end{macrocode}
+%
+% Vessels
+%    \begin{macrocode}
+\def\BPcup{ /cup/ }\def\BPgoblet{ /goblet/ }\def\BPamphora{ /amphora/ }%
+\def\BPwineiih{ /wine jar/ }\def\BPwineiiih{ /wine jar/ }\def\BPwineivh{ /wine jar/ }%
+\def\BPcauldroni{ /cauldron/ }\def\BPcauldronii{ /cauldron/ }%
+%    \end{macrocode}
+%
+% Humans and horses
+%    \begin{macrocode}
+\def\BPman{ /man/ }\def\BPwoman{ /woman/ }\def\BPhorse{ /horse/ }\def\BPfoal{ /foal/ }%
+%    \end{macrocode}
+%
+% Livestock.
+%    \begin{macrocode}
+\def\BPpig{ /pig/ }\def\BPboar{ /boar/ }\def\BPsow{ /sow/ }%
+\def\BPox{ /ox/ }\def\BPbull{ /bull/ }\def\BPcow{ /cow/ }%
+\def\BPsheep{ /sheep/ }\def\BPram{ /ram/ }\def\BPewe{ /ewe/ }%
+\def\BPgoat{ /goat/ }\def\BPbilly{ /billy/ }\def\BPnanny{ /nanny/ }%
+%    \end{macrocode}
+%
+% Weapons
+%    \begin{macrocode}
+\def\BPchariot{ /chariot/ }\def\BPchassis{ /chassis/ }\def\BPwheel{ /wheel/ }%
+\def\BPsword{ /sword/ }\def\BParrow{ /arrow/ }\def\BPspear{ /spear/ }%
+%    \end{macrocode}
+%
+% Close the macro definition.
+%    \begin{macrocode}
+} % end of \@translitB
+%    \end{macrocode}
+% \end{macro}
+%
+%
+%    The end of this package.
+%    \begin{macrocode}
+%</usc>
+%    \end{macrocode}
+%
+% \section{Map file}
+%
+%    A short map file.
+% \changes{v1.2}{2005/06/22}{Added map file}
+%
+%    \begin{macrocode}
+%<*map>
+linb10        Archaic-Linear-B      <linb10.pfb
+%</map>
+%    \end{macrocode}
+%
+%  That's it.
+%
+%
+% \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         \~}
+
+
-- 
cgit v1.2.3

