diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:49:08 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:49:08 +0000 |
commit | 10e86525da5f0224078b5bb299e21166a36631fc (patch) | |
tree | 4ef035be3ffb624eac1de0eea79c4550a84d2d6c /Master/texmf-dist/source/fonts/archaic | |
parent | 7f97ebfa628c4d00c1d298daf8b8b5da3781fdb5 (diff) |
trunk/Master/texmf-dist/source/fonts
git-svn-id: svn://tug.org/texlive/trunk@111 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/fonts/archaic')
30 files changed, 31900 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/fonts/archaic/aramaic.dtx b/Master/texmf-dist/source/fonts/archaic/aramaic.dtx new file mode 100644 index 00000000000..09b76a2081b --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/aramaic.dtx @@ -0,0 +1,1186 @@ +% \iffalse meta-comment +% +% aramaic.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{aramaic.dtx} +\end{document} +%</driver> +% +% +% \fi +% +% \CheckSum{242} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v1.1}{2000/09/30}{Minor changes to glyph encodings} +% \changes{v1.2}{2005/06/14}{Added Type1 map file} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v1.1} \def\filedate{2000/09/30} +% \def\fileversion{v1.2} \def\filedate{2005/06/14} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Aramaic} +% +% \title{The \Lpack{Aramaic} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dor press at earthlink dot net}}\\ +% Herries Press } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{aramaic} bundle provides a set of fonts for the +% Aramaic script which was used between about the tenth and second +% centuries~\BC{} in the Middle East. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% The Phoenician alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. +% The font presented here is one of a series of fonts intended to show how +% the modern Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{COMPANION}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and source code for the package is in later sections. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F', and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{aramaic} package} \label{sec:usc} +% +% The \thisfont{} script is an early offshoot from the Phoenician +% script, eventually leading to the Arabic and square Jewish scripts. +% It was used between about the tenth and second centuries~\BC{} +% in the Middle East. The version presented is typical of about the +% middle of its life. +% +% The alphabet consisted of 22 characters. +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and, where I know it, the +% modern name of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcll} \hline +% Value & Name? & ASCII & Command & Command \\ \hline +% \textit{a} & +% aleph & +% ' a & |\Arq| |\Aa| & +% |\Aaleph| +% \\ +% \textit{b} & +% beth & +% b & |\Ab| & +% |\Abeth| +% \\ +% \textit{g} & +% gimel & +% g & |\Ag| & +% |\Agimel| +% \\ +% \textit{d} & +% daleth & +% d & |\Ad| & +% |\Adaleth| +% \\ +% \textit{h} & +% he & +% h & |\Ah| & +% |\Ahe| +% \\ +% \textit{w} & +% vav & +% w & |\Aw| & +% |\Avav| +% \\ +% \textit{z} & +% zayin & +% z & |\Az| & +% |\Azayin| +% \\ +% \textit{\d{h}} & +% heth & +% H & |\Ahd| & +% |\Aheth| +% \\ +% \textit{\d{t}} & +% teth & +% T & |\Atd| & +% |\Ateth| +% \\ +% \textit{y} & +% yod & +% y & |\Ay| & +% |\Ayod| +% \\ +% \textit{k} & +% kaph & +% k & |\Ak| & +% |\Akaph| +% \\ +% \textit{l} & +% lamed & +% l & |\Al| & +% |\Alamed| +% \\ +% \textit{m} & +% mem & +% m & |\Am| & +% |\Amem| +% \\ +% \textit{n} & +% nun & +% n & |\An| & +% |\Anun| +% \\ +% \textit{s} & +% samekh & +% s & |\As| & +% |\Asamekh| +% \\ +% \textit{`} & +% ayin & +% ` o & |\Alq| |\Ao| & +% |\Aayin| +% \\ +% \textit{p} & +% pe & +% p & |\Ap| & +% |\Ape| +% \\ +% \textit{\d{s}} & +% sade & +% x & |\Asd| & +% |\Asade| +% \\ +% \textit{q} & +% qoph & +% q & |\Aq| & +% |\Aqoph| +% \\ +% \textit{r} & +% resh & +% r & |\Ar| & +% |\Aresh| +% \\ +% \textit{\v{s}} & +% shin & +% S & |\Asv| & +% |\Ashin| +% \\ +% \textit{t} & +% tav & +% t & |\At| & +% |\Atav| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% +% \DescribeMacro{\aramfamily} +% This command selects the \thisfont{} font family. The family name is |aram|. +% +% \DescribeMacro{\textaram} +% The command |\textaram{|\meta{text}|}| typesets \meta{text} in the +% \thisfont{} font. +% +% I have provided three ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, +% (b) by commands whose names are based on the transliterated values, and +% (c) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab}. +% +% +% \DescribeMacro{\translitaram} +% The command |\translitaram{|\meta{commands}|}| will typeset the +% transliteration of the \thisfont{} character commands (those in the +% last two columns of Table~\ref{tab}). +% +% \DescribeMacro{\translitaramfont} +% The font used for the transliteration is defined by this macro, +% which is initialsed to an italic font (i.e., |\itshape|). +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dav97]{DAVIES97} +% W. V. Davies. +% \newblock \emph{Reading the Past: Egyptian Hieroglyphs}. +% \newblock University of California Press/British Museum, 1997. +% \newblock (ISBN 0-520-06287-6) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[MG04]{COMPANION} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \bibitem[Hea90]{HEALEY90} +% John F.~Healey. +% \newblock \emph{Reading the Past: The Early Alphabet}. +% \newblock University of California Press/British Museum, 1990. +% \newblock (ISBN 0-520-07309-6) +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% ARAM10.MF Computer Aramaic font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="aramaic"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.6pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font, normally the driver file would be called +% here. In this case I have embedded it. +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% If there was a seperate driver file, this would be its contents. +% +% \begin{macrocode} + +font_coding_scheme:="Aramaic glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.8px#; % vertical thickness of the pen + +define_pixels(s,u); +define_blacker_pixels(px,py); +define_good_x_pixels(leftloc); +define_corrected_pixels(o); % turn on overshoot correction +define_horizontal_corrected_pixels(ho); + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +newinternal defaultsmoothrad; +numeric smoothrad, defaultsmoothrad; +defaultsmoothrad := 2px; +smoothrad := 2px; + +tertiarydef p ~ q = + begingroup + c_ := fullcircle scaled 2smoothrad shifted point 0 of q; + a_ := ypart(c_ intersectiontimes p); + b_ := ypart(c_ intersectiontimes q); + if a_ < 0: point 0 of p{direction 0 of p} else: subpath(0,a_) of p fi + ... if b_ < 0: {direction infinity of q}point infinity of q + else: subpath(b_,infinity) of q fi + endgroup +enddef; + +def smoothly(text t) = + hide(n_:=0; for z=t: z_[incr n_]:= z; endfor) + (z_1 for k=2 upto n_-1: --z_[k]) ~ (z_[k] endfor --z_[n_]) +enddef; + +% \end{macrocode} +% +% That would be the end of a seperate drive file, except for calling +% the glyph code file. +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Aramaic font. +% The characters +% are defined in the Phoenician alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{'} +% The \thisfont{} letter \textit{aleph}. Like an X. +% \begin{macrocode} + +cmchar "Aramaic letter aleph (coded as ')"; +beginglyph("'",1.0); +numeric n[]; +n1 := rightloc-leftloc; % glyph width +z1=(leftloc,0); z2=(rightloc,h); +z3=(midloc,h/2); +draw z1{dir(45)}..z3{right}..{up}z2; +z11=(1/4[leftloc,rightloc],h); z12=(rightloc,0); +draw z11--z12; +labels(1,2,3,4,5,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The \thisfont{}letter \textit{aleph}. +% \begin{macrocode} + +cmchar "Aramaic letter aleph (coded as a)"; +beginglyph("a",1.0); +numeric n[]; +n1 := rightloc-leftloc; % glyph width +z1=(leftloc,0); z2=(rightloc,h); +z3=(midloc,h/2); +draw z1{dir(45)}..z3{right}..{up}z2; +z11=(1/4[leftloc,rightloc],h); z12=(rightloc,0); +draw z11--z12; +labels(1,2,3,4,5,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The \thisfont{} letter \textit{bet}. Like a lowercase y. +% \begin{macrocode} + +cmchar "Aramaic letter bet (coded as b)"; +beginglyph("b",0.8); +z1=(1/4[leftloc,rightloc],h); +z2=(x1,3/4h); +z3=(rightloc,y2); +z5=(leftloc,0); +%%draw z1--z2--z3; +draw smoothly(z1, z2, z3); +draw z3{dir(-120)}..{left}z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The \thisfont{} letter \textit{gimel}. Like a stick bent into +%an upside down V. +% \begin{macrocode} + +cmchar "Aramaic letter gimel (coded as g)"; +beginglyph("g", 0.7); +z1=(leftloc, 1/3h); +z2=(rightloc,h); +z3=(rightloc,0); +%%draw z1--z2--z3; +draw smoothly(z1, z2, z3); +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The \thisfont{} letter \textit{dalet}. More y-like than bet. +% \begin{macrocode} + +cmchar "Aramaic letter dalet (coded as d)"; +beginglyph("d",0.6); +z1=(leftloc,h); +z2=(x1,3/4h); +z3=(rightloc,h); +z4=(rightloc,0); +draw z1{down}..{up}z3; +draw z3--z4; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{h} +% The \thisfont{} letter \textit{he}. Like a lowercase n. +% \begin{macrocode} + +cmchar "Aramaic letter he (coded as h)"; +beginglyph("h",0.8); +z1=(leftloc,2/3h); +z2=(rightloc,h); +z3=(rightloc,0); +z11=1/2[z1,z2]; +z12=(x11,1/2y1); +draw smoothly(z1, z2, z3); +draw z11--z12; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{w} +% The \thisfont{} letter \textit{vav}. Slightly bent stick. +% \begin{macrocode} + +cmchar "Aramaic letter vav (coded as w)"; +beginglyph("w",0.4); +z1=(leftloc,h); +z2=(rightloc,h); +z3=(rightloc,0); +draw z1{dir(-45)}..{down}z3; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The \thisfont{} letter \textit{zayin}. Short vertical line. +% \begin{macrocode} + +cmchar "Aramaic letter zayin (coded as z)"; +beginglyph("z",0.2); +z1=(midloc,3/4h); +z2=(midloc,1/4h); +draw z1--z2; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The \thisfont{} letter \textit{het} (h sub dot). +% \begin{macrocode} + +cmchar "Aramaic letter het (h sub dot?) (coded as H)"; +beginglyph("H", 0.7); +z1=(leftloc,0); z2=(leftloc,h); +z3=(rightloc,0); z4=(rightloc,h); +z5=7/8[z1,z2]; +draw z1--z2; +draw smoothly(z5, z4, z3); +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{T} +% The \thisfont{} letter \textit{tet} (t sub dot). Like the numeral 6. +% \begin{macrocode} + +cmchar "Aramaic letter tet (t sub dot) (coded as T)"; +beginglyph("T",0.6); +path pth[]; +z1=(1/3[leftloc,rightloc], h); +z2=(leftloc, 3/8h); +z4=(rightloc,0); +z5=(rightloc, 7/12h); +pth1 := z1..z2{down}..{right}z4; +z6 = point 1.3 of pth1; +pth2 := pth1 & z4--z5--z6; +draw pth1; +draw smoothly(z4, z5, z6); +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The \thisfont{} letter \textit{yod}. Like a circumflex accent. +% \begin{macrocode} + +cmchar "Aramaic letter yod (coded as y)"; +beginglyph("y",0.2); +z1=(leftloc, 6/8h); +z2=(midloc,h); +z3=(rightloc,y1); +draw z1--z2--z3; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The \thisfont{} letter \textit{kaf}. +% More upright and stiffer version of \textit{bet}. +% \begin{macrocode} + +cmchar "Aramaic letter kaf (coded as k)"; +beginglyph("k",0.6); +z1=(leftloc,h); +z2=(x1,7/8y1); +z3=(rightloc,y1); +z5=(3/4[x1,x3],0); +draw z1--z2; +draw smoothly(z2, z3, z5); +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The \thisfont{} letter \textit{lamed}. +% Like a handwritten l. +% \begin{macrocode} + +cmchar "Aramaic letter lamed (coded as l)"; +beginglyph("l",0.5); +z1=(midloc,h); +z2=(leftloc, 1/4h); +z3=(midloc,0); +z4=(rightloc,1/2y2); +draw z1--z2{down}..{right}z3..z4; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The \thisfont{} letter \textit{mem}. +% Like \textit{bet} with a line through the top bar. +% \begin{macrocode} + +cmchar"Aramaic letter mem (coded as m)"; +beginglyph("m",0.8); +z1=(leftloc,h); +z2=(x1,3/4h); +z3=(rightloc,y2); +z5=(leftloc,0); +draw smoothly(z1, z2, z3, z5); +z11=(1/2[x2,x3],y1); +z12 = z11 shifted (3/2(y1-y2)*down); +draw z11--z12; +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The \thisfont{} letter \textit{nun}. +% Like a very thin \textit{bet}. +% \begin{macrocode} + +cmchar "Aramaic letter nun (coded as n)"; +beginglyph("n",0.3); +z1=(leftloc,h); +z2=(x1,3/4h); +z3=(rightloc,y2); +z5=(leftloc,0); +draw smoothly(z1, z2, z3, z5); +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{s} +% The \thisfont{} letter \textit{samekh}. +% \begin{macrocode} + +cmchar "Aramaic letter samekh (coded as s)"; +beginglyph("s", 0.6); +z1=(leftloc,h); +z2=(x1,2/3h); +z3=(rightloc,y2); +z5=(rightloc,0); +z4=1/2[z1,z3]; +draw z1{right}..z4{down}..{left}z2; +draw smoothly(z2, z3, z5); +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{`} +% The \thisfont{} letter \textit{ayin}. +% Like a U. +% \begin{macrocode} + +cmchar "Aramaic letter ayin (coded as `)"; +beginglyph("`",0.6); +z1=(leftloc,3/4h); +z3=(rightloc,y1); +z2=(1/2[x1,x3], (h-y1)); +draw z1{down}..z2{right}..{up}z3; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The \thisfont{} letter \textit{ayin}. +% \begin{macrocode} + +cmchar "Aramaic letter ayin (coded as o)"; +beginglyph("o",0.6); +z1=(leftloc,3/4h); +z3=(rightloc,y1); +z2=(1/2[x1,x3], (h-y1)); +draw z1{down}..z2{right}..{up}z3; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The \thisfont{} letter \textit{pe}. +% Looks like an ear. +% \begin{macrocode} + +cmchar "Aramaic letter pe (coded as p)"; +beginglyph("p", 0.6); +z1=(leftloc,7/8h); +z2=(midloc,h); +z3=(rightloc,6/8h); +z5=(leftloc,0); +draw z1..z2{right}..z3{down}..z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The \thisfont{} letter \textit{tsadi}. +% Like a P sloping slightly forwards. +% \begin{macrocode} + +cmchar "Aramaic letter tsadi (S sub dot) (coded as x)"; +beginglyph("x", 0.6); +z1=(1/8[leftloc,rightloc], h); +z2=(leftloc,0); +z3=7/8[z2,z1]; +z4=(1/2[x1,rightloc], h); +z6=(1/2[x3,x4],5/8h); +z5=(rightloc, 2/3[y6,y4]); +draw z1--z2; +draw z3...z4...z5{down}...z6; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{q} +% The \thisfont{} letter \textit{qof}. +% Like a P sloping slightly backwards. +% \begin{macrocode} + +cmchar "Aramaic letter qof (coded as q)"; +beginglyph("q", 0.7); +z1=(leftloc,h); +z3=(rightloc,13/16h); +z2=(1/8[x1,x3], y1); +z4=(1/2[x2,x3], 9/16h); +z11=z2; +z12=(2/8[x11,rightloc], 0); +draw z1--z2{right}..z3{down}..{left}z4; +draw z11--z12; +labels(1,2,3,4,5,6,7,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{r} +% The \thisfont{} letter \textit{resh}. +% Practically identical to \textit{dalet}. +% \begin{macrocode} + +cmchar "Aramaic letter resh (coded as r)"; +beginglyph("r",0.6); +z1=(leftloc,h); +z2=(x1,3/4h); +z3=(rightloc,h); +z4=(rightloc,0); +draw z1{down}..{up}z3; +draw z3--z4; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{S} +% The \thisfont{} letter \textit{shin} (s sup v). +% Like a rounded E partly lying on its back. +% \begin{macrocode} + +cmchar "Aramaic letter shin (s sup v) (coded as S)"; +beginglyph("S", 0.8); +path pth[]; +z1=(leftloc,h); +z4=(rightloc,1/2h); +z3=(2/3[x1,x4], 0); +pth1 := z1{down}..z3{right}..{up}z4; +z2= point 0.5 of pth1; +z12=(1/2[x3,x4], 1/2[y4,y1]); +draw z2--z12; +draw pth1; +labels(1,2,3,4,5,6,7,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The \thisfont{} letter \textit{tav}. +% Like my handwritten lowercase p. +% \begin{macrocode} + +cmchar "Aramaic letter tav (coded as t)"; +beginglyph("t", 1.0); +path pth[]; +z1=(midloc,h); +z3=(leftloc,0); +z2=(1/2[x3,x1], 1/8[y3,y1]); +z11=5/8[z2,z1]; +z12=(1/2[x1,rightloc],h); +z13=(rightloc,y11); +z14=(x12,1/2[y2,y11]); +draw smoothly(z1, z2, z3); +draw z11...z12{right}...z13{down}...z14; +labels(1,2,3,4,10,11,12,13,14); endchar; + + +% \end{macrocode} +% \end{macro} +% +% +% The end of the glyphs. +% +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{aram}{} + \DeclareFontShape{OT1}{aram}{m}{n}{ <-> aram10 }{} + \DeclareFontShape{OT1}{aram}{bx}{n}{ <-> sub aram/m/n }{} + \DeclareFontShape{OT1}{aram}{b}{n}{ <-> sub aram/m/n }{} + \DeclareFontShape{OT1}{aram}{m}{sl}{ <-> sub aram/m/n }{} + \DeclareFontShape{OT1}{aram}{m}{it}{ <-> sub aram/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{aram}{} + \DeclareFontShape{T1}{aram}{m}{n}{ <-> aram10 }{} + \DeclareFontShape{T1}{aram}{bx}{n}{ <-> sub aram/m/n }{} + \DeclareFontShape{T1}{aram}{b}{n}{ <-> sub aram/m/n }{} + \DeclareFontShape{T1}{aram}{m}{sl}{ <-> sub aram/m/n }{} + \DeclareFontShape{T1}{aram}{m}{it}{ <-> sub aram/m/n }{} +%</fdt1> +% \end{macrocode} +% +% +% \section{The \Lpack{aramaic} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{aramaic}[2000/09/30 v1.0 package for Aramaic fonts] +% \end{macrocode} +% +% +% \begin{macro}{\aramfamily} +% Selects the font family in the T1 encoding. +% \begin{macrocode} +\newcommand{\aramfamily}{\usefont{T1}{aram}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textaram} +% Text command for the font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textaram}{\aramfamily} + +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} +\chardef\Arq=`' \chardef\Aa=`a \chardef\Aaleph=`' +\chardef\Ab=`b \chardef\Abeth=`b +\chardef\Ag=`g \chardef\Agimel=`g +\chardef\Ad=`d \chardef\Adaleth=`d +\chardef\Ah=`h \chardef\Ahe=`h +\chardef\Aw=`w \chardef\Avav=`w +\chardef\Az=`z \chardef\Azayin=`z +\chardef\Ahd=`H \chardef\Aheth=`H +\chardef\Atd=`T \chardef\Ateth=`T +\chardef\Ay=`y \chardef\Ayod=`y +\chardef\Ak=`k \chardef\Akaph=`k +\chardef\Al=`l \chardef\Alamed=`l +\chardef\Am=`m \chardef\Amem=`m +\chardef\An=`n \chardef\Anun=`n +\chardef\As=`s \chardef\Asamekh=`s +\chardef\Alq=`` \chardef\Ao=`o \chardef\Aayin=`` +\chardef\Ap=`p \chardef\Ape=`p +\chardef\Asd=`x \chardef\Asade=`x +\chardef\Aq=`q \chardef\Aqoph=`q +\chardef\Ar=`r \chardef\Aresh=`r +\chardef\Asv=`S \chardef\Ashin=`S +\chardef\At=`t \chardef\Atav=`t + +% \end{macrocode} +% +% \begin{macro}{\translitaram} +% \begin{macro}{\transliaramfont} +% |\translitaram{|\meta{commands}|}| transliterates +% \meta{commands} using the |\translitaram| font. +% \begin{macrocode} +\newcommand{\translitaram}[1]{{% + \@translitA\translitaramfont #1}} +\newcommand{\translitaramfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitA} +% This macro redefines all the character commands to produce +% the transliterated value instead of the glyph. There must be no +% spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitA}{% +\def\Arq{'}\def\Aa{\Arq}\def\Aaleph{\A}% +\def\Ab{b}\def\Abeth{\Ab}% +\def\Ag{g}\def\Agimel{\Ag}% +\def\Ad{d}\def\Adaleth{\Ad}% +\def\Ah{h}\def\Ahe{\Ah}% +\def\Aw{w}\def\Avav{\Aw}% +\def\Az{z}\def\Azayin{\Az}% +\def\Ahd{\d{h}}\def\Aheth{\Ahd}% +\def\Atd{\d{t}}\def\Ateth{\Atd}% +\def\Ay{y}\def\Ayod{\Ay}% +\def\Ak{k}\def\Akaph{\Ak}% +\def\Al{l}\def\Alamed{\Al}% +\def\Am{m}\def\Amem{\Am}% +\def\An{n}\def\Anun{\An}% +\def\As{s}\def\Asamekh{\As}% +\def\Alq{`}\def\Ao{\Alq}\def\Aayin{\Alq}% +\def\Ap{p}\def\Ape{\Ap}% +\def\Asd{\d{s}}\def\Asade{\Asd}% +\def\Aq{q}\def\Aqoph{\Aq}% +\def\Ar{r}\def\Aresh{\Ar}% +\def\Asv{\v{s}}\def\Ashin{\Asv}% +\def\At{t}\def\Atav{\At}% +} + +% \end{macrocode} +% \end{macro} +% +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The map file} +% +% This is pretty short. +% \changes{v1.2}{2005/06/13}{Added the map file} +% \begin{macrocode} +%<*map> +aram10 Archaic-Aramaic <aram10.pfb +%</map> +% \end{macrocode} +% +% +% \Finale +% \PrintIndex +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/aramaic.ins b/Master/texmf-dist/source/fonts/archaic/aramaic.ins new file mode 100644 index 00000000000..d92328ee02d --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/aramaic.ins @@ -0,0 +1,90 @@ +%% aramaic.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{aramaic.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{aramaic.drv}{t}{\from{aramaic.dtx}{driver}} + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{aram10.mf}{t}{\from{aramaic.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1aram.fd}{t}{\from{aramaic.dtx}{fdot1}} +\generateFile{t1aram.fd}{t}{\from{aramaic.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{aramaic.sty}{t}{\from{aramaic.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{aramaic.map}{t}{\from{aramaic.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue with the installation move the following} +\Msg{* files into the LaTeX macro area:} +\Msg{* \space\space ot1aram.fd} +\Msg{* \space\space t1aram.fd} +\Msg{* \space\space aramaic.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/cypriot.dtx b/Master/texmf-dist/source/fonts/archaic/cypriot.dtx new file mode 100644 index 00000000000..3ff0f5facbd --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/cypriot.dtx @@ -0,0 +1,2114 @@ +% \iffalse meta-comment +% +% cypriot.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{cypriot.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{279} +% +% \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}{2005/04/17}{Contact changed, Type1 map file} +% \changes{v1.1}{2005/04/17}{Merged the three metafont files into one} +% +% \def\fileversion{v1.0} \def\filedate{1999/06/20} +% \def\fileversion{v1.1} \def\filedate{2005/06/13} +% \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}} +% +% \title{The \Lpack{Cypriot} font\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{cypriot} bundle provides a rendition of the Cypriot +% syllabary which was a script used in Cyprus for writing Greek. The script +% was in use between about 1000 and 200~\BC. +% \end{abstract} +% \tableofcontents +% \listoftables +% +% +% +% \section{Introduction} +% +% The font presented here is a rendition of the Cypriot script +% that was used from about 1000 to 200~\BC, particularly on Cyprus. +% It is one of a series of fonts that was initially intended +% 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{COMPANION}. +% +% 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{cypriot} package} \label{sec:usc} +% +% The Cypriot script was used in Cyprus for almost a thousand years, +% from about 1000--200~\BC. +% +% Cypriot is a syllabary, where there is a sign for each +% syllable. There are 55 signs in the Cypriot syllabary. +% The script was used for record keeping, not for literary purposes. +% It was used in Cyprus until about the third century \BC, although by +% this time few could read or write it. At this late date its use was +% principally for recording +% inscriptions on votive offerings and public works, and in many cases +% the Cypriot script was accompanied by a Greek alphabetic version of +% the same text. These bilinguals were a great aid in deciphering the +% script, a task that was completed in the 1870's. +% +% Apart from the specialised literature, the story of the Cypriot script +% can be found in~\cite{CHADWICK87} and~\cite{GORDON87}, among others. +% +% Cypriot was used to write Greek centuries before the Greek alphabet +% was invented. Perhaps surprisingly, Cypriot has no other relationship +% to the Greek alphabet except that they can both be used to write the +% same language. There is, however, a relationship between the Cypriot syllabary +% and the earlier Linear~B syllabary, which was principally used in Crete, as +% some of the signs are the same. +% +% The font presented here is based on the signs illustrated by +% Chadwick~\cite{CHADWICK87}, and consists of 55 signs.\footnote{I am grateful +% to J\"{u}rgen Kraus (\texttt{jkraus@uni-goettingen.de}) for reviewing +% my interpretation of the symbols.} +% +% +% +% \DescribeMacro{\cyprfamily} +% This command selects the Cypriot font family. +% The family name is |cypr|. +% +% \DescribeMacro{\textcypr} +% The command |\textcypr{|\meta{text}|}| typesets \meta{text} in the +% Cypriot font. +% +% The commands (and their ASCII equivalents) for the 55 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 50 signs are two-character syllables. +% The apparently odd mapping to the ASCII characters is so that a +% companion Linear~B font~\cite{LINEARB} can use the same ASCII characters +% for the syllables that are common to both scripts. +% +% \begin{table} +% \centering +% \caption{Commands and encoding for the signs}\label{tab:basic} +% \begin{tabular}{cccccc} \hline +% & a & e & i & o & u \\ \hline +% & |\Ca| a & |\Ce| e & |\Ci| i & |\Co| o & |\Cu| u \\ +% g & |\Cga| g & & & & \\ +% j & |\Cja| j & & & |\Cjo| b & \\ +% k & |\Cka| k & |\Cke| K & |\Cki| c & |\Cko| h & |\Cku| v \\ +% l & |\Cla| l & |\Cle| L & |\Cli| d & |\Clo| f & |\Clu| q \\ +% m & |\Cma| m & |\Cme| M & |\Cmi| y & |\Cmo| A & |\Cmu| B \\ +% n & |\Cna| n & |\Cne| N & |\Cni| C & |\Cno| E & |\Cnu| F \\ +% p & |\Cpa| p & |\Cpe| P & |\Cpi| G & |\Cpo| H & |\Cpu| I \\ +% r & |\Cra| r & |\Cre| R & |\Cri| O & |\Cro| U & |\Cru| V \\ +% s & |\Csa| s & |\Cse| S & |\Csi| Y & |\Cso| 1 & |\Csu| 2 \\ +% t & |\Cta| t & |\Cte| T & |\Cti| 3 & |\Cto| 4 & |\Ctu| 5 \\ +% w & |\Cwa| w & |\Cwe| W & |\Cwi| 6 & |\Cwo| 7 & \\ +% z & & & & |\Czo| 9 & \\ +% \hline +% \end{tabular} +% \end{table} +% +% There appears to be some flexibility in the interpretation of three +% of the signs, namely the \textit{ga}, \textit{ja} and \textit{jo}. Some +% write these as \textit{za}, \textit{ya} and \textit{yo}, respectively. +% I have provided the commands |\Cza|, |\Cya| and |\Cyo|, in addition to +% those listed in Table~\ref{tab:basic}, for those who prefer the alternate +% interpretation. These typeset the same sign as the corresponding +% |\Cga|, |\Cja| and +% |\Cjo| commands, the difference between the interpretations only being +% manifest within transliterated text. +% +% The Cypriot 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. +% +% \DescribeMacro{\translitcypr} +% The command |\translitcypr{|\meta{char-commands}|}|, where \meta{char-commands} +% are the Cypriot character commands, will typeset a transliteration of the +% signs. For example,\\ +% |\translitcypr{\Cti\Cme:\Cto/\Cre\Cti\Cre}| 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. +% It is a feature of the command that all transliterated commands have a trailing +% |-| sign. +% +% \DescribeMacro{\translitcyprfont} +% The transliterated Cypriot is typeset with the font declarations specified by +% |\translitcyprfont|, 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{\translitcyprfont}{\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[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[MG04]{COMPANION} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \bibitem[Gor87]{GORDON87} +% Cyrus H.~Gordon. +% \newblock \emph{Forgotten Scripts}. +% \newblock Dorset Press, (Revised and enlarged edition) 1987. +% +% \bibitem[Wil99]{LINEARB} +% Peter R.~Wilson. +% \newblock \emph{The Linear~B Package}. +% \newblock 1999. (Available from CTAN in \texttt{fonts/archaic}). +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameters} +% +% We deal with the parameters first, and start by announcing +% what it is for. +% \changes{v1.1}{2005/04/17}{Merged all the metafont files into one.} +% \begin{macrocode} +%<*up> +%%% CYPR10.MF Cypriot Bronze Age script 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="Cypriot"; 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} +% +% +% Define the very simple font values. +% \DescribeVariable{u} +% The unit width. +% \begin{macrocode} +u#:=.2pt#; % unit width +% \end{macrocode} +% +% \DescribeVariable{ht} +% The height of the characters. Computer Modern cap height is approximately +% |6.8pt|. +% \begin{macrocode} +ht#:=heightfudge*10pt#; % height of characters (CM cap-height is approx 6.8pt) +% \end{macrocode} +% +% \DescribeVariable{s} +% Extra space at the left and right of a character. +% \begin{macrocode} +s#:=1.5pt#; % width correction (right and left) +% \end{macrocode} +% +% \DescribeVariable{o} +% Overshoot correction. +% \begin{macrocode} +o#:=1/20pt#; % overshoot +% \end{macrocode} +% +% \DescribeVariable{px} +% The horizontal width of the pen. +% \begin{macrocode} +px#:=penfudge*0.7pt#; % horizontal width of pen +% \end{macrocode} +% +% \DescribeVariable{font-normal-space} +% The width of a blank space. +% \begin{macrocode} +font_normal_space:=7pt#; % width of a blank space +% \end{macrocode} +% +% \DescribeVariable{font-normal-shrink} +% Possible width correction for a blank space. +% \begin{macrocode} +font_normal_shrink:=.9pt#; % width correction for blank space +% \end{macrocode} +% +% \DescribeVariable{font-x-height} +% Just for completness, the height of |1ex|. +% \begin{macrocode} +font_x_height:=4.5pt#; % height of one ex +% \end{macrocode} +% +% \DescribeVariable{font-quad} +% The width of |1em|. +% \begin{macrocode} +font_quad:=10pt#; % an em + +% \end{macrocode} +% +% Now move on to the `driver' data for the font. +% +% \subsection{The driver data} +% +% Switch into Metafont mode +% +% \begin{macrocode} +font_coding_scheme:="Cypriot 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}{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} +% +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Cypriot font. +% \begin{macrocode} +%%%% Glyph code for the Cypriot font. + +% \end{macrocode} +% +% \subsubsection{The glyphs} +% +% There are 55 glyphs. These are composed of the five vowels +% (a e i o u), and 50 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 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 Linear B 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 asterisk. +% \begin{macrocode} +cmchar "Cypriot sign a"; +beginglyph("a",1.0); +x1=x6=leftloc; y1=0; y6=h; % left points +x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4]; % middle points +x5=x2=rightloc; y5=0; y2=h; % right points +draw z1--z2; % bl to tr diagonal +draw z3--z4; % vertical +draw z5--z6; % br to tl diagonal +labels(0,1,2,3,4,5,6,7,8); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{e} +% The sign \textit{e}. Like the `a' but with an extra horizontal half stroke. +% crossbar. +% \begin{macrocode} +cmchar "Cypriot sign e"; +beginglyph("e",1.0); +x1=x6=leftloc; y1=0; y6=h; % left points +x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4]; % middle points +x5=x2=rightloc; y5=0; y2=h; % right points +x7=x2; y7=y0; +draw z1--z2; % bl to tr diagonal +draw z3--z4; % vertical +draw z5--z6; % br to tl diagonal +draw z0--z7; % short horizontal +labels(0,1,2,3,4,5,6,7,8); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{i} +% The sign \textit{i}. Like the `a' but short vertical. +% \begin{macrocode} +cmchar "Cypriot sign i"; +beginglyph("i",1.0); +x1=x6=leftloc; y1=0; y6=h; % left points +x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4]; % middle points +x5=x2=rightloc; y5=0; y2=h; % right points +draw z1--z2; % bl to tr diagonal +draw z0--z4; % vertical +draw z5--z6; % br to tl diagonal +labels(0,1,2,3,4,5,6,7,8); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{o} +% The sign \textit{o}. Corporal's stripes on a horizontal base. +% \begin{macrocode} +cmchar "Cypriot sign o"; +beginglyph("o",1.0); +x1=x6=leftloc; y1=0; y6=h; % left points +x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4]; % middle points +x5=x2=rightloc; y5=0; y2=h; % right points +x7=x1; x8=x5; y7=y8=y0; +draw z6--z0--z2; % top stripe +draw z7--z3--z8; % bottom stripe +draw z1--z5; % base +labels(0,1,2,3,4,5,6,7,8); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{u} +% The sign \textit{u}. A Y with the top arms bent. +% \begin{macrocode} +cmchar "Cypriot sign u"; +beginglyph("u",1.0); +numeric alpha, wid; alpha:=1/6; +wid:=(rightloc-leftloc); +x1=x2=midloc; y1=0; y2=h*(1-2alpha); % stem +x3=leftloc; x6=rightloc; % arms +y4=y5=h; +y3=y6=0.5[y2,y4]; +x4=alpha[x3,x6]; x5=alpha[x6,x3]; +draw z1--z2; % stem +draw z3--z4--z2--z5--z6; % arms +labels(1,2,3,4,5,6,7,8); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ga} +% The sign \textit{ga}. Like |> <| with two dashes. +% \begin{macrocode} +cmchar "Cypriot sign ga"; +beginglyph("g",1.0); +numeric alpha, wid; alpha:=1/6; +wid:=(rightloc-leftloc); +numeric beta; beta:=small; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % minmax points +x2=midloc-beta; x5=midloc+beta; y2=y5=h/2; % chevron centers +z11'=1/3[z5,z6]; z13'=2/3[z5,z6]; % the dashes +z11=z11' shifted (tiny*NW); z13=z13' shifted (tiny*NW); +z12=z11 shifted (small*NW); z14=z13 shifted (small*NW); +draw z1--z2--z3; draw z4--z5--z6; % chevrons +draw z11--z12; draw z13--z14; % dashes +labels(1,2,3,4,5,6,7,8,11,12,13,14); +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{ja} +% The sign \textit{ja}. A teardrop. (A rectangle with two interior lines.) +% \begin{macrocode} +cmchar "Cypriot sign ja"; +beginglyph("j",0.4); +x1=x3=midloc; y1=0; y3=h; +x2=leftloc; x4=rightloc; y2=y4=0.75[y1,y3]; +draw z1..z2{up}..{right}z3; % left half +draw z1..z4{up}..{left}z3; % right half +labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{jo} +% The sign \textit{jo}. A W with a line under the bottom right point. +% \begin{macrocode} +cmchar "Cypriot sign jo"; +beginglyph("b",1.0); +x1=leftloc; x3=midloc; x5=rightloc; % the W +x2=1/2[x1,x3]; x4=1/2[x5,x3]; y2=y4=0; +y1=y3=y5=0.5h; +x6=0.2[x3,x4]; x7=0.2[x5,x4]; y6=y7=0; % horizontal +draw z1--z2--z3--z4--z5; % the W +draw z6--z7; % horizontal +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{ka} +% The sign \textit{ka}. Upward arrow on a base. +% \begin{macrocode} +cmchar "Cypriot sign ka"; +beginglyph("k",0.6); +x1=leftloc; x2=rightloc; y1=y2=0; % base +x3=x4=midloc; y3=0; y4=h; % stem +x5=leftloc; x6=rightloc; y5=y6=0.7h; % arrowhead +draw z1--z2; % base +draw z3--z4; % stem +draw z5--z4--z6; % arrowhead +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{ke} +% The sign \textit{ke}. An E rotated 135 degrees with bottom arm and upright +% extended. +% \begin{macrocode} +cmchar "Cypriot sign ke"; +beginglyph("K",1.0); +numeric alpha, beta; alpha=medium; +x0ll=leftloc+alpha; x0lr=rightloc; y0ll=y0lr=alpha; % E box +x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h; +%%zll=(xll,yll); zur=(xur,yur); +z1=z0ll shifted (alpha*right); +z4=z0ll shifted (alpha*up); +z1-z3=whatever*(z0ll-z0ur); % lines parallel to box diagonal +z4-z5=whatever*(z0ll-z0ur); +x3=x0lr; y6=h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; % center of parallel lines +z7-z1=whatever*(z1-z3); y7=0; % upright extension +z8-z1=whatever*(z1-z4); y8=0; % arm extension +draw z1--z3; % E upright +draw z1--z4; draw z2--z5; draw z3--z6; % E arms +draw z1--z7; draw z1--z8; % extensions +labels(0ll,0lr,0ul,0ur,1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ki} +% The sign \textit{ki}. Like a Y with bent arms. (J\"{u}rgen Kraus +% adds a top bar to the Y). +% \begin{macrocode} +cmchar "Cypriot sign ki"; +beginglyph("c",1.0); +numeric alpha, wid; alpha:=1/6; +numeric beta; beta:=0.25; +wid:=(rightloc-leftloc); +x1=x2=midloc; y1=0; y2=h*(1-2alpha); % stem +x3=leftloc; x6=rightloc; % arms +y4=y5=h; +y3=y6=0.5[y2,y4]; +x4=alpha[x3,x6]; x5=alpha[x6,x3]; +x14=x4; x15=x5; y14=y15=0; % base +z16=beta[z4,z5]; z17=beta[z5,z4]; % top bar +draw z1--z2; % stem +draw z3--z4--z2--z5--z6; % arms +draw z14--z15; % base +draw z16--z17; % top bar +labels(1,2,3,4,5,6,7,8,14,15,16,17); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ko} +% The sign \textit{ko}. +% \begin{macrocode} +cmchar "Cypriot sign ko"; +beginglyph("h",0.8); +numeric beta; beta:=0.2; +x1=leftloc; x4=rightloc; y1=y4=0; % bottom points +x2=beta[x1,x4]; x3=beta[x4,x1]; y2=y3=h; % top points +draw z1--z2--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ku} +% The sign \textit{ku}. +% \begin{macrocode} +cmchar "Cypriot sign ku"; +beginglyph("v",0.8); +numeric beta; beta:=small; +x1=x6=leftloc; y6=h; y1=0.4h; % left points +x3=x4=midloc; y3=0; % center points +x5=x2=rightloc; y5=y1; y2=y6; % right points +z0=whatever[z1,z2]=whatever[z5,z6]; +y4=y0+beta; +z4-z8=whatever*(z0-z2); y8=h; +z4-z7=whatever*(z0-z6); y7=h; +draw z3--z0; % stem +draw z1--z2; draw z5--z6; % the X +draw z7--z4--z8; % upper angle +labels(0,1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{la} +% The sign \textit{la}. Like a V on a base. +% \begin{macrocode} +cmchar "Cypriot sign la"; +beginglyph("l",0.8); +numeric beta; beta:=medium; +x1=leftloc; x2=rightloc-beta; y1=y2=0; % base +x3=x1; x4=0.5[x1,x2]; x5=x2; x6=rightloc; % V +y3=y5=h; y4=y1; y6=y5-beta; +draw z1--z2; % base +draw z3--z4--z5--z6; % V +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{le} +% The sign \textit{le}. Like an 8. +% \begin{macrocode} +cmchar "Cypriot sign le"; +beginglyph("L",0.6); +x1=x2=leftloc; y1=1/4h; y2=3/4h; % left points +x3=x4=midloc; y3=0; y4=h; % middle points +x5=x6=rightloc; y5=y1; y6=y2; % right points +draw z3..z1..z6..z4..z2..z5..cycle; % the 8 +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{li} +% The sign \textit{li}. Like a $\leq$ symbol. +% \begin{macrocode} +cmchar "Cypriot sign li"; +beginglyph("d",0.6); +numeric beta; beta:=medium; +x1=leftloc; x2=rightloc; y1=y2=beta; % base +x3=x5=x2; x4=x1; y3=y4=x1+beta; y5=h-beta; +draw z1--z2; % base +draw z3--z4--z5; % < symbol +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{lo} +% The sign \textit{lo}. A cross. +% \begin{macrocode} +cmchar "Cypriot sign lo"; +beginglyph("f",0.5); +x0=midloc; y0=h/2; +x1=leftloc; x2=rightloc; y1=y2=y0; % horizontal +x3=x4=x0; y3-y0=x2-x0; y0-y4=x2-x0; % vertical +draw z1--z2; draw z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{lu} +% The sign \textit{lu}. Like a dome over a U. +% \begin{macrocode} +cmchar "Cypriot sign lu"; +beginglyph("q",0.8); +numeric radb, rads; +x1=leftloc; x2=rightloc; y1=y2=0; % dome base points +radb:=0.5(x2-x1); +x3=x1; x4=x2; y3=y4=h-radb; % dome mid points +x5=midloc; y5=h; % dome top point +rads:=1/2radb; +x15=x5; y15=y1; % U bottom point +x13=x15-rads; x14=x15+rads; y13=y14=y15+rads; % U mid points +x11=x13; x12=x14; y11=y12=y13+2rads; % U top points +draw z1---z3..z5..z4---z2; % the Dome +draw z11---z13..z15..z14---z12; % the U +labels(1,2,3,4,5,11,12,13,14,15); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{ma} +% The sign \textit{ma}. Like |> <| with an upside down |^| at the top. +% \begin{macrocode} +cmchar "Cypriot sign ma"; +beginglyph("m",0.8); +numeric beta; beta:=small; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % minmax points +x2=midloc-beta; x5=midloc+beta; y2=y5=h/2; +x8=midloc; y8=y5+beta; +z7-z8=whatever*(z3-z2); z9-z8=whatever*(z6-z5); y7=y9=h; +draw z1--z2--z3; % left angle +draw z4--z5--z6; % right angle +draw z7--z8--z9; % top angle +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{me} +% The sign \textit{me}. An X with an i at the bottom. +% \begin{macrocode} +cmchar "Cypriot sign me"; +beginglyph("M",0.8); +numeric beta; beta:=tiny; %% beta:=small; +x0=midloc; y0=h/2; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % minmax points +x11=x12=midloc; x13=x11+beta; x14=x13+beta; +y12=beta; y13=0; y14=beta/2; y11=0.5[y12,y0]; +draw z1--z6; draw z4--z3; % the X +draw z11--z12{down}..z13{right}..z14; % the i +labels(1,2,3,4,5,6,7,8,9,11,12,13,14); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{mi} +% The sign \textit{mi}. A bit like a V with arms on a base. +% \begin{macrocode} +cmchar "Cypriot sign mi"; +beginglyph("y",0.8); +numeric beta; beta:=small; +x0=midloc; y0=h/2; +x1=leftloc; x5=rightloc; % V points +x2=0.15[x1,x5]; x3=0.5[x1,x5]; x4=0.15[x5,x1]; +y2=y4=h; y3=0; y1=y5=y2-(x2-x1); +x6=0.25[x1,x5]; x7=0.25[x5,x1]; y6=y7=y3; % base points +draw z1--z2--z3--z4--z5; % V +draw z6--z7; % base +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{mo} +% The sign \textit{mo}. An ellipse split by a vertical line. +% \begin{macrocode} +cmchar "Cypriot sign mo"; +beginglyph("A",0.8); +numeric beta; beta:=0.2h; +x0=midloc; y0=h/2; +x1=leftloc; x2=x4=midloc; x3=rightloc; +y1=y3=y0; y2=h-beta; y4=beta; +draw z1..z2..z3..z4..cycle; % ellipse +draw z2--z4; % vertical line +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{mu} +% The sign \textit{mu}. An X with vertical dashes at either side. +% \begin{macrocode} +cmchar "Cypriot sign mu"; +beginglyph("B",0.8); +numeric beta; beta:=0.2; +numeric gamma; +x0=midloc; y0=h/2; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % minmax points +x11=beta[x1,x0]; x12=beta[x4,x0]; % for dashes +y11=y12=y0; +z10'=beta[z1,z0]; z30'=beta[z3,z0]; +gamma:=0.5(y30'-y10'); +draw z1--z6; draw z4--z3; % the X +draw_vdash(11,gamma); draw_vdash(12,gamma); +labels(1,2,3,4,5,6,7,8,9,11,12); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{na} +% The sign \textit{na}. A T, but with 2 crossbars. +% \begin{macrocode} +cmchar "Cypriot sign na"; +beginglyph("n",0.4); +numeric beta; beta:=0.1h; +x1=leftloc; x2=rightloc; y1=y2=h; +x3=leftloc; x4=rightloc; y3=y4=y1-beta; +x5=x6=midloc; y5=0; y6=y3; +draw z1--z2; draw z3--z4; % bars +draw z5--z6; % stem +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ne} +% The sign \textit{ne}. A lightning flash between two dashes. +% \begin{macrocode} +cmchar "Cypriot sign ne"; +beginglyph("N",0.6); +numeric beta; +beta:=0.1*(rightloc-leftloc); +x0=midloc; y0=h/2; +x1=x0+beta; x4=x0-beta; y1=h; y4=0; % lightning top and bottom +x2=x0-beta; x3=x0+beta; % lightning middle points +y2=y0+0.5beta; y3=y0-0.5beta; +x11=x12=leftloc; y11=0.2h; y12=0.8h; % left dash +x13=x14=rightloc; y13=y11; y14=y12; % right dash +draw z11--z12; draw z13--z14; % dashes +draw z1--z2--z3--z4; % lightning +labels(1,2,3,4,11,12,13,14); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ni} +% The sign \textit{ni}. An E rotated 135 degrees on a base. +% \begin{macrocode} +cmchar "Cypriot sign ni"; +beginglyph("C",1.0); +numeric alpha, beta; alpha=medium; +x0ll=leftloc; x0lr=rightloc; y0ll=y0lr=0; % E box +x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h; +%%zll=(xll,yll); zur=(xur,yur); +z1=z0ll shifted (alpha*right); +z4=z0ll shifted (alpha*up); +z1-z3=whatever*(z0ll-z0ur); % lines parallel to box diagonal +z4-z5=whatever*(z0ll-z0ur); +x3=x0lr; y6=h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; % center of parallel lines +z7=z0ll; x8=0.5[x2,x3]; y8=0; % base +draw z1--z3; % E upright +draw z1--z4; draw z2--z5; draw z3--z6; % E arms +draw z7--z8; % base +labels(0ll,0lr,0ul,0ur,1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{no} +% The sign \textit{no}. +% \begin{macrocode} +cmchar "Cypriot sign no"; +beginglyph("E",1.0); +numeric alpha, beta; +alpha=medium; %% alpha=0.5medium; +x0ll=leftloc; x0lr=rightloc; y0ll=y0lr=0; % E box +x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h; +z1=z0ll shifted (alpha*right); +z4=z0ll shifted (alpha*up); +z1-z3'=whatever*(z0ll-z0ur); % lines parallel to box diagonal +z4-z6'=whatever*(z0ll-z0ur); +x3'=x0lr; y6'=h; +x11=x0ur; y11=y0ur-2alpha; % the top ends +x12=x0ur-2alpha; y12=y0ur; +z3=whatever[z1,z3']=whatever[z11,z12]; +z6=whatever[z4,z6']=whatever[z11,z12]; +draw z1--z3--z11; +draw z4--z6--z12; +labels(0ll,0lr,0ul,0ur,1,2,3,3',4,5,6,6',11,12); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{nu} +% The sign \textit{nu}. Like |>| with dashes at the right. +% \begin{macrocode} +cmchar "Cypriot sign nu"; +beginglyph("F",0.4); +numeric beta; beta:=small; +numeric gamma; gamma:=1/4h; % dash length +x1=x3=leftloc; y1=0; y3=h; % left points +x4=x6=rightloc; y4=1/4h; y6=3/4h; % dash points +x2=x4-beta; y2=h/2; % point of the < +draw z1--z2--z3; % left angle +draw_vdash(4,gamma); draw_vdash(6,gamma); % dashes +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{pa} +% The sign \textit{pa}. Like a Lorraine cross. +% \begin{macrocode} +cmchar "Cypriot sign pa"; +beginglyph("p",0.4); +x1=x2=midloc; y1=0; y2=h; % stem +x3=x5=leftloc; y3=0.7h; y5=0.4h; +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}. A lightning flash. +% \begin{macrocode} +cmchar "Cypriot sign pe"; +beginglyph("P",0.3); +numeric beta; +beta:=0.5*(rightloc-leftloc); +x0=midloc; y0=h/2; +x1=x0+beta; x4=x0-beta; y1=h; y4=0; % lightning top and bottom +x2=x0-beta; x3=x0+beta; % lightning middle points +y2=y0+0.5beta; y3=y0-0.5beta; +draw z1--z2--z3--z4; % lightning +labels(1,2,3,4,11,12,13,14); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{pi} +% The sign \textit{pi}. Corporal's stripes. +% \begin{macrocode} +cmchar "Cypriot sign pi"; +beginglyph("G",1.0); +x1=x6=leftloc; y1=0; y6=h; % left points +x3=x4=midloc; y3=0; y4=h; z0=0.5[z3,z4]; % middle points +x5=x2=rightloc; y5=0; y2=h; % right points +x7=x1; x8=x5; y7=y8=y0; +draw z6--z0--z2; % top stripe +draw z7--z3--z8; % bottom stripe +labels(0,1,2,3,4,5,6,7,8); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{po} +% The sign \textit{po}. A bit like a sickle. +% \begin{macrocode} +cmchar "Cypriot sign po"; +beginglyph("H",1.0); +numeric rad; +x0=midloc; y0=h/2; +x1=leftloc; y1=0; +x5=rightloc; rad:=0.2(x5-x1); y5=h-rad; +x4=x5-rad; y4=h; +x3=x4-rad; y3=y5; +x2=x4; y2=y3-rad; +draw z1--z2; +draw z2..z3{up}..z4{right}..{down}z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{pu} +% The sign \textit{pu}. A bit like |<!>| on a base. +% \begin{macrocode} +cmchar "Cypriot sign pu"; +beginglyph("I",1.0); +x0=midloc; y0=h/2; +x1=x0; y1=0; x2=leftloc; y2=2/3h; % left angle +x3=0.5[x2,x0]; y3=h; +z4=z1; x5=rightloc; y5=y2; % right angle +x6=0.5[x5,x0]; y6=y3; +z7=z0; % vertical dash +x8=leftloc; x9=rightloc; y8=y9=0; % base +draw z1--z2--z3; draw z4--z5--z6; % angles +draw z4--z7; % dash +draw z8--z9; % base +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{ra} +% The sign \textit{ra}. A dome on a base. +% \begin{macrocode} +cmchar "Cypriot sign ra"; +beginglyph("r",0.6); +numeric rad, beta; +x1=leftloc; x2=rightloc; y1=y2=0; % base +z3=0.2[z1,z2]; z4=0.2[z2,z1]; % dome +rad:= 0.5*(x4-x3); +x7=midloc; y7=h; +x5=x3; x6=x4; y5=y6=y7-rad; +beta:=1.5; % for tension +draw z1--z2; % base +%%draw z3--z5..z7..z6--z4; % dome +draw z3{up}..tension beta..z7..tension beta..{down}z4; % curve +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{re} +% The sign \textit{re}. Two verticals with a roof. +% \begin{macrocode} +cmchar "Cypriot sign re"; +beginglyph("R",0.8); +numeric beta; beta:=small; +x1=leftloc; x2=midloc; x3=rightloc; y2=h; y1=y3=2/3h; % roof +x4=x5=2/3[x1,x2]; x6=x7=2/3[x3,x2]; y4=y6=0; +y5=y7=2/3[y1,y2] - beta; +draw z1--z2--z3; % roof +draw z4--z5; draw z6--z7; % supports +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ri} +% The sign \textit{ri}. Like an E rotated 135 degrees. +% \begin{macrocode} +cmchar "Cypriot sign ri"; +beginglyph("O",1.0); +numeric alpha, beta; alpha=medium; +x0ll=leftloc; x0lr=rightloc; y0ll=y0lr=0; % E box +x0ul=x0ll; x0ur=x0lr; y0ul=y0ur=h; +%%zll=(xll,yll); zur=(xur,yur); +z1=z0ll shifted (alpha*right); +z4=z0ll shifted (alpha*up); +z1-z3=whatever*(z0ll-z0ur); % lines parallel to box diagonal +z4-z5=whatever*(z0ll-z0ur); +x3=x0lr; y6=h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; % center of parallel lines +draw z1--z3; % E upright +draw z1--z4; draw z2--z5; draw z3--z6; % E arms +labels(0ll,0lr,0ul,0ur,1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ro} +% The sign \textit{ro}. Like $\alpha$ rotated 90 degrees. +% \begin{macrocode} +cmchar "Cypriot sign ro"; +beginglyph("U",0.6); +numeric rad, beta; +x0=midloc; y0=h/2; +x1=leftloc; x2=rightloc; y1=y2=0; % base points +rad:=0.25*(x2-x1); +x3=x0-rad; x4=x0+rad; y3=y4=h-rad; +x5=x0; y5=h; +beta:=1.5; % tension +draw z1..tension beta..z4{up}..z5{left}..z3{down}..tension beta..z2; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ru} +% The sign \textit{ru}. Like |)\(|, but the slash is short. +% \begin{macrocode} +cmchar "Cypriot sign ru"; +beginglyph("V",0.6); +numeric beta; beta:=small; +x0=midloc; y0=h/2; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % the parens +y2=y5=y0; x2=x1+beta; x5=x4-beta; +z7=3/4[z1,z4]; x8=x0; y8=(x4-x7); % dash +draw z1...z2{up}...z3; % left half +draw z4...z5{up}...z6; % right half +draw z7--z8; % dash +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{sa} +% The sign \textit{sa}. Like a V. +% \begin{macrocode} +cmchar "Cypriot sign sa"; +beginglyph("s",0.6); +x1=leftloc; x2=midloc; x3=rightloc; +y1=y3=h; y2=0; +draw z1--z2--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{se} +% The sign \textit{se}. +% \begin{macrocode} +cmchar "Cypriot 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 roof over an L over a base. +% \begin{macrocode} +cmchar "Cypriot sign si"; +beginglyph("Y",0.6); +x1=leftloc; x2=midloc; x3=rightloc; y1=y3=2/3h; y2=h; % roof +x4=leftloc; x5=rightloc; y4=y5=0; % base +x6=x7=midloc; x8=rightloc; y7=y8=1/4h; % stem +y6=0.5[y1,y2]; +draw z1--z2--z3; % roof +draw z4--z5; % base +draw z6--z7--z8; % stem +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{so} +% The sign \textit{so}. Corporal's stripes over two bases. +% \begin{macrocode} +cmchar "Cypriot sign so"; +beginglyph("1",1.0); +x1=x2=x3=x4=leftloc; x5=x6=midloc; x7=x8=x9=x10=rightloc; +y1=y7=0; y4=y10=h; +y2=y5=y8=0.2h; +y3=y9=0.5[y2,y4]; +y6-y5=y4-y3; +draw z1--z7; % lower base +draw z2--z8; % upper base +draw z3--z5--z9; % lower stripe +draw z4--z6--z10; % upper stripe +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{su} +% The sign \textit{su}. Like an upside down |)Y|. +% \begin{macrocode} +cmchar "Cypriot sign su"; +beginglyph("2",1.0); +numeric beta; beta:=small; +x0=midloc; y0=h/2; +x1=x3=leftloc; y1=0; y3=h; x2=x1+beta; y2=h/2; % the parens +x4=x2; x5=rightloc; y4=y5=y1; % bottom of Y +x6=x7=0.5[x4,x5]; y6=1/3h; y7=y3; % stem of Y +x9=0.5[x6,x5]; y9=0.5[y6,y7]; % horizontal right +x8'=leftloc; y8'=y9; +path p; +p=z1..z2..z3; +z8 = (z9--z8') intersectionpoint p; +draw p; % paren +draw z4--z6--z5; draw z6--z7; % Y +draw z9--z8; % horizontal +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ta} +% The sign \textit{ta}. +% \begin{macrocode} +cmchar "Cypriot sign ta"; +beginglyph("t",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}{te} +% The sign \textit{te}. A downward arrow on a base. +% \begin{macrocode} +cmchar "Cypriot sign te"; +beginglyph("T",0.6); +x1=leftloc; x2=midloc; x3=rightloc; y1=y3=1/3h; y2=0; % arrowhead +x4=leftloc; x5=rightloc; y4=y5=0; % base +x6=midloc; y6=h; % stem +draw z1--z2--z3; % arrowhead +draw z4--z5; % base +draw z6--z2; % stem +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{ti} +% The sign \textit{ti}. An upward arrow. +% \begin{macrocode} +cmchar "Cypriot sign ti"; +beginglyph("3",0.6); +x1=leftloc; x2=midloc; x3=rightloc; y1=y3=2/3h; y2=h; % roof +x4=midloc; y4=0; % stem +draw z1--z2--z3; % roof +draw z4--z2; % stem +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{to} +% The sign \textit{to}. Like an F. +% \begin{macrocode} +cmchar "Cypriot sign to"; +beginglyph("4",0.6); +numeric alpha; alpha:=0.25; +x1=leftloc; x2=rightloc; y1=y2=h; % top bar +x3=x4=alpha[x1,x2]; y3=0; y4=y1; % stem +z5=2/3[z3,z4]; x6=x2; y6=y5; % short arm +draw z1--z2; % top +draw z3--z4; % stem +draw z5--z6; % short +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{tu} +% The sign \textit{tu}. Like an slanted F with dashes under lower arm. +% \begin{macrocode} +cmchar "Cypriot sign tu"; +beginglyph("5",0.6); +numeric alpha, beta; alpha:=0.2; % slant +x3=leftloc; x2=rightloc; y3=0; y2=h; % minmax points +x1=alpha[x3,x2]; y1=y2; % top bar +x7-x3=x2-x1; y7=0; +z5=2/3[z3,z1]; z6=2/3[z7,z2]; % short arm +%%z8=0.7[z3,z7]; +z8=z7 shifted (small*left); +beta=0.5*(y6-y3); % dash size +z9=z7 shifted (beta*up); +z10=z8 shifted (beta*up); +draw z1--z2; % top +draw z3--z1; % stem +draw z5--z6; % short +draw z7--z9; draw z8--z10; % dashes +labels(1,2,3,4,5,6,8,9,10); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{wa} +% The sign \textit{wa}. Like |> <| with a |^| at the bottom. +% \begin{macrocode} +cmchar "Cypriot sign wa"; +beginglyph("w",0.8); +numeric beta; beta:=small; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % minmax points +x2=midloc-beta; x5=midloc+beta; y2=y5=h/2; +x8=midloc; y8=y5-beta; +z7-z8=whatever*(z1-z2); z9-z8=whatever*(z4-z5); y7=y9=0; +draw z1--z2--z3; % left angle +draw z4--z5--z6; % right angle +draw z7--z8--z9; % bottom angle +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{we} +% The sign \textit{we}. A capital I. +% \begin{macrocode} +cmchar "Cypriot sign we"; +beginglyph("W",0.4); +x1=x2=midloc; y1=0; y2=h; +x3=x4=leftloc; x5=x6=rightloc; +y3=y5=0; y4=y6=h; +draw z1--z2; % stem +draw z3--z5; draw z4--z6; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{wi} +% The sign \textit{wi}. Like |>`<|. +% \begin{macrocode} +cmchar "Cypriot sign wi"; +beginglyph("6",0.8); +numeric beta; beta:=small; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; % minmax points +x2=midloc-beta; x5=midloc+beta; y2=y5=h/2; +x8=midloc; y8=y5+beta; +%%z7-z8=whatever*(z1-z2); z9-z8=whatever*(z4-z5); y7=y9=0; +x9=x8; y9=h; +draw z1--z2--z3; % left angle +draw z4--z5--z6; % right angle +draw z8--z9; % top line +labels(0,1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{wo} +% The sign \textit{wo}. Like a left turn arrow. +% \begin{macrocode} +cmchar "Cypriot sign wo"; +beginglyph("7",0.6); +numeric rad; +x1=leftloc; x2=midloc; x3=rightloc; y1=y3=2/3h; y2=h; % head +x4=x1; x5=0.5[x4,x2]; y4=y5=0; % bottom points +rad:=(x2-x5); +x6=x2; y6=y5+rad; +draw z1--z2--z3; % arrow head +draw z4--z5..z6--z2; % stem +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{xa} +% The sign \textit{xa}. Like |)(|. +% \begin{macrocode} +cmchar "Cypriot sign xa"; +beginglyph("x",0.6); +numeric beta; beta:=small; +x0=midloc; y0=h/2; +x1=x3=leftloc; x4=x6=rightloc; y1=y4=0; y3=y6=h; +y2=y5=y0; x2=x1+beta; x5=x4-beta; +draw z1...z2{up}...z3; % left half +draw z4...z5{up}...z6; % right half +labels(0,1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{xe} +% The sign \textit{xe}. Like |(-!|. +% \begin{macrocode} +cmchar "Cypriot sign xe"; +beginglyph("X",0.6); +numeric beta; beta:=small; +x0=midloc; y0=h/2; +x2=leftloc; x1=x3=x2+beta; y1=0; y2=y0; y3=h; % the parenthesis +x4=x1+beta; y4=y5=y0; +x5=x6=x7=rightloc; y6=beta; y7=h-beta; +draw z1...z2{up}...z3; % the paren +draw z4--z5; draw z6--z7; % righr half +labels(0,1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{zo} +% The sign \textit{zo}. Two lightning flashes. +% \begin{macrocode} +cmchar "Cypriot sign zo"; +beginglyph("9",0.6); +%%beginglyph("P",0.3); +numeric beta; +beta:=0.25*(rightloc-leftloc); +xl=leftloc; xr=rightloc; +x0=0.25[xl,xr]; y0=h/2; % left flash +%%x0=midloc; y0=h/2; +x1=x0+beta; x4=x0-beta; y1=h; y4=0; % lightning top and bottom +x2=x0-beta; x3=x0+beta; % lightning middle points +y2=y0+0.5beta; y3=y0-0.5beta; +x0'=0.75[xl,xr]; y0'=y0; % right flash +x11=x0'+beta; x14=x0'-beta; y11=h; y14=0; % lightning top and bottom +x12=x0'-beta; x13=x0'+beta; % lightning middle points +y12=y0'+0.5beta; y13=y0'-0.5beta; +draw z1--z2--z3--z4; % left flash +draw z11--z12--z13--z14; % right flash +labels(0,0',1,2,3,4,11,12,13,14); endchar; + +% \end{macrocode} +% \end{routine} +% +% \subsubsection{The word divider} +% +% There is 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 "Cypriot 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 "Cypriot 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 "Cypriot 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} +% +% +% The end of this file +% \begin{macrocode} +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\ProvidesFile{ot1cypr.fd}[1999/06/20 v1.0 Cypriot font definitions] +\DeclareFontFamily{OT1}{cypr}{} + \DeclareFontShape{OT1}{cypr}{m}{n}{ <-> cypr10 }{} + \DeclareFontShape{OT1}{cypr}{bx}{n}{ <-> sub cypr/m/n }{} + \DeclareFontShape{OT1}{cypr}{b}{n}{ <-> sub cypr/m/n }{} + \DeclareFontShape{OT1}{cypr}{m}{sl}{ <-> sub cypr/m/n }{} + \DeclareFontShape{OT1}{cypr}{m}{it}{ <-> sub cypr/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\ProvidesFile{t1cypr.fd}[1999/06/20 v1.0 Cypriot font definitions] +\DeclareFontFamily{T1}{cypr}{} + \DeclareFontShape{T1}{cypr}{m}{n}{ <-> cypr10 }{} + \DeclareFontShape{T1}{cypr}{bx}{n}{ <-> sub cypr/m/n }{} + \DeclareFontShape{T1}{cypr}{b}{n}{ <-> sub cypr/m/n }{} + \DeclareFontShape{T1}{cypr}{m}{sl}{ <-> sub cypr/m/n }{} + \DeclareFontShape{T1}{cypr}{m}{it}{ <-> sub cypr/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{cypriot} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{cypriot}[1999/06/20 v1.0 package for Cypriot 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}{\cyprfamily} +% Selects the Cypriot font family in the T1 encoding if this +% is the document's default encoding, otherwise make it the OT1 encoding. +% \begin{macrocode} +\ifx\Tienc\encodingdefault + \newcommand{\cyprfamily}{\usefont{T1}{cypr}{m}{n}} +\else + \newcommand{\cyprfamily}{\usefont{OT1}{cypr}{m}{n}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textcypr} +% Text command for the Cypriot font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textcypr}{\cyprfamily} +% \end{macrocode} +% \end{macro} +% +% The commands for the basic signs. +% \begin{macro}{\Ca} +% \begin{macro}{\Ce} +% \begin{macro}{\Ci} +% \begin{macro}{\Co} +% \begin{macro}{\Cu} +% The 5 vowels. +% \begin{macrocode} +\chardef\Ca=`a +\chardef\Ce=`e +\chardef\Ci=`i +\chardef\Co=`o +\chardef\Cu=`u +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cga} +% The 1 G syllables. +% \begin{macrocode} +\chardef\Cga=`g +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Cja} +% \begin{macro}{\Cjo} +% The 2 J syllables. +% \begin{macrocode} +\chardef\Cja=`j +\chardef\Cjo=`b +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\Cka} +% \begin{macro}{\Cke} +% \begin{macro}{\Cki} +% \begin{macro}{\Cko} +% \begin{macro}{\Cku} +% The 5 K syllables. +% \begin{macrocode} +\chardef\Cka=`k +\chardef\Cke=`K +\chardef\Cki=`c +\chardef\Cko=`h +\chardef\Cku=`v +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cla} +% \begin{macro}{\Cle} +% \begin{macro}{\Cli} +% \begin{macro}{\Clo} +% \begin{macro}{\Clu} +% The 5 L syllables. +% \begin{macrocode} +\chardef\Cla=`l +\chardef\Cle=`L +\chardef\Cli=`d +\chardef\Clo=`f +\chardef\Clu=`q +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\Cma} +% \begin{macro}{\Cme} +% \begin{macro}{\Cmi} +% \begin{macro}{\Cmo} +% \begin{macro}{\Cmu} +% The 5 M syllables. +% \begin{macrocode} +\chardef\Cma=`m +\chardef\Cme=`M +\chardef\Cmi=`y +\chardef\Cmo=`A +\chardef\Cmu=`B +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\Cna} +% \begin{macro}{\Cne} +% \begin{macro}{\Cni} +% \begin{macro}{\Cno} +% \begin{macro}{\Cnu} +% The 5 N syllables. +% \begin{macrocode} +\chardef\Cna=`n +\chardef\Cne=`N +\chardef\Cni=`C +\chardef\Cno=`E +\chardef\Cnu=`F +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cpa} +% \begin{macro}{\Cpe} +% \begin{macro}{\Cpi} +% \begin{macro}{\Cpo} +% \begin{macro}{\Cpu} +% The 5 P syllables. +% \begin{macrocode} +\chardef\Cpa=`p +\chardef\Cpe=`P +\chardef\Cpi=`G +\chardef\Cpo=`H +\chardef\Cpu=`I +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\Cra} +% \begin{macro}{\Cre} +% \begin{macro}{\Cri} +% \begin{macro}{\Cro} +% \begin{macro}{\Cru} +% The 5 R syllables. +% \begin{macrocode} +\chardef\Cra=`r +\chardef\Cre=`R +\chardef\Cri=`O +\chardef\Cro=`U +\chardef\Cru=`V +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Csa} +% \begin{macro}{\Cse} +% \begin{macro}{\Csi} +% \begin{macro}{\Cso} +% \begin{macro}{\Csu} +% The 5 S syllables. +% \begin{macrocode}% +\chardef\Csa=`s +\chardef\Cse=`S +\chardef\Csi=`Y +\chardef\Cso=`1 +\chardef\Csu=`2 +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cta} +% \begin{macro}{\Cte} +% \begin{macro}{\Cti} +% \begin{macro}{\Cto} +% \begin{macro}{\Ctu} +% The 5 T syllables. +% \begin{macrocode} +\chardef\Cta=`t +\chardef\Cte=`T +\chardef\Cti=`3 +\chardef\Cto=`4 +\chardef\Ctu=`5 +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cwa} +% \begin{macro}{\Cwe} +% \begin{macro}{\Cwi} +% \begin{macro}{\Cwo} +% The 4 W syllables. +% \begin{macrocode} +\chardef\Cwa=`w +\chardef\Cwe=`W +\chardef\Cwi=`6 +\chardef\Cwo=`7 +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cxa} +% \begin{macro}{\Cxe} +% \begin{macro}{\Cxo} +% The 3 X syllables. +% \begin{macrocode} +\chardef\Cxa=`x +\chardef\Cxe=`X +\chardef\Cxo=`z +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Czo} +% The 1 Z syllables. +% \begin{macrocode} +\chardef\Czo=`9 +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Cza} +% \begin{macro}{\Cya} +% \begin{macro}{\Cya} +% The 3 arguable syllables. +% \begin{macrocode} +\chardef\Cza=`g +\chardef\Cya=`j +\chardef\Cyo=`b +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% +% \begin{macro}{\translitcyprfont} +% \begin{macro}{\translitcypr} +% |\translitcypr{|\meta{char-commands}|}| transliterates Cypriot character +% commands into distinguished syllables; these are typeset using the +% |\translitcyprfont| font specification. +% \begin{macrocode} +\newcommand{\translitcyprfont}{\itshape} +\newcommand{\translitcypr}[1]{{% + \@translitC\translitcyprfont #1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitC} +% This macro redefines all the character producing commands for use +% in |\translitcypr|. +% +% Start with the 5 vowels. We have to make sure that there are no extraneous +% spaces within the command. +% \begin{macrocode} +\newcommand{\@translitC}{% +\def\Ca{a-}\def\Ce{e-}\def\Ci{i-}\def\Co{o-}\def\Cu{u-}% +% \end{macrocode} +% +% The 1 G syllables. +% \begin{macrocode} +\def\Cga{ga-}% +% \end{macrocode} +% +% The 2 J syllables. +% \begin{macrocode} +\def\Cja{ja-}\def\Cjo{jo-}% +% \end{macrocode} +% +% The 5 K syllables. +% \begin{macrocode} +\def\Cka{ka-}\def\Cke{ke-}\def\Cki{ki-}\def\Cko{ko-}\def\Cku{ku-}% +% \end{macrocode} +% +% The 5 L syllables. +% \begin{macrocode} +\def\Cda{da-}\def\Cde{de-}\def\Cdi{di-}\def\Cdo{do-}\def\Cdu{du-}% +% \end{macrocode} +% +% The 5 M syllables. +% \begin{macrocode} +\def\Cma{ma-}\def\Cme{me-}\def\Cmi{mi-}\def\Cmo{mo-}\def\Cmu{mu-}% +% \end{macrocode} +% +% The 5 N syllables. +% \begin{macrocode} +\def\Cna{na-}\def\Cne{ne-}\def\Cni{ni-}\def\Cno{no-}\def\Cnu{nu-}% +% \end{macrocode} +% +% The 5 P syllables. +% \begin{macrocode} +\def\Cpa{pa-}\def\Cpe{pe-}\def\Cpi{pi-}\def\Cpo{po-}\def\Cpu{pu-}% +% \end{macrocode} +% +% +% The 5 R syllables. +% \begin{macrocode} +\def\Cra{ra-}\def\Cre{re-}\def\Cri{ri-}\def\Cro{ro-}\def\Cru{ru-}% +% \end{macrocode} +% +% The 5 S syllables. +% \begin{macrocode} +\def\Csa{sa-}\def\Cse{se-}\def\Csi{si-}\def\Cso{so-}\def\Csu{su-}% +% \end{macrocode} +% +% The 5 T syllables. +% \begin{macrocode} +\def\Cta{ta-}\def\Cte{te-}\def\Cti{ti-}\def\Cto{to-}\def\Ctu{tu-}% +% \end{macrocode} +% +% The 4 W syllables. +% \begin{macrocode} +\def\Cwa{wa-}\def\Cwe{we-}\def\Cwi{wi-}\def\Cwo{wo-}% +% \end{macrocode} +% +% The 3 X syllables. +% \begin{macrocode} +\def\Cxa{xa-}\def\Cxe{xe-}\def\Cxo{xo-}% +% \end{macrocode} +% +% The 1 Z syllables. +% \begin{macrocode} +\def\Czo{zo-}% +% \end{macrocode} +% +% The 3 arguable syllables +% \begin{macrocode} +\def\Cza{za-}\def\Cya{ya-}\def\Cyo{yo-}% +% \end{macrocode} +% +% Close the macro definition. +% \begin{macrocode} +} % end of \@translitC +% \end{macrocode} +% \end{macro} +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The map file} +% +% This is pretty short. +% \changes{v1.1}{2005/04/17}{Added the map file} +% \begin{macrocode} +%<*map> +cypr10 Archaic-Cypriot <cypr10.pfb +%</map> +% \end{macrocode} +% +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/cypriot.ins b/Master/texmf-dist/source/fonts/archaic/cypriot.ins new file mode 100644 index 00000000000..1cad77c4fb6 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/cypriot.ins @@ -0,0 +1,87 @@ +%% cypriot.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{cypriot.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{cypr10.mf}{t}{\from{cypriot.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1cypr.fd}{t}{\from{cypriot.dtx}{fdot1}} +\generateFile{t1cypr.fd}{t}{\from{cypriot.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{cypriot.sty}{t}{\from{cypriot.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{cypriot.map}{t}{\from{cypriot.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue with the installation move the following} +\Msg{* files into the LaTeX macro area:} +\Msg{* \space\space ot1cypr.fd} +\Msg{* \space\space t1cypr.fd} +\Msg{* \space\space cypriot.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/etruscan.dtx b/Master/texmf-dist/source/fonts/archaic/etruscan.dtx new file mode 100644 index 00000000000..56a4b08f69d --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/etruscan.dtx @@ -0,0 +1,1597 @@ +% \iffalse meta-comment +% +% etruscan.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{etruscan.dtx} +\end{document} +%</driver> +% +% +% \fi +% +% \CheckSum{329} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v2.0}{2000/10/01}{Changes to practically everything} +% \changes{v2.1}{2005/04/11}{Contact changes and additions for Postscript Type1} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v2.0} \def\filedate{2000/10/01} +% \def\fileversion{v2.1} \def\filedate{2005/04/11} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Etruscan} +% +% \title{The \Lpack{Etruscan} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{etruscan} bundle provides a set of fonts for the Etruscan +% script as used about the eighth century~\BC{} in Italy. +% \end{abstract} +% \tableofcontents +% +% +% \section{Introduction} +% +% The Etruscan alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. Scholars can read Etruscan writing, but they +% have little understanding of the language itself as, apart from proper names, +% the meanings of less than a score of words are known. The font presented here +% is one of a series showing the evolution of the modern Latin alphabet +% from its original Phoenician source to its modern 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{COMPANION}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and the package are 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 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. There 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{etruscan} package} \label{sec:usc} +% +% The Etruscan alphabet originally consisted of 26 letters but by about +% 450~\BC{} had decreased to only 20. +% The Etruscan font as provided here consists of 27 letters. The font is +% mainly based on an 8th C~\BC{} Etruscan abecedary in the Museo Archeologico, +% Florence, together with one character that looks like our digit 8 as shown +% by Richard Firmage~\cite{FIRMAGE93}. I also used information from the +% \textit{Encyclopedia Brittanica}. +% +% +% +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and the Greek and Phoenician +% (in parenthesis) +% names of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcll} \hline +% Value & Name & ASCII & Command & Command \\ \hline +% \textit{A} & +% alpha (aleph) & +% a & |\Aalpha| & +% |\ARalpha| +% \\ +% \textit{B} & +% beta (beth) & +% b & |\Abeta| & +% |\ARbeta| +% \\ +% \textit{G} & +% gamma (gimel) & +% g & |\Agamma| & +% |\Agamma| +% \\ +% \textit{D} & +% delta (daleth) & +% d & |\Adelta| & +% |\Adelta| +% \\ +% \textit{E} & +% epsilon (he) & +% e & |\Aepsilon| & +% |\ARepsilon| +% \\ +% \textit{F} & +% digamma (vav) & +% F & |\Adigamma| & +% |\ARdigamma| +% \\ +% \textit{Z} & +% zeta (zayin) & +% z & |\Azeta| & +% |\ARzeta| +% \\ +% \textit{H} & +% eta (heth) & +% h & |\Aeta| & +% |\AReta| +% \\ +% $\Theta$ & +% theta (teth) & +% T & |\Atheta| & +% |\ARtheta| +% \\ +% \textit{I} & +% iota (yod) & +% i & |\Aiota| & +% |\ARiota| +% \\ +% \textit{K} & +% kappa (kaph) & +% k & |\Akappa| & +% |\Akappa| +% \\ +% \textit{L} & +% lambda (lamed) & +% l & |\Alambda| & +% |\ARlambda| +% \\ +% \textit{M} & +% mu (mem) & +% m & |\Amu| & +% |\ARmu| +% \\ +% \textit{N} & +% nu (nun) & +% n & |\Anu| & +% |\ARnu| +% \\ +% $\Xi$ & +% xi (samekh) & +% x & |\Axi| & +% |\ARxi| +% \\ +% \textit{O} & +% omicron (ayin) & +% o & |\Aomicron| & +% |\ARomicron| +% \\ +% \textit{P} & +% pi (pe) & +% p & |\Api| & +% |\ARpi| +% \\ +% \textit{S} & +% (sade) & +% S & |\Aesade| & +% |\AResade| +% \\ +% \textit{Q} & +% (qoph) & +% q & |\Aqoph| & +% |\ARqoph| +% \\ +% \textit{R} & +% rho (resh) & +% r & |\Arho| & +% |\ARrho| +% \\ +% \textit{S} & +% sigma (shin) & +% S & |\Asigma| & +% |\ARsigma| +% \\ +% \textit{T} & +% tau (tav) & +% t & |\Atau| & +% |\ARtau| +% \\ +% \textit{Y} & +% upsilon (vav) & +% y & |\Aupsilon| & +% |\ARupsilon| +% \\ +% \textit{X} & +% chi & +% X & |\Achi| & +% |\ARchi| +% \\ +% $\Phi$ & +% phi & +% f & |\Aphi| & +% |\ARphi| +% \\ +% $\Psi$ & +% psi & +% P & |\Apsi| & +% |\ARpsi| +% \\ +% \textit{F} & +% (vav?) & +% v & |\Avau| & +% |\ARvau| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% \DescribeMacro{\etrfamily} +% This command selects the Etruscan font family. The family name is |etr|. +% +% \DescribeMacro{\textetr} +% The command |\textetr{|\meta{text}|}| typesets \meta{text} in the +% Etruscan font. +% +% I have provided two ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, and +% (b) by commands whose names are based on the (Greek or Phoenician) +% name of the +% character. +% These are shown in Table~\ref{tab}. The commands of the form |\ARxxx| +% access the glyph forms for writing right-to-left, while the forms +% for writing left-to-right are accessed by either the ASCII characters +% or the |\Axxx| commands. +% +% \DescribeMacro{\translitetr} +% |\translitetr{|\meta{commands}|}| will typeset a transliterated +% version of the character \meta{commands} (those in the last two columns +% of Table~\ref{tab}). A mixture of Latin and Greek uppercase characters +% are used for the transliteration. +% +% \DescribeMacro{\translitetrfont} +% The font used for the transliteration is defined by this macro, +% which is initialised as an upright form (i.e., |\mathrm|). +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[MG04]{COMPANION} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% ETR10.MF Computer Etruscan font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="etruscan"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.7pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font the driver file would noramally be called for here. +% In this case I have embedded it. +% +% +% +% \subsection{The driver file} +% +% If there was a driver file, this would be its contents. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +font_coding_scheme:="Etruscan glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.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} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% The end of the driver code, except for calling the glyph code. +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Etruscan font. The characters +% are defined in the Etruscan alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{a} +% The letter A. Much like our modern A, and symmetrical. It corresponds to the +% Phoenician \textit{alpeh} and the Greek \textit{alpha} ($A$). +% \begin{macrocode} + +cmchar "Etruscan letter A (a)"; +beginglyph("a",0.6); +x1=leftloc; x3=rightloc; % base points +bot y1 = bot y3 = -o; +x2 = midloc; top y2 = h; % apex +% draw the legs +draw z1--z2--z3; +z4 = 0.4[z1, z2]; z5 = 0.4[z3,z2]; +% draw the bar +draw z4--z5; +labels(1,2,3,4,5); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The letter B, which is similar to our modern B, and is asymmetric. +% It corresponds to the Phoenician \textit{beth} and the Greek \textit{beta} ($B$) +% \begin{macrocode} + +cmchar "Etruscan letter B (b)"; +beginglyph("b",0.6); +x1=x3=x5=leftloc; +x2=x4=rightloc; +bot y1=-o; top y5=h; +y2=1/4h; y3=1/2h; y4=3/4h; +draw z1--z5; % the upright +draw z1{right}..z2..z3{left}; % lower bowl +draw z3{right}..z4..z5{left}; % upper bowl +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The letter G. This corresponds to the Phoenician \textit{gimel} and the Greek +% \textit{gamma} ($\Gamma$). +% \begin{macrocode} + +cmchar "Etruscan letter G (g)"; +beginglyph("g", 0.6); +x1=rightloc; +x2=leftloc; +x3=0.1[x2,x1]; +bot y3=-o; y2=h; +y1=0.8h; +draw z1...z2{left}--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The letter D. Our modern D is recognisably present. +% It corresponds to the Phoenician \textit{daleth} and the Greek \textit{delta} ($\Delta$). +% \begin{macrocode} + +cmchar "Etruscan letter D (d)"; +beginglyph("d",0.6); +x1=x3=leftloc; +x2=rightloc; +bot y1=-o; y3=h; +y2=1/2h; +draw z1--z3; % the upright +draw z1..z2..z3; % bowl +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{e} +% The letter E. +% It corresponds to the Phoenician \textit{he} and the Greek \textit{epsilon} ($E$). +% \begin{macrocode} + +cmchar "Etruscan letter E (e)"; +beginglyph("e",0.6); +numeric alpha; +alpha:=0.1; +x4=x5=x6=x7=leftloc; +x1=x2=x3=rightloc; +bot y4=-o; y7=h; +y6=.7h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z1--z5; draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{F} +% The letter F. This is like a 2-armed E. +% It corresponds to the Phoenician \textit{vau}. +% \begin{macrocode} + +cmchar "Etruscan letter F (F)"; +beginglyph("F",0.6); +numeric alpha; +alpha:=0.1; +x4=x5=x6=x7=leftloc; +x1=x2=x3=rightloc; +bot y4=-o; y7=h; +y6=.6h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The letter Z. This looks like our uppercase letter I. +% It corresponds to the Phoenician \textit{zayin} and the Greek \textit{zeta} ($Z$). +% \begin{macrocode} + +cmchar "Etruscan letter Z (z)"; +beginglyph("z",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; % the upright +x3=x5=leftloc; x4=x6=rightloc; +y3=y4=y1; y5=y6=y2; +draw z3--z4; % lower bar +draw z5--z6; % upper bar +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% +% \begin{macro}{H} +% The letter H. It looks like a rectangle with two horizontal internal bars. +% It corresponds to the Phoenician \textit{heth} and the Greek \textit{eta} ($H$). +% \begin{macrocode} + +cmchar "Etruscan letter H (h)"; +beginglyph("h", 0.6); +numeric alpha; +alpha:=0.1; +x4=x6=leftloc; +x1=x3=rightloc; +bot y1=-o; top y6=h; +y3=y6-alpha*h; y4=y1+alpha*h; +z2=0.35[z1,z3]; z5=0.35[z4,z6]; % ends of one bar +z7=0.65[z1,z3]; z8=0.65[z4,z6]; % other bar +draw z1--z3--z6--z4--cycle; % outer boundary +draw z2--z5; draw z7--z8; % the bars + +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% It corresponds to the Phoenician \textit{teth} and the Greek \textit{theta} ($\Theta$). +% \begin{macrocode} + +cmchar "Etruscan letter Theta (T)"; +beginglyph("T",1.0); +path p; +x1=leftloc; +x3=rightloc; +y2=h; +y4=0; +x2=x4=midloc; +y1=y3=h/2; +z100=(x2,y3); % circle center +p = z1..z2..z3..z4..cycle; +z11= (z100--(leftloc,h)) intersectionpoint p; +z12= (z100--(rightloc,h)) intersectionpoint p; +z13= (z100--(rightloc,0)) intersectionpoint p; +z14= (z100--(leftloc,0)) intersectionpoint p; +draw p; +draw z11--z13; draw z12--z14; % the cross +labels(1,2,3,4,11,12,13,14); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{i} +% The letter I. +% It corresponds to the Phoenician \textit{yod}and the Greek \textit{iota} ($I$). +% \begin{macrocode} + +cmchar "Etruscan letter I (i)"; +beginglyph("i",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The letter K. +% It corresponds to the Phoenician \textit{kaph} and the Greek \textit{kappa} ($K$). +% \begin{macrocode} + +cmchar "Etruscan letter K (k)"; +beginglyph("k",0.6); +numeric alpha; +alpha:=0.1; +x1=rightloc; +x2=x1+alpha*(w-s); +x3=x4=x5=leftloc; +bot y1= bot y3=-o; +y2=y5=h; y4=1/2h; +draw z3--z5; % the upright +draw z1--z4; draw z4--z2; % the arms +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The letter L. +% It corresponds to the Phoenician \textit{lamed} and the Greek \textit{lambda} ($\Lambda$). +% \begin{macrocode} + +cmchar "Etruscan letter L (l)"; +beginglyph("l",0.4); +x2=x3=leftloc; +x1=rightloc; +bot y2=-o; +y1=.3h; +y3=h; +draw z2--z3; % the upright +draw z2--z1; % the arms +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The letter M. +% It corresponds to the Phoenician \textit{mem} and the Greek \textit{mu} ($M$). +% \begin{macrocode} + +cmchar"Etruscan letter M (m)"; +beginglyph("m",1.0); +x1=rightloc; +x5=x6=leftloc; +x2=3/4[x5,x1]; x3=1/2[x5,x1]; x4=1/4[x5,x1]; +bot y6= -o; +top y5= top y3 = h; +top y1=.8h; +y2=.6h; +y4=.7h; +draw z6--z5; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The letter N. +% It corresponds to the Phoenician \textit{nun} and the Greek \textit{nu} ($N$). +% \begin{macrocode} + +cmchar "Etruscan letter N (n)"; +beginglyph("n",0.6); +x1=rightloc; +x3=midloc; x2=x4=leftloc; +bot y2=-o; +top y1= top y4= h; +y3=.7h; +draw z2--z4; +draw z1--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{x} +% The letter corresponding to the Greek \textit{xi} ($\Xi$). It looks like a `boxed' +% version of the modern H. +% It corresponds to the Phoenician \textit{samekh}. +% \begin{macrocode} + +cmchar "Etruscan letter Xi (x)"; +beginglyph("x", 0.6); +numeric alpha; +alpha:=0.1; +x4=x6=leftloc; +x1=x3=rightloc; +bot y1=-o; top y6=h; +y3=y6-alpha*h; y4=y1+alpha*h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; +draw z1--z3--z6--z4--cycle; % outer boundary +draw z2--z5; % bar +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The letter O. +% It corresponds to the Phoenician \textit{ayen} and the Greek \textit{omicron} ($O$). +% \begin{macrocode} + +cmchar "Etruscan letter O (o)"; +beginglyph("o",1.0); +x1=leftloc; x3=rightloc; +y2=h; y4=0; +x2=x4=midloc; +y1=y3=h/2; +draw z1..z2..z3..z4..cycle; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The letter P. +% It corresponds to the Phoenician \textit{pe} and the Greek \textit{pi} ($\Pi$). +% \begin{macrocode} + +cmchar "Etruscan letter P (p)"; +beginglyph("p", 0.4); +x1=rightloc; x2=x3=leftloc; +bot y3=-o; y2=h; +y1=0.8h; +draw z1..z2{left}--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{S} +% The Etruscans had a letter that looks like a modern M, and in the same +% position as the Phoenician \textit{tsade}. +% \begin{macrocode} + +cmchar "Etruscan lookalike M letter (tsade, S)"; +beginglyph("S",0.8); +x1=x2=leftloc; +x4=x5=rightloc; +x3=midloc; +top y2= top y5= h; +bot y1=bot y4= -o; +y3=.7h; +draw z1--z2--z3--z5--z4; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{q} +% The letter Q. +% It corresponds to the Phoenician \textit{qoph}. +% \begin{macrocode} + +cmchar "Etruscan letter Q (q)"; +beginglyph("q",0.6); +numeric alpha; +x1=leftloc; +x3=rightloc; +alpha=0.5(x3-x1); % circle radius +y2=h; +y4=y2-2alpha; +bot y5=-o; +x2=x4=x5=midloc; +y1=y3=h-alpha; +draw z1..z2..z3..z4..cycle; % the circle +draw z5--z4; % the upright +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The letter R. It looks somewhat like a 4. +% It corresponds to the Phoenician \textit{resh} and the Greek \textit{rho} ($R$). +% \begin{macrocode} + +cmchar "Etruscan letter R (r)"; +beginglyph("r", 0.4); +x1=x2=x3=leftloc; x4=rightloc; +bot y1=-o; top y2=h; +y3=y4=0.5h; +draw z1--z2--z4--z3; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{s} +% The letter S. +% It corresponds to the Phoenician \textit{shin} and the Greek \textit{sigma} ($\Sigma$). +% \begin{macrocode} + +cmchar "Etruscan letter S (s)"; +beginglyph("s", 0.4); +x1=x2=rightloc; x3=x4=leftloc; x5=midloc; +bot y1=-o; top y5=h; +y2=y3=0.4h; y4=0.8h; +draw z1--z3--z2--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The letter T. +% It corresponds to the Phoenician \textit{tav} and the Greek \textit{tau} ($T$). +% \begin{macrocode} + +cmchar "Etruscan letter T (t)"; +beginglyph("t", 0.6); +x1=rightloc; x4=leftloc; +bot y2=-o; top y4=h; +y1=.9h; +z3=0.5[z1,z4]; +x2=x3; +draw z2--z3; % the stem +draw z1--z4; % the bar +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The letter Y/U. This comes from the Greek \textit{upsilon} ($\Upsilon$) +% and the Phoenician \textit{vau}. +% \begin{macrocode} + +cmchar "Etruscan letter Y/U (y)"; +beginglyph("y", 0.6); +x1=rightloc; x4=leftloc; +bot y2=-o; y1=0.9h; +top y4=h; +x2=x3=0.6[x4,x1]; +y3=.6h; +draw z2--z3; % the stem +draw z1--z3--z4; % the V +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{X} +% The letter corresponding to the Greek \textit{chi} ($X$). +% \begin{macrocode} + +cmchar "Etruscan letter X"; +beginglyph("X", 0.6); +x1=x2=leftloc; x3=x4=rightloc; +bot y1= bot y3=-o; top y2= top y4=h; +draw z1--z4; draw z2--z3; +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{f} +% The Etruscan version of the Greek \textit{phi} ($\Phi$). +% \begin{macrocode} + +cmchar "Etruscan letter Phi (f)"; +beginglyph("f",0.6); +numeric alpha; +x1=leftloc; +x3=rightloc; +alpha=0.5(x3-x1); % circle radius +y2=h; +y4=y2-2alpha; +bot y5=-o; +x2=x4=x5=midloc; +y1=y3=h-alpha; +draw z1..z2..z3..z4..cycle; % the circle +draw z5--z2; % the upright +labels(1,2,3,4,5); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{P} +% The Etruscans had the Greek \textit{psi} ($\Psi$) letter. +% \begin{macrocode} + +cmchar "Etruscan letter Psi (P)"; +beginglyph("P", 0.6); +x1=leftloc; x3=rightloc; +x2=x4=midloc; +bot y2=-o; top y4=h; y1=y3=y4; +z5=0.5[z2,z4]; +draw z2--z4; % the stem +draw z1--z5--z3; % the arms +labels(1,2,3,4,5); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{v} +% The Etruscans used a character that looks like the digit 8 for an +% `f' sound. +% \begin{macrocode} + +cmchar "Etruscan letter 8 lookalike (v)"; +beginglyph("v", 0.6); +x2=x6=leftloc; +x4=x7=rightloc; +x1=x3=x5=midloc; +bot y1=-o; top y5=h; y3=0.5h; +y2=y7=0.25h; +y6=y4=0.75h; +draw z1..z2..z3..z4..z5..z6..z3..z7..cycle; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% The following characters are for the normal Etruscan writing mode +% of right to left. The characters are mirror images of the ASCII uppercase +% counterparts. Symmetric characters that are called by \LaTeX{} commands +% need not be coded. +% +% +% \begin{macro}{B} +% The letter B, which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R B (B)"; +beginglyph("B",0.6); +x2=x4=leftloc; x1=x3=x5=rightloc; +bot y1=-o; top y5=h; +y2=1/4h; y3=1/2h; y4=3/4h; +draw z1--z5; % the upright +draw z1{left}..z2..z3{right}; % lower bowl +draw z3{left}..z4..z5{right}; % upper bowl +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The letter G which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R G (G)"; +beginglyph("G", 0.6); +x1=leftloc; x2=rightloc; x3=0.9rightloc; +bot y3=-o; y2=h; +y1=0.8h; +draw z1...z2{right}--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{D} +% The letter D which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R D (D)"; +beginglyph("D",0.6); +x2=leftloc; x1=x3=rightloc; +bot y1=-o; y3=h; +y2=1/2h; +draw z1--z3; % the upright +draw z1..z2..z3; % bowl +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{E} +% The letter E which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R E (E)"; +beginglyph("E",0.6); +numeric alpha; +alpha:=0.1; +x1=x2=x3=leftloc; x4=x5=x6=x7=rightloc; +bot y4=-o; y7=h; +y6=.7h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z1--z5; draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{U} +% The letter F which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R F (U)"; +beginglyph("U",0.6); +numeric alpha; +alpha:=0.1; +x1=x2=x3=leftloc; x4=x5=x6=x7=rightloc; +bot y4=-o; y7=h; +y6=.6h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{H} +% The letter H which is asymmetrical. +% \changes{v2.1}{2005/04/11}{Changed H glyph} +% \begin{macrocode} + +cmchar "Etruscan letter L-R H (H)"; +beginglyph("H", 0.6); +numeric alpha; +alpha:=0.1; +%%%% x4=x6=leftloc; x1=x3=rightloc; +x4=x6=rightloc; x1=x3=leftloc; +bot y1=-o; top y6=h; +y3=y6-alpha*h; y4=y1+alpha*h; +z2=0.35[z1,z3]; z5=0.35[z4,z6]; % ends of one bar +z7=0.65[z1,z3]; z8=0.65[z4,z6]; % other bar +draw z1--z3--z6--z4--cycle; % outer boundary +draw z2--z5; draw z7--z8; % the bars +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{C} +% The letter x which is asymmetrical. +% \changes{v2.1}{2005/04./11}{Added C glyph} +% \begin{macrocode} + +cmchar "Etruscan letter L-R x (C)"; +beginglyph("C", 0.6); +numeric alpha; +alpha:=0.1; +%%%%x1=x3=rightloc; x4=x6=leftloc; +x1=x3=leftloc; x4=x6=rightloc; +bot y1=-o; top y6=h; +y3=y6-alpha*h; y4=y1+alpha*h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; +draw z1--z3--z6--z4--cycle; % outer boundary +draw z2--z5; % bar +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{K} +% The letter K which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R K (K)"; +beginglyph("K",0.6); +numeric alpha; +alpha:=0.1; +x1=leftloc; x2=x1+alpha*(w-s); x3=x4=x5=rightloc; +bot y1= bot y3=-o; +y2=y5=h; y4=1/2h; +draw z3--z5; % the upright +draw z1--z4; draw z4--z2; % the arms +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{L} +% The letter L which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R L (L)"; +beginglyph("L",0.4); +x1=leftloc; x2=x3=rightloc; +bot y2=-o; +y1=.3h; +y3=h; +draw z2--z3; % the upright +draw z2--z1; % the arms +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{M} +% The letter M which is asymmetrical. +% \begin{macrocode} + +cmchar"Etruscan letter L-R M (M)"; +beginglyph("M",1.0); +x1=leftloc; +x5=x6=rightloc; +x2=1/4[x1,x5]; x3=1/2[x1,x5]; x4=3/4[x1,x5]; +bot y6= -o; +top y5= top y3 = h; +top y1=.8h; +y2=.6h; +y4=.7h; +draw z6--z5; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{N} +% The letter N which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R N (N)"; +beginglyph("N",0.6); +x1=leftloc; +x3=midloc; x2=x4=rightloc; +bot y2=-o; +top y1= top y4= h; +y3=.7h; +draw z2--z4; +draw z1--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{Q} +% The letter P which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R P (Q)"; +beginglyph("Q", 0.4); +x1=leftloc; x2=x3=rightloc; +bot y3=-o; y2=h; +y1=0.8h; +draw z1..z2{right}--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{R} +% The letter R which is asymmetrical. +% \begin{macrocode} +cmchar "Etruscan letter L-R R (R)"; +beginglyph("R", 0.4); +x1=x2=x3=rightloc; x4=leftloc; +bot y1=-o; top y2=h; +y3=y4=0.5h; +draw z1--z2--z4--z3; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Z} +% The letter S which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R S (Z)"; +beginglyph("Z", 0.4); +x1=x2=leftloc; x3=x4=rightloc; x5=midloc; +bot y1=-o; top y5=h; +y2=y3=0.4h; y4=0.8h; +draw z1--z3--z2--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{J} +% The letter T which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R T (J)"; +beginglyph("J", 0.6); +x1=leftloc; x4=rightloc; +bot y2=-o; top y4=h; +y1=.9h; +z3=0.5[z1,z4]; +x2=x3; +draw z2--z3; % the stem +draw z1--z4; % the bar +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Y} +% The letter Y/U which is asymmetrical. +% \begin{macrocode} + +cmchar "Etruscan letter L-R U (Y)"; +beginglyph("Y", 0.6); +x1=leftloc; x4=rightloc; +bot y2=-o; top y4=h; +y1=.9h; +x2=x3=0.4(w-s); +y3=.6h; +draw z2--z3; % the stem +draw z1--z3--z4; % the V +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% The end of the glyph code, and the file. +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{etr}{} + \DeclareFontShape{OT1}{etr}{m}{n}{ <-> etr10 }{} + \DeclareFontShape{OT1}{etr}{bx}{n}{ <-> sub etr/m/n }{} + \DeclareFontShape{OT1}{etr}{b}{n}{ <-> sub etr/m/n }{} + \DeclareFontShape{OT1}{etr}{m}{sl}{ <-> sub etr/m/n }{} + \DeclareFontShape{OT1}{etr}{m}{it}{ <-> sub etr/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{etr}{} + \DeclareFontShape{T1}{etr}{m}{n}{ <-> etr10 }{} + \DeclareFontShape{T1}{etr}{bx}{n}{ <-> sub etr/m/n }{} + \DeclareFontShape{T1}{etr}{b}{n}{ <-> sub etr/m/n }{} + \DeclareFontShape{T1}{etr}{m}{sl}{ <-> sub etr/m/n }{} + \DeclareFontShape{T1}{etr}{m}{it}{ <-> sub etr/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{etruscan} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{etruscan}[2000/10/01 v2.0 package for Etruscan fonts] +% \end{macrocode} +% +% +% \begin{macro}{\etrfamily} +% Selects the Etruscan font family in the T1 encoding. +% \begin{macrocode} +\newcommand{\etrfamily}{\usefont{T1}{etr}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textetr} +% Text command for the Etruscan font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textetr}{\etrfamily} +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% +% \begin{macrocode} + +\chardef\Aalpha=`a +\chardef\Abeta=`b +\chardef\Agamma=`g +\chardef\Adelta=`d +\chardef\Aepsilon=`e +\chardef\Adigamma=`F +\chardef\Azeta=`z +\chardef\Aeta=`h +\chardef\Atheta=`T +\chardef\Aiota=`i +\chardef\Akappa=`k +\chardef\Alambda=`l +\chardef\Amu=`m +\chardef\Anu=`n +\chardef\Axi=`x +\chardef\Aomicron=`o +\chardef\Api=`p +\chardef\Aesade=`S +\chardef\Aqoph=`q +\chardef\Arho=`r +\chardef\Asigma=`s +\chardef\Atau=`t +\chardef\Aupsilon=`y +\chardef\Achi=`X +\chardef\Aphi=`f +\chardef\Apsi=`P +\chardef\Avau=`v + +\chardef\ARalpha=`a +\chardef\ARbeta=`B +\chardef\ARgamma=`G +\chardef\ARdelta=`D +\chardef\ARepsilon=`E +\chardef\ARdigamma=`U +\chardef\ARzeta=`z +\chardef\AReta=`H +\chardef\ARtheta=`T +\chardef\ARiota=`i +\chardef\ARkappa=`K +\chardef\ARlambda=`L +\chardef\ARmu=`M +\chardef\ARnu=`N +%%%%\chardef\ARxi=`x +\chardef\ARxi=`C +\chardef\ARomicron=`o +\chardef\ARpi=`Q +\chardef\AResade=`S +\chardef\ARqoph=`q +\chardef\ARrho=`R +\chardef\ARsigma=`Z +\chardef\ARtau=`J +\chardef\ARupsilon=`y +\chardef\ARchi=`X +\chardef\ARphi=`f +\chardef\ARpsi=`P +\chardef\ARvau=`v + +% \end{macrocode} +% +% \begin{macro}{\translitetr} +% \begin{macro}{\translitetrfont} +% |\translitetr{|\meta{commands}|}| transliterates \meta{commands} using +% the |\translitetrfont| font. +% \begin{macrocode} +\newcommand{\translitetr}[1]{{% + \@translitETR #1}} +\newcommand{\translitetrfont}{\mathrm} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitETR} +% This macro redefines all character commands to produce the transliterated +% version instead of the glyphs. There must be no spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitETR}{% +\def\Aalpha{\ensuremath{\translitetrfont{A}}}\def\ARalpha{\Aalpha}% +\def\Abeta{\ensuremath{\translitetrfont{B}}}\def\ARbeta{\Abeta}% +\def\Agamma{\ensuremath{\translitetrfont{G}}}\def\ARgamma{\Agamma}% +\def\Adelta{\ensuremath{\translitetrfont{D}}}\def\ARdelta{\Adelta}% +\def\Aepsilon{\ensuremath{\translitetrfont{E}}}\def\ARepsilon{\Aepsilon}% +\def\Aupsilon{\ensuremath{\translitetrfont{Y}}}\def\ARupsilon{\Aupsilon}% +\def\Adigamma{\ensuremath{\translitetrfont{F}}}\def\ARdigamma{\Adigamma}% +\def\Azeta{\ensuremath{\translitetrfont{Z}}}\def\ARzeta{\Azeta}% +\def\Aeta{\ensuremath{\translitetrfont{H}}}\def\AReta{\Aeta}% +\def\Atheta{\ensuremath{\translitetrfont{\Theta}}}\def\ARtheta{\Atheta}% +\def\Aiota{\ensuremath{\translitetrfont{I}}}\def\ARiota{\Aiota}% +\def\Akappa{\ensuremath{\translitetrfont{K}}}\def\ARkappa{\Akappa}% +\def\Alambda{\ensuremath{\translitetrfont{L}}}\def\ARlambda{\Alambda}% +\def\Amu{\ensuremath{\translitetrfont{M}}}\def\ARmu{\Amu}% +\def\Anu{\ensuremath{\translitetrfont{N}}}\def\ARnu{\Anu}% +\def\Axi{\ensuremath{\translitetrfont{\Xi}}}\def\ARxi{\Axi}% +\def\Aomicron{\ensuremath{\translitetrfont{O}}}\def\ARomicron{\Aomicron}% +\def\Api{\ensuremath{\translitetrfont{P}}}\def\ARpi{\Api}% +\def\Aesade{\ensuremath{\translitetrfont{S}}}\def\AResade{\Aesade}% +\def\Aqoph{\ensuremath{\translitetrfont{Q}}}\def\ARqoph{\Aqoph}% +\def\Arho{\ensuremath{\translitetrfont{R}}}\def\ARrho{\Arho}% +\def\Asigma{\ensuremath{\translitetrfont{S}}}\def\ARsigma{\Asigma}% +\def\Atau{\ensuremath{\translitetrfont{T}}}\def\ARtau{\Atau}% +\def\Achi{\ensuremath{\translitetrfont{X}}}\def\ARchi{\Achi}% +\def\Aphi{\ensuremath{\translitetrfont{\Phi}}}\def\ARphi{\Aphi}% +\def\Apsi{\ensuremath{\translitetrfont{\Psi}}}\def\ARpsi{\Apsi}% +\def\Avau{\ensuremath{\translitetrfont{F}}}\def\ARvau{\Avau}% +} + +% \end{macrocode} +% \end{macro} +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/etruscan.ins b/Master/texmf-dist/source/fonts/archaic/etruscan.ins new file mode 100644 index 00000000000..3c5560e2b0b --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/etruscan.ins @@ -0,0 +1,89 @@ +%% etruscan.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{etruscan.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + + +\keepsilent + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{etr10.mf}{t}{\from{etruscan.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1etr.fd}{t}{\from{etruscan.dtx}{fdot1}} +\generateFile{t1etr.fd}{t}{\from{etruscan.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{etruscan.sty}{t}{\from{etruscan.dtx}{usc}} + +\Msg{*** Generating the Type1 map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{etruscan.map}{t}{\from{etruscan.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue the installation you have to move the following} +\Msg{* files into the LaTeX macro area:} +\Msg{*} +\Msg{* \space\space ot1etr.fd} +\Msg{* \space\space t1etr.fd} +\Msg{* \space\space etruscan.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/greek4cbc.dtx b/Master/texmf-dist/source/fonts/archaic/greek4cbc.dtx new file mode 100644 index 00000000000..a114acdc29c --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/greek4cbc.dtx @@ -0,0 +1,2095 @@ +% \iffalse meta-comment +% +% greeg4cbc.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{greek4cbc.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{305} +% +% \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/04/10}{First public release} +% \changes{v1.1}{2000/10/22}{Simplified and matched with other archaics} +% \changes{v1.2}{2005/04/06}{Changed contact info, plus Type1 support} +% +% \def\fileversion{v1.0} \def\filedate{1999/04/10} +% \def\fileversion{v1.1} \def\filedate{2000/10/22} +% \def\fileversion{v1.2} \def\filedate{2005/04/06} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Greek} +% +% +% \makeatletter +% \newif\if@inenv +% \@inenvtrue +% +% \def\makeuscoreletter{\catcode`\_11\relax} +% \def\makehashletter{\catcode`\#11\relax} +% \def\MakeMfpPrivateLetters{\makeuscoreletter\makehashletter} +% +% \def\environment{\@inenvtrue\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ \iffalse} +% +% \def\mfpmacro{\@inenvfalse\begingroup +% \catcode`\\12 +% \MakeMfpPrivateLetters \m@cro@ \iffalse} +% +% \let\endmfpmacro\endmacro +% +% \def\SpecialMainEnvIndex#1{^^A +% \if@inenv^^A +% \@bsphack\special@index{^^A +% #1\actualchar +% {\string\ttfamily\space#1} +% (environment)^^A +% \encapchar main}^^A +% \index{environments:\levelchar{\protect\ttfamily#1}\encapchar +% main}\@esphack^^A +% \else^^A +% \@bsphack\special@index{^^A +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \space(mfp macro)^^A +% \encapchar main}^^A +% \index{mfp macros:\levelchar +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \encapchar usage}\@esphack^^A +% \fi} +% +% \def\DescribeMfpMacro{\leavevmode\@bsphack\begingroup\MakeMfpPrivateLetters +% \Describe@Mfpm} +% \def\Describe@Mfpm#1{\endgroup +% \marginpar{\raggedleft\PrintDescribeEnv{#1}}^^A +% \SpecialMfpmIndex{#1}\@esphack\ignorespaces} +% +% \def\SpecialMfpmIndex#1{^^A +% \@bsphack +% \index{\string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \space(mfp macro) +% \encapchar usage}^^A +% \index{mfp macros:\levelchar +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \encapchar usage}^^A +% \@esphack} +% +% \def\DescribeMfpVariable{\leavevmode\@bsphack\begingroup\MakeMfpPrivateLetters +% \Describe@Mfpv} +% \def\Describe@Mfpv#1{\endgroup +% \marginpar{\raggedleft\PrintDescribeEnv{#1}}^^A +% \SpecialMfpvIndex{#1}\@esphack\ignorespaces} +% +% \def\SpecialMfpvIndex#1{^^A +% \@bsphack +% \index{\string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \space(mfp variable)\encapchar usage}^^A +% \index{mfp variables:\levelchar +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \encapchar usage}^^A +% \@esphack} +% +% \makeatother +% +% \title{The \Lpack{Greek4cbc} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{greek4cbc} bundle provides a set of uppercase Greek +% characters as +% shown on a 394~\BC{} stele in Athens. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% The font presented here is meant to be typical of the Greek characters +% in use about the 4th century~\BC. It is one of a series of fonts intended +% 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 may be 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{greek4cbc} package} \label{sec:usc} +% +% In the 6th century~\BC{} the Greek alphabet was settling down, but +% there were several different glyphs used for the characters depending +% both on the date and on the geographical area. The alphabet retained +% the Phoenician F form of \textit{vau}, which the Greeks called +% \textit{digamma}, and also used the Phoenician \textit{qoph} (from +% which we get our Q). It had added the $\Psi$, $\Phi$, and $\Omega$ +% characters. Thus, the abecedary consisted of 26 characters compared +% with the 24 characters for modern Greek. +% +% In 403~\BC{} the Athenian Greeks came to an agreement on a standard +% abecedary and set of glyphs. The font provided by this package comes +% from an inscription on a stele in Athens dated 394~\BC, so I have +% assumed that it is reasonable rendition of the 403 `standard'. I have +% taken the glyphs from Lewis Day's compendium~\cite{DAY95}. The abecedary +% is the modern one of 24 characters. +% +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and the +% modern and Phoenician names (in parentheses) of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcll} \hline +% Value & Name & ASCII & Command & Command \\ \hline +% $A$ & +% alpha (aleph) & +% a & |\Aalpha| & +% |\ARalpha| +% \\ +% $B$ & +% beta (beth) & +% b & |\Abeta| & +% |\ARbeta| +% \\ +% $\Gamma$ & +% gamma (gimel) & +% g & |\Agamma| & +% |\ARgamma| +% \\ +% $\Delta$ & +% delta (daleth) & +% d & |\Adelta| & +% |\ARdelta| +% \\ +% $E$ & +% epsilon (he) & +% e & |\Aepsilon| & +% |\ARepsilon| +% \\ +% $Z$ & +% zeta (zayin) & +% z & |\Azeta| & +% |\ARzeta| +% \\ +% $H$ & +% eta (heth) & +% h & |\Aeta| & +% |\AReta| +% \\ +% $\Theta$ & +% theta (teth) & +% T & |\Atheta| & +% |\ARtheta| +% \\ +% $I$ & +% iota (yod) & +% i & |\Aiota| & +% |\ARiota| +% \\ +% $K$ & +% kappa (kaph) & +% k & |\Akappa| & +% |\ARkappa| +% \\ +% $\Lambda$ & +% lambda (lamed) & +% l & |\Alambda| & +% |\ARlambda| +% \\ +% $M$ & +% mu (mem) & +% m & |\Amu| & +% |\ARmu| +% \\ +% $N$ & +% nu (nun) & +% n & |\Anu| & +% |\ARnu| +% \\ +% $\Xi$ & +% xi (samekh) & +% x & |\Axi| & +% |\ARxi| +% \\ +% $O$ & +% omicron (ayin) & +% o & |\Aomicron| & +% |\ARomicron| +% \\ +% $\Pi$ & +% pi (pe) & +% p & |\Api| & +% |\ARpi| +% \\ +% $R$ & +% rho (resh) & +% r & |\Arho| & +% |\ARrho| +% \\ +% $\Sigma$ & +% sigma (shin) & +% s & |\Asigma| & +% |\ARsigma| +% \\ +% $T$ & +% tau (tav) & +% t & |\Atau| & +% |\ARtau| +% \\ +% $\Upsilon$ & +% upsilon & +% y & |\Aupsilon| & +% |\ARupsilon| +% \\ +% $X$ & +% chi & +% X & |\Achi| & +% |\ARchi| +% \\ +% $\Phi$ & +% phi & +% f & |\Aphi| & +% |\ARphi| +% \\ +% $\Psi$ & +% psi & +% P & |\Apsi| & +% |\ARpsi| +% \\ +% $\Omega$ & +% omega & +% O & |\Aomega| & +% |\ARomega| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% \DescribeMacro{\givbcfamily} +% This command selects the 4th century~\BC{} Greek font family. +% The family name is |givbc|, standing for Greek IV century BC. +% +% \DescribeMacro{\textgivbc} +% The command |\textgivbc{|\meta{text}|}| typesets \meta{text} in the +% Greek font. +% +% I have provided two ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, and +% (b) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab}. +% The glyphs illustrated by Day are not uniform in height but I have +% provided both `smooth' and `rough' versions. The smooth versions +% are accessed by either the ASCII characters or by the commands |\Axxx|, +% while the rough versions are only accessible by the |\ARxxx| commands. +% +% \DescribeMacro{\translitgivbc} +% |\translitgivbc{|\meta{commands}|}| will typeset \meta{commands} +% (those in the last two columns of Table~\ref{tab}) as modern glyphs instead +% of the archaic ones. +% +% \DescribeMacro{\translitgivbcfont} +% The transliterated text is set in the |\translitgivbcfont| font, +% which is initialised to a math roman form (i.e., |\mathrm|). The +% transliteration need not be in math mode. +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Day95]{DAY95} +% Lewis F.~Day. +% \newblock \emph{Alphabets Old \& New}. +% \newblock Senate, 1995. +% \newblock (Third edition originally published by B.~T.~Bashford, 1910) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[MG04]{MITTELBACH04} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> + %%% GIVBC10.MF Computer Greek 4 century BC font 10 point design size. + +% \end{macrocode} +% Parameters from CMR10.MF are used as much as possible, but we +% only need a few of them. We also +% make sure that \Lpack{cmbase} is loaded as well as plain Metafont. +% \DescribeMfpVariable{font_identifier} +% \DescribeMfpVariable{font_size} +% \begin{macrocode} +if unknown cmbase: input cmbase fi + +font_identifier:="GIVBC"; font_size 10pt#; + +% \end{macrocode} +% +% +% \DescribeMfpVariable{u#} +% \DescribeMfpVariable{letter_fit#} +% The majority of the parameters and values are the same for both +% fonts. +% \begin{macrocode} +u#:=20/36pt#; % unit width +letter_fit#:=0pt#; % extra space added to all sidebars + +% \end{macrocode} +% +% \DescribeMfpVariable{body_height#} +% \DescribeMfpVariable{asc_height#} +% \DescribeMfpVariable{cap_height#} +% \DescribeMfpVariable{fig_height#} +% \DescribeMfpVariable{x_height#} +% \DescribeMfpVariable{desc_depth#} +% \DescribeMfpVariable{half_height#} +% \begin{macrocode} +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +desc_depth#:=70/36pt#; % depth of lowercase descenders +half_height#:=1/2cap_height#; % half the height of caps + +% \end{macrocode} +% +% \DescribeMfpVariable{side#} +% \DescribeMfpVariable{thickfudge} +% \DescribeMfpVariable{thick#} +% I have used a square to help in defining the letter's geometry. +% All lines have the same thickness. +% \begin{macrocode} +side#:=cap_height#; % Height and width of the square +thickfudge:=1/9; +thick#:=thickfudge*side#; % thickness of all lines in the font + +% \end{macrocode} +% +% \DescribeMfpVariable{rule_thickness#} +% \begin{macrocode} +rule_thickness#:=.4pt#; % thickness of lines + +% \end{macrocode} +% +% \DescribeMfpVariable{cap_stem#} +% \begin{macrocode} +cap_stem#:=thick#; % thickness of majuscule stems + +% \end{macrocode} +% +% \DescribeMfpVariable{o#} +% \DescribeMfpVariable{apex_o#} +% \DescribeMfpVariable{apex_corr#} +% These deal with fine tuning of some aspects of the glyphs. +% \begin{macrocode} +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=thin#; % amount of overshoot for diagonal junctions +apex_corr#=0pt#; % fine tuning of overshoot + +% \end{macrocode} +% +% \DescribeMfpVariable{slant} +% |slant| is the amount the font slopes to the right. +% \begin{macrocode} +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +% \end{macrocode} +% +% \DescribeMfpVariable{serifs} +% \DescribeMfpVariable{monospace} +% We are generating a sans, variable-width font. +% \begin{macrocode} +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? + +% \end{macrocode} +% +% \DescribeMfpVariable{dot_size#} +% \DescribeMfpVariable{square_dots} +% These parameters are required for the punctation glyphs. +% \begin{macrocode} +dot_size#:=38/36pt#; % size of dots +square_dots:=false; % should dots be square? + +% \end{macrocode} +% +% \DescribeMfpVariable{whole_font} +% We are not generating a complete font. +% \begin{macrocode} +boolean whole_font; % try generating a complete font? +whole_font:=false; + +% \end{macrocode} +% +% The driver file would normally be called here. +% +% +% \subsection{The driver file} +% +% If there was a driver file, this would be it. To a large extent the +% driver code is based on my \Lpack{cpctitle.mf} +% for the Pacioli font. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \begin{mfpmacro}{makebox} +% This is a new version of the \Lpack{cmbase.mf} |makebox| macro. +% Essentially, as we are only generating an uppercase font, we don't +% need all the horizontals for the lowercase characters. +% +% \begin{macrocode} +% A new version of cmbase.mf makebox macro +def makebox(text rule) = + for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth: + rule((l,y)t_,(r,y)t_); endfor % horizontals + for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals + for x=u*(1+floor(1/u)) step u until r-1: + rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals + if charic<>0: + rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction +enddef; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{proofpcbb} +% The macro |proofpcbb(S, xoff, yoff)| draws crosses at the corners of +% the square, +% and at the bottom and top midpoints, where the point |zS| is at +% position |(xoff,yoff)| in the square. +% \begin{macrocode} + +% A macro to delineate the bounding square in proof mode. +% Point z$ is at (xoff,yoff) in the bounding square. +def proofpcbb(suffix $)(expr xoff, yoff) = +if proofing > 0: + x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner + z$br = (x$bl+cap_height, y$bl); % BRHC + z$tr = (x$bl+cap_height, y$bl+cap_height); % TRHC + z$tl = (x$bl, y$bl+cap_height); % TLHC + z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points + pair hc, vc; + hc = (2u,0); vc = (0,2u); + pickup pensquare scaled 2; + for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc: + draw s-hc--s+hc; + draw s-vc--s+vc; + endfor +fi +enddef; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{cm_font_setup} +% The basic font set up. +% \begin{macrocode} + +let cm_font_setup=font_setup; % Knuth's original font_setup + + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{greek_font_setup} +% This macro contains additional set up for the Greek font. +% \begin{macrocode} + +def greek_font_setup= % contains special stuff for archaic Greek font + define_pixels(u); + define_pixels(side,thick,half_height); + let adjust_fit=normal_adjust_fit; + define_whole_pixels(letter_fit); + define_whole_vertical_pixels(body_height,asc_height, + cap_height,x_height,desc_depth); + body_depth:=desc_depth+body_height-asc_height; + define_pixels(dot_size); + shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit; + if not string mode: + if mode<=smoke: + shrink_fit:=0; + fi + fi +enddef; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% END OF MACROS %%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% Set the mode and font setup. +% \begin{macrocode} + +font_coding_scheme:="ASCII caps and miniscules"; + +mode_setup; + +greek_font_setup; + +% \end{macrocode} +% +% \DescribeMfpVariable{pcshiftx#} +% \begin{macrocode} +numeric pcshiftx#; % x value of LHS of box wrt origin of char box +define_pixels(pcshiftx); + +% \end{macrocode} +% +% Do the spacings. +% +% \DescribeMfpVariable{font_slant} +% \DescribeMfpVariable{font_x_height} +% \DescribeMfpVariable{font_normal_space} +% \DescribeMfpVariable{font_quad} +% \DescribeMfpVariable{font_extra_space} +% \begin{macrocode} + +font_slant slant; +font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; +fi + +% \end{macrocode} +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the \thisfont{} font. +% +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \begin{mfpmacro}{a} +% The letter \textit{alpha}. The inside of the legs are at the edges +% of the square. The bar is at 1/3 the height. +% \begin{macrocode} + +cmchar "Greek 394BC letter alpha (a)"; +beginchar("a", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100 = h/2; x100 = pcshiftx+y100; % center point +numeric alpha[], hor, vert, hypot, theta; +pair greek[]; +hor := 0.5h; vert := h-thick; +greek1 = (hor, vert); +theta = 270 + angle(greek1); + % for left leg +penpos1(thick,theta); penpos2(thick,theta); + % and for the right leg +penpos3(thick,-theta); penpos4(thick,-theta); +rt x1r=pcshiftx; lft x4l=x1r+side; +bot y1r=bot y4l=0; +top y3r= top y2l=h; +x3r=x2l = 0.5[x1r,x4l]; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + % draw the legs +filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle; + % now for the bar +y5l=y6l=hround(1/3h); +y5r-y5l=y6r-y6l=thick; +penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4)); +z5=whatever[z1,z2]; z6=whatever[z3,z4]; +penstroke z5e--z6e; % bar line +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{b} +% The letter \textit{beta}. The actual height is 6/5 the nominal height, +% with the width being 2/3 the nominal height. This rendition scales it so +% that the actual height is the same as the nominal height (i.e., setting +% the declared width to 5/9 nominal height). +% +% \begin{macrocode} + +cmchar "Greek 394BC letter beta (b)"; +beginchar("b",4u#+5/9side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := 2u; +y100=h/2; x100=pcshiftx+y100; % square center +% the stem +penpos1(thick,0); penpos2(thick,0); +y2l=0; y1l=h; x1l=x2l=pcshiftx; +numeric alpha, long, short, hypot; +long=(w-2pcshiftx); short=h/4; hypot=short++long; +alpha := hypot/long; +% prepare for the bottom bowl +penpos3(alpha*thick,90); penpos4(alpha*thick,90); +penpos5(alpha*thick,90); penpos6(alpha*thick,90); +z3l=z2l; +x4l=w-pcshiftx; y4l=0.25[y2l,y1l]; +z5r=z4l; +x6l=x2r; y6l=0.5[y2l,y1l]; +% prepare for the top bowl +penpos7(alpha*thick,90); penpos8(alpha*thick,90); +penpos9(alpha*thick,90); penpos10(alpha*thick,90); +z7r=z6l; +x8l=x4l; y8l=0.75[y2l,y1l]; +z9r=z8l; +z10r=z1l; +% now for the notches +z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem +z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner +z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls +z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner +z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem +% draw the outer boundary +filldraw z1l--z2l--z4l--z13--z8l--cycle; +% remove interior of bottom bowl +unfilldraw z6l--z12--z11--cycle; +% and the top bowl +unfilldraw z7r--z15--z14--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{g} +% The letter \textit{gamma}. The bottom of the top arm is 2/3 side long. +% \begin{macrocode} + +cmchar "Greek 394BC letter gamma (g)"; +beginchar("g",2u#+thick#+2/3side#, cap_height#, 0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +penpos1(thick,0); penpos2(thick,0); +x1l=x2l=pcshiftx; top y1l=h; bot y2l=0; +filldraw stroke z1e--z2e; +% the arm +penpos3(thick,90); penpos4(thick,90); +y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx; +filldraw stroke z3e--z4e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{d} +% The letter \textit{delta}. Same as \textit{alpha} except that the `bar' +% is at the base. +% \begin{macrocode} + +cmchar "Greek 394BC letter delat (d)"; +beginchar("d", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100 = h/2; x100 = pcshiftx+y100; % center point +numeric alpha, hor, vert, hypot, theta; +pair greek[]; +hor := 0.5h; vert := h-thick; +greek1 = (hor, vert); +theta = 270 + angle(greek1); + % for left leg +penpos1(thick,theta); penpos2(thick,theta); + % and for the right leg +penpos3(thick,-theta); penpos4(thick,-theta); +rt x1r=pcshiftx; lft x4l=x1r+side; +bot y1r=bot y4l=0; +top y2l= top y3r=h; +x3r=x2l = 0.5[x1r,x4l]; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + % now for the bar +penpos5(thick,90); penpos6(thick,90); +bot y5l=bot y6l=0; +x5l=pcshiftx; x6l=w-pcshiftx; +z7=whatever[z1l,z2l]=whatever[z5l,z6l]; +z8=whatever[z3r,z4r]=whatever[z5l,z6l]; +z9=whatever[z1r,z2r]=whatever[z5r,z6r]; +z10=whatever[z3l,z4l]=whatever[z5r,z6r]; +% draw the outer +filldraw z7--z2l--z8--cycle; +% subtract the inner +unfilldraw z9--z0--z10--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{e} +% The letter \textit{epsilon}. From LHS of square, top arm is 2/3 + thick, +% middle is 2/3, and bottom is 2/3 + 2thick. +% \begin{macrocode} + +cmchar "Greek 394BC letter epsilon (e)"; +beginchar("e", 2u#+2/3side#+2thick#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center point +penpos1(thick,0); penpos2(thick,0); +lft x1l=lft x2l=pcshiftx; top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +% middle arm +penpos5(thick,90); penpos6(thick,90); +x5=x1; y5=y6=h/2; rt x6=pcshiftx + 2/3side; +filldraw stroke z5e--z6e; +% top arm +penpos3(thick,90); penpos4(thick,90); +x3=x1; top y3r=top y4r=h; x4=x6+thick; +filldraw stroke z3e--z4e; +% bottom arm +penpos7(thick,90); penpos8(thick,90); +x7=x1; bot y7l=bot y8l=0; x8=x6+2thick; +filldraw stroke z7e--z8e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; % end of "E" + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{z} +% The letter \textit{zeta}. This fills the square, except that the top +% arm is only 4/5 of the side. +% \begin{macrocode} + +cmchar "Greek 394BC letter zeta (z)"; +beginchar("z", 2u#+side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha, hor, vert, hypot; +vert=h; hor=4/5side; hypot=vert++hor; +alpha=hypot/vert; +penpos1(thick,90); penpos2(thick,90); penpos3(alpha*thick, 0); +penpos4(alpha*thick, 0); +top y1r=h; lft x1=pcshiftx; +y2=y1; rt x2=x3; +rt x3r=x1+4/5side;; top y3=h; x4l=x1; bot y4=0; +filldraw stroke z1e--z2e; % top bar +filldraw stroke z3e--z4e; % diagonal +% and for the bottom bar +penpos8(thick,90); penpos9(thick,90); +x8=x4; bot y8l=0; +x9=pcshiftx+side; y9=y8; +filldraw stroke z8e--z9e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{h} +% The letter \textit{eta}. The crossbar is centered. +% \begin{macrocode} + +cmchar "Greek 394BC letter eta (h)"; +beginchar("h", 4u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% left stem +penpos1(thick,0); penpos2(thick,0); +lft x1l=lft x2l=pcshiftx; bot y1=0; top y2=h; +filldraw stroke z1e--z2e; +% right stem +penpos3(thick,0); penpos4(thick,0); +rt x3r= rt x4r= x1l+side; bot y3=0; top y4=h; +filldraw stroke z3e--z4e; +% crossbar +penpos5(thick,90); penpos6(thick,90); +x5=x1; x6=x3; y5=y6=h/2; +filldraw stroke z5e--z6e; +proofpcbb(100, y100, y100); +labels(1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{T} +% The letter \textit{theta}. Just a circle with a dot in the center. +% \begin{macrocode} + +cmchar "Greek 394BC letter theta (T)"; +beginchar("T", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha; alpha=0.75; +% outside of circle +x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100; +y1r=h; y3r=0; x1r=x3r=x100; +% inside of circle +x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r; +y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r; +filldraw z1r..z2r..z3r..z4r..cycle; +unfilldraw z1l..z2l..z3l..z4l..cycle; +% the dot +x12=x100-alpha*thick; x14=x100+alpha*thick; y12=y14=y100; +y11=y100+alpha*thick; y13=y100-alpha*thick; x11=x13=x100; +path p; +p= z11..z12..z13..z14..cycle; +filldraw p; filldraw p; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{i} +% The letter \textit{iota}. +% \begin{macrocode} + +cmchar "Greek 394BC letter iota (i)"; +beginchar("i", 4u#+thick#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + 0.5thick; % center point +penpos1(thick,0); penpos2(thick,0); +x1=x2=hround(w/2); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % vertical stem +proofpcbb(100, y100, y100); +penlabels(1, 2, 100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{k} +% The letter \textit{kappa}. It fills 2/3 of the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter kappa (k)"; +beginchar("k", 2u#+2/3side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +% the stem +penpos1(thick,0); penpos2(thick,0); +lft x1l=lft x2l=pcshiftx; + top y1=h; bot y2=0; + filldraw stroke z1e--z2e; % left stem +numeric hor, vert, theta[]; +pair greek[]; +% upper arm +hor := 2/3side; vert := side/2; +greek1 = (hor,vert); +theta1=270+angle(greek1); +penpos3(thick,theta1); penpos4(thick,theta1); +x3l=x2r; y3l=side/2; +y4l=h; x4r=x1l+2/3side; +% lower arm +vert := -side/4; +greek2 = (hor,vert); +theta2=270+angle(greek2); +penpos5(thick,theta2); penpos6(thick,theta2); +z5r=z3l; +x6l=x4r; y6l=side/4; +% arm notch +z0=whatever[z3r,z4r]=whatever[z5l,z6l]; +% draw the arms +filldraw z3l--z4l--z4r--z0--z6l--z6r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{l} +% The letter \textit{lambda}. Identical to A without the crossbar. +% \begin{macrocode} + +cmchar "Greek 394BC letter lambda (l)"; +beginchar("l", 2u#+side#+2thick#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100 = h/2; x100 = pcshiftx+y100; % center point +numeric alpha[], hor, vert, hypot, theta; +pair greek[]; +hor := 0.5h; vert := h-thick; +greek1 = (hor, vert); +theta = 270 + angle(greek1); + % for left leg +penpos1(thick,theta); penpos2(thick,theta); + % and for the right leg +penpos3(thick,-theta); penpos4(thick,-theta); +rt x1r=pcshiftx; lft x4l=x1r+side; +bot y1r=bot y4l=0; +top y3r= top y2l=h; +x3r=x2l = 0.5[x1r,x4l]; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + % draw the legs +filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,100); endchar; % end of "L" + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{m} +% The letter \textit{mu}. This has slightly sloping right and left legs. +% The inside base of the legs is the square side. +% \begin{macrocode} + +cmchar"Greek 394BC letter mu (m)"; +beginchar("m", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha, hor, vert, hypot, theta[]; +pair greek[]; +hor := 3thick; vert := side; +greek1 = (hor, vert); +theta1 = 270 + angle(greek1); +% left leg +penpos1(thick,theta1); penpos2(thick,theta1); +z1r=(pcshiftx,0); z2l=(pcshiftx+2thick,h); +% right leg +penpos3(thick,-theta1); penpos4(thick,-theta1); +z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h); +% stuff for the middle V, top of the notch at the square center +z0=z100; +theta2 = 270 + angle(z4r-z0); +% left of V +penpos5(thick,-theta2); penpos6(thick,-theta2); +z5r=z0; z6r=z2l; +% right of V +penpos7(thick,theta2); penpos8(thick,theta2); +z7l=z0; z8l=z4r; +% left leg notch +z9=whatever[z1r,z2r]=whatever[z5l,z6l]; +% under the V +z10=whatever[z5l,z6l]=whatever[z7r,z8r]; +% right leg notch +z11=whatever[z7r,z8r]=whatever[z3l,z4l]; +% draw it +filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{n} +% The letter \textit{nu}. It fills the square (actually left and right legs +% are a bit long). +% \begin{macrocode} + +cmchar "Greek 394BC letter nu (n)"; +beginchar("n", 4u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric hor, vert, theta; +pair greek[]; +hor = side-thick; vert = h; +greek1=(hor,vert); +theta=270 + angle(greek1); +% left leg +penpos1(thick,0); penpos2(thick,0); +z1l=(pcshiftx,0); z2l=(pcshiftx,h); +% right leg +penpos3(thick,0); penpos4(thick,0); +z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h); +% bar +penpos5(thick,-theta); penpos6(thick,-theta); +z5l=z3r; z6r=z2l; +% left notch +z7=whatever[z1r,z2r]=whatever[z5l,z6l]; +% right notch +z8=whatever[z5r,z6r]=whatever[z3l,z4l]; +filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{x} +% The letter \textit{xi}. It fills the square +% \begin{macrocode} + +cmchar "Greek 394BC letter xi (x)"; +beginchar("x", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% upright +penpos1(thick,0); penpos2(thick,0); +z1=(x100,0); z2=(x100,h); +filldraw stroke z1e--z2e; +% 3 horizontal bars +penpos3(thick,90); penpos4(thick,90); +z3r=(pcshiftx,h); z4r=(pcshiftx+side,h); +filldraw stroke z3e--z4e; +penpos5(thick,90); penpos6(thick,90); +z5=(pcshiftx,h/2); z6=(pcshiftx+side,h/2); +filldraw stroke z5e--z6e; +penpos7(thick,90); penpos8(thick,90); +z7l=(pcshiftx,0); z8l=(pcshiftx+side,0); +filldraw stroke z7e--z8e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{o} +% The letter \textit{omicron}. Just a circle. +% \begin{macrocode} + +cmchar "Greek 394BC letter omicron (o)"; +beginchar("o", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +% outside of circle +x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100; +y1r=h; y3r=0; x1r=x3r=x100; +% inside of circle +x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r; +y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r; +filldraw z1r..z2r..z3r..z4r..cycle; +unfilldraw z1l..z2l..z3l..z4l..cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{p} +% The letter \textit{pi}. This just fills the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter pi (p)"; +beginchar("p", 4u#+side#, cap_height#, 0); +adjust_fit(0, 0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +penpos1(thick,0); penpos2(thick,0); +x1l=x2l=pcshiftx; top y1l=h; bot y2l=0; +filldraw stroke z1e--z2e; +% the arm +penpos3(thick,90); penpos4(thick,90); +y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx; +filldraw stroke z3e--z4e; +% the beak +penpos5(thick,0); penpos6(thick,0); +x5r=x6r=x4; top y5=h; bot y6=h/2; +filldraw stroke z5e--z6e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); endchar; + + +% \end{macrocode} +% \end{mfpmacro} +% +% +% +% \begin{mfpmacro}{r} +% The letter \textit{rho}. The actual height is 6/5 side and width 2/3 side. +% The bowl fits into a square of 2/3 side. This is a trimmed version of the +% original. +% \begin{macrocode} + +cmchar "Greek 394BC letter rho (r)"; +beginchar("r", 2u#+5/9side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +penpos1(thick,0); penpos2(thick,0); + top lft z1l=(pcshiftx,h); bot lft z2l=(pcshiftx,0); +filldraw stroke z1e--z2e; % vertical stem +% the bowl +penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90); +top y3r=top y1; x3r=x1r; +bot y5r=5/9[y1,y2]; x5=x3; +x4r=x1l+5/9side; y4=0.5[y5r,y3r]; +filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{s} +% The letter \textit{sigma}. The width is 2/3 the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter sigma (s)"; +beginchar("s", 2u#+2/3side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pair greek[]; +numeric theta[]; +numeric hor, vert; +% prepare for the long arms +hor := 2/3side; vert := 1/3h; +greek1=(hor,vert); +theta1=270+angle(greek1); +penpos1(thick,-theta1); penpos2(thick,-theta1); +penpos7(thick,theta1); penpos8(thick,theta1); +% prepare for the short arms +hor := 2/3side-thick; vert := h/2 - h/3; +greek2=(hor,vert); +theta2=270-angle(greek2); +penpos3(thick,theta2); penpos4(thick,theta2); +penpos5(thick,-theta2); penpos6(thick,-theta2); +% do the points +y1l=0; x1r=pcshiftx+2/3side; +z2l=(pcshiftx,h/3); +z3l=z2l; +z4r=(pcshiftx+2/3side-thick, h/2); +z5r=z4r; +z6l=(pcshiftx,2/3h); +z7l=z6l; +y8l=h; x8r=x1r; +% bottom notch +z10=whatever[z1r,z2r]=whatever[z3r,z4r]; +% middle notch +z11=whatever[z3l,z4l]=whatever[z5l,z6l]; +% top notch +z12=whatever[z5r,z6r]=whatever[z7r,z8r]; +% draw it all +filldraw z1l--z2l--z11--z6l--z8l--z8r--z12--z4r--z10--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,10,11,12,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{t} +% The letter \textit{tau}. It has a jaunty crossbar and fills the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter tau (t)"; +beginchar("t",2u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric hor, vert, theta; +numeric alpha[]; pair greek[]; +% the stem +alpha1=h-thick; +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,alpha1); +filldraw stroke z1e--z2e; +% the crossbar (left half) +penpos3(thick,90); penpos4(thick,90); +z3r=(pcshiftx,alpha1); z4r=(w/2,alpha1); +filldraw stroke z3e--z4e; +% right half +hor := w/2; vert := h/5; +greek1=(hor,vert); +theta = 270 + angle(greek1); +penpos5(thick,theta); +y5l=h; x5r=w-pcshiftx; +filldraw z4l{right}..{greek1}z5r--z5l{-greek1}..{left}z4r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{y} +% The letter \textit{upsilon}. +% Actual size is square with sides 6/5 of normal. This is +% a scaled version. +% \begin{macrocode} + +cmchar "Greek 394BC letter upsilon (y)"; +beginchar("y", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha, theta; +numeric hor, vert; +pair greek[]; +alpha=h/3; +hor := h; vert := 0.75h; +greek1 = (hor,vert); greek2 = (-hor, -vert); +greek3 = (-hor,vert); greek4 = (hor, -vert); +theta = 270 + angle(greek1); +% stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,alpha); +% right arm +penpos3(thick,theta); +y3l=h; x3r=w-pcshiftx; +% left arm +penpos4(thick,-theta); +y4r=h; x4l=pcshiftx; +filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle; +filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; % End of "U" + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{X} +% The letter \textit{chi}. It just fits into the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter chi (X)"; +beginchar("X", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric theta; +theta = 270+45; +% right going leg +penpos1(thick,theta); penpos2(thick,theta); +x1l=pcshiftx; y1r=0; x2r=pcshiftx+side; y2l=h; +filldraw stroke z1e--z2e; +% left going leg +penpos3(thick,-theta); penpos4(thick,-theta); +x3l=pcshiftx; y3r=h; x4r=pcshiftx+side; y4l=0; +filldraw stroke z3e--z4e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{f} +% The letter \textit{phi}. Actual height is 6/5 of square and outer dia of circle +% is 4/5 side (i.e., 2/3 the actual height). This is a scaled version. +% \begin{macrocode} + +cmchar "Greek 394BC letter phi (f)"; +beginchar("f", 2u#+2/3side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,h); +% the circle +z0=(w/2,h/2); +numeric alpha; +alpha := 1/3h; +y3o=y3i=y5i=y5o=h/2; +x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick; +x4o=x4i=x6i=x6o=w/2; +y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick; +% unfill the inner +unfilldraw z3i..z4i..z5i..z6i..cycle; +% draw the outer +filldraw z3o..z4o..z5o..z6o..cycle; +% draw the stem (twice) +filldraw stroke z1e--z2e; filldraw stroke z1e--z2e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{P} +% The letter \textit{psi}. The actual height is 6/5 square and width is square. +% This is a scaled version. +% \begin{macrocode} + +cmchar "Greek 394BC letter psi (P)"; +beginchar("P", 2u#+5/6side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric alpha, beta; +numeric hor, vert, theta; +pair greek; +alpha=5/6; % scale factor +beta=1/3alpha*side+thick; % arm seperation height +% the stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,h); +filldraw stroke z1e--z2e; +hor := w/2; vert := h-beta; +greek = (hor,vert); +theta=270+angle(greek); +% right arm +penpos3(thick,theta); penpos4(thick,theta); +z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx; +% left arm +penpos5(thick,-theta); penpos6(thick,-theta); +z5r=z3l; x6l=pcshiftx; y6r=y4l; +% intersection points +z10=whatever[z1r,z2r]=whatever[z3r,z4r]; +z11=whatever[z1l,z2l]=whatever[z5l,z6l]; +filldraw z3l--z4l--z4r--z10--cycle; % right arm +filldraw z5r--z6r--z6l--z11--cycle; % left arm +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,10,11,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{O} +% The letter \textit{omega}. Height is square, width is 4/3 square. +% \begin{macrocode} + +cmchar "Greek 394BC letter omega (O)"; +beginchar("O", 2u#+4/3side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% bottom arms +penpos1(thick,90); penpos2(thick,90); penpos3(thick,90); penpos4(thick,90); +z1l=(pcshiftx,0); z4l=(w-pcshiftx,0); +x2l = w/2-side/4; x3l=w/2+side/4; y2l=y3l=0; +% prepare the bowl +numeric theta, hor, vert; +pair greek[]; +hor := x2r-pcshiftx; vert := h; +greek1=(hor,vert); greek2=(-hor,-vert); +greek3=(-hor,vert); greek4=(hor,-vert); +theta = 270+angle(greek1); +penpos5(thick,-theta); penpos9(thick,theta); +z5r=z2l; z9l=z3l; +penpos6(thick,0); penpos8(thick,0); +z6l=(w/2-side/2, h/2); z8r=(w/2+side/2, h/2); +penpos7(thick,90); +z7r=(w/2,h); +path p[]; +p1=z5l{greek3}..z6l{up}..{right}z7r; +p2=z7r{right}..z8r{down}..{greek2}z9r; +p3=z1r--z4r; +% notch points +z10 = p3 intersectionpoint p1; +z11 = p3 intersectionpoint p2; +% draw it +filldraw z1r--z10{greek3}..z6l{up}..z7r{right}..z8r{down}..{greek2}z11--z4r + --z4l--z3l{greek1}..z8l{up}..z7l{left}..z6r{down}..{greek4}z2l--z1l--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,11,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% The rest of the glyphs are rough versions of some of the above. +% +% +% \begin{mfpmacro}{B} +% The letter \textit{beta}. The actual height is 6/5 the nominal height, +% with the width being 2/3 the nominal height. +% +% \begin{macrocode} + +cmchar "Greek 394BC letter beta (rough, B)"; +beginchar("B",4u#+2/3side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := 2u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric beta; +beta := side/10; % amount to extend top and bottom +% the stem +penpos1(thick,0); penpos2(thick,0); +y2l=-beta; y1l=h+beta; x1l=x2l=pcshiftx; +numeric alpha, long, short, hypot; +long=(w-2pcshiftx); short=h/4; hypot=short++long; +alpha := hypot/long; +% prepare for the bottom bowl +penpos3(alpha*thick,90); penpos4(alpha*thick,90); +penpos5(alpha*thick,90); penpos6(alpha*thick,90); +z3l=z2l; +x4l=w-pcshiftx; y4l=0.25[y2l,y1l]; +z5r=z4l; +x6l=x2r; y6l=0.5[y2l,y1l]; +% prepare for the top bowl +penpos7(alpha*thick,90); penpos8(alpha*thick,90); +penpos9(alpha*thick,90); penpos10(alpha*thick,90); +z7r=z6l; +x8l=x4l; y8l=0.75[y2l,y1l]; +z9r=z8l; +z10r=z1l; +% now for the notches +z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem +z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner +z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls +z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner +z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem +% draw the outer boundary +filldraw z1l--z2l--z4l--z13--z8l--cycle; +% remove interior of bottom bowl +unfilldraw z6l--z12--z11--cycle; +% and the top bowl +unfilldraw z7r--z15--z14--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{M} +% The letter \textit{mu}. This has slightly sloping right and left legs. +% The inside base of the legs is the square side. Left leg extends below +% the baseline. +% \begin{macrocode} + +cmchar"Greek 394BC letter mu (rough, M)"; +beginchar("M", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha, hor, vert, hypot, theta[]; +pair greek[]; +hor := 3thick; vert := side; +greek1 = (hor, vert); +theta1 = 270 + angle(greek1); +% left leg +numeric beta; +beta := thick; % extra depth below baseline +penpos1(thick,theta1); penpos2(thick,theta1); +z1r=(pcshiftx,-beta); z2l=(pcshiftx+2thick,h); +% right leg +penpos3(thick,-theta1); penpos4(thick,-theta1); +z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h); +% stuff for the middle V, top of the notch at the square center +z0=z100; +theta2 = 270 + angle(z4r-z0); +% left of V +penpos5(thick,-theta2); penpos6(thick,-theta2); +z5r=z0; z6r=z2l; +% right of V +penpos7(thick,theta2); penpos8(thick,theta2); +z7l=z0; z8l=z4r; +% left leg notch +z9=whatever[z1r,z2r]=whatever[z5l,z6l]; +% under the V +z10=whatever[z5l,z6l]=whatever[z7r,z8r]; +% right leg notch +z11=whatever[z7r,z8r]=whatever[z3l,z4l]; +% draw it +filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{N} +% The letter \textit{nu}. It fills the square (actually left and right legs +% are a bit long). +% \begin{macrocode} + +cmchar "Greek 394BC letter nu (rough, N)"; +beginchar("N", 4u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric hor, vert, theta; +pair greek[]; +hor = side-thick; vert = h; +greek1=(hor,vert); +theta=270 + angle(greek1); +numeric beta; +beta := thick; % extra extensions of the legs +% left leg +penpos1(thick,0); penpos2(thick,0); +z1l=(pcshiftx,-beta); z2l=(pcshiftx,h); +% right leg +penpos3(thick,0); penpos4(thick,0); +z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h+beta); +% bar +penpos5(thick,-theta); penpos6(thick,-theta); +z5l=z3r; z6r=z2l; +% left notch +z7=whatever[z1r,z2r]=whatever[z5l,z6l]; +% right notch +z8=whatever[z5r,z6r]=whatever[z3l,z4l]; +filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{R} +% The letter \textit{rho}. The actual height is 6/5 side and width 2/3 side. +% The bowl fits into a square of 2/3 side. +% \begin{macrocode} + +cmchar "Greek 394BC letter rho (rough, R)"; +beginchar("R", 2u#+2/3side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric beta; +beta := side/10; % extra top and bottom extensions +penpos1(thick,0); penpos2(thick,0); + top lft z1l=(pcshiftx,h+beta); bot lft z2l=(pcshiftx,-beta); +filldraw stroke z1e--z2e; % vertical stem +% the bowl +penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90); +top y3r=top y1; x3r=x1r; +bot y5r=5/9[y1,y2]; x5=x3; +x4r=x1l+5/9side; y4=0.5[y5r,y3r]; +filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{Y} +% The letter \textit{upsilon}. +% Actual size is square with sides 6/5 of normal. +% \begin{macrocode} + +cmchar "Greek 394BC letter upsilon (rough, Y)"; +beginchar("Y", 2u#+6/5side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric beta; +beta := side/10; % extra at top and bottom +numeric alpha, theta; +numeric hor, vert; +pair greek[]; +alpha=h/3; +hor := h; vert := 0.75h; +greek1 = (hor,vert); greek2 = (-hor, -vert); +greek3 = (-hor,vert); greek4 = (hor, -vert); +theta = 270 + angle(greek1); +% stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,-beta); z2=(w/2,alpha); +% right arm +penpos3(thick,theta); +y3l=h+beta; x3r=w-pcshiftx; +% left arm +penpos4(thick,-theta); +y4r=h+beta; x4l=pcshiftx; +filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle; +filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; % End of "u" + +% \end{macrocode} +% \end{mfpmacro} +% +% +% +% \begin{mfpmacro}{F} +% The letter \textit{phi}. Actual height is 6/5 of square and outer dia of circle +% is 4/5 side (i.e., 2/3 the actual height). +% \begin{macrocode} + +cmchar "Greek 394BC letter phi (rough, F)"; +beginchar("F", 2u#+4/5side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +numeric beta; +beta := side/10; % extra at top and bottom +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,-beta); z2=(w/2,h+beta); +% the circle +z0=(w/2,h/2); +numeric alpha; +alpha := 2/5side; +y3o=y3i=y5i=y5o=h/2; +x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick; +x4o=x4i=x6i=x6o=w/2; +y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick; +% unfill the inner +unfilldraw z3i..z4i..z5i..z6i..cycle; +% draw the outer +filldraw z3o..z4o..z5o..z6o..cycle; +% draw the stem (twice) +filldraw stroke z1e--z2e; filldraw stroke z1e--z2e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{Q} +% The letter \textit{psi}. The actual height is 6/5 square and width is square. +% \begin{macrocode} + +cmchar "Greek 394BC letter psi (rough, Q)"; +beginchar("Q", 2u#+side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric alpha, beta; +numeric hor, vert, theta; +pair greek; +alpha=1; % scale factor +beta=1/3alpha*side+thick; % arm seperation height +% the stem +numeric gamma; +gamma := side/10; % extra at top and bottom +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,-gamma); z2=(w/2,h+gamma); +filldraw stroke z1e--z2e; +hor := w/2; vert := h-beta; +greek = (hor,vert); +theta=270+angle(greek); +% right arm +penpos3(thick,theta); penpos4(thick,theta); +z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx; +% left arm +penpos5(thick,-theta); penpos6(thick,-theta); +z5r=z3l; x6l=pcshiftx; y6r=y4l; +% intersection points +z10=whatever[z1r,z2r]=whatever[z3r,z4r]; +z11=whatever[z1l,z2l]=whatever[z5l,z6l]; +filldraw z3l--z4l--z4r--z10--cycle; % right arm +filldraw z5r--z6r--z6l--z11--cycle; % left arm +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,10,11,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% The end of the glyphs and the file. +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{givbc}{} + \DeclareFontShape{OT1}{givbc}{m}{n}{ <-> givbc10 }{} + \DeclareFontShape{OT1}{givbc}{bx}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{OT1}{givbc}{b}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{OT1}{givbc}{m}{sl}{ <-> sub givbc/m/n }{} + \DeclareFontShape{OT1}{givbc}{m}{it}{ <-> sub givbc/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{givbc}{} + \DeclareFontShape{T1}{givbc}{m}{n}{ <-> givbc10 }{} + \DeclareFontShape{T1}{givbc}{bx}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{T1}{givbc}{b}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{T1}{givbc}{m}{sl}{ <-> sub givbc/m/n }{} + \DeclareFontShape{T1}{givbc}{m}{it}{ <-> sub givbc/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{greek4cbc} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{greek4cbc}[2000/10/22 v1.1 package for 4th century BC Greek fonts] +% \end{macrocode} +% +% +% \begin{macro}{\givbcfamily} +% Selects the 4th century BC Greek font family in the T1 encoding. +% \begin{macrocode} +\newcommand{\givbcfamily}{\usefont{T1}{givbc}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textgivbc} +% Text command for the 4th century BC Greek font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textgivbc}{\givbcfamily} +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% +% \begin{macrocode} + +\chardef\Aalpha=`a +\chardef\Abeta=`b +\chardef\Agamma=`g +\chardef\Adelta=`d +\chardef\Aepsilon=`e +\chardef\Azeta=`z +\chardef\Aeta=`h +\chardef\Atheta=`T +\chardef\Aiota=`i +\chardef\Akappa=`k +\chardef\Alambda=`l +\chardef\Amu=`m +\chardef\Anu=`n +\chardef\Axi=`x +\chardef\Aomicron=`o +\chardef\Api=`p +\chardef\Arho=`r +\chardef\Asigma=`s +\chardef\Atau=`t +\chardef\Aupsilon=`y +\chardef\Achi=`X +\chardef\Aphi=`f +\chardef\Apsi=`P +\chardef\Aomega=`O + +\chardef\ARalpha=`a +\chardef\ARbeta=`B +\chardef\ARgamma=`g +\chardef\ARdelta=`d +\chardef\ARepsilon=`e +\chardef\ARzeta=`z +\chardef\AReta=`h +\chardef\ARtheta=`T +\chardef\ARiota=`i +\chardef\ARkappa=`k +\chardef\ARlambda=`l +\chardef\ARmu=`M +\chardef\ARnu=`N +\chardef\ARxi=`x +\chardef\ARomicron=`o +\chardef\ARpi=`p +\chardef\ARrho=`R +\chardef\ARsigma=`s +\chardef\ARtau=`t +\chardef\ARupsilon=`Y +\chardef\ARchi=`X +\chardef\ARphi=`F +\chardef\ARpsi=`Q +\chardef\ARomega=`O + +% \end{macrocode} +% +% \begin{macro}{\translitgvibc} +% \begin{macro}{\translitgivbcfont} +% |\translitgivbc{|\meta{commands}|}| transliterates \meta{commands} +% using the |\translitgivbcfont|. +% \begin{macrocode} +\newcommand{\translitgivbc}[1]{{% + \@translitGiv #1}} +\newcommand{\translitgivbcfont}{\mathrm} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitGiv} +% This macro redefines all character commands to produce the transliterated +% version instead of the glyph. There must be no spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitGiv}{% +\def\Aalpha{\ensuremath{\translitgivbcfont{A}}}\def\ARalpha{\Aalpha}% +\def\Abeta{\ensuremath{\translitgivbcfont{B}}}\def\ARbeta{\Abeta}% +\def\Agamma{\ensuremath{\translitgivbcfont{\Gamma}}}\def\ARgamma{\Agamma}% +\def\Adelta{\ensuremath{\translitgivbcfont{\Delta}}}\def\ARdelta{\Adelta}% +\def\Aepsilon{\ensuremath{\translitgivbcfont{E}}}\def\ARepsilon{\Aepsilon}% +\def\Azeta{\ensuremath{\translitgivbcfont{Z}}}\def\ARzeta{\Azeta}% +\def\Aeta{\ensuremath{\translitgivbcfont{H}}}\def\AReta{\Aeta}% +\def\Atheta{\ensuremath{\translitgivbcfont{\Theta}}}\def\ARtheta{\Atheta}% +\def\Aiota{\ensuremath{\translitgivbcfont{I}}}\def\ARiota{\Aiota}% +\def\Akappa{\ensuremath{\translitgivbcfont{K}}}\def\ARkappa{\Akappa}% +\def\Alambda{\ensuremath{\translitgivbcfont{\Lambda}}}\def\ARlambda{\Alambda}% +\def\Amu{\ensuremath{\translitgivbcfont{M}}}\def\ARmu{\Amu}% +\def\Anu{\ensuremath{\translitgivbcfont{N}}}\def\ARnu{\Anu}% +\def\Axi{\ensuremath{\translitgivbcfont{\Xi}}}\def\ARxi{\Axi}% +\def\Aomicron{\ensuremath{\translitgivbcfont{O}}}\def\ARomicron{\Aomicron}% +\def\Api{\ensuremath{\translitgivbcfont{\Pi}}}\def\ARpi{\Api}% +\def\Arho{\ensuremath{\translitgivbcfont{R}}}\def\ARrho{\Arho}% +\def\Asigma{\ensuremath{\translitgivbcfont{\Sigma}}}\def\ARsigma{\Asigma}% +\def\Atau{\ensuremath{\translitgivbcfont{T}}}\def\ARtau{\Atau}% +\def\Aupsilon{\ensuremath{\translitgivbcfont{\Upsilon}}}\def\ARupsilon{\Aupsilon}% +\def\Achi{\ensuremath{\translitgivbcfont{X}}}\def\ARchi{\Achi}% +\def\Aphi{\ensuremath{\translitgivbcfont{\Phi}}}\def\ARphi{\Aphi}% +\def\Apsi{\ensuremath{\translitgivbcfont{\Psi}}}\def\ARpsi{\Apsi}% +\def\Aomega{\ensuremath{\translitgivbcfont{\Omega}}}\def\ARomega{\Aomega}% +} + +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The Type1 map file} +% +% Just a line. +% \changes{v1.2}{2005/04/06}{Added map file} +% \begin{macrocode} +%<*map> +givbc10 Archaic-Greek-4th-Century-BC <givbc10.pfb +%</map> +% \end{macrocode} +% +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/greek4cbc.ins b/Master/texmf-dist/source/fonts/archaic/greek4cbc.ins new file mode 100644 index 00000000000..bce08f41d7c --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/greek4cbc.ins @@ -0,0 +1,89 @@ +%% greek4cbc.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{greek4cbc.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + + +%% Uncomment the next lines for the MetaFont source +\Msg{*** Generating the Metafont files ***} +\usepostamble\empty +\generateFile{givbc10.mf}{t}{\from{greek4cbc.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1givbc.fd}{t}{\from{greek4cbc.dtx}{fdot1}} +\generateFile{t1givbc.fd}{t}{\from{greek4cbc.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{greek4cbc.sty}{t}{\from{greek4cbc.dtx}{usc}} + +\Msg{*** Generating the Type1 map file ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{greek4cbc.map}{t}{\from{greek4cbc.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue with the installation you have to move these files} +\Msg{* into the LaTeX macro area} +\Msg{* \space\space ot1givbc.fd} +\Msg{* \space\space t1givbc.fd} +\Msg{* \space\space greek4cbc.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/greek6cbc.dtx b/Master/texmf-dist/source/fonts/archaic/greek6cbc.dtx new file mode 100644 index 00000000000..8df0490119f --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/greek6cbc.dtx @@ -0,0 +1,1187 @@ +% \iffalse meta-comment +% +% greek6cbc.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{greek6cbc.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{196} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v2.0}{2000/10/01}{Changed practically everything} +% \changes{v2.1}{2005/04/06}{Changed contact info and Postscript Type1} +% +% \def\fileversion{v1.0}\def\filedate{1999/03/14} +% \def\fileversion{v2.0} \def\filedate{2000/10/01} +% \def\fileversion{v2.1} \def\filedate{2005/04/06} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Greek} +% +% \title{The \Lpack{Greek6cbc} font\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{greek6cbc} bundle provides a rendition of the kind of +% Greek characters used about the 6th century~\BC. +% \end{abstract} +% \tableofcontents +% +% \section{Introduction} +% +% The font presented here is meant to be typical of the Greek characters +% in use about the 6th century~\BC. It is one of a series of fonts intended +% 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{MITTELBACH04}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and source code for the package +% may be 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{greek6cbc} package} \label{sec:usc} +% +% In the 6th century~\BC{} the Greek alphabet was settling down, but +% there were several different glyphs used for the characters depending +% both on the date and on the geographical area. The alphabet retained +% the Phoenician F form of \textit{vau}, which the Greeks called +% \textit{digamma}, and also used the Phoenician \textit{qoph} (from +% which we get our Q). It had added the $\Psi$, $\Phi$, and $\Omega$ +% characters. Thus, the abecedary consisted of 26 characters compared +% with the 24 characters for modern Greek. +% +% The font presented here is meant to be typical of the time, but +% does not accurately represent any particular glyph set. The font is based +% on an amalgm of archaic Greek fonts illustrated in~\cite{DRUCKER95}. +% I have also used information from the +% \textit{Encyclopedia Brittanica}. +% +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and the +% modern and Phoenician names (in parentheses) of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcl} \hline +% Value & Name & ASCII & Command \\ \hline +% $A$ & +% alpha (aleph) & +% a & +% |\Aalpha| +% \\ +% $B$ & +% beta (beth) & +% b & +% |\Abeta| +% \\ +% $\Gamma$ & +% gamma (gimel) & +% g & +% |\Agamma| +% \\ +% $\Delta$ & +% delta (daleth) & +% d & +% |\Adelta| +% \\ +% $E$ & +% epsilon (he) & +% e & +% |\Aepsilon| +% \\ +% $F$ & +% digamma (vav) & +% F & +% |\Adigamma| +% \\ +% $Z$ & +% zeta (zayin) & +% z & +% |\Azeta| +% \\ +% $H$ & +% eta (heth) & +% h & +% |\Aeta| +% \\ +% $\Theta$ & +% theta (teth) & +% T & +% |\Atheta| +% \\ +% $I$ & +% iota (yod) & +% i & +% |\Aiota| +% \\ +% $K$ & +% kappa (kaph) & +% k & +% |\Akappa| +% \\ +% $\Lambda$ & +% lambda (lamed) & +% l & +% |\Alambda| +% \\ +% $M$ & +% mu (mem) & +% m & +% |\Amu| +% \\ +% $N$ & +% nu (nun) & +% n & +% |\Anu| +% \\ +% $\Xi$ & +% xi (samekh) & +% x & +% |\Axi| +% \\ +% $O$ & +% omicron (ayin) & +% o & +% |\Aomicrom| +% \\ +% $\Pi$ & +% pi (pe) & +% p & +% |\Api| +% \\ +% $Q$ & +% koppa (qoph) & +% q & +% |\Akoppa| +% \\ +% $R$ & +% rho (resh) & +% r & +% |\Arho| +% \\ +% $\Sigma$ & +% sigma (shin) & +% s & +% |\Asigma| +% \\ +% $T$ & +% tau (tav) & +% t & +% |\Atau| +% \\ +% $\Upsilon$ & +% upsilon & +% y & +% |\Aupsilon| +% \\ +% $X$ & +% chi & +% X & +% |\Achi| +% \\ +% $\Phi$ & +% phi & +% f & +% |\Aphi| +% \\ +% $\Psi$ & +% psi & +% P & +% |\Apsi| +% \\ +% $\Omega$ & +% omega & +% O & +% |\Aomega| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% \DescribeMacro{\gvibcfamily} +% This command selects the 6th century~\BC{} Greek font family. +% The family name is |gvibc|, standing for Greek VI century BC. +% +% \DescribeMacro{\textgvibc} +% The command |\textgvibc{|\meta{text}|}| typesets \meta{text} in the +% Greek font. +% +% I have provided two ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, +% (b) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab}. +% +% \DescribeMacro{\translitgvibc} +% |\translitgvibc{|\meta{commands}|}| will typeset \meta{commands} +% (those in the last column of Table~\ref{tab}) as modern glyphs +% instead of the archaic ones. +% +% \DescribeMacro{\translitgvibcfont} +% The transliterated text is set in the |\translitgvibcfont| font, +% which is initialised to a math roman form (i.e., |\mathrm|). +% +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[MG04]{MITTELBACH04} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% GVIBC10.MF Computer Greek font (6th century BC) 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="Greek"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.7pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% The driver file would normally be called here. +% +% +% \subsection{The driver file} +% +% If there was a driver file, this would be it. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +font_coding_scheme:="Greek glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.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} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Greek font. The characters +% are defined in the Greek alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{a} +% The letter \textit{alpha}. Much like our modern A but not quite symmetrical. +% \begin{macrocode} + +cmchar "Greek letter alpha (a)"; +beginglyph("a",0.6); +x1=leftloc; x3=rightloc; % base points +bot y1 = bot y3 = -o; +x2 = midloc; top y2 = h; % apex +draw z1--z2--z3; % draw the legs +z4 = 0.4[z1, z2]; +draw z3--z4; % draw the bar +labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The letter \textit{beta}, which is similar to our modern B. +% \begin{macrocode} + +cmchar "Greek letter beta (b)"; +beginglyph("b",0.6); +x1=x3=x5=leftloc; +x2=x4=rightloc; +bot y1=-o; top y5=h; +y2=1/4h; y3=1/2h; y4=3/4h; +draw z1--z5; % the upright +draw z1{right}..z2..z3{left}; % lower bowl +draw z3{right}..z4..z5{left}; % upper bowl +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The letter \textit{gamma}. It is like the Phoenician \textit{gimel} but +% only has half of the top bar (an upside down L). +% \begin{macrocode} + +cmchar "Greek letter gamma (g)"; +beginglyph("g", 0.4); +x1=x2=leftloc; x3=rightloc; +bot y1=-o; top y2 = top y3= h; +draw z1--z2--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The letter \textit{delta}, like the modern form. +% \begin{macrocode} + +cmchar "Greek letter delta (d)"; +beginglyph("d",0.6); +x1=leftloc; x2=midloc; x3=rightloc; +bot y1 = bot y3= 0; +top y2=h; +draw z1--z2--z3--cycle; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{e} +% The letter \textit{epsilon}, like an E. +% \begin{macrocode} + +cmchar "Greek letter epsilon (e)"; +beginglyph("e",0.6); +x1=x3=leftloc; x4=x6=rightloc; +bot y1= bot y4= -o; top y3= top y6= h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; +draw z4--z1--z3--z6; +draw z2--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{F} +% The letter \textit{digamma}. This is like an F. +% \begin{macrocode} + +cmchar "Greek letter digamma (F)"; +beginglyph("F",0.6); +x1=x3=leftloc; x4=x6=rightloc; +bot y1= bot y4= -o; top y3= top y6= h; +z2=0.65[z1,z3]; z5=0.65[z4,z6]; +draw z1--z3--z6; +draw z2--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The letter \textit{zeta}. This looks like our uppercase letter I. +% \begin{macrocode} + +cmchar "Greek letter zeta (z)"; +beginglyph("z",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; % the upright +x3=x5=leftloc; x4=x6=rightloc; +y3=y4=y1; y5=y6=y2; +draw z3--z4; % lower bar +draw z5--z6; % upper bar +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{h} +% The letter \textit{eta}. It looks like a rectangle with a horizontal +% internal bar. +% \begin{macrocode} + +cmchar "Greek letter eta (h)"; +beginglyph("h", 0.6); +numeric alpha; +x1=x3=leftloc; x4=x6=rightloc; +bot y1 = bot y4= -o; top y3= top y6= h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; +draw z1--z3--z6--z4--cycle; % rectangle +draw z2--z5; % bar +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The letter \textit{theta}. It is a circle with horizontal and vertical diameters. +% \begin{macrocode} + +cmchar "Greek letter theta (T)"; +beginglyph("T",1.0); +path p; +x1=leftloc; x3=rightloc; +y2=h; y4=0; +x2=x4=midloc; +y1=y3=h/2; +z100=(x2,y3); % circle center +p = z1..z2..z3..z4..cycle; % the circle +draw p; +draw z1--z3; draw z2--z4; % the cross +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{i} +% The letter \textit{iota}. It is a vertical line. +% \begin{macrocode} + +cmchar "Greek letter iota (i)"; +beginglyph("i",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The letter \textit{kappa}. It looks like a K. +% \begin{macrocode} + +cmchar "Greek letter kappa (k)"; +beginglyph("k",0.6); +numeric alpha; +alpha:=0.1; +x1=rightloc; +x2=x1+alpha*(w-s); +x3=x4=x5=leftloc; +bot y1= bot y3=-o; +y2=y5=h; y4=1/2h; +draw z3--z5; % the upright +draw z1--z4; draw z4--z2; % the arms +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The letter \textit{lambda}. It is an upside down version of the +% Phoenician \textit{lamed}. +% \begin{macrocode} + +cmchar "Greek letter lambda (l)"; +beginglyph("l",0.4); +x1=x2=leftloc; x3=rightloc; +bot y1=-o; y2=h; +y3=.7h; +draw z1--z2--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The letter \textit{mu}. It is like the Phoenician \textit{mem}. +% \begin{macrocode} + +cmchar"Greek letter mu (m)"; +beginglyph("m",1.0); +x1=rightloc; +x5=x6=leftloc; +x2=3/4[x5,x1]; x3=1/2[x5,x1]; x4=1/4[x5,x1]; +bot y6= -o; +top y5= top y3 = h; +top y1=.8h; +y2=.6h; +y4=.7h; +draw z6--z5; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The letter \textit{nu}. It is a transition between the Phoenician \textit{nun} +% and a modern N. +% \begin{macrocode} + +cmchar "Greek letter nu (n)"; +beginglyph("n",0.6); +x1=x2=leftloc; x3=x4=rightloc; +y1=0; y2=0.8h; y3=0.3h; y4=h; +draw z1--z2--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{x} +% The letter \textit{xi}. It has three horizontal bars with a vertical line +% in the middle. +% \begin{macrocode} + +cmchar "Greek letter xi (x)"; +beginglyph("x", 0.6); +x1=x3=leftloc; x4=x6=rightloc; +bot y1= bot y4= -o; top y3= top y6= h; +z2=0.5[z1,z3]; z5=0.5[z4,z6]; +z7=0.5[z1,z4]; z8=0.5[z3,z6]; +draw z1--z4; draw z2--z5; draw z3--z6; % horizontals +draw z7--z8; % vertical +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The letter \textit{omicron}. An O. +% \begin{macrocode} + +cmchar "Greek letter omicron (o)"; +beginglyph("o",1.0); +x1=leftloc; x3=rightloc; +y2=h; y4=0; +x2=x4=midloc; +y1=y3=h/2; +draw z1..z2..z3..z4..cycle; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The letter \textit{pi}. Looks like a gibbet. +% \begin{macrocode} + +cmchar "Greek letter pi (p)"; +beginglyph("p", 0.4); +x1=x2=leftloc; x3=x4=rightloc; +bot y1=-o; top y2= top y3= h; y4=0.6h; +draw z1--z2--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{q} +% The letter Q. +% It corresponds to the Phoenician \textit{qoph}. +% \begin{macrocode} + +cmchar "Greek letter (koppa) q"; +beginglyph("q",0.6); +numeric alpha; +x1=leftloc; +x3=rightloc; +alpha=0.5(x3-x1); % circle radius +y2=h; +y4=y2-2alpha; +bot y5=-o; +x2=x4=x5=midloc; +y1=y3=h-alpha; +draw z1..z2..z3..z4..cycle; % the circle +draw z5--z4; % the upright +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The letter \textit{rho}. It looks somewhat like a modern R but with a short +% tail. +% \begin{macrocode} + +cmchar "Greek letter rho (r)"; +beginglyph("r", 0.4); +x1=x2=x3=leftloc; x4=rightloc; +bot y1=-o; top y2=h; +y3=y4=0.5h; +draw z1--z2--z4--z3; % the P shape +x5=midloc; y5=0.2h; +draw z3--z5; % a little leg +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{s} +% The letter \textit{sigma}. Like an M on its side. +% \begin{macrocode} + +cmchar "Greek letter sigma (s)"; +beginglyph("s", 0.8); +x2=x4=leftloc; x1=x5=rightloc; +y1=0; y5=h; +y2=0.1h; y4=0.9h; +z3=(midloc,0.5h); +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The letter \textit{tau}. A T. +% \begin{macrocode} + +cmchar "Greek letter tau (t)"; +beginglyph("t", 0.6); +x1=midloc; x2=leftloc; x4=rightloc; +bot y1=-o; top y2= top y4= h; +z3=0.5[z2,z4]; +draw z1--z3; % upright +draw z2--z4; % bar +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The letter \textit{upsilon}, looking like a Y. +% \begin{macrocode} + +cmchar "Greek letter upsilon (y)"; +beginglyph("y", 0.6); +x1=x3=midloc; x2=leftloc; x4=rightloc; +bot y1=-o; top y2= top y4= h; +y3=0.6h; +draw z1--z3; % upright +draw z2--z3--z4; % V +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{X} +% The letter \textit{chi}, looking like an X. +% \begin{macrocode} + +cmchar "Greek letter chi (X)"; +beginglyph("X", 0.6); +x1=x2=leftloc; x3=x4=rightloc; +bot y1= bot y3=-o; top y2= top y4=h; +draw z1--z4; draw z2--z3; +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{f} +% The leter \textit{phi}. Oval with a vertical diameter. +% \begin{macrocode} + +cmchar "Greek letter phi (f)"; +beginglyph("f",0.6); +x1=leftloc; x3=rightloc; +x2=x4=midloc; +y1=y3=0.5h; +y2=h; y4=0; +draw z1..z2..z3..z4..cycle; % the oval +draw z4--z2; % the upright +labels(1,2,3,4,5); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Psi} +% The letter \textit{psi}. An angular form of the modern letter. +% \begin{macrocode} + +cmchar "Greek letter psi (P)"; +beginglyph("P", 0.6); +x1=x3=midloc; x2=leftloc; x4=rightloc; +bot y1=-o; top y2= top y4= h; +y3=0.5h; +z5=0.5[z2,z4]; +draw z1--z5; % upright +draw z2--z3--z4; % V +labels(1,2,3,4,5); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{O} +% The letter \textit{omega}. +% \begin{macrocode} + +cmchar "Greek letter omega (O)"; +beginglyph("O", 1.0); +x1=leftloc; x4=rightloc; +y1=y4=0; +z2=0.35[z1,z4]; z3=0.35[z4,z1]; +x7=midloc; y7=h; +x5=0.1[x1,x4]; x6=0.1[x4,x1]; +y5=y6=0.5h; +draw z1--z2..z5..z7..z6..z3--z4; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% The end of the glyphs, and the file. +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{gvibc}{} + \DeclareFontShape{OT1}{gvibc}{m}{n}{ <-> gvibc10 }{} + \DeclareFontShape{OT1}{gvibc}{bx}{n}{ <-> sub gvibc/m/n }{} + \DeclareFontShape{OT1}{gvibc}{b}{n}{ <-> sub gvibc/m/n }{} + \DeclareFontShape{OT1}{gvibc}{m}{sl}{ <-> sub gvibc/m/n }{} + \DeclareFontShape{OT1}{gvibc}{m}{it}{ <-> sub gvibc/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{gvibc}{} + \DeclareFontShape{T1}{gvibc}{m}{n}{ <-> gvibc10 }{} + \DeclareFontShape{T1}{gvibc}{bx}{n}{ <-> sub gvibc/m/n }{} + \DeclareFontShape{T1}{gvibc}{b}{n}{ <-> sub gvibc/m/n }{} + \DeclareFontShape{T1}{gvibc}{m}{sl}{ <-> sub gvibc/m/n }{} + \DeclareFontShape{T1}{gvibc}{m}{it}{ <-> sub gvibc/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{greek6cbc} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{greek6cbc}[2000/10/01 v2.0 package for 6th century BC Greek font] +% \end{macrocode} +% +% +% \begin{macro}{\gvibcfamily} +% Selects the Greek font family in the T1 encoding. +% \begin{macrocode} +\newcommand{\gvibcfamily}{\usefont{T1}{gvibc}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textgvibc} +% Text command for the Greek font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textgvibc}{\gvibcfamily} +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} + +\chardef\Aalpha=`a +\chardef\Abeta=`b +\chardef\Agamma=`g +\chardef\Adelta=`d +\chardef\Aepsilon=`e +\chardef\Adigamma=`F +\chardef\Azeta=`z +\chardef\Aeta=`h +\chardef\Atheta=`T +\chardef\Aiota=`i +\chardef\Akappa=`k +\chardef\Alambda=`l +\chardef\Amu=`m +\chardef\Anu=`n +\chardef\Axi=`x +\chardef\Aomicron=`o +\chardef\Api=`p +\chardef\Akoppa=`q +\chardef\Arho=`r +\chardef\Asigma=`s +\chardef\Atau=`t +\chardef\Aupsilon=`y +\chardef\Achi=`X +\chardef\Aphi=`f +\chardef\Apsi=`P +\chardef\Aomega=`O + +% \end{macrocode} +% +% \begin{macro}{\translitgvibc} +% \begin{macro}{\translitgvibcfont} +% |\translitgvibc{|\meta{commands}|}| transliterates \meta{commands} +% using the |\translitgvibc| font. +% \begin{macrocode} +\newcommand{\translitgvibc}[1]{{% + \@translitGvi #1}} +\newcommand{\translitgvibcfont}{\mathrm} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitGvi} +% This macro redefines all character commands to produce the transliterated +% version instaed of the glyph. There must be no spaces +% in the definition. +% \begin{macrocode} +\newcommand{\@translitGvi}{% +\def\Aalpha{\ensuremath{\translitgvibcfont{A}}}% +\def\Abeta{\ensuremath{\translitgvibcfont{B}}}% +\def\Agamma{\ensuremath{\translitgvibcfont{\Gamma}}}% +\def\Adelta{\ensuremath{\translitgvibcfont{\Delta}}}% +\def\Aepsilon{\ensuremath{\translitgvibcfont{E}}}% +\def\Adigamma{\ensuremath{\translitgvibcfont{F}}}% +\def\Azeta{\ensuremath{\translitgvibcfont{Z}}}% +\def\Aeta{\ensuremath{\translitgvibcfont{H}}}% +\def\Atheta{\ensuremath{\translitgvibcfont{\Theta}}}% +\def\Aiota{\ensuremath{\translitgvibcfont{I}}}% +\def\Akappa{\ensuremath{\translitgvibcfont{K}}}% +\def\Alambda{\ensuremath{\translitgvibcfont{\Lambda}}}% +\def\Amu{\ensuremath{\translitgvibcfont{M}}}% +\def\Anu{\ensuremath{\translitgvibcfont{N}}}% +\def\Axi{\ensuremath{\translitgvibcfont{\Xi}}}% +\def\Aomicron{\ensuremath{\translitgvibcfont{O}}}% +\def\Api{\ensuremath{\translitgvibcfont{\Pi}}}% +\def\Akoppa{\ensuremath{\translitgvibcfont{Q}}}% +\def\Arho{\ensuremath{\translitgvibcfont{R}}}% +\def\Asigma{\ensuremath{\translitgvibcfont{\Sigma}}}% +\def\Atau{\ensuremath{\translitgvibcfont{T}}}% +\def\Aupsilon{\ensuremath{\translitgvibcfont{\Upsilon}}}% +\def\Achi{\ensuremath{\translitgvibcfont{X}}}% +\def\Aphi{\ensuremath{\translitgvibcfont{\Phi}}}% +\def\Apsi{\ensuremath{\translitgvibcfont{\Psi}}}% +\def\Aomega{\ensuremath{\translitgvibcfont{\Omega}}}% +} + +% \end{macrocode} +% \end{macro} +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The Type1 map file} +% +% Just a line. +% \changes{v2.1}{2005/04/06}{Added map file} +% \begin{macrocode} +%<*map> +gvibc10 Archaic-Greek-6th-Century-BC <gvibc10.pfb +%</map> +% \end{macrocode} +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/greek6cbc.ins b/Master/texmf-dist/source/fonts/archaic/greek6cbc.ins new file mode 100644 index 00000000000..34fbd0548d9 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/greek6cbc.ins @@ -0,0 +1,87 @@ +%% greek6cbc.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{greek6cbc.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +\Msg{*** Generating the Metafont files ***} +\usepostamble\empty +\generateFile{gvibc10.mf}{t}{\from{greek6cbc.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1gvibc.fd}{t}{\from{greek6cbc.dtx}{fdot1}} +\generateFile{t1gvibc.fd}{t}{\from{greek6cbc.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{greek6cbc.sty}{t}{\from{greek6cbc.dtx}{usc}} + +\Msg{*** Generating the Postscript Type1 map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{greek6cbc.map}{t}{\from{greek6cbc.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To proceed with the installation you have to move these files} +\Msg{* into the LaTeX macro area:} +\Msg{* \space\space ot1gvibc.fd} +\Msg{* \space\space t1gvibc.fd} +\Msg{* \space\space greek6cbc.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/hieroglf.dtx b/Master/texmf-dist/source/fonts/archaic/hieroglf.dtx new file mode 100644 index 00000000000..998d590d6b3 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/hieroglf.dtx @@ -0,0 +1,5840 @@ +% \iffalse meta-comment +% +% hieroglf.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 2000--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), 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{hieroglf} +\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{hieroglf.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{12458} +% +% \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@} +% \DoNotIndex{\0,\1,\2,\3,\4,\5,\6,\7,\8,\9} +% +% \changes{v1.0}{2000/08/19}{First public release} +% \changes{v1.1}{2000/08/26}{Added 6 extra glyphs} +% \changes{v1.2}{2000/09/23}{Added glyphs A1, F20, Y4, Z2, Z4} +% \changes{v1.2}{2000/09/23}{Added number glyphs C11, D50, I8, M12, V1, V20} +% \changes{v1.3}{2005/04/02}{Minor updates for changed circumstances and Postscript} +% +% \def\fileversion{v1.0} \def\filedate{2000/08/19} +% \def\fileversion{v1.1} \def\filedate{2000/08/26} +% \def\fileversion{v1.2} \def\filedate{2000/09/23} +% \def\fileversion{v1.3} \def\filedate{2005/04/02} +% \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}} +% +% \title{\Lpack{Hieroglf}: The Poor Man's Hieroglyphic Font\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{hieroglf} bundle provides a Postscript Type1 rendition of some +% of the ancient Egyptian's hieroglyphs. +% Hieroglyphic writing was used between about 3000~\BC{} and 400~\AD. +% +% It is based on Serge Rosmorduc's \Lpack{hieroglyph} package but +% only provides one tenth of his 650 odd hieroglyphs. Sufficient +% glyphs are provided for writing a few names, like Cleopatra or +% Ptolemy, but the package is not for serious Egyptologists. +% +% The package also requires the use of the \Lpack{oands} package. +% \end{abstract} +% \tableofcontents +% \listoftables +% +% +% +% +% \section{Introduction} +% +% The font presented here is a rendition of a very small fraction +% of the hieroglyphs used by the ancient Egyptians between about +% 3000~\BC{} and 400~\AD. +% It is one of a series of fonts that was initially intended +% 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 a Metafont version of the fonts and the package code +% may be 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. There 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 dissappeared 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{hieroglf} package} \label{sec:usc} +% +% Hieroglyphs were first used by the Egyptians around about 3000~\BC, and +% the last datable hieroglyphic inscription was created +% in 394~\AD. The period of use was more than three millenia. +% There is some evidence to suggest that at least some of the signs +% in what might be a proto-Semitic alphabet were developed from the hieroglyphs. +% +% Hieroglyphs are a complete writing system and much is known about the +% hieroglyphic signs, the Egyptian language and grammar. As one might expect +% for a script that spans thousands of years, it changed during its lifetime. +% To date some +% 6000 different glyphs have been recorded, although at any given time +% fewer than 1000 were in use, and only a small proportion of this number +% occured frequently. +% +% +% Apart from the specialised literature, the story of the hieroglyphs +% can be found in Collier \& Manley~\cite{COLLIER98}, Davies~\cite{DAVIES87} +% and Gordon~\cite{GORDON87}, among others. For the Egyptian numbering +% system~\cite{DAVIES87} provides a start while for detailed information +% Ifrah's magnificent work should be consulted~\cite{IFRAH00}. +% +% +% Serge Rosmorduc has created a font set for some 650 hieroglyphs as well +% as a comprehensive package and programs for typesetting +% Egyptian~\cite{HIEROGLYPH}. The fonts in the \Lpack{hieroglyf} package +% are a small subset, about one tenth, of Rosmorduc's fonts +% (which are in the public domain). They should be sufficient to typeset some +% Egyptian words and names, more as a curiousity than for any kind of +% scholarly work. +% +% Use of the \Lpack{hieroglf} package requires that the \Lpack{oands} +% package is also available. +% +% \DescribeMacro{\pmhgfamily} +% This command selects the hieroglyphic font family. +% The family name is |pmhg|. +% +% \DescribeMacro{\textpmhg} +% The command |\textpmhg{|\meta{text}|}| typesets \meta{text} in the +% hieroglyphic font. +% +% I have maintained Rosmorduc's glyph codes, which he based on a work +% that I have not yet been able to get\footnote{The reference given is: +% Jan Buurman, Nicolas Grimal, Michael Hainsworth, Jochen Hallof +% and Dirk Van Der Plas, \textit{Inventaire des signes hieroglyphique en +% vue de leur saisie informatique}.}. Essentially the glyphs come as +% several +% series of signs, where a series is denoted by a letter. An individual +% sign within a series is denoted by a number. For example, the glyphs in +% the G series are all pictures related to birds; the G39 glyph looks, at +% least to me, like a duck standing on the ground and G40 looks like a flying +% duck. +% +% \begin{table} +% \centering +% \caption{Commands and encoding for the signs A---N}\label{tab:basic1} +% \begin{tabular}{lclcp{0.35\textwidth}} \hline +% Glyph & ASCII & Command & Command & Comment \\ \hline +% A1 & & |\HAi| & |\Hman| & kneeling man pointing (man) \\ +% A2 & I & |\HAii| & |\HI| & man pointing at mouth (eat, drink, speak) \\ +% A28 & Y & |\HAxxviii| & |\HY| & man with upraised arms (joy) \\ +% C11 & 7 & |\HCxxi| & |\Hmillion| & kneeling man with upraised arms (hh, numeral 1,000,000) \\ +% D1 & Q & |\HDi| & |\HQ| & profile of head (tp) \\ +% D2 & q & |\HDii| & |\Hq| & full face (hr) \\ +% D4 & e & |\HDiv| & |\He| & an eye (ir) \\ +% D21 & r & |\HDxxi| & |\Hr| & pointy ellipse (mouth, r) \\ +% D36 & A & |\HDxxxvi| & |\HA| & elbow, forearm and hand (the semitic gutteral ayin) \\ +% D46 & d & |\HDxlvi| & |\Hd| & hand in a mitt (d) \\ +% D47 & P & |\HDxlvii| & |\HP| & curved hand in mitt (palm of hand) \\ +% D50 & 5 & |\HDl| & |\HXthousand| & ship's ventilator (db, numeral 10,000) \\ +% D54 & L & |\HDliv| & |\HL| & legs walking left (walk, run, come, ir) \\ +% D58 & b & |\HDlviii| & |\Hb| & lower leg and foot (b) \\ +% E23 & l & |\HExxiii| & |\Hl| & lion lying down (l) \\ +% F1 & X & |\HFi| & |\HX| & ox head \\ +% F20 & & |\HFxx| & |\Htongue| & tongue (ns) \\ +% F31 & & |\HFxxxi| & |\Hms| & three brambles hanging down (ms) \\ +% F34 & G & |\HFxxxiv| & |\HG| & vase with stopper (heart, ib) \\ +% F40 & Z & |\HFxl| & |\HZ| & like a zylophone (Aw) \\ +% G1 & a & |\HGi| & |\Ha| & Egyptian vulture (glottal stop) \\ +% G17 & m & |\HGxvii| & |\Hm| & owl (m) \\ +% G26 & & |\HGxxvi| & |\Hibp| & sacred ibis on a post (dhwty) \\ +% G26* & & |\HGxxvis| & |\Hibw| & ibis (jabiru?) walking (b) \\ +% G27 & & |\HGxxvii| & |\Hibs| & short-necked ibis pecking \\ +% G28 & & |\HGxxviii| & |\Hibl| & long-necked black ibis pecking (gm) \\ +% G36 & R & |\HGxxxvi| & |\HR| & a swallow (wr) \\ +% G43 & w & |\HGxliii| & |\Hw| & a quail chick (w) \\ +% H8 & O & |\HHviii| & |\HO| & egg \\ +% I8 & 6 & |\HIviii| & |\HCthousand| & mongoose? (hfnw, numeral 100,000) \\ +% I9 & f & |\HIix| & |\Hf| & horned viper (f) \\ +% I10 & D & |\HIx| & |\HD| & cobra with dropped tail (a dj sound) \\ +% K1 & F & |\HKi| & |\HF| & fish with large dorsal fin (in) \\ +% M3 & N & |\HMiii| & |\HN| & tree branch (wood, tree, Ht) \\ +% M8 & E & |\HMviii| & |\HE| & lotus pool (SA) \\ +% M12 & 4 & |\HMxii| & |\Hthousand| & lotus (h3, numeral 1,000) \\ +% M17 & i & |\HMxvii| & |\Hi| & a machette (i) \\ +% N29 & K & |\HNxxix| & |\HK| & triangle with wavy hypotenuse (q) \\ +% N35 & n & |\HNxxxv| & |\Hn| & zigzag line (n) \\ +% N37 & z & |\HNxxxvii| & |\Hz| & rectangle (stone, sh) \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% \begin{table} +% \centering +% \caption{Commands and encoding for the signs O---PW}\label{tab:basic2} +% \begin{tabular}{lclcp{0.35\textwidth}} \hline +% Glyph & ASCII & Command & Command & Comment \\ \hline +% O1 & j & |\HOi| & |\Hj| & single doored house floorplan (house, pr) \\ +% O4 & h & |\HOiv| & |\Hh| & square spiral (h) \\ +% O34 & S & |\HOxliv| & |\HS| & horizontal line with 2 blobs (z or s) \\ +% Q3 & p & |\HQiii| & |\Hp| & a square (p) \\ +% R7 & B & |\HRvii| & |\HB| & pestle and mortar (b) \\ +% S12 & v & |\HSxii| & |\Hv| & a gold collar (nbw) \\ +% S29 & s & |\HSxxix| & |\Hs| & long umbrella handle (s) \\ +% S39 & ? & |\HSxxxix| & |\Hquery| & shepherd's crook (awt) \\ +% S41 & c & |\HSxli| & |\Hc| & hanging twisted string (dm) \\ +% T3 & u & |\HTiii| & |\Hu| & upright with a knob at top (HD) \\ +% T14 & / & |\HTxiv| & |\Hslash| & throw stick, boomerang (qma) \\ +% U36 & J & |\HUxxxvi| & |\HJ| & upright cudgel (Hm) \\ +% V1 & 3 & |\HVi| & |\Hhundred| & coil of rope (st, numeral 100) \\ +% V4 & o & |\HViv| & |\Ho| & lassoo (wA) \\ +% V13 & T & |\HVxiii| & |\HT| & pair of sugar tongs (tj, T) \\ +% V20 & 2 & |\HVxx| & |\Hten| & cattle hobble (mdw, numeral 10) \\ +% V24 & U & |\HVxxiv| & |\HU| & vertical line with centre oval (wD) \\ +% V28 & H & |\HVxxviii| & |\HH| & twisted flax (an emphatic h) \\ +% V31 & k & |\HVxxxi| & |\Hk| & bowl with handle (k) \\ +% W11 & g & |\HWxi| & |\Hg| & chockstone of a stone arch with triangular crest (g) \\ +% X1 & t & |\HXi| & |\Ht| & upper semicircle (t) \\ +% Y1v & V & |\HYiV| & |\HV| & rectangle with W (book, writing, abstract) \\ +% Y4 & & |\HYiv| & |\Hscribe| & scribe (sh) \\ +% \DeleteShortVerb{\|}\MakeShortVerb{\?}% +% Z1 & ?|? & ?\HZi? & ?\Hvbar?, ?\Hone? & short vertical line (numeral 1) \\ +% \DeleteShortVerb{\?}\MakeShortVerb{\|}% +% Z2 & & |\HZii| & |\Hplural| & 3 short vertical lines (plural) \\ +% Z4 & & |\HZiv| & |\Hdual| & 2 short sloping lines (dual, pair) \\ +% Z6 & & |\HZvi| & |\Hsv| & stick with a V at righthand end \\ +% Z7 & W & |\HZvii| & |\HW| & curved spiral (W) \\ +% Z11 & + & |\HZxi| & |\Hplus| & crossed planks (imi, wnm) \\ +% Aa1 & C & |\HAai| & |\HC| & shaded circle (ch as in loch, x) \\ +% Aa12 & M & |\HAaxii| & |\HM| & parallel lines joined at left (M) \\ +% PW1 & x & |\HPWi| & |\Hx| & notched rectangle (door) \\ +% PW2 & y & |\HPWii| & |\Hy| & a pair of machettes (y) \\ +% \hline +% \end{tabular} +% \end{table} +% +% There are three ways of accessing the glyphs: +% ASCII characters, a command based on Rosmorduc's coding, and a command +% based on the name of the ASCII character. +% +% The commands (and their ASCII equivalents) for the glyphs +% are given in Tables~\ref{tab:basic1} and~\ref{tab:basic2}. The comment column +% in the Tables first attempts to describe the appearance of the glyph, then +% in parenthesis, if I know it, the meaning and/or the sound that the glyph +% represents. +% +% The glyphs denoted as PWn are my additions to Rosmorduc's glyphs and coding +% scheme. +% +% +% More graphically, table~\ref{tab:coded} +% shows the `numeric' coded commands and the corresponding +% glyphs. +% +% Table~\ref{tab:alpha} +% shows the alphabetic coding (in both single +% character and command form) and the corresponding glyphs together with their +% transliterations. Note that not every glyph has a transliteration. +% +% \DeleteShortVerb{\|} +% +% \begin{table} +% \begin{addtomargins}{-1in} +% \centering +% \caption{Coded coding} \label{tab:coded} +% \begin{tabular}{|l|c||l|c||l|c|} \hline +% \verb|\HAii| (A2) & \textpmhg{\HAii} & \verb|\HNxxix| (N31) & \textpmhg{\HNxxix} & \verb|\HAai| (Aa1) & \textpmhg{\HAai} \\ +% \verb|\HAxxviii| (A28) & \textpmhg{\HAxxviii} & \verb|\HNxxxv| (N35) & \textpmhg{\HNxxxv} & \verb|\HAaxii| (Aa12) & \textpmhg{\HAaxii} \\ +% \verb|\HDi| (D1) & \textpmhg{\HDi} & \verb|\HNxxxvii| (N37) & \textpmhg{\HNxxxvii} & \verb|\HPWi| (PW1) & \textpmhg{\HPWi} \\ +% \verb|\HDii| (D2) & \textpmhg{\HDii} & \verb|\HOi| (O1) & \textpmhg{\HOi} & \verb|\HPWii| (PW2) & \textpmhg{\HPWii} \\ +% \verb|\HDiv| (D4) & \textpmhg{\HDiv} & \verb|\HOiv| (O4) & \textpmhg{\HOiv} & \verb|\HFxxxi| (F31) & \textpmhg{\HFxxxi} \\ +% \verb|\HDxxi| (D21) & \textpmhg{\HDxxi} & \verb|\HOxxxiv| (O34) & \textpmhg{\HOxxxiv} & \verb|\HGxxvi| (G26) & \textpmhg{\HGxxvi} \\ +% \verb|\HDxxxvi| (D36) & \textpmhg{\HDxxxvi} & \verb|\HQiii| (Q3) & \textpmhg{\HQiii} & \verb|\HGxxvis| (G26*) & \textpmhg{\HGxxvis} \\ +% \verb|\HDxlvi| (D46) & \textpmhg{\HDxlvi} & \verb|\HRvii| (R7) & \textpmhg{\HRvii} & \verb|\HGxxvii| (G27) & \textpmhg{\HGxxvii} \\ +% \verb|\HDxlvii| (D47) & \textpmhg{\HDxlvii} & \verb|\HSxii| (S12) & \textpmhg{\HSxii} & \verb|\HGxxviii| (G28) & \textpmhg{\HGxxviii} \\ +% \verb|\HDliv| (D54) & \textpmhg{\HDliv} & \verb|\HSxxix| (S29) & \textpmhg{\HSxxix} & \verb|\HZvi| (Z6) & \textpmhg{\HZvi} \\ +% \verb|\HDlviii| (D58) & \textpmhg{\HDlviii} & \verb|\HSxxxix| (S39) & \textpmhg{\HSxxxix} & \verb|\HAi| (A1) & \textpmhg{\HAi} \\ +% \verb|\HExxiii| (E23) & \textpmhg{\HExxiii} & \verb|\HSxli| (S41) & \textpmhg{\HSxli} & \verb|\HFxx| (F20) & \textpmhg{\HFxx} \\ +% \verb|\HFi| (F1) & \textpmhg{\HFi} & \verb|\HTiii| (T3) & \textpmhg{\HTiii} & \verb|\HYiv| (Y4) & \textpmhg{\HYiv} \\ +% \verb|\HFxxxiv| (F34) & \textpmhg{\HFxxxiv} & \verb|\HTxiv| (T14) & \textpmhg{\HTxiv} & \verb|\HZii| (Z2) & \textpmhg{\HZii} \\ +% \verb|\HFxl| (F40) & \textpmhg{\HFxl} & \verb|\HUxxxvi| (U36) & \textpmhg{\HUxxxvi} & \verb|\HZiv| (Z4) & \textpmhg{\HZiv} \\ +% \verb|\HGi| (G1) & \textpmhg{\HGi} & \verb|\HViv| (V4) & \textpmhg{\HViv} & \verb|\HCxi| (C11) & \textpmhg{\HCxi} \\ +% \verb|\HGxvii| (G17) & \textpmhg{\HGxvii} & \verb|\HVxiii| (V13) & \textpmhg{\HVxiii} & \verb|\HDl| (D50) & \textpmhg{\HDl} \\ +% \verb|\HGxxxvi| (G36) & \textpmhg{\HGxxxvi} & \verb|\HVxxiv| (V24) & \textpmhg{\HVxxiv} & \verb|\HIviii| (I8) & \textpmhg{\HIviii} \\ +% \verb|\HGxliii| (G43) & \textpmhg{\HGxliii} & \verb|\HVxxviii| (V28) & \textpmhg{\HVxxviii} & \verb|\HMxii| (M12) & \textpmhg{\HMxii} \\ +% \verb|\HHviii| (H8) & \textpmhg{\HHviii} & \verb|\HVxxxi| (V31) & \textpmhg{\HVxxxi} & \verb|\HVi| (V1) & \textpmhg{\HVi} \\ +% \verb|\HIix| (I9) & \textpmhg{\HIix} & \verb|\HWxi| (W11) & \textpmhg{\HWxi} & \verb|\HVxx| (V20) & \textpmhg{\HVxx} \\ +% \verb|\HIx| (I10) & \textpmhg{\HIx} & \verb|\HXi| (X1) & \textpmhg{\HXi} & & \\ +% \verb|\HKi| (K1) & \textpmhg{\HKi} & \verb|\HYiV| (Y1v) & \textpmhg{\HYiV} & & \\ +% \verb|\HMiii| (M3) & \textpmhg{\HMiii} & \verb|\HZi| (Z1) & \textpmhg{\HZi} & & \\ +% \verb|\HMviii| (M8) & \textpmhg{\HMviii} & \verb|\HZvii| (Z7) & \textpmhg{\HZvii} & & \\ +% \verb|\HMxvii| (M17) & \textpmhg{\HMxvii} & \verb|\HZxi| (Z11) & \textpmhg{\HZxi} & & \\ +% \hline +% \end{tabular} +% \end{addtomargins} +% \end{table} +% +% \begin{table} +% \begin{addtomargins}{-1in} +% \centering +% \caption{Alphabetic coding} \label{tab:alpha} +% \begin{tabular}{|cl|c|l||cl|c|l||cl|c|l|} \hline +% A & \verb|\HA| & \textpmhg{A} & \translitpmhg{\HA} & a & \verb|\Ha| & \textpmhg{a} & \translitpmhg{\Ha} +% & + & \verb|\Hplus| & \textpmhg{+} & \translitpmhg{\Hplus} \\ +% B & \verb|\HB| & \textpmhg{B} & \translitpmhg{\HB} & b & \verb|\Hb| & \textpmhg{b} & \translitpmhg{\Hb} +% & ? & \verb|\Hquery| & \textpmhg{?} & \translitpmhg{\Hquery} \\ +% C & \verb|\HC| & \textpmhg{C} & \translitpmhg{\HC} & c & \verb|\Hc| & \textpmhg{c} & \translitpmhg{\Hc} +% & / & \verb|\Hslash| & \textpmhg{/} & \translitpmhg{\Hslash} \\ +% D & \verb|\HD| & \textpmhg{D} & \translitpmhg{\HD} & d & \verb|\Hd| & \textpmhg{d} & \translitpmhg{\Hd} +% & \verb?|? & \verb|\Hvbar| & \textpmhg{|} & \translitpmhg{\Hvbar} \\ +% E & \verb|\HE| & \textpmhg{E} & \translitpmhg{\HE} & e & \verb|\He| & \textpmhg{e} & \translitpmhg{\He} +% & & \verb|\Hms| & \textpmhg{\Hms} & \translitpmhg{\Hms} \\ +% F & \verb|\HF| & \textpmhg{F} & \translitpmhg{\HF} & f & \verb|\Hf| & \textpmhg{f} & \translitpmhg{\Hf} +% & & \verb|\Hibp| & \textpmhg{\Hibp} & \translitpmhg{\Hibp} \\ +% G & \verb|\HG| & \textpmhg{G} & \translitpmhg{\HG} & g & \verb|\Hg| & \textpmhg{g} & \translitpmhg{\Hg} +% & & \verb|\Hibw| & \textpmhg{\Hibw} & \translitpmhg{\Hibw} \\ +% H & \verb|\HH| & \textpmhg{H} & \translitpmhg{\HH} & h & \verb|\Hh| & \textpmhg{h} & \translitpmhg{\Hh} +% & & \verb|\Hibs| & \textpmhg{\Hibs} & \translitpmhg{\Hibs} \\ +% I & \verb|\HI| & \textpmhg{I} & \translitpmhg{\HI} & i & \verb|\Hi| & \textpmhg{i} & \translitpmhg{\Hi} +% & & \verb|\Hibl| & \textpmhg{\Hibl} & \translitpmhg{\Hibl} \\ +% J & \verb|\HJ| & \textpmhg{J} & \translitpmhg{\HJ} & j & \verb|\Hj| & \textpmhg{j} & \translitpmhg{\Hj} +% & & \verb|\Hsv| & \textpmhg{\Hsv} & \translitpmhg{\Hsv} \\ +% K & \verb|\HK| & \textpmhg{K} & \translitpmhg{\HK} & k & \verb|\Hk| & \textpmhg{k} & \translitpmhg{\Hk} +% & & \verb|\Hman| & \textpmhg{\Hman} & \translitpmhg{\Hman} \\ +% L & \verb|\HL| & \textpmhg{L} & \translitpmhg{\HL} & l & \verb|\Hl| & \textpmhg{l} & \translitpmhg{\Hl} +% & & \verb|\Htongue| & \textpmhg{\Htongue} & \translitpmhg{\Htongue} \\ +% M & \verb|\HM| & \textpmhg{M} & \translitpmhg{\HM} & m & \verb|\Hm| & \textpmhg{m} & \translitpmhg{\Hm} +% & & \verb|\Hscribe| & \textpmhg{\Hscribe} & \translitpmhg{\Hscribe} \\ +% N & \verb|\HN| & \textpmhg{N} & \translitpmhg{\HN} & n & \verb|\Hn| & \textpmhg{n} & \translitpmhg{\Hn} +% & & \verb|\Hplural| & \textpmhg{\Hplural} & \translitpmhg{\Hplural} \\ +% O & \verb|\HO| & \textpmhg{O} & \translitpmhg{\HO} & o & \verb|\Ho| & \textpmhg{o} & \translitpmhg{\Ho} +% & & \verb|\Hdual| & \textpmhg{\Hdual} & \translitpmhg{\Hdual} \\ +% P & \verb|\HP| & \textpmhg{P} & \translitpmhg{\HP} & p & \verb|\Hp| & \textpmhg{p} & \translitpmhg{\Hp} +% & \verb?|? & \verb|\Hone| & \textpmhg{|} & \translitpmhg{\Hone} \\ +% Q & \verb|\HQ| & \textpmhg{Q} & \translitpmhg{\HQ} & q & \verb|\Hq| & \textpmhg{q} & \translitpmhg{\Hq} +% & 2 & \verb|\Hten| & \textpmhg{2} & \translitpmhg{\Hten} \\ +% R & \verb|\HR| & \textpmhg{R} & \translitpmhg{\HR} & r & \verb|\Hr| & \textpmhg{r} & \translitpmhg{\Hr} +% & 3 & \verb|\Hhundred| & \textpmhg{3} & \translitpmhg{\Hhundred} \\ +% S & \verb|\HS| & \textpmhg{S} & \translitpmhg{\HS} & s & \verb|\Hs| & \textpmhg{s} & \translitpmhg{\Hs} +% & 4 & \verb|\Hthousand| & \textpmhg{4} & \translitpmhg{\Hthousand} \\ +% T & \verb|\HT| & \textpmhg{T} & \translitpmhg{\HT} & t & \verb|\Ht| & \textpmhg{t} & \translitpmhg{\Ht} +% & 5 & \verb|\HXthousand| & \textpmhg{5} & \translitpmhg{\HXthousand} \\ +% U & \verb|\HU| & \textpmhg{U} & \translitpmhg{\HU} & u & \verb|\Hu| & \textpmhg{u} & \translitpmhg{\Hu} +% & 6 & \verb|\HCthousand| & \textpmhg{6} & \translitpmhg{\HCthousand} \\ +% V & \verb|\HV| & \textpmhg{V} & \translitpmhg{\HV} & v & \verb|\Hv| & \textpmhg{v} & \translitpmhg{\Hv} +% & 7 & \verb|\Hmillion| & \textpmhg{7} & \translitpmhg{\Hmillion} \\ +% W & \verb|\HW| & \textpmhg{W} & \translitpmhg{\HW} & w & \verb|\Hw| & \textpmhg{w} & \translitpmhg{\Hw} & & & & \\ +% X & \verb|\HX| & \textpmhg{X} & \translitpmhg{\HX} & x & \verb|\Hx| & \textpmhg{x} & \translitpmhg{\Hx} & & & & \\ +% Y & \verb|\HY| & \textpmhg{Y} & \translitpmhg{\HY} & y & \verb|\Hy| & \textpmhg{y} & \translitpmhg{\Hy} & & & & \\ +% Z & \verb|\HZ| & \textpmhg{Z} & \translitpmhg{\HZ} & z & \verb|\Hz| & \textpmhg{z} & \translitpmhg{\Hz} & & & & \\ +% \hline +% \end{tabular} +% \end{addtomargins} +% \end{table} +% +% \MakeShortVerb{\|} +% +% \DescribeMacro{\pmglyph} +% The command |\pmglyph{|\meta{codes}|}| will typeset its argument as +% hieroglyphs. The \meta{codes} argument can contain character commands +% and the two special characters |-| and |:|. +% The special |-| character causes the +% following glyph to be typeset to the right of the previous glyph, and +% adds a little (breakable) space between the two glyphs. +% The special |:| character causes the following glyph to be typeset below +% the previous glyph. The characters |{| and |}| can be used for grouping. +% For example +% |\pmglyph{K:l-i-o-p-a-d:r-a}| (which means Cleopatra) typesets the \textit{l} +% glyph under the \textit{K} glyph, then there are the \textit{i}, +% \textit{o}, \textit{p}, and \textit{a} glyphs in a line, +% followed by the \textit{d} glyph stacked above the \textit{r} glyph, +% and ending with the final +% \textit{a} glyph. +% +% As another example |\pmglyph{A-i-{p-x}:a-H}| results in +% the \textit{a} glyph being typeset below both the \textit{p} and \textit{x} +% glyphs (alternatively, the \textit{p} and \textit{x} glyphs are both +% typeset above the \textit{a} glyph). +% +% This last example could just as well have been written as: \\ +% |\pmglyph{\HA-\Hi-{\Hp-\Hx}:\Ha-\HH}| or \\ +% |\pmglyph{\HDxxxvi-\HMxvii-{\HQiii-\HPWi}:\HGi-\HVxxviii}|, or any combination +% of these. Note, however, that |\pmglyph{{Ai{px}:aH}| will produce a very +% different typeset result (it typesets the \textit{A}, \textit{i}, \textit{p} +% and \textit{x} glyphs all in a row above the \textit{a} and \textit{H} glyphs +% which are also in a row). +% +% +% \DescribeMacro{\cartouche} +% \DescribeMacro{\Cartouche} +% The command |\cartouche{|\meta{text}|}| draws a cartouche around \meta{text}. +% A cartouche is an oval box with a vertical line at the right hand end. It +% is used for enclosing royal names. The only difference between the |\cartouche| +% and |\Cartouche| is that a |\cartouche| is drawn with |\thinlines| while +% |\Cartouche| is drawn with |\thicklines|. The seperation between the cartouche box +% and the enclosed text is given by the normal \LaTeX{} |\fboxsep| command. +% A cartouche command should not be used as part of the argument to |\pmglyph|; +% instead use |\pmglyph| as the argument to the cartouche commands. That is: \\ +% |\pmglyph{...\cartouche{...}...}| \\ +% will produce unexpected results; instead use \\ +% |\pmglyph{...} \cartouche{\pmglyph{...}} \pmglyph{...}| \\ +% The |\cartouche| command can take any text, for example: \\ +% |\cartouche{Some text}| will draw a cartouche around the two +% words \textit{Some text}; or add interest to an otherwise dry maths paper +% by cartouching some equations --- |\cartouche{$sin^{2} x + cos^{2} x = 1$}| +% +% As an example the cartouche, and transliteration, of Cleopatra shown below is +% produced by the following code: +% \begin{verbatim} +% \cartouche{\pmglyph{K:l-i-o-p-a-d:r-a}} \translitpmhg{\HK\Hl\Hi\Ho\Hp\Ha\Hd\Hr\Ha} +% \end{verbatim} +% +% \cartouche{\pmglyph{K:l-i-o-p-a-d:r-a}} \translitpmhg{\HK\Hl\Hi\Ho\Hp\Ha\Hd\Hr\Ha} +% +% \vspace{\baselineskip} +% +% +% \DescribeMacro{\pmvglyph} +% \DescribeMacro{\vertouche} +% \DescribeMacro{\Vertouche} +% The commands |\pmglyph|, |\cartouche| and |\Cartouche| are for use when +% the glyphs are principally in a horizontal sequence. The total height +% of the glyphs as printed are, as far as possible, limited to the height +% of a single line of text. +% +% In cases where the glyphs are principally in a vertical sequence, use +% the corresponding vertical versions of the commands, namely +% |\pmvglyph|, |\vertouche| and |\Vertouche|. With these commands, the +% total height of the glyphs is unlimited (except by the physical size +% of the page). +% +% +% \DescribeMacro{\cartouchecorner} +% \DescribeMacro{\cartouchecorner*} +% When \LaTeX{} normally draws an oval box it tries to make the left and right +% hand ends as close to a semicircle as it can, given the limited number of +% circular arcs it has got to choose from. The command +% |\cartouchecorner{|\meta{fraction}|}| instructs \LaTeX{} to do its best to make +% the diameter of the corner circles equal to \meta{fraction} of the height of +% the cartouche. For example |\cartouchecorner{0.5}| asks for the corner diameter +% to be half the height of the cartouche, while |\cartouchecorner{1}| asks +% for the ends to be semicrcles. The |\cartouchecorner*{|\meta{length}|}| command is +% similar except that \LaTeX{} will try and use corners of diameter \meta{length}. +% +% \DescribeMacro{\translitpmhg} +% \DescribeMacro{\translitpmhgfont} +% |\translitpmhg{|\meta{char-commands}|}| will typeset a transliterated version +% of \meta{char-commands}, where the commands are taken from the fourth column +% of Tables~\ref{tab:basic1} and/or~\ref{tab:basic2}. That is, commands +% like |\HK| must be used rather than either |K| or |\HNxxix|. +% The transliteration is typeset using the |\translitpmhgfont|, which is +% initialised to |\itshape|. The font can be changed by renewing +% the |\trnslitpmhgfont| command. +% +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[CM98]{COLLIER98} +% Mark Collier and Bill Manley. +% \newblock \emph{How to Read Egyptian Hieroglyphs}. +% \newblock University of California Press, 1998. +% (ISBN 0-520-21597-4) +% +% \bibitem[Dav87]{DAVIES87} +% W.~V.~Davies. +% \newblock \emph{Egyptian Hieroglyphs}. +% \newblock University of California Press/British Museum, 1987. +% (ISBN 0-520-06287-6) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Gor87]{GORDON87} +% Cyrus H.~Gordon. +% \newblock \emph{Forgotten Scripts}. +% \newblock Dorset Press, (Revised and enlarged edition) 1987. +% +% \bibitem[Ros95]{HIEROGLYPH} +% Serge Rosmorduc. +% \newblock \emph{A \LaTeX periment of hieroglyphic typesetting}. +% \newblock 1995. (Available from CTAN in \texttt{fonts/hieroglyph}). +% +% \bibitem[Ifr00]{IFRAH00} +% Georges Ifrah. +% \newblock \emph{The Universal History of Numbers}. +% \newblock John Wiley \& Sons, 2000, +% (ISBN 0-471-37568-3). +% \newblock (Originally published as \textit{Histoire universelle des chiffres}, +% Editions Robert Laffort, Paris, 1994.) +% +% \bibitem[Zan98]{FANCYBOX} +% Timothy Van Zandt. +% \newblock \emph{Documentation for fancybox.sty --- Box tips and tricks +% for \LaTeX}. +% \newblock 1998. (Available from CTAN in the \texttt{fancybox} subdirectory). +% +% \end{thebibliography} +% +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% +% \subsection{Initialization} +% +% This part of the Metafont code sets up the general font characteristics. +% +% \begin{macrocode} +%<*maj> +%% PMHG.MF Program file for poor man's hieroglyphic font. +%% +%% It is a concatenation of parts of the font definitions +%% from the hieroglyphic package. The fonts in that package +%% are declared to be in the public domain, so these font +%% definitions are similarly in the public domain. +%% +% \end{macrocode} +% +% \DescribeVariable{true_design_size} +% The design size, +% \begin{macrocode} +true_design_size# := 14pt#; +% \end{macrocode} +% Input the definitions, per the \Lpack{hieroglyph} package. +% \begin{macrocode} +%%%input Hibzrstp; + +% \end{macrocode} +% The relevent definitions are in the \file{Hibzrstp.mf} file of the +% \Lpack{hieroglyph} package. As a convenience, this file is included +% here so that the user does not have to get the \Lpack{hieroglyph} +% package. +% +% \begin{macrocode} +%%%%%%%%%%%%%%%%%%%% file Hibzrstp.mf from the hieroglyph package %%%%%% +% +% THIS FILE was patched (1993) by S. Rosmorduc to allow both left-to-right and +% right-to-left drawing with the same MF sources. +% This patch is probably of no interest for non-hieroglyphic fonts. +% +% bzrsetup.mf: interesting and/or necessary things for bzrto's Metafont output. +% +% Copyright (C) 1992 Free Software Foundation, Inc. +% +% This program is free software; you can redistribute it and/or modify +% it under the terms of the GNU General Public License as published by +% the Free Software Foundation; either version 2, or (at your option) +% any later version. +% +% This program is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this program; if not, write to the Free Software +% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +% |true_design_size| must be set before this file is input. It is +% supposed to be the design size of the original font. If the user does +% not set |designsize| on the command line, we default to the following. +default_design_size# := 10pt#; +if designsize = 0: designsize := default_design_size#; fi; + +% It's pointless to actually produce different TFM files for different +% design sizes: we have only one set of outlines, after all. So we +% adjust the resolution to account for different sizes, by setting +% |mag|. Then we reset |designsize| to the default. +if unknown mag: mag := 1; fi; +mag := mag * designsize / default_design_size#; + +% So we can produce output at varying sizes, all our dimensions are +% output in terms of the ad hoc parameter |u|. +% +u# := default_design_size# / true_design_size#; + +designsize := default_design_size#; + +% Macros from page 289 of {\sl The Metafontbook} for short-circuit evaluation. +% +def cand (text q) = startif true q else: false fi enddef; +def cor (text q) = startif true true else: q fi enddef; +tertiarydef p startif true = if p: enddef; + +% The proof resolution of 2601.72 pixels per inch established by plain +% \MF\ does not always work, because the characters might be too large +% (or small, for that matter) for the paper size. So, here we change +% the proof resolution to fit the design size of the font into +% |proof_size| inches. To do this, we must know the resolution of the +% device the proof output will be printed on; we make |proof_resolution| +% default to 300. +% +if unknown mode cor ((mode = proof) or (mode = smoke)): + % Given in inches: + if unknown proof_size: proof_size := 7; fi; + + % Given in pixels per inch: + if unknown proof_resolution: proof_resolution := 300; fi; + + % Set up the new mode to be the same as the old one, except for the + % resolution. + original_mode := if known mode: mode else: proof fi; + mode_def bzr_proof_mode = + if original_mode = proof: + proof_; + else: + smoke_; + fi; + pixels_per_inch + := (proof_size * proof_resolution) + * (72.27 / proof_resolution) + * (72.27 / designsize); + enddef; + mode := bzr_proof_mode; +fi; + +% Set up the device values for this run. Since we allow a nonstandard +% value of |proofing| (see below), we must save its value, if it has +% already been assigned. +% +if (known proofing) cand (proofing > 2): + save_proofing := proofing; +fi + +mode_setup; + +if known save_proofing: + proofing := save_proofing; +fi; + + +% We can't define the pixel-oriented version of |u| until after +% |mode_setup| has been called. +define_pixels (u); + + +% Use a font that blends better with the \MF\ logo for the title line. +% +special "titlefont cmss8"; + +% If we are doing smoke proofs, put the character at its actual size on +% the output; if we're doing gray proofs, use a smaller font for the +% labels. +% + +% Produce a |makelabel| command for each |z| point in |point_list| and +% each suffix in |suffixes|. +% +def general_label (text point_list, suffixes) = + forsuffixes point_suffix = ,suffixes: + forsuffixes point = point_list: + % Unfortunately, the way in which the |str| operator formats its + % argument (which is an arbitrary suffix) cannot be changed, so + % the proofsheets end up showing "0 0" for the variable |z[0][0]|. + makelabel (str point.point_suffix, z.point.point_suffix); + endfor + endfor +enddef; + +% Define our labels for the proofsheets. The person running Metafont +% can also see the control points on each spline, by setting +% |proofing>2| at the beginning. (The {\tt plain.mf} macros only +% distinguish between |proofing=0|, |proofing>0| and |proofing>1|, so we +% are not disturbing them.) +% +def proof_labels (text t) = + % We need to delimit the arguments here, so \MF\ knows where the + % second |text| argument begins. Our output uses the suffix |"s"| for + % startpoints of segments, and the suffixes |"c1"| and |"c2"| for + % control points. + if proofing > 1: general_label (t) (s); fi; + if proofing > 2: general_label (t) (c1,c2); fi; +enddef; + + +% We define our characters as filled outlines; page 206 of {\sl The +% Metafontbook} suggests disabling \MF's |autorounding| and +% |smoothing| features in that case. +% +autorounding := 0; % 0 avant pour les deux! +%%% granularity:=0; +smoothing := 0; + +% Sometimes we want to fill our paths, other times unfill them, +% depending on whether the winding number is positive or negative. We +% could be absolutely safe here, and declare |temp_path| inside a group, +% at every invocation of |fill_or_unfill|; but this would waste time and +% space to no advantage, since we know exactly what kind of \MF\ +% programs we output, and the variable |temp_path| is not used in them. +% +% Incidentally, we need a variable in the first place only because it is more +% efficient to avoid evaluating long paths more than once. +% +path temp_path; + +def fill_or_unfill expr p = + temp_path := p; + if turningnumber temp_path > 0: fill else: unfill fi temp_path; +enddef; + +% Since we can assume the font fills all cycles counterclockwise +% (because PostScript requires this), we want to disable the +% |turningnumber| checking which generates the `Strange path' errors. +% See p.112 and p.119 of the Metafontbook. +% +% (By the way, setting |turningcheck := 0| makes Metafont always use the +% filling rule for positive turning number, i.e., always |fill| and +% never |unfill|. When would this be useful?) +% +turningcheck := 1; + +% When we don't know the dimensions of the character we're defining +% before we define it, we have to use these to begin it: +def begin_no_dimen_char (expr c) = + begingroup + transform save_currenttransform; + save_currenttransform := currenttransform; + charcode:=if known c: byte c else: 0 fi; + charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar; +enddef; + +def end_no_dimen_char = + currenttransform := save_currenttransform; + endchar; +enddef; + +% When use the above to start a character, must call this before `endchar'. +% +def set_char_dimens (expr w_sharp,h_sharp,d_sharp) = + charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; + w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp); +enddef; + +% Move by shifting the current transform matrix. +% +def move (expr h_amount, v_amount) = + currenttransform := currenttransform shifted (h_amount, v_amount); +enddef; + +def hmove (expr amount) = move (amount, 0); enddef; +def vmove (expr amount) = move (0, amount); enddef; + +%% +%% BEGINNING OF PATCH +%% +def depart= -31; enddef; + +transform modif; +modif := identity; +def mamodif= identity; enddef; + +def beginchar(expr c,w_sharp,h_sharp,d_sharp) = + begingroup + charcode:=c + depart; + charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; + w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp); + charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar; + transform save_currenttransform; + save_currenttransform= currenttransform; + modif:= mamodif; + currenttransform:= currenttransform transformed modif; + enddef; + +def endchar = + scantokens extra_endchar; + if proofing>0: makebox(proofrule); fi + chardx:=w; % desired width of the character in pixels + shipit; + if displaying>0: makebox(screenrule); showit; fi + currenttransform:= save_currenttransform; + endgroup enddef; + +%%%%%%%%%%%%%%%%%%%% end of file Hibzrstp.mf %%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \DescribeVariable{font_coding_scheme} +% \DescribeVariable{font_identifier} +% \DescribeVariable{font_normal_space} +% These are specific to this file, and are not the same as in +% the \Lpack{hieroglyph} package. I added the |font_normal_space| to let +% the font breathe a little. +% \begin{macrocode} +font_coding_scheme := "Poor Man's Hieroglyphs"; +font_identifier := "pmhg"; +font_normal_space 2pt#; + +% \end{macrocode} +% +% \DescribeVariable{side} +% The glyphs as originally defined completely filled their bounding +% boxes. That is, two glyphs when normally typeset would touch each other. +% I add |side| to the original specified glyph widths to add a little +% interglyph space. +% \begin{macrocode} +side# := 2pt#; +% \end{macrocode} +% +% +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the +% poor man's hieroglyphic font. It is a concatenation of parts of the +% font definitions from the \Lpack{hieroglyphic} package. +% +% \subsubsection{The glyphs} +% +% Only a few of the many possible glyphs are defined. The glyphs provided +% encompass those that correspond to letters of the Latin alphabet, and +% the remainder have been chosen so that a non-specialist \LaTeX{} +% article about the +% decipherment of hieroglyphs could be written, together with some +% short examples of hieroglyphic sentences. +% +% The ordering of the glyphs follows the ordering in the +% \Lpack{hieroglyphic} package. +% +% The Metafont code is the same as the original except that I have changed +% the encoding and deleted the |proof_labels| to save some space (but I +% have retained these for the first sign as an example). +% +% \begin{routine}{A2} +% The sign \textit{A2}. A man pointing at his mouth (eat, drink, speak). +% \begin{macrocode} + +%% A2: man pointing at his mouth +%% (code as I(73) 73+31 = 104) +beginchar (104, 12.749u# + side#, 17.744u#, 0.000u#); + "A2"; + z33\0\0s = (0.482u,8.672u); + z33\0\0 = (5.401u,10.415u); + z33\0\1 = (6.467u,8.598u); + z33\0\2 = (6.467u,5.541u); + z33\0\3 = (6.022u,5.541u); + z33\0\4c1 = (5.682u,6.417u); + z33\0\4c2 = (3.120u,8.839u); + z33\0\4 = (2.340u,7.538u); + z33\0\5c1 = (1.197u,5.629u); + z33\0\5c2 = (5.269u,3.047u); + z33\0\5 = (0.000u,0.482u); + z33\0\6 = (0.000u,0.000u); + z33\0\7 = (5.782u,0.240u); + z33\0\8 = (12.527u,0.000u); + z33\0\9c1 = (11.896u,1.017u); + z33\0\9c2 = (10.644u,0.867u); + z33\0\9 = (10.279u,1.607u); + z33\0\10c1 = (10.011u,2.156u); + z33\0\10c2 = (10.278u,2.799u); + z33\0\10 = (10.279u,3.372u); + z33\0\11c1 = (10.277u,5.615u); + z33\0\11c2 = (9.641u,8.036u); + z33\0\11 = (10.840u,10.118u); + z33\0\12c1 = (11.829u,8.140u); + z33\0\12c2 = (11.955u,7.059u); + z33\0\12 = (11.742u,4.837u); + z33\0\13c1 = (11.640u,3.767u); + z33\0\13c2 = (11.169u,3.083u); + z33\0\13 = (11.322u,1.927u); + z33\0\14c1 = (11.780u,2.096u); + z33\0\14c2 = (12.380u,2.334u); + z33\0\14 = (12.570u,2.811u); + z33\0\15c1 = (12.888u,3.412u); + z33\0\15c2 = (12.563u,4.403u); + z33\0\15 = (12.570u,5.068u); + z33\0\16 = (12.749u,7.709u); + z33\0\17c1 = (12.748u,8.573u); + z33\0\17c2 = (12.018u,10.815u); + z33\0\17 = (11.627u,11.627u); + z33\0\18c1 = (11.262u,12.382u); + z33\0\18c2 = (10.468u,12.750u); + z33\0\18 = (10.301u,13.149u); + z33\0\19c1 = (10.030u,13.799u); + z33\0\19c2 = (11.529u,17.741u); + z33\0\19 = (8.191u,17.744u); + z33\0\20c1 = (5.327u,17.746u); + z33\0\20c2 = (6.043u,15.169u); + z33\0\20 = (4.806u,14.225u); + z33\0\21 = (3.624u,13.721u); + z33\0\22c1 = (2.401u,12.841u); + z33\0\22c2 = (0.017u,10.220u); + z33\1\0s = (9.395u,13.490u); + z33\1\0 = (8.637u,15.630u); + z33\1\1 = (6.745u,16.863u); + z33\1\2c1 = (9.201u,17.234u); + z33\1\2c2 = (10.919u,16.079u); + z33\2\0s = (8.191u,15.177u); + z33\2\0c1 = (7.584u,12.276u); + z33\2\0c2 = (10.108u,13.176u); + z33\2\0 = (10.840u,11.322u); + z33\2\1c1 = (9.148u,10.518u); + z33\2\1c2 = (9.832u,6.122u); + z33\2\1 = (9.079u,5.375u); + z33\2\2c1 = (8.745u,5.043u); + z33\2\2c2 = (7.693u,4.891u); + z33\2\2 = (7.227u,4.818u); + z33\2\3 = (6.572u,9.945u); + z33\2\4 = (5.541u,12.045u); + z33\2\5c1 = (6.294u,12.168u); + z33\2\5c2 = (7.817u,12.550u); + z33\2\5 = (6.888u,13.635u); + z33\2\6 = (6.112u,14.255u); + z33\2\7c1 = (5.604u,14.962u); + z33\2\7c2 = (6.583u,14.979u); + z33\2\7 = (6.986u,14.936u); + z33\2\8 = (6.986u,15.418u); + z33\3\0s = (6.504u,12.768u); + z33\3\0 = (4.119u,11.299u); + z33\3\1 = (2.168u,10.359u); + z33\3\2c1 = (3.310u,13.450u); + z33\3\2c2 = (4.682u,12.247u); + z33\3\2 = (5.300u,13.490u); + z33\4\0s = (6.263u,4.336u); + z33\4\0 = (3.854u,3.613u); + z33\4\1 = (3.372u,6.745u); + z33\4\2c1 = (4.870u,6.596u); + z33\4\2c2 = (5.591u,5.611u); + z33\5\0s = (9.636u,4.577u); + z33\5\0c1 = (9.636u,0.804u); + z33\5\0c2 = (9.524u,1.366u); + z33\5\0 = (6.260u,1.442u); + z33\5\1 = (2.891u,1.204u); + z33\5\2c1 = (3.305u,3.075u); + z33\5\2c2 = (7.896u,4.422u); + fill_or_unfill z33\0\0s + --z33\0\0 + --z33\0\1 + --z33\0\2 + --z33\0\3 + ..controls z33\0\4c1 and z33\0\4c2..z33\0\4 + ..controls z33\0\5c1 and z33\0\5c2..z33\0\5 + --z33\0\6 + --z33\0\7 + --z33\0\8 + ..controls z33\0\9c1 and z33\0\9c2..z33\0\9 + ..controls z33\0\10c1 and z33\0\10c2..z33\0\10 + ..controls z33\0\11c1 and z33\0\11c2..z33\0\11 + ..controls z33\0\12c1 and z33\0\12c2..z33\0\12 + ..controls z33\0\13c1 and z33\0\13c2..z33\0\13 + ..controls z33\0\14c1 and z33\0\14c2..z33\0\14 + ..controls z33\0\15c1 and z33\0\15c2..z33\0\15 + --z33\0\16 + ..controls z33\0\17c1 and z33\0\17c2..z33\0\17 + ..controls z33\0\18c1 and z33\0\18c2..z33\0\18 + ..controls z33\0\19c1 and z33\0\19c2..z33\0\19 + ..controls z33\0\20c1 and z33\0\20c2..z33\0\20 + --z33\0\21 + ..controls z33\0\22c1 and z33\0\22c2..cycle; + fill_or_unfill z33\1\0s + --z33\1\0 + --z33\1\1 + ..controls z33\1\2c1 and z33\1\2c2..cycle; + fill_or_unfill z33\2\0s + ..controls z33\2\0c1 and z33\2\0c2..z33\2\0 + ..controls z33\2\1c1 and z33\2\1c2..z33\2\1 + ..controls z33\2\2c1 and z33\2\2c2..z33\2\2 + --z33\2\3 + --z33\2\4 + ..controls z33\2\5c1 and z33\2\5c2..z33\2\5 + --z33\2\6 + ..controls z33\2\7c1 and z33\2\7c2..z33\2\7 + --z33\2\8 + --cycle; + fill_or_unfill z33\3\0s + --z33\3\0 + --z33\3\1 + ..controls z33\3\2c1 and z33\3\2c2..z33\3\2 + --cycle; + fill_or_unfill z33\4\0s + --z33\4\0 + --z33\4\1 + ..controls z33\4\2c1 and z33\4\2c2..cycle; + fill_or_unfill z33\5\0s + ..controls z33\5\0c1 and z33\5\0c2..z33\5\0 + --z33\5\1 + ..controls z33\5\2c1 and z33\5\2c2..cycle; + proof_labels ( + 33\0\0, + 33\0\1, + 33\0\2, + 33\0\3, + 33\0\4, + 33\0\5, + 33\0\6, + 33\0\7, + 33\0\8, + 33\0\9, + 33\0\10, + 33\0\11, + 33\0\12, + 33\0\13, + 33\0\14, + 33\0\15, + 33\0\16, + 33\0\17, + 33\0\18, + 33\0\19, + 33\0\20, + 33\0\21, + 33\0\22, + 33\1\0, + 33\1\1, + 33\1\2, + 33\2\0, + 33\2\1, + 33\2\2, + 33\2\3, + 33\2\4, + 33\2\5, + 33\2\6, + 33\2\7, + 33\2\8, + 33\2\9, + 33\3\0, + 33\3\1, + 33\3\2, + 33\3\3, + 33\4\0, + 33\4\1, + 33\4\2, + 33\5\0, + 33\5\1, + 33\5\2, +); +endchar; % A2 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{A28} +% The sign \textit{A28}. +% Crude drawing of man with upraised arms. +% \begin{macrocode} + +%% A28. Man with raised arms. +%% (code as Y(89) 89+31 = 120) +beginchar (120, 11.332u# + side#, 18.029u#, 0.000u#); + "A28"; + z62\0\0s = (0.000u,18.029u); z62\0\0c1 = (0.039u,17.276u); + z62\0\0c2 = (1.481u,13.837u); z62\0\0 = (1.972u,13.256u); + z62\0\1c1 = (2.699u,12.397u); z62\0\1c2 = (4.029u,12.670u); + z62\0\1 = (4.552u,12.223u); z62\0\2c1 = (5.270u,11.610u); + z62\0\2c2 = (5.224u,10.208u); z62\0\2 = (4.336u,9.839u); + z62\0\3 = (4.948u,8.566u); z62\0\4 = (3.641u,1.379u); + z62\0\5 = (1.927u,0.684u); z62\0\6 = (1.927u,0.203u); + z62\0\7c1 = (6.311u,-1.170u); z62\0\7c2 = (4.615u,4.822u); + z62\0\7 = (6.278u,4.903u); z62\0\8c1 = (6.907u,4.934u); + z62\0\8c2 = (8.278u,1.237u); z62\0\8 = (5.541u,0.925u); + z62\0\9 = (5.541u,0.203u); z62\0\10c1 = (6.119u,0.203u); + z62\0\10c2 = (7.440u,0.112u); z62\0\10 = (7.873u,0.518u); + z62\0\11c1 = (8.808u,1.397u); z62\0\11c2 = (7.563u,9.975u); + z62\0\11 = (8.271u,11.926u); z62\0\12c1 = (8.675u,13.040u); + z62\0\12c2 = (9.676u,12.467u); z62\0\12 = (10.308u,13.262u); + z62\0\13c1 = (10.652u,13.695u); z62\0\13c2 = (11.740u,17.295u); + z62\0\13 = (11.173u,17.594u); z62\0\14c1 = (10.601u,17.896u); + z62\0\14c2 = (10.174u,17.157u); z62\0\14 = (10.078u,16.705u); + z62\0\15c1 = (9.705u,14.955u); z62\0\15c2 = (10.283u,13.907u); + z62\0\15 = (7.950u,13.693u); z62\0\16c1 = (8.806u,19.335u); + z62\0\16c2 = (2.784u,16.978u); z62\0\16 = (4.336u,13.693u); + z62\0\17c1 = (0.564u,13.740u); z62\0\17c2 = (3.512u,17.272u); + z62\1\0s = (7.227u,14.416u); z62\1\0c1 = (6.879u,15.524u); + z62\1\0c2 = (7.215u,15.698u); z62\1\0 = (5.781u,15.861u); + z62\1\1 = (5.781u,16.343u); z62\1\2c1 = (7.175u,16.204u); + z62\1\2c2 = (7.685u,15.880u); z62\2\0s = (6.022u,14.898u); + z62\2\0c1 = (6.384u,12.937u); z62\2\0c2 = (7.169u,13.552u); + z62\2\0 = (7.519u,12.824u); z62\2\1c1 = (8.065u,11.690u); + z62\2\1c2 = (6.892u,10.044u); z62\2\1 = (5.781u,9.839u); + z62\2\2 = (5.611u,13.565u); z62\2\3 = (4.818u,14.657u); + z62\3\0s = (7.468u,9.116u); z62\3\0c1 = (7.113u,8.002u); + z62\3\0c2 = (7.568u,6.917u); z62\3\0 = (7.338u,6.274u); + z62\3\1c1 = (7.228u,5.968u); z62\3\1c2 = (7.033u,5.853u); + z62\3\1 = (6.716u,5.817u); z62\3\2c1 = (4.885u,5.607u); + z62\3\2c2 = (5.264u,9.719u); + fill_or_unfill z62\0\0s + ..controls z62\0\0c1 and z62\0\0c2..z62\0\0 + ..controls z62\0\1c1 and z62\0\1c2..z62\0\1 + ..controls z62\0\2c1 and z62\0\2c2..z62\0\2 + --z62\0\3 --z62\0\4 --z62\0\5 --z62\0\6 + ..controls z62\0\7c1 and z62\0\7c2..z62\0\7 + ..controls z62\0\8c1 and z62\0\8c2..z62\0\8 + --z62\0\9 + ..controls z62\0\10c1 and z62\0\10c2..z62\0\10 + ..controls z62\0\11c1 and z62\0\11c2..z62\0\11 + ..controls z62\0\12c1 and z62\0\12c2..z62\0\12 + ..controls z62\0\13c1 and z62\0\13c2..z62\0\13 + ..controls z62\0\14c1 and z62\0\14c2..z62\0\14 + ..controls z62\0\15c1 and z62\0\15c2..z62\0\15 + ..controls z62\0\16c1 and z62\0\16c2..z62\0\16 + ..controls z62\0\17c1 and z62\0\17c2..cycle; + fill_or_unfill z62\1\0s + ..controls z62\1\0c1 and z62\1\0c2..z62\1\0 + --z62\1\1 + ..controls z62\1\2c1 and z62\1\2c2..cycle; + fill_or_unfill z62\2\0s + ..controls z62\2\0c1 and z62\2\0c2..z62\2\0 + ..controls z62\2\1c1 and z62\2\1c2..z62\2\1 + --z62\2\2 --z62\2\3 --cycle; + fill_or_unfill z62\3\0s + ..controls z62\3\0c1 and z62\3\0c2..z62\3\0 + ..controls z62\3\1c1 and z62\3\1c2..z62\3\1 + ..controls z62\3\2c1 and z62\3\2c2..cycle; +endchar; % A28 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D1} +% The sign \textit{D1}. +% A man's head in profile (tp). +% \begin{macrocode} + +%% D1. Man's head in profile. +%% (code as Q(81) 81+31 = 112) +beginchar (112, 9.197u# + side#, 8.871u#, 0.000u#); + "D1"; + z32\0\0s = (0.000u,3.851u); z32\0\0c1 = (0.075u,3.245u); + z32\0\0c2 = (0.844u,3.732u); z32\0\0 = (0.778u,3.123u); + z32\0\1c1 = (0.905u,1.801u); z32\0\1c2 = (0.869u,1.324u); + z32\0\1 = (0.723u,0.442u); z32\0\2c1 = (1.068u,0.407u); + z32\0\2c2 = (1.302u,0.317u); z32\0\2 = (1.665u,0.442u); + z32\0\3c1 = (2.107u,0.511u); z32\0\3c2 = (2.518u,0.947u); + z32\0\3 = (2.919u,0.986u); z32\0\4c1 = (3.440u,1.037u); + z32\0\4c2 = (4.199u,-0.053u); z32\0\4 = (6.022u,0.000u); + z32\0\5c1 = (9.824u,0.111u); z32\0\5c2 = (10.897u,7.849u); + z32\0\5 = (5.541u,8.798u); z32\0\6c1 = (4.348u,9.010u); + z32\0\6c2 = (3.169u,8.766u); z32\0\6 = (2.213u,7.995u); + z32\0\7c1 = (1.579u,7.484u); z32\0\7c2 = (1.269u,6.777u); + z32\0\7 = (1.068u,5.950u); z32\0\8c1 = (0.582u,5.274u); + z32\0\8c2 = (0.202u,4.513u); z32\1\0s = (7.709u,1.683u); + z32\1\0c1 = (3.871u,2.694u); z32\1\0c2 = (8.669u,4.546u); + z32\1\0 = (4.577u,5.746u); z32\1\1c1 = (3.584u,6.038u); + z32\1\1c2 = (2.987u,6.250u); z32\1\1 = (1.927u,6.260u); + z32\1\2c1 = (3.658u,10.462u); z32\1\2c2 = (10.910u,7.565u); + z32\2\0s = (5.348u,4.895u); z32\2\0c1 = (5.561u,5.047u); + z32\2\0c2 = (6.353u,4.407u); z32\2\0 = (5.531u,3.280u); + z32\2\1c1 = (5.531u,2.792u); z32\2\1c2 = (5.772u,2.060u); + z32\2\1 = (6.745u,0.719u); z32\2\2c1 = (4.453u,0.720u); + z32\2\2c2 = (5.129u,0.972u); z32\2\2 = (3.348u,1.751u); + z32\2\3c1 = (2.255u,1.480u); z32\2\3c2 = (1.359u,1.438u); + z32\2\3 = (1.243u,2.075u); z32\2\4c1 = (1.488u,3.478u); + z32\2\4c2 = (1.032u,3.759u); z32\2\4 = (0.752u,3.899u); + z32\2\5c1 = (0.815u,4.745u); z32\2\5c2 = (1.068u,5.253u); + z32\2\5 = (1.512u,5.506u); z32\2\6 = (1.639u,5.760u); + z32\2\7c1 = (2.273u,5.739u); z32\2\7c2 = (2.913u,5.576u); + z32\2\7 = (3.342u,5.500u); z32\2\8c1 = (4.628u,5.124u); + z32\2\8c2 = (4.010u,4.269u); z32\3\0s = (1.588u,4.851u); + z32\3\0c1 = (1.775u,4.371u); z32\3\0c2 = (3.428u,4.317u); + z32\3\0 = (3.641u,4.851u); z32\3\1c1 = (2.921u,5.197u); + z32\3\1c2 = (2.175u,5.171u); + fill_or_unfill z32\0\0s + ..controls z32\0\0c1 and z32\0\0c2..z32\0\0 + ..controls z32\0\1c1 and z32\0\1c2..z32\0\1 + ..controls z32\0\2c1 and z32\0\2c2..z32\0\2 + ..controls z32\0\3c1 and z32\0\3c2..z32\0\3 + ..controls z32\0\4c1 and z32\0\4c2..z32\0\4 + ..controls z32\0\5c1 and z32\0\5c2..z32\0\5 + ..controls z32\0\6c1 and z32\0\6c2..z32\0\6 + ..controls z32\0\7c1 and z32\0\7c2..z32\0\7 + ..controls z32\0\8c1 and z32\0\8c2..cycle; + fill_or_unfill z32\1\0s + ..controls z32\1\0c1 and z32\1\0c2..z32\1\0 + ..controls z32\1\1c1 and z32\1\1c2..z32\1\1 + ..controls z32\1\2c1 and z32\1\2c2..cycle; + fill_or_unfill z32\2\0s + ..controls z32\2\0c1 and z32\2\0c2..z32\2\0 + ..controls z32\2\1c1 and z32\2\1c2..z32\2\1 + ..controls z32\2\2c1 and z32\2\2c2..z32\2\2 + ..controls z32\2\3c1 and z32\2\3c2..z32\2\3 + ..controls z32\2\4c1 and z32\2\4c2..z32\2\4 + ..controls z32\2\5c1 and z32\2\5c2..z32\2\5 + --z32\2\6 + ..controls z32\2\7c1 and z32\2\7c2..z32\2\7 + ..controls z32\2\8c1 and z32\2\8c2..cycle; + fill_or_unfill z32\3\0s + ..controls z32\3\0c1 and z32\3\0c2..z32\3\0 + ..controls z32\3\1c1 and z32\3\1c2..cycle; +endchar; % D1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D2} +% The sign \textit{D2}. +% Full face man's head (face, hr). +% \begin{macrocode} + +%% D2: full face +%% (code as E(69) 69+31 = 100) +%% (code as q(113) 113+31 = 144) +beginchar (144, 7.553u# + side#, 8.079u#, 0.000u#); + "D2"; + z33\0\0s = (0.829u,5.895u); z33\0\0c1 = (-0.154u,5.895u); + z33\0\0c2 = (-0.400u,4.667u); z33\0\0 = (0.829u,3.930u); + z33\0\1c1 = (1.074u,3.439u); z33\0\1c2 = (1.811u,2.456u); + z33\0\1 = (2.794u,0.982u); z33\0\2 = (2.794u,0.000u); + z33\0\3 = (4.759u,0.000u); z33\0\4 = (4.759u,0.982u); + z33\0\5c1 = (5.742u,2.456u); z33\0\5c2 = (6.478u,3.439u); + z33\0\5 = (6.724u,3.930u); z33\0\6c1 = (7.952u,4.667u); + z33\0\6c2 = (7.706u,5.895u); z33\0\6 = (6.724u,5.895u); + z33\0\7c1 = (5.742u,8.843u); z33\0\7c2 = (1.811u,8.843u); + z33\1\0s = (6.724u,5.404u); z33\1\0c1 = (7.706u,5.404u); + z33\1\0c2 = (7.215u,4.421u); z33\1\0 = (6.233u,3.930u); + z33\1\1c1 = (5.250u,2.211u); z33\1\1c2 = (4.759u,1.474u); + z33\1\1 = (3.776u,1.474u); z33\1\2c1 = (2.794u,1.474u); + z33\1\2c2 = (2.303u,2.211u); z33\1\2 = (1.320u,3.930u); + z33\1\3c1 = (0.338u,4.421u); z33\1\3c2 = (-0.154u,5.404u); + z33\1\3 = (0.829u,5.404u); z33\1\4c1 = (2.794u,7.860u); + z33\1\4c2 = (4.759u,7.860u); z33\2\0s = (4.309u,5.198u); + z33\2\0c1 = (4.309u,4.461u); z33\2\0c2 = (5.782u,4.461u); + z33\2\0 = (5.782u,5.198u); z33\3\0s = (2.556u,2.694u); + z33\3\0c1 = (2.556u,2.202u); z33\3\0c2 = (5.012u,2.202u); + z33\3\0 = (5.012u,2.694u); z33\4\0s = (1.694u,5.160u); + z33\4\0c1 = (1.694u,4.423u); z33\4\0c2 = (3.168u,4.423u); + z33\4\0 = (3.168u,5.160u); + fill_or_unfill z33\0\0s + ..controls z33\0\0c1 and z33\0\0c2..z33\0\0 + ..controls z33\0\1c1 and z33\0\1c2..z33\0\1 + --z33\0\2 --z33\0\3 --z33\0\4 + ..controls z33\0\5c1 and z33\0\5c2..z33\0\5 + ..controls z33\0\6c1 and z33\0\6c2..z33\0\6 + ..controls z33\0\7c1 and z33\0\7c2..cycle; + fill_or_unfill z33\1\0s + ..controls z33\1\0c1 and z33\1\0c2..z33\1\0 + ..controls z33\1\1c1 and z33\1\1c2..z33\1\1 + ..controls z33\1\2c1 and z33\1\2c2..z33\1\2 + ..controls z33\1\3c1 and z33\1\3c2..z33\1\3 + ..controls z33\1\4c1 and z33\1\4c2..cycle; + fill_or_unfill z33\2\0s + ..controls z33\2\0c1 and z33\2\0c2..z33\2\0 + --cycle; + fill_or_unfill z33\3\0s + ..controls z33\3\0c1 and z33\3\0c2..z33\3\0 + --cycle; + fill_or_unfill z33\4\0s + ..controls z33\4\0c1 and z33\4\0c2..z33\4\0 + --cycle; +endchar; % D2 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D4} +% The sign \textit{D4}. +% An eye (ir). +% \begin{macrocode} + +%% D4 An eye. +%% (code as e(101) 101+31 = 132) +beginchar (132, 17.146u# + side#, 5.017u#, 0.000u#); + "D4"; + z35\0\0s = (17.146u,2.935u); z35\0\0 = (15.625u,2.935u); + z35\0\1c1 = (10.096u,5.838u); z35\0\1c2 = (4.379u,5.305u); + z35\0\1 = (2.942u,3.764u); z35\0\2c1 = (2.409u,3.193u); + z35\0\2c2 = (1.307u,1.993u); z35\0\2 = (0.000u,0.884u); + z35\0\3 = (0.654u,0.474u); z35\0\4 = (1.309u,1.047u); + z35\0\5c1 = (4.253u,-0.344u); z35\0\5c2 = (8.022u,-0.659u); + z35\0\5 = (15.625u,2.036u); z35\0\6 = (17.077u,2.036u); + z35\1\0s = (14.660u,2.489u); z35\1\0c1 = (9.069u,0.625u); + z35\1\0c2 = (4.987u,0.448u); z35\1\0 = (1.970u,1.601u); + z35\1\1c1 = (3.429u,4.037u); z35\1\1c2 = (6.079u,4.448u); + z35\1\1 = (8.627u,4.155u); z35\1\2c1 = (11.174u,3.862u); + z35\1\2c2 = (13.617u,2.866u); z35\2\0s = (6.938u,4.933u); + z35\2\0c1 = (3.451u,4.470u); z35\2\0c2 = (4.581u,0.105u); + z35\2\0 = (7.209u,0.304u); z35\2\1c1 = (9.933u,0.511u); + z35\2\1c2 = (10.271u,4.895u); z35\3\0s = (6.756u,4.082u); + z35\3\0c1 = (8.893u,4.271u); z35\3\0c2 = (9.026u,1.478u); + z35\3\0 = (7.264u,1.204u); z35\3\1c1 = (5.423u,0.917u); + z35\3\1c2 = (4.808u,3.599u); + fill_or_unfill z35\0\0s + --z35\0\0 + ..controls z35\0\1c1 and z35\0\1c2..z35\0\1 + ..controls z35\0\2c1 and z35\0\2c2..z35\0\2 + --z35\0\3 --z35\0\4 + ..controls z35\0\5c1 and z35\0\5c2..z35\0\5 + --z35\0\6 --cycle; + fill_or_unfill z35\1\0s + ..controls z35\1\0c1 and z35\1\0c2..z35\1\0 + ..controls z35\1\1c1 and z35\1\1c2..z35\1\1 + ..controls z35\1\2c1 and z35\1\2c2..cycle; + fill_or_unfill z35\2\0s + ..controls z35\2\0c1 and z35\2\0c2..z35\2\0 + ..controls z35\2\1c1 and z35\2\1c2..cycle; + fill_or_unfill z35\3\0s + ..controls z35\3\0c1 and z35\3\0c2..z35\3\0 + ..controls z35\3\1c1 and z35\3\1c2..cycle; +endchar; % D4 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D21} +% The sign \textit{D21}. +% A pointy ellipse (mouth, r). +% \begin{macrocode} + +%% D21: a pointy ellipse, or mouth +%% (code as r(114) 114+31 = 145) +beginchar (145, 17.532u# + side#, 4.914u#, 0.000u#); + "D21"; + z52\0\0s = (17.532u,2.457u); z52\0\0c1 = (13.149u,5.744u); + z52\0\0c2 = (4.383u,5.744u); z52\0\0 = (0.000u,2.457u); + z52\0\1c1 = (4.383u,-0.831u); z52\0\1c2 = (13.149u,-0.831u); + z52\1\0s = (16.437u,2.457u); z52\1\0c1 = (14.519u,1.635u); + z52\1\0c2 = (11.509u,0.944u); z52\1\0 = (8.766u,0.950u); + z52\1\1c1 = (5.750u,0.957u); z52\1\1c2 = (3.698u,1.224u); + z52\1\1 = (1.370u,2.457u); z52\1\2c1 = (3.698u,3.416u); + z52\1\2c2 = (6.023u,3.970u); z52\1\2 = (8.766u,3.964u); + z52\1\3c1 = (11.783u,3.957u); z52\1\3c2 = (14.245u,3.279u); + fill_or_unfill z52\0\0s + ..controls z52\0\0c1 and z52\0\0c2..z52\0\0 + ..controls z52\0\1c1 and z52\0\1c2..cycle; + fill_or_unfill z52\1\0s + ..controls z52\1\0c1 and z52\1\0c2..z52\1\0 + ..controls z52\1\1c1 and z52\1\1c2..z52\1\1 + ..controls z52\1\2c1 and z52\1\2c2..z52\1\2 + ..controls z52\1\3c1 and z52\1\3c2..cycle; +endchar; % D21 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D36} +% The sign \textit{D36}. +% A forearm and hand (a, the semitic gutteral ayin). +% \begin{macrocode} + +%% D36: a forearm and hand +%% (code as a(97) 97+31 = 128) +%% (code as A(65) 65+31 = 96) +beginchar (96, 18.328u# + side#, 5.598u#, 0.000u#); + "D36"; + z69\0\0s = (15.422u,1.609u); + z69\0\0 = (9.159u,1.638u); z69\0\1 = (6.267u,1.427u); + z69\0\2c1 = (3.977u,1.549u); z69\0\2c2 = (4.014u,3.167u); + z69\0\2 = (0.969u,1.917u); z69\0\3c1 = (0.891u,1.128u); + z69\0\3c2 = (3.543u,2.109u); z69\0\3 = (3.615u,0.940u); + z69\0\4c1 = (2.670u,0.339u); z69\0\4c2 = (0.027u,1.622u); + z69\0\4 = (0.000u,0.476u); z69\0\5c1 = (0.840u,0.214u); + z69\0\5c2 = (1.763u,0.004u); z69\0\5 = (2.648u,0.000u); + z69\0\6 = (6.986u,0.445u); z69\0\7 = (17.917u,0.395u); + z69\0\8c1 = (18.406u,0.774u); z69\0\8c2 = (18.315u,2.448u); + z69\0\8 = (18.320u,3.042u); z69\0\9c1 = (18.324u,3.501u); + z69\0\9c2 = (18.372u,4.502u); z69\0\9 = (18.184u,4.895u); + z69\0\10c1 = (17.845u,5.603u); z69\0\10c2 = (16.233u,5.933u); + z69\0\10 = (15.823u,5.144u); z69\0\11c1 = (15.544u,4.609u); + z69\0\11c2 = (15.428u,2.296u); z69\1\0s = (17.587u,0.876u); + z69\1\0c1 = (13.966u,1.319u); z69\1\0c2 = (17.541u,7.304u); + z69\1\0 = (17.598u,3.285u); + fill_or_unfill z69\0\0s + --z69\0\0 --z69\0\1 + ..controls z69\0\2c1 and z69\0\2c2..z69\0\2 + ..controls z69\0\3c1 and z69\0\3c2..z69\0\3 + ..controls z69\0\4c1 and z69\0\4c2..z69\0\4 + ..controls z69\0\5c1 and z69\0\5c2..z69\0\5 + --z69\0\6 --z69\0\7 + ..controls z69\0\8c1 and z69\0\8c2..z69\0\8 + ..controls z69\0\9c1 and z69\0\9c2..z69\0\9 + ..controls z69\0\10c1 and z69\0\10c2..z69\0\10 + ..controls z69\0\11c1 and z69\0\11c2..cycle; + fill_or_unfill z69\1\0s + ..controls z69\1\0c1 and z69\1\0c2..z69\1\0 + --cycle; +endchar; % D36 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D46} +% The sign \textit{D46}. +% Looks like a mitt (d). +% \begin{macrocode} + +%% D46: a mitt +%% (code as d(100) 100+31 = 131) +beginchar (131, 17.000u# + side#, 5.558u#, 0.000u#); + "D46"; + z79\0\0s = (3.284u,3.373u); z79\0\0c1 = (-1.287u,3.975u); + z79\0\0c2 = (-0.979u,0.007u); z79\0\0 = (3.284u,0.000u); + z79\0\1 = (17.000u,0.416u); z79\0\2 = (16.998u,3.725u); + z79\0\3c1 = (15.015u,3.708u); z79\0\3c2 = (12.289u,4.189u); + z79\0\3 = (10.579u,4.509u); z79\0\4c1 = (6.678u,5.858u); + z79\0\4c2 = (3.470u,5.953u); z79\0\4 = (3.951u,4.135u); + z79\0\5c1 = (4.112u,3.654u); z79\0\5c2 = (6.944u,3.975u); + z79\0\5 = (7.960u,3.013u); z79\1\0s = (16.363u,3.083u); + z79\1\0 = (16.346u,1.193u); z79\1\1 = (14.632u,1.205u); + z79\1\2 = (8.850u,0.723u); z79\1\3 = (3.069u,0.723u); + z79\1\4c1 = (0.017u,0.739u); z79\1\4c2 = (-0.004u,3.280u); + z79\1\4 = (3.069u,2.650u); z79\1\5c1 = (5.225u,2.655u); + z79\1\5c2 = (7.725u,2.383u); z79\1\5 = (9.289u,2.829u); + z79\1\6c1 = (7.796u,4.562u); z79\1\6c2 = (4.630u,4.024u); + z79\1\6 = (4.593u,4.349u); z79\1\7c1 = (4.152u,6.593u); + z79\1\7c2 = (11.977u,2.770u); + fill_or_unfill z79\0\0s + ..controls z79\0\0c1 and z79\0\0c2..z79\0\0 + --z79\0\1 --z79\0\2 + ..controls z79\0\3c1 and z79\0\3c2..z79\0\3 + ..controls z79\0\4c1 and z79\0\4c2..z79\0\4 + ..controls z79\0\5c1 and z79\0\5c2..z79\0\5 + --cycle; + fill_or_unfill z79\1\0s + --z79\1\0 --z79\1\1 --z79\1\2 --z79\1\3 + ..controls z79\1\4c1 and z79\1\4c2..z79\1\4 + ..controls z79\1\5c1 and z79\1\5c2..z79\1\5 + ..controls z79\1\6c1 and z79\1\6c2..z79\1\6 + ..controls z79\1\7c1 and z79\1\7c2..cycle; +endchar; % D46 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D47} +% The sign \textit{D47}. +% Palm of the hand. +% \begin{macrocode} + +%%% D47. Palm of hand. +%%% (code as P(80) 80+31 = 111) +beginchar (111, 17.566u# + side#, 4.327u#, 0.000u#); + "D47"; + z80\0\0s = (5.461u,4.327u); z80\0\0c1 = (5.841u,2.049u); + z80\0\0c2 = (8.256u,2.694u); z80\0\0 = (10.038u,2.652u); + z80\0\1 = (10.038u,2.170u); z80\0\2c1 = (8.450u,2.170u); + z80\0\2c2 = (7.028u,2.230u); z80\0\2 = (5.461u,2.513u); + z80\0\3c1 = (4.546u,2.678u); z80\0\3c2 = (1.477u,3.625u); + z80\0\3 = (0.897u,3.517u); z80\0\4c1 = (0.395u,3.424u); + z80\0\4c2 = (0.114u,3.132u); z80\0\4 = (0.000u,2.639u); + z80\0\5c1 = (-0.526u,0.354u); z80\0\5c2 = (5.167u,0.020u); + z80\0\5 = (6.665u,0.003u); z80\0\6c1 = (8.021u,-0.013u); + z80\0\6c2 = (9.454u,0.027u); z80\0\6 = (10.760u,0.434u); + z80\0\7 = (12.929u,1.398u); z80\0\8c1 = (13.826u,1.565u); + z80\0\8c2 = (14.895u,1.431u); z80\0\8 = (15.819u,1.398u); + z80\0\9c1 = (18.062u,1.490u); z80\0\9c2 = (18.171u,3.727u); + z80\0\9 = (16.059u,3.645u); z80\0\10 = (12.756u,3.357u); + z80\0\11c1 = (11.371u,3.466u); z80\0\11c2 = (10.438u,4.404u); + z80\0\11 = (8.833u,4.327u); z80\1\0s = (10.038u,3.615u); + z80\1\0c1 = (12.912u,2.713u); z80\1\0c2 = (13.460u,2.382u); + z80\1\0 = (16.542u,3.133u); z80\1\1 = (16.783u,2.176u); + z80\1\2 = (13.031u,2.176u); z80\1\3c1 = (12.013u,2.038u); + z80\1\3c2 = (11.082u,1.234u); z80\1\3 = (10.038u,0.975u); + z80\1\4c1 = (8.557u,0.609u); z80\1\4c2 = (1.372u,0.561u); + z80\1\4 = (0.683u,1.996u); z80\1\5c1 = (0.270u,2.856u); + z80\1\5c2 = (1.308u,2.917u); z80\1\5 = (1.848u,2.795u); + z80\1\6c1 = (4.094u,2.289u); z80\1\6c2 = (6.250u,1.527u); + z80\1\6 = (8.592u,1.457u); z80\1\7c1 = (10.131u,1.411u); + z80\1\7c2 = (11.752u,2.028u); z80\1\7 = (9.797u,3.374u); + fill_or_unfill z80\0\0s + ..controls z80\0\0c1 and z80\0\0c2..z80\0\0 + --z80\0\1 + ..controls z80\0\2c1 and z80\0\2c2..z80\0\2 + ..controls z80\0\3c1 and z80\0\3c2..z80\0\3 + ..controls z80\0\4c1 and z80\0\4c2..z80\0\4 + ..controls z80\0\5c1 and z80\0\5c2..z80\0\5 + ..controls z80\0\6c1 and z80\0\6c2..z80\0\6 + --z80\0\7 + ..controls z80\0\8c1 and z80\0\8c2..z80\0\8 + ..controls z80\0\9c1 and z80\0\9c2..z80\0\9 + --z80\0\10 + ..controls z80\0\11c1 and z80\0\11c2..z80\0\11 + --cycle; + fill_or_unfill z80\1\0s + ..controls z80\1\0c1 and z80\1\0c2..z80\1\0 + --z80\1\1 --z80\1\2 + ..controls z80\1\3c1 and z80\1\3c2..z80\1\3 + ..controls z80\1\4c1 and z80\1\4c2..z80\1\4 + ..controls z80\1\5c1 and z80\1\5c2..z80\1\5 + ..controls z80\1\6c1 and z80\1\6c2..z80\1\6 + ..controls z80\1\7c1 and z80\1\7c2..z80\1\7 + --cycle; +endchar; % D47 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D54} +% The sign \textit{D54}. +% A pair of legs walking leftwards (come, iw). +% \begin{macrocode} + +%% D54: legs walking leftwards +%% (code as U(85) 85+31 = 116) +%% (code as L(76) 76+31 = 107) +beginchar (107, 10.043u# + side#, 7.983u#, 0.000u#); + "D54"; + z88\0\0s = (0.000u,0.963u); z88\0\0 = (0.241u,0.000u); + z88\0\1 = (3.301u,0.518u); z88\0\2 = (6.745u,6.745u); + z88\0\3c1 = (7.666u,5.981u); z88\0\3c2 = (8.001u,5.197u); + z88\0\3 = (8.416u,4.095u); z88\0\4c1 = (9.989u,-0.087u); + z88\0\4c2 = (7.088u,2.355u); z88\0\4 = (6.263u,0.241u); + z88\0\5c1 = (6.844u,0.253u); z88\0\5c2 = (9.399u,0.347u); + z88\0\5 = (9.732u,0.647u); z88\0\6c1 = (10.785u,1.595u); + z88\0\6c2 = (9.007u,7.983u); z88\0\6 = (6.989u,7.983u); + z88\0\7c1 = (4.516u,7.983u); z88\0\7c2 = (5.267u,1.710u); + fill_or_unfill z88\0\0s + --z88\0\0 --z88\0\1 --z88\0\2 + ..controls z88\0\3c1 and z88\0\3c2..z88\0\3 + ..controls z88\0\4c1 and z88\0\4c2..z88\0\4 + ..controls z88\0\5c1 and z88\0\5c2..z88\0\5 + ..controls z88\0\6c1 and z88\0\6c2..z88\0\6 + ..controls z88\0\7c1 and z88\0\7c2..cycle; +endchar; % D54 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{D58} +% The sign \textit{D58}. +% Lower leg and foot (b). +% \begin{macrocode} + +%% D58: leg and foot +%% (code as b(98) 98+31 = 129) +beginchar (129, 9.836u# + side#, 16.353u#, 0.000u#); + "D58"; + z92\0\0s = (7.558u,16.134u); z92\0\0c1 = (6.778u,15.139u); + z92\0\0c2 = (7.527u,8.027u); z92\0\0 = (7.558u,6.263u); + z92\0\1c1 = (7.485u,1.739u); z92\0\1c2 = (0.817u,2.085u); + z92\0\1 = (0.088u,0.842u); z92\0\2c1 = (-0.380u,0.042u); + z92\0\2c2 = (1.097u,0.008u); z92\0\2 = (1.493u,0.000u); + z92\0\3 = (6.311u,0.198u); z92\0\4c1 = (7.107u,0.198u); + z92\0\4c2 = (7.908u,-0.089u); z92\0\4 = (8.707u,0.035u); + z92\0\5c1 = (9.112u,0.098u); z92\0\5c2 = (9.358u,0.194u); + z92\0\5 = (9.632u,0.557u); z92\0\6c1 = (10.065u,1.351u); + z92\0\6c2 = (9.685u,3.346u); z92\0\6 = (9.632u,4.335u); + z92\0\7 = (9.499u,15.995u); z92\0\8c1 = (9.028u,16.550u); + z92\0\8c2 = (8.169u,16.352u); z92\1\0s = (8.961u,0.722u); + z92\1\0 = (2.698u,0.722u); z92\1\1c1 = (4.054u,1.922u); + z92\1\1c2 = (6.176u,2.208u); z92\1\1 = (7.449u,3.465u); + z92\1\2c1 = (9.291u,5.284u); z92\1\2c2 = (7.462u,12.926u); + z92\1\2 = (8.238u,15.658u); z92\1\3 = (8.881u,14.882u); + z92\1\4 = (8.720u,7.708u); + fill_or_unfill z92\0\0s + ..controls z92\0\0c1 and z92\0\0c2..z92\0\0 + ..controls z92\0\1c1 and z92\0\1c2..z92\0\1 + ..controls z92\0\2c1 and z92\0\2c2..z92\0\2 + --z92\0\3 + ..controls z92\0\4c1 and z92\0\4c2..z92\0\4 + ..controls z92\0\5c1 and z92\0\5c2..z92\0\5 + ..controls z92\0\6c1 and z92\0\6c2..z92\0\6 + --z92\0\7 + ..controls z92\0\8c1 and z92\0\8c2..cycle; + fill_or_unfill z92\1\0s + --z92\1\0 + ..controls z92\1\1c1 and z92\1\1c2..z92\1\1 + ..controls z92\1\2c1 and z92\1\2c2..z92\1\2 + --z92\1\3 --z92\1\4 --cycle; +endchar; % D58 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{E23} +% The sign \textit{E23}. +% A lion lying down (l). +% \begin{macrocode} + +%% E23: A lion lying down +%% (code as l(108) = 108+31 = 139) +beginchar (139, 17.288u# + side#, 7.010u#, 0.000u#); + "E23"; + z55\0\0s = (4.577u,2.690u); z55\0\0c1 = (4.426u,0.077u); + z55\0\0c2 = (1.837u,1.353u); z55\0\0 = (0.000u,0.763u); + z55\0\1 = (0.000u,0.301u); z55\0\2 = (5.502u,0.301u); + z55\0\3 = (6.766u,0.845u); z55\0\4 = (10.840u,1.003u); + z55\0\5 = (10.600u,0.246u); z55\0\6c1 = (11.421u,0.017u); + z55\0\6c2 = (16.303u,-0.169u); z55\0\6 = (16.931u,0.246u); + z55\0\7c1 = (18.276u,1.020u); z55\0\7c2 = (15.533u,3.569u); + z55\0\7 = (14.695u,3.893u); z55\0\8 = (15.417u,5.099u); + z55\0\9c1 = (12.738u,5.073u); z55\0\9c2 = (13.048u,3.553u); + z55\0\9 = (9.955u,4.214u); z55\0\10c1 = (8.491u,4.526u); + z55\0\10c2 = (8.068u,7.437u); z55\0\10 = (5.347u,6.972u); + z55\0\11c1 = (4.792u,6.877u); z55\0\11c2 = (2.583u,4.731u); + z55\0\11 = (2.632u,4.179u); z55\0\12c1 = (2.693u,3.496u); + z55\0\12c2 = (4.009u,2.815u); z55\1\0s = (5.781u,6.544u); + z55\1\0 = (6.504u,6.303u); z55\2\0s = (8.191u,4.376u); + z55\2\0 = (6.745u,3.893u); z55\2\1 = (6.504u,6.062u); + z55\2\2c1 = (7.466u,5.850u); z55\2\2c2 = (7.979u,5.338u); + z55\3\0s = (5.300u,5.581u); z55\3\0c1 = (6.216u,4.989u); + z55\3\0c2 = (6.597u,4.122u); z55\3\0 = (5.161u,3.837u); + z55\3\1c1 = (4.665u,3.738u); z55\3\1c2 = (4.103u,4.033u); + z55\3\1 = (3.613u,4.135u); z55\3\2 = (3.854u,4.858u); + z55\3\3 = (5.300u,4.858u); z55\4\0s = (12.768u,2.449u); + z55\4\0 = (7.135u,1.613u); z55\4\1 = (5.059u,1.003u); + z55\4\2c1 = (6.022u,2.341u); z55\4\2c2 = (7.345u,3.787u); + z55\4\2 = (9.114u,3.612u); z55\4\3 = (11.460u,3.273u); + z55\4\4c1 = (12.325u,3.308u); z55\4\4c2 = (12.366u,3.185u); + z55\5\0s = (16.622u,1.003u); z55\5\0c1 = (15.199u,1.235u); + z55\5\0c2 = (13.442u,1.807u); z55\5\0 = (13.249u,3.412u); + z55\5\1c1 = (15.022u,3.251u); z55\5\1c2 = (15.814u,2.541u); + z55\6\0s = (13.972u,1.243u); z55\6\0 = (11.563u,1.243u); + fill_or_unfill z55\0\0s + ..controls z55\0\0c1 and z55\0\0c2..z55\0\0 + --z55\0\1 --z55\0\2 --z55\0\3 --z55\0\4 --z55\0\5 + ..controls z55\0\6c1 and z55\0\6c2..z55\0\6 + ..controls z55\0\7c1 and z55\0\7c2..z55\0\7 + --z55\0\8 + ..controls z55\0\9c1 and z55\0\9c2..z55\0\9 + ..controls z55\0\10c1 and z55\0\10c2..z55\0\10 + ..controls z55\0\11c1 and z55\0\11c2..z55\0\11 + ..controls z55\0\12c1 and z55\0\12c2..cycle; + fill_or_unfill z55\1\0s + --z55\1\0 --cycle; + fill_or_unfill z55\2\0s + --z55\2\0 --z55\2\1 + ..controls z55\2\2c1 and z55\2\2c2..cycle; + fill_or_unfill z55\3\0s + ..controls z55\3\0c1 and z55\3\0c2..z55\3\0 + ..controls z55\3\1c1 and z55\3\1c2..z55\3\1 + --z55\3\2 --z55\3\3 --cycle; + fill_or_unfill z55\4\0s + --z55\4\0 --z55\4\1 + ..controls z55\4\2c1 and z55\4\2c2..z55\4\2 + --z55\4\3 + ..controls z55\4\4c1 and z55\4\4c2..cycle; + fill_or_unfill z55\5\0s + ..controls z55\5\0c1 and z55\5\0c2..z55\5\0 + ..controls z55\5\1c1 and z55\5\1c2..cycle; + fill_or_unfill z55\6\0s + --z55\6\0 --cycle; +endchar; % E23 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{F1} +% The sign \textit{F1}. +% An oxhead. +% \begin{macrocode} + +%% F1. An ox head. +%% (code as K(75) 75+31 = 106) +%% (code as X(88) 88+31 = 119) +beginchar (119, 8.026u# + side#, 8.087u#, 0.000u#); + "F1"; + z32\0\0s = (0.744u,8.087u); z32\0\0 = (1.984u,5.678u); + z32\0\1 = (0.000u,0.911u); z32\0\2 = (1.467u,0.000u); + z32\0\3 = (6.376u,0.526u); z32\0\4 = (6.767u,4.233u); + z32\0\5c1 = (7.823u,4.835u); z32\0\5c2 = (8.183u,5.148u); + z32\0\5 = (7.971u,6.401u); z32\0\6 = (5.803u,5.678u); + z32\0\7 = (7.008u,8.087u); z32\0\8 = (4.358u,6.318u); + z32\1\0s = (3.639u,5.302u); z32\1\0c1 = (6.050u,5.699u); + z32\1\0c2 = (7.211u,2.079u); z32\1\0 = (5.055u,1.103u); + z32\1\1c1 = (4.404u,0.808u); z32\1\1c2 = (3.611u,0.872u); + z32\1\1 = (2.912u,0.792u); z32\1\2c1 = (-1.360u,0.301u); + z32\1\2c2 = (1.868u,4.461u); z32\2\0s = (6.810u,5.175u); + z32\3\0s = (2.672u,3.028u); z32\3\0 = (3.635u,4.233u); + z32\3\1c1 = (2.716u,4.071u); z32\3\1c2 = (2.544u,3.984u); + fill_or_unfill z32\0\0s + --z32\0\0 --z32\0\1 --z32\0\2 --z32\0\3 --z32\0\4 + ..controls z32\0\5c1 and z32\0\5c2..z32\0\5 + --z32\0\6 --z32\0\7 --z32\0\8 --cycle; + fill_or_unfill z32\1\0s + ..controls z32\1\0c1 and z32\1\0c2..z32\1\0 + ..controls z32\1\1c1 and z32\1\1c2..z32\1\1 + ..controls z32\1\2c1 and z32\1\2c2..cycle; + fill_or_unfill z32\2\0s + --cycle; + fill_or_unfill z32\3\0s + --z32\3\0 + ..controls z32\3\1c1 and z32\3\1c2..cycle; +endchar; % F1 + +% \end{macrocode} +% \end{routine} +% +% +% +% \begin{routine}{F34} +% The sign \textit{F34}. +% Like a jar with a stopper at the top (heart, ib). +% \begin{macrocode} + +%% F34: stoppered jar +%% (code as G(71) 71+31 = 102) +beginchar (102, 8.179u# + side#, 7.922u#, 0.000u#); + "F34"; + z65\0\0s = (2.168u,7.922u); z65\0\0 = (1.927u,6.477u); + z65\0\1c1 = (1.174u,6.696u); z65\0\1c2 = (0.019u,6.971u); + z65\0\1 = (0.000u,5.759u); z65\0\2c1 = (-0.013u,4.961u); + z65\0\2c2 = (1.117u,4.366u); z65\0\2 = (1.482u,3.576u); + z65\0\3c1 = (1.896u,2.678u); z65\0\3c2 = (2.014u,1.538u); + z65\0\3 = (2.611u,0.730u); z65\0\4c1 = (2.993u,0.213u); + z65\0\4c2 = (3.455u,0.000u); z65\0\4 = (4.094u,0.000u); + z65\0\5c1 = (6.062u,0.000u); z65\0\5c2 = (6.110u,2.494u); + z65\0\5 = (6.709u,3.817u); z65\0\6c1 = (7.075u,4.624u); + z65\0\6c2 = (8.368u,5.128u); z65\0\6 = (8.163u,5.992u); + z65\0\7c1 = (7.801u,7.510u); z65\0\7c2 = (6.390u,6.037u); + z65\0\7 = (5.781u,7.922u); z65\1\0s = (5.059u,7.441u); + z65\1\0 = (3.131u,7.200u); z65\2\0s = (7.468u,5.995u); + z65\2\0 = (6.144u,4.299u); z65\2\1c1 = (5.738u,3.433u); + z65\2\1c2 = (4.750u,-1.275u); z65\2\1 = (2.945u,1.453u); + z65\2\2c1 = (2.334u,2.377u); z65\2\2c2 = (2.429u,3.584u); + z65\2\2 = (1.889u,4.500u); z65\2\3 = (0.722u,5.995u); + z65\2\4 = (4.336u,6.473u); + fill_or_unfill z65\0\0s + --z65\0\0 + ..controls z65\0\1c1 and z65\0\1c2..z65\0\1 + ..controls z65\0\2c1 and z65\0\2c2..z65\0\2 + ..controls z65\0\3c1 and z65\0\3c2..z65\0\3 + ..controls z65\0\4c1 and z65\0\4c2..z65\0\4 + ..controls z65\0\5c1 and z65\0\5c2..z65\0\5 + ..controls z65\0\6c1 and z65\0\6c2..z65\0\6 + ..controls z65\0\7c1 and z65\0\7c2..z65\0\7 + --cycle; + fill_or_unfill z65\1\0s + --z65\1\0 --cycle; + fill_or_unfill z65\2\0s + --z65\2\0 + ..controls z65\2\1c1 and z65\2\1c2..z65\2\1 + ..controls z65\2\2c1 and z65\2\2c2..z65\2\2 + --z65\2\3 --z65\2\4 --cycle; +endchar; % F34 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{F40} +% The sign \textit{F40}. +% Like organ pipes on a bench (Aw). +% \begin{macrocode} + +%% F40: organ pipes +%% (code as R(82) 82+31 = 113) +%% (code as Z(90) 90+31 = 121) +beginchar (121, 16.316u# + side#, 14.206u#, 0.000u#); + "F40"; + z71\0\0s = (4.285u,5.936u); z71\0\0 = (5.730u,5.213u); + z71\0\1 = (5.730u,5.919u); z71\0\2 = (9.101u,5.919u); + z71\0\3 = (11.240u,5.296u); z71\0\4 = (12.476u,6.177u); + z71\0\5 = (13.805u,3.768u); z71\0\6c1 = (14.197u,2.801u); + z71\0\6c2 = (14.119u,0.433u); z71\0\6 = (15.157u,0.071u); + z71\0\7c1 = (16.775u,-0.494u); z71\0\7c2 = (16.295u,2.307u); + z71\0\7 = (16.079u,3.045u); z71\0\8c1 = (15.779u,4.066u); + z71\0\8c2 = (15.314u,5.080u); z71\0\8 = (14.662u,5.926u); + z71\0\9c1 = (13.698u,7.176u); z71\0\9c2 = (12.595u,7.215u); + z71\0\9 = (12.759u,9.068u); z71\0\10c1 = (12.968u,11.411u); + z71\0\10c2 = (15.066u,14.204u); z71\0\10 = (11.281u,14.114u); + z71\0\11c1 = (10.011u,14.083u); z71\0\11c2 = (6.276u,14.577u); + z71\0\11 = (5.563u,13.574u); z71\0\12c1 = (5.222u,13.098u); + z71\0\12c2 = (4.952u,11.623u); z71\0\12 = (4.798u,10.995u); + z71\0\13c1 = (4.597u,10.166u); z71\0\13c2 = (4.416u,8.858u); + z71\0\13 = (3.979u,8.155u); z71\0\14c1 = (3.606u,7.558u); + z71\0\14c2 = (2.966u,7.291u); z71\0\14 = (2.481u,6.806u); + z71\0\15c1 = (1.941u,6.264u); z71\0\15c2 = (1.217u,5.180u); + z71\0\15 = (0.872u,4.490u); z71\0\16c1 = (0.520u,3.787u); + z71\0\16c2 = (-1.075u,-0.585u); z71\0\16 = (1.132u,0.083u); + z71\0\17c1 = (2.864u,0.607u); z71\0\17c2 = (1.351u,3.779u); + z71\1\0s = (6.454u,13.404u); z71\1\0c1 = (6.634u,12.209u); + z71\1\0c2 = (6.176u,8.343u); z71\1\0 = (5.008u,7.863u); + z71\2\0s = (8.380u,13.404u); z71\2\0c1 = (8.257u,12.033u); + z71\2\0c2 = (7.805u,8.349u); z71\2\0 = (6.454u,7.863u); + z71\2\1c1 = (6.521u,9.307u); z71\2\1c2 = (6.915u,12.896u); + z71\3\0s = (9.585u,13.404u); z71\3\0 = (8.863u,7.863u); + z71\3\1 = (7.900u,8.104u); z71\4\0s = (11.271u,13.404u); + z71\4\0 = (10.067u,7.863u); z71\4\1 = (9.585u,7.863u); + z71\4\2 = (9.345u,8.104u); z71\4\3c1 = (9.640u,9.576u); + z71\4\3c2 = (10.045u,12.539u); z71\5\0s = (12.717u,13.163u); + z71\5\0c1 = (12.686u,11.778u); z71\5\0c2 = (12.457u,8.376u); + z71\5\0 = (11.030u,7.863u); z71\6\0s = (11.513u,7.140u); + z71\6\0 = (11.513u,6.659u); z71\6\1 = (4.767u,6.659u); + z71\6\2 = (4.767u,7.140u); z71\7\0s = (1.395u,2.804u); + z71\7\0 = (1.154u,0.877u); + fill_or_unfill z71\0\0s + --z71\0\0 --z71\0\1 --z71\0\2 --z71\0\3 --z71\0\4 --z71\0\5 + ..controls z71\0\6c1 and z71\0\6c2..z71\0\6 + ..controls z71\0\7c1 and z71\0\7c2..z71\0\7 + ..controls z71\0\8c1 and z71\0\8c2..z71\0\8 + ..controls z71\0\9c1 and z71\0\9c2..z71\0\9 + ..controls z71\0\10c1 and z71\0\10c2..z71\0\10 + ..controls z71\0\11c1 and z71\0\11c2..z71\0\11 + ..controls z71\0\12c1 and z71\0\12c2..z71\0\12 + ..controls z71\0\13c1 and z71\0\13c2..z71\0\13 + ..controls z71\0\14c1 and z71\0\14c2..z71\0\14 + ..controls z71\0\15c1 and z71\0\15c2..z71\0\15 + ..controls z71\0\16c1 and z71\0\16c2..z71\0\16 + ..controls z71\0\17c1 and z71\0\17c2..cycle; + fill_or_unfill z71\1\0s + ..controls z71\1\0c1 and z71\1\0c2..z71\1\0 + --cycle; + fill_or_unfill z71\2\0s + ..controls z71\2\0c1 and z71\2\0c2..z71\2\0 + ..controls z71\2\1c1 and z71\2\1c2..cycle; + fill_or_unfill z71\3\0s + --z71\3\0 --z71\3\1 --cycle; + fill_or_unfill z71\4\0s + --z71\4\0 --z71\4\1 --z71\4\2 + ..controls z71\4\3c1 and z71\4\3c2..cycle; + fill_or_unfill z71\5\0s + ..controls z71\5\0c1 and z71\5\0c2..z71\5\0 + --cycle; + fill_or_unfill z71\6\0s + --z71\6\0 --z71\6\1 --z71\6\2 --cycle; + fill_or_unfill z71\7\0s + --z71\7\0 --cycle; +endchar; % F40 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{G1} +% The sign \textit{G1}. +% A falcon in profile (A, glottal stop). +% \begin{macrocode} + +%% G1: a falcon in profile +%% (code as A(65) 65+31 = 96) +%% (code as a(97) 97+31 = 128) +beginchar (128, 15.899u# + side#, 17.164u#, 0.000u#); + "G1"; + z32\0\0s = (0.482u,15.514u); z32\0\0 = (0.723u,15.273u); + z32\0\1c1 = (1.489u,15.375u); z32\0\1c2 = (2.628u,15.514u); + z32\0\1 = (3.228u,14.892u); z32\0\2c1 = (3.843u,14.255u); + z32\0\2c2 = (3.514u,12.552u); z32\0\2 = (3.707u,11.660u); + z32\0\3 = (4.490u,9.492u); z32\0\4c1 = (5.042u,7.603u); + z32\0\4c2 = (5.459u,3.570u); z32\0\4 = (4.490u,1.818u); + z32\0\5c1 = (3.469u,0.030u); z32\0\5c2 = (0.863u,2.552u); + z32\0\5 = (0.000u,0.096u); z32\0\6 = (11.081u,0.096u); + z32\0\7c1 = (10.576u,1.677u); z32\0\7c2 = (9.338u,1.301u); + z32\0\7 = (7.950u,1.301u); z32\0\8 = (8.191u,2.987u); + z32\0\9 = (9.636u,2.505u); z32\0\10 = (10.118u,4.674u); + z32\0\11c1 = (11.597u,2.734u); z32\0\11c2 = (12.753u,-0.622u); + z32\0\11 = (15.899u,0.096u); z32\0\12 = (15.601u,2.265u); + z32\0\13c1 = (15.044u,4.208u); z32\0\13c2 = (11.994u,8.802u); + z32\0\13 = (10.680u,10.455u); z32\0\14c1 = (9.776u,11.593u); + z32\0\14c2 = (8.400u,12.583u); z32\0\14 = (7.693u,13.828u); + z32\0\15c1 = (7.205u,14.686u); z32\0\15c2 = (7.353u,16.521u); + z32\0\15 = (6.808u,16.961u); z32\0\16c1 = (6.158u,17.487u); + z32\0\16c2 = (1.942u,16.905u); z32\0\16 = (1.237u,16.476u); + z32\0\17c1 = (0.816u,16.219u); z32\0\17c2 = (0.694u,15.927u); + z32\1\0s = (7.468u,12.142u); z32\1\0c1 = (2.270u,12.313u); + z32\1\0c2 = (8.088u,7.679u); z32\1\0 = (8.948u,6.339u); + z32\1\1c1 = (9.487u,5.499u); z32\1\1c2 = (9.394u,4.423u); + z32\1\1 = (9.395u,3.469u); z32\1\2 = (7.981u,4.068u); + z32\1\3 = (4.526u,11.660u); z32\1\4 = (3.372u,16.237u); + z32\1\5c1 = (7.797u,16.277u); z32\1\5c2 = (6.332u,16.505u); + z32\2\0s = (4.796u,15.777u); z32\3\0s = (13.731u,4.192u); + z32\3\0c1 = (12.368u,4.893u); z32\3\0c2 = (8.039u,7.768u); + z32\3\0 = (7.197u,8.872u); z32\3\1c1 = (6.474u,9.738u); + z32\3\1c2 = (5.399u,11.470u); z32\3\1 = (7.197u,11.575u); + z32\3\2c1 = (7.681u,11.600u); z32\3\2c2 = (8.195u,11.622u); + z32\3\2 = (8.604u,11.405u); z32\3\3c1 = (10.006u,10.659u); + z32\3\3c2 = (13.224u,5.786u); z32\4\0s = (6.022u,7.324u); + z32\4\0 = (6.986u,3.710u); z32\4\1c1 = (5.511u,4.360u); + z32\4\1c2 = (5.475u,5.944u); z32\5\0s = (11.081u,5.155u); + z32\5\0c1 = (13.154u,3.964u); z32\5\0c2 = (14.139u,2.942u); + z32\5\0 = (14.695u,0.578u); z32\5\1c1 = (13.162u,1.331u); + z32\5\1c2 = (10.961u,3.287u); z32\6\0s = (13.972u,4.192u); + z32\7\0s = (7.227u,1.060u); z32\7\0 = (5.300u,1.301u); + z32\7\1 = (5.781u,3.228u); z32\7\2c1 = (7.239u,2.855u); + z32\7\2c2 = (7.211u,2.445u); + fill_or_unfill z32\0\0s + --z32\0\0 + ..controls z32\0\1c1 and z32\0\1c2..z32\0\1 + ..controls z32\0\2c1 and z32\0\2c2..z32\0\2 + --z32\0\3 + ..controls z32\0\4c1 and z32\0\4c2..z32\0\4 + ..controls z32\0\5c1 and z32\0\5c2..z32\0\5 + --z32\0\6 + ..controls z32\0\7c1 and z32\0\7c2..z32\0\7 + --z32\0\8 --z32\0\9 --z32\0\10 + ..controls z32\0\11c1 and z32\0\11c2..z32\0\11 + --z32\0\12 + ..controls z32\0\13c1 and z32\0\13c2..z32\0\13 + ..controls z32\0\14c1 and z32\0\14c2..z32\0\14 + ..controls z32\0\15c1 and z32\0\15c2..z32\0\15 + ..controls z32\0\16c1 and z32\0\16c2..z32\0\16 + ..controls z32\0\17c1 and z32\0\17c2..cycle; + fill_or_unfill z32\1\0s + ..controls z32\1\0c1 and z32\1\0c2..z32\1\0 + ..controls z32\1\1c1 and z32\1\1c2..z32\1\1 + --z32\1\2 --z32\1\3 --z32\1\4 + ..controls z32\1\5c1 and z32\1\5c2..cycle; + fill_or_unfill z32\2\0s + --cycle; + fill_or_unfill z32\3\0s + ..controls z32\3\0c1 and z32\3\0c2..z32\3\0 + ..controls z32\3\1c1 and z32\3\1c2..z32\3\1 + ..controls z32\3\2c1 and z32\3\2c2..z32\3\2 + ..controls z32\3\3c1 and z32\3\3c2..cycle; + fill_or_unfill z32\4\0s + --z32\4\0 + ..controls z32\4\1c1 and z32\4\1c2..cycle; + fill_or_unfill z32\5\0s + ..controls z32\5\0c1 and z32\5\0c2..z32\5\0 + ..controls z32\5\1c1 and z32\5\1c2..cycle; + fill_or_unfill z32\6\0s + --cycle; + fill_or_unfill z32\7\0s + --z32\7\0 --z32\7\1 + ..controls z32\7\2c1 and z32\7\2c2..cycle; +endchar; % G1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{G17} +% The sign \textit{G17}. +% Bird with body in profile but full face head (m). +% \begin{macrocode} + +%% G17: bird in profile but head looking out +%% (code as m(109) 109+31 = 140) +beginchar (140, 16.379u# + side#, 17.653u#, 0.000u#); + "G17"; + z50\0\0s = (3.620u,1.743u); z50\0\0c1 = (2.365u,2.029u); + z50\0\0c2 = (0.028u,2.327u); z50\0\0 = (0.000u,0.560u); + z50\0\1 = (7.209u,0.552u); z50\0\2 = (8.205u,3.162u); + z50\0\3 = (9.407u,2.674u); z50\0\4 = (10.140u,4.356u); + z50\0\5c1 = (11.518u,1.448u); z50\0\5c2 = (12.706u,-0.796u); + z50\0\5 = (16.379u,0.225u); z50\0\6 = (15.905u,1.673u); + z50\0\7c1 = (16.753u,2.555u); z50\0\7c2 = (14.380u,4.980u); + z50\0\7 = (13.764u,5.780u); z50\0\8 = (10.046u,11.583u); + z50\0\9 = (7.202u,14.772u); z50\0\10c1 = (6.627u,15.552u); + z50\0\10c2 = (6.721u,16.741u); z50\0\10 = (6.215u,17.242u); + z50\0\11c1 = (5.815u,17.640u); z50\0\11c2 = (5.196u,17.623u); + z50\0\11 = (4.674u,17.635u); z50\0\12c1 = (4.183u,17.648u); + z50\0\12c2 = (2.759u,17.705u); z50\0\12 = (2.368u,17.512u); + z50\0\13c1 = (1.794u,17.228u); z50\0\13c2 = (1.797u,16.521u); + z50\0\13 = (1.778u,15.967u); z50\0\14c1 = (1.638u,12.002u); + z50\0\14c2 = (3.566u,11.804u); z50\0\14 = (4.186u,8.967u); + z50\0\15c1 = (4.695u,6.635u); z50\0\15c2 = (4.361u,3.981u); + z50\1\0s = (5.867u,15.703u); z50\1\0 = (2.494u,15.481u); + z50\1\1 = (2.501u,16.686u); z50\1\2c1 = (3.725u,16.679u); + z50\1\2c2 = (5.391u,17.087u); z50\2\0s = (3.925u,13.063u); + z50\2\0 = (4.407u,13.061u); z50\2\1 = (4.900u,14.986u); + z50\2\2 = (6.105u,15.219u); z50\2\3 = (8.954u,11.822u); + z50\2\4 = (12.796u,5.545u); z50\2\5c1 = (11.481u,6.065u); + z50\2\5c2 = (5.220u,10.392u); z50\2\5 = (5.562u,11.778u); + z50\2\6c1 = (5.675u,12.239u); z50\2\6c2 = (6.874u,12.686u); + z50\2\6 = (7.298u,13.044u); z50\2\7c1 = (-0.045u,12.897u); + z50\2\7c2 = (11.248u,5.797u); z50\2\7 = (12.427u,4.742u); + z50\2\8c1 = (13.438u,3.838u); z50\2\8c2 = (14.939u,1.958u); + z50\2\8 = (15.418u,0.712u); z50\2\9c1 = (10.849u,0.753u); + z50\2\9c2 = (12.397u,4.018u); z50\2\9 = (9.184u,5.806u); + z50\2\10 = (8.931u,3.640u); z50\2\11c1 = (7.677u,4.436u); + z50\2\11c2 = (3.742u,11.219u); z50\2\11 = (3.047u,12.828u); + z50\2\12c1 = (2.717u,13.592u); z50\2\12c2 = (2.598u,14.421u); + z50\2\12 = (2.493u,15.240u); z50\3\0s = (5.340u,7.515u); + z50\3\0c1 = (5.600u,7.125u); z50\3\0c2 = (5.888u,6.737u); + z50\3\0 = (6.080u,6.306u); z50\3\1c1 = (7.294u,3.575u); + z50\3\1c2 = (3.973u,4.128u); z50\4\0s = (12.755u,6.281u); + z50\5\0s = (7.002u,3.410u); z50\5\0c1 = (6.965u,1.453u); + z50\5\0c2 = (6.683u,1.400u); z50\5\0 = (4.824u,1.736u); + z50\5\1 = (5.318u,3.660u); + fill_or_unfill z50\0\0s + ..controls z50\0\0c1 and z50\0\0c2..z50\0\0 + --z50\0\1 --z50\0\2 --z50\0\3 --z50\0\4 + ..controls z50\0\5c1 and z50\0\5c2..z50\0\5 + --z50\0\6 + ..controls z50\0\7c1 and z50\0\7c2..z50\0\7 + --z50\0\8 --z50\0\9 + ..controls z50\0\10c1 and z50\0\10c2..z50\0\10 + ..controls z50\0\11c1 and z50\0\11c2..z50\0\11 + ..controls z50\0\12c1 and z50\0\12c2..z50\0\12 + ..controls z50\0\13c1 and z50\0\13c2..z50\0\13 + ..controls z50\0\14c1 and z50\0\14c2..z50\0\14 + ..controls z50\0\15c1 and z50\0\15c2..cycle; + fill_or_unfill z50\1\0s + --z50\1\0 --z50\1\1 + ..controls z50\1\2c1 and z50\1\2c2..cycle; + fill_or_unfill z50\2\0s + --z50\2\0 --z50\2\1 --z50\2\2 --z50\2\3 --z50\2\4 + ..controls z50\2\5c1 and z50\2\5c2..z50\2\5 + ..controls z50\2\6c1 and z50\2\6c2..z50\2\6 + ..controls z50\2\7c1 and z50\2\7c2..z50\2\7 + ..controls z50\2\8c1 and z50\2\8c2..z50\2\8 + ..controls z50\2\9c1 and z50\2\9c2..z50\2\9 + --z50\2\10 + ..controls z50\2\11c1 and z50\2\11c2..z50\2\11 + ..controls z50\2\12c1 and z50\2\12c2..z50\2\12 + --cycle; + fill_or_unfill z50\3\0s + ..controls z50\3\0c1 and z50\3\0c2..z50\3\0 + ..controls z50\3\1c1 and z50\3\1c2..cycle; + fill_or_unfill z50\4\0s + --cycle; + fill_or_unfill z50\5\0s + ..controls z50\5\0c1 and z50\5\0c2..z50\5\0 + --z50\5\1 --cycle; +endchar; % G17 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{G36} +% The sign \textit{G36}. +% A small bird (wr). +% \begin{macrocode} + +%% G36: bird (wr) +%% (code as Z(90) 90+31 = 121) +%% (code as R(82) 82+31 = 113) +beginchar (113, 17.104u# + side#, 11.458u#, 0.000u#); + "G36"; + z70\0\0s = (0.000u,10.358u); z70\0\0 = (0.000u,9.877u); + z70\0\1c1 = (0.461u,9.641u); z70\0\1c2 = (0.931u,9.443u); + z70\0\1 = (1.290u,9.054u); z70\0\2 = (4.946u,3.613u); + z70\0\3c1 = (5.134u,3.212u); z70\0\3c2 = (5.214u,2.849u); + z70\0\3 = (5.118u,2.410u); z70\0\4c1 = (4.550u,-0.197u); + z70\0\4c2 = (1.694u,2.019u); z70\0\4 = (0.482u,0.000u); + z70\0\5 = (9.154u,0.000u); z70\0\6 = (7.709u,1.204u); + z70\0\7 = (8.191u,2.649u); z70\0\8 = (16.381u,0.481u); + z70\0\9c1 = (15.806u,2.562u); z70\0\9c2 = (16.530u,1.812u); + z70\0\9 = (17.104u,3.372u); z70\0\10 = (14.433u,4.277u); + z70\0\11 = (11.564u,5.417u); z70\0\12 = (6.273u,9.300u); + z70\0\13c1 = (5.667u,9.839u); z70\0\13c2 = (4.641u,11.277u); + z70\0\13 = (3.851u,11.458u); z70\0\14c1 = (2.875u,11.681u); + z70\0\14c2 = (0.963u,10.633u); z70\1\0s = (5.300u,8.913u); + z70\1\0c1 = (3.206u,8.243u); z70\1\0c2 = (3.384u,8.278u); + z70\1\0 = (4.095u,6.263u); z70\1\1c1 = (3.373u,6.811u); + z70\1\1c2 = (1.402u,9.318u); z70\1\1 = (1.763u,10.283u); + z70\1\2c1 = (1.870u,10.569u); z70\1\2c2 = (2.151u,10.692u); + z70\1\2 = (2.424u,10.764u); z70\1\3c1 = (3.964u,11.170u); + z70\1\3c2 = (4.670u,10.072u); z70\2\0s = (11.804u,4.095u); + z70\2\0c1 = (9.049u,4.222u); z70\2\0c2 = (4.852u,5.135u); + z70\2\0 = (4.095u,8.190u); z70\2\1 = (5.541u,8.672u); + z70\3\0s = (4.336u,6.263u); z70\4\0s = (4.577u,6.022u); + z70\4\0c1 = (7.312u,3.929u); z70\4\0c2 = (12.000u,3.047u); + z70\4\0 = (15.417u,2.890u); z70\4\1 = (15.417u,1.686u); + z70\4\2c1 = (12.740u,1.969u); z70\4\2c2 = (9.962u,4.417u); + z70\4\2 = (7.227u,2.890u); z70\5\0s = (6.745u,2.649u); + z70\5\0c1 = (7.032u,1.503u); z70\5\0c2 = (6.954u,1.097u); + z70\5\0 = (5.781u,0.722u); z70\6\0s = (3.462u,10.135u); + z70\6\0c1 = (3.230u,10.490u); z70\6\0c2 = (2.706u,10.201u); + z70\6\0 = (2.851u,9.912u); z70\6\1c1 = (3.013u,9.587u); + z70\6\1c2 = (3.645u,9.822u); + fill_or_unfill z70\0\0s + --z70\0\0 + ..controls z70\0\1c1 and z70\0\1c2..z70\0\1 + --z70\0\2 + ..controls z70\0\3c1 and z70\0\3c2..z70\0\3 + ..controls z70\0\4c1 and z70\0\4c2..z70\0\4 + --z70\0\5 --z70\0\6 --z70\0\7 --z70\0\8 + ..controls z70\0\9c1 and z70\0\9c2..z70\0\9 + --z70\0\10 --z70\0\11 --z70\0\12 + ..controls z70\0\13c1 and z70\0\13c2..z70\0\13 + ..controls z70\0\14c1 and z70\0\14c2..cycle; + fill_or_unfill z70\1\0s + ..controls z70\1\0c1 and z70\1\0c2..z70\1\0 + ..controls z70\1\1c1 and z70\1\1c2..z70\1\1 + ..controls z70\1\2c1 and z70\1\2c2..z70\1\2 + ..controls z70\1\3c1 and z70\1\3c2..cycle; + fill_or_unfill z70\2\0s + ..controls z70\2\0c1 and z70\2\0c2..z70\2\0 + --z70\2\1 --cycle; + fill_or_unfill z70\3\0s + --cycle; + fill_or_unfill z70\4\0s + ..controls z70\4\0c1 and z70\4\0c2..z70\4\0 + --z70\4\1 + ..controls z70\4\2c1 and z70\4\2c2..z70\4\2 + --cycle; + fill_or_unfill z70\5\0s + ..controls z70\5\0c1 and z70\5\0c2..z70\5\0 + --cycle; + fill_or_unfill z70\6\0s + ..controls z70\6\0c1 and z70\6\0c2..z70\6\0 + ..controls z70\6\1c1 and z70\6\1c2..cycle; +endchar; % G36 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{G43} +% The sign \textit{G43}. +% A small bird standing up in profile (w). +% \begin{macrocode} + +%% G43: a small bird standing up in profile +%% (code as w(119) 119+31 = 150) +beginchar (150, 12.188u# + side#, 17.371u#, 0.000u#); + "G43"; + z77\0\0s = (0.723u,16.381u); z77\0\0 = (0.723u,15.899u); + z77\0\1 = (2.003u,14.904u); z77\0\2 = (2.522u,12.527u); + z77\0\3 = (5.624u,5.540u); z77\0\4 = (4.577u,1.445u); + z77\0\5c1 = (3.101u,1.377u); z77\0\5c2 = (0.304u,1.772u); + z77\0\5 = (0.000u,0.000u); z77\0\6 = (9.395u,0.000u); + z77\0\7 = (7.950u,1.204u); z77\0\8 = (8.913u,5.299u); + z77\0\9c1 = (9.714u,5.367u); z77\0\9c2 = (11.932u,5.621u); + z77\0\9 = (12.177u,6.538u); z77\0\10c1 = (12.363u,7.234u); + z77\0\10c2 = (11.099u,8.549u); z77\0\10 = (10.705u,9.154u); + z77\0\11 = (6.403u,14.716u); z77\0\12c1 = (5.993u,15.304u); + z77\0\12c2 = (5.916u,16.035u); z77\0\12 = (5.437u,16.587u); + z77\0\13c1 = (5.188u,16.873u); z77\0\13c2 = (4.929u,17.065u); + z77\0\13 = (4.573u,17.200u); z77\0\14c1 = (3.231u,17.710u); + z77\0\14c2 = (1.878u,16.980u); z77\1\0s = (7.468u,12.045u); + z77\1\0c1 = (6.334u,11.350u); z77\1\0c2 = (6.183u,11.190u); + z77\1\0 = (6.504u,9.877u); z77\1\1c1 = (5.142u,10.559u); + z77\1\1c2 = (4.167u,11.971u); z77\1\1 = (5.781u,13.008u); + z77\1\2c1 = (3.995u,13.471u); z77\1\2c2 = (4.263u,12.099u); + z77\1\2 = (4.336u,10.840u); z77\1\3 = (2.168u,15.899u); + z77\1\4 = (2.168u,16.381u); z77\1\5c1 = (5.269u,17.376u); + z77\1\5c2 = (4.497u,16.048u); z77\1\5 = (5.717u,14.234u); + z77\1\6c1 = (6.260u,13.428u); z77\1\6c2 = (6.977u,12.939u); + z77\2\0s = (3.132u,16.381u); z77\2\0 = (3.132u,15.658u); + z77\2\1 = (3.854u,15.899u); z77\3\0s = (11.563u,6.504u); + z77\3\0c1 = (7.921u,5.772u); z77\3\0c2 = (5.400u,6.024u); + z77\3\0 = (4.577u,10.358u); z77\3\1 = (7.227u,8.913u); + z77\3\2 = (6.986u,11.081u); z77\3\3c1 = (8.971u,11.404u); + z77\3\3c2 = (10.815u,8.120u); z77\4\0s = (4.458u,10.602u); + z77\5\0s = (6.745u,5.781u); z77\5\0c1 = (8.474u,4.047u); + z77\5\0c2 = (8.002u,1.235u); z77\5\0 = (5.300u,1.204u); + fill_or_unfill z77\0\0s + --z77\0\0 --z77\0\1 --z77\0\2 --z77\0\3 --z77\0\4 + ..controls z77\0\5c1 and z77\0\5c2..z77\0\5 + --z77\0\6 --z77\0\7 --z77\0\8 + ..controls z77\0\9c1 and z77\0\9c2..z77\0\9 + ..controls z77\0\10c1 and z77\0\10c2..z77\0\10 + --z77\0\11 + ..controls z77\0\12c1 and z77\0\12c2..z77\0\12 + ..controls z77\0\13c1 and z77\0\13c2..z77\0\13 + ..controls z77\0\14c1 and z77\0\14c2..cycle; + fill_or_unfill z77\1\0s + ..controls z77\1\0c1 and z77\1\0c2..z77\1\0 + ..controls z77\1\1c1 and z77\1\1c2..z77\1\1 + ..controls z77\1\2c1 and z77\1\2c2..z77\1\2 + --z77\1\3 --z77\1\4 + ..controls z77\1\5c1 and z77\1\5c2..z77\1\5 + ..controls z77\1\6c1 and z77\1\6c2..cycle; + fill_or_unfill z77\2\0s + --z77\2\0 --z77\2\1 --cycle; + fill_or_unfill z77\3\0s + ..controls z77\3\0c1 and z77\3\0c2..z77\3\0 + --z77\3\1 --z77\3\2 + ..controls z77\3\3c1 and z77\3\3c2..cycle; + fill_or_unfill z77\4\0s + --cycle; + fill_or_unfill z77\5\0s + ..controls z77\5\0c1 and z77\5\0c2..z77\5\0 + --cycle; +endchar; % G43 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{H8} +% The sign \textit{H8}. +% An oval tilted up at the left (egg sign). +% \begin{macrocode} + +%% H8: The egg sign (tilted ellipse). +%% (code as O(79) 79+31 = 110) +beginchar (110, 6.176u# + side#, 8.644u#, 0.000u#); + "H8"; + z40\0\0s = (1.112u,8.644u); z40\0\0c1 = (-2.114u,7.227u); + z40\0\0c2 = (2.364u,-0.989u); z40\0\0 = (5.183u,0.015u); + z40\0\1c1 = (7.767u,0.935u); z40\0\1c2 = (5.151u,9.387u); + z40\1\0s = (1.950u,8.132u); z40\1\0c1 = (4.118u,7.717u); + z40\1\0c2 = (5.423u,3.971u); z40\1\0 = (5.312u,2.035u); + z40\1\1c1 = (5.056u,-2.442u); z40\1\1c2 = (-2.061u,7.364u); + fill_or_unfill z40\0\0s + ..controls z40\0\0c1 and z40\0\0c2..z40\0\0 + ..controls z40\0\1c1 and z40\0\1c2..cycle; + fill_or_unfill z40\1\0s + ..controls z40\1\0c1 and z40\1\0c2..z40\1\0 + ..controls z40\1\1c1 and z40\1\1c2..cycle; +endchar; % H8 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{I9} +% The sign \textit{I9}. +% A horizontal snake (f). +% \begin{macrocode} + +%% I9: horizontal snake +%% (code as f(102) 102+31 = 133) +beginchar (133, 17.586u# + side#, 5.776u#, 0.000u#); + "I9"; + z41\0\0s = (0.000u,5.776u); z41\0\0 = (0.000u,5.294u); + z41\0\1 = (1.204u,4.331u); z41\0\2c1 = (0.976u,4.246u); + z41\0\2c2 = (0.763u,4.211u); z41\0\2 = (0.558u,4.059u); + z41\0\3c1 = (-1.327u,2.673u); z41\0\3c2 = (2.135u,2.350u); + z41\0\3 = (2.572u,2.129u); z41\0\4c1 = (3.328u,1.748u); + z41\0\4c2 = (3.719u,0.973u); z41\0\4 = (4.581u,0.666u); + z41\0\5c1 = (6.081u,0.016u); z41\0\5c2 = (8.030u,0.759u); + z41\0\5 = (9.636u,0.666u); z41\0\6c1 = (12.228u,0.624u); + z41\0\6c2 = (15.059u,-0.685u); z41\0\6 = (17.586u,0.476u); + z41\0\7 = (16.810u,1.259u); z41\0\8 = (13.490u,1.531u); + z41\0\9 = (9.154u,2.773u); z41\0\10 = (5.442u,2.439u); + z41\0\11 = (2.650u,4.331u); z41\0\12 = (4.095u,5.776u); + z41\0\13 = (1.927u,5.506u); z41\1\0s = (2.891u,3.367u); + z41\1\0 = (0.963u,3.126u); z41\1\1 = (0.963u,3.608u); + z41\2\0s = (3.613u,2.885u); z41\3\0s = (3.854u,2.644u); + z41\3\0c1 = (6.153u,1.024u); z41\3\0c2 = (6.375u,2.081u); + z41\3\0 = (8.672u,2.081u); z41\3\1c1 = (9.639u,2.081u); + z41\3\1c2 = (10.653u,1.736u); z41\3\1 = (11.563u,1.438u); + z41\3\2c1 = (10.682u,1.190u); z41\3\2c2 = (9.608u,1.458u); + z41\3\2 = (8.672u,1.438u); z41\3\3c1 = (7.348u,1.406u); + z41\3\3c2 = (3.886u,0.334u); + fill_or_unfill z41\0\0s + --z41\0\0 --z41\0\1 + ..controls z41\0\2c1 and z41\0\2c2..z41\0\2 + ..controls z41\0\3c1 and z41\0\3c2..z41\0\3 + ..controls z41\0\4c1 and z41\0\4c2..z41\0\4 + ..controls z41\0\5c1 and z41\0\5c2..z41\0\5 + ..controls z41\0\6c1 and z41\0\6c2..z41\0\6 + --z41\0\7 --z41\0\8 --z41\0\9 --z41\0\10 --z41\0\11 + --z41\0\12 --z41\0\13 --cycle; + fill_or_unfill z41\1\0s + --z41\1\0 --z41\1\1 --cycle; + fill_or_unfill z41\2\0s + --cycle; + fill_or_unfill z41\3\0s + ..controls z41\3\0c1 and z41\3\0c2..z41\3\0 + ..controls z41\3\1c1 and z41\3\1c2..z41\3\1 + ..controls z41\3\2c1 and z41\3\2c2..z41\3\2 + ..controls z41\3\3c1 and z41\3\3c2..cycle; +endchar; % I9 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{I10} +% The sign \textit{I10}. +% A snake with its tail dropped and head raised (D). +% \begin{macrocode} + +%% I10: snake with dropping tail +%% (code as D(68) 68+31 = 99) +beginchar (99, 15.899u# + side#, 6.745u#, 10.600u#); + "I10"; + z42\0\0s = (2.168u,4.577u); z42\0\0 = (1.869u,3.132u); + z42\0\1c1 = (1.697u,1.693u); z42\0\1c2 = (2.360u,1.469u); + z42\0\1 = (3.614u,1.446u); z42\0\2c1 = (6.350u,1.397u); + z42\0\2c2 = (8.864u,2.071u); z42\0\2 = (11.563u,1.070u); + z42\0\3c1 = (14.672u,-0.083u); z42\0\3c2 = (13.899u,-2.250u); + z42\0\3 = (13.753u,-4.818u); z42\0\4c1 = (13.683u,-6.058u); + z42\0\4c2 = (14.057u,-7.262u); z42\0\4 = (14.427u,-8.431u); + z42\0\5c1 = (14.736u,-9.409u); z42\0\5c2 = (14.882u,-10.002u); + z42\0\5 = (15.899u,-10.359u); z42\0\6 = (15.186u,-6.504u); + z42\0\7c1 = (15.091u,-4.320u); z42\0\7c2 = (16.039u,-1.852u); + z42\0\7 = (15.530u,0.241u); z42\0\8c1 = (14.546u,4.295u); + z42\0\8c2 = (6.481u,3.776u); z42\0\8 = (3.372u,2.891u); + z42\0\9c1 = (3.359u,3.784u); z42\0\9c2 = (3.876u,4.958u); + z42\0\9 = (3.516u,5.768u); z42\0\10c1 = (2.486u,8.085u); + z42\0\10c2 = (-1.652u,5.671u); z42\0\10 = (0.976u,4.804u); + z42\1\0s = (2.650u,5.300u); z42\1\0 = (0.821u,5.680u); + z42\1\1c1 = (1.626u,6.588u); z42\1\1c2 = (2.761u,6.175u); + z42\2\0s = (14.936u,-2.409u); z42\2\0c1 = (14.570u,-1.518u); + z42\2\0c2 = (14.566u,-0.612u); z42\2\0 = (13.980u,0.216u); + z42\2\1c1 = (12.073u,2.910u); z42\2\1c2 = (7.586u,2.229u); + z42\2\1 = (4.818u,2.168u); z42\2\2c1 = (6.243u,3.217u); + z42\2\2c2 = (13.053u,2.897u); z42\2\2 = (14.297u,1.392u); + z42\2\3c1 = (15.132u,0.383u); z42\2\3c2 = (14.936u,-1.180u); + fill_or_unfill z42\0\0s + --z42\0\0 + ..controls z42\0\1c1 and z42\0\1c2..z42\0\1 + ..controls z42\0\2c1 and z42\0\2c2..z42\0\2 + ..controls z42\0\3c1 and z42\0\3c2..z42\0\3 + ..controls z42\0\4c1 and z42\0\4c2..z42\0\4 + ..controls z42\0\5c1 and z42\0\5c2..z42\0\5 + --z42\0\6 + ..controls z42\0\7c1 and z42\0\7c2..z42\0\7 + ..controls z42\0\8c1 and z42\0\8c2..z42\0\8 + ..controls z42\0\9c1 and z42\0\9c2..z42\0\9 + ..controls z42\0\10c1 and z42\0\10c2..z42\0\10 + --cycle; + fill_or_unfill z42\1\0s + --z42\1\0 + ..controls z42\1\1c1 and z42\1\1c2..cycle; + fill_or_unfill z42\2\0s + ..controls z42\2\0c1 and z42\2\0c2..z42\2\0 + ..controls z42\2\1c1 and z42\2\1c2..z42\2\1 + ..controls z42\2\2c1 and z42\2\2c2..z42\2\2 + ..controls z42\2\3c1 and z42\2\3c2..cycle; +endchar; % I10 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{K1} +% The sign \textit{K1}. +% A fish with a large dorsal fin (in). +% \begin{macrocode} + +%% K1. A fish. +%% (code as F(70) 70+31 = 101) +beginchar (101, 17.658u# + side#, 8.816u#, 0.000u#); + "K1"; + z32\0\0s = (7.799u,0.000u); z32\0\0 = (7.558u,1.204u); + z32\0\1 = (13.339u,0.963u); z32\0\2 = (13.098u,2.409u); + z32\0\3c1 = (14.327u,2.396u); z32\0\3c2 = (16.068u,1.130u); + z32\0\3 = (16.658u,1.310u); z32\0\4c1 = (18.022u,1.725u); + z32\0\4c2 = (18.048u,6.132u); z32\0\4 = (16.445u,6.066u); + z32\0\5c1 = (15.936u,6.045u); z32\0\5c2 = (14.422u,5.086u); + z32\0\5 = (13.821u,4.818u); z32\0\6 = (15.507u,8.672u); + z32\0\7 = (4.448u,8.816u); z32\0\8 = (2.073u,6.146u); + z32\0\9 = (0.000u,3.602u); z32\0\10 = (0.826u,2.481u); + z32\0\11 = (3.703u,1.656u); z32\1\0s = (14.544u,7.950u); + z32\1\0 = (12.814u,5.454u); z32\1\1 = (7.076u,6.711u); + z32\1\2 = (3.703u,6.711u); z32\1\3c1 = (4.253u,7.935u); + z32\1\3c2 = (4.481u,8.372u); z32\1\3 = (5.872u,8.427u); + z32\1\4 = (11.412u,8.191u); z32\1\5c1 = (12.500u,8.186u); + z32\1\5c2 = (13.477u,8.209u); z32\2\0s = (14.062u,4.095u); + z32\2\0c1 = (13.316u,1.907u); z32\2\0c2 = (6.428u,1.681u); + z32\2\0 = (4.426u,2.168u); z32\2\1c1 = (5.177u,3.939u); + z32\2\1c2 = (6.645u,2.976u); z32\2\1 = (8.280u,3.372u); + z32\2\2 = (4.185u,5.300u); z32\2\3c1 = (4.612u,1.387u); + z32\2\3c2 = (2.761u,3.198u); z32\2\3 = (0.812u,3.613u); + z32\2\4c1 = (3.063u,8.065u); z32\2\4c2 = (10.552u,5.444u); + z32\3\0s = (16.471u,1.927u); z32\3\0c1 = (15.039u,2.633u); + z32\3\0c2 = (14.846u,2.778u); z32\3\0 = (14.544u,4.336u); + z32\3\1c1 = (17.285u,6.189u); z32\3\1c2 = (17.432u,4.002u); + z32\4\0s = (2.499u,4.577u); z32\4\0 = (2.499u,3.854u); + z32\4\1 = (3.221u,3.854u); z32\4\2 = (3.221u,4.577u); + fill_or_unfill z32\0\0s + --z32\0\0 --z32\0\1 --z32\0\2 + ..controls z32\0\3c1 and z32\0\3c2..z32\0\3 + ..controls z32\0\4c1 and z32\0\4c2..z32\0\4 + ..controls z32\0\5c1 and z32\0\5c2..z32\0\5 + --z32\0\6 --z32\0\7 --z32\0\8 --z32\0\9 --z32\0\10 + --z32\0\11 --cycle; + fill_or_unfill z32\1\0s + --z32\1\0 --z32\1\1 --z32\1\2 + ..controls z32\1\3c1 and z32\1\3c2..z32\1\3 + --z32\1\4 + ..controls z32\1\5c1 and z32\1\5c2..cycle; + fill_or_unfill z32\2\0s + ..controls z32\2\0c1 and z32\2\0c2..z32\2\0 + ..controls z32\2\1c1 and z32\2\1c2..z32\2\1 + --z32\2\2 + ..controls z32\2\3c1 and z32\2\3c2..z32\2\3 + ..controls z32\2\4c1 and z32\2\4c2..cycle; + fill_or_unfill z32\3\0s + ..controls z32\3\0c1 and z32\3\0c2..z32\3\0 + ..controls z32\3\1c1 and z32\3\1c2..cycle; + fill_or_unfill z32\4\0s + --z32\4\0 --z32\4\1 --z32\4\2 --cycle; +endchar; % K1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{M3} +% The sign \textit{M3}. +% A branch with twigs (wood, tree). +% \begin{macrocode} + +%% M3: a branch +%% (code as c(99) 99+31 = 130) +%% (code as N(78) 78+31 = 109) +beginchar (109, 16.863u# + side#, 4.105u#, 0.000u#); + "M3"; + z34\0\0s = (0.000u,4.105u); z34\0\0c1 = (0.245u,2.350u); + z34\0\0c2 = (1.152u,1.827u); z34\0\0 = (2.409u,0.733u); + z34\0\1 = (0.723u,0.733u); z34\0\2c1 = (2.218u,-1.688u); + z34\0\2c2 = (7.643u,2.733u); z34\0\2 = (10.118u,1.937u); + z34\0\3 = (8.431u,0.973u); z34\0\4 = (11.804u,1.674u); + z34\0\5 = (16.863u,1.214u); z34\0\6 = (16.863u,2.178u); + z34\0\7 = (5.541u,3.383u); z34\0\8 = (5.541u,2.901u); + z34\0\9 = (7.709u,2.901u); z34\0\10c1 = (6.977u,2.123u); + z34\0\10c2 = (6.277u,1.882u); z34\0\10 = (5.300u,1.504u); + z34\0\11c1 = (2.091u,0.263u); z34\0\11c2 = (2.138u,2.778u); + fill_or_unfill z34\0\0s + ..controls z34\0\0c1 and z34\0\0c2..z34\0\0 + --z34\0\1 + ..controls z34\0\2c1 and z34\0\2c2..z34\0\2 + --z34\0\3 --z34\0\4 --z34\0\5 --z34\0\6 --z34\0\7 + --z34\0\8 --z34\0\9 + ..controls z34\0\10c1 and z34\0\10c2..z34\0\10 + ..controls z34\0\11c1 and z34\0\11c2..cycle; +endchar; % M3 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{M8} +% The sign \textit{M8}. +% A lotus pool (SA). +% \begin{macrocode} + +%% M8: A lotus pool. +%% (code as L(76) 76+31 = 107) +%% (code as E(69) 69+31 = 100) +beginchar (100, 16.674u# + side#, 8.723u#, 0.000u#); + "M8"; + z39\0\0s = (0.294u,8.699u); z39\0\0c1 = (0.981u,7.666u); + z39\0\0c2 = (2.042u,6.753u); z39\0\0 = (1.953u,5.601u); + z39\0\1c1 = (1.868u,4.488u); z39\0\1c2 = (0.796u,4.280u); + z39\0\1 = (0.321u,3.401u); z39\0\2c1 = (-0.933u,1.076u); + z39\0\2c2 = (1.625u,0.054u); z39\0\2 = (3.447u,0.051u); + z39\0\3c1 = (5.281u,0.047u); z39\0\3c2 = (14.440u,-0.164u); + z39\0\3 = (15.470u,0.293u); z39\0\4c1 = (16.298u,0.660u); + z39\0\4c2 = (16.663u,1.333u); z39\0\4 = (16.674u,2.219u); + z39\0\5c1 = (16.699u,4.239u); z39\0\5c2 = (15.127u,3.935u); + z39\0\5 = (14.850u,5.135u); z39\0\6c1 = (14.577u,6.317u); + z39\0\6c2 = (15.889u,7.369u); z39\0\6 = (16.246u,8.699u); + z39\0\7 = (12.280u,8.743u); z39\0\8c1 = (13.742u,6.473u); + z39\0\8c2 = (14.038u,6.865u); z39\0\8 = (14.047u,4.628u); + z39\0\9 = (11.879u,4.628u); z39\0\10 = (11.879u,8.241u); + z39\0\11 = (11.397u,8.241u); z39\0\12 = (11.397u,4.628u); + z39\0\13 = (8.506u,4.628u); z39\0\14c1 = (8.515u,6.833u); + z39\0\14c2 = (8.823u,6.694u); z39\0\14 = (10.077u,8.743u); + z39\0\15 = (6.199u,8.743u); z39\0\16 = (6.338u,8.000u); + z39\0\17c1 = (7.703u,6.843u); z39\0\17c2 = (7.777u,6.346u); + z39\0\17 = (7.784u,4.628u); z39\0\18 = (5.616u,4.628u); + z39\0\19 = (5.616u,8.241u); z39\0\20 = (5.134u,8.241u); + z39\0\21 = (5.134u,4.628u); z39\0\22c1 = (2.215u,4.630u); + z39\0\22c2 = (1.533u,5.994u); z39\0\22 = (3.929u,8.000u); + z39\0\23 = (3.929u,8.723u); z39\1\0s = (3.054u,8.218u); + z39\1\0c1 = (2.605u,7.096u); z39\1\0c2 = (2.057u,7.096u); + z39\1\0 = (1.609u,8.218u); z39\2\0s = (8.988u,8.241u); + z39\2\0c1 = (8.400u,7.213u); z39\2\0c2 = (7.890u,7.213u); + z39\2\0 = (7.302u,8.241u); z39\3\0s = (15.252u,8.000u); + z39\3\0 = (15.252u,7.518u); z39\3\1c1 = (14.247u,7.258u); + z39\3\1c2 = (13.971u,7.232u); z39\3\1 = (13.565u,8.241u); + z39\4\0s = (1.772u,3.782u); z39\4\0c1 = (3.225u,4.046u); + z39\4\0c2 = (13.943u,4.070u); z39\4\0 = (15.000u,3.629u); + z39\4\1c1 = (16.265u,3.102u); z39\4\1c2 = (16.516u,1.547u); + z39\4\1 = (15.201u,0.951u); z39\4\2c1 = (14.724u,0.735u); + z39\4\2c2 = (13.855u,0.774u); z39\4\2 = (13.324u,0.773u); + z39\4\3 = (3.447u,0.773u); z39\4\4c1 = (1.320u,0.784u); + z39\4\4c2 = (-0.931u,2.509u); + fill_or_unfill z39\0\0s + ..controls z39\0\0c1 and z39\0\0c2..z39\0\0 + ..controls z39\0\1c1 and z39\0\1c2..z39\0\1 + ..controls z39\0\2c1 and z39\0\2c2..z39\0\2 + ..controls z39\0\3c1 and z39\0\3c2..z39\0\3 + ..controls z39\0\4c1 and z39\0\4c2..z39\0\4 + ..controls z39\0\5c1 and z39\0\5c2..z39\0\5 + ..controls z39\0\6c1 and z39\0\6c2..z39\0\6 + --z39\0\7 + ..controls z39\0\8c1 and z39\0\8c2..z39\0\8 + --z39\0\9 --z39\0\10 --z39\0\11 --z39\0\12 --z39\0\13 + ..controls z39\0\14c1 and z39\0\14c2..z39\0\14 + --z39\0\15 --z39\0\16 + ..controls z39\0\17c1 and z39\0\17c2..z39\0\17 + --z39\0\18 --z39\0\19 --z39\0\20 --z39\0\21 + ..controls z39\0\22c1 and z39\0\22c2..z39\0\22 + --z39\0\23 --cycle; + fill_or_unfill z39\1\0s + ..controls z39\1\0c1 and z39\1\0c2..z39\1\0 + --cycle; + fill_or_unfill z39\2\0s + ..controls z39\2\0c1 and z39\2\0c2..z39\2\0 + --cycle; + fill_or_unfill z39\3\0s + --z39\3\0 + ..controls z39\3\1c1 and z39\3\1c2..z39\3\1 + --cycle; + fill_or_unfill z39\4\0s + ..controls z39\4\0c1 and z39\4\0c2..z39\4\0 + ..controls z39\4\1c1 and z39\4\1c2..z39\4\1 + ..controls z39\4\2c1 and z39\4\2c2..z39\4\2 + --z39\4\3 + ..controls z39\4\4c1 and z39\4\4c2..cycle; +endchar; % M8 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{M17} +% The sign \textit{M17}. +% A bit like a machete (i). +% \begin{macrocode} + +%% M17: a machette +%% (code as i(105) 105+31 = 136) +beginchar (136, 4.197u# + side#, 17.824u#, 0.000u#); + "M17"; + z48\0\0s = (1.412u,17.824u); z48\0\0c1 = (1.533u,16.738u); + z48\0\0c2 = (-0.254u,7.357u); z48\0\0 = (0.020u,6.582u); + z48\0\1c1 = (0.024u,4.308u); z48\0\1c2 = (2.993u,6.108u); + z48\0\1 = (2.993u,0.000u); z48\0\2 = (4.197u,0.000u); + z48\0\3 = (4.197u,13.009u); z48\0\4c1 = (4.171u,14.928u); + z48\0\4c2 = (3.494u,16.916u); z48\1\0s = (2.029u,16.622u); + z48\1\0 = (3.096u,15.176u); z48\1\1 = (3.041u,4.308u); + z48\1\2 = (0.749u,7.026u); + fill_or_unfill z48\0\0s + ..controls z48\0\0c1 and z48\0\0c2..z48\0\0 + ..controls z48\0\1c1 and z48\0\1c2..z48\0\1 + --z48\0\2 --z48\0\3 + ..controls z48\0\4c1 and z48\0\4c2..cycle; + fill_or_unfill z48\1\0s + --z48\1\0 --z48\1\1 --z48\1\2 --cycle; +endchar; % M17 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{N29} +% The sign \textit{N29}. +% A rightangled triangle with wavy hypotenuse (q). +% \begin{macrocode} + +%% N29: triangle with wavy hypotenuse +%% (code as q(113) 113+31 = 144) +%% (code as K(75) 75+31 = 106) +beginchar (106, 7.468u# + side#, 7.649u#, 0.000u#); + "N29"; + z60\0\0s = (0.000u,0.000u); z60\0\0 = (7.468u,0.000u); + z60\0\1 = (7.083u,6.951u); z60\0\2c1 = (6.513u,8.259u); + z60\0\2c2 = (4.994u,7.504u); z60\0\2 = (4.358u,6.700u); + z60\0\3c1 = (3.551u,5.680u); z60\0\3c2 = (3.170u,4.484u); + z60\0\3 = (2.551u,3.372u); z60\0\4c1 = (1.828u,2.075u); + z60\0\4c2 = (0.439u,1.425u); z60\1\0s = (6.504u,6.986u); + z60\1\0 = (6.504u,0.722u); z60\1\1 = (1.445u,0.722u); + z60\1\2 = (3.150u,3.131u); z60\1\3 = (5.152u,6.601u); + fill_or_unfill z60\0\0s + --z60\0\0 --z60\0\1 + ..controls z60\0\2c1 and z60\0\2c2..z60\0\2 + ..controls z60\0\3c1 and z60\0\3c2..z60\0\3 + ..controls z60\0\4c1 and z60\0\4c2..cycle; + fill_or_unfill z60\1\0s + --z60\1\0 --z60\1\1 --z60\1\2 --z60\1\3 --cycle; +endchar; % N29 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{N35} +% The sign \textit{N35}. +% Long jagged line (n). +% \begin{macrocode} + +%% N35: long jagged line +%% (code as n(110) 110+31 = 141) +beginchar (141, 15.398u# + side#, 2.357u#, 0.000u#); + "N35"; + z66\0\0s = (1.194u,2.357u); z66\0\0 = (0.032u,1.291u); + z66\0\1 = (0.000u,0.097u); z66\0\2 = (1.194u,1.259u); + z66\0\3 = (2.486u,0.162u); z66\0\4 = (3.745u,1.227u); + z66\0\5 = (5.068u,0.162u); z66\0\6 = (6.327u,1.227u); + z66\0\7 = (7.650u,0.129u); z66\0\8 = (8.942u,1.227u); + z66\0\9 = (10.233u,0.129u); z66\0\10 = (11.524u,1.227u); + z66\0\11 = (12.847u,0.000u); z66\0\12 = (14.074u,1.259u); + z66\0\13 = (15.398u,0.097u); z66\0\14 = (15.365u,1.227u); + z66\0\15 = (14.042u,2.324u); z66\0\16 = (12.847u,1.259u); + z66\0\17 = (11.492u,2.324u); z66\0\18 = (10.233u,1.227u); + z66\0\19 = (8.942u,2.357u); z66\0\20 = (7.650u,1.227u); + z66\0\21 = (6.359u,2.357u); z66\0\22 = (5.100u,1.227u); + z66\0\23 = (3.745u,2.324u); z66\0\24 = (2.518u,1.388u); + fill_or_unfill z66\0\0s + --z66\0\0 --z66\0\1 --z66\0\2 --z66\0\3 --z66\0\4 + --z66\0\5 --z66\0\6 --z66\0\7 --z66\0\8 --z66\0\9 + --z66\0\10 --z66\0\11 --z66\0\12 --z66\0\13 --z66\0\14 + --z66\0\15 --z66\0\16 --z66\0\17 --z66\0\18 --z66\0\19 + --z66\0\20 --z66\0\21 --z66\0\22 --z66\0\23 --z66\0\24 + --cycle; +endchar; % N35 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{N37} +% The sign \textit{N37}. +% Rectangular slab (stone, sh) +% \begin{macrocode} + +%% N37: Rectangular slab +%% (code as S(83) 83+31 = 114) +%% (code as z(121) 121+31 = 153) +beginchar (153, 17.586u# + side#, 4.336u#, 0.000u#); + "N37"; + z69\0\0s = (0.000u,4.336u); z69\0\0 = (0.000u,0.000u); + z69\0\1 = (17.586u,0.000u); z69\0\2 = (17.586u,4.336u); + z69\1\0s = (16.863u,3.614u); z69\1\0 = (16.863u,0.723u); + z69\1\1 = (0.723u,0.723u); z69\1\2 = (0.723u,3.614u); + fill_or_unfill z69\0\0s + --z69\0\0 --z69\0\1 --z69\0\2 --cycle; + fill_or_unfill z69\1\0s + --z69\1\0 --z69\1\1 --z69\1\2 --cycle; +endchar; % N37 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{O1} +% The sign \textit{O1}. (house). +% Ground plan of a house with one door (house, pr). +% \begin{macrocode} + +%% O1. rectangle with part of base open (house). +%% (code as j(106) 106+31 = 137) +beginchar (137, 14.213u# + side#, 7.468u#, 0.000u#); + "O1"; + z32\0\0s = (0.000u,7.468u); z32\0\0 = (0.000u,0.000u); + z32\0\1 = (4.577u,0.000u); z32\0\2 = (4.577u,0.722u); + z32\0\3 = (0.723u,0.722u); z32\0\4 = (0.723u,6.745u); + z32\0\5 = (13.490u,6.745u); z32\0\6 = (13.490u,0.722u); + z32\0\7 = (9.636u,0.722u); z32\0\8 = (9.636u,0.000u); + z32\0\9 = (14.213u,0.000u); z32\0\10 = (14.213u,7.468u); + fill_or_unfill z32\0\0s + --z32\0\0 --z32\0\1 --z32\0\2 --z32\0\3 --z32\0\4 + --z32\0\5 --z32\0\6 --z32\0\7 --z32\0\8 --z32\0\9 + --z32\0\10 --cycle; +endchar; % O1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{O4} +% The sign \textit{O4}. +% A square spiral (h). +% \begin{macrocode} + +%% O4: square spiral +%% (code as h(104) 104+31 = 135) +beginchar (135, 10.359u# + side#, 8.190u#, 0.000u#); + "O4"; + z35\0\0s = (0.000u,8.190u); z35\0\0 = (0.000u,0.000u); + z35\0\1 = (0.963u,0.000u); z35\0\2 = (0.963u,7.227u); + z35\0\3 = (9.395u,7.227u); z35\0\4 = (9.395u,0.963u); + z35\0\5 = (5.300u,0.963u); z35\0\6 = (5.300u,5.540u); + z35\0\7 = (4.336u,5.540u); z35\0\8 = (4.336u,0.000u); + z35\0\9 = (10.359u,0.000u); z35\0\10 = (10.359u,8.190u); + fill_or_unfill z35\0\0s + --z35\0\0 --z35\0\1 --z35\0\2 --z35\0\3 --z35\0\4 + --z35\0\5 --z35\0\6 --z35\0\7 --z35\0\8 --z35\0\9 + --z35\0\10 --cycle; +endchar; % O4 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{O34} +% The sign \textit{O34}. +% Horizontal line with two blobs in the middle (z). +% \begin{macrocode} + +%% O34: Horizontal line with two blobs +%% (code as z(122) 122+31 = 153) +%% (code as S(83) 83+31 = 114) +beginchar (114, 16.863u# + side#, 2.542u#, 0.000u#); + "O34"; + z65\0\0s = (-0.007u,1.572u); z65\0\0 = (-0.007u,1.044u); + z65\0\1 = (5.138u,1.044u); z65\0\2c1 = (5.930u,0.516u); + z65\0\2c2 = (7.777u,0.120u); z65\0\2 = (8.436u,1.044u); + z65\0\3c1 = (8.964u,0.120u); z65\0\3c2 = (10.679u,0.384u); + z65\0\3 = (11.602u,1.044u); z65\0\4 = (16.879u,1.044u); + z65\0\5 = (16.879u,1.572u); z65\0\6 = (11.602u,1.572u); + z65\0\7c1 = (10.679u,2.231u); z65\0\7c2 = (8.964u,2.495u); + z65\0\7 = (8.436u,1.572u); z65\0\8c1 = (7.777u,2.495u); + z65\0\8c2 = (6.062u,2.231u); z65\0\8 = (5.138u,1.572u); + z65\1\0s = (5.666u,1.308u); z65\1\0c1 = (6.194u,1.703u); + z65\1\0c2 = (7.645u,1.703u); z65\1\0 = (8.172u,1.308u); + z65\1\1c1 = (7.645u,0.912u); z65\1\1c2 = (6.194u,0.912u); + z65\2\0s = (8.700u,1.308u); z65\2\0c1 = (9.096u,1.703u); + z65\2\0c2 = (10.547u,1.703u); z65\2\0 = (11.206u,1.308u); + z65\2\1c1 = (10.547u,0.912u); z65\2\1c2 = (9.096u,0.912u); + fill_or_unfill z65\0\0s + --z65\0\0 --z65\0\1 + ..controls z65\0\2c1 and z65\0\2c2..z65\0\2 + ..controls z65\0\3c1 and z65\0\3c2..z65\0\3 + --z65\0\4 --z65\0\5 --z65\0\6 + ..controls z65\0\7c1 and z65\0\7c2..z65\0\7 + ..controls z65\0\8c1 and z65\0\8c2..z65\0\8 + --cycle; + fill_or_unfill z65\1\0s + ..controls z65\1\0c1 and z65\1\0c2..z65\1\0 + ..controls z65\1\1c1 and z65\1\1c2..cycle; + fill_or_unfill z65\2\0s + ..controls z65\2\0c1 and z65\2\0c2..z65\2\0 + ..controls z65\2\1c1 and z65\2\1c2..cycle; +endchar; % O34 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Q3} +% The sign \textit{Q3}. +% A square (p). +% \begin{macrocode} + +%% Q3: a square +%% (code as p(112) 112+31 = 143) +beginchar (143, 5.300u# + side#, 6.986u#, 0.000u#); + "Q3"; + z34\0\0s = (0.000u,6.986u); z34\0\0 = (0.000u,0.000u); + z34\0\1 = (5.300u,0.000u); z34\0\2 = (5.300u,6.986u); + z34\1\0s = (4.577u,6.263u); z34\1\0 = (4.577u,0.723u); + z34\1\1 = (0.723u,0.723u); z34\1\2 = (0.723u,6.263u); + fill_or_unfill z34\0\0s + --z34\0\0 --z34\0\1 --z34\0\2 --cycle; + fill_or_unfill z34\1\0s + --z34\1\0 --z34\1\1 --z34\1\2 --cycle; +endchar; % Q3 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{R7} +% The sign \textit{R7}. +% Looks like a bucket or flowerpot with something sticking out of the top (snTp). +% \begin{macrocode} + +%% R7: A bucket with something sticking up. +%% (code as B(66) 66+31 = 97) +beginchar (97, 7.709u# + side#, 13.249u#, 0.000u#); + "R7"; + z38\0\0s = (1.445u,13.249u); z38\0\0c1 = (1.650u,12.116u); + z38\0\0c2 = (3.518u,8.187u); z38\0\0 = (2.552u,7.473u); + z38\0\1c1 = (2.129u,7.160u); z38\0\1c2 = (0.838u,7.156u); + z38\0\1 = (0.241u,6.986u); z38\0\2 = (1.135u,2.891u); + z38\0\3c1 = (1.210u,2.310u); z38\0\3c2 = (1.135u,1.282u); + z38\0\3 = (1.382u,0.793u); z38\0\4c1 = (1.835u,-0.103u); + z38\0\4c2 = (5.723u,0.241u); z38\0\4 = (6.745u,0.241u); + z38\0\5 = (7.949u,7.227u); z38\0\6c1 = (7.395u,7.229u); + z38\0\6c2 = (6.568u,7.173u); z38\0\6 = (6.088u,7.473u); + z38\0\7c1 = (4.809u,8.274u); z38\0\7c2 = (4.664u,12.563u); + z38\1\0s = (2.890u,11.563u); z38\2\0s = (3.131u,11.322u); + z38\2\0 = (5.058u,7.468u); z38\2\1c1 = (3.356u,7.109u); + z38\2\1c2 = (2.696u,9.996u); z38\3\0s = (7.226u,6.504u); + z38\3\0 = (5.980u,1.342u); z38\3\1c1 = (5.481u,0.711u); + z38\3\1c2 = (2.463u,0.764u); z38\3\1 = (2.067u,1.521u); + z38\3\2 = (0.963u,6.504u); + fill_or_unfill z38\0\0s + ..controls z38\0\0c1 and z38\0\0c2..z38\0\0 + ..controls z38\0\1c1 and z38\0\1c2..z38\0\1 + --z38\0\2 + ..controls z38\0\3c1 and z38\0\3c2..z38\0\3 + ..controls z38\0\4c1 and z38\0\4c2..z38\0\4 + --z38\0\5 + ..controls z38\0\6c1 and z38\0\6c2..z38\0\6 + ..controls z38\0\7c1 and z38\0\7c2..cycle; + fill_or_unfill z38\1\0s + --cycle; + fill_or_unfill z38\2\0s + --z38\2\0 + ..controls z38\2\1c1 and z38\2\1c2..cycle; + fill_or_unfill z38\3\0s + --z38\3\0 + ..controls z38\3\1c1 and z38\3\1c2..z38\3\1 + --z38\3\2 --cycle; +endchar; % R7 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{S12} +% The sign \textit{S12} (nbw). +% Piano stool with a fringe underneath (nbw). +% \begin{macrocode} + +%% S12: fringed piano stool (nbw) +%% (code as v(118) 118+31 = 149) +beginchar (149, 17.104u# + side#, 8.913u#, 0.000u#); + "S12"; + z43\0\0s = (1.927u,0.482u); z43\0\0c1 = (1.927u,1.592u); + z43\0\0c2 = (1.522u,7.119u); z43\0\0 = (2.685u,7.319u); + z43\0\1c1 = (3.175u,7.404u); z43\0\1c2 = (4.328u,6.524u); + z43\0\1 = (4.818u,6.263u); z43\0\2 = (4.336u,4.336u); + z43\0\3 = (5.552u,5.522u); z43\0\4 = (5.300u,3.854u); + z43\0\5 = (6.504u,5.059u); z43\0\6 = (6.924u,3.588u); + z43\0\7c1 = (7.733u,4.397u); z43\0\7c2 = (7.803u,4.537u); + z43\0\7 = (7.662u,4.432u); z43\0\8 = (8.432u,5.059u); + z43\0\9 = (8.432u,3.372u); z43\0\10c1 = (9.597u,3.412u); + z43\0\10c2 = (9.632u,3.130u); z43\0\10 = (9.456u,4.994u); + z43\0\11 = (10.118u,3.613u); z43\0\12 = (10.600u,3.613u); + z43\0\13 = (10.863u,5.065u); z43\0\14 = (12.286u,3.854u); + z43\0\15 = (12.045u,5.541u); z43\0\16 = (13.490u,4.336u); + z43\0\17 = (13.009u,6.263u); z43\0\18 = (15.418u,7.468u); + z43\0\19 = (15.899u,0.241u); z43\0\20 = (17.344u,0.241u); + z43\0\21 = (17.344u,5.541u); z43\0\22c1 = (17.330u,6.730u); + z43\0\22c2 = (17.229u,7.758u); z43\0\22 = (16.128u,8.467u); + z43\0\23c1 = (14.814u,9.311u); z43\0\23c2 = (6.193u,8.917u); + z43\0\23 = (4.095u,8.913u); z43\0\24c1 = (-0.427u,8.906u); + z43\0\24c2 = (0.218u,5.855u); z43\0\24 = (0.241u,2.409u); + z43\0\25c1 = (0.244u,1.970u); z43\0\25c2 = (0.204u,1.224u); + z43\0\25 = (0.487u,0.867u); z43\0\26c1 = (0.819u,0.448u); + z43\0\26c2 = (1.451u,0.498u); z43\1\0s = (14.213u,7.468u); + z43\1\0c1 = (11.513u,5.676u); z43\1\0c2 = (9.178u,4.907u); + z43\1\0 = (6.022u,6.112u); z43\1\1c1 = (5.382u,6.357u); + z43\1\1c2 = (4.416u,6.803u); z43\1\1 = (4.136u,7.476u); + z43\1\2c1 = (3.742u,8.421u); z43\1\2c2 = (4.969u,8.420u); + z43\1\2 = (5.541u,8.430u); z43\1\3c1 = (7.460u,8.466u); + z43\1\3c2 = (13.129u,8.957u); z43\2\0s = (15.928u,7.070u); + z43\2\0 = (16.701u,7.140u); z43\2\1c1 = (16.490u,6.120u); + z43\2\1c2 = (17.581u,0.950u); z43\2\1 = (16.315u,1.126u); + z43\3\0s = (1.120u,7.316u); z43\3\0 = (1.472u,7.034u); + z43\3\1c1 = (1.331u,1.196u); z43\3\1c2 = (1.402u,1.196u); + z43\3\1 = (1.331u,1.196u); z43\3\2 = (0.733u,1.266u); + z43\4\0s = (5.422u,5.062u); + fill_or_unfill z43\0\0s + ..controls z43\0\0c1 and z43\0\0c2..z43\0\0 + ..controls z43\0\1c1 and z43\0\1c2..z43\0\1 + --z43\0\2 --z43\0\3 --z43\0\4 --z43\0\5 --z43\0\6 + ..controls z43\0\7c1 and z43\0\7c2..z43\0\7 + --z43\0\8 --z43\0\9 + ..controls z43\0\10c1 and z43\0\10c2..z43\0\10 + --z43\0\11 --z43\0\12 --z43\0\13 --z43\0\14 --z43\0\15 + --z43\0\16 --z43\0\17 --z43\0\18 --z43\0\19 --z43\0\20 + --z43\0\21 + ..controls z43\0\22c1 and z43\0\22c2..z43\0\22 + ..controls z43\0\23c1 and z43\0\23c2..z43\0\23 + ..controls z43\0\24c1 and z43\0\24c2..z43\0\24 + ..controls z43\0\25c1 and z43\0\25c2..z43\0\25 + ..controls z43\0\26c1 and z43\0\26c2..cycle; + fill_or_unfill z43\1\0s + ..controls z43\1\0c1 and z43\1\0c2..z43\1\0 + ..controls z43\1\1c1 and z43\1\1c2..z43\1\1 + ..controls z43\1\2c1 and z43\1\2c2..z43\1\2 + ..controls z43\1\3c1 and z43\1\3c2..cycle; + fill_or_unfill z43\2\0s + --z43\2\0 + ..controls z43\2\1c1 and z43\2\1c2..z43\2\1 + --cycle; + fill_or_unfill z43\3\0s + --z43\3\0 + ..controls z43\3\1c1 and z43\3\1c2..z43\3\1 + --z43\3\2 --cycle; + fill_or_unfill z43\4\0s + --cycle; +endchar; % S12 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{S29} +% The sign \textit{S29}. +% Tall hook (s). +% \begin{macrocode} + +%% S29: tall hook +%% (code as s(115) 115+31 = 146) +beginchar (146, 3.216u# + side#, 16.750u#, 0.000u#); + "S29"; + z63\0\0s = (0.000u,0.000u); z63\0\0 = (0.838u,0.030u); + z63\0\1 = (0.821u,14.333u); z63\0\2c1 = (0.838u,15.981u); + z63\0\2c2 = (2.414u,15.981u); z63\0\2 = (2.414u,14.209u); + z63\0\3 = (2.414u,5.544u); z63\0\4 = (3.201u,5.544u); + z63\0\5 = (3.216u,14.504u); z63\0\6c1 = (3.201u,17.557u); + z63\0\6c2 = (0.051u,17.557u); z63\0\6 = (0.034u,14.333u); + fill_or_unfill z63\0\0s + --z63\0\0 --z63\0\1 + ..controls z63\0\2c1 and z63\0\2c2..z63\0\2 + --z63\0\3 --z63\0\4 --z63\0\5 + ..controls z63\0\6c1 and z63\0\6c2..z63\0\6 + --cycle; +endchar; % S29 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{S39} +% The sign \textit{S39}. +% A shepherd's crook (awt). +% \begin{macrocode} + +%% S39: shepherd's crook (awt) +%% (code as y(121) 121+31 = 152) +%% (code as ?(63) 63+31 = 94) +beginchar (94, 3.854u# + side#, 17.345u#, 0.000u#); + "S39"; + z74\0\0s = (0.484u,13.357u); z74\0\0 = (1.351u,13.253u); + z74\0\1c1 = (1.169u,14.445u); z74\0\1c2 = (1.188u,15.777u); + z74\0\1 = (1.961u,16.100u); z74\0\2c1 = (3.141u,16.592u); + z74\0\2c2 = (3.358u,14.959u); z74\0\2 = (3.372u,14.213u); + z74\0\3 = (3.372u,0.241u); z74\0\4 = (4.095u,0.241u); + z74\0\5 = (4.095u,14.213u); z74\0\6c1 = (4.087u,19.120u); + z74\0\6c2 = (-0.312u,17.646u); + fill_or_unfill z74\0\0s + --z74\0\0 + ..controls z74\0\1c1 and z74\0\1c2..z74\0\1 + ..controls z74\0\2c1 and z74\0\2c2..z74\0\2 + --z74\0\3 --z74\0\4 --z74\0\5 + ..controls z74\0\6c1 and z74\0\6c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{S41} +% The sign \textit{S41}. +% Like a twisted piece of string hanging down (Dwm). +% \begin{macrocode} + +%% S41: hanging piece of string (Dwm) +%% (code as 0(48) 48+31 = 79) +%% (code as c(99) 99+31 = 130) +beginchar (130, 5.064u# + side#, 17.147u#, 0.000u#); + "S41"; + z76\0\0s = (3.903u,12.649u); z76\0\0c1 = (3.361u,13.686u); + z76\0\0c2 = (2.532u,14.515u); z76\0\0 = (2.532u,14.930u); + z76\0\1 = (2.532u,15.759u); z76\0\2c1 = (2.947u,16.589u); + z76\0\2c2 = (5.435u,16.589u); z76\0\2 = (5.020u,17.003u); + z76\0\3c1 = (2.117u,17.833u); z76\0\3c2 = (-0.371u,14.930u); + z76\0\3 = (0.043u,12.027u); z76\0\4c1 = (0.043u,11.197u); + z76\0\4c2 = (0.458u,13.686u); z76\0\4 = (1.702u,14.515u); + z76\0\5c1 = (2.117u,14.100u); z76\0\5c2 = (2.532u,13.686u); + z76\0\5 = (3.073u,12.649u); z76\0\6c1 = (3.488u,11.820u); + z76\0\6c2 = (1.829u,10.161u); z76\0\6 = (2.532u,8.709u); + z76\0\7c1 = (3.488u,7.258u); z76\0\7c2 = (1.415u,5.599u); + z76\0\7 = (2.532u,4.562u); z76\0\8c1 = (1.495u,2.903u); + z76\0\8c2 = (1.288u,2.073u); z76\0\8 = (2.117u,0.000u); + z76\0\9c1 = (2.532u,0.000u); z76\0\9c2 = (2.117u,1.244u); + z76\0\9 = (2.117u,1.659u); z76\0\10c1 = (2.117u,2.488u); + z76\0\10c2 = (2.739u,2.903u); z76\0\10 = (2.947u,2.903u); + z76\0\11c1 = (3.154u,2.903u); z76\0\11c2 = (3.776u,2.488u); + z76\0\11 = (3.776u,1.659u); z76\0\12c1 = (3.776u,1.244u); + z76\0\12c2 = (3.361u,0.000u); z76\0\12 = (3.776u,0.000u); + z76\0\13c1 = (4.605u,2.073u); z76\0\13c2 = (4.398u,2.903u); + z76\0\13 = (3.361u,4.562u); z76\0\14c1 = (2.659u,5.599u); + z76\0\14c2 = (4.318u,7.672u); z76\0\14 = (3.361u,8.709u); + z76\0\15c1 = (2.659u,10.161u); z76\0\15c2 = (4.318u,11.820u); + fill_or_unfill z76\0\0s + ..controls z76\0\0c1 and z76\0\0c2..z76\0\0 + --z76\0\1 + ..controls z76\0\2c1 and z76\0\2c2..z76\0\2 + ..controls z76\0\3c1 and z76\0\3c2..z76\0\3 + ..controls z76\0\4c1 and z76\0\4c2..z76\0\4 + ..controls z76\0\5c1 and z76\0\5c2..z76\0\5 + ..controls z76\0\6c1 and z76\0\6c2..z76\0\6 + ..controls z76\0\7c1 and z76\0\7c2..z76\0\7 + ..controls z76\0\8c1 and z76\0\8c2..z76\0\8 + ..controls z76\0\9c1 and z76\0\9c2..z76\0\9 + ..controls z76\0\10c1 and z76\0\10c2..z76\0\10 + ..controls z76\0\11c1 and z76\0\11c2..z76\0\11 + ..controls z76\0\12c1 and z76\0\12c2..z76\0\12 + ..controls z76\0\13c1 and z76\0\13c2..z76\0\13 + ..controls z76\0\14c1 and z76\0\14c2..z76\0\14 + ..controls z76\0\15c1 and z76\0\15c2..cycle; +endchar; % S41 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{T3} +% The sign \textit{T3}. +% An upright stick with a ball on top (HD). +% \begin{macrocode} + +%% T3: Upright with a ball at the top +%% (code as ?(63) 63+31 = 94) +%% (code as u(117) 117+31 = 148) +beginchar (148, 3.853u# + side#, 17.436u#, 0.000u#); + "T3"; + z34\0\0s = (1.561u,0.000u); z34\0\0 = (2.284u,0.000u); + z34\0\1 = (2.284u,10.118u); z34\0\2c1 = (2.298u,12.877u); + z34\0\2c2 = (3.432u,12.589u); z34\0\2 = (3.827u,14.454u); + z34\0\3c1 = (4.025u,15.389u); z34\0\3c2 = (3.106u,17.445u); + z34\0\3 = (2.034u,17.436u); z34\0\4c1 = (1.021u,17.427u); + z34\0\4c2 = (-0.062u,15.627u); z34\0\4 = (0.000u,14.695u); + z34\0\5c1 = (0.113u,13.018u); z34\0\5c2 = (1.557u,12.748u); + z34\0\5 = (1.561u,9.877u); z34\1\0s = (1.586u,16.027u); + z34\1\0c1 = (3.996u,16.148u); z34\1\0c2 = (3.128u,13.490u); + z34\1\0 = (2.201u,13.049u); z34\1\1c1 = (1.310u,12.626u); + z34\1\1c2 = (-0.361u,15.136u); + fill_or_unfill z34\0\0s + --z34\0\0 --z34\0\1 + ..controls z34\0\2c1 and z34\0\2c2..z34\0\2 + ..controls z34\0\3c1 and z34\0\3c2..z34\0\3 + ..controls z34\0\4c1 and z34\0\4c2..z34\0\4 + ..controls z34\0\5c1 and z34\0\5c2..z34\0\5 + --cycle; + fill_or_unfill z34\1\0s + ..controls z34\1\0c1 and z34\1\0c2..z34\1\0 + ..controls z34\1\1c1 and z34\1\1c2..cycle; +endchar; % T3 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{T14} +% The sign \textit{T14}. +% A throw stick (early boomerang?) (qmA). +% \begin{macrocode} + +%% T14. Throw stick. +%% (code as 7(55) 55+31 = 86) +%% (code as /(47) 47+31 = 78) +beginchar (78, 4.817u# + side#, 16.880u#, 0.000u#); + "T14"; + z49\0\0s = (0.000u,16.863u); z49\0\0c1 = (1.276u,14.384u); + z49\0\0c2 = (3.848u,12.804u); z49\0\0 = (3.854u,9.877u); + z49\0\1 = (3.854u,0.000u); z49\0\2 = (4.817u,0.000u); + z49\0\3 = (4.817u,10.600u); z49\0\4c1 = (4.783u,12.416u); + z49\0\4c2 = (3.367u,13.795u); z49\0\4 = (2.308u,15.177u); + z49\0\5c1 = (1.597u,16.105u); z49\0\5c2 = (1.287u,17.030u); + fill_or_unfill z49\0\0s + ..controls z49\0\0c1 and z49\0\0c2..z49\0\0 + --z49\0\1 --z49\0\2 --z49\0\3 + ..controls z49\0\4c1 and z49\0\4c2..z49\0\4 + ..controls z49\0\5c1 and z49\0\5c2..cycle; +endchar; % T14 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{U36} +% The sign \textit{U36}. +% Like an upright club (Hm). +% \begin{macrocode} + +%% U36: upright club +%% (code as 4(52) 52+31 = 83) +%% (code as J(74) 74+31 = 105) +beginchar (105, 3.371u# + side#, 17.516u#, 0.000u#); + "U36"; + z70\0\0s = (0.481u,0.000u); z70\0\0 = (3.131u,0.000u); + z70\0\1 = (2.890u,6.746u); z70\0\2 = (3.371u,14.214u); + z70\0\3c1 = (3.366u,15.331u); z70\0\3c2 = (3.280u,17.157u); + z70\0\3 = (1.914u,17.472u); z70\0\4c1 = (0.137u,17.883u); + z70\0\4c2 = (0.014u,15.637u); z70\0\4 = (0.000u,14.454u); + z70\0\5 = (0.722u,6.746u); z70\1\0s = (1.459u,16.644u); + z70\1\0c1 = (2.651u,16.405u); z70\1\0c2 = (2.634u,15.474u); + z70\1\0 = (2.648u,14.454u); z70\1\1 = (2.167u,3.373u); + z70\1\2c1 = (2.170u,2.841u); z70\1\2c2 = (2.436u,1.047u); + z70\1\2 = (2.028u,0.764u); z70\1\3c1 = (1.033u,0.072u); + z70\1\3c2 = (1.440u,2.848u); z70\1\3 = (1.459u,3.132u); + z70\1\4 = (1.459u,6.987u); z70\1\5c1 = (1.435u,8.927u); + z70\1\5c2 = (-0.331u,15.602u); + fill_or_unfill z70\0\0s + --z70\0\0 --z70\0\1 --z70\0\2 + ..controls z70\0\3c1 and z70\0\3c2..z70\0\3 + ..controls z70\0\4c1 and z70\0\4c2..z70\0\4 + --z70\0\5 --cycle; + fill_or_unfill z70\1\0s + ..controls z70\1\0c1 and z70\1\0c2..z70\1\0 + --z70\1\1 + ..controls z70\1\2c1 and z70\1\2c2..z70\1\2 + ..controls z70\1\3c1 and z70\1\3c2..z70\1\3 + --z70\1\4 + ..controls z70\1\5c1 and z70\1\5c2..cycle; +endchar; % U36 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{V4} +% The sign \textit{V4}. +% Like a small balloon hanging down from a (invisible) hook (wA). +% \begin{macrocode} + +%% V4 a small balloon hanging down. +%% (code as o(111) = 111+31 = 142) +beginchar (142, 14.454u# + side#, 16.393u#, 0.000u#); + "V4"; + z35\0\0s = (0.000u,8.454u); z35\0\0 = (0.000u,7.709u); + z35\0\1c1 = (0.747u,7.708u); z35\0\1c2 = (2.716u,7.789u); + z35\0\1 = (3.162u,7.092u); z35\0\2c1 = (3.630u,6.361u); + z35\0\2c2 = (1.412u,3.700u); z35\0\2 = (2.414u,1.959u); + z35\0\3c1 = (3.296u,0.427u); z35\0\3c2 = (5.218u,1.182u); + z35\0\3 = (5.658u,2.651u); z35\0\4c1 = (6.101u,4.127u); + z35\0\4c2 = (5.059u,5.648u); z35\0\4 = (4.577u,6.986u); + z35\0\5c1 = (5.460u,6.787u); z35\0\5c2 = (6.788u,6.323u); + z35\0\5 = (7.674u,6.580u); z35\0\6c1 = (9.204u,7.023u); + z35\0\6c2 = (8.273u,9.961u); z35\0\6 = (4.577u,7.950u); + z35\0\7c1 = (4.577u,9.133u); z35\0\7c2 = (4.428u,12.042u); + z35\0\7 = (4.819u,13.008u); z35\0\8c1 = (5.970u,15.848u); + z35\0\8c2 = (9.863u,16.583u); z35\0\8 = (11.463u,13.727u); + z35\0\9c1 = (12.615u,11.672u); z35\0\9c2 = (12.247u,9.205u); + z35\0\9 = (12.089u,6.986u); z35\0\10c1 = (11.980u,5.457u); + z35\0\10c2 = (12.449u,3.811u); z35\0\10 = (13.009u,2.409u); + z35\0\11c1 = (13.430u,1.352u); z35\0\11c2 = (13.581u,0.784u); + z35\0\11 = (14.454u,0.000u); z35\0\12c1 = (14.618u,1.699u); + z35\0\12c2 = (12.848u,4.020u); z35\0\12 = (12.947u,6.745u); + z35\0\13c1 = (13.059u,9.851u); z35\0\13c2 = (13.533u,15.923u); + z35\0\13 = (9.154u,16.356u); z35\0\14c1 = (8.334u,16.437u); + z35\0\14c2 = (7.268u,16.406u); z35\0\14 = (6.504u,16.086u); + z35\0\15c1 = (2.249u,14.303u); z35\0\15c2 = (4.808u,9.334u); + z35\0\15 = (3.269u,8.454u); z35\0\16c1 = (2.952u,8.301u); + z35\0\16c2 = (0.553u,8.431u); z35\1\0s = (7.709u,7.950u); + z35\1\0 = (7.709u,7.227u); z35\1\1 = (5.541u,7.468u); + z35\2\0s = (4.336u,5.781u); z35\2\0c1 = (4.539u,5.304u); + z35\2\0c2 = (4.722u,4.844u); z35\2\0 = (4.841u,4.336u); + z35\2\1c1 = (5.591u,1.131u); z35\2\1c2 = (2.256u,0.950u); + z35\2\1 = (3.018u,4.095u); z35\2\2c1 = (3.236u,4.993u); + z35\2\2c2 = (3.542u,5.358u); + fill_or_unfill z35\0\0s + --z35\0\0 + ..controls z35\0\1c1 and z35\0\1c2..z35\0\1 + ..controls z35\0\2c1 and z35\0\2c2..z35\0\2 + ..controls z35\0\3c1 and z35\0\3c2..z35\0\3 + ..controls z35\0\4c1 and z35\0\4c2..z35\0\4 + ..controls z35\0\5c1 and z35\0\5c2..z35\0\5 + ..controls z35\0\6c1 and z35\0\6c2..z35\0\6 + ..controls z35\0\7c1 and z35\0\7c2..z35\0\7 + ..controls z35\0\8c1 and z35\0\8c2..z35\0\8 + ..controls z35\0\9c1 and z35\0\9c2..z35\0\9 + ..controls z35\0\10c1 and z35\0\10c2..z35\0\10 + ..controls z35\0\11c1 and z35\0\11c2..z35\0\11 + ..controls z35\0\12c1 and z35\0\12c2..z35\0\12 + ..controls z35\0\13c1 and z35\0\13c2..z35\0\13 + ..controls z35\0\14c1 and z35\0\14c2..z35\0\14 + ..controls z35\0\15c1 and z35\0\15c2..z35\0\15 + ..controls z35\0\16c1 and z35\0\16c2..cycle; + fill_or_unfill z35\1\0s + --z35\1\0 --z35\1\1 --cycle; + fill_or_unfill z35\2\0s + ..controls z35\2\0c1 and z35\2\0c2..z35\2\0 + ..controls z35\2\1c1 and z35\2\1c2..z35\2\1 + ..controls z35\2\2c1 and z35\2\2c2..cycle; +endchar; % V4 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{V13} +% The sign \textit{V13}. +% A pair of sugar tongs (T). +% \begin{macrocode} + +%% V13: Pair of sugar tongs +%% (code as T(84) 84+31 = 115) +beginchar (115, 16.805u# + side#, 4.390u#, 0.000u#); + "V13"; + z44\0\0s = (15.821u,1.146u); z44\0\0 = (5.463u,1.146u); + z44\0\1c1 = (4.177u,1.154u); z44\0\1c2 = (3.293u,1.682u); + z44\0\1 = (2.090u,1.823u); z44\0\2c1 = (1.311u,1.915u); + z44\0\2c2 = (-0.795u,1.487u); z44\0\2 = (0.311u,0.391u); + z44\0\3c1 = (1.104u,-0.505u); z44\0\3c2 = (4.260u,0.422u); + z44\0\3 = (5.463u,0.391u); z44\0\4 = (14.376u,0.391u); + z44\0\5c1 = (14.907u,0.425u); z44\0\5c2 = (15.752u,0.368u); + z44\0\5 = (16.203u,0.670u); z44\0\6c1 = (17.237u,1.363u); + z44\0\6c2 = (16.846u,2.932u); z44\0\6 = (15.796u,3.378u); + z44\0\7c1 = (15.113u,3.668u); z44\0\7c2 = (11.723u,3.555u); + z44\0\7 = (10.762u,3.555u); z44\0\8 = (5.944u,3.555u); + z44\0\9c1 = (4.650u,3.557u); z44\0\9c2 = (4.274u,3.617u); + z44\0\9 = (3.054u,4.059u); z44\0\10c1 = (-0.065u,5.187u); + z44\0\10c2 = (-0.465u,3.114u); z44\0\10 = (0.912u,2.695u); + z44\0\11c1 = (1.860u,2.407u); z44\0\11c2 = (3.659u,2.831u); + z44\0\11 = (4.740u,2.833u); z44\0\12c1 = (6.279u,2.835u); + z44\0\12c2 = (14.481u,3.062u); z44\0\12 = (15.276u,2.596u); + z44\0\13c1 = (15.884u,2.239u); z44\0\13c2 = (15.839u,1.756u); + z44\1\0s = (2.572u,3.555u); z44\1\0c1 = (1.748u,3.026u); + z44\1\0c2 = (1.229u,2.927u); z44\1\0 = (0.645u,3.796u); + z44\2\0s = (2.813u,0.905u); z44\2\0 = (0.645u,0.664u); + z44\2\1 = (0.645u,1.146u); + fill_or_unfill z44\0\0s + --z44\0\0 + ..controls z44\0\1c1 and z44\0\1c2..z44\0\1 + ..controls z44\0\2c1 and z44\0\2c2..z44\0\2 + ..controls z44\0\3c1 and z44\0\3c2..z44\0\3 + --z44\0\4 + ..controls z44\0\5c1 and z44\0\5c2..z44\0\5 + ..controls z44\0\6c1 and z44\0\6c2..z44\0\6 + ..controls z44\0\7c1 and z44\0\7c2..z44\0\7 + --z44\0\8 + ..controls z44\0\9c1 and z44\0\9c2..z44\0\9 + ..controls z44\0\10c1 and z44\0\10c2..z44\0\10 + ..controls z44\0\11c1 and z44\0\11c2..z44\0\11 + ..controls z44\0\12c1 and z44\0\12c2..z44\0\12 + ..controls z44\0\13c1 and z44\0\13c2..cycle; + fill_or_unfill z44\1\0s + ..controls z44\1\0c1 and z44\1\0c2..z44\1\0 + --cycle; + fill_or_unfill z44\2\0s + --z44\2\0 --z44\2\1 --cycle; +endchar; % V13 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{V24} +% The sign \textit{V24}. +% Vertical line with an oval at the center (wD). +% \begin{macrocode} + +%% V24: vertical line with center ellipse (wD) +%% (code as 6(54) 54+31 = 85) +%% (code as U(85) 85+31 = 116) +beginchar (116, 3.136u# + side#, 17.344u#, 0.000u#); + "V24"; + z55\0\0s = (1.058u,17.344u); z55\0\0 = (1.058u,13.249u); + z55\0\1 = (0.000u,10.118u); z55\0\2 = (1.094u,5.059u); + z55\0\3 = (1.094u,0.000u); z55\0\4 = (2.083u,0.000u); + z55\0\5 = (2.083u,6.022u); z55\0\6 = (3.136u,9.636u); + z55\0\7 = (2.094u,13.249u); z55\0\8 = (2.094u,17.344u); + z55\1\0s = (1.817u,12.045u); z55\1\0c1 = (2.720u,10.183u); + z55\1\0c2 = (2.528u,9.347u); z55\1\0 = (1.817u,7.468u); + z55\1\1 = (1.335u,7.468u); z55\1\2c1 = (0.490u,9.258u); + z55\1\2c2 = (0.434u,10.275u); z55\1\2 = (1.335u,12.045u); + fill_or_unfill z55\0\0s + --z55\0\0 --z55\0\1 --z55\0\2 --z55\0\3 --z55\0\4 + --z55\0\5 --z55\0\6 --z55\0\7 --z55\0\8 --cycle; + fill_or_unfill z55\1\0s + ..controls z55\1\0c1 and z55\1\0c2..z55\1\0 + --z55\1\1 + ..controls z55\1\2c1 and z55\1\2c2..z55\1\2 + --cycle; +endchar; % V24 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{V28} +% The sign \textit{V28}. +% Twisted flax (emphatic h). +% \begin{macrocode} + +%% V28: Twisted flax +%% (code as H(72) 72+31 = 103) +beginchar (103, 4.450u# + side#, 17.255u#, 0.000u#); + "V28"; + z59\0\0s = (0.000u,0.036u); z59\0\0 = (0.482u,0.036u); + z59\0\1 = (1.927u,3.409u); z59\0\2 = (2.409u,3.409u); + z59\0\3 = (3.870u,0.028u); z59\0\4 = (4.450u,0.000u); + z59\0\5 = (2.964u,4.132u); z59\0\6c1 = (2.778u,5.069u); + z59\0\6c2 = (3.485u,5.858u); z59\0\6 = (3.541u,6.782u); + z59\0\7c1 = (3.589u,7.582u); z59\0\7c2 = (3.106u,8.197u); + z59\0\7 = (3.068u,8.950u); z59\0\8 = (3.516u,10.877u); + z59\0\9c1 = (3.545u,11.625u); z59\0\9c2 = (3.052u,12.298u); + z59\0\9 = (3.203u,13.045u); z59\0\10c1 = (3.454u,14.290u); + z59\0\10c2 = (4.693u,15.171u); z59\0\10 = (3.648u,16.604u); + z59\0\11c1 = (2.669u,17.947u); z59\0\11c2 = (0.769u,17.038u); + z59\0\11 = (0.793u,15.454u); z59\0\12c1 = (0.806u,14.567u); + z59\0\12c2 = (1.427u,13.882u); z59\0\12 = (1.506u,13.045u); + z59\0\13c1 = (1.574u,12.314u); z59\0\13c2 = (1.099u,11.616u); + z59\0\13 = (1.062u,10.877u); z59\0\14c1 = (1.026u,10.170u); + z59\0\14c2 = (1.437u,9.623u); z59\0\14 = (1.458u,8.950u); + z59\0\15c1 = (1.481u,8.220u); z59\0\15c2 = (1.041u,7.530u); + z59\0\15 = (1.030u,6.782u); z59\0\16c1 = (1.018u,5.928u); + z59\0\16c2 = (1.600u,5.207u); z59\0\16 = (1.523u,4.373u); + z59\1\0s = (2.650u,13.527u); z59\1\0 = (2.168u,13.527u); + z59\1\1c1 = (0.149u,17.589u); z59\1\1c2 = (4.681u,17.562u); + z59\2\0s = (2.317u,12.124u); z59\2\0c1 = (3.031u,11.856u); + z59\2\0c2 = (3.001u,9.803u); z59\2\0 = (2.347u,9.565u); + z59\2\1c1 = (1.633u,9.892u); z59\2\1c2 = (1.722u,11.916u); + z59\3\0s = (2.409u,8.227u); z59\3\0c1 = (2.977u,6.991u); + z59\3\0c2 = (3.010u,6.444u); z59\3\0 = (2.168u,5.336u); + z59\3\1c1 = (1.668u,6.541u); z59\3\1c2 = (1.465u,7.201u); + fill_or_unfill z59\0\0s + --z59\0\0 --z59\0\1 --z59\0\2 --z59\0\3 --z59\0\4 --z59\0\5 + ..controls z59\0\6c1 and z59\0\6c2..z59\0\6 + ..controls z59\0\7c1 and z59\0\7c2..z59\0\7 + --z59\0\8 + ..controls z59\0\9c1 and z59\0\9c2..z59\0\9 + ..controls z59\0\10c1 and z59\0\10c2..z59\0\10 + ..controls z59\0\11c1 and z59\0\11c2..z59\0\11 + ..controls z59\0\12c1 and z59\0\12c2..z59\0\12 + ..controls z59\0\13c1 and z59\0\13c2..z59\0\13 + ..controls z59\0\14c1 and z59\0\14c2..z59\0\14 + ..controls z59\0\15c1 and z59\0\15c2..z59\0\15 + ..controls z59\0\16c1 and z59\0\16c2..z59\0\16 + --cycle; + fill_or_unfill z59\1\0s + --z59\1\0 + ..controls z59\1\1c1 and z59\1\1c2..cycle; + fill_or_unfill z59\2\0s + ..controls z59\2\0c1 and z59\2\0c2..z59\2\0 + ..controls z59\2\1c1 and z59\2\1c2..cycle; + fill_or_unfill z59\3\0s + ..controls z59\3\0c1 and z59\3\0c2..z59\3\0 + ..controls z59\3\1c1 and z59\3\1c2..cycle; +endchar; % V28 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{V31} +% The sign \textit{V31}. +% Bowl with small handle (k). +% \begin{macrocode} + +%% V31: Bowl with small handle +%% (code as k(107) 107+31 = 138) +beginchar (138, 17.252u# + side#, 5.244u#, 0.000u#); + "V31"; + z62\0\0s = (0.000u,5.244u); z62\0\0c1 = (0.335u,0.575u); + z62\0\0c2 = (7.394u,-0.832u); z62\0\0 = (11.081u,0.449u); + z62\0\1c1 = (12.794u,1.045u); z62\0\1c2 = (13.573u,2.027u); + z62\0\1 = (14.936u,3.076u); z62\0\2c1 = (15.442u,0.705u); + z62\0\2c2 = (17.419u,0.854u); z62\0\2 = (17.252u,2.594u); + z62\0\3c1 = (17.053u,4.666u); z62\0\3c2 = (15.506u,5.241u); + z62\0\3 = (13.731u,5.244u); z62\1\0s = (14.213u,4.280u); + z62\1\0c1 = (13.001u,-0.504u); z62\1\0c2 = (2.997u,-0.009u); + z62\1\0 = (0.963u,4.280u); z62\2\0s = (15.658u,4.040u); + z62\2\0 = (16.622u,2.111u); z62\2\1c1 = (15.615u,2.456u); + z62\2\1c2 = (15.322u,3.014u); + fill_or_unfill z62\0\0s + ..controls z62\0\0c1 and z62\0\0c2..z62\0\0 + ..controls z62\0\1c1 and z62\0\1c2..z62\0\1 + ..controls z62\0\2c1 and z62\0\2c2..z62\0\2 + ..controls z62\0\3c1 and z62\0\3c2..z62\0\3 + --cycle; + fill_or_unfill z62\1\0s + ..controls z62\1\0c1 and z62\1\0c2..z62\1\0 + --cycle; + fill_or_unfill z62\2\0s + --z62\2\0 + ..controls z62\2\1c1 and z62\2\1c2..cycle; +endchar; % V31 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{W11} +% The sign \textit{W11}. +% Like the chockstone of a stone arch, with triangular badge (g). +% \begin{macrocode} + +%% W11: Chockstone of a stone arch, with a triangle +%% (code as g(103) 103+31 = 134) +beginchar (134, 9.395u# + side#, 8.431u#, 0.000u#); + "W11"; + z44\0\0s = (0.241u,8.431u); z44\0\0 = (1.069u,6.931u); + z44\0\1 = (0.000u,1.204u); z44\0\2c1 = (2.626u,0.170u); + z44\0\2c2 = (7.668u,0.222u); z44\0\2 = (9.468u,1.456u); + z44\0\3 = (7.976u,7.064u); z44\0\4 = (8.851u,8.402u); + z44\1\0s = (6.986u,7.468u); z44\1\0 = (8.336u,2.416u); + z44\1\1c1 = (8.195u,0.447u); z44\1\1c2 = (1.971u,1.326u); + z44\1\1 = (0.723u,1.927u); z44\1\2c1 = (3.118u,7.785u); + z44\1\2c2 = (-0.953u,7.468u); z44\2\0s = (4.336u,6.263u); + z44\2\0c1 = (4.101u,5.611u); z44\2\0c2 = (3.246u,2.860u); + z44\2\0 = (3.553u,2.330u); z44\2\1c1 = (3.920u,1.698u); + z44\2\1c2 = (5.788u,1.794u); z44\2\1 = (5.915u,2.675u); + z44\2\2 = (4.818u,6.263u); z44\3\0s = (5.059u,4.336u); + z44\3\0 = (5.300u,2.650u); z44\3\1 = (4.095u,2.650u); + z44\3\2 = (4.577u,4.336u); + fill_or_unfill z44\0\0s + --z44\0\0 --z44\0\1 + ..controls z44\0\2c1 and z44\0\2c2..z44\0\2 + --z44\0\3 --z44\0\4 --cycle; + fill_or_unfill z44\1\0s + --z44\1\0 + ..controls z44\1\1c1 and z44\1\1c2..z44\1\1 + ..controls z44\1\2c1 and z44\1\2c2..cycle; + fill_or_unfill z44\2\0s + ..controls z44\2\0c1 and z44\2\0c2..z44\2\0 + ..controls z44\2\1c1 and z44\2\1c2..z44\2\1 + --z44\2\2 --cycle; + fill_or_unfill z44\3\0s + --z44\3\0 --z44\3\1 --z44\3\2 --cycle; +endchar; % W11 + +% \end{macrocode} +% \end{routine} +% +% +% +% \begin{routine}{X1} +% The sign \textit{X1}. +% Upper half of a circle (t). +% \begin{macrocode} + +%% X1: Upper half of circle +%% (code as t(116) 116+31 = 147) +beginchar (147, 8.913u# + side#, 4.760u#, 0.000u#); + "X1"; + z32\0\0s = (0.000u,0.000u); z32\0\0 = (8.913u,0.000u); + z32\0\1c1 = (8.613u,6.425u); z32\0\1c2 = (0.300u,6.425u); + z32\1\0s = (8.191u,0.723u); z32\1\0 = (0.723u,0.723u); + z32\1\1c1 = (1.785u,4.957u); z32\1\1c2 = (7.128u,4.957u); + fill_or_unfill z32\0\0s + --z32\0\0 + ..controls z32\0\1c1 and z32\0\1c2..cycle; + fill_or_unfill z32\1\0s + --z32\1\0 + ..controls z32\1\1c1 and z32\1\1c2..cycle; +endchar; % X1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Y1*} +% The sign \textit{Y1*} aka \textit{Y1v}. +% An upright board with a `W' on its left side (book, writing, abstract). +% \begin{macrocode} + +%% Y1* (aka Y1v) upright board with a W on it +%% (code as 9(57) 57+31 = 88) +%% (code as V(86) 86+31 = 117) +beginchar (117, 4.095u# + side#, 17.345u#, 0.000u#); + "Y1*"; + z40\0\0s = (1.686u,17.345u); z40\0\0 = (1.686u,10.600u); + z40\0\1c1 = (-0.008u,10.639u); z40\0\1c2 = (-0.108u,6.333u); + z40\0\1 = (1.686u,6.504u); z40\0\2 = (1.686u,0.000u); + z40\0\3 = (4.095u,0.000u); z40\0\4 = (4.095u,17.345u); + z40\1\0s = (3.373u,16.863u); z40\1\0 = (3.373u,0.723u); + z40\1\1 = (2.409u,0.723u); z40\1\2 = (2.409u,16.863u); + z40\2\0s = (1.714u,9.744u); z40\2\0 = (1.681u,7.360u); + z40\2\1 = (0.919u,8.155u); z40\2\2 = (0.952u,9.214u); + z40\3\0s = (2.030u,6.662u); z40\3\0 = (1.454u,7.055u); + z40\3\1 = (0.418u,5.544u); z40\3\2 = (0.981u,5.126u); + z40\4\0s = (0.980u,11.981u); z40\4\0 = (0.404u,11.588u); + z40\4\1 = (1.452u,10.052u); z40\4\2 = (2.029u,10.445u); + fill_or_unfill z40\0\0s + --z40\0\0 + ..controls z40\0\1c1 and z40\0\1c2..z40\0\1 + --z40\0\2 --z40\0\3 --z40\0\4 --cycle; + fill_or_unfill z40\1\0s + --z40\1\0 --z40\1\1 --z40\1\2 --cycle; + fill_or_unfill z40\2\0s + --z40\2\0 --z40\2\1 --z40\2\2 --cycle; + fill_or_unfill z40\3\0s + --z40\3\0 --z40\3\1 --z40\3\2 --cycle; + fill_or_unfill z40\4\0s + --z40\4\0 --z40\4\1 --z40\4\2 --cycle; +endchar; % Y1* + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Z1} +% The sign \textit{Z1}. +% A short vertical bar (numeral 1). +% \begin{macrocode} + +%% Z1: short vertical bar +%% (code as 1(49) 49+31 = 80) +%% (code as |(124) 124+31 = 155) +beginchar (155, 0.723u# + side#, 7.227u#, 0.000u#); + "Z1"; + z32\0\0s = (0.000u,7.227u); z32\0\0 = (0.000u,0.000u); + z32\0\1 = (0.723u,0.000u); z32\0\2 = (0.723u,7.227u); + fill_or_unfill z32\0\0s + --z32\0\0 --z32\0\1 --z32\0\2 --cycle; +endchar; % Z1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Z7} +% The sign \textit{Z7}. +% A spiral (W). +% \begin{macrocode} + +%% Z7: spiral +%% (code as W(87) 87+31 = 118) +beginchar (118, 5.720u# + side#, 9.319u#, 0.000u#); + "Z7"; + z40\0\0s = (4.646u,0.000u); z40\0\0 = (4.887u,0.241u); + z40\0\1 = (4.887u,0.723u); z40\0\2c1 = (2.963u,1.925u); + z40\0\2c2 = (-1.492u,6.231u); z40\0\2 = (2.247u,8.148u); + z40\0\3c1 = (3.399u,8.738u); z40\0\3c2 = (5.200u,7.509u); + z40\0\3 = (4.815u,6.269u); z40\0\4c1 = (4.677u,5.825u); + z40\0\4c2 = (3.915u,5.065u); z40\0\4 = (3.512u,5.651u); + z40\0\5c1 = (3.371u,5.855u); z40\0\5c2 = (3.270u,6.694u); + z40\0\5 = (3.201u,6.986u); z40\0\6c1 = (2.014u,6.196u); + z40\0\6c2 = (1.806u,4.768u); z40\0\6 = (3.445u,4.416u); + z40\0\7c1 = (6.648u,3.729u); z40\0\7c2 = (6.545u,9.699u); + z40\0\7 = (2.719u,9.319u); z40\0\8c1 = (1.875u,9.235u); + z40\0\8c2 = (1.184u,8.616u); z40\0\8 = (0.718u,7.946u); + z40\0\9c1 = (-1.411u,4.882u); z40\0\9c2 = (1.564u,0.909u); + fill_or_unfill z40\0\0s + --z40\0\0 --z40\0\1 + ..controls z40\0\2c1 and z40\0\2c2..z40\0\2 + ..controls z40\0\3c1 and z40\0\3c2..z40\0\3 + ..controls z40\0\4c1 and z40\0\4c2..z40\0\4 + ..controls z40\0\5c1 and z40\0\5c2..z40\0\5 + ..controls z40\0\6c1 and z40\0\6c2..z40\0\6 + ..controls z40\0\7c1 and z40\0\7c2..z40\0\7 + ..controls z40\0\8c1 and z40\0\8c2..z40\0\8 + ..controls z40\0\9c1 and z40\0\9c2..cycle; +endchar; % Z7 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Z11} +% The sign \textit{Z11}. +% Crossed planks (imi, wnm). +% \begin{macrocode} + +%% Z11: Crossed planks. +%% (code as +(43) 43+31 = 74) +beginchar (74, 10.600u# + side#, 17.104u#, 0.000u#); + "Z11"; + z46\0\0s = (4.336u,17.104u); z46\0\0 = (4.336u,9.395u); + z46\0\1 = (0.000u,9.395u); z46\0\2 = (0.000u,7.227u); + z46\0\3 = (4.336u,7.227u); z46\0\4 = (4.336u,0.000u); + z46\0\5 = (6.263u,0.000u); z46\0\6 = (6.263u,7.227u); + z46\0\7 = (10.600u,7.227u); z46\0\8 = (10.600u,9.395u); + z46\0\9 = (6.263u,9.395u); z46\0\10 = (6.263u,17.104u); + z46\1\0s = (5.541u,16.140u); z46\1\0 = (5.541u,0.723u); + z46\1\1 = (5.059u,0.723u); z46\1\2 = (5.059u,16.140u); + z46\2\0s = (4.336u,8.672u); z46\2\0 = (4.336u,7.950u); + z46\2\1 = (0.723u,7.950u); z46\2\2 = (0.723u,8.672u); + z46\3\0s = (9.877u,8.672u); z46\3\0 = (9.877u,7.950u); + z46\3\1 = (6.263u,7.950u); z46\3\2 = (6.263u,8.672u); + fill_or_unfill z46\0\0s + --z46\0\0 --z46\0\1 --z46\0\2 --z46\0\3 --z46\0\4 + --z46\0\5 --z46\0\6 --z46\0\7 --z46\0\8 --z46\0\9 + --z46\0\10 --cycle; + fill_or_unfill z46\1\0s + --z46\1\0 --z46\1\1 --z46\1\2 --cycle; + fill_or_unfill z46\2\0s + --z46\2\0 --z46\2\1 --z46\2\2 --cycle; + fill_or_unfill z46\3\0s + --z46\3\0 --z46\3\1 --z46\3\2 --cycle; +endchar; % Z11 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Aa1} +% The sign \textit{Aa1}. +% Circle with horizontal shading (x). +% \begin{macrocode} + +%% Aa1: horizontally shaded circle +%% (code as x(120) 120+31 = 151) +%% (code as C(67) 67+31 = 98) +beginchar (98, 8.183u# + side#, 8.249u#, 0.000u#); + "Aa1"; + z32\0\0s = (8.157u,4.040u); z32\0\0c1 = (8.157u,9.664u); + z32\0\0c2 = (-0.023u,9.664u); z32\0\0 = (-0.023u,4.040u); + z32\0\1c1 = (-0.023u,-1.327u); z32\0\1c2 = (8.157u,-1.327u); + z32\1\0s = (7.390u,4.040u); z32\1\0c1 = (7.134u,-0.305u); + z32\1\0c2 = (1.000u,-0.305u); z32\1\0 = (0.744u,4.040u); + z32\1\1c1 = (0.744u,8.386u); z32\1\1c2 = (7.390u,8.386u); + z32\2\0s = (7.193u,6.336u); z32\2\0 = (1.314u,6.336u); + z32\2\1 = (0.803u,5.825u); z32\2\2 = (7.193u,5.825u); + z32\3\0s = (7.747u,3.528u); z32\3\0 = (0.590u,3.528u); + z32\3\1 = (0.590u,3.016u); z32\3\2 = (7.747u,3.016u); + z32\4\0s = (7.154u,2.254u); z32\4\0 = (1.020u,2.254u); + z32\4\1 = (1.187u,1.735u); z32\4\2 = (6.680u,1.735u); + z32\5\0s = (7.618u,5.007u); z32\5\0 = (0.461u,5.007u); + z32\5\1 = (0.461u,4.496u); z32\5\2 = (7.618u,4.496u); + fill_or_unfill z32\0\0s + ..controls z32\0\0c1 and z32\0\0c2..z32\0\0 + ..controls z32\0\1c1 and z32\0\1c2..cycle; + fill_or_unfill z32\1\0s + ..controls z32\1\0c1 and z32\1\0c2..z32\1\0 + ..controls z32\1\1c1 and z32\1\1c2..cycle; + fill_or_unfill z32\2\0s + --z32\2\0 --z32\2\1 --z32\2\2 --cycle; + fill_or_unfill z32\3\0s + --z32\3\0 --z32\3\1 --z32\3\2 --cycle; + fill_or_unfill z32\4\0s + --z32\4\0 --z32\4\1 --z32\4\2 --cycle; + fill_or_unfill z32\5\0s + --z32\5\0 --z32\5\1 --z32\5\2 --cycle; +endchar; % Aa1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Aa12} +% The sign \textit{Aa12}. +% Horizontal parallels joined at left (M). +% \begin{macrocode} + +%% Aa12: horizontal parallels joined at left +%% (code as M(77) 77+31 = 108) +beginchar (108, 16.863u# + side#, 4.096u#, 0.000u#); + "Aa12"; + z43\0\0s = (0.241u,0.241u); z43\0\0 = (17.104u,0.241u); + z43\0\1 = (17.104u,0.964u); z43\0\2 = (1.927u,0.964u); + z43\0\3c1 = (5.650u,4.349u); z43\0\3c2 = (7.436u,3.139u); + z43\0\3 = (11.804u,3.132u); z43\0\4 = (17.104u,3.132u); + z43\0\5 = (17.104u,3.855u); z43\0\6 = (13.731u,3.855u); + z43\0\7c1 = (9.041u,3.862u); z43\0\7c2 = (3.064u,5.385u); + fill_or_unfill z43\0\0s + --z43\0\0 --z43\0\1 --z43\0\2 + ..controls z43\0\3c1 and z43\0\3c2..z43\0\3 + --z43\0\4 --z43\0\5 --z43\0\6 + ..controls z43\0\7c1 and z43\0\7c2..cycle; +endchar; % Aa12 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{PW1} +% The sign \textit{PW1}. +% This is mine. It is the sign for a door. An upright rectangle with notches +% at the top and bottom. +% +% \begin{macrocode} + +%% PW created char (the door sign) +%% (code as C(67) 67+31 = 98) +%% (code as x(120) 120+31 = 151) +beginchar (151, 4u# + side#, 16.750u#, 0.000u#); + "PW1"; +%% the exterior + numeric lw; lw:=0.723u; % `linewidth' + x5=x6=0; % left vertical + x1=x2=4u; % w-side; % right vertical + x8=x7=x4=x3=0.5[x5,x1]; % center vertical + y1=y8=0; % bottom horizontal + y6=y7=y8+(x7-x6); % bottom mid horizontal + y3=y2=h; % top horizontal + y5=y4=y3-(x7-x6); % top mid horizontal +%% the interior + x25=x26=x5+lw; + x28=x27=x24=x23=x8+lw; + x21=x22=x1-lw; + y21=y28=y1+lw; + y26=y27=y6+lw; + y25=y24=y5-lw; + y23=y22=y3-lw; + fill_or_unfill z1--z2--z3--z4--z5--z6--z7--z8--cycle; + fill_or_unfill z28--z27--z26--z25--z24--z23--z22--z21--cycle; + proof_labels(1,2,3,4,5,6,7,8,21,22,23,24,25,26,27,28); +endchar; % PW1 + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{PW2} +% The sign \textit{PW2}. +% This is mine. It is a double machette (i.e., a double i). +% +% \begin{macrocode} + +%% PW2: two machettes +%% (code as y(121) 121+31 = 152) +%% numeric width = (4.197u# + pwshift) +beginchar (152, 10.197u# + side#, 17.824u#, 0.000u#); + "PW2"; + numeric pwshift; pwshift := 6u; +%% first machette + z48\0\0s = (1.412u,17.824u); z48\0\0c1 = (1.533u,16.738u); + z48\0\0c2 = (-0.254u,7.357u); z48\0\0 = (0.020u,6.582u); + z48\0\1c1 = (0.024u,4.308u); z48\0\1c2 = (2.993u,6.108u); + z48\0\1 = (2.993u,0.000u); z48\0\2 = (4.197u,0.000u); + z48\0\3 = (4.197u,13.009u); z48\0\4c1 = (4.171u,14.928u); + z48\0\4c2 = (3.494u,16.916u); z48\1\0s = (2.029u,16.622u); + z48\1\0 = (3.096u,15.176u); z48\1\1 = (3.041u,4.308u); + z48\1\2 = (0.749u,7.026u); + fill_or_unfill z48\0\0s + ..controls z48\0\0c1 and z48\0\0c2..z48\0\0 + ..controls z48\0\1c1 and z48\0\1c2..z48\0\1 + --z48\0\2 --z48\0\3 + ..controls z48\0\4c1 and z48\0\4c2..cycle; + fill_or_unfill z48\1\0s + --z48\1\0 --z48\1\1 --z48\1\2 --cycle; + +%% second machette is the first shifted right by pwshift + z1 = z48\0\0s shifted(pwshift, 0); + z2 = z48\0\0c1 shifted(pwshift, 0); + z3 = z48\0\0c2 shifted(pwshift, 0); + z4 = z48\0\0 shifted (pwshift, 0); + z5 = z48\0\1c1 shifted (pwshift, 0); + z6 = z48\0\1c2 shifted (pwshift, 0); + z7 = z48\0\1 shifted (pwshift, 0); + z8 = z48\0\2 shifted (pwshift, 0); + z9 = z48\0\3 shifted (pwshift, 0); + z10 = z48\0\4c1 shifted (pwshift, 0); + z11 = z48\0\4c2 shifted (pwshift, 0); + z12 = z48\1\0s shifted (pwshift, 0); + z13 = z48\1\0 shifted (pwshift, 0); + z14 = z48\1\1 shifted (pwshift, 0); + z15 = z48\1\2 shifted (pwshift, 0); + fill_or_unfill z1 + ..controls z2 and z3..z4 + ..controls z5 and z6..z7 + --z8 --z9 + ..controls z10 and z11..cycle; + fill_or_unfill z12 + --z13 --z14 --z15 --cycle; +endchar; % PW2 + +% \end{macrocode} +% \end{routine} +% +% \changes{v1.1}{2000/08/26}{Added glyphs F31, G26, G26*, G27, G28, Z6} +% \begin{routine}{F31} +% The sign \textit{F31}. It looks like three brambles hanging down and +% transliterates as \textit{ms}. +% \begin{macrocode} + +%% F31: three brambles hanging down (ms) +%% (code as Delta(1) 1+31 = 32) +%beginchar (62, 8.122u#, 16.893u#, 0.000u#); +beginchar (32, 8.122u#+side#, 16.893u#, 0.000u#); + "F31"; + z62\0\0s = (1.238u,10.489u); z62\0\0 = (4.280u,12.476u); + z62\0\1 = (8.122u,13.851u); z62\0\2 = (7.331u,15.471u); + z62\0\3 = (3.885u,13.286u); z62\0\4 = (0.447u,12.109u); + z62\1\0s = (2.129u,7.974u); z62\1\0 = (1.926u,11.602u); + z62\1\1 = (1.027u,11.663u); z62\1\2 = (0.331u,8.097u); + z62\2\0s = (2.188u,3.224u); z62\2\0 = (1.738u,6.829u); + z62\2\1 = (0.836u,6.829u); z62\2\2 = (0.386u,3.224u); + z62\3\0s = (2.183u,0.000u); z62\3\0 = (1.733u,3.605u); + z62\3\1 = (0.831u,3.605u); z62\3\2 = (0.381u,0.000u); + z62\4\0s = (4.945u,9.232u); z62\4\0 = (4.495u,12.837u); + z62\4\1 = (4.945u,16.893u); z62\4\2 = (3.143u,16.893u); + z62\4\3 = (3.594u,12.837u); z62\4\4 = (3.143u,9.232u); + z62\5\0s = (4.997u,6.481u); z62\5\0 = (4.547u,10.086u); + z62\5\1 = (3.645u,10.086u); z62\5\2 = (3.195u,6.481u); + z62\6\0s = (4.991u,3.224u); z62\6\0 = (4.541u,6.829u); + z62\6\1 = (3.639u,6.829u); z62\6\2 = (3.189u,3.224u); + z62\7\0s = (4.986u,0.000u); z62\7\0 = (4.536u,3.605u); + z62\7\1 = (3.635u,3.605u); z62\7\2 = (3.184u,0.000u); + z62\8\0s = (7.645u,12.023u); z62\8\0 = (4.227u,13.257u); + z62\8\1 = (0.818u,15.499u); z62\8\2 = (0.000u,13.893u); + z62\8\3 = (3.819u,12.454u); z62\8\4 = (6.827u,10.417u); + z62\9\0s = (7.761u,7.922u); z62\9\0 = (7.256u,11.520u); + z62\9\1 = (6.355u,11.506u); z62\9\2 = (5.958u,7.895u); + z62\10\0s = (7.734u,3.212u); z62\10\0 = (7.284u,6.817u); + z62\10\1 = (6.383u,6.817u); z62\10\2 = (5.932u,3.212u); + z62\11\0s = (7.730u,-0.012u); z62\11\0 = (7.279u,3.594u); + z62\11\1 = (6.378u,3.594u); z62\11\2 = (5.927u,-0.012u); + z62\12\0s = (2.194u,6.481u); z62\12\0 = (1.743u,10.086u); + z62\12\1 = (0.842u,10.086u); z62\12\2 = (0.392u,6.481u); + z62\13\0s = (7.740u,6.469u); z62\13\0 = (7.290u,10.074u); + z62\13\1 = (6.388u,10.074u); z62\13\2 = (5.938u,6.469u); + fill_or_unfill z62\0\0s + --z62\0\0 --z62\0\1 --z62\0\2 --z62\0\3 --z62\0\4 --cycle; + fill_or_unfill z62\1\0s + --z62\1\0 --z62\1\1 --z62\1\2 --cycle; + fill_or_unfill z62\2\0s + --z62\2\0 --z62\2\1 --z62\2\2 --cycle; + fill_or_unfill z62\3\0s + --z62\3\0 --z62\3\1 --z62\3\2 --cycle; + fill_or_unfill z62\4\0s + --z62\4\0 --z62\4\1 --z62\4\2 --z62\4\3 --z62\4\4 --cycle; + fill_or_unfill z62\5\0s + --z62\5\0 --z62\5\1 --z62\5\2 --cycle; + fill_or_unfill z62\6\0s + --z62\6\0 --z62\6\1 --z62\6\2 --cycle; + fill_or_unfill z62\7\0s + --z62\7\0 --z62\7\1 --z62\7\2 --cycle; + fill_or_unfill z62\8\0s + --z62\8\0 --z62\8\1 --z62\8\2 --z62\8\3 --z62\8\4 --cycle; + fill_or_unfill z62\9\0s + --z62\9\0 --z62\9\1 --z62\9\2 --cycle; + fill_or_unfill z62\10\0s + --z62\10\0 --z62\10\1 --z62\10\2 --cycle; + fill_or_unfill z62\11\0s + --z62\11\0 --z62\11\1 --z62\11\2 --cycle; + fill_or_unfill z62\12\0s + --z62\12\0 --z62\12\1 --z62\12\2 --cycle; + fill_or_unfill z62\13\0s + --z62\13\0 --z62\13\1 --z62\13\2 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{G26} +% The sign \textit{G26}. It looks like an ibis on a post. +% \begin{macrocode} + +%% G26: an ibis on a post +%% (code as Theta(2) 2+31 = 33) +%beginchar (59, 16.417u#, 17.184u#, 0.000u#); +beginchar (33, 16.417u#+side#, 17.184u#, 0.000u#); + "G26"; + z59\0\0s = (0.000u,13.250u); z59\0\0c1 = (0.757u,13.785u); + z59\0\0c2 = (2.400u,15.478u); z59\0\0 = (3.334u,15.206u); + z59\0\1c1 = (4.287u,14.929u); z59\0\1c2 = (3.736u,13.312u); + z59\0\1 = (4.032u,12.527u); z59\0\2c1 = (4.517u,11.241u); + z59\0\2c2 = (5.852u,10.696u); z59\0\2 = (6.567u,9.615u); + z59\0\3c1 = (7.346u,8.439u); z59\0\3c2 = (6.465u,5.731u); + z59\0\3 = (5.249u,5.203u); z59\0\4c1 = (4.723u,4.975u); + z59\0\4c2 = (2.397u,5.059u); z59\0\4 = (1.686u,5.059u); + z59\0\5 = (1.686u,3.614u); z59\0\6c1 = (4.909u,3.614u); + z59\0\6c2 = (9.008u,4.600u); z59\0\6 = (9.154u,0.000u); + z59\0\7 = (9.877u,0.000u); z59\0\8 = (9.877u,3.614u); + z59\0\9 = (11.563u,3.614u); z59\0\10 = (11.563u,5.059u); + z59\0\11 = (10.118u,5.059u); z59\0\12 = (10.359u,8.432u); + z59\0\13c1 = (11.154u,8.496u); z59\0\13c2 = (11.972u,8.704u); + z59\0\13 = (12.768u,8.591u); z59\0\14c1 = (13.611u,8.472u); + z59\0\14c2 = (14.279u,8.058u); z59\0\14 = (15.175u,8.147u); + z59\0\15c1 = (15.683u,8.197u); z59\0\15c2 = (16.719u,8.559u); + z59\0\15 = (16.341u,9.266u); z59\0\16c1 = (16.154u,9.615u); + z59\0\16c2 = (14.641u,10.203u); z59\0\16 = (14.213u,10.421u); + z59\0\17c1 = (9.520u,12.821u); z59\0\17c2 = (10.177u,13.013u); + z59\0\17 = (4.818u,13.009u); z59\0\18c1 = (4.902u,13.948u); + z59\0\18c2 = (5.587u,15.601u); z59\0\18 = (5.443u,16.356u); + z59\0\19c1 = (4.969u,18.842u); z59\0\19c2 = (-0.069u,15.136u); + z59\1\0s = (15.176u,8.673u); z59\1\0c1 = (14.066u,8.814u); + z59\1\0c2 = (13.121u,9.220u); z59\1\0 = (11.976u,9.189u); + z59\1\1c1 = (9.389u,9.119u); z59\1\1c2 = (6.523u,9.722u); + z59\1\1 = (5.300u,12.270u); z59\1\2c1 = (6.341u,12.295u); + z59\1\2c2 = (7.401u,12.448u); z59\1\2 = (8.431u,12.270u); + z59\1\3c1 = (9.855u,11.986u); z59\1\3c2 = (14.467u,9.816u); + z59\2\0s = (9.395u,5.059u); z59\2\0 = (6.504u,5.300u); + z59\2\1 = (8.190u,8.914u); z59\2\2c1 = (10.058u,7.998u); + z59\2\2c2 = (9.400u,6.787u); z59\3\0s = (9.395u,3.614u); + z59\3\0 = (9.154u,2.891u); z59\3\1 = (8.672u,3.614u); + fill_or_unfill z59\0\0s + ..controls z59\0\0c1 and z59\0\0c2..z59\0\0 + ..controls z59\0\1c1 and z59\0\1c2..z59\0\1 + ..controls z59\0\2c1 and z59\0\2c2..z59\0\2 + ..controls z59\0\3c1 and z59\0\3c2..z59\0\3 + ..controls z59\0\4c1 and z59\0\4c2..z59\0\4 + --z59\0\5 + ..controls z59\0\6c1 and z59\0\6c2..z59\0\6 + --z59\0\7 --z59\0\8 --z59\0\9 --z59\0\10 --z59\0\11 --z59\0\12 + ..controls z59\0\13c1 and z59\0\13c2..z59\0\13 + ..controls z59\0\14c1 and z59\0\14c2..z59\0\14 + ..controls z59\0\15c1 and z59\0\15c2..z59\0\15 + ..controls z59\0\16c1 and z59\0\16c2..z59\0\16 + ..controls z59\0\17c1 and z59\0\17c2..z59\0\17 + ..controls z59\0\18c1 and z59\0\18c2..z59\0\18 + ..controls z59\0\19c1 and z59\0\19c2..cycle; + fill_or_unfill z59\1\0s + ..controls z59\1\0c1 and z59\1\0c2..z59\1\0 + ..controls z59\1\1c1 and z59\1\1c2..z59\1\1 + ..controls z59\1\2c1 and z59\1\2c2..z59\1\2 + ..controls z59\1\3c1 and z59\1\3c2..cycle; + fill_or_unfill z59\2\0s + --z59\2\0 --z59\2\1 + ..controls z59\2\2c1 and z59\2\2c2..cycle; + fill_or_unfill z59\3\0s + --z59\3\0 --z59\3\1 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{G26*} +% The sign \textit{G26*}. It looks like an ibis walking. +% \begin{macrocode} + +%% G26*: an ibis walking +%% (code as Lambda(3) 3+31 = 34) +%beginchar (60, 17.176u#, 17.690u#, 0.000u#); +beginchar (34, 17.176u#+side#, 17.690u#, 0.000u#); + "G26*"; + z60\0\0s = (0.000u,12.527u); z60\0\0c1 = (1.707u,13.586u); + z60\0\0c2 = (0.866u,15.559u); z60\0\0 = (3.613u,15.418u); + z60\0\1c1 = (3.536u,14.499u); z60\0\1c2 = (3.028u,13.124u); + z60\0\1 = (3.424u,12.296u); z60\0\2c1 = (3.752u,11.609u); + z60\0\2c2 = (4.485u,11.178u); z60\0\2 = (5.059u,10.718u); + z60\0\3c1 = (8.157u,8.232u); z60\0\3c2 = (9.439u,7.709u); + z60\0\3 = (7.776u,3.855u); z60\0\4c1 = (6.426u,0.725u); + z60\0\4c2 = (7.154u,1.354u); z60\0\4 = (4.095u,0.482u); + z60\0\5 = (8.191u,0.000u); z60\0\6 = (7.227u,0.723u); + z60\0\7 = (9.636u,6.987u); z60\0\8 = (10.118u,6.987u); + z60\0\9 = (10.394u,1.697u); z60\0\10 = (8.672u,0.000u); + z60\0\11 = (12.286u,0.000u); z60\0\12 = (11.224u,1.476u); + z60\0\13 = (10.840u,7.709u); z60\0\14 = (16.540u,7.366u); + z60\0\15c1 = (19.752u,8.828u); z60\0\15c2 = (10.471u,12.758u); + z60\0\15 = (9.395u,13.076u); z60\0\16c1 = (7.517u,13.631u); + z60\0\16c2 = (5.637u,12.605u); z60\0\16 = (4.882u,12.922u); + z60\0\17c1 = (3.346u,13.566u); z60\0\17c2 = (7.092u,17.767u); + z60\0\17 = (3.854u,17.690u); z60\0\18c1 = (1.943u,17.645u); + z60\0\18c2 = (0.043u,14.219u); z60\1\0s = (3.372u,16.605u); + z60\2\0s = (4.463u,16.540u); z60\3\0s = (15.177u,9.396u); + z60\3\0c1 = (13.424u,8.702u); z60\3\0c2 = (9.320u,10.190u); + z60\3\0 = (7.709u,11.082u); z60\3\1 = (8.913u,11.564u); + z60\3\2 = (6.745u,12.046u); z60\3\3c1 = (7.452u,9.661u); + z60\3\3c2 = (11.277u,8.854u); z60\3\3 = (13.490u,8.673u); + z60\3\4c1 = (10.690u,7.562u); z60\3\4c2 = (6.430u,9.527u); + z60\3\4 = (5.059u,12.046u); z60\3\5 = (7.950u,12.509u); + z60\3\6c1 = (9.966u,12.509u); z60\3\6c2 = (13.473u,10.504u); + z60\4\0s = (15.245u,8.182u); + fill_or_unfill z60\0\0s + ..controls z60\0\0c1 and z60\0\0c2..z60\0\0 + ..controls z60\0\1c1 and z60\0\1c2..z60\0\1 + ..controls z60\0\2c1 and z60\0\2c2..z60\0\2 + ..controls z60\0\3c1 and z60\0\3c2..z60\0\3 + ..controls z60\0\4c1 and z60\0\4c2..z60\0\4 + --z60\0\5 --z60\0\6 --z60\0\7 --z60\0\8 --z60\0\9 + --z60\0\10 --z60\0\11 --z60\0\12 --z60\0\13 --z60\0\14 + ..controls z60\0\15c1 and z60\0\15c2..z60\0\15 + ..controls z60\0\16c1 and z60\0\16c2..z60\0\16 + ..controls z60\0\17c1 and z60\0\17c2..z60\0\17 + ..controls z60\0\18c1 and z60\0\18c2..cycle; + fill_or_unfill z60\1\0s + --cycle; + fill_or_unfill z60\2\0s + --cycle; + fill_or_unfill z60\3\0s + ..controls z60\3\0c1 and z60\3\0c2..z60\3\0 + --z60\3\1 --z60\3\2 + ..controls z60\3\3c1 and z60\3\3c2..z60\3\3 + ..controls z60\3\4c1 and z60\3\4c2..z60\3\4 + --z60\3\5 + ..controls z60\3\6c1 and z60\3\6c2..cycle; + fill_or_unfill z60\4\0s + --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{G27} +% The sign \textit{G27}. It looks like a short-necked ibis pecking. +% \begin{macrocode} + +%% G27: a short-necked ibis pecking +%% (code as Xi(4) 4+31 = 35) +%beginchar (61, 16.910u#, 12.315u#, 0.000u#); +beginchar (35, 16.910u#+side#, 12.315u#, 0.000u#); + "G27"; + z61\0\0s = (0.529u,6.305u); z61\0\0 = (1.492u,9.919u); + z61\0\1c1 = (1.548u,7.468u); z61\0\1c2 = (3.139u,6.110u); + z61\0\1 = (4.624u,8.714u); z61\0\2c1 = (7.115u,6.722u); + z61\0\2c2 = (7.948u,6.209u); z61\0\2 = (7.123u,2.932u); + z61\0\3c1 = (6.968u,2.317u); z61\0\3c2 = (6.819u,1.371u); + z61\0\3 = (6.238u,1.014u); z61\0\4c1 = (5.146u,0.344u); + z61\0\4c2 = (4.368u,1.692u); z61\0\4 = (2.938u,0.282u); + z61\0\5c1 = (4.032u,0.066u); z61\0\5c2 = (9.359u,-0.363u); + z61\0\5 = (9.901u,0.599u); z61\0\6 = (9.901u,5.823u); + z61\0\7c1 = (13.270u,5.790u); z61\0\7c2 = (13.429u,3.528u); + z61\0\7 = (16.910u,5.100u); z61\0\8c1 = (16.368u,6.795u); + z61\0\8c2 = (14.205u,7.789u); z61\0\8 = (12.815u,8.764u); + z61\0\9c1 = (10.960u,10.064u); z61\0\9c2 = (5.392u,14.161u); + z61\0\9 = (3.419u,11.364u); z61\0\10c1 = (0.411u,15.015u); + z61\0\10c2 = (-0.828u,7.322u); z61\1\0s = (1.974u,11.846u); + z61\1\0 = (2.456u,9.437u); z61\2\0s = (14.501u,6.546u); + z61\2\0 = (7.036u,8.910u); z61\2\1 = (5.106u,10.641u); + z61\2\2 = (6.069u,8.714u); z61\2\3c1 = (4.987u,9.101u); + z61\2\3c2 = (4.761u,9.387u); z61\2\3 = (3.893u,8.473u); + z61\2\4c1 = (3.732u,9.068u); z61\2\4c2 = (3.818u,9.546u); + z61\2\4 = (3.893u,10.158u); z61\2\5c1 = (4.358u,14.529u); + z61\2\5c2 = (13.264u,7.960u); z61\3\0s = (2.456u,9.196u); + z61\3\0 = (3.660u,8.473u); z61\3\1c1 = (2.835u,7.895u); + z61\3\1c2 = (2.128u,8.099u); z61\4\0s = (6.310u,8.714u); + z61\5\0s = (6.656u,8.264u); z61\6\0s = (7.274u,7.991u); + z61\6\0 = (12.574u,6.546u); z61\6\1c1 = (10.782u,5.843u); + z61\6\1c2 = (8.544u,6.826u); z61\6\1 = (7.033u,7.750u); + z61\7\0s = (8.180u,6.305u); z61\7\0c1 = (9.712u,4.973u); + z61\7\0c2 = (9.201u,2.600u); z61\7\0 = (9.201u,0.764u); + z61\7\1 = (7.515u,0.764u); z61\7\2 = (8.180u,4.378u); + z61\8\0s = (15.223u,5.100u); z61\8\0 = (12.574u,6.305u); + fill_or_unfill z61\0\0s + --z61\0\0 + ..controls z61\0\1c1 and z61\0\1c2..z61\0\1 + ..controls z61\0\2c1 and z61\0\2c2..z61\0\2 + ..controls z61\0\3c1 and z61\0\3c2..z61\0\3 + ..controls z61\0\4c1 and z61\0\4c2..z61\0\4 + ..controls z61\0\5c1 and z61\0\5c2..z61\0\5 + --z61\0\6 + ..controls z61\0\7c1 and z61\0\7c2..z61\0\7 + ..controls z61\0\8c1 and z61\0\8c2..z61\0\8 + ..controls z61\0\9c1 and z61\0\9c2..z61\0\9 + ..controls z61\0\10c1 and z61\0\10c2..cycle; + fill_or_unfill z61\1\0s + --z61\1\0 + --cycle; + fill_or_unfill z61\2\0s + --z61\2\0 --z61\2\1 --z61\2\2 + ..controls z61\2\3c1 and z61\2\3c2..z61\2\3 + ..controls z61\2\4c1 and z61\2\4c2..z61\2\4 + ..controls z61\2\5c1 and z61\2\5c2..cycle; + fill_or_unfill z61\3\0s + --z61\3\0 + ..controls z61\3\1c1 and z61\3\1c2..cycle; + fill_or_unfill z61\4\0s + --cycle; + fill_or_unfill z61\5\0s + --cycle; + fill_or_unfill z61\6\0s + --z61\6\0 + ..controls z61\6\1c1 and z61\6\1c2..z61\6\1 + --cycle; + fill_or_unfill z61\7\0s + ..controls z61\7\0c1 and z61\7\0c2..z61\7\0 + --z61\7\1 --z61\7\2 --cycle; + fill_or_unfill z61\8\0s + --z61\8\0 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{G28} +% The sign \textit{G28}. It looks like a long-necked ibis pecking. +% \begin{macrocode} + +%% G28: a long-necked ibis pecking +%% (code as Pi(5) 5+31 = 36) +%beginchar (62, 20.626u#, 10.514u#, 0.000u#); +beginchar (36, 20.626u#+side#, 10.514u#, 0.000u#); + "G28"; + z62\0\0s = (0.000u,6.022u); z62\0\0c1 = (1.302u,6.853u); + z62\0\0c2 = (1.064u,8.015u); z62\0\0 = (3.132u,8.351u); + z62\0\1c1 = (4.703u,8.607u); z62\0\1c2 = (4.812u,7.723u); + z62\0\1 = (6.026u,7.228u); z62\0\2c1 = (6.827u,6.901u); + z62\0\2c2 = (7.624u,7.096u); z62\0\2 = (8.431u,6.914u); + z62\0\3c1 = (9.703u,6.626u); z62\0\3c2 = (11.355u,5.020u); + z62\0\3 = (10.980u,3.613u); z62\0\4c1 = (9.878u,-0.517u); + z62\0\4c2 = (7.249u,2.042u); z62\0\4 = (6.022u,0.000u); + z62\0\5 = (7.709u,0.163u); z62\0\6 = (14.454u,0.481u); + z62\0\7 = (13.972u,5.058u); z62\0\8c1 = (14.744u,5.075u); + z62\0\8c2 = (15.632u,5.292u); z62\0\8 = (16.381u,5.185u); + z62\0\9c1 = (17.553u,5.018u); z62\0\9c2 = (17.875u,4.429u); + z62\0\9 = (19.231u,4.838u); z62\0\10c1 = (22.624u,5.864u); + z62\0\10c2 = (18.956u,7.416u); z62\0\10 = (17.826u,8.024u); + z62\0\11c1 = (16.434u,8.773u); z62\0\11c2 = (15.016u,9.718u); + z62\0\11 = (13.490u,10.170u); z62\0\12c1 = (9.251u,11.423u); + z62\0\12c2 = (8.299u,8.888u); z62\0\12 = (6.990u,8.951u); + z62\0\13c1 = (6.159u,8.990u); z62\0\13c2 = (5.779u,10.068u); + z62\0\13 = (4.809u,10.278u); z62\0\14c1 = (3.817u,10.493u); + z62\0\14c2 = (0.969u,8.509u); z62\0\14 = (0.446u,7.695u); + z62\0\15c1 = (0.110u,7.172u); z62\0\15c2 = (0.056u,6.622u); + z62\1\0s = (19.272u,6.504u); z62\1\0 = (11.106u,7.669u); + z62\1\1 = (9.877u,9.154u); z62\1\2c1 = (9.151u,6.581u); + z62\1\2c2 = (13.753u,6.398u); z62\1\2 = (15.417u,6.263u); + z62\1\3 = (15.417u,5.788u); z62\1\4 = (12.286u,5.788u); + z62\1\5 = (6.745u,7.708u); z62\1\6c1 = (12.071u,11.658u); + z62\1\6c2 = (14.157u,9.174u); z62\2\0s = (4.787u,9.373u); + z62\3\0s = (5.300u,9.154u); z62\4\0s = (5.541u,8.913u); + z62\5\0s = (5.663u,8.434u); z62\6\0s = (18.549u,5.299u); + z62\6\0 = (17.586u,5.540u); z62\7\0s = (12.286u,5.058u); + z62\7\0c1 = (12.818u,4.743u); z62\7\0c2 = (13.429u,4.423u); + z62\7\0 = (13.704u,3.832u); z62\7\1c1 = (14.068u,3.051u); + z62\7\1c2 = (13.570u,1.252u); z62\7\1 = (12.733u,0.933u); + z62\7\2c1 = (12.140u,0.656u); z62\7\2c2 = (11.227u,0.881u); + z62\7\2 = (10.600u,0.933u); z62\7\3 = (11.806u,3.372u); + fill_or_unfill z62\0\0s + ..controls z62\0\0c1 and z62\0\0c2..z62\0\0 + ..controls z62\0\1c1 and z62\0\1c2..z62\0\1 + ..controls z62\0\2c1 and z62\0\2c2..z62\0\2 + ..controls z62\0\3c1 and z62\0\3c2..z62\0\3 + ..controls z62\0\4c1 and z62\0\4c2..z62\0\4 + --z62\0\5 --z62\0\6 --z62\0\7 + ..controls z62\0\8c1 and z62\0\8c2..z62\0\8 + ..controls z62\0\9c1 and z62\0\9c2..z62\0\9 + ..controls z62\0\10c1 and z62\0\10c2..z62\0\10 + ..controls z62\0\11c1 and z62\0\11c2..z62\0\11 + ..controls z62\0\12c1 and z62\0\12c2..z62\0\12 + ..controls z62\0\13c1 and z62\0\13c2..z62\0\13 + ..controls z62\0\14c1 and z62\0\14c2..z62\0\14 + ..controls z62\0\15c1 and z62\0\15c2..cycle; + fill_or_unfill z62\1\0s + --z62\1\0 --z62\1\1 + ..controls z62\1\2c1 and z62\1\2c2..z62\1\2 + --z62\1\3 --z62\1\4 --z62\1\5 + ..controls z62\1\6c1 and z62\1\6c2..cycle; + fill_or_unfill z62\2\0s + --cycle; + fill_or_unfill z62\3\0s + --cycle; + fill_or_unfill z62\4\0s + --cycle; + fill_or_unfill z62\5\0s + --cycle; + fill_or_unfill z62\6\0s + --z62\6\0 --cycle; + fill_or_unfill z62\7\0s + ..controls z62\7\0c1 and z62\7\0c2..z62\7\0 + ..controls z62\7\1c1 and z62\7\1c2..z62\7\1 + ..controls z62\7\2c1 and z62\7\2c2..z62\7\2 + --z62\7\3 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{Z6} +% The sign \textit{Z6}. It looks like a stick with a V at the righthand end. +% \begin{macrocode} + +%% Z6: stick with a V at righthand end +%% (code as Sigma(6) 6+31 = 37) +%beginchar (39, 17.812u#, 9.154u#, 0.000u#); +beginchar (37, 17.812u#+side#, 9.154u#, 0.000u#); + "Z6"; + z39\0\0s = (0.241u,9.154u); z39\0\0 = (0.000u,7.950u); + z39\0\1 = (13.968u,3.990u); z39\0\2 = (17.104u,0.000u); + z39\0\3 = (17.812u,0.699u); z39\0\4 = (15.540u,3.797u); + z39\0\5 = (17.458u,5.449u); z39\0\6 = (16.986u,6.364u); + z39\0\7 = (15.177u,4.818u); + fill_or_unfill z39\0\0s + --z39\0\0 --z39\0\1 --z39\0\2 --z39\0\3 --z39\0\4 + --z39\0\5 --z39\0\6 --z39\0\7 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{A1} +% The sign \textit{A1}. Kneeling man pointing. +% \begin{macrocode} + +%% A1: Kneeling man pointing +%% (code as Upsilon(7) 7+31 = 38) +%%beginchar (32, 13.490u#, 17.826u#, 0.000u#); +beginchar (38, 13.490u#+side#, 17.826u#, 0.000u#); + "A1"; + z32\0\0s = (6.986u,13.490u); z32\0\0c1 = (5.734u,12.830u); + z32\0\0c2 = (4.749u,11.724u); z32\0\0 = (3.763u,10.591u); + z32\0\1 = (2.002u,12.281u); z32\0\2c1 = (1.748u,12.963u); + z32\0\2c2 = (1.261u,13.873u); z32\0\2 = (0.241u,13.972u); + z32\0\3c1 = (-0.169u,13.191u); z32\0\3c2 = (0.708u,13.320u); + z32\0\3 = (0.903u,12.541u); z32\0\4c1 = (0.416u,12.281u); + z32\0\4c2 = (0.806u,11.728u); z32\0\4 = (1.391u,11.598u); + z32\0\5 = (3.739u,9.086u); z32\0\6 = (6.263u,10.840u); + z32\0\7 = (6.504u,5.781u); z32\0\8c1 = (5.858u,6.247u); + z32\0\8c2 = (2.226u,9.941u); z32\0\8 = (2.232u,7.003u); + z32\0\9 = (2.778u,4.002u); z32\0\10c1 = (2.954u,2.417u); + z32\0\10c2 = (0.428u,1.546u); z32\0\10 = (0.000u,0.241u); + z32\0\11 = (6.022u,0.702u); z32\0\12 = (8.632u,0.702u); + z32\0\13 = (12.527u,0.482u); z32\0\14 = (10.406u,1.774u); + z32\0\15 = (10.406u,8.431u); z32\0\16 = (13.490u,7.709u); + z32\0\17c1 = (13.275u,10.070u); z32\0\17c2 = (11.486u,12.990u); + z32\0\17 = (9.877u,13.731u); z32\0\18c1 = (9.476u,14.172u); + z32\0\18c2 = (10.296u,14.660u); z32\0\18 = (10.562u,15.413u); + z32\0\19c1 = (11.120u,17.558u); z32\0\19c2 = (7.583u,19.092u); + z32\0\19 = (6.476u,16.579u); z32\0\20c1 = (5.962u,15.872u); + z32\0\20c2 = (5.544u,15.165u); z32\0\20 = (6.251u,15.390u); + z32\0\21c1 = (6.251u,14.634u); z32\0\21c2 = (6.589u,14.409u); + z32\0\21 = (7.087u,14.329u); z32\0\22c1 = (7.473u,14.329u); + z32\0\22c2 = (7.409u,14.007u); z32\1\0s = (9.154u,14.695u); + z32\1\0c1 = (9.567u,16.868u); z32\1\0c2 = (8.022u,16.275u); + z32\1\0 = (7.468u,17.104u); z32\1\1c1 = (8.501u,18.205u); + z32\1\1c2 = (11.226u,16.366u); z32\2\0s = (7.931u,14.711u); + z32\2\0c1 = (6.943u,14.694u); z32\2\0c2 = (6.261u,15.718u); + z32\2\0 = (6.997u,16.581u); z32\2\1c1 = (7.302u,16.068u); + z32\2\1c2 = (8.610u,15.918u); z32\2\1 = (8.609u,15.591u); + z32\2\2 = (8.546u,14.722u); z32\2\3c1 = (8.683u,14.115u); + z32\2\3c2 = (9.290u,14.408u); z32\2\3 = (9.173u,13.840u); + z32\2\4c1 = (9.010u,12.651u); z32\2\4c2 = (10.482u,13.462u); + z32\2\4 = (10.086u,11.784u); z32\2\5 = (9.731u,9.918u); + z32\2\6 = (9.231u,10.044u); z32\2\7c1 = (9.088u,10.512u); + z32\2\7c2 = (7.590u,11.279u); z32\2\7 = (7.227u,11.081u); + z32\2\8c1 = (6.757u,10.269u); z32\2\8c2 = (8.941u,9.661u); + z32\2\8 = (8.982u,8.832u); z32\2\9 = (9.618u,8.583u); + z32\2\10 = (9.632u,7.705u); z32\2\11c1 = (9.694u,5.540u); + z32\2\11c2 = (9.293u,5.395u); z32\2\11 = (7.227u,5.059u); + z32\2\12c1 = (7.232u,6.830u); z32\2\12c2 = (7.526u,10.663u); + z32\2\12 = (6.263u,12.045u); z32\2\13 = (7.880u,13.480u); + z32\3\0s = (10.840u,11.081u); z32\3\0c1 = (11.159u,10.590u); + z32\3\0c2 = (11.523u,9.826u); z32\3\0 = (11.668u,9.389u); + z32\3\1 = (10.613u,9.680u); z32\4\0s = (6.263u,4.577u); + z32\4\0c1 = (4.619u,3.776u); z32\4\0c2 = (3.779u,3.298u); + z32\4\0 = (3.603u,5.520u); z32\4\1c1 = (3.533u,6.235u); + z32\4\1c2 = (3.414u,6.510u); z32\4\1 = (3.603u,7.227u); + z32\5\0s = (2.650u,1.445u); z32\5\0c1 = (2.907u,3.036u); + z32\5\0c2 = (7.018u,4.463u); z32\5\0 = (8.533u,4.697u); + z32\5\1c1 = (10.033u,4.928u); z32\5\1c2 = (10.418u,1.658u); + z32\5\1 = (7.956u,1.699u); z32\5\2 = (5.781u,1.920u); + fill_or_unfill z32\0\0s + ..controls z32\0\0c1 and z32\0\0c2..z32\0\0 + --z32\0\1 + ..controls z32\0\2c1 and z32\0\2c2..z32\0\2 + ..controls z32\0\3c1 and z32\0\3c2..z32\0\3 + ..controls z32\0\4c1 and z32\0\4c2..z32\0\4 + --z32\0\5 --z32\0\6 --z32\0\7 + ..controls z32\0\8c1 and z32\0\8c2..z32\0\8 + --z32\0\9 + ..controls z32\0\10c1 and z32\0\10c2..z32\0\10 + --z32\0\11 --z32\0\12 --z32\0\13 --z32\0\14 --z32\0\15 + --z32\0\16 + ..controls z32\0\17c1 and z32\0\17c2..z32\0\17 + ..controls z32\0\18c1 and z32\0\18c2..z32\0\18 + ..controls z32\0\19c1 and z32\0\19c2..z32\0\19 + ..controls z32\0\20c1 and z32\0\20c2..z32\0\20 + ..controls z32\0\21c1 and z32\0\21c2..z32\0\21 + ..controls z32\0\22c1 and z32\0\22c2..cycle; + fill_or_unfill z32\1\0s + ..controls z32\1\0c1 and z32\1\0c2..z32\1\0 + ..controls z32\1\1c1 and z32\1\1c2..cycle; + fill_or_unfill z32\2\0s + ..controls z32\2\0c1 and z32\2\0c2..z32\2\0 + ..controls z32\2\1c1 and z32\2\1c2..z32\2\1 + --z32\2\2 + ..controls z32\2\3c1 and z32\2\3c2..z32\2\3 + ..controls z32\2\4c1 and z32\2\4c2..z32\2\4 + --z32\2\5 --z32\2\6 + ..controls z32\2\7c1 and z32\2\7c2..z32\2\7 + ..controls z32\2\8c1 and z32\2\8c2..z32\2\8 + --z32\2\9 --z32\2\10 + ..controls z32\2\11c1 and z32\2\11c2..z32\2\11 + ..controls z32\2\12c1 and z32\2\12c2..z32\2\12 + --z32\2\13 --cycle; + fill_or_unfill z32\3\0s + ..controls z32\3\0c1 and z32\3\0c2..z32\3\0 + --z32\3\1 --cycle; + fill_or_unfill z32\4\0s + ..controls z32\4\0c1 and z32\4\0c2..z32\4\0 + ..controls z32\4\1c1 and z32\4\1c2..z32\4\1 + --cycle; + fill_or_unfill z32\5\0s + ..controls z32\5\0c1 and z32\5\0c2..z32\5\0 + ..controls z32\5\1c1 and z32\5\1c2..z32\5\1 + --z32\5\2 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{F20} +% The sign \textit{F20}. Tongue (\textit{ns}). +% \begin{macrocode} + +%% F20: Tongue (ns) +%% (code as Phi(8) 8+31 = 39) +%%beginchar (51, 17.353u#, 13.250u#, 0.000u#); +beginchar (39, 17.353u#+side#, 13.250u#, 0.000u#); + "F20"; + z51\0\0s = (17.112u,0.000u); z51\0\0 = (17.353u,0.241u); + z51\0\1 = (16.094u,2.650u); z51\0\2 = (14.462u,9.395u); + z51\0\3 = (16.629u,9.395u); z51\0\4 = (16.629u,9.877u); + z51\0\5c1 = (14.076u,10.962u); z51\0\5c2 = (11.191u,11.327u); + z51\0\5 = (8.439u,11.322u); z51\0\6c1 = (6.032u,11.319u); + z51\0\6c2 = (3.304u,10.515u); z51\0\6 = (0.970u,11.082u); + z51\0\7 = (1.453u,13.250u); z51\0\8c1 = (0.039u,13.007u); + z51\0\8c2 = (-0.651u,10.694u); z51\0\8 = (0.766u,10.055u); + z51\0\9c1 = (1.293u,9.817u); z51\0\9c2 = (2.532u,9.871u); + z51\0\9 = (3.140u,9.878u); z51\0\10 = (9.644u,10.118u); + z51\0\11c1 = (16.720u,10.107u); z51\0\11c2 = (13.331u,3.308u); + fill_or_unfill z51\0\0s + --z51\0\0 --z51\0\1 --z51\0\2 --z51\0\3 --z51\0\4 + ..controls z51\0\5c1 and z51\0\5c2..z51\0\5 + ..controls z51\0\6c1 and z51\0\6c2..z51\0\6 + --z51\0\7 + ..controls z51\0\8c1 and z51\0\8c2..z51\0\8 + ..controls z51\0\9c1 and z51\0\9c2..z51\0\9 + --z51\0\10 + ..controls z51\0\11c1 and z51\0\11c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Y4} +% The sign \textit{Y4}. Scribe (\textit{s\b{h}}) +% \begin{macrocode} + +%% Y4: Scribe (sb) +%% (code as Psi(9) 9+31 = 40) +%%beginchar (35, 14.398u#, 17.497u#, 0.000u#); +beginchar (40, 14.398u#+side#, 17.497u#, 0.000u#); + "Y4"; + z35\0\0s = (5.967u,8.913u); z35\0\0c1 = (5.303u,9.656u); + z35\0\0c2 = (2.672u,11.573u); z35\0\0 = (2.510u,12.070u); + z35\0\1c1 = (2.021u,13.572u); z35\0\1c2 = (4.793u,15.149u); + z35\0\1 = (3.663u,16.410u); z35\0\2c1 = (2.677u,17.510u); + z35\0\2c2 = (0.500u,17.430u); z35\0\2 = (0.024u,15.850u); + z35\0\3c1 = (-0.255u,14.922u); z35\0\3c2 = (1.450u,13.797u); + z35\0\3 = (1.564u,12.523u); z35\0\4c1 = (1.658u,11.469u); + z35\0\4c2 = (0.870u,10.940u); z35\0\4 = (0.943u,10.139u); + z35\0\5c1 = (1.027u,9.216u); z35\0\5c2 = (1.623u,8.599u); + z35\0\5 = (1.631u,7.468u); z35\0\6 = (1.631u,0.000u); + z35\0\7 = (2.353u,0.000u); z35\0\8 = (2.353u,8.672u); + z35\0\9c1 = (6.113u,7.741u); z35\0\9c2 = (3.562u,5.101u); + z35\0\9 = (5.107u,3.791u); z35\0\10c1 = (6.209u,2.857u); + z35\0\10c2 = (7.771u,3.611u); z35\0\10 = (7.863u,5.060u); + z35\0\11 = (7.863u,6.986u); z35\0\12c1 = (7.396u,7.242u); + z35\0\12c2 = (7.057u,7.405u); z35\0\12 = (6.834u,7.963u); + z35\0\13c1 = (6.452u,8.917u); z35\0\13c2 = (6.562u,15.074u); + z35\0\13 = (7.145u,15.845u); z35\0\14c1 = (8.676u,17.872u); + z35\0\14c2 = (10.994u,16.229u); z35\0\14 = (11.026u,13.972u); + z35\0\15 = (11.026u,9.154u); z35\0\16 = (8.858u,9.154u); + z35\0\17 = (8.858u,0.241u); z35\0\18 = (14.398u,0.241u); + z35\0\19 = (14.398u,9.154u); z35\0\20 = (11.749u,9.154u); + z35\0\21c1 = (11.749u,10.603u); z35\0\21c2 = (11.945u,14.774u); + z35\0\21 = (11.453u,15.890u); z35\0\22c1 = (10.319u,18.465u); + z35\0\22c2 = (6.017u,18.064u); z35\0\22 = (5.967u,13.972u); + z35\1\0s = (2.113u,16.863u); z35\1\0 = (2.113u,15.659u); + z35\2\0s = (0.908u,15.900u); z35\2\0 = (1.390u,14.936u); + z35\3\0s = (3.558u,15.900u); z35\3\0 = (2.835u,15.177u); + z35\4\0s = (2.835u,15.177u); z35\5\0s = (1.631u,14.936u); + z35\5\0 = (2.353u,13.972u); z35\6\0s = (2.594u,14.695u); + z35\7\0s = (5.967u,7.227u); z35\7\0c1 = (4.911u,7.791u); + z35\7\0c2 = (2.555u,9.440u); z35\7\0 = (2.353u,10.600u); + z35\7\1c1 = (4.350u,10.181u); z35\7\1c2 = (5.197u,9.001u); + z35\8\0s = (13.676u,8.431u); z35\8\0 = (13.676u,0.964u); + z35\8\1 = (9.581u,0.964u); z35\8\2 = (9.581u,8.431u); + z35\9\0s = (11.529u,7.761u); z35\9\0c1 = (9.905u,7.161u); + z35\9\0c2 = (10.857u,5.565u); z35\9\0 = (11.955u,5.940u); + z35\9\1c1 = (13.043u,6.311u); z35\9\1c2 = (12.777u,7.618u); + z35\10\0s = (12.230u,6.263u); z35\10\0 = (11.026u,6.504u); + z35\10\1c1 = (11.610u,7.490u); z35\10\1c2 = (12.043u,7.341u); + z35\11\0s = (6.931u,6.467u); z35\11\0 = (7.177u,5.303u); + z35\11\1c1 = (7.355u,2.183u); z35\11\1c2 = (3.337u,5.642u); + z35\11\1 = (6.002u,6.467u); z35\11\2c1 = (6.294u,6.515u); + z35\11\2c2 = (6.629u,6.494u); z35\12\0s = (11.320u,4.626u); + z35\12\0c1 = (9.933u,3.665u); z35\12\0c2 = (11.082u,2.340u); + z35\12\0 = (12.135u,2.792u); z35\12\1c1 = (13.085u,3.201u); + z35\12\1c2 = (12.896u,4.793u); + fill_or_unfill z35\0\0s + ..controls z35\0\0c1 and z35\0\0c2..z35\0\0 + ..controls z35\0\1c1 and z35\0\1c2..z35\0\1 + ..controls z35\0\2c1 and z35\0\2c2..z35\0\2 + ..controls z35\0\3c1 and z35\0\3c2..z35\0\3 + ..controls z35\0\4c1 and z35\0\4c2..z35\0\4 + ..controls z35\0\5c1 and z35\0\5c2..z35\0\5 + --z35\0\6 --z35\0\7 --z35\0\8 + ..controls z35\0\9c1 and z35\0\9c2..z35\0\9 + ..controls z35\0\10c1 and z35\0\10c2..z35\0\10 + --z35\0\11 + ..controls z35\0\12c1 and z35\0\12c2..z35\0\12 + ..controls z35\0\13c1 and z35\0\13c2..z35\0\13 + ..controls z35\0\14c1 and z35\0\14c2..z35\0\14 + --z35\0\15 --z35\0\16 --z35\0\17 --z35\0\18 --z35\0\19 + --z35\0\20 + ..controls z35\0\21c1 and z35\0\21c2..z35\0\21 + ..controls z35\0\22c1 and z35\0\22c2..z35\0\22 + --cycle; + fill_or_unfill z35\1\0s + --z35\1\0 --cycle; + fill_or_unfill z35\2\0s + --z35\2\0 --cycle; + fill_or_unfill z35\3\0s + --z35\3\0 --cycle; + fill_or_unfill z35\4\0s + --cycle; + fill_or_unfill z35\5\0s + --z35\5\0 --cycle; + fill_or_unfill z35\6\0s + --cycle; + fill_or_unfill z35\7\0s + ..controls z35\7\0c1 and z35\7\0c2..z35\7\0 + ..controls z35\7\1c1 and z35\7\1c2..cycle; + fill_or_unfill z35\8\0s + --z35\8\0 --z35\8\1 --z35\8\2 --cycle; + fill_or_unfill z35\9\0s + ..controls z35\9\0c1 and z35\9\0c2..z35\9\0 + ..controls z35\9\1c1 and z35\9\1c2..cycle; + fill_or_unfill z35\10\0s + --z35\10\0 + ..controls z35\10\1c1 and z35\10\1c2..cycle; + fill_or_unfill z35\11\0s + --z35\11\0 + ..controls z35\11\1c1 and z35\11\1c2..z35\11\1 + ..controls z35\11\2c1 and z35\11\2c2..cycle; + fill_or_unfill z35\12\0s + ..controls z35\12\0c1 and z35\12\0c2..z35\12\0 + ..controls z35\12\1c1 and z35\12\1c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Z2} +% The sign \textit{Z2}. Ideograph for plural (3 short vertical lines). +% \begin{macrocode} + +%% Z2: plural (3 short vertical lines). +%% (code as Omega(10) 10+31 = 41) +%%beginchar (33, 17.345u#, 5.300u#, 0.000u#); +beginchar (41, 17.345u#+side#, 5.300u#, 0.000u#); + "Z2"; + z33\0\0s = (0.000u,5.300u); z33\0\0 = (0.000u,0.000u); + z33\0\1 = (0.963u,0.000u); z33\0\2 = (0.963u,5.300u); + z33\1\0s = (8.191u,5.300u); z33\1\0 = (8.191u,0.000u); + z33\1\1 = (9.154u,0.000u); z33\1\2 = (9.154u,5.300u); + z33\2\0s = (16.381u,5.300u); z33\2\0 = (16.381u,0.000u); + z33\2\1 = (17.345u,0.000u); z33\2\2 = (17.345u,5.300u); + fill_or_unfill z33\0\0s + --z33\0\0 --z33\0\1 --z33\0\2 --cycle; + fill_or_unfill z33\1\0s + --z33\1\0 --z33\1\1 --z33\1\2 --cycle; + fill_or_unfill z33\2\0s + --z33\2\0 --z33\2\1 --z33\2\2 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% \begin{routine}{Z4} +% The sign \textit{Z4}. Ideograph for dual (2 short sloping lines). +% \begin{macrocode} + +%% Z4: dual (2 short sloping lines). +%% (code as ff(11) 11+31 = 42) +%%beginchar (37, 7.361u#, 6.369u#, 0.000u#); +beginchar (42, 7.361u#+side#, 6.369u#, 0.000u#); + "Z4"; + z37\0\0s = (2.714u,5.848u); z37\0\0 = (6.614u,0.246u); + z37\0\1 = (7.361u,0.766u); z37\0\2 = (3.461u,6.369u); + z37\1\0s = (0.000u,5.602u); z37\1\0 = (3.901u,0.000u); + z37\1\1 = (4.648u,0.520u); z37\1\2 = (0.747u,6.123u); + fill_or_unfill z37\0\0s + --z37\0\0 --z37\0\1 --z37\0\2 --cycle; + fill_or_unfill z37\1\0s + --z37\1\0 --z37\1\1 --z37\1\2 --cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{C11} +% The sign \textit{C11}. A kneeling man with upraised arms, +% the numeral 1,000,000. +% \begin{macrocode} + +%% C11: numeral 1,000,000 (man kneeling with upraised arms) +%% (code as 7(55) 55+31 = 86) +%%beginchar (42, 13.972u#, 17.135u#, 0.000u#); +beginchar (86, 13.972u#+side#, 17.135u#, 0.000u#); + "C11"; + z42\0\0s = (4.782u,10.334u); z42\0\0c1 = (4.097u,10.541u); + z42\0\0c2 = (2.976u,10.724u); z42\0\0 = (2.361u,10.891u); + z42\0\1c1 = (1.865u,12.176u); z42\0\1c2 = (1.573u,14.132u); + z42\0\1 = (1.193u,14.570u); z42\0\2c1 = (1.135u,16.030u); + z42\0\2c2 = (0.843u,16.352u); z42\0\2 = (0.346u,16.322u); + z42\0\3c1 = (0.250u,15.022u); z42\0\3c2 = (0.084u,13.869u); + z42\0\3 = (0.843u,13.782u); z42\0\4c1 = (1.223u,9.606u); + z42\0\4c2 = (1.719u,9.547u); z42\0\4 = (4.063u,9.343u); + z42\0\5c1 = (3.939u,9.191u); z42\0\5c2 = (3.526u,8.797u); + z42\0\5 = (3.732u,8.690u); z42\0\6c1 = (3.862u,8.623u); + z42\0\6c2 = (4.008u,8.570u); z42\0\6 = (4.423u,8.950u); + z42\0\7 = (4.613u,9.070u); z42\0\8c1 = (6.038u,8.809u); + z42\0\8c2 = (5.781u,5.554u); z42\0\8 = (5.781u,4.793u); + z42\0\9c1 = (4.576u,5.262u); z42\0\9c2 = (3.793u,6.962u); + z42\0\9 = (2.594u,7.101u); z42\0\10c1 = (0.231u,7.376u); + z42\0\10c2 = (2.730u,3.007u); z42\0\10 = (1.776u,1.571u); + z42\0\11c1 = (1.366u,0.953u); z42\0\11c2 = (0.638u,0.768u); + z42\0\11 = (0.000u,0.457u); z42\0\12 = (0.987u,0.000u); + z42\0\13 = (3.855u,0.215u); z42\0\14 = (7.505u,0.413u); + z42\0\15 = (10.136u,0.038u); z42\0\16 = (11.081u,0.216u); + z42\0\17c1 = (9.787u,1.895u); z42\0\17c2 = (8.919u,0.240u); + z42\0\17 = (8.913u,3.348u); z42\0\18c1 = (8.911u,4.625u); + z42\0\18c2 = (8.738u,7.574u); z42\0\18 = (9.424u,8.618u); + z42\0\19c1 = (10.114u,9.668u); z42\0\19c2 = (12.268u,8.839u); + z42\0\19 = (12.861u,10.241u); z42\0\20c1 = (13.196u,11.033u); + z42\0\20c2 = (13.144u,12.068u); z42\0\20 = (13.326u,12.907u); + z42\0\21c1 = (13.548u,13.929u); z42\0\21c2 = (13.946u,14.508u); + z42\0\21 = (13.972u,15.634u); z42\0\22c1 = (13.036u,15.288u); + z42\0\22c2 = (12.297u,14.919u); z42\0\22 = (12.398u,13.799u); + z42\0\23c1 = (12.660u,10.879u); z42\0\23c2 = (11.719u,9.930u); + z42\0\23 = (8.913u,10.334u); z42\0\24c1 = (8.913u,11.100u); + z42\0\24c2 = (9.016u,12.542u); z42\0\24 = (8.646u,13.198u); + z42\0\25c1 = (8.368u,13.691u); z42\0\25c2 = (8.038u,13.911u); + z42\0\25 = (7.552u,14.192u); z42\0\26 = (6.347u,14.327u); + z42\0\27c1 = (5.786u,14.054u); z42\0\27c2 = (5.410u,13.676u); + z42\0\27 = (5.248u,12.970u); z42\0\28c1 = (4.956u,12.723u); + z42\0\28c2 = (4.742u,12.306u); z42\0\28 = (4.641u,11.800u); + z42\0\29c1 = (4.877u,11.653u); z42\0\29c2 = (5.001u,11.473u); + z42\0\29 = (4.978u,11.304u); z42\0\30c1 = (4.843u,11.057u); + z42\0\30c2 = (5.271u,10.741u); z42\1\0s = (7.217u,9.227u); + z42\1\0c1 = (7.466u,11.921u); z42\1\0c2 = (7.685u,12.072u); + z42\1\0 = (5.870u,13.442u); z42\1\1c1 = (6.864u,14.647u); + z42\1\1c2 = (8.310u,13.442u); z42\1\1 = (8.482u,12.224u); + z42\1\2c1 = (8.542u,11.348u); z42\1\2c2 = (8.558u,10.944u); + z42\1\2 = (8.493u,9.899u); z42\2\0s = (5.589u,13.097u); + z42\2\0c1 = (6.194u,12.880u); z42\2\0c2 = (6.757u,12.115u); + z42\2\0 = (6.667u,11.122u); z42\2\1c1 = (6.071u,10.933u); + z42\2\1c2 = (5.860u,10.522u); z42\2\1 = (5.270u,10.851u); + z42\2\2c1 = (5.192u,11.288u); z42\2\2c2 = (5.326u,11.897u); + z42\2\2 = (4.917u,11.910u); z42\2\3c1 = (4.891u,12.411u); + z42\2\3c2 = (5.550u,12.820u); z42\3\0s = (6.745u,10.093u); + z42\3\0 = (6.745u,8.407u); z42\3\1 = (8.913u,9.611u); + z42\3\2c1 = (8.870u,7.689u); z42\3\2c2 = (8.486u,5.044u); + z42\3\2 = (6.459u,4.311u); z42\3\3 = (6.459u,7.395u); + z42\3\4 = (5.781u,9.852u); z42\4\0s = (5.234u,4.244u); + z42\4\0 = (2.983u,2.798u); z42\4\1c1 = (1.537u,6.856u); + z42\4\1c2 = (2.288u,7.802u); z42\5\0s = (8.191u,4.552u); + z42\5\0c1 = (9.327u,1.016u); z42\5\0c2 = (5.690u,0.481u); + z42\5\0 = (3.789u,0.964u); z42\5\1 = (3.132u,0.698u); + z42\5\2 = (2.168u,0.939u); z42\6\0s = (6.826u,14.092u); + z42\6\0 = (7.286u,13.863u); z42\6\1 = (7.286u,16.392u); + z42\6\2c1 = (7.286u,16.977u); z42\6\2c2 = (7.946u,16.448u); + z42\6\2 = (7.961u,16.887u); z42\6\3c1 = (7.970u,17.138u); + z42\6\3c2 = (7.578u,17.135u); z42\6\3 = (7.353u,17.135u); + z42\6\4c1 = (6.813u,17.135u); z42\6\4c2 = (6.846u,16.484u); + z42\6\4 = (6.824u,16.200u); z42\6\5c1 = (6.835u,15.806u); + z42\6\5c2 = (6.210u,15.783u); z42\6\5 = (6.205u,15.412u); + z42\6\6c1 = (6.199u,15.063u); z42\6\6c2 = (6.779u,14.984u); + z42\6\6 = (6.835u,14.319u); z42\7\0s = (6.166u,10.555u); + z42\7\0 = (6.322u,10.243u); z42\7\1 = (5.372u,10.175u); + z42\7\2 = (5.614u,10.383u); z42\8\0s = (5.419u,12.331u); + z42\8\0c1 = (5.653u,12.255u); z42\8\0c2 = (5.838u,12.271u); + z42\8\0 = (6.167u,12.321u); z42\8\1c1 = (5.967u,12.545u); + z42\8\1c2 = (5.439u,12.573u); + fill_or_unfill z42\0\0s + ..controls z42\0\0c1 and z42\0\0c2..z42\0\0 + ..controls z42\0\1c1 and z42\0\1c2..z42\0\1 + ..controls z42\0\2c1 and z42\0\2c2..z42\0\2 + ..controls z42\0\3c1 and z42\0\3c2..z42\0\3 + ..controls z42\0\4c1 and z42\0\4c2..z42\0\4 + ..controls z42\0\5c1 and z42\0\5c2..z42\0\5 + ..controls z42\0\6c1 and z42\0\6c2..z42\0\6 + --z42\0\7 + ..controls z42\0\8c1 and z42\0\8c2..z42\0\8 + ..controls z42\0\9c1 and z42\0\9c2..z42\0\9 + ..controls z42\0\10c1 and z42\0\10c2..z42\0\10 + ..controls z42\0\11c1 and z42\0\11c2..z42\0\11 + --z42\0\12 --z42\0\13 --z42\0\14 --z42\0\15 --z42\0\16 + ..controls z42\0\17c1 and z42\0\17c2..z42\0\17 + ..controls z42\0\18c1 and z42\0\18c2..z42\0\18 + ..controls z42\0\19c1 and z42\0\19c2..z42\0\19 + ..controls z42\0\20c1 and z42\0\20c2..z42\0\20 + ..controls z42\0\21c1 and z42\0\21c2..z42\0\21 + ..controls z42\0\22c1 and z42\0\22c2..z42\0\22 + ..controls z42\0\23c1 and z42\0\23c2..z42\0\23 + ..controls z42\0\24c1 and z42\0\24c2..z42\0\24 + ..controls z42\0\25c1 and z42\0\25c2..z42\0\25 + --z42\0\26 + ..controls z42\0\27c1 and z42\0\27c2..z42\0\27 + ..controls z42\0\28c1 and z42\0\28c2..z42\0\28 + ..controls z42\0\29c1 and z42\0\29c2..z42\0\29 + ..controls z42\0\30c1 and z42\0\30c2..cycle; + fill_or_unfill z42\1\0s + ..controls z42\1\0c1 and z42\1\0c2..z42\1\0 + ..controls z42\1\1c1 and z42\1\1c2..z42\1\1 + ..controls z42\1\2c1 and z42\1\2c2..z42\1\2 + --cycle; + fill_or_unfill z42\2\0s + ..controls z42\2\0c1 and z42\2\0c2..z42\2\0 + ..controls z42\2\1c1 and z42\2\1c2..z42\2\1 + ..controls z42\2\2c1 and z42\2\2c2..z42\2\2 + ..controls z42\2\3c1 and z42\2\3c2..cycle; + fill_or_unfill z42\3\0s + --z42\3\0 --z42\3\1 + ..controls z42\3\2c1 and z42\3\2c2..z42\3\2 + --z42\3\3 --z42\3\4 --cycle; + fill_or_unfill z42\4\0s + --z42\4\0 + ..controls z42\4\1c1 and z42\4\1c2..cycle; + fill_or_unfill z42\5\0s + ..controls z42\5\0c1 and z42\5\0c2..z42\5\0 + --z42\5\1 --z42\5\2 --cycle; + fill_or_unfill z42\6\0s + --z42\6\0 --z42\6\1 + ..controls z42\6\2c1 and z42\6\2c2..z42\6\2 + ..controls z42\6\3c1 and z42\6\3c2..z42\6\3 + ..controls z42\6\4c1 and z42\6\4c2..z42\6\4 + ..controls z42\6\5c1 and z42\6\5c2..z42\6\5 + ..controls z42\6\6c1 and z42\6\6c2..z42\6\6 + --cycle; + fill_or_unfill z42\7\0s + --z42\7\0 --z42\7\1 --z42\7\2 --cycle; + fill_or_unfill z42\8\0s + ..controls z42\8\0c1 and z42\8\0c2..z42\8\0 + ..controls z42\8\1c1 and z42\8\1c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{D50} +% The sign \textit{D50}. Looks like a ship's ventilator, +% the numeral 10,000. +% \begin{macrocode} + +%% D50: numeral 10,000 (looks like a ship's ventilator) +%% (code as 5(53) 53+31 = 84) +%%beginchar (84, 3.582u#, 17.331u#, 0.000u#); +beginchar (84, 3.582u#+side#, 17.331u#, 0.000u#); + "D50"; + z84\0\0s = (0.001u,0.014u); z84\0\0c1 = (1.814u,0.015u); + z84\0\0c2 = (2.849u,-0.293u); z84\0\0 = (2.891u,1.942u); + z84\0\1 = (3.582u,9.629u); z84\0\2c1 = (3.569u,11.174u); + z84\0\2c2 = (2.697u,12.734u); z84\0\2 = (2.853u,14.227u); + z84\0\3c1 = (2.955u,15.213u); z84\0\3c2 = (4.145u,17.753u); + z84\0\3 = (1.928u,17.279u); z84\0\4c1 = (0.020u,16.871u); + z84\0\4c2 = (-0.106u,14.324u); z84\0\4 = (0.041u,12.781u); + z84\0\5 = (0.482u,8.687u); z84\1\0s = (0.964u,14.709u); + z84\1\0c1 = (3.684u,12.042u); z84\1\0c2 = (2.421u,8.134u); + z84\1\0 = (2.190u,4.832u); z84\1\1c1 = (2.134u,4.027u); + z84\1\1c2 = (2.301u,1.467u); z84\1\1 = (1.560u,1.018u); + z84\1\2c1 = (0.509u,0.382u); z84\1\2c2 = (0.747u,3.008u); + z84\1\2 = (0.791u,3.387u); z84\1\3 = (1.205u,8.446u); + z84\1\4c1 = (1.202u,10.426u); z84\1\4c2 = (0.223u,12.840u); + fill_or_unfill z84\0\0s + ..controls z84\0\0c1 and z84\0\0c2..z84\0\0 + --z84\0\1 + ..controls z84\0\2c1 and z84\0\2c2..z84\0\2 + ..controls z84\0\3c1 and z84\0\3c2..z84\0\3 + ..controls z84\0\4c1 and z84\0\4c2..z84\0\4 + --z84\0\5 --cycle; + fill_or_unfill z84\1\0s + ..controls z84\1\0c1 and z84\1\0c2..z84\1\0 + ..controls z84\1\1c1 and z84\1\1c2..z84\1\1 + ..controls z84\1\2c1 and z84\1\2c2..z84\1\2 + --z84\1\3 + ..controls z84\1\4c1 and z84\1\4c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{I8} +% The sign \textit{I8}. A mongoose(?), +% the numeral 100,000. +% \begin{macrocode} + +%% I8: numeral 100,000 (a mongoose) +%% (code as 6(54) 54+31 = 85) +%%beginchar (40, 13.204u#, 17.105u#, 0.000u#); +beginchar (85, 13.204u#+side#, 17.105u#, 0.000u#); + "I8"; + z40\0\0s = (12.765u,0.000u); z40\0\0c1 = (14.104u,2.910u); + z40\0\0c2 = (12.145u,9.931u); z40\0\0 = (10.043u,12.276u); + z40\0\1c1 = (8.801u,13.662u); z40\0\1c2 = (7.244u,14.308u); + z40\0\1 = (5.783u,15.365u); z40\0\2c1 = (4.056u,16.613u); + z40\0\2c2 = (2.415u,18.220u); z40\0\2 = (0.335u,16.021u); + z40\0\3c1 = (-0.138u,15.534u); z40\0\3c2 = (-0.092u,15.078u); + z40\0\3 = (0.335u,14.600u); z40\0\4c1 = (1.074u,13.806u); + z40\0\4c2 = (2.032u,13.533u); z40\0\4 = (2.627u,12.523u); + z40\0\5c1 = (3.616u,10.842u); z40\0\5c2 = (3.654u,8.485u); + z40\0\5 = (5.441u,7.207u); z40\0\6c1 = (6.118u,6.723u); + z40\0\6c2 = (8.023u,7.001u); z40\0\6 = (8.911u,6.985u); + z40\0\7c1 = (12.345u,6.922u); z40\0\7c2 = (10.867u,1.899u); + z40\1\0s = (12.043u,5.300u); z40\1\0c1 = (11.170u,6.504u); + z40\1\0c2 = (10.873u,8.449u); z40\1\0 = (9.152u,8.672u); + z40\1\1 = (9.874u,7.949u); z40\1\2c1 = (8.611u,7.299u); + z40\1\2c2 = (7.162u,8.231u); z40\1\2 = (7.069u,9.637u); + z40\1\3c1 = (7.033u,10.173u); z40\1\3c2 = (7.307u,10.810u); + z40\1\3 = (7.465u,11.322u); z40\1\4c1 = (6.073u,10.193u); + z40\1\4c2 = (6.377u,9.797u); z40\1\4 = (6.502u,8.190u); + z40\1\5 = (5.150u,8.748u); z40\1\6 = (2.406u,15.176u); + z40\1\7 = (1.443u,15.417u); z40\1\8 = (1.443u,15.899u); + z40\1\9c1 = (3.915u,16.915u); z40\1\9c2 = (3.656u,15.966u); + z40\1\9 = (5.538u,14.606u); z40\1\10c1 = (9.328u,11.866u); + z40\1\10c2 = (11.801u,10.481u); + fill_or_unfill z40\0\0s + ..controls z40\0\0c1 and z40\0\0c2..z40\0\0 + ..controls z40\0\1c1 and z40\0\1c2..z40\0\1 + ..controls z40\0\2c1 and z40\0\2c2..z40\0\2 + ..controls z40\0\3c1 and z40\0\3c2..z40\0\3 + ..controls z40\0\4c1 and z40\0\4c2..z40\0\4 + ..controls z40\0\5c1 and z40\0\5c2..z40\0\5 + ..controls z40\0\6c1 and z40\0\6c2..z40\0\6 + ..controls z40\0\7c1 and z40\0\7c2..cycle; + fill_or_unfill z40\1\0s + ..controls z40\1\0c1 and z40\1\0c2..z40\1\0 + --z40\1\1 + ..controls z40\1\2c1 and z40\1\2c2..z40\1\2 + ..controls z40\1\3c1 and z40\1\3c2..z40\1\3 + ..controls z40\1\4c1 and z40\1\4c2..z40\1\4 + --z40\1\5 --z40\1\6 --z40\1\7 --z40\1\8 + ..controls z40\1\9c1 and z40\1\9c2..z40\1\9 + ..controls z40\1\10c1 and z40\1\10c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{M12} +% The sign \textit{M12}. A lotus, +% the numeral 1,000. +% \begin{macrocode} + +%% M12: numeral 1,000 (a lotus) +%% (code as 4(52) 52+31 = 83) +%%beginchar (43, 5.781u#, 17.752u#, 0.000u#); +beginchar (83, 5.781u#+side#, 17.752u#, 0.000u#); + "M12"; + z43\0\0s = (2.650u,13.731u); z43\0\0 = (2.650u,3.372u); + z43\0\1 = (0.482u,4.095u); z43\0\2 = (1.686u,3.132u); + z43\0\3 = (0.000u,0.000u); z43\0\4 = (5.781u,0.000u); + z43\0\5 = (4.095u,3.132u); z43\0\6 = (5.300u,4.336u); + z43\0\7 = (3.613u,3.613u); z43\0\8 = (3.613u,13.972u); + z43\0\9 = (5.300u,14.454u); z43\0\10 = (5.300u,14.936u); + z43\0\11 = (3.854u,15.659u); z43\0\12 = (3.854u,16.140u); + z43\0\13 = (5.300u,17.345u); z43\0\14c1 = (-0.747u,19.305u); + z43\0\14c2 = (-1.505u,14.175u); z43\1\0s = (4.095u,17.104u); + z43\1\0 = (2.891u,16.140u); z43\1\1 = (4.095u,14.454u); + z43\1\2c1 = (-0.807u,13.915u); z43\1\2c2 = (0.196u,18.040u); + z43\2\0s = (4.818u,0.964u); z43\2\0 = (0.963u,0.964u); + z43\2\1c1 = (1.913u,2.745u); z43\2\1c2 = (3.883u,2.824u); + fill_or_unfill z43\0\0s + --z43\0\0 --z43\0\1 --z43\0\2 --z43\0\3 --z43\0\4 + --z43\0\5 --z43\0\6 --z43\0\7 --z43\0\8 --z43\0\9 + --z43\0\10 --z43\0\11 --z43\0\12 --z43\0\13 + ..controls z43\0\14c1 and z43\0\14c2..cycle; + fill_or_unfill z43\1\0s + --z43\1\0 --z43\1\1 + ..controls z43\1\2c1 and z43\1\2c2..cycle; + fill_or_unfill z43\2\0s + --z43\2\0 + ..controls z43\2\1c1 and z43\2\1c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{V1} +% The sign \textit{V1}. A coil of rope, +% the numeral 100. +% \begin{macrocode} + +%% V1: numeral 100 (a coil of rope) +%% (code as 3(51) 51+31 = 82) +%%beginchar (32, 4.415u#, 9.110u#, 0.000u#); +beginchar (82, 4.415u#+side#, 9.110u#, 0.000u#); + "V1"; + z32\0\0s = (3.557u,0.000u); z32\0\0 = (4.040u,0.000u); + z32\0\1 = (4.281u,0.241u); z32\0\2c1 = (3.562u,3.301u); + z32\0\2c2 = (1.219u,4.407u); z32\0\2 = (0.843u,6.264u); + z32\0\3c1 = (0.443u,8.237u); z32\0\3c2 = (2.933u,8.981u); + z32\0\3 = (3.462u,7.691u); z32\0\4c1 = (3.838u,6.715u); + z32\0\4c2 = (2.243u,5.499u); z32\0\4 = (1.872u,7.691u); + z32\0\5 = (1.390u,7.691u); z32\0\6c1 = (1.496u,4.682u); + z32\0\6c2 = (4.225u,5.255u); z32\0\6 = (4.415u,6.990u); + z32\0\7c1 = (4.702u,9.639u); z32\0\7c2 = (0.876u,9.825u); + z32\0\7 = (0.117u,7.464u); z32\0\8c1 = (-0.544u,5.410u); + z32\0\8c2 = (1.748u,3.455u); z32\0\8 = (2.701u,1.927u); + z32\0\9c1 = (3.079u,1.321u); z32\0\9c2 = (3.300u,0.661u); + fill_or_unfill z32\0\0s + --z32\0\0 --z32\0\1 + ..controls z32\0\2c1 and z32\0\2c2..z32\0\2 + ..controls z32\0\3c1 and z32\0\3c2..z32\0\3 + ..controls z32\0\4c1 and z32\0\4c2..z32\0\4 + --z32\0\5 + ..controls z32\0\6c1 and z32\0\6c2..z32\0\6 + ..controls z32\0\7c1 and z32\0\7c2..z32\0\7 + ..controls z32\0\8c1 and z32\0\8c2..z32\0\8 + ..controls z32\0\9c1 and z32\0\9c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{V20} +% The sign \textit{V20}. A cattle hobble, +% the numeral 10. +% \begin{macrocode} + +%% V20: numeral 10 (a cattle hobble) +%% (code as 2(50) 50+31 = 81) +%%beginchar (51, 5.830u#, 6.186u#, 0.000u#); +beginchar (81, 5.830u#+side#, 6.186u#, 0.000u#); + "V20"; + z51\0\0s = (0.025u,0.000u); z51\0\0 = (0.748u,0.000u); + z51\0\1c1 = (0.748u,0.945u); z51\0\1c2 = (0.638u,2.776u); + z51\0\1 = (0.904u,3.613u); z51\0\2c1 = (1.554u,5.660u); + z51\0\2c2 = (4.001u,5.863u); z51\0\2 = (4.841u,3.851u); + z51\0\3c1 = (5.211u,2.967u); z51\0\3c2 = (5.084u,1.017u); + z51\0\3 = (5.084u,0.000u); z51\0\4 = (5.806u,0.000u); + z51\0\5c1 = (5.806u,1.207u); z51\0\5c2 = (5.955u,3.257u); + z51\0\5 = (5.530u,4.337u); z51\0\6c1 = (4.542u,6.847u); + z51\0\6c2 = (1.277u,6.815u); z51\0\6 = (0.301u,4.337u); + z51\0\7c1 = (-0.124u,3.258u); z51\0\7c2 = (0.025u,1.206u); + fill_or_unfill z51\0\0s + --z51\0\0 + ..controls z51\0\1c1 and z51\0\1c2..z51\0\1 + ..controls z51\0\2c1 and z51\0\2c2..z51\0\2 + ..controls z51\0\3c1 and z51\0\3c2..z51\0\3 + --z51\0\4 + ..controls z51\0\5c1 and z51\0\5c2..z51\0\5 + ..controls z51\0\6c1 and z51\0\6c2..z51\0\6 + ..controls z51\0\7c1 and z51\0\7c2..cycle; +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% The next bit is for mirror images of the hieroglyphs (not supported +% in this package), and finishing off. +% \begin{macrocode} +def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef; +def depart= 128 -31; enddef; +%% repeat the above list of characters now + +bye. + +% \end{macrocode} +% +% +% The end of this file +% \begin{macrocode} +%</maj> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\ProvidesFile{ot1pmhg.fd}[2000/08/19 v1.0 PM Hieroglyphic font definitions] +\DeclareFontFamily{OT1}{pmhg}{} + \DeclareFontShape{OT1}{pmhg}{m}{n}{ <-> pmhg }{} + \DeclareFontShape{OT1}{pmhg}{bx}{n}{ <-> sub pmhg/m/n }{} + \DeclareFontShape{OT1}{pmhg}{b}{n}{ <-> sub pmhg/m/n }{} + \DeclareFontShape{OT1}{pmhg}{m}{sl}{ <-> sub pmhg/m/n }{} + \DeclareFontShape{OT1}{pmhg}{m}{it}{ <-> sub pmhg/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\ProvidesFile{t1pmhg.fd}[2000/08/19 v1.0 PM Hieroglyphic font definitions] +\DeclareFontFamily{T1}{pmhg}{} + \DeclareFontShape{T1}{pmhg}{m}{n}{ <-> pmhg }{} + \DeclareFontShape{T1}{pmhg}{bx}{n}{ <-> sub pmhg/m/n }{} + \DeclareFontShape{T1}{pmhg}{b}{n}{ <-> sub pmhg/m/n }{} + \DeclareFontShape{T1}{pmhg}{m}{sl}{ <-> sub pmhg/m/n }{} + \DeclareFontShape{T1}{pmhg}{m}{it}{ <-> sub pmhg/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{hieroglf} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{} and the \Lpack{oands} package; the latter for some +% fonts used in the transliteration code. To try and avoid name clashes +% with other packages, each internal command includes the string |c@rt|. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{hieroglf}[2000/09/23 v1.2 package for poor mans hieroglyphs] +\RequirePackage{oands} + +% \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}{\pmhgfamily} +% Selects the Poor Man's Hieroglyphs font family in the T1 encoding if this +% is the document's default encoding, otherwise make it the OT1 encoding. +% \begin{macrocode} +\ifx\Tienc\encodingdefault + \newcommand{\pmhgfamily}{\usefont{T1}{pmhg}{m}{n}} +\else + \newcommand{\pmhgfamily}{\usefont{OT1}{pmhg}{m}{n}} +\fi + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textpmhg} +% Text command for the Poor Man's Hieroglyphs font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textpmhg}{\pmhgfamily} + +% \end{macrocode} +% \end{macro} +% +% The character codes based on letter series. These are in the form +% |\HXr| where |X| is the series and |r| is the lowercase roman numeral +% of the number in the series. +% +% The A series. +% \begin{macrocode} +\chardef\HAi='007 % A1 +\chardef\HAii=`I % A2 +\chardef\HAxxviii=`Y % A28 +% \end{macrocode} +% +% The C series. +% \begin{macrocode} +\chardef\HCxi=`7 % C11 +% \end{macrocode} +% +% The D series +% \begin{macrocode} +\chardef\HDi=`Q % D1 +\chardef\HDii=`q % D2 +\chardef\HDiv=`e % D4 +\chardef\HDxxi=`r % D21 +\chardef\HDxxxvi=`A % D36 +\chardef\HDxlvi=`d % D46 +\chardef\HDxlvii=`P % D47 +\chardef\HDl=`5 % D50 +\chardef\HDliv=`L % D54 +\chardef\HDlviii=`b % D58 +% \end{macrocode} +% +% The E series +% \begin{macrocode} +\chardef\HExxiii=`l % E23 +% \end{macrocode} +% +% The F series +% \begin{macrocode} +\chardef\HFi=`X % F1 +\chardef\HFxx='010 % F20 +\chardef\HFxxxi='001 % F36 +\chardef\HFxxxiv=`G % F34 +\chardef\HFxl=`Z % F40 +% \end{macrocode} +% +% The G series +% \begin{macrocode} +\chardef\HGi=`a % G1 +\chardef\HGxvii=`m % G17 +\chardef\HGxxvi='002 % G26 +\chardef\HGxxvis='003 % G26* +\chardef\HGxxvii='004 % G27 +\chardef\HGxxviii='005 % G28 +\chardef\HGxxxvi=`R % G36 +\chardef\HGxliii=`w % G43 +% \end{macrocode} +% +% The H series +% \begin{macrocode} +\chardef\HHviii=`O % H8 +% \end{macrocode} +% +% The I series +% \begin{macrocode} +\chardef\HIviii=`6 % I8 +\chardef\HIix=`f % I9 +\chardef\HIx=`D % I10 +% \end{macrocode} +% +% The K series +% \begin{macrocode} +\chardef\HKi=`F % K1 +% \end{macrocode} +% +% The M series +% \begin{macrocode} +\chardef\HMiii=`N % M3 +\chardef\HMviii=`E % M8 +\chardef\HMxii=`4 % M12 +\chardef\HMxvii=`i % M17 +% \end{macrocode} +% +% The N series +% \begin{macrocode} +\chardef\HNxxix=`K % N29 +\chardef\HNxxxv=`n % N35 +\chardef\HNxxxvii=`z % N37 +% \end{macrocode} +% +% The O series +% \begin{macrocode} +\chardef\HOi=`j % O1 +\chardef\HOiv=`h % O4 +\chardef\HOxxxiv=`S % O34 +% \end{macrocode} +% +% The P and Q and R series +% \begin{macrocode} +\chardef\HQiii=`p % Q3 +\chardef\HRvii=`B % R7 +% \end{macrocode} +% +% The S series +% \begin{macrocode} +\chardef\HSxii=`v % S12 +\chardef\HSxxix=`s % S29 +\chardef\HSxxxix=`? % S39 +\chardef\HSxli=`c % S41 +% \end{macrocode} +% +% The T and U series +% \begin{macrocode} +\chardef\HTiii=`u % T3 +\chardef\HTxiv=`/ % T14 +\chardef\HUxxxvi=`J % U36 +% \end{macrocode} +% +% The V series +% \begin{macrocode} +\chardef\HVi=`3 % V1 +\chardef\HViv=`o % V4 +\chardef\HVxiii=`T % V13 +\chardef\HVxx=`2 % V20 +\chardef\HVxxiv=`U % V24 +\chardef\HVxxviii=`H % V28 +\chardef\HVxxxi=`k % V31 +% \end{macrocode} +% +% The W, X, Y and Z series +% \begin{macrocode} +\chardef\HWxi=`g % W11 +\chardef\HXi=`t % X1 +\chardef\HYiV=`V % Y1v +\chardef\HYiv='011 % Y4 +\chardef\HZi=`| % Z1 +\chardef\HZii='012 % Z2 +\chardef\HZiv='013 % Z4 +\chardef\HZvi='006 % Z6 +\chardef\HZvii=`W % Z7 +\chardef\HZxi=`+ % Z11 +% \end{macrocode} +% +% The Aa and PW series +% \begin{macrocode} +\chardef\HAai=`C % Aa1 +\chardef\HAaxii=`M % Aa12 +\chardef\HPWi=`x % PW1 +\chardef\HPWii=`y % PW2 + +% \end{macrocode} +% +% The character codes for signs representing single letters. +% +% First those represented by uppercase letters. +% \begin{macrocode} +\chardef\HA=`A +\chardef\HB=`B +\chardef\HC=`C +\chardef\HD=`D +\chardef\HE=`E +\chardef\HF=`F +\chardef\HG=`G +\chardef\HH=`H +\chardef\HI=`I +\chardef\HJ=`J +\chardef\HK=`K +\chardef\HL=`L +\chardef\HM=`M +\chardef\HN=`N +\chardef\HO=`O +\chardef\HP=`P +\chardef\HQ=`Q +\chardef\HR=`R +\chardef\HS=`S +\chardef\HT=`T +\chardef\HU=`U +\chardef\HV=`V +\chardef\HW=`W +\chardef\HX=`X +\chardef\HY=`Y +\chardef\HZ=`Z +% \end{macrocode} +% +% Those represented by lowercase letters. +% \begin{macrocode} +\chardef\Ha=`a +\chardef\Hb=`b +\chardef\Hc=`c +\chardef\Hd=`d +\chardef\He=`e +\chardef\Hf=`f +\chardef\Hg=`g +\chardef\Hh=`h +\chardef\Hi=`i +\chardef\Hj=`j +\chardef\Hk=`k +\chardef\Hl=`l +\chardef\Hm=`m +\chardef\Hn=`n +\chardef\Hp=`p +\chardef\Ho=`o +\chardef\Hp=`p +\chardef\Hq=`q +\chardef\Hr=`r +\chardef\Hs=`s +\chardef\Ht=`t +\chardef\Hu=`u +\chardef\Hv=`v +\chardef\Hw=`w +\chardef\Hx=`x +\chardef\Hy=`y +\chardef\Hz=`z +% \end{macrocode} +% +% Those represented by symbols. +% \begin{macrocode} +\chardef\Hplus=`+ +\chardef\Hquery=`? +\chardef\Hvbar=`| +\chardef\Hslash=`/ +\chardef\Hms='001 +\chardef\Hibp='002 +\chardef\Hibw='003 +\chardef\Hibs='004 +\chardef\Hibl='005 +\chardef\Hsv='006 +\chardef\Hman='007 +\chardef\Htongue='010 +\chardef\Hscribe='011 +\chardef\Hplural='012 +\chardef\Hdual='013 +\chardef\Hone=`| +\chardef\Hten=`2 +\chardef\Hhundred=`3 +\chardef\Hthousand=`4 +\chardef\HXthousand=`5 +\chardef\HCthousand=`6 +\chardef\Hmillion=`7 + +% \end{macrocode} +% +% Now for the transliterations, for which we need some new accents. +% +% \begin{macro}{\uunder} +% Puts a small `u' under a letter. +% \begin{macrocode} +\DeclareTextCommand{\uunder}{OT1}[1]% + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char21}\vss}\hidewidth}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cedover} +% Puts a `cedilla' over a letter. +% \begin{macrocode} +\DeclareTextCommand{\cedover}{OT1}[1]% + {#1\ifdim\fontdimen\@ne\font>\z@% + \kern-.18em + \else + \kern-.4em + \fi + \raisebox{1.75ex}{\char24}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Hic} +% \begin{macro}{\Hrp} +% \begin{macro}{\Hag} +% |\Hic| typesets a dotless `i' with a `cedilla' over it, with reduced +% spacing afterwards. |\Hrp| typesets a reversed apostrophe with a little +% space before it. |\Hag| typesets a character like a flat-topped 3. +% \begin{macrocode} +\newcommand{\Hic}{\cedover{\i}\ensuremath{\!}} +\newcommand{\Hrp}{\,\textoands{`}} +\newcommand{\Hag}{\textoands{z}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\translitpmhgfont} +% Specifies the font for typesetting transliterations. By default it +% is set to an italic font. +% \begin{macrocode} +\newcommand{\translitpmhgfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\translitpmhg} +% |\translitpmhg{|\meta{char-commands}|}| transliterates pmhg character +% commands. The setup is perfomed by the |\c@rttranslit| macro. +% \begin{macrocode} +\newcommand{\translitpmhg}[1]{{% + \c@rttranslit\translitpmhgfont #1}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rttranslit} +% This macro redefines all the character producing commands for use in +% |\translitpmhg|. There must be no extraneous spaces within this command. +% \begin{macrocode} +\newcommand{\c@rttranslit}{% +% \end{macrocode} +% First, the uppercase commands. +% \begin{macrocode} +\def\HA{\Hrp}% +\def\HB{b}% +\def\HC{\uunder{h}}% +\def\HD{\b{d}}% +\def\HE{\v{s}\Hag}% +\def\HF{}% +\def\HG{\Hic b}% +\def\HH{\d{h}}% +\def\HI{}% +\def\HJ{\d{h}m}% +\def\HK{\d{k}}% +\def\HL{\Hic w}% +\def\HM{m}% +\def\HN{\uunder{h}t}% +\def\HO{\Hag st}% +\def\HP{}% +\def\HQ{tp}% +\def\HR{wr}% +\def\HS{s}% +\def\HT{\b{t}}% +\def\HU{w\b{d}}% +\def\HV{}% +\def\HW{w}% +\def\HX{\b{h}}% +\def\HY{}% +\def\HZ{\textoands{z}w}% +% \end{macrocode} +% Now the lowercase commands. +% \begin{macrocode} +\def\Ha{\Hag}% +\def\Hb{b}% +\def\Hc{\b{d}\Hrp m}% +\def\Hd{d}% +\def\He{\Hic r}% +\def\Hf{f}% +\def\Hg{g}% +\def\Hh{h}% +\def\Hi{\Hic}% +\def\Hj{pr}% +\def\Hk{k}% +\def\Hl{l}% +\def\Hm{m}% +\def\Hn{n}% +\def\Ho{w\Hag}% +\def\Hp{p}% +\def\Hq{\d{h}r}% +\def\Hr{r}% +\def\Hs{s}% +\def\Ht{t}% +\def\Hu{\d{h}\b{d}}% +\def\Hv{nbw}% +\def\Hw{w}% +\def\Hx{}% +\def\Hy{y}% +\def\Hz{\v{s}}% +% \end{macrocode} +% Finally, the analpabetic commands. +% \begin{macrocode} +\def\Hplus{\Hic my}% +\def\Hquery{awt}% +\def\Hslash{\d{k}m\Hag}% +\def\Hvbar{w\Hrp}% +\def\Hms{ms}% +\def\Hibp{\b{d}\d{h}wty}% +\def\Hibw{b\Hag}% +\def\Hibs{}% +\def\Hibl{gm}% +\def\Hsv{}% +\def\Hman{}% +\def\Htongue{ns}% +\def\Hscribe{s\b{h}}% +\def\Hplural{}% +\def\Hdual{}% +\def\Hone{w\Hrp}% +\def\Hten{m\b{d}w}% +\def\Hhundred{\v{s}t}% +\def\Hthousand{\uunder{h}\Hag}% +\def\HXthousand{\b{d}b\Hag}% +\def\HCthousand{\d{h}fnw}% +\def\Hmillion{\d{h}\d{h}}% +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{echange} +% This next piece of code is a copy of \file{EgypUtil.sty} from the +% \Lpack{hieroglyph} package. +% \begin{macrocode} +%%%%%%%%%%%%%%%% file EgypUtil.sty from the hieroglyph package %%%%%%% +% Useful TeX macros for Egypto and Hiero +%macro utile: \echange{token a remplacer}{texte de remplacement}{texte +% a traiter} +% +% On peut l'utiliser pour: +% -du texte pur +% -des macros + +% A useful macro: * you have a list of entry with a character between +% them, like this: {A text-Another Text-Yet another one} +% And you want to apply a function to every part of it, +% (or simply change the character) +% if you macro has the form : \def\mymacro#1\relax{....}, +% this one is for you. + +\def\echange#1#2#3{% +\def\echangeaux##1##2{\ifx##2\end\def\next{##1}% +\else\ifx##2#1\relax\def\next{\echangeaux{##1#2}}\else\def\next{\echangeaux{##1##2}}\fi\fi% +\next}% +\echangeaux#3\relax\end} + +%%%%%%%%%%%%%%%% end of file EgypUtil.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% \end{macro} +% +% This next batch of code is based on some fragments from Rosmorduc's +% \Lpack{hierLtx} package. This is for special treatment of glyphs so that +% they can be stacked vertically as well as the normal linear horizontal +% placement. +% +% \begin{macro}{\c@rttg} +% Selects a glyph and adds space before and after (this was not built into +% the original font definitions). Originally, 2pt was added before and after; +% having added some side space to the glyphs I have reduced this. +% \begin{macrocode} +\def\c@rttg#1\relax{% +\hskip 0.1pt\textpmhg{#1}\hskip 0.1pt} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rthm} +% \begin{macro}{\setc@rthm} +% The maximum height of a glyph stack is |\c@rthm| and is set by the +% macro |\setc@rthm|. It is set to just a bit more than +% the height of the tallest glyph in the current font size. +% \begin{macrocode} +\newlength{\c@rthm} +\newcommand{\setc@rthm}{% + \settoheight{\c@rthm}{\textpmhg{\HY\HH}}% + \addtolength{\c@rthm}{1.2pt}% +} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c@rtline} +% Process linear glyphs. +% \begin{macrocode} +\newcommand{\c@rtline}[1]{\echange{-}{\relax\c@rtqA}{\c@rttg{#1}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtoN} +% \begin{macro}{\c@rton} +% For superposing glyphs. +% \begin{macrocode} +\def\c@rtoN#1\relax{\hbox{\c@rtline{#1}}} +\def\c@rton#1\relax{\vskip 0.1mm plus 1fil\hbox to \dimen0{\hskip 0em + plus 0.25fil\c@rtline{#1}\hskip 0em plus 0.25fil}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c@rtqA} +% \begin{macrocode} +\def\c@rtqA#1\relax{\hfil{\setbox0=\vbox{% +\echange{:}{\relax\c@rtoN}{\relax:#1\relax}% +}\hbox{\box0}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtq} +% Stacks up the glyphs, using the default sizes. If the stack is taller +% than the maximum height (i.e., |\c@rthm|) it calls a similar routine to +% try with a smaller size of glyphs. This macro is to be used when +% the glyphs are mainly horizontal with just an occasional vertical stack. +% \begin{macrocode} +\def\c@rtq#1\relax{{\setbox0=\vbox{\offinterlineskip% +\echange{:}{\relax\c@rtoN}{\relax:#1\relax}}\dimen0=\wd0% +\ifdim\ht0>\c@rthm% + \c@rtqS#1\relax% +\else% + \setbox0=\vbox to \c@rthm{\offinterlineskip% + \echange{:}{\relax\vfil\c@rton}{\relax\c@rton#1\relax}}% + \hbox{\box0}% +\fi% +}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtvq} +% Stacks up the glyphs in a mainly vertical direction using the default +% sizes. +% \begin{macrocode} +\def\c@rtvq#1\relax{% + {\setbox0=\vbox{\offinterlineskip% + \echange{:}{\relax\c@rtoN}{\relax:#1\relax}}\dimen0=\wd0% + \setbox0=\vbox{% + \lineskiplimit=100pt\lineskip=0.25ex% vertical spacing + \echange{:}{\relax\vfil\c@rton}{\relax\c@rton#1\relax}}% + \hbox{\box0}% +}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtqS} +% Like |\c@rtq| but recursively using smaller font sizes. +% \begin{macrocode} +\def\c@rtqS#1\relax{{\c@rtsmaller\setbox0=\vbox{\offinterlineskip% + \echange{:}{\relax\c@rtoN}{\relax:#1\relax}}\dimen0=\wd0% + \ifdim\ht0>\c@rthm% + \ifx\@currsize\tiny% + \c@rtTS#1\relax% + \else% + \c@rtqS#1\relax% + \fi% + \else% + \c@rtTS#1\relax% + \fi% +}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtTS} +% This macro typesets (|\c@rtq|) stacked glyphs. +% \begin{macrocode} +\def\c@rtTS#1\relax{% + \setbox0=\vbox to \c@rthm{\offinterlineskip% + \echange{:}{\relax\vfil\c@rton}{\relax\c@rton#1\relax}}% + \hbox{\box0}% +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pmglyph} +% The user command to typeset as principally linear, with perhaps +% an occasional vertically stacked, glyphs. +% The form is |\pmglyph{|\meta{codes}|}|, where \meta{codes} +% is a series of character commands, possibly interspersed +% with |-| characters for putting the following glyph to the +% right of the preceeding one, and |:| for putting +% the following glyph below the previous one. +% |{| and |}| can be used for grouping. +% \begin{macrocode} +\def\pmglyph#1{{% + \setc@rthm% + \dimen0=\c@rthm% + \advance\dimen0 by 2mm% + \setbox0=\hbox{% + \echange{-}{\relax\c@rtq}{\relax-#1}}% + \sloppy\unhbox0% +}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pmvglyph} +% The user command to typeset as principally vertically stacked glyphs. +% It is almost identical to |\pmglyph| except that it calls +% |\c@rtvq| instead of |\c@rtq|. +% \begin{macrocode} +\def\pmvglyph#1{{% + \setc@rthm% + \dimen0=\c@rthm% + \advance\dimen0 by 2mm% + \setbox0=\hbox{% + \echange{-}{\relax\c@rtvq}{\relax-#1}}% + \sloppy\unhbox0% +}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtrelsize} +% \begin{macro}{\c@rtsmaller} +% The next chunk of code is a stripped down version of Donald Arseneau's +% \Lpack{relsize} package. We only need the |\smaller| command in unit steps +% for use by the |\c@rtqS| macro. +% \begin{macrocode} +\DeclareRobustCommand\c@rtrelsize[1]{% +\ifmmode \@nomath\c@rtrelsize\else + \@tempcnta + \ifx\@currsize\normalsize 4\else + \ifx\@currsize\small 3\else + \ifx\@currsize\footnotesize 2\else + \ifx\@currsize\large 5\else + \ifx\@currsize\Large 6\else + \ifx\@currsize\LARGE 7\else + \ifx\@currsize\scriptsize 1\else + \ifx\@currsize\tiny 0\else + \ifx\@currsize\huge 8\else + \ifx\@currsize\Huge 9\else + 4 % unknown state, start at normalsize +\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi +\advance\@tempcnta#1\relax +\ifnum\@tempcnta<\z@ \@tempcnta\z@ \fi +\ifcase\@tempcnta + \tiny \or \scriptsize \or \footnotesize \or \small \or \normalsize \or + \large \or \Large \or \LARGE \or \huge \else \Huge +\fi\fi} + +\DeclareRobustCommand\c@rtsmaller{\c@rtrelsize{-1}} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% The following code is for putting a cartouche around a set of hieroglyphs. +% Timothy Van Zandt's \Lpack{fancybox} package~\cite{FANCYBOX} provided +% some very useful hints for this. +% \begin{macro}{\@tempdimc} +% \begin{macro}{\c@rtbox} +% \begin{macro}{\c@rtht} +% We need a box for the cartouche and also a couple of lengths. +% \begin{macrocode} +\newbox\c@rtbox +\@ifundefined{@tempdimc}{\newdimen\@tempdimc}{} +\newdimen\c@rtht +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cartouchecorner} +% \begin{macro}{\cartouchecorner*} +% \begin{macro}{\thec@rtcorner} +% These are the user commands for setting the corner radius for cartouches. +% |\thec@rtcorner| is the resulting internal corner radius value. +% \begin{macrocode} +\newcommand{\cartouchecorner}{\@ifstar{\sc@rtcorner}{\c@rtcorner}} +\newcommand{\sc@rtcorner}[1]{% + \@tempdima=#1\relax + \edef\thec@rtcorner{\number\@tempdima sp}} +\newcommand{\c@rtcorner}[1]{% + \edef\thec@rtcorner{#1\noexpand\@tempdimb}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% By default, set the corner value to 3/4. +% \begin{macrocode} +\cartouchecorner{.75} + +% \end{macrocode} +% +% \begin{macro}{\c@rtoval} +% Command for drawing an oval of a given size. +% \begin{macrocode} +\def\c@rtoval(#1,#2){% + \begingroup + \c@rt@oval{#1\unitlength}{#2\unitlength}% + \@put{-.5\wd\@tempboxa}{-.5\ht\@tempboxa}{\ht\@tempboxa=\z@\box\@tempboxa}% + \endgroup} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rt@oval} +% The internal command for drawing an oval, with the corner +% diameters controlled by |\thec@rtcorner|, and the line +% thicknesses set by |\thicklines| or |\thinlines|. This +% is simpler than the kernal oval code as it doesn't have +% to check whether it's only drawing a part of the oval. +% \begin{macrocode} +\newcommand{\c@rt@oval}[2]{% + \boxmaxdepth \maxdimen + \@ovttrue \@ovbtrue \@ovltrue \@ovrtrue + \@ovxx#1\relax + \advance\@ovxx-\@wholewidth + \@ovyy#2\relax + \advance\@ovyy-\@wholewidth + \@tempdimb \ifdim \@ovyy >\@ovxx \@ovxx\else \@ovyy \fi + \advance\@tempdimb-2\p@ + \ifdim\@tempdimb>\thec@rtcorner\relax + \@tempdimb=\thec@rtcorner + \fi + \@getcirc\@tempdimb + \@ovro\ht\@tempboxa \@ovri\dp\@tempboxa + \@ovdx\@ovxx \advance\@ovdx-\@tempdima \divide\@ovdx \tw@ + \@ovdy\@ovyy \advance\@ovdy-\@tempdima \divide\@ovdy \tw@ + \@circlefnt + \setbox\@tempboxa\hbox{% + \@ovvert32\kern -\@tempdima + \kern \@ovxx \@ovvert01\kern -\@tempdima \kern -\@ovxx + \@ovhorz \kern -\@ovxx + \raise \@ovyy \@ovhorz}% + \advance\@ovdx\@ovro + \advance\@ovdy\@ovro + \advance\@ovxx\@wholewidth + \wd\@tempboxa=\@ovxx + \dp\@tempboxa=\z@} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\cartouche} +% \begin{macro}{\Cartouche} +% The user commands for drawing a horizontal cartouche. +% |\cartouche{|\meta{text}|}| +% uses |\thinlines| and |\Cartouche{|\meta{text}|}| uses +% |\thicklines| for the frame. +% \begin{macrocode} +\newcommand{\cartouche}{\c@rtouche\thinlines} +\newcommand{\Cartouche}{\c@rtouche\thicklines} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\vertouche} +% \begin{macro}{\Vertouche} +% The user commands for drawing a vertical cartouche. +% |\vertouche{|\meta{text}|}| +% uses |\thinlines| and |\Vertouche{|\meta{text}|}| uses +% |\thicklines| for the frame. +% \begin{macrocode} +\newcommand{\vertouche}{\c@rtouchev\thinlines} +\newcommand{\Vertouche}{\c@rtouchev\thicklines} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c@rtouche} +% Decides the size of the oval, gets it drawn, and then adds a +% rule at the right hand end of the oval. +% \begin{macrocode} +\newcommand{\c@rtouche}[2]{ + \begingroup + #1\relax + \c@rtsetoval{#2} + \leavevmode\hbox{% + \lower\@tempdima\box\@tempboxa + \kern\@tempdimc\box\c@rtbox\kern\@tempdimc}% + \rule[-\@tempdima]{\@wholewidth}{\c@rtht}% % thick/thin line at end + \endgroup} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtsetoval} +% Decides the size of a cartouche oval and draws it. +% \begin{macrocode} +\newcommand{\c@rtsetoval}[1]{% + \setbox\c@rtbox\hbox{{#1}}% + \@tempdimc\fboxsep \advance\@tempdimc\@wholewidth + \@tempdima\ht\c@rtbox \advance\@tempdima\dp\c@rtbox + \advance\@tempdima2\@tempdimc + \@tempdimb\wd\c@rtbox \advance\@tempdimb2\@tempdimc + \c@rt@oval\@tempdimb\@tempdima% + \@tempdima\dp\c@rtbox \advance\@tempdima\@tempdimc + \c@rtht\ht\c@rtbox \advance\c@rtht\@tempdima \advance\c@rtht\@tempdimc + \wd\@tempboxa=\z@ +} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@rtouchev} +% Decides the size of the oval, gets it drawn, and then adds a +% rule at base of the oval. +% \begin{macrocode} +\newcommand{\c@rtouchev}[2]{ + \begingroup + #1\relax + \c@rtsetoval{#2} + \leavevmode\hbox{% + \lower\@tempdima\box\@tempboxa + \kern\@tempdimc\box\c@rtbox\kern\@tempdimc}% + \advance\@tempdimb-\@tempdimc + \kern-2\@tempdimb\rule[-\@tempdima]{2\@tempdimb}{\@wholewidth}% + \endgroup} + +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{Map file for Postscript Type1} +% +% Not very long. +% \changes{v1.3}{2005/04/02}{Added the map file} +% \begin{macrocode} +%<*map> +pmhg Archaic-Poor-Mans-Hieroglyphs <pmhg.pfb +%</map> +% \end{macrocode} +% +% \Finale +% +% +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/hieroglf.ins b/Master/texmf-dist/source/fonts/archaic/hieroglf.ins new file mode 100644 index 00000000000..08d0b7a293a --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/hieroglf.ins @@ -0,0 +1,86 @@ +%% hieroglf.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 2000--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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{hieroglf.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 2000--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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%\Msg{*** Generating the Metafont files ***} +%%\usepostamble\empty +%%\generateFile{pmhg.mf}{t}{\from{hieroglf.dtx}{maj}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1pmhg.fd}{t}{\from{hieroglf.dtx}{fdot1}} +\generateFile{t1pmhg.fd}{t}{\from{hieroglf.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{hieroglf.sty}{t}{\from{hieroglf.dtx}{usc}} + +\Msg{*** Generating the Postscript Type1 map file ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{hieroglf.map}{t}{\from{hieroglf.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation move these files the LaTeX macro area:} +\Msg{* \space\space ot1pmhg.fd} +\Msg{* \space\space t1pmhg.fd} +\Msg{* \space\space hieroglf.sty} +\Msg{*} +\Msg{* There are further installation instructions in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput 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 \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/linearb.ins b/Master/texmf-dist/source/fonts/archaic/linearb.ins new file mode 100644 index 00000000000..cf8d246ba2d --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/linearb.ins @@ -0,0 +1,88 @@ +%% linearb.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{linearb.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{linearb.drv}{t}{\from{linearb.dtx}{driver}} + +\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{linb10.mf}{t}{\from{linearb.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{t1linb.fd}{t}{\from{linearb.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{linearb.sty}{t}{\from{linearb.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{linearb.map}{t}{\from{linearb.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue the installation move the following} +\Msg{* files into the LaTeX macro area:} +\Msg{* \space\space t1linb.fd} +\Msg{* \space\space linearb.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/nabatean.dtx b/Master/texmf-dist/source/fonts/archaic/nabatean.dtx new file mode 100644 index 00000000000..5b6340b3ba0 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/nabatean.dtx @@ -0,0 +1,1204 @@ +% \iffalse meta-comment +% +% nabatean.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{nabatean.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{242} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v1.1}{2000/09/30}{Minor changes to glyph encodings} +% \changes{v1.2}{2005/06/16}{Added map file} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v1.1} \def\filedate{2000/09/30} +% \def\fileversion{v1.2} \def\filedate{2005/06/16} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Nabatean} +% +% \title{The \Lpack{Nabatean} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{nabatean} bundle provides a set of fonts for the +% Nabatean script which was used between the fourth centuries~\BC{} +% and~\AD{} in the Middle East. It is one in a series for archaic scripts. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% The Phoenician alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. +% The font presented here is one of a series of fonts intended to show how +% the modern Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and the package is in later sections. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F', and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{nabatean} package} \label{sec:usc} +% +% The \thisfont{} script is a descendant of the Aramaic script, +% which in turn descended from the Phoenician script, and is a predecessor +% of the modern Arabian script. It was used between approximately the +% fourth centuries~\BC{} and~\AD. The version presented is roughly +% typical of the frst century~\AD. +% +% The alphabet consisted of 22 characters. +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and, where I know it, the +% modern name of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcll} \hline +% Value & Name? & ASCII & Command & Command \\ \hline +% \textit{a} & +% aleph & +% ' a & |\Arq| |\Aa| & +% |\Aaleph| +% \\ +% \textit{b} & +% beth & +% b & |\Ab| & +% |\Abeth| +% \\ +% \textit{g} & +% gimel & +% g & |\Ag| & +% |\Agimel| +% \\ +% \textit{d} & +% daleth & +% d & |\Ad| & +% |\Adaleth| +% \\ +% \textit{h} & +% he & +% h & |\Ah| & +% |\Ahe| +% \\ +% \textit{w} & +% vav & +% w & |\Aw| & +% |\Avav| +% \\ +% \textit{z} & +% zayin & +% z & |\Az| & +% |\Azayin| +% \\ +% \textit{\d{h}} & +% heth & +% H & |\Ahd| & +% |\Aheth| +% \\ +% \textit{\d{t}} & +% teth & +% T & |\Atd| & +% |\Ateth| +% \\ +% \textit{y} & +% yod & +% y & |\Ay| & +% |\Ayod| +% \\ +% \textit{k} & +% kaph & +% k & |\Ak| & +% |\Akaph| +% \\ +% \textit{l} & +% lamed & +% l & |\Al| & +% |\Alamed| +% \\ +% \textit{m} & +% mem & +% m & |\Am| & +% |\Amem| +% \\ +% \textit{n} & +% nun & +% n & |\An| & +% |\Anun| +% \\ +% \textit{s} & +% samekh & +% s & |\As| & +% |\Asamekh| +% \\ +% \textit{`} & +% ayin & +% ` o & |\Alq| |\Ao| & +% |\Aayin| +% \\ +% \textit{p} & +% pe & +% p & |\Ap| & +% |\Ape| +% \\ +% \textit{\d{s}} & +% sade & +% x & |\Asd| & +% |\Asade| +% \\ +% \textit{q} & +% qoph & +% q & |\Aq| & +% |\Aqoph| +% \\ +% \textit{r} & +% resh & +% r & |\Ar| & +% |\Aresh| +% \\ +% \textit{\v{s}} & +% shin & +% S & |\Asv| & +% |\Ashin| +% \\ +% \textit{t} & +% tav & +% t & |\At| & +% |\Atav| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% +% \DescribeMacro{\nabfamily} +% This command selects the \thisfont{} font family. The family name is |nab|. +% +% \DescribeMacro{\textnab} +% The command |\textnab{|\meta{text}|}| typesets \meta{text} in the +% \thisfont{} font. +% +% +% I have provided three ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, +% (b) by commands whose names are based on the transliterated values, and +% (c) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab}. +% +% +% \DescribeMacro{\translitnab} +% The command |\translitnab{|\meta{commands}|}| will typeset the +% transliteration of the \thisfont{} character commands (those in the +% last two columns of Table~\ref{tab}). +% +% \DescribeMacro{\translitnabfont} +% The font used for the transliteration is defined by this macro, +% which is initialsed to an italic font (i.e., |\itshape|). +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Hea90]{HEALEY90} +% John F.~Healey. +% \newblock \emph{Reading the Past: The Early Alphabet}. +% \newblock University of California Press/British Museum, 1990. +% \newblock (ISBN 0-520-07309-6) +% +% \end{thebibliography} +% \PrintIndex +% +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% NAB10.MF Computer Nabatean font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="nabatean"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.6pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font, normally the driver file would come here. In this +% case I have embedded it. +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% If there was a seperate driver file, this would be its contents. +% +% \begin{macrocode} + +font_coding_scheme:="Nabatean glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.8px#; % vertical thickness of the pen + +define_pixels(s,u); +define_blacker_pixels(px,py); +define_good_x_pixels(leftloc); +define_corrected_pixels(o); % turn on overshoot correction +define_horizontal_corrected_pixels(ho); + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +newinternal defaultsmoothrad; +numeric smoothrad, defaultsmoothrad; +defaultsmoothrad := 2px; +smoothrad := 2px; + +tertiarydef p ~ q = + begingroup + c_ := fullcircle scaled 2smoothrad shifted point 0 of q; + a_ := ypart(c_ intersectiontimes p); + b_ := ypart(c_ intersectiontimes q); + if a_ < 0: point 0 of p{direction 0 of p} else: subpath(0,a_) of p fi + ... if b_ < 0: {direction infinity of q}point infinity of q + else: subpath(b_,infinity) of q fi + endgroup +enddef; + +def smoothly(text t) = + hide(n_:=0; for z=t: z_[incr n_]:= z; endfor) + (z_1 for k=2 upto n_-1: --z_[k]) ~ (z_[k] endfor --z_[n_]) +enddef; + +% \end{macrocode} +% +% That would be the end of a seperate driver file, except for +% calling the glyph code file. +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Nabatean font. +% The characters +% are defined in the Phoenician alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of title code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{'} +% The \thisfont{} letter \textit{aleph}. +% Like a fancy X. +% \begin{macrocode} + +cmchar "Nabatean letter aleph (coded as ')"; +beginglyph("'",1.0); +z1=(leftloc,1/2h); +z3=(rightloc,0); +z2=1/2[z1,z3]; +z11=(leftloc,0); z12=(x2,y11); +z21=(1/3[x2,x3], y2); +z22=(x21,h); +draw z1{right}..z2..{right}z3; +draw z11--z12; draw z21--z22; +labels(1,2,3,4,5,11,12,21,22); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The \thisfont{}letter \textit{aleph}. +% \begin{macrocode} + +cmchar "Nabatean letter aleph (coded as a)"; +beginglyph("a",1.0); +z1=(leftloc,1/2h); +z3=(rightloc,0); +z2=1/2[z1,z3]; +z11=(leftloc,0); z12=(x2,y11); +z21=(1/3[x2,x3], y2); +z22=(x21,h); +draw z1{right}..z2..{right}z3; +draw z11--z12; draw z21--z22; +labels(1,2,3,4,5,11,12,21,22); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The \thisfont{} letter \textit{bet}. +% Like a sickle. +% \begin{macrocode} + +cmchar "Nabatean letter bet (coded as b)"; +beginglyph("b",1.0); +z1=(midloc,h); +z2=(x1,7/8h); +z4=(rightloc, 1/2h); +z6=(leftloc,0); +draw z1--z2; +draw z2{right}..z4{down}..{left}z6; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The \thisfont{} letter \textit{gimel}. +% Like a Y on its side. +% \begin{macrocode} + +cmchar "Nabatean letter gimel (coded as g)"; +beginglyph("g", 0.8); +z1=(1/3[leftloc,rightloc], h); +z2=(rightloc,0); +z11=1/2[z1,z2]; +z12=(leftloc,y11); +draw z1--z2; draw z11--z12; +labels(1,2,3,4,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The \thisfont{} letter \textit{dalet}. +% \begin{macrocode} + +cmchar "Nabatean letter dalet (coded as d)"; +beginglyph("d",0.6); +z1=(leftloc,h); +z2=(x1,3/4h); +z3=(rightloc,y2); +z5=(rightloc,0); +draw smoothly(z1, z2, z3, z5); +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{h} +% The \thisfont{} letter \textit{he}. +% Like a T with a post leaning against it. +% \begin{macrocode} + +cmchar "Nabatean letter he (coded as h)"; +beginglyph("h",0.8); +z1=(midloc,h); +z2=(rightloc,1/3h); +z3=1/4[z1,z2]; +z4=(leftloc,y3); +z11=1/2[z3,z4]; +z12=(x11,0); +draw z1--z2; +draw z3--z4; +draw z11--z12; +labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{w} +% The \thisfont{} letter \textit{vav}. +% Shepherds crook. +% \begin{macrocode} + +cmchar "Nabatean letter vav (coded as w)"; +beginglyph("w",0.3); +z1=(leftloc,3/4h); +z3=(rightloc,y1); +z2=(1/2[x1,x3], h); +z4=(rightloc,0); +draw z1{up}..z2{right}..{down}z3--z4; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The \thisfont{} letter \textit{zayin}. +% Short, slightly bent, vertical line. +% \begin{macrocode} + +cmchar "Nabatean letter zayin (coded as z)"; +beginglyph("z",0.1); +z1=(leftloc,3/4h); +z3=(x1,1/4h); +z2=(rightloc,1/2[y1,y3]); +draw smoothly(z1, z2, z3); +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The \thisfont{} letter \textit{het} (h sub dot). +% \begin{macrocode} + +cmchar "Nabatean letter het (h sub dot?) (coded as H)"; +beginglyph("H", 0.7); +z7=(rightloc,1/8h); z8=(rightloc,h); +z1=(leftloc,0); +z2=(3/16[x1,x8], 0); +z3=(1/2[x1,x2], h); + +z11=7/8[z2,z3]; +z13=(x8,y11); +z12 =(1/2[x11,x13], h); + +draw smoothly(z1, z2, z3); draw z7--z8; +draw z11{right}..z12{right}..{right}z13; +labels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{T} +% The \thisfont{} letter \textit{tet} (t sub dot). +% Like the numeral 6. +% \begin{macrocode} + +cmchar "Nabatean letter tet (t sub dot) (coded as T)"; +beginglyph("T",1.0); +numeric n[]; +n1=1/4h; +z1=(leftloc,h); z2=(leftloc,0); +z3=(rightloc,1/4h); +z4=(x3,y3+n1); +z5'=1/4[z2,z3]; z5=(x5', y5'+n1); +draw smoothly(z1, z2, z3, z4, z5); +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The \thisfont{} letter \textit{yod}. +% Like an S. +% \begin{macrocode} + +cmchar "Nabatean letter yod (coded as y)"; +beginglyph("y",0.6); +z1=(3/4[leftloc,rightloc], h); +z2=(1/4[leftloc,rightloc], 1/2h); +z3=(rightloc,1/2h); +z4=(rightloc,1/3h); +z6=(leftloc,0); +draw smoothly(z1, z2, z3, z4, z6); +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The \thisfont{} letter \textit{kaf}. +% \begin{macrocode} + +cmchar "Nabatean letter kaf (coded as k)"; +beginglyph("k",0.6); +z1=(1/4[leftloc,rightloc], h); +z2=(x1, 7/8h); +z3=(rightloc,y2); +z4=(rightloc,0); +z5=(leftloc,0); +draw smoothly(z1, z2, z3, z4, z5); +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The \thisfont{} letter \textit{lamed}. +% \begin{macrocode} + +cmchar "Nabatean letter lamed (coded as l)"; +beginglyph("l",0.5); +z1=(1/4[leftloc,rightloc], h); +z2=(x1, 1/3h); +z3=(rightloc,y2); +z4=(rightloc,0); +z5=(leftloc,0); +draw smoothly(z1, z2, z3, z5); +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The \thisfont{} letter \textit{mem}. +% Like \textit{bet} with a line through the top bar. +% \begin{macrocode} + +cmchar"Nabatean letter mem (coded as m)"; +beginglyph("m",0.8); +z1=(leftloc,1/4h); +z2=(midloc,h); +z3=(rightloc,y2); +z4=(rightloc,0); +z5=(1/2[x1,x2],0); +draw smoothly(z1, z2, z3, z4, z5); +z11=7/8[z1,z2]; z12=(2/3[x1,x11], y2); +draw z11--z12; +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The \thisfont{} letter \textit{nun}. +% +% \begin{macrocode} + +cmchar "Nabatean letter nun (coded as n)"; +beginglyph("n",0.3); +z1=(leftloc,1/4h); +z2=(rightloc,y1); +z3=(x2,3/4h); +draw smoothly(z1, z2, z3); +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{s} +% The \thisfont{} letter \textit{samekh}. +% Figure of eight. +% \begin{macrocode} + +cmchar "Nabatean letter samekh (coded as s)"; +beginglyph("s", 0.8); +z1=(leftloc,h); +z2=(1/4[leftloc,rightloc], y1); +z3=(x2,0); +z4=(rightloc,3/4h); +z5=(x1,y4); +z6=(x2,y4); +draw smoothly(z6, z5, z1, z2, z6); +draw smoothly(z6, z3, z4, z6); +labels(1,2,3,4,5,6,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{`} +% The \thisfont{} letter \textit{ayin}. +% Like a Y. +% \begin{macrocode} + +cmchar "Nabatean letter ayin (coded as `)"; +beginglyph("`",0.6); +z1=(leftloc,0); +z2=(rightloc,h); +z3=3/4[z1,z2]; +z4=(1/2[x1,x2], h); +draw z1--z2; draw z3--z4; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The \thisfont{} letter \textit{ayin}. +% \begin{macrocode} + +cmchar "Nabatean letter ayin (coded as o)"; +beginglyph("o",0.6); +z1=(leftloc,0); +z2=(rightloc,h); +z3=3/4[z1,z2]; +z4=(1/2[x1,x2], h); +draw z1--z2; draw z3--z4; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The \thisfont{} letter \textit{pe}. +% A more upright \textit{bet}. +% \begin{macrocode} + +cmchar "Nabatean letter pe (coded as p)"; +beginglyph("p", 0.6); +z1=(leftloc,1/8h); +z2=(2/3[leftloc,rightloc], 0); +z3=(rightloc,2/8h); +z4=(7/8[leftloc,rightloc], 6/8h); +z5=(x4,h); +z7=(5/8[leftloc,rightloc], y4); +draw z1...z2{right}...z3{up}...{up}z4; +draw smoothly(z4, z5, z7); +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The \thisfont{} letter \textit{tsadi}. +% Fishing hook with a flat top. +% \begin{macrocode} + +cmchar "Nabatean letter tsadi (S sub dot) (coded as x)"; +beginglyph("x", 0.8); +z1=(leftloc, 1/4h); +z3=(3/4[leftloc,rightloc], y1); +z2=(1/2[x1,x3], 0); +z4=(x3,h); +z5=(rightloc,y4); +draw z1...z2{right}...{up}z3; +draw smoothly(z3, z4, z5); +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{q} +% The \thisfont{} letter \textit{qof}. +% Like \textit{tsadi} except there is a ring at the top. +% \begin{macrocode} + +cmchar "Nabatean letter qof (coded as q)"; +beginglyph("q", 0.8); +z1=(leftloc, 1/4h); +z3=(3/4[leftloc,rightloc], y1); +z2=(1/2[x1,x3], 0); +z4=(x3,h); +z5=(rightloc,y4); +z6=(x5,6/8h); +z7=(x4,y6); +draw z1...z2{right}...{up}z3; +draw smoothly(z3, z4, z5, z6, z7); +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{r} +% The \thisfont{} letter \textit{resh}. +% Practically identical to \textit{dalet}. +% \begin{macrocode} + +cmchar "Nabatean letter resh (coded as r)"; +beginglyph("r",0.6); +z1=(leftloc,h); +z2=(x1,3/4h); +z3=(rightloc,y2); +z5=(rightloc,0); +draw smoothly(z1, z2, z3, z5); +labels(1,2,3,4,5,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{S} +% The \thisfont{} letter \textit{shin} (s sup v). +% Like an F. +% \begin{macrocode} + +cmchar "Nabatean letter shin (s sup v) (coded as S)"; +beginglyph("S", 0.8); +path pth[]; +z1=(leftloc,0); +z2=(1/3[leftloc,rightloc], 0); +z3=(x2,h); + +z11=1/2[z2,z3]; +z12=(rightloc,h); + +z21=1/2[z11,z3]; +z22=1/2[z3,z12]; + +draw smoothly(z1, z2, z3); +draw z11--z12; +draw z21--z22; +labels(1,2,3,4,5,6,7,11,12); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The \thisfont{} letter \textit{tav}. +% +% \begin{macrocode} + +cmchar "Nabatean letter tav (coded as t)"; +beginglyph("t", 1.0); +z1=(leftloc,0); +z2=(1/4[leftloc,rightloc], 0); +z3=(x2,h); +z4=(rightloc,h); +z5=(x4,0); +z6=1/2[z2,z5]; +draw smoothly(z1, z2, z3, z4, z5, z6); +labels(1,2,3,4,5,6); endchar; + + +% \end{macrocode} +% \end{macro} +% +% +% The end of the glyphs, and the file. +% +% \begin{macrocode} +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{nab}{} + \DeclareFontShape{OT1}{nab}{m}{n}{ <-> nab10 }{} + \DeclareFontShape{OT1}{nab}{bx}{n}{ <-> sub nab/m/n }{} + \DeclareFontShape{OT1}{nab}{b}{n}{ <-> sub nab/m/n }{} + \DeclareFontShape{OT1}{nab}{m}{sl}{ <-> sub nab/m/n }{} + \DeclareFontShape{OT1}{nab}{m}{it}{ <-> sub nab/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{nab}{} + \DeclareFontShape{T1}{nab}{m}{n}{ <-> nab10 }{} + \DeclareFontShape{T1}{nab}{bx}{n}{ <-> sub nab/m/n }{} + \DeclareFontShape{T1}{nab}{b}{n}{ <-> sub nab/m/n }{} + \DeclareFontShape{T1}{nab}{m}{sl}{ <-> sub nab/m/n }{} + \DeclareFontShape{T1}{nab}{m}{it}{ <-> sub nab/m/n }{} +%</fdt1> +% \end{macrocode} +% +% +% \section{The \Lpack{nabatean} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{nabatean}[2000/09/30 v1.0 package for Nabatean fonts] +% \end{macrocode} +% +% +% \begin{macro}{\nabfamily} +% Selects the font family in the T1 encoding. +% \begin{macrocode} +\newcommand{\nabfamily}{\usefont{T1}{nab}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textnab} +% Text command for the font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textnab}{\nabfamily} + +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} +\chardef\Arq=`' \chardef\Aa=`a \chardef\Aaleph=`' +\chardef\Ab=`b \chardef\Abeth=`b +\chardef\Ag=`g \chardef\Agimel=`g +\chardef\Ad=`d \chardef\Adaleth=`d +\chardef\Ah=`h \chardef\Ahe=`h +\chardef\Aw=`w \chardef\Avav=`w +\chardef\Az=`z \chardef\Azayin=`z +\chardef\Ahd=`H \chardef\Aheth=`H +\chardef\Atd=`T \chardef\Ateth=`T +\chardef\Ay=`y \chardef\Ayod=`y +\chardef\Ak=`k \chardef\Akaph=`k +\chardef\Al=`l \chardef\Alamed=`l +\chardef\Am=`m \chardef\Amem=`m +\chardef\An=`n \chardef\Anun=`n +\chardef\As=`s \chardef\Asamekh=`s +\chardef\Alq=`` \chardef\Ao=`o \chardef\Aayin=`` +\chardef\Ap=`p \chardef\Ape=`p +\chardef\Asd=`x \chardef\Asade=`x +\chardef\Aq=`q \chardef\Aqoph=`q +\chardef\Ar=`r \chardef\Aresh=`r +\chardef\Asv=`S \chardef\Ashin=`S +\chardef\At=`t \chardef\Atav=`t + +% \end{macrocode} +% +% \begin{macro}{\translitnab} +% \begin{macro}{\translinabfont} +% |\translitnab{|\meta{commands}|}| transliterates +% \meta{commands} using the |\translitnab| font. +% \begin{macrocode} +\newcommand{\translitnab}[1]{{% + \@translitN\translitnabfont #1}} +\newcommand{\translitnabfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitN} +% This macro redefines all the character commands to produce +% the transliterated value instead of the glyph. There must be no +% spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitN}{% +\def\Arq{'}\def\Aa{\Arq}\def\Aaleph{\Arq}% +\def\Ab{b}\def\Abeth{\Ab}% +\def\Ag{g}\def\Agimel{\Ag}% +\def\Ad{d}\def\Adaleth{\Ad}% +\def\Ah{h}\def\Ahe{\Ah}% +\def\Aw{w}\def\Avav{\Aw}% +\def\Az{z}\def\Azayin{\Az}% +\def\Ahd{\d{h}}\def\Aheth{\Ahd}% +\def\Atd{\d{t}}\def\Ateth{\Atd}% +\def\Ay{y}\def\Ayod{\Ay}% +\def\Ak{k}\def\Akaph{\Ak}% +\def\Al{l}\def\Alamed{\Al}% +\def\Am{m}\def\Amem{\Am}% +\def\An{n}\def\Anun{\An}% +\def\As{s}\def\Asamekh{\As}% +\def\Alq{`}\def\Ao{\Alq}\def\Aayin{\Alq}% +\def\Ap{p}\def\Ape{\Ap}% +\def\Asd{\d{s}}\def\Asade{\Asd}% +\def\Aq{q}\def\Aqoph{\Aq}% +\def\Ar{r}\def\Aresh{\Ar}% +\def\Asv{\v{s}}\def\Ashin{\Asv}% +\def\At{t}\def\Atav{\At}% +} + +% \end{macrocode} +% \end{macro} +% +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{Map files} +% +% This is rather short. +% \changes{v1.2}{2005/06/16}{Added map file} +% +% \begin{macrocode} +%<*map> +nab10 Archaic-Nabatean <nab10.pfb +%</map> +% \end{macrocode} +% +% The end! +% +% \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 \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/nabatean.ins b/Master/texmf-dist/source/fonts/archaic/nabatean.ins new file mode 100644 index 00000000000..427518c7a22 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/nabatean.ins @@ -0,0 +1,91 @@ +%% nabatean.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{nabatean.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{nabatean.drv}{t}{\from{nabatean.dtx}{driver}} + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{nab10.mf}{t}{\from{nabatean.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1nab.fd}{t}{\from{nabatean.dtx}{fdot1}} +\generateFile{t1nab.fd}{t}{\from{nabatean.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{nabatean.sty}{t}{\from{nabatean.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{nabatean.map}{t}{\from{nabatean.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue the installation you have to move the following} +\Msg{* files into the LaTeX macro area:} +\Msg{*} +\Msg{* \space\space ot1nab.fd} +\Msg{* \space\space t1nab.fd} +\Msg{* \space\space nabatean.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/oands.dtx b/Master/texmf-dist/source/fonts/archaic/oands.dtx new file mode 100644 index 00000000000..aa353da65e8 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/oands.dtx @@ -0,0 +1,776 @@ +% \iffalse meta-comment +% +% oands.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 2000--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), 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{oands.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{34} +% +% \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}{2000/08/19}{First public release} +% \changes{v1.1}{2005/04/02}{Minor circumstantial changes and for Postscript} +% +% \def\fileversion{v1.0} \def\filedate{2000/08/19} +% \def\fileversion{v1.1} \def\filedate{2005/04/02} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand*{\AD}{\textsc{ad}} +% \newcommand*{\thisfont}{OandS} +% +% \title{The \Lpack{OandS} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{oands} bundle provides a set of +% miscellaneous characters for use when transliterating ancient scripts. +% This is one in a series for archaic scripts. +% \end{abstract} +% \tableofcontents +% +% \section{Introduction} +% +% The \Lpack{oands} bundle provides a Postscript Type1 version of an +% original Metafont~\cite{METAFONT} design +% of the \thisfont{} fonts. These are odd characters used in transliterating +% archaic scripts, like Hieroglyphic, into a modern alphabet. The font is +% part of a project to provide fonts showing the development of the +% modern Latin alphabet from ancient times. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% The \Lpack{docmfp} package is used for documenting the Metafont portions +% of the distribution~\cite{DOCMFP}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and package may be in later sections. +% +% +% \subsection{The \thisfont{} script} +% +% The \thisfont{} font currently consists of just two characters. One is +% a `mirrored apostrophe' accessed via the single left quote character. +% The other is a sign representing a glottal stop; it looks like the numeral 3 +% with a flat top and is accessed via the lowercase z character. +% +% \section{The \Lpack{oands} package} \label{sec:usc} +% +% The \thisfont{} font family is called |oands|. The font is supplied +% both upright and italic forms and in both +% OT1 and T1 encodings. +% +% +% \DescribeMacro{\oandsfamily} +% The |\oandsfamily| declaration starts typesetting with the \thisfont{} fonts. +% Use of the \thisfont{} font will continue until either there is another |\...family| +% declaration or the current group (e.g., environment) is closed. +% +% \DescribeMacro{\textoands} +% The command |\textoands{|\meta{text}|}| will typeset \meta{text} using the +% \thisfont{} fonts. +% +% The complete font may be printed by |\textoands{` z}|. +% +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \renewcommand{\refname}{Bibliography} +% \begin{thebibliography}{GMS94} +% \addcontentsline{toc}{section}{\refname} +% +% \bibitem[Knu92]{METAFONT} +% Donald E.~Knuth. +% \newblock \emph{The METAFONTbook}. +% \newblock Addison-Wesley, 1992. +% +% \bibitem[Knu87]{CM} +% Donald E.~Knuth. +% \newblock \emph{Computer Modern Typefaces}. +% \newblock Addison-Wesley, 1987. +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Wil99]{DOCMFP} +% Peter R.~Wilson. +% \newblock \emph{The DOCMFP Package}. +% \newblock (Available from CTAN in \texttt{macros/latex/contrib}). +% \newblock 1999. +% +% \end{thebibliography} +% +% \PrintIndex +% +% } +% +% +% +% \section{The Metafont code} \label{sec:mf} +% +% +% \subsection{The parameter file} +% +% We deal with the parameter files first, and start by announcing +% what they are for. The \thisfont{} font comes in one size as a normal +% and italic font. +% +% \begin{macrocode} +%<*base10|base10i> +%<base10>%%% OANDSU10.MF oands upright font at 10 point design size. +%<base10i>%%% OANDSI10.MF oands italic font at 10 point design size. +% +% \end{macrocode} +% The parameters from CMR are used~\cite{CM}. We also +% make sure that \Lpack{cmbase} is loaded as well +% as plain Metafont. +% \begin{macrocode} +if unknown cmbase: input cmbase fi + +% \end{macrocode} +% +% \begin{routine}{mirror_comma} +% We need an additional routine for a `mirrored' comma. It might +% just as well go here as the number of families is very limited and it +% will save on a file. The code is based on Knuth's \file{cmbase.mf}. +% \begin{macrocode} +def mirror_comma(suffix $, @)(expr dot_size, jut, depth) = + pickup fine.nib; + pos$(dot_size,90); + if square_dots: + pos$'(dot_size,0); + z$'=z$; + dot($',$); % squarish dot + comma_join_ := max(fine.breadth, floor .7dot_size); + comma_bot_ := max(fine.breadth, floor .5dot_size); + pos@0(comma_join_, 0); pos@1(comma_join_, 0); pos@2(comma_bot_, 0); + y@0=y$; y@1=y$1; y@2=y@1-depth; + x@0r=x@1r=x$'r; + rt x@2r=good.x(x$-eps); + filldraw stroke z@0e--z@1e..z@2e; % tail + else: + pos@1(vair,-90); pos@2(vair,0); pos@3(vair,45); + z@1r=z$r; lft x@2l=hround(x$-.5dot_size-jut)-2eps; x@3=x$+.5u; + y@2=1/3[y@1,y@3]; bot y@3r=vround(y$-.5dot_size-depth); + y_ := ypart((z@1{left}...z@2{down}...z@3) + intersectiontimes (z$r{left}..{right}z$l)); + if y_ < 0: y_ :=1; fi + filldraw z$l{right}..subpath (0,y_) of (z$r{left}..{right}z$l)--cycle; % dot + filldraw stroke z@1e{left}...z@2e{down}...z@3e; % tail + fi + penlabels(@1,@2,@3); +enddef; + +% \end{macrocode} +% \end{routine} +% +% Now for the parameters. +% \begin{macrocode} +%<base10>font_identifier:="OANDSU"; font_size 10pt#; +%<base10i>font_identifier:="OANDSI"; font_size 10pt#; + +% \end{macrocode} +% +% \DescribeVariable{u} +% The unit width. +% \begin{macrocode} +%<base10> u# := 20/36pt#; % unit width +%<base10i> u# := 18.4/36pt#; % unit width +% \end{macrocode} +% +% \DescribeVariable{width_adj} +% \DescribeVariable{serif_fit} +% \DescribeVariable{cap_serif_fit} +% \DescribeVariable{letter_fit} +% The majority of these parameters and values are constant. +% They are for fine adjustements of characters. +% \begin{macrocode} + width_adj#:=0pt#; % width adjustment for certain characters + serif_fit#:=0pt#; % extra sidebar near lowercase serifs + cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs +%<base10> letter_fit#:=9.2/36pt#; % extra space added to all sidebars +%<base10i> letter_fit#:=0pt#; % extra space added to all sidebars + +% \end{macrocode} +% +% \DescribeVariable{body_height} +% \DescribeVariable{asc_height} +% \DescribeVariable{cap_height} +% \DescribeVariable{fig_height} +% \DescribeVariable{x_height} +% \DescribeVariable{math_axis} +% \DescribeVariable{bar_height} +% \DescribeVariable{comma_depth} +% \DescribeVariable{desc_depth} +% This set of parameters defines the upper and lower limits +% on the characters. +% \begin{macrocode} + body_height# := 270/36pt#; % Height of tallest character + asc_height# := 250/36pt#; % Height of lowercase ascenders + cap_height# := 246/36pt#; % Height of caps + fig_height# := 232/36pt#; % Height of numerals + x_height# := 155/36pt#; % Height of lowercase without ascenders + math_axis# := 90/36pt#; % axis of symmetry for math symbols + bar_height# := 87/36pt#; % height of crossbar in lowercase e + comma_depth# := 70/36pt#; % depth of comma below baseline + desc_depth# := 70/36pt#; % depth of lowercase descenders + +% \end{macrocode} +% +% \DescribeVariable{crisp} +% \DescribeVariable{tiny} +% \DescribeVariable{fine} +% \DescribeVariable{thin_join} +% \DescribeVariable{hair} +% \begin{macrocode} + crisp# := 0pt#; % diameter of serif corners + tiny# := 8/36pt#; % diameter of rounded corners + fine# := 7/36pt#; % diameter of sharply rounded corners + thin_join# := 7/36pt#; % width of extrafine details + hair# := 9/36pt#; % lowercase hairline breadth +% \end{macrocode} +% +% \DescribeVariable{stem} +% \DescribeVariable{curve} +% \DescribeVariable{ess} +% \DescribeVariable{flare} +% \DescribeVariable{dot_size} +% \begin{macrocode} + stem# := 25/36pt#; % lowercase stem breadth + curve# := 30/36pt#; % lowercase curve breadth + ess# := 27/36pt#; % breadth in middle of lowercase s + flare# := 33/36pt#; % diameter of bulbs or breadth of terminals + dot_size# := 38/36pt#; % diameter of dots +% \end{macrocode} +% +% \DescribeVariable{cap_hair} +% \DescribeVariable{cap_stem} +% \DescribeVariable{cap_curve} +% \DescribeVariable{cap_ess} +% \DescribeVariable{rule_thickness} +% \begin{macrocode} + cap_hair# := 11/36pt#; % uppercase hairline breadth + cap_stem# := 32/36pt#; % uppercase stem breadth + cap_curve# := 37/36pt#; % uppercase curve breadth + cap_ess# := 35/36pt#; % breadth in middle of uppercase S + rule_thickness# := 0.4pt#; % thickness of lines in math symbols +% \end{macrocode} +% +% \DescribeVariable{dish} +% \DescribeVariable{bracket} +% \DescribeVariable{jut} +% \DescribeVariable{cap_jut} +% \DescribeVariable{beak_jut} +% \begin{macrocode} + dish# := 1/36pt#; % amount erased at top or bottom of serifs + bracket# := 20/36pt#; % vertical distance from serif base to tangent + jut# := 28/36pt#; % protrusion of lowercase serifs + cap_jut# := 37/36pt#; % protrusion of uppercase serifs + beak_jut# := 10/36pt#; % horizontal protrusion of beak serifs +% \end{macrocode} +% +% \DescribeVariable{beak} +% \DescribeVariable{vair} +% \DescribeVariable{notch_cut} +% \DescribeVariable{bar} +% \DescribeVariable{slab} +% \begin{macrocode} + beak# := 70/36pt#; % vertical protrusion of beak serifs + vair# := 8/36pt#; % vertical diameter of hairlines + notch_cut# := 10pt#; % max breadth above/below notches + bar# := 11/36pt#; % lowercase bar thickness + slab# := 11/36pt#; % serif and arm thickness +% \end{macrocode} +% +% \DescribeVariable{cap_bar} +% \DescribeVariable{cap_band} +% \DescribeVariable{cap_notch_cut} +% \DescribeVariable{serif_drop} +% \DescribeVariable{stem_corr} +% \begin{macrocode} + cap_bar# := 11/36pt#; % uppercase bar thickness + cap_band# := 11/36pt#; % uppercase thickness above/below lobes + cap_notch_cut# := 10pt#; % max breadth above/below uppercase notches + serif_drop# := 4/36pt#; % vertical drop of sloped serifs + stem_corr# := 1/36pt#; % small refinement of stem breadth +% \end{macrocode} +% +% \DescribeVariable{vair_corr} +% \DescribeVariable{apex_corr} +% \DescribeVariable{o} +% \DescribeVariable{apex_o} +% \DescribeVariable{slant} +% \begin{macrocode} + vair_corr# := 1/36pt#; % small refinement of hairline height + apex_corr# := 0pt#; % extra width at diagonal junctions + o# := 8/36pt#; % amount of overshoot for curves + apex_o# := 8/36pt#; % amount of overshoot for diagonal junctions +%<base10> slant := 0; % tilt ratio (\Delta x / \Delta y) +%<base10i> slant := 0.25; % tilt ratio (\Delta x / \Delta y) +% \end{macrocode} +% +% \DescribeVariable{fudge} +% \DescribeVariable{math_spread} +% \DescribeVariable{superness} +% \DescribeVariable{superpull} +% \DescribeVariable{beak_darkness} +% \begin{macrocode} + fudge := 1; % facto applied to weights of heavy characters + math_spread := 0; % extra openness of math symbols + superness := 1/sqrt2; % parameter for superellipses + superpull := 1/6; % extra openness inside bowls + beak_drakness := 11/30; % fraction of triangle inside beak serifs +% \end{macrocode} +% +% \DescribeVariable{ligs} +% \DescribeVariable{square_dots} +% \DescribeVariable{hefty} +% \DescribeVariable{serifs} +% \DescribeVariable{monospace} +% \begin{macrocode} + ligs := 2; % level of ligatures to be included + square_dots := false; % should dots be square? + hefty := false; % should we try hard not to be overweight? + serifs := true; % should serifs and bulbs be attached? + monospace := false; % should all characyers have the same width? +% \end{macrocode} +% +% \DescribeVariable{variant_g} +% \DescribeVariable{low_asterisk} +% \DescribeVariable{math_fitting} +% \begin{macrocode} +%<base10> variant_g := false; % should an italic-style g be used? +%<base10i> variant_g := true; % should an italic-style g be used? + low_asterisk := false; % should the asterisk be centered at the axis? + math_fitting := false; % should math-mode spacing be used? + +% \end{macrocode} +% +% +% Finally, call the driver file for the font. +% \begin{macrocode} +%<base10> generate oandsup %% switch to the driver file +%<base10i> generate oandsit %% switch to the driver file + +% \end{macrocode} +% +% The end of this code section. +% \begin{macrocode} +%</base10|base10i> +% \end{macrocode} +% +% +% \subsection{The driver files} +% +% The driver file sets up the font parameters and also contains +% the macros used in the definition of the characters. +% +% \begin{macrocode} +%<*mfdu> +% OANDSUP.MF setup for the upright OANDS font. + +% \end{macrocode} +% This file is based on Knuth's \file{roman.mf}. +% +% \begin{macrocode} + +if ligs>1: font_coding_scheme:="TeX text"; +else: font_coding_scheme:=if ligs=0: "TeX typewriter text" + else: "TeX text without f-ligatures" + fi; +fi + +mode_setup; font_setup; + +input oandsym; + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning +% \end{macrocode} +% There are no ligatures at this time. +% \begin{macrocode} +fi + +bye. + +%</mfdu> +% \end{macrocode} +% +% Now the italic driver file, which is based on Knuth's \file{textit.mf}. +% +% \begin{macrocode} +%<*mfdi> +% file OANDSIT.MF Italic setup for OANDS font + +mode_setup; font_setup; + +if ligs>1: font_coding_scheme:="TeX text"; +else: font_coding_scheme:=if ligs=0: "TeX typewriter text" + else: "TeX text without f-ligatures" + fi; +fi + +font_slant slant; font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; + letter_fit#:=letter_fit:=0; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; fi + +input oandsym; + +if not monospace: + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning +% \end{macrocode} +% There are no ligatures at this time. +% \begin{macrocode} +fi + +bye. + +%</mfdi> +% \end{macrocode} +% +% +% \subsection{The code for the characters} +% +% The following code is for the characters making up the font. +% +% \begin{macrocode} +%<*min> +% OANDSYM.MF Program file for oands characters +% + +% \end{macrocode} +% +% +% \begin{routine}{`} +% A mirrored apostrophe, based on Knuth's apostrophe from \file{punct.mf}. +% \begin{macrocode} +cmchar "Mirrored apostrophe"; +beginchar("`",5u#,asc_height#,0); +italcorr asc_height#*slant+.5dot_size#-2u#; +adjust_fit(0,0); +x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h; +if monospace: + mirror_comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large one +else: + mirror_comma(1,a,dot_size,.25u,comma_depth); % normal one +fi +penlabels(1); +endchar; + +% \end{macrocode} +% \end{routine} +% +% \begin{routine}{z} +% A representation of a glottal stop. It looks somewhat like an oldstyle +% digit 3 with a flat top, or the way I handwrite a lowercase z with a tail. +% It is based on a combination of 3 and 7 from Knuth's \file{olddig.mf} file. +% \changes{v1.1}{2005/04/02}{Slimmed down the glottal stop} +% \begin{macrocode} +cmchar "The glottal stop z"; +beginchar("z",9u#,x_height#,desc_depth#); +italcorr .8x_height#*slant-.4u#; +adjust_fit(0,0); +numeric top_thickness,mid_thickness,bot_thickness; +top_thickness=max(fine.breadth,vround(slab-2vair_corr)); +mid_thickness=max(fine.breadth,vround 2/3vair); +bot_thickness=max(fine.breadth,vround(slab-vair_corr)); +pickup fine.nib; +% \end{macrocode} +% The lower bowl from the 3 character. +% \begin{macrocode} +pos5(vair,-90); +pos6(mid_thickness,90); +x6=x8=.5[1.5u,x7]; +pos7(cap_curve,0); rt x7r=hround(w-.75u); +lft x5=min(hround 3u,lft x6); +pos8(bot_thickness,-90); bot y8r=-d-o; +y7=.5[bot y6l,top y8l]; +top y5l=vround(.54[-d,h]+.5vair); y5r=y6l; +filldraw z5r--z6l--z6r--z5l---cycle; % middle tip +filldraw stroke pulled_super_arc.e(6,7)(.5superpull) + & pulled_super_arc.e(7,8)(.5superpull); % lower bowl +if serifs: + numeric bulb_diam[]; + bulb_diam2=flare+cap_stem-stem; + pos10(bulb_diam2,-180); + pos9(cap_hair,-180); + lft x10r=hround .75u; y10=max(.1[-d,h]+.5bulb_diam2,.3[-d,h]-.5bulb_diam2); + bulb(8,9,10); % lower bulb +else: + pos9(bot_thickness,angle(-2u,-h-d)); + lft x9r=hround .75u; top y9l=(vround .25[-d,h])-o; + y9r:=good.y y9r-eps; x9l:=good.x x9l; + filldraw stroke term.e(8,9,left,1,4); % lower terminal +fi +% \end{macrocode} +% The top half of the 7 character. +% \begin{macrocode} +numeric arm_thickness, bot_width, top_shift, top_hair; +%%%if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0; +%%% bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width]; +%%%else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u; +%%% bot_width=flare; top_hair=cap_hair; fi +if hefty: arm_thickness=Vround(vair-vair_corr); top_shift=0; + bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width]; +else: arm_thickness=vair; top_shift=.5u; + bot_width=flare; top_hair=cap_hair; fi +if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi +pickup crisp.nib; +pos2(arm_thickness,90); +pos1(hair,180); +top y2r=h; rt x2=hround(w-.75u+top_shift); +lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps; +arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak +pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0]; +penpos2'(2epsilon,-90); z2'=z2r; +arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak +pickup tiny.nib; +pos4(top_hair,0); +bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2; +if hefty: +else: + erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top + filldraw stroke z4e---z5e; % stroke +fi +penlabels(0,1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{routine} +% +% +% The end of this file +% \begin{macrocode} +%</min> +% \end{macrocode} +% +% +% \section{The font definition files} \label{sec:fd} +% +% The font comes in normal and italic only. +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{oands}{} + \DeclareFontShape{OT1}{oands}{m}{n}{ <-> oandsu10 }{} + \DeclareFontShape{OT1}{oands}{bx}{n}{ <-> sub oands/m/n }{} + \DeclareFontShape{OT1}{oands}{b}{n}{ <-> sub oands/m/n }{} + \DeclareFontShape{OT1}{oands}{m}{it}{ <-> oandsi10 }{} + \DeclareFontShape{OT1}{oands}{m}{sl}{ <-> sub oands/m/it }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{oands}{} + \DeclareFontShape{T1}{oands}{m}{n}{ <-> oandsu10 }{} + \DeclareFontShape{T1}{oands}{bx}{n}{ <-> sub oands/m/n }{} + \DeclareFontShape{T1}{oands}{b}{n}{ <-> sub oands/m/n }{} + \DeclareFontShape{T1}{oands}{m}{it}{ <-> oandsi10 }{} + \DeclareFontShape{T1}{oands}{m}{sl}{ <-> sub oands/m/it }{} +%</fdt1> +% \end{macrocode} +% +% \section{The package code} \label{sec:code} +% +% \subsection{The \Lpack{oands} package} +% +% The \Lpack{oands} package is for typesetting short pieces of text +% in the \thisfont{} fonts. +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{oands}[2000/08/19 v1.0 package for OandS fonts] +% \end{macrocode} +% +% \begin{macro}{\Tienc} +% A macro for testing the value of |\encodingdefault|. +% \begin{macrocode} +\providecommand{\Tienc}{T1} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\oandsfamily} +% Selects the \thisfont{} font family in the OT1 or T1 encoding. +% \begin{macrocode} +\ifx\Tienc\encodingdefault + \newcommand{\oandsfamily}{\usefont{T1}{oands}{m}{n}} +\else + \newcommand{\oandsfamily}{\usefont{OT1}{oands}{m}{n}} +\fi +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textoands} +% Text command for the \thisfont{} font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textoands}{\oandsfamily} +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{Postscript Type1 map file} +% +% Just a line or two. +% \changes{v1.1}{2005/04/02}{Added map file} +% \begin{macrocode} +%<*map> +oandsu10 Archaic-OandS <oandsu10.pfb +oandsi10 Archaic-OandS-Italic <oandsi10.pfb +%</map> +% \end{macrocode} +% +% +% \Finale +% ^^A \PrintIndex +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/oands.ins b/Master/texmf-dist/source/fonts/archaic/oands.ins new file mode 100644 index 00000000000..cda79210e48 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/oands.ins @@ -0,0 +1,91 @@ +%% oands.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 2000--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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{oands.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 2000--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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{oandsu10.mf}{t}{\from{oands.dtx}{base10}} +%%%\generateFile{oandsi10.mf}{t}{\from{oands.dtx}{base10i}} +%%%\generateFile{oandsup.mf}{t}{\from{oands.dtx}{mfdu}} +%%%\generateFile{oandsit.mf}{t}{\from{oands.dtx}{mfdi}} +%%%\generateFile{oandsym.mf}{t}{\from{oands.dtx}{min}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1oands.fd}{t}{\from{oands.dtx}{fdot1}} +\generateFile{t1oands.fd}{t}{\from{oands.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{oands.sty}{t}{\from{oands.dtx}{usc}} + +\Msg{*** Generating the Postscript Type1 map file ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{oands.map}{t}{\from{oands.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move these files} +\Msg{* into the LaTeX macro area:} +\Msg{* \space\space ot1oands.fd} +\Msg{* \space\space t1oands.fd} +\Msg{* \space\space oands.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/oldprsn.dtx b/Master/texmf-dist/source/fonts/archaic/oldprsn.dtx new file mode 100644 index 00000000000..628a3927acc --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/oldprsn.dtx @@ -0,0 +1,2167 @@ +% \iffalse meta-comment +% +% oldprsn.dtx +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{oldprsn.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{250} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v1.1}{2000/09/24}{Added numerals} +% \changes{v1.2}{2005/06/17}{Added map file} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v1.1} \def\filedate{2000/09/24} +% \def\fileversion{v1.2} \def\filedate{2005/06/17} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Old Persian} +% +% +% \title{The \Lpack{Old Persian} font\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{oldprsn} bundle provides a set of fonts for the +% \thisfont{} cuneiform script which was used between about 500 and 350~\BC{} +% in Persia. This is one in a series for archaic scripts. +% \end{abstract} +% \tableofcontents +% +% +% \section{Introduction} +% +% The Phoenician alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. +% The font presented here is one of a series of fonts intended to show how +% the modern Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and +% source code for the package is in later sections. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F', and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{oldprsn} package} \label{sec:usc} +% +% The earliest cuneiform writing, about 2800~\BC, was used by +% the Sumerians in the Middle East~\cite{WALKER87,HEALEY90}. +% Other cuneiform scripts were used for Akkadian (2300~\BC) and +% Babylonian (2000~\BC). These were partly ideographic and partly +% syllabic scripts. The last dated use of a cuneiform script was +% in 75~\AD. +% +% It is claimed that the \thisfont{} cuneiform script was invented by order +% of the Achaemenid Persian king Darius~I (521--486~\BC) +% for inscriptions on royal monuments. In everday use the Persian scribes +% used the Elamite cuneiform or Aramaic scripts. \thisfont{} was +% abandoned after Ataxerxes~III (358--338~\BC). +% +% The script is a syllabary, with 3 vowels and 33 syllabic glyphs. +% There are also 5 ideograms, some in multiple forms, for \textit{king}, +% \textit{country}, \textit{earth}, \textit{god}, and \textit{Ahuramazda}. +% The last of these is the name of the Persian god. There are also glyphs for +% numbers and a word divider. Walker~\cite{WALKER87} gives general information +% on how cuneiform numerals +% were used to form numbers; for detailed information +% consult Ifrah's magnificent work~\cite{IFRAH00}. Basically, the +% writers used a system like the Romans where large numbers were formed +% by adding smaller numbers. +% +% Table~\ref{tab1} lists the +% translitered values of the script and Table~\ref{tab2} lists the +% ideographs, numerals, and the word divider. +% +% \DescribeMacro{\copsnfamily} +% This command selects the \thisfont{} font family. +% The family name is |copsn|. +% +% \DescribeMacro{\textcopsn} +% The command |\textcopsn{|\meta{ASCII/commands}|}| +% typesets \meta{ASCII/commands} in the +% \thisfont{} font. +% +% I have provided two means of accessing the \thisfont{} glyphs: +% (a)~by ASCII characters, and (b)~via commands. +% These are shown in Tables~\ref{tab1} and~\ref{tab2}. +% +% +% \begin{table} +% \centering +% \caption{The Old Persian syllabary}\label{tab1} +% \begin{tabular}{ccl} \hline +% Old Persian & ASCII & Command \\ \hline +% \textit{a} & a & |\Oa| \\ +% \textit{i} & i & |\Oi| \\ +% \textit{u} & u & |\Ou| \\ +% \textit{ka} & k & |\Oka| \\ +% \textit{ku} & K & |\Oku| \\ +% \textit{xa} & x & |\Oxa| \\ +% \textit{ga} & g & |\Oga| \\ +% \textit{gu} & G & |\Ogu| \\ +% \textit{ca} & c & |\Oca| \\ +% \textit{ja} & j & |\Oja| \\ +% \textit{ji} & J & |\Oji| \\ +% \textit{ta} & t & |\Ota| \\ +% \textit{tu} & T & |\Otu| \\ +% \textit{tha} & o & |\Otha| \\ +% \textit{\c{c}a} & C & |\Occa| \\ +% \textit{da} & d & |\Oda| \\ +% \textit{di} & P & |\Odi| \\ +% \textit{du} & D & |\Odu| \\ +% \textit{na} & n & |\Ona| \\ +% \textit{nu} & N & |\Onu| \\ +% \textit{pa} & p & |\Opa| \\ +% \textit{fa} & f & |\Ofa| \\ +% \textit{ba} & b & |\Oba| \\ +% \textit{ma} & m & |\Oma| \\ +% \textit{mi} & w & |\Omi| \\ +% \textit{mu} & M & |\Omu| \\ +% \textit{ya} & y & |\Oya| \\ +% \textit{ra} & r & |\Ora| \\ +% \textit{ru} & R & |\Oru| \\ +% \textit{la} & l & |\Ola| \\ +% \textit{va} & v & |\Ova| \\ +% \textit{vi} & V & |\Ovi| \\ +% \textit{sa} & s & |\Osa| \\ +% \textit{\v{s}a} & S & |\Osva| \\ +% \textit{za} & z & |\Oza| \\ +% \textit{ha} & h & |\Oha| \\ +% \hline +% \end{tabular} +% \end{table} +% +% \begin{table} +% \centering +% \caption{The Old Persian ideographs}\label{tab2} +% \begin{tabular}{ccl} \hline +% Old Persian & ASCII & Command \\ \hline +% \textit{x\v{s}\={a}yathiya} & X & |\Oking| \\ +% \textit{dahy\={a}u\v{s}} & q & |\Ocountrya| \\ +% \textit{dahy\={a}u\v{s}} & Q & |\Ocountryb| \\ +% \textit{b\={u}mi\v{s}} & L & |\Oearth| \\ +% \textit{baga} & B & |\Ogod| \\ +% \textit{Auramazd\={a}} & e & |\OAura| \\ +% \textit{Ahuramazda} & E & |\OAurb| \\ +% \textit{Ahuramazda} & F & |\OAurc| \\ +% \textit{1} & 1 & |\Oone| \\ +% \textit{2} & 2 & |\Otwo| \\ +% \textit{10} & 3 & |\Oten| \\ +% \textit{20} & 4 & |\Otwenty| \\ +% \textit{100} & 5 & |\Ohundred| \\ +% \DeleteShortVerb{\|}\texttt{|}\MakeShortVerb{\|} & : & |\Owd| \\ +% \hline +% \end{tabular} +% \end{table} +% +% \DescribeMacro{\translitcopsn} +% The command |\translitcopsn{|\meta{commands}|}| will typeset the +% transliteration of the \thisfont{} character commands (those in the +% third column of the Tables). +% +% \DescribeMacro{\translitcopsnfont} +% The font used for the transliteration is defined by this macro, +% which is initialised to an italic font (i.e., |\itshape|). +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dav97]{DAVIES97} +% W. V. Davies. +% \newblock \emph{Reading the Past: Egyptian Hieroglyphs}. +% \newblock University of California Press/British Museum, 1997. +% \newblock (ISBN 0-520-06287-6) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Hea90]{HEALEY90} +% John F.~Healey. +% \newblock \emph{Reading the Past: The Early Alphabet}. +% \newblock University of California Press/British Museum, 1990. +% \newblock (ISBN 0-520-07309-6) +% +% \bibitem[Ifr00]{IFRAH00} +% Georges Ifrah. +% \newblock \emph{The Universal History of Numbers}. +% \newblock John Wiley \& Sons, 2000 (ISBN 0-471-37568-3). +% \newblock (Originally published as \textit{Histoire universelle des chiffres}. +% Robert Laffort, Paris, 1994.) +% +% \bibitem[Wal87]{WALKER87} +% C.~B.~F.~Walker. +% \newblock \emph{Reading the Past: Cuneiform}. +% \newblock University of California Press/British Museum, 1987. +% \newblock (ISBN 0-520-06115-2) +% +% \end{thebibliography} +% \PrintIndex +% +% } +% +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% COPSN10.MF Computer Old Persian Cuneiform font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="oldprsn"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=8pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.4pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Now for the driver (file) for the font. +% +% \subsection{The driver file} +% +% In a more complex font this would be in a separate driver file. +% +% \begin{macrocode} +font_coding_scheme:="Old Persian glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=px#; % vertical thickness of the pen + +define_pixels(s,u); +define_blacker_pixels(px,py); +define_good_x_pixels(leftloc); +define_corrected_pixels(o); % turn on overshoot correction +define_horizontal_corrected_pixels(ho); + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% \begin{macro}{aw} +% Variables for the middldle and rightmost xcoord of a character, and +% the actual width of a character. +% \begin{macrocode} +numeric midloc, rightloc, aw; +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trht} +% \begin{macro}{trbs} +% The normal height and base of a triangle. +% \begin{macrocode} +numeric trht, trbs; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{th} +% \begin{macro}{tb} +% The ratio of the normal height and base of a triangle with respect to +% the character height. +% \begin{macrocode} +numeric th, tb; +th = 6/24; tb = 8/24; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{wiht} +% \begin{macro}{wibs} +% The normal height and base of a wing. +% \begin{macrocode} +numeric wiht, wibs; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{wh} +% \begin{macro}{wb} +% The ratio of the normal height and base of a wing with respect to +% the character height. +% \begin{macrocode} +numeric wh, wb; +wh = 10/24; wb = 20/24; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{beginglyph} +% A macro to save some typing of beginchar arguments, and also assigns +% values to various variables. +% +% \begin{macrocode} +def beginglyph(expr code, unit_width) = + beginchar(code, unit_width*ht#+2s#, ht#, 0); + midloc:=1/2w; rightloc:=(w-s); aw := rightloc-leftloc; + trht := th*h; trbs := tb*h; + wiht := wh*h; wibs := wb*h; + pickup stylus enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{triangle} +% |triangle($, ht, base, angle)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| rotated +% at |angle| from pointing along the positive |x| axis. +% \begin{macrocode} + +def triangle(suffix $)(expr ht, bs, ang) = + path pth[]; + pair pr[]; + pr1 := (x$-ht,y$); % midpoint of base in default position + pr2 := pr1 shifted (1/2bs*up); % base points + pr3 := pr1 shifted (1/2bs*down); + z$trl = pr2 rotatedaround(z$, ang); + z$trr = pr3 rotatedaround(z$, ang); + z$trc = 1/2[z$trl,z$trr]; + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trir} +% |trir($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |x| direction (i.e., Right). +% \begin{macrocode} + +def trir(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$-ht, y$); % midpoint of base + z$trl = (x$trc, y$trc+1/2bs); % base points + z$trr = (x$trc, y$trc-1/2bs); + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{triu} +% |triu($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |y| direction (i.e. Up). +% \begin{macrocode} + +def triu(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$, y$-ht); % midpoint of base + z$trl = (x$-1/2bs, y$trc); % base points + z$trr = (x$+1/2bs, y$trc); % base points + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{tril} +% |tril($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |x| direction (i.e., Left). +% \begin{macrocode} + +def tril(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$+ht, y$); % midpoint of base + z$trl = (x$trc, y$trc-1/2bs); % base points + z$trr = (x$trc, y$trc+1/2bs); + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trid} +% |tril($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |x| direction (i.e., Left). +% \begin{macrocode} + +def tril(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$+ht, y$); % midpoint of base + z$trl = (x$trc, y$trc-1/2bs); % base points + z$trr = (x$trc, y$trc+1/2bs); + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trid} +% |trid($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |y| direction (i.e. Down). +% \begin{macrocode} + +def trid(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$, y$+ht); % midpoint of base + z$trl = (x$+1/2bs, y$trc); % base points + z$trr = (x$-1/2bs, y$trc); % base points + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wing} +% |wing($, ht, base, angle)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| rotated +% at |angle| from pointing along the negative |x| axis. +% \begin{macrocode} + +def wing(suffix $)(expr ht, bs, ang) = + path pth[]; + pair pr[]; + pr1 := (x$+ht,y$); % midpoint of base in default position + pr2 := pr1 shifted (1/2bs*down); % base points + pr3 := pr1 shifted (1/2bs*up); + pr4 := pr1 rotatedaround(z$, ang); + z$wil = pr2 rotatedaround(z$, ang); + z$wir = pr3 rotatedaround(z$, ang); + z$wic = 1/2[z$,pr4]; + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingl} +% |wingl($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |x| direction (i.e., Left). +% \begin{macrocode} + +def wingl(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$+ht, y$-1/2bs); % base points + z$wir = (x$wil, y$+1/2bs); + z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingd} +% |wingd($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |y| direction (i.e., Down). +% \begin{macrocode} + +def wingd(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$+1/2bs, y$+ht); % base points + z$wir = (x$-1/2bs, y$wil); + z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingr} +% |wingr($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |x| direction (i.e., Right). +% \begin{macrocode} + +def wingr(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$-ht, y$+1/2bs); % base points + z$wir = (x$wil, y$-1/2bs); + z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingu} +% |wingu($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |y| direction (i.e., Up). +% \begin{macrocode} + +def wingu(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$-1/2bs, y$-ht); % base points + z$wir = (x$+1/2bs, y$wil); + z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% Finally the code (file) that does all the work. +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the \thisfont{} font. +% The characters +% are defined in the original alphabetic ordering. +% +% +% \begin{macro}{a} +% The \thisfont{} A. +% \begin{macrocode} +cmchar "Old Persian letter a"; +beginglyph("a", (3tb+2th)); + z1trl=(leftloc,h); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(rightloc,y1); draw z1tic--z1'; + z12trc=(midloc,y1trr); % middle pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z11trl=z12trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z13trr=z12trl; % right pin + trid(13, trht, trbs); fill pth13; + z13'=(x13,0); draw z13tic--z13'; + labels(1,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{i} +% The \thisfont{} I. +% \begin{macrocode} +cmchar "Old Persian letter i"; +beginglyph("i", (2tb)); %% 3tb too large + z1trl=(leftloc,h); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(rightloc,y1); draw z1tic--z1'; + z11trr=z1trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % middle pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z2trc=(x11trl,y1); % second top head + trir(2, trht, trbs); fill pth2; + labels(1,2,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{u} +% The \thisfont{} U. +% \begin{macrocode} +cmchar "Old Persian letter u"; +beginglyph("u", (2tb+wh)); %% 3tb+wh too large + z31=(leftloc,1/2h); % left wing + wingl(31, wiht, wibs); fill pth31; + z1trl=(x31wil,h); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(rightloc,y1); draw z1tic--z1'; + z11trr=z1trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % middle pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + labels(1,2,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The \thisfont{} KA. +% \begin{macrocode} +cmchar "Old Persian syllable ka (k)"; +beginglyph("k", (3tb)); %% 4tb too large + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z11trr=(x1trl,1/2h); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(rightloc,y12); draw z12tic--z12'; + labels(1,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{K} +% The \thisfont{} KU. +% \begin{macrocode} +cmchar "Old Persian syllable ku (K)"; +beginglyph("K", (tb+wh)); + z1=(leftloc,1/2h); % wing + wingl(1, wiht, wibs); fill pth1; + z2trr=(x1wil,h); % pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + labels(1,2); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The \thisfont{} XA. +% \begin{macrocode} +cmchar "Old Persian syllable xa (x)"; +beginglyph("x", (2tb+2wh)); + z1=(leftloc,1/2h); % left wing + wingl(1, wiht, wibs); fill pth1; + z2=(x1wil,y1); % right wing + wingl(2, wiht, wibs); fill pth2; + z11trr=(x2wil,h); % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % right pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The \thisfont{} GA. +% \begin{macrocode} +cmchar "Old Persian syllable ga (g)"; +beginglyph("g", (3tb+wh)); + z1=(leftloc,1/2h); % wing + wingl(1, wiht, wibs); fill pth1; + z11trr=(x1wil,h); % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % right pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z21trc=(x12trl,y1); % small pin + trir(21, trht, trbs); fill pth21; + z21'=(rightloc,y21); draw z21tic--z21'; + labels(1,2,11,12,21); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The \thisfont{} syllable GU. +% \begin{macrocode} +cmchar "Old Persian syllable gu (G)"; +beginglyph("G", (2tb+th+wh)); %% 3tb+wh too large + z1=(leftloc,1/2h); % wing + wingl(1, wiht, wibs); fill pth1; + z12trc=(x1wil, 1/2h); % middle pin + trir(12, trht, trbs); fill pth12; + z12'=(rightloc,y12); draw z12tic--z12'; + z13trl=z12trr; % bottom pin + trir(13, trht, trbs); fill pth13; + z13'=(rightloc,y13); draw z13tic--z13'; + z11trr=z12trl; % top pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + z111trc=1/2[z11trc,z11']; + trir(111, trht, trbs); fill pth111; + labels(1,2,3,4,5,6,11,12,13,111); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{c} +% The \thisfont{} syllable CA. +% \begin{macrocode} +cmchar "Old Persian syllable ca (c)"; +beginglyph("c", (4tb)); + z1trl=(leftloc,h); % top pin + trir(1, trht, trbs); fill pth1; + z11trr=(x1, y1trr); % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % middle pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z2trl=z12trl; % bottom pin + trir(2, trht, trbs); fill pth2; + z2'=(rightloc,y2); draw z2tic--z2'; + z1'=(x2trl,y1); draw z1tic--z1'; % body of top pin + labels(1,2,3,4,5,6,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{j} +% The \thisfont{} syllable JA. +% \begin{macrocode} +cmchar "Old Persian syllable ja (j)"; +beginglyph("j", (th+tb+wh)); + z1trc=(leftloc,1/2h); % hor pin + trir(1, trht, trbs); fill pth1; + z2=(rightloc-wiht,y1); % wing + wingl(2, wiht, wibs); fill pth2; + draw z1tic--z2; + z11trc=(1/2[x1,x2], h); % vert pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + labels(1,2,3,4,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{J} +% The \thisfont{} syllable JI. +% \begin{macrocode} +cmchar "Old Persian syllable ji (J)"; +beginglyph("J",(7/2tb+wh)); %% 4tb+wh too large + z1trc=(leftloc, 1/2h); % left pin + trir(1, trht, trbs); fill pth1; + z2=(x1+trbs, y1); % wing + draw z1tic--z2; + wingl(2, wiht, wibs); fill pth2; + z12trc=(x2wil,y1); % middle pin + trir(12, trht, trbs); fill pth12; + z12'=(rightloc, y12); draw z12tic--z12'; + z11trr=z12trl; % top pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc, y11); draw z11tic--z11'; + z13trl=z12trr; % bottom pin + trir(13, trht, trbs); fill pth13; + z13'=(rightloc, y13); draw z13tic--z13'; + labels(1,2,3,4,5,6,7,8,9,10,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The \thisfont{} syllable TA. +% \begin{macrocode} +cmchar "Old Persian syllable ta (t)"; +beginglyph("t", (4tb+th)); %% 5tb too large + z3trl=(rightloc,h); % right pin + trid(3, trht, trbs); fill pth3; + z3'=(x3,0); draw z3tic--z3'; + z1trl=(x3trr-trbs,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z11trr=(leftloc,1/2h); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(x1,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(x1,y12); draw z12tic--z12'; + z2trc=(1/2[x1,x3], y11trl); % middle pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + labels(1,2,3,4,5,6,7,8,9,10,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The \thisfont{} syllable TU. +% \begin{macrocode} +cmchar "Old Persian syllable tu (T)"; +beginglyph("T", (4tb+th)); %% 5tb too large + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2trr=z1trl; % center pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + z3trr=z2trl; % right pin + trid(3, trht, trbs); fill pth3; + z3'=(x3,0); draw z3tic--z3'; + z11trl=(x3trl, 1/2h); % short hor pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + labels(1,2,3,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{o} +% The \thisfont{} syllable THA. +% \begin{macrocode} +cmchar "Old Persian syllable tha (o)"; +beginglyph("o", (2tb+wh)); + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2=(x1,1/2h); % wing + wingl(2, wiht, wibs); fill pth2; + z3trr=(x2wil,h); % right pin + trid(3, trht, trbs); fill pth3; + z3'=(x3,0); draw z3tic--z3'; + labels(1,2,3); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{C} +% The \thisfont{} syllable C(cedilla)A. +% \begin{macrocode} +cmchar "Old Persian syllable c(cedilla)a (C)"; +beginglyph("C", (2tb)); + z1trl=(leftloc,h); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(rightloc,y1); draw z1tic--z1'; + z2trl=z1trr; % center pin + trir(2, trht, trbs); fill pth2; + z2'=(rightloc,y2); draw z2tic--z2'; + z11trr=z2trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % right pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{d} +% The \thisfont{} syllable DA. +% \begin{macrocode} +cmchar "Old Persian syllable da (d)"; +beginglyph("d", (2tb)); + z1trl=(leftloc,h); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(rightloc,y1); draw z1tic--z1'; + z11trr=z1trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % right pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{P} +% The \thisfont{} syllable DI. +% \begin{macrocode} +cmchar "Old Persian syllable di (P)"; +beginglyph("P", (3tb+th)); %% 4tb too large + z2trl=(rightloc,h); % right pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + z1trl=z2trr; % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z12trc=(leftloc,1/2h); % center pin + trir(12, trht, trbs); fill pth12; + z12'=(x1,y12); draw z12tic--z12'; + z11trr=z12trl; % top pin + trir(11, trht, trbs); fill pth11; + z11'=(x1,y11); draw z11tic--z11'; + z13trl=z12trr; % bottom pin + trir(13, trht, trbs); fill pth13; + z13'=(x1,y13); draw z13tic--z13'; + labels(1,2,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{D} +% The \thisfont{} syllable DU. +% \begin{macrocode} +cmchar "Old Persian syllable du (D)"; +beginglyph("D", (2tb+th+wh)); %% 3tb+wh too large + z1=(leftloc,h/2); % wing + wingl(1, wiht, wibs); fill pth1; + z2trl=(rightloc,h); % right pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + z12trc=(x1wil,h/2); % center pin + trir(12, trht, trbs); fill pth12; + z12'=(x2,y12); draw z12tic--z12'; + z11trr=z12trl; % top pin + trir(11, trht, trbs); fill pth11; + z11'=(x2,y11); draw z11tic--z11'; + z13trl=z12trr; % bottom pin + trir(13, trht, trbs); fill pth13; + z13'=(x2,y13); draw z13tic--z13'; + labels(1,2,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{n} +% The \thisfont{} syllable NA. +% \begin{macrocode} +cmchar "Old Persian syllable na (n)"; +beginglyph("n", (2tb+wh)); + z1=(rightloc-wiht, h/2); % wing + wingl(1, wiht, wibs); fill pth1; + z11trr=(leftloc,h/2); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(x1,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(x1,y12); draw z12tic--z12'; + labels(1,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{N} +% The \thisfont{} syllable NU. +% \begin{macrocode} +cmchar "Old Persian syllable nu (N)"; +beginglyph("N", (2tb+2wh)); + z1=(leftloc, h/2); % left wing + wingl(1, wiht, wibs); fill pth1; + z2=(x1wil, y1); % right wing + wingl(2, wiht, wibs); fill pth2; + z11trr=(x2wil,h/2); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(rightloc,y12); draw z12tic--z12'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{p} +% The \thisfont{} syllable PA. +% \begin{macrocode} +cmchar "Old Persian syllable pa (p)"; +beginglyph("p", (2tb)); + z1trc=(leftloc,h); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(rightloc,y1); draw z1tic--z1'; + z2trl=(x1,y1); % middle pin + trir(2, trht, trbs); fill pth2; + z2'=(rightloc,y2); draw z2tic--z2'; + z3trl=(x1trc,y2); % bottom pin + trir(3, trht, trbs); fill pth3; + z3'=(rightloc,y3); draw z3tic--z3'; + z11trr=z3trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z12trr=z11trl; % right pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + labels(1,2,3,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{f} +% The \thisfont{} syllable FA. +% \begin{macrocode} +cmchar "Old Persian syllable fa (f)"; +beginglyph("f", (tb+2wh)); + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z11=(x1,h/2); % left wing + wingl(11, wiht, wibs); fill pth11; + z12=(x11wil,y11); % right wing + wingl(12, wiht, wibs); fill pth12; + labels(1,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{b} +% The \thisfont{} syllable BA. +% \begin{macrocode} +cmchar "Old Persian syllable ba (b)"; +beginglyph("b", (3tb)); + z1trl=(rightloc,h); % right pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z11trr=(leftloc,h/2); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(x1,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(x1,y12); draw z12tic--z12'; + labels(1,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{m} +% The \thisfont{} syllable MA. +% \begin{macrocode} +cmchar "Old Persian syllable ma (m)"; +beginglyph("m", (4tb+th)); %% 5tb too large + z3trl=(rightloc,h); % right pin + trid(3, trht, trbs); fill pth3; + z3'=(x3,0); draw z3tic--z3'; + z2trl=(x3trr,y3); % center pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + z1trl=(x2trr,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z11trc=(leftloc, h/2); % hor pin + trir(11, trht, trbs); fill pth11; + z11'=(x1,y11); draw z11tic--z11'; + labels(1,2,3,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{w} +% The \thisfont{} syllable MI. +% \begin{macrocode} +cmchar "Old Persian syllable mi (w)"; +beginglyph("w", (2tb+wh)); + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2=(x1,h/2); % wing + wingl(2, wiht, wibs); fill pth2; + z11trr=(x2wil, h/2); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(rightloc,y12); draw z12tic--z12'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{M} +% The \thisfont{} syllable MU. +% \begin{macrocode} +cmchar "Old Persian syllable mu (M)"; +beginglyph("M", (5tb+wh)); + z5trc=(rightloc-2trbs, h/2); % right pin + trir(5, trht, trbs); fill pth5; + z5'=(rightloc,y5); draw z5tic--z5'; + z4=(x5trc-wiht,y5); % wing + wingl(4, wiht, wibs); fill pth4; + z2trc=(leftloc+trht,y5); % middle pin + trir(2, trht, trbs); fill pth2; + z2'=z4; draw z2tic--z2'; + z1trr=(leftloc,y2trl); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(3/4[x1,x2'],y1); draw z1tic--z1'; + z3trl=(leftloc,y2trr); % bottom pin + trir(3, trht, trbs); fill pth3; + z3'=(x1',y3); draw z3tic--z3'; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{y} +% The \thisfont{} syllable YA. +% \begin{macrocode} +cmchar "Old Persian syllable ya (y)"; +beginglyph("y", (2tb+wh)); + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2=(x1,h/2); % wing + wingl(2, wiht, wibs); fill pth2; + z11trc=(x2wil, h/2); % right pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{r} +% The \thisfont{} syllable RA. +% \begin{macrocode} +cmchar "Old Persian syllable ra (r)"; +beginglyph("r", (3tb+th)); %% 4tb too large + z11trl=(rightloc, h); % right pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z2trc=(leftloc+trht,h/2); % middle pin + trir(2, trht, trbs); fill pth2; + z2'=(x11,y2); draw z2tic--z2'; + z1trr=(leftloc,y2trl); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(x2',y1); draw z1tic--z1'; + z3trl=(leftloc,y2trr); % bottom pin + trir(3, trht, trbs); fill pth3; + z3'=(x2',y3); draw z3tic--z3'; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{R} +% The \thisfont{} syllable RU. +% \begin{macrocode} +cmchar "Old Persian syllable ru (R)"; +beginglyph("R", (tb+th+2wh)); %% 2tb+2wh too large + z3=(rightloc-wiht,h/2); % right wing + wingl(3, wiht, wibs); fill pth3; + z2=(x3-wiht,y3); % left wing + wingl(2, wiht, wibs); fill pth2; + z1trc=(leftloc,y3); % pin + trir(1, trht, trbs); fill pth1; + z1'=z2; draw z1tic--z1'; + labels(1,2,3); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{l} +% The \thisfont{} syllable LA. +% \begin{macrocode} +cmchar "Old Persian syllable la (l)"; +beginglyph("l", (3tb+th)); %% 4tb too large + z11trl=(rightloc,h); % right pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z2trc=(leftloc,h/2); % middle pin + trir(2, trht, trbs); fill pth2; + z2'=(x11,y2); draw z2tic--z2'; + z1trr=(x2,y2trl); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(x2',y1); draw z1tic--z1'; + z3trl=(x1trr,y2trr); % bottom pin + trir(3, trht, trbs); fill pth3; + z3'=(x2',y3); draw z3tic--z3'; + labels(1,2,3,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{v} +% The \thisfont{} syllable VA. +% \begin{macrocode} +cmchar "Old Persian syllable va (v)"; +beginglyph("v", (5tb)); + z11trc=(leftloc,h/2); % left hor pin + trir(11, trht, trbs); fill pth11; + z11'=(x11+trbs,y11); draw z11tic--z11'; + z12trc=(x11',h); % vert pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z2=(x12+1/2trbs+2trht, h/2); % middle pin + trir(2, trht, trbs); fill pth2; + z2'=(rightloc,y2); draw z2tic--z2'; + z1trr=(x2trc-trht,y2trl); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(x2',y1); draw z1tic--z1'; + z3trl=(x1trr,y2trr); % bottom pin + trir(3, trht, trbs); fill pth3; + z3'=(x2',y3); draw z3tic--z3'; + labels(1,2,3,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{V} +% The \thisfont{} syllable VI. +% \begin{macrocode} +cmchar "Old Persian syllable vi (V)"; +beginglyph("V", (2tb)); + z1trl=(midloc,1/3h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2trr=z1trl; % right pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + z3trc=(x1trl,h); % top pin + trid(3, trht, trbs); fill pth3; + z3'=(x3,y1trl); draw z3tic--z3'; + z11trc=(leftloc, 1/2[y1trl,y3trl]); % hor pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + labels(1,2,3,4,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{s} +% The \thisfont{} syllable SA. +% \begin{macrocode} +cmchar "Old Persian syllable sa (s)"; +beginglyph("s", (3tb+th)); %% 4tb too large + z12trr=(leftloc,h); % vert pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z2=(x12+1/2trbs+2trht, h/2); % middle pin + trir(2, trht, trbs); fill pth2; + z2'=(rightloc,y2); draw z2tic--z2'; + z1trr=(x2trc-trht,y2trl); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(x2',y1); draw z1tic--z1'; + z3trl=(x1trr,y2trr); % bottom pin + trir(3, trht, trbs); fill pth3; + z3'=(x2',y3); draw z3tic--z3'; + labels(1,2,3,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{S} +% The \thisfont{} syllable SvA. +% \begin{macrocode} +cmchar "Old Persian syllable sva (S)"; +beginglyph("S", (2wh)); + z1=(leftloc,1/2wibs); % left wing + wingl(1, wiht, wibs); fill pth1; + z2=(x1+wiht,y1); % right wing + wingl(2, wiht, wibs); fill pth2; + z3trl=(leftloc,h); % pin + trir(3, trht, trbs); fill pth3; + z3'=(rightloc,y3); draw z3tic--z3'; + labels(1,2,3); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{z} +% The \thisfont{} syllable ZA. +% \begin{macrocode} +cmchar "Old Persian syllable za (z)"; +beginglyph("z", (4tb)); + z1trr=(leftloc,h); % left pin + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2trl=(rightloc,h); % right pin + trid(2, trht, trbs); fill pth2; + z2'=(x2,0); draw z2tic--z2'; + z11trc=(x1trl,h/2); % hor pins + trir(11, trht, trbs); fill pth11; + z11'=(x2trr,y11); draw z11tic--z11'; + z12trc=1/2[z11trc,z11']; + trir(12, trht, trbs); fill pth12; + labels(1,2,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{h} +% The \thisfont{} syllable HA. +% \begin{macrocode} +cmchar "Old Persian syllable ha (h)"; +beginglyph("h", (2tb+2wh)); + z1=(leftloc,h/2); % left wing + wingl(1, wiht, wibs); fill pth1; + z2=(rightloc-wiht,y1); % right wing + wingl(2, wiht, wibs); fill pth2; + z11trr=(x1wil,y1); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(x2,y11); draw z11tic--z11'; + z12trl=z11trr; % bottom pin + trir(12, trht, trbs); fill pth12; + z12'=(x2,y12); draw z12tic--z12'; + labels(1,2,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{X} +% The \thisfont{} word: king. +% \begin{macrocode} +cmchar "Old Persian word: king (X)"; +beginglyph("X", (3tb+2wh)); + z4=(rightloc-wiht, h/2); % right wing + wingl(4, wiht, wibs); fill pth4; + z11trc=(x4,h); % center vert pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z3wir=(x11trr,y4wir); % left wing + wingl(3, wiht, wibs); fill pth3; + z1trr=(leftloc,y4); % top pin + trir(1, trht, trbs); fill pth1; + z1'=(x3,y1); draw z1tic--z1'; + z2trl=z1trr; % bottom pin + trir(2, trht, trbs); fill pth2; + z2'=(x1',y2); draw z2tic--z2'; + labels(1,2,3,4,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{q} +% The \thisfont{} word: country (version a). +% \begin{macrocode} +cmchar "Old Persian word: country (version a) (q)"; +beginglyph("q", (9/4tb+wh)); %% 5/2tb+wh too large + numeric n[]; + n1 := 1/2wiht; + n2 := 1/2wibs; + z12trl=(rightloc,h); % right pin + trid(12, trht, trbs); fill pth12; + z12'=(x12,0); draw z12tic--z12'; + z11trl=z12trr; % left pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z1=(leftloc, h-1/2n2); % top left wing + wingl(1, n1, n2); fill pth1; + z2=(x1wil, y1); % top right wing + wingl(2, n1, n2); fill pth2; + z3=(x1, 1/2n2); % bottom left wing + wingl(3, n1, n2); fill pth3; + z4=(x2, y3); % bottom right wing + wingl(4, n1, n2); fill pth4; + labels(1,2,3,4,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{Q} +% The \thisfont{} word: country (version b). +% \begin{macrocode} +cmchar "Old Persian word: country (version b) (Q)"; +beginglyph("Q", (5/4tb+wh)); %% 3/2tb+wh too large + numeric n[]; + n1 := 1/2wiht; + n2 := 1/2wibs; + z11trl=(rightloc,h); % right pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + z1=(leftloc, h-1/2n2); % top left wing + wingl(1, n1, n2); fill pth1; + z2=(x1wil, y1); % top right wing + wingl(2, n1, n2); fill pth2; + z3=(x1, 1/2n2); % bottom left wing + wingl(3, n1, n2); fill pth3; + z4=(x2, y3); % bottom right wing + wingl(4, n1, n2); fill pth4; + labels(1,2,3,4,11,12); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{L} +% The \thisfont{} word: earth. +% \begin{macrocode} +cmchar "Old Persian word: earth (L)"; +beginglyph("L", (3wh)); + z1=(leftloc, wiht); % left wing + wingl(1, wiht, wibs); fill pth1; + z2=(x1wil, y1); % center wing + wingl(2, wiht, wibs); fill pth2; + z3=(x2wil, y1); % right wing + wingl(3, wiht, wibs); fill pth3; + z11trr=(x1,y1wir); % top pin + trir(11, trht, trbs); fill pth11; + z11'=(rightloc,y11); draw z11tic--z11'; + z12trc=(x2,y11); + trir(12, trht, trbs); fill pth12; + z13trc=(x3,y11); + trir(13, trht, trbs); fill pth13; + labels(1,2,3,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{B} +% The \thisfont{} word: god. +% \begin{macrocode} +cmchar "Old Persian word: god (B)"; +beginglyph("B", (2tb+2wh)); + z4=(rightloc-wiht, h/2); % right wing + wingl(4, wiht, wibs); fill pth4; + z3=(x4-wiht, y4); % left wing + wingl(3, wiht, wibs); fill pth3; + z1trc=(leftloc,y4); % pin + trir(1, trht, trbs); fill pth1; + z1'=z3; draw z1tic--z1'; + z2trc=1/2[z1trc,z1']; + trir(2, trht, trbs); fill pth2; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{e} +% The \thisfont{} word: Auramazda (verion a). +% \begin{macrocode} +cmchar "Old Persian word: Auramazda (version a) (e)"; +beginglyph("e", (3tb+wh)); + z43=(rightloc-wiht, h/2); % wing + wingl(43, wiht, wibs); fill pth43; + z46trc=(x43,h); % vert pin + trid(46, trht, trbs); fill pth46; + z46'=(x46,0); draw z46tic--z46'; + z14trr=(leftloc,h/2); % pin 3 + trir(14, trht, trbs); fill pth14; + z14'=(x46,y14); draw z14tic--z14'; + z24trc=1/2[z14trc,z14']; z34trc=2/3[z14trc,z14']; + trir(24, trht, trbs); fill pth24; +% trir(34, trht, trbs); fill pth34; + + z12trl=z14trr; % pin 2 + trir(12, trht, trbs); fill pth12; + z12'=(x46,y12); draw z12tic--z12'; + z22=(x24,y12); z32=(x34,y12); + trir(22, trht, trbs); fill pth22; +% trir(32, trht, trbs); fill pth32; + +% z21trl=(x24trc, y12trr); % pin 1 +% trir(21, trht, trbs); fill pth21; +% z21'=(x46,y21); draw z21tic--z21'; +% z31=(x34,y21); +% trir(31, trht, trbs); fill pth31; +% +% z25trr=(x24trc, y14trl); % pin 4 +% trir(25, trht, trbs); fill pth25; +% z25'=(x46,y25); draw z25tic--z25'; +% z35=(x34,y25); +% trir(35, trht, trbs); fill pth35; + labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{E} +% The \thisfont{} word: Auramazda (verion b). +% \begin{macrocode} +cmchar "Old Persian word: Auramazda (version b) (E)"; +beginglyph("E", (4tb)); +%% z43=(rightloc-wiht, h/2); % wing +%% wingl(43, wiht, wibs); fill pth43; + z46trc=(rightloc,h+trht); % vert pin + trid(46, trht, trbs); fill pth46; + z46'=(x46,-1/2trbs); draw z46tic--z46'; + z14trr=(leftloc,h/2); % pin 3 + trir(14, trht, trbs); fill pth14; + z14'=(x46,y14); draw z14tic--z14'; + z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14']; + trir(24, trht, trbs); fill pth24; + trir(34, trht, trbs); fill pth34; + + z12trl=z14trr; % pin 2 + trir(12, trht, trbs); fill pth12; + z12'=(x46,y12); draw z12tic--z12'; + z22=(x24,y12); z32=(x34,y12); + trir(22, trht, trbs); fill pth22; + trir(32, trht, trbs); fill pth32; + + z21trl=(x24trc, y12trr); % pin 1 + trir(21, trht, trbs); fill pth21; + z21'=(x46,y21); draw z21tic--z21'; + z31=(x34,y21); + trir(31, trht, trbs); fill pth31; + + z25trr=(x24trc, y14trl); % pin 4 + trir(25, trht, trbs); fill pth25; + z25'=(x46,y25); draw z25tic--z25'; + z35=(x34,y25); + trir(35, trht, trbs); fill pth35; + labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{F} +% The \thisfont{} word: Auramazda (verion c). +% \begin{macrocode} +cmchar "Old Persian word: Auramazda (version c) (F)"; +beginglyph("F", (4tb+wh)); + z43=(rightloc-wiht, h/2); % wing + wingl(43, wiht, wibs); fill pth43; + z46trc=(x43,h+trht); % vert pin + trid(46, trht, trbs); fill pth46; + z46'=(x46,-1/2trbs); draw z46tic--z46'; + z14trr=(leftloc,y43); % pin 3 + trir(14, trht, trbs); fill pth14; + z14'=(x46,y14); draw z14tic--z14'; + z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14']; + trir(24, trht, trbs); fill pth24; + trir(34, trht, trbs); fill pth34; + + z12trl=z14trr; % pin 2 + trir(12, trht, trbs); fill pth12; + z12'=(x46,y12); draw z12tic--z12'; + z22=(x24,y12); z32=(x34,y12); + trir(22, trht, trbs); fill pth22; + trir(32, trht, trbs); fill pth32; + + z21trl=(x24trc, y12trr); % pin 1 + trir(21, trht, trbs); fill pth21; + z21'=(x46,y21); draw z21tic--z21'; + z31=(x34,y21); + trir(31, trht, trbs); fill pth31; + + z25trr=(x24trc, y14trl); % pin 4 + trir(25, trht, trbs); fill pth25; + z25'=(x46,y25); draw z25tic--z25'; + z35=(x34,y25); + trir(35, trht, trbs); fill pth35; + labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% +% \begin{macro}{1} +% The \thisfont{} numeral 1 +% \begin{macrocode} +cmchar "Old Persian numeral 1 (1)"; +beginglyph("1", (tb)); + z1trc=(midloc,h); + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + labels(1,2); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{2} +% The \thisfont{} numeral 2 +% \begin{macrocode} +cmchar "Old Persian numeral 2 (2)"; +beginglyph("2", (tb)); + z1trc=(midloc,h); + trid(1, trht, trbs); fill pth1; + z1'=(x1,0); draw z1tic--z1'; + z2trc=1/2[z1trc,z1']; + trid(2, trht, trbs); fill pth2; + labels(1,2); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{3} +% The \thisfont{} numeral 10 +% \begin{macrocode} +cmchar "Old Persian numeral 10 (3)"; +beginglyph("3", (wh)); + z1=(leftloc,h/2); + wingl(1, wiht, wibs); fill pth1; + labels(1,2); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{4} +% The \thisfont{} numeral 20 +% \begin{macrocode} +cmchar "Old Persian numeral 20 (4)"; +beginglyph("4", (1/2wh)); + z1=(leftloc,3/4h); + wingl(1, 1/2wiht, 1/2wibs); fill pth1; + z2=(leftloc,1/4h); + wingl(2, 1/2wiht, 1/2wibs); fill pth2; + labels(1,2); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{5} +% The \thisfont{} numeral 100 +% \begin{macrocode} +cmchar "Old Persian numeral 100 (5)"; +beginglyph("5", (tb+2th)); + z1trl=(leftloc,h); % top pins + trir(1, trht, trbs); fill pth1; + z2trr=(rightloc,h); + tril(2, trht, trbs); fill pth2; + draw z1tic--z2tic; + z11trc=(1/2[x1,x2],y1trr); % vertical pin + trid(11, trht, trbs); fill pth11; + z11'=(x11,0); draw z11tic--z11'; + labels(1,2,11); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% +% +% \begin{macro}{:} +% The \thisfont{} word divider. +% \begin{macrocode} +cmchar "Old Persian word divider (:)"; +beginglyph(":", (3tb)); + numeric alpha; + alpha := trbs; + z1=(leftloc+alpha, h-alpha); + z2=(rightloc-alpha, alpha); + triangle(1, trht, trbs, angle((z2-z1))); + fill pth1; draw z1tic--z2; + labels(1,2); +endchar; + +% \end{macrocode} +% \end{macro} +% +% The end of the glyphs. +% +% \begin{macrocode} +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{copsn}{} + \DeclareFontShape{OT1}{copsn}{m}{n}{ <-> copsn10 }{} + \DeclareFontShape{OT1}{copsn}{bx}{n}{ <-> sub copsn/m/n }{} + \DeclareFontShape{OT1}{copsn}{b}{n}{ <-> sub copsn/m/n }{} + \DeclareFontShape{OT1}{copsn}{m}{sl}{ <-> sub copsn/m/n }{} + \DeclareFontShape{OT1}{copsn}{m}{it}{ <-> sub copsn/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{copsn}{} + \DeclareFontShape{T1}{copsn}{m}{n}{ <-> copsn10 }{} + \DeclareFontShape{T1}{copsn}{bx}{n}{ <-> sub copsn/m/n }{} + \DeclareFontShape{T1}{copsn}{b}{n}{ <-> sub copsn/m/n }{} + \DeclareFontShape{T1}{copsn}{m}{sl}{ <-> sub copsn/m/n }{} + \DeclareFontShape{T1}{copsn}{m}{it}{ <-> sub copsn/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{oldprsn} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{oldprsn}[2000/09/24 v1.1 package for Old Persian font] +% \end{macrocode} +% +% +% \begin{macro}{\copsnfamily} +% Selects the font family in the OT1 encoding. +% \begin{macrocode} +\newcommand{\copsnfamily}{\usefont{OT1}{copsn}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textcopsn} +% Text command for the font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textcopsn}{\copsnfamily} + +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} +\chardef\Oa=`a +\chardef\Oi=`i +\chardef\Ou=`u +\chardef\Oka=`k +\chardef\Oku=`K +\chardef\Oxa=`x +\chardef\Oga=`g +\chardef\Ogu=`G +\chardef\Oca=`c +\chardef\Oja=`j +\chardef\Oji=`J +\chardef\Ota=`t +\chardef\Otu=`T +\chardef\Otha=`o +\chardef\Occa=`C +\chardef\Oda=`d +\chardef\Odi=`P +\chardef\Odu=`D +\chardef\Ona=`n +\chardef\Onu=`N +\chardef\Opa=`p +\chardef\Ofa=`f +\chardef\Oba=`b +\chardef\Oma=`m +\chardef\Omi=`w +\chardef\Omu=`M +\chardef\Oya=`y +\chardef\Ora=`r +\chardef\Oru=`R +\chardef\Ola=`l +\chardef\Ova=`v +\chardef\Ovi=`V +\chardef\Osa=`s +\chardef\Osva=`S +\chardef\Oza=`z +\chardef\Oha=`h +\chardef\Oking=`X +\chardef\Ocountrya=`q +\chardef\Ocountryb=`Q +\chardef\Oearth=`L +\chardef\Ogod=`B +\chardef\OAura=`e +\chardef\OAurb=`E +\chardef\OAurc=`F +\chardef\Owd=`: +\chardef\Oone=`1 +\chardef\Otwo=`2 +\chardef\Oten=`3 +\chardef\Otwenty=`4 +\chardef\Ohundred=`5 + +% \end{macrocode} +% +% \begin{macro}{\translitcopsn} +% \begin{macro}{\translitcopsnfont} +% |\translitcopsn{|\meta{char-commands}|}| typesets a transliteration of +% the \thisfont{} character commands. These are typeset with the +% |\translitcopsnfont|. +% \begin{macrocode} +\newcommand{\translitcopsn}[1]{{% + \@translitO\translitcopsnfont #1}} +\newcommand{\translitcopsnfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitO} +% This macro redefines all the character producing commands for use within +% |\translitcopsn|. It is important not to have any spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitO}{% +\def\Oa{a-}% +\def\Oi{i-}% +\def\Ou{u-}% +\def\Oka{ka-}% +\def\Oku{ku-}% +\def\Oxa{xa-}% +\def\Oga{ga-}% +\def\Ogu{gu-}% +\def\Oca{ca-}% +\def\Oja{ja-}% +\def\Oji{ji-}% +\def\Ota{ta-}% +\def\Otu{tu-}% +\def\Otha{tha-}% +\def\Occa{\c{c}a-}% +\def\Oda{da-}% +\def\Odi{di-}% +\def\Odu{du-}% +\def\Ona{na-}% +\def\Onu{nu-}% +\def\Opa{pa-}% +\def\Ofa{fa-}% +\def\Oba{ba-}% +\def\Oma{ma-}% +\def\Omi{mi-}% +\def\Omu{mu-}% +\def\Oya{ya-}% +\def\Ora{ra-}% +\def\Oru{ru-} +\def\Ola{la-}% +\def\Ova{va-}% +\def\Ovi{vi-}% +\def\Osa{sa-}% +\def\Osva{\v{s}a-}% +\def\Oza{za-}% +\def\Oha{ha-}% +\def\Oking{x\v{s}\={a}yathiya\space}% +\def\Ocountrya{dahy\={a}u\v{s}\space}% +\def\Ocountryb{dahy\={a}u\v{s}\space}% +\def\Oearth{b\={u}mi\v{s}\space}% +\def\Ogod{baga\space}% +\def\OAura{Auramazd\={a}\space}% +\def\OAurb{Ahuramazda\space}% +\def\OAurc{Ahuramazda\space}% +\def\Owd{:\space}% +\def\Oone{1+}% +\def\Otwo{2+}% +\def\Oten{10+}% +\def\Otwenty{20+}% +\def\Ohundred{100+}% +} + +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The map file} +% +% Just a short map file. +% \changes{v1.2}{2005/06/17}{Added the map file} +% +% \begin{macrocode} +%<*map> +copsn10 Archaic-Old-Persian <copsn10.pfb +%</map> +% \end{macrocode} +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/oldprsn.ins b/Master/texmf-dist/source/fonts/archaic/oldprsn.ins new file mode 100644 index 00000000000..d21c0965fdb --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/oldprsn.ins @@ -0,0 +1,91 @@ +%% oldprsn.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{oldprsn.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{oldprsn.drv}{t}{\from{oldprsn.dtx}{driver}} + +\Msg{*** Generating the Metafont files ***} + +\usepostamble\empty +\generateFile{copsn10.mf}{t}{\from{oldprsn.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1copsn.fd}{t}{\from{oldprsn.dtx}{fdot1}} +\generateFile{t1copsn.fd}{t}{\from{oldprsn.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{oldprsn.sty}{t}{\from{oldprsn.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{oldprsn.map}{t}{\from{oldprsn.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue the installation move these files into } +\Msg{* the LaTeX macro area:} +\Msg{* \space\space ot1copsn.fd} +\Msg{* \space\space t1copsn.fd} +\Msg{* \space\space oldprsn.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/phoenician.dtx b/Master/texmf-dist/source/fonts/archaic/phoenician.dtx new file mode 100644 index 00000000000..a7780a1400f --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/phoenician.dtx @@ -0,0 +1,1438 @@ +% \iffalse meta-comment +% +% phoenician.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{phoenician} +\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{phoenician.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{491} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v2.0}{2000/10/01}{Major changes to practically everything} +% \changes{v2.1}{2005/04/04}{Minor circumstances and Type1} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v2.0} \def\filedate{2000/10/01} +% \def\fileversion{v2.1} \def\filedate{2005/04/04} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Phoenician} +% +% \title{The \Lpack{Phoenician} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{phoenician} package provides a set of Postscript Type1 +% fonts for the Phoenician script used about 1100~\BC. +% \end{abstract} +% \tableofcontents +% +% +% \section{Introduction} +% +% The Phoenician alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. +% The font presented here is one of a series of fonts intended to show how +% the modern Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{MITTELBACH04}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented MetaFont code for the fonts +% and source code for the package may be in later sections. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F', and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{phoenician} package} \label{sec:usc} +% +% The Phoenician alphabet consisted of 22 letters. +% The Phoenician font as provided here consists of 23 letter shapes +% as there appears to be two forms of the letter \textit{vav}. +% I have used infromation from Johanna Drucker~\cite{DRUCKER95}, +% John Healey~\cite{HEALEY90} and +% Richard Firmage~\cite{FIRMAGE93}, as well as the +% \textit{Encyclopedia Brittanica}, in deciding on the letter shapes. +% +% +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and, where I know it, the +% modern name of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{cclcll} \hline +% Glyph & Value & Name & ASCII & Commands (L-R) & Commands (R-L)\\ \hline +% \textphnc{a} & \textit{a} & +% aleph & +% ' a & |\Arq| |\Aa| |\Aaleph| & +% |\ARrq| |\ARa| |\ARaleph| +% \\ +% \textphnc{b} & \textit{b} & +% beth & +% b & |\Ab| |\Abeth| & +% |\ARb| |\ARbeth| +% \\ +% \textphnc{g} & \textit{g} & +% gimel & +% g & |\Ag| |\Agimel| & +% |\ARg| |\ARgimel| +% \\ +% \textphnc{d} & \textit{d} & +% daleth & +% d & |\Ad| |\Adaleth| & +% |\ARd| |\ARdaleth| +% \\ +% \textphnc{h} & \textit{h} & +% he & +% h & |\Ah| |\Ahe| & +% |\ARh| |\ARhe| +% \\ +% \textphnc{f} & \textit{w} & +% vav & +% f & |\Af| |\Avaf| & +% |\ARf| |\ARvaf| +% \\ +% \textphnc{w} & \textit{w} & +% vav & +% w & |\Aw| |\Avav| & +% |\ARw| |\ARvav| +% \\ +% \textphnc{z} & \textit{z} & +% zayin & +% z & |\Az| |\Azayin| & +% |\ARz| |\ARzayin| +% \\ +% \textphnc{H} & \textit{\d{h}} & +% heth & +% H & |\Ahd| |\Aheth| & +% |\ARhd| |\ARheth| +% \\ +% \textphnc{T} & \textit{\d{t}} & +% teth & +% T & |\Atd| |\Ateth| & +% |\ARtd| |\ARteth| +% \\ +% \textphnc{y} & \textit{y} & +% yod & +% y & |\Ay| |\Ayod| & +% |\ARy| |\ARyod| +% \\ +% \textphnc{k} & \textit{k} & +% kaph & +% k & |\Ak| |\Akaph| & +% |\ARk| |\ARkaph| +% \\ +% \textphnc{l} & \textit{l} & +% lamed & +% l & |\Al| |\Alamed| & +% |\ARl| |\ARlamed| +% \\ +% \textphnc{m} & \textit{m} & +% mem & +% m & |\Am| |\Amem| & +% |\ARm| |\ARmem| +% \\ +% \textphnc{n} & \textit{n} & +% nun & +% n & |\An| |\Anun| & +% |\ARn| |\ARnun| +% \\ +% \textphnc{s} & \textit{s} & +% samekh & +% s & |\As| |\Asamekh| & +% |\ARs| |\ARsamekh| +% \\ +% \textphnc{o} & \textit{`} & +% ayin & +% ` o & |\Alq| |\Ao| |\Aayin| & +% |\ARlq| |\ARo| |\ARayin| +% \\ +% \textphnc{p} & \textit{p} & +% pe & +% p & |\Ap| |\Ape| & +% |\ARp| |\ARpe| +% \\ +% \textphnc{x} & \textit{\d{s}} & +% sade & +% x & |\Asd| |\Asade| & +% |\ARsd| |\ARsade| +% \\ +% \textphnc{q} & \textit{q} & +% qoph & +% q & |\Aq| |\Aqoph| & +% |\ARq| |\ARqoph| +% \\ +% \textphnc{r} & \textit{r} & +% resh & +% r & |\Ar| |\Aresh| & +% |\ARr| |\ARresh| +% \\ +% \textphnc{S} & \textit{\v{s}} & +% shin & +% S & |\Asv| |\Ashin| & +% |\ARsv| |\ARshin| +% \\ +% \textphnc{t} & \textit{t} & +% tav & +% t & |\At| |\Atav| & +% |\ARt| |\ARtav| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% +% +% \DescribeMacro{\phncfamily} +% This command selects the Phoenician font family. The family name is |phnc|. +% +% \DescribeMacro{\textphnc} +% The command |\textphnc{|\meta{text}|}| typesets \meta{text} in the +% Phoenician font. +% +% I have provided three ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, +% (b) by commands whose names are based on the transliterated values, and +% (c) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab} for left-to-right writing. For +% right-to-left typesetting the glyphs, which are mirror images of +% those for left-to-right writing, can only be accessed by commands +% corresponding to those in the table --- those that are of the form +% |\ARxxx| instead of |\Axxx|. +% +% \DescribeMacro{\translitphnc} +% The command |\translitphnc{|\meta{commands}|}| will typeset the +% transliteration of the \thisfont{} character commands (those in the +% last two columns of Table~\ref{tab}). +% +% \DescribeMacro{\translitphncfont} +% The font used for the transliteration is defined by this macro, +% which is initialised to an italic font (i.e., |\itshape|). +% +% +% \StopEventually{ +% +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[Hea90]{HEALEY90} +% John F.~Healey. +% \newblock \emph{The Early Alphabet}. +% \newblock University of California Press/British Museum, 1990. +% +% \bibitem[MG04]{MITTELBACH04} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \end{thebibliography} +% \PrintIndex +% } +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% PHNC10.MF Computer Phoenician font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="phoenician"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.7pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font, normally the driver file would be called next. +% In this case I have embedded it. +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% If there was a seperate driver file, this would be its contents. +% +% \begin{macrocode} + +font_coding_scheme:="Phoenician glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.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} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% This would be the end of the driver file, except for calling the +% glyph code file. +% +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Phoenician font. The characters +% are defined in the Phoenician alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{'} +% The Phoenician \textit{alpeh} (ox), which is like our A but tilted. +% \begin{macrocode} + +cmchar "Phoenician letter alpeh (')"; +beginglyph("'",0.6); +x3=rightloc; y3=0.5h; % apex +x1=0.1[leftloc, rightloc]; y1=0.1h; % bottom leg end +z2=(leftloc,0.9h); % top leg end +x7= 0.7[leftloc, rightloc]; y7=0; % construction points +x6= 0.2[leftloc, rightloc]; y6=h; +z4'= whatever[z1,z3] = whatever[z7,z6]; % bottom leg intersection +z5'= whatever[z2,z3] = whatever[z7,z6]; % top leg intersection +z4 = 1.2[z5', z4']; z5 = 1.1[z4', z5']; +draw z1--z3--z2; % the legs +draw z4--z5; % the bar +labels(1,2,3,4,4',5,5',6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The Phoenician \textit{alpeh} (ox), which is like our A but tilted. +% \begin{macrocode} + +cmchar "Phoenician letter alpeh (a)"; +beginglyph("a",0.6); +x3=rightloc; y3=0.5h; % apex +x1=0.1[leftloc, rightloc]; y1=0.1h; % bottom leg end +z2=(leftloc,0.9h); % top leg end +x7= 0.7[leftloc, rightloc]; y7=0; % construction points +x6= 0.2[leftloc, rightloc]; y6=h; +z4'= whatever[z1,z3] = whatever[z7,z6]; % bottom leg intersection +z5'= whatever[z2,z3] = whatever[z7,z6]; % top leg intersection +z4 = 1.2[z5', z4']; z5 = 1.1[z4', z5']; +draw z1--z3--z2; % the legs +draw z4--z5; % the bar +labels(1,2,3,4,4',5,5',6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The Phoenician \textit{beth} (house), somewhat like a modern P. +% \begin{macrocode} + +cmchar "Phoenician letter beth (b)"; +beginglyph("b",0.6); +x1=x3=0.2[leftloc, rightloc]; +rt x4=rightloc; y4= 0.75h; +x2=leftloc; +bot y1=-o; top y3=h; y2=0.5h; +draw z1..z2..z3; % the upright +draw z3--z4--z2; % upper bowl +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The Phoenician \textit{gimel} (camel). Like a broken topped T. +% \begin{macrocode} + +cmchar "Phoenician letter gimel (g)"; +beginglyph("g", 0.6); +x3=leftloc; x1=x2=midloc; x4=rightloc; +bot y1=-o; y2=y3=h; +y4=0.8h; +draw z1--z2; % the stem +draw z3--z2--z4; % the top bar +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{D} +% The Phoenician \textit{daleth} (door); it's like the Greek \textit{delta} ($\Delta$). +% \begin{macrocode} + +cmchar "Phoenician letter daleth (d)"; +beginglyph("d",0.6); +x1=leftloc; x2=rightloc; x3=midloc; +bot y1= bot y2= 0; top y3=h; +draw z1--z2--z3--cycle; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{h} +% The Phoenician \textit{he} (window?), like a droopy E. +% \begin{macrocode} + +cmchar "Phoenician letter he (h)"; +beginglyph("h",0.6); +numeric alpha; +alpha:=0.1; +x4=x5=x6=x7=leftloc; +x1=x2=x3=rightloc; +bot y4=-o; y7=h; +y6=.7h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z1--z5; draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{f} +% This is one of forms of the Phoenician \textit{vau} (nail). +% It's like a 2-armed E. +% \begin{macrocode} + +cmchar "Phoenician letter vau (f)"; +beginglyph("f",0.6); +numeric alpha; +alpha:=0.1; +x4=x5=x6=x7=leftloc; +x1=x2=x3=rightloc; +bot y4=-o; y7=h; +y6=.6h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The Phoenician \textit{zayin} (dagger?). It looks like a modern seriffed I. +% \begin{macrocode} + +cmchar "Phoenician letter zayin (z)"; +beginglyph("z",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; % the upright +x3=x5=leftloc; x4=x6=rightloc; +y3=y4=y1; y5=y6=y2; +draw z3--z4; % lower bar +draw z5--z6; % upper bar +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% +% \begin{macro}{H} +% The Phoenician \textit{cheth} (fence?). It looks like a rectangle with two horizontal +% internal bars. +% \begin{macrocode} + +cmchar "Phoenician letter cheth (H)"; +beginglyph("H", 0.6); +numeric alpha; +alpha:=0.1; +x4=x6=leftloc; +x1=x3=rightloc; +bot y1=-o; top y6=h; +y3=y6-alpha*h; y4=y1+alpha*h; +z2=0.35[z1,z3]; z5=0.35[z4,z6]; % ends of one bar +z7=0.65[z1,z3]; z8=0.65[z4,z6]; % other bar +draw z1--z3--z6--z4--cycle; % outer boundary +draw z2--z5; draw z7--z8; % the bars + +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Thet} +% The Phoenician \textit{thet}. It's a precursor of the Greek \textit{theta} ($\Theta$). +% \begin{macrocode} + +cmchar "Phoenician letter thet (T)"; +beginglyph("T",1.0); +path p; +x1=leftloc; x3=rightloc; +y2=h; y4=0; +x2=x4=midloc; +y1=y3=h/2; +z100=(x2,y3); % circle center +p = z1..z2..z3..z4..cycle; +z11= (z100--(leftloc,h)) intersectionpoint p; +z12= (z100--(rightloc,h)) intersectionpoint p; +z13= (z100--(rightloc,0)) intersectionpoint p; +z14= (z100--(leftloc,0)) intersectionpoint p; +draw p; +draw z11--z13; draw z12--z14; % the cross +labels(1,2,3,4,11,12,13,14); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{y} +% The Phoenician \textit{yod} (hand). +% \begin{macrocode} + +cmchar "Phoenician letter yod (y)"; +beginglyph("y",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The Phoenician \textit{kaph} (palm of the hand). +% \begin{macrocode} + +cmchar "Phoenician letter kaph (k)"; +beginglyph("k",0.6); +numeric alpha; +alpha:=0.8; +z1=(rightloc,0); +z3=(rightloc,h); +z5=(leftloc,h); +z4=alpha[z1,z5]; +z2=alpha[z1,z3]; +draw z1--z5; % the stem +draw z3--z4--z2; % arms +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The Phoenician \textit{lamed} (ox goad). +% \begin{macrocode} + +cmchar "Phoenician letter lamed (l)"; +beginglyph("l",0.4); +x2=x3=leftloc; +x1=rightloc; +bot y2=-o; +y1=.3h; +y3=h; +draw z2--z3; % the upright +draw z2--z1; % the arms +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The Phoenician \textit{mem} (water). +% \begin{macrocode} + +cmchar"Phoenician letter mem (m)"; +beginglyph("m",1.0); +x1=rightloc; +x5=x6=leftloc; +x2=3/4[x5,x1]; x3=1/2[x5,x1]; x4=1/4[x5,x1]; +bot y6= -o; +top y5= top y3 = h; +top y1=.8h; +y2=.6h; +y4=.7h; +draw z6--z5; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The Phoenician \textit{nun} (fish). +% \begin{macrocode} + +cmchar "Phoenician letter nun (n)"; +beginglyph("n",0.6); +x1=rightloc; +x3=midloc; x2=x4=leftloc; +bot y2=-o; +top y1= top y4= h; +y3=.7h; +draw z2--z4; +draw z1--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{s} +% The Phoenician \textit{samech} (post). +% It is a progenitor of the Greek \textit{xi} ($\Xi$). +% \begin{macrocode} + +cmchar "Phoenician letter samekh (s)"; +beginglyph("s", 0.6); +x1= x2 = midloc; +x3=x4=x5=leftloc; +x6=x7=x8=rightloc; +y1=0; +y3=y6=0.4h; +y4=y7=0.7h; +y5=y2=y8=h; +draw z1--z2; % upright +draw z3--z6; draw z4--z7; draw z5--z8; % arms +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The Phoenician \textit{ayin} (eye). +% \begin{macrocode} + +cmchar "Phoenician letter ayin (o)"; +beginglyph("o",1.0); +x1=leftloc; x3=rightloc; +y2=h; y4=0; +x2=x4=midloc; +y1=y3=h/2; +draw z1..z2..z3..z4..cycle; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{`} +% The Phoenician \textit{ayin} (eye). +% \begin{macrocode} + +cmchar "Phoenician letter ayin (`)"; +beginglyph("`",1.0); +x1=leftloc; x3=rightloc; +y2=h; y4=0; +x2=x4=midloc; +y1=y3=h/2; +draw z1..z2..z3..z4..cycle; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The Phoenician \textit{pe} (mouth). +% \begin{macrocode} + +cmchar "Phoenician letter pe (p)"; +beginglyph("p", 0.4); +x1=rightloc; x2=x3=leftloc; +bot y3=-o; y2=h; +y1=0.8h; +draw z1..z2{left}--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The Phoenician \textit{tsade}. +% \begin{macrocode} + +cmchar "Phoenician letter tsade (x)"; +beginglyph("x", 0.6); +x1=x2=rightloc; +x3=0.4[leftloc, rightloc]; +x4=0.6[leftloc, rightloc]; +x5=leftloc; +y1=0; +y2=y3=h; +y4=y5=0.8h; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{q} +% The Phoenician \textit{qoph} (knot?). +% \begin{macrocode} + +cmchar "Phoenician letter qoph (q)"; +beginglyph("q",0.6); +numeric alpha; +x1=leftloc; +x3=rightloc; +alpha=0.5(x3-x1); % circle radius +y2=h; +y4=y2-2alpha; +bot y5=-o; +x2=x4=x5=midloc; +y1=y3=h-alpha; +draw z1..z2..z3..z4..cycle; % the circle +draw z5--z2; % the upright +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The Phoenician \textit{resh} (head). It looks a little like a P. +% \begin{macrocode} + +cmchar "Phoenician letter resh(r)"; +beginglyph("r", 0.4); +x1=x2=x3=leftloc; x4=rightloc; +bot y1=-o; top y2=h; +y3=y4=0.5h; +draw z1--z2--z4--z3; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{S} +% The Phoenician \textit{shin} (teeth). It's like a Greek \textit{sigma} ($\Sigma$) +% lying on its side. +% \begin{macrocode} + +cmchar "Phoenician letter shin (S)"; +beginglyph("S", 0.6); +z1=(leftloc,h); z5=(rightloc,h); +x2 = 0.2[leftloc, rightloc]; x4 = 0.8[leftloc, rightloc]; +x3=midloc; +y2=y4=0; +y3 = 0.4h; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The Phoenician \textit{tav} (mark). +% \begin{macrocode} + +cmchar "Phoenician letter tav (t)"; +beginglyph("t", 0.5); +x1=x2=midloc; +x3=leftloc; x4=rightloc; +bot y1=0; y2=h; +y3=y4=0.6h; +draw z1--z2; % the stem +draw z3--z4; % the crossbar +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{w} +% Another form of the Phoenician \textit{vau}. +% \begin{macrocode} + +cmchar "Phoenician letter vau (w)"; +beginglyph("w", 0.6); +x1=x2=midloc; +x3=leftloc; x4=rightloc; +bot y1=0; y2=0.6h; +y3=y4=h; +draw z1--z2; % the stem +draw z3--z2--z4; % the crossbar + +labels(1,2,3,4); endchar; + + +% \end{macrocode} +% \end{macro} +% +% +% +% The following characters are for the normal Phoenician writing mode +% of right to left. The characters are mirror images of the ASCII uppercase +% counterparts. Symmetric characters that are called by \LaTeX{} commands +% need not be coded. +% +% +% \begin{macro}{B} +% The letter B, which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L b (B)"; +beginglyph("B",0.6); +x1=x3=0.2[rightloc, leftloc]; +lft x4=leftloc; y4= 0.75h; +x2=rightloc; +bot y1=-o; top y3=h; y2=0.5h; +draw z1..z2..z3; % the upright +draw z3--z4--z2; % the bowl +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The letter G which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L g (G)"; +beginglyph("G", 0.6); +x3=rightloc; x1=x2=midloc; x4=leftloc; +bot y1=-o; y2=y3=h; +y4=0.8h; +draw z1--z2; % the stem +draw z3--z2--z4; % top bar +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{e} +% The letter he which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L he (e)"; +beginglyph("e",0.6); +numeric alpha; +alpha:=0.1; +x1=x2=x3=leftloc; x4=x5=x6=x7=rightloc; +bot y4=-o; y7=h; +y6=.7h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z1--z5; draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{F} +% The letter vau (f) which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L f-vau (F)"; +beginglyph("F",0.6); +numeric alpha; +alpha:=0.1; +x1=x2=x3=leftloc; x4=x5=x6=x7=rightloc; +bot y4=-o; y7=h; +y6=.6h; y5=.4h; +y1=y5-alpha*h; y2=y6-alpha*h; y3=y7-alpha*h; +draw z4--z7; % the upright +draw z2--z6; draw z3--z7; % the arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{E} +% The letter heth which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L heth (E)"; +beginglyph("E", 0.6); +numeric alpha; +alpha:=0.1; +x1=x3=leftloc; x4=x6=rightloc; +bot y1=-o; top y6=h; +y3=y6-alpha*h; y4=y1+alpha*h; +z2=0.35[z1,z3]; z5=0.35[z4,z6]; +z7=0.65[z1,z3]; z8=0.65[z4,z6]; +draw z1--z3--z6--z4--cycle; % outer boundary +draw z2--z5; draw z7--z8; % bars +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{K} +% The letter kaph which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L kaph (K)"; +beginglyph("K",0.6); +numeric alpha; +alpha:=0.8; +z1=(leftloc,0); +z3=(leftloc,h); +z5=(rightloc,h); +z4=alpha[z1,z5]; +z2=alpha[z1,z3]; +draw z1--z5; % the stem +draw z3--z4--z2; % the arms +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{L} +% The letter lamed which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L lamed (L)"; +beginglyph("L",0.4); +x1=leftloc; x2=x3=rightloc; +bot y2=-o; +y1=.3h; +y3=h; +draw z2--z3; % the upright +draw z2--z1; % the arms +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{M} +% The letter mem which is asymmetrical. +% \begin{macrocode} + +cmchar"Phoenician R-L mem (M)"; +beginglyph("M",1.0); +x1=leftloc; +x5=x6=rightloc; +x2=1/4[x1,x5]; x3=1/2[x1,x5]; x4=3/4[x1,x5]; +bot y6= -o; +top y5= top y3 = h; +top y1=.8h; +y2=.6h; +y4=.7h; +draw z6--z5; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{N} +% The letter nun which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L nun (N)"; +beginglyph("N",0.6); +x1=leftloc; +x3=midloc; x2=x4=rightloc; +bot y2=-o; +top y1= top y4= h; +y3=.7h; +draw z2--z4; +draw z1--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{P} +% The letter pe which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L pe (P)"; +beginglyph("P", 0.4); +x1=leftloc; x2=x3=rightloc; +bot y3=-o; y2=h; +y1=0.8h; +draw z1..z2{right}--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{X} +% The Phoenician \textit{tsade} which is asymmetrical. +% \begin{macrocode} + +cmchar "Phoenician R-L tsade (X)"; +beginglyph("X", 0.6); +x1=x2=leftloc; +x3=0.6[leftloc, rightloc]; +x4=0.4[leftloc, rightloc]; +x5=rightloc; +y1=0; +y2=y3=h; +y4=y5=0.8h; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{R} +% The letter resh which is asymmetrical. +% \begin{macrocode} +cmchar "Phoenician R-L resh (R)"; +beginglyph("R", 0.4); +x1=x2=x3=rightloc; x4=leftloc; +bot y1=-o; top y2=h; +y3=y4=0.5h; +draw z1--z2--z4--z3; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% The end of the glyphs and the file. +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{phnc}{} + \DeclareFontShape{OT1}{phnc}{m}{n}{ <-> phnc10 }{} + \DeclareFontShape{OT1}{phnc}{bx}{n}{ <-> sub phnc/m/n }{} + \DeclareFontShape{OT1}{phnc}{b}{n}{ <-> sub phnc/m/n }{} + \DeclareFontShape{OT1}{phnc}{m}{sl}{ <-> sub phnc/m/n }{} + \DeclareFontShape{OT1}{phnc}{m}{it}{ <-> sub phnc/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{phnc}{} + \DeclareFontShape{T1}{phnc}{m}{n}{ <-> phnc10 }{} + \DeclareFontShape{T1}{phnc}{bx}{n}{ <-> sub phnc/m/n }{} + \DeclareFontShape{T1}{phnc}{b}{n}{ <-> sub phnc/m/n }{} + \DeclareFontShape{T1}{phnc}{m}{sl}{ <-> sub phnc/m/n }{} + \DeclareFontShape{T1}{phnc}{m}{it}{ <-> sub phnc/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{phoenician} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{phoenician}[2000/10/01 v1.1 package for Phoenician fonts] +% \end{macrocode} +% +% +% \begin{macro}{\phncfamily} +% Selects the Phoenician font family in the OT1 encoding. +% \begin{macrocode} +\newcommand{\phncfamily}{\usefont{OT1}{phnc}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textphnc} +% Text command for the Phoenician font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textphnc}{\phncfamily} +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} + +\chardef\Arq=`' \chardef\ARrq=`' \chardef\Aaleph=`a \chardef\ARaleph=`a +\chardef\Aa=`a \chardef\ARa=`a +\chardef\Ab=`b \chardef\ARb=`B \chardef\Abeth=`b \chardef\ARbeth=`B +\chardef\Ag=`g \chardef\ARg=`G \chardef\Agimel=`g \chardef\ARgimel=`G +\chardef\Ad=`d \chardef\ARd=`d \chardef\Adaleth=`d \chardef\ARdaleth=`d +\chardef\Ah=`h \chardef\ARh=`e \chardef\Ahe=`h \chardef\ARhe=`e +\chardef\Af=`f \chardef\ARf=`F \chardef\Avaf=`f \chardef\ARvaf=`F +\chardef\Az=`z \chardef\ARz=`z \chardef\Azayin=`z \chardef\ARzayin=`z +\chardef\Ahd=`H \chardef\ARhd=`E \chardef\Aheth=`H \chardef\ARheth=`E +\chardef\Atd=`T \chardef\ARtd=`T \chardef\Ateth=`T \chardef\ARteth=`T +\chardef\Ay=`y \chardef\ARy=`y \chardef\Ayod=`y \chardef\ARyod=`y +\chardef\Ak=`k \chardef\ARk=`K \chardef\Akaph=`k \chardef\ARkaph=`K +\chardef\Al=`l \chardef\ARl=`L \chardef\Alamed=`l \chardef\ARlamed=`L +\chardef\Am=`m \chardef\ARm=`M \chardef\Amem=`m \chardef\ARmem=`M +\chardef\An=`n \chardef\ARn=`N \chardef\Anun=`n \chardef\ARnun=`N +\chardef\As=`s \chardef\ARs=`s \chardef\Asamekh=`s \chardef\ARsamekh=`s +\chardef\Alq=`` \chardef\ARlq=`` \chardef\Aayin=`` \chardef\ARayin=`` +\chardef\Ao=`o \chardef\ARo=`o +\chardef\Ap=`p \chardef\ARp=`P \chardef\Ape=`p \chardef\ARpe=`P +\chardef\Asd=`x \chardef\ARsd=`X \chardef\Asade=`x \chardef\ARsade=`X +\chardef\Aq=`q \chardef\ARq=`q \chardef\Aqoph=`q \chardef\ARqoph=`q +\chardef\Ar=`r \chardef\ARr=`R \chardef\Aresh=`r \chardef\ARresh=`R +\chardef\Asv=`S \chardef\ARsv=`S \chardef\Ashin=`S \chardef\ARshin=`S +\chardef\At=`t \chardef\ARt=`t \chardef\Atav=`t \chardef\ARtav=`t +\chardef\Aw=`w \chardef\ARw=`w \chardef\Avav=`w \chardef\ARvav=`w + +% \end{macrocode} +% +% \begin{macro}{\translitphnc} +% \begin{macro}{\translitphncfont} +% |\translitphnc{|\meta{commands}|}| transliterates \meta{commands} +% using the |\translitphncfont| font. +% \begin{macrocode} +\newcommand{\translitphnc}[1]{{% + \@translitP\translitphncfont #1}} +\newcommand{\translitphncfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitP} +% This macro redefines all the character commands to produce the +% transliterated version instead of the glyph. +% There must be no spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitP}{% +\def\Arq{'}\def\ARrq{\Arq}\def\Aaleph{\Arq}\def\ARaleph{\Arq}% +\def\Aa{\Arq}\def\ARa{\Arq}% +\def\Ab{b}\def\ARb{\Ab}\def\Abeth{\Ab}\def\ARbeth{\Ab}% +\def\Ag{g}\def\ARg{\Ag}\def\Agimel{\Ag}\def\ARgimel{\Ag}% +\def\Ad{d}\def\ARd{\Ad}\def\Adaleth{\Ad}\def\ARdaleth{\Ad}% +\def\Ah{h}\def\ARh{\Ah}\def\Ahe{\Ah}\def\ARhe{\Ah}% +\def\Af{w}\def\ARf{\Af}\def\Avaf{\Af}\def\ARvaf{\Af}% +\def\Az{z}\def\ARz{\Az}\def\Azayin{\Az}\def\ARzayin{\Az}% +\def\Ahd{\d{h}}\def\ARhd{\Ahd}\def\Aheth{\Ahd}\def\ARheth{\Ahd}% +\def\Atd{\d{t}}\def\ARtd{\Atd}\def\Ateth{\Atd}\def\ARteth{\Atd}% +\def\Ay{y}\def\ARy{\Ay}\def\Ayod{\Ay}\def\ARyod{\Ay}% +\def\Ak{k}\def\ARk{\Ak}\def\Akaph{\Ak}\def\ARkaph{\Ak}% +\def\Al{l}\def\ARl{\Al}\def\Alamed{\Al}\def\ARlamed{\Al}% +\def\Am{m}\def\ARm{\Am}\def\Amem{\Am}\def\ARmem{\Am}% +\def\An{n}\def\ARn{\An}\def\Anun{\An}\def\ARnun{\An}% +\def\As{s}\def\ARs{\As}\def\Asamekh{\As}\def\ARsamekh{\As}% +\def\Alq{`}\def\ARlq{\Alq}\def\Aayin{\Alq}\def\ARayin{\Alq}% +\def\Ao{\Alq}\def\ARo{\Ablq}% +\def\Ap{p}\def\ARp{\Ap}\def\Ape{\Ap}\def\ARpe{\Ap}% +\def\Asd{\d{s}}\def\ARsd{\Asd}\def\Asade{\Asd}\def\ARsade{\Asd}% +\def\Aq{q}\def\ARq{\Aq}\def\Aqoph{\Aq}\def\ARqoph{\Aq}% +\def\Ar{r}\def\ARr{\Ar}\def\Aresh{\Ar}\def\ARresh{\Ar}% +\def\Asv{\v{s}}\def\ARsv{\Asv}\def\Ashin{\Asv}\def\ARshin{\Asv}% +\def\At{t}\def\ARt{\At}\def\Atav{\At}\def\ARtav{\At}% +\def\Aw{w}\def\ARw{\Aw}\def\Avav{\Aw}\def\ARvav{\Aw}% +} + +% \end{macrocode} +% \end{macro} +% +% +% +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The Type1 map file} +% +% Just a line. +% \changes{v2.1}{2005/04/04}{Added the map file} +% \begin{macrocode} +%<*map> +phnc10 Archaic-Phoenician <phnc10.pfb +%</map> +% \end{macrocode} +% +% +% +% \Finale +% ^^A \PrintIndex +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/phoenician.ins b/Master/texmf-dist/source/fonts/archaic/phoenician.ins new file mode 100644 index 00000000000..49c23384879 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/phoenician.ins @@ -0,0 +1,87 @@ +%% phoenician.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{phoenician.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{phnc10.mf}{t}{\from{phoenician.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1phnc.fd}{t}{\from{phoenician.dtx}{fdot1}} +\generateFile{t1phnc.fd}{t}{\from{phoenician.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{phoenician.sty}{t}{\from{phoenician.dtx}{usc}} + +\Msg{*** Generating Type1 map file ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{phoenician.map}{t}{\from{phoenician.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move these files into} +\Msg{* the LaTeX macro area} +\Msg{* \space\space ot1phnc.fd} +\Msg{* \space\space t1phnc.fd} +\Msg{* \space\space phoenician.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/protosem.dtx b/Master/texmf-dist/source/fonts/archaic/protosem.dtx new file mode 100644 index 00000000000..5bbcb0b9c8c --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/protosem.dtx @@ -0,0 +1,1528 @@ +% \iffalse meta-comment +% +% protosem.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999 -- 2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false, + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip + }% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{protosem.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{389} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v1.1}{2000/09/30}{Minor changes to glyph encodings} +% \changes{v1.2}{2005/03/18}{Updated details} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v1.1} \def\filedate{2000/09/30} +% \def\fileversion{v1.2} \def\filedate{2005/03/18} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Proto-Semitic} +% +% \title{The \Lpack{Proto-Semitic} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{protosem} package provides a set of fonts for the +% Proto-Semitic alphabet which was used around 1600~\BC{} in the Middle East. +% \end{abstract} +% \tableofcontents +% +% +% \section{Introduction} +% +% The Phoenician alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. +% The font presented here is one of a series of fonts intended to show how +% the modern Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Later sections, if any, contain commented code for the fonts +% and source code for the package. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F', and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{protosem} package} \label{sec:usc} +% +% The Proto-Semitic alphabet provided by this package is probably +% a precursor to the Phoenician alphabet. As far as I can make out +% from Davies~\cite{DAVIES97}, Drucker~\cite{DRUCKER95} and +% Healey~\cite{HEALEY90}, there may have been several proto- alphabets +% being referred to as Proto-Siniatic or Proto-Canaanite for example. +% I have taken what I can from the sources available to me and +% produced a sort of generic Proto-Semitic font. +% +% The alphabet consisted of 23 letters, some of which came in two +% different forms. The writing direction was normally left to right +% but could also be vertical. +% +% \begin{table} +% \begin{addtomargins}{-2in} +% \centering +% \caption{Names and meanings of \thisfont{} letters}\label{tab} +% \begin{tabular}{cllclcl} \hline +% & & & & & \multicolumn{2}{c}{Alternative} \\ +% Value & Name & Meaning & ASCII & command & ASCII & Command \\ \hline +% \textit{a} & alpu & ox & ' a & |\Arq| |\Aa| |\Aaleph| & A & |\AAa| |\AAaleph| \\ +% \textit{b} & betu & house & b & |\Ab| |\Abeth| & B & |\AAb| |\AAbeth| \\ +% \textit{g} & & throw-stick? & g & |\Ag| |\Agimel| & & \\ +% \textit{d} & & fish & d & |\Ad| |\Adaleth| & D & |\AAd| |\AAdaleth| \\ +% \textit{h} & & man? & e & |\Ae| |\Ahe| & E & |\AAe| |\AAhe| \\ +% \textit{w} & wawwu & hook/peg & w & |\Aw| |\Avav| & & \\ +% \textit{z} & & & z & |\Az| |\Azayin| & & \\ +% \textit{\d{h}} & hotu & fence & h & |\Ahd| |\Aheth| & H & |\AAhd| |\AAheth| \\ +% \textit{\d{t}} & & twisted flax & T & |\Atd| |\Ateth| & & \\ +% \textit{y} & yadu & hand/arm & y & |\Ay| |\Ayod| & Y & |\AAy| |\AAyod| \\ +% \textit{k} & kappu & palm of hand & k & |\Ak| |\Akaph| & K & |\AAk| |\AAkaph| \\ +% \textit{l} & lamdu & ox goad/whip & l & |\Al| |\Alamed| & L & |\AAl| |\AAlamed| \\ +% \textit{m} & mayyuma? & water & m & |\Am| |\Amem| & & \\ +% \textit{n} & nahasu & snake & n & |\An| |\Anun| & & \\ +% \textit{o} & enu & eye & ` o & |\Alq| |\Ao| |\Aayin| & O & |\AAo| |\AAayin| \\ +% \textit{s} & & & s & |\As| |\Asamekh| & & \\ +% \textit{p} & & leg/foot? & p & |\Ap| |\Ape| & P & |\AAp| |\AApe| \\ +% \textit{\d{s}} & & plant? & x & |\Asd| |\Asade| & X & |\AAsd| |\AAsade| \\ +% \textit{q} & & knot? & q & |\Aq| |\Aqoph| & Q & |\AAq| |\AAqoph| \\ +% \textit{r} & rasu & head & r & |\Ar| |\Aresh| & R & |\AAr| |\AAresh| \\ +% \textit{\v{s}} & & lotus pool? & S & |\Asv| |\Ashin| & & \\ +% \textit{t} & tawwu & mark & t & |\At| |\Atav| & & \\ +% ??? & & & v & |\Av| |\Ahelmet| & V & |\AAv| |\AAhelmet| \\ +% \hline +% \end{tabular} +% \end{addtomargins} +% \end{table} +% +% Table~\ref{tab} lists, in what I hope is the Proto-Semitic alphabetic order, the +% transliterated values of the characters and, where I know it, the name and +% meaning of the corresponding Proto-Semitic letter. +% Several of the glyphs are obviously based on Egyptian hieroglyphs. +% There seems to be general agreement that the glyphs I have coded as: \\ +% |a b g d e w H T y k l m n o r S t| \\ +% fall into this category. +% +% +% \DescribeMacro{\protofamily} +% This command selects the \thisfont{} font family. The family name is |proto|. +% +% \DescribeMacro{\textproto} +% The command |\textproto{|\meta{text}|}| typesets \meta{text} in the +% \thisfont{} font. +% +% I have provided two means of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, and (b) via commands. These are shown in +% Table~\ref{tab}. The columns headed `Alternative' are for accessing +% an alternative form of the glyph, if it exists. +% +% \DescribeMacro{\translitproto} +% The command |\translitproto{|\meta{commands}|}| will typeset the +% transliteration of the \thisfont{} character commands (those in the +% fifth and seventh columns of Table~\ref{tab}). +% +% \DescribeMacro{\translitprotofont} +% The font used for the transliteration is defined by this macro, +% which is initialsed to an italic font (i.e., |\itshape|). +% +% \StopEventually{ +% \bibliographystyle{alpha} +% +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dav97]{DAVIES97} +% W. V. Davies. +% \newblock \emph{Reading the Past: Egyptian Hieroglyphs}. +% \newblock University of California Press/British Museum, 1997. +% \newblock (ISBN 0-520-06287-6) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Hea90]{HEALEY90} +% John F.~Healey. +% \newblock \emph{Reading the Past: The Early Alphabet}. +% \newblock University of California Press/British Museum, 1990. +% \newblock (ISBN 0-520-07309-6) +% +% \end{thebibliography} +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% PROTO10.MF Computer Proto-Semitic font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="protosem"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.6pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font, the driver file would normally be called here. +% In this case I have embedded it. +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% If there was a seperate driver file, this would be its contents. +% +% \begin{macrocode} + +font_coding_scheme:="Protosem glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.8px#; % vertical thickness of the pen + +define_pixels(s,u); +define_blacker_pixels(px,py); +define_good_x_pixels(leftloc); +define_corrected_pixels(o); % turn on overshoot correction +define_horizontal_corrected_pixels(ho); + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% That would be the end of a driver file, except for calling the glyph code. +% +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Proto-Semitic font. +% The characters +% are defined in the Phoenician alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \end{macrocode} +% +% \begin{macro}{'} +% The Proto-Semitic letter \textit{alpu} (ox). Left profile of an oxhead. +% \begin{macrocode} + +cmchar "Proto-Semitic letter ' (alpu)"; +beginglyph("'",0.8); +numeric n[]; +n1 := rightloc-leftloc; % glyph width +z1=(leftloc, 1/10h); % nose +z5=(x1+y1,0); +z3=(x1+7/8n1, 3/4h); % top of neck +z4=(x3, 1/2y3); % bottom of neck +z2=(1/2[x3,x1],y3); % top of forehead +z6=(x1,h); z7=(rightloc,7/8[y2,y6]); % tips of horns +z10=(1/4[x2,x3],2/3[y4,y3]); % eye +z11=z10 shifted (px*down); +draw z1--z2--z3--z4--z5--cycle; % head +draw z10--z11; % eye +draw z2{left}..z6{up}; % a horn +draw z3..z7{up}; % other horn +labels(1,2,3,4,,5,,6,7,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The Proto-Semitic letter \textit{alpu} (ox). Left profile of an oxhead. +% \begin{macrocode} + +cmchar "Proto-Semitic letter alpu (coded as a)"; +beginglyph("a",0.8); +numeric n[]; +n1 := rightloc-leftloc; % glyph width +z1=(leftloc, 1/10h); % nose +z5=(x1+y1,0); +z3=(x1+7/8n1, 3/4h); % top of neck +z4=(x3, 1/2y3); % bottom of neck +z2=(1/2[x3,x1],y3); % top of forehead +z6=(x1,h); z7=(rightloc,7/8[y2,y6]); % tips of horns +z10=(1/4[x2,x3],2/3[y4,y3]); % eye +z11=z10 shifted (px*down); +draw z1--z2--z3--z4--z5--cycle; % head +draw z10--z11; % eye +draw z2{left}..z6{up}; % a horn +draw z3..z7{up}; % other horn +labels(1,2,3,4,,5,,6,7,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{A} +% Alternate Proto-Semitic \textit{alpu} (ox). Right profile of an oxhead. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic a"; +beginglyph("A",0.8); +numeric n[]; +n1 := rightloc-leftloc; % glyph width +z1=(rightloc, 1/10h); % nose +z5=(x1-y1,0); +z3=(x1-7/8n1, 3/4h); % top of neck +z4=(x3, 1/2y3); % bottom of neck +z2=(1/2[x3,x1],y3); % top of forehead +z6=(x1,h); z7=(leftloc,7/8[y2,y6]); % tips of horns +z10=(1/4[x2,x3],2/3[y4,y3]); % eye +z11=z10 shifted (px*down); +draw z1--z2--z3--z4--z5--cycle; % head +draw z10--z11; % eye +draw z2{right}..z6{up}; % a horn +draw z3..z7{up}; % other horn +labels(1,2,3,4,,5,,6,7,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The Proto-Semitic \textit{betu} (house). A square with an opening. +% \begin{macrocode} + +cmchar "Proto-Semitic letter b"; +beginglyph("b",0.8); +z1=(leftloc, 0.2h); z3=(rightloc,0.8h); +z2=(x1,y3); z4=(x3,y1); +z5=1/3[z1,z4]; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{B} +% An alternative Proto-Semitic \textit{betu} (house), a square with a chimney. +% \begin{macrocode} + +cmchar "Proto-Semitic alternate b"; +beginglyph("B",0.8); +z1=(leftloc, 0.1h); z3=(rightloc,0.8h); +z2=(x1,y3); z4=(x3,y1); +z5=1/3[z2,z3]; z6=(x5,h); +z7=2/3[z2,z3]; z8=(x7,y6); +draw z8--z7--z3--z4--z1--z2--z5--z6; +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The Proto-Semitic G. Like a broken stick or a +% throw-stick +% \begin{macrocode} + +cmchar "Proto-Semitic letter g"; +beginglyph("g", 0.7); +x1=leftloc; x3=rightloc; +x2=3/8[x1,x3]; +y1=2/3h; y2=y3=1/3h; +draw z1--z2--z3; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The Proto-Semitic fish, facing right. +% \begin{macrocode} + +cmchar "Proto-Semitic letter fish (d)"; +beginglyph("d",1.0); +numeric alpha; +alpha := 3/16h; +%% body +x1=x6=leftloc; x4=rightloc; x2=1/4[x1,x4]; +y2=y4=1/2h; +x3=x5=1/2[x2,x4]; +y1=y5=y2-alpha; y6=y3=y2+alpha; +%% fins +z13=(x3-alpha,y3+alpha); +z15=(x5-alpha,y5-alpha); +draw z1..z2..z3{right}..z4; % body +draw z4..z5{left}..z2..z6--z1; +draw z3--z13; draw z5--z15; % fins +labels(1,2,3,4,5,6,13,15); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{D} +% Alternate Proto-Semitic fish, upright. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic fish (d)"; +beginglyph("D",0.6); +numeric n[]; +n1 := rightloc-leftloc; % glyph width +numeric alpha; +alpha := 3/8n1; +%% body +z4=(midloc,h); +x1=x3=x4-alpha; x7=x5=x4+alpha; +y1=y7=0; +x2=1/4[x1,x7]; +x6=3/4[x1,x7]; +y2=y6=1/4h; +y3=y5=1/2[y2,y4]; +%% fins +z13=(leftloc,y3-alpha); z15=(rightloc,y13); +draw z1..z2{up}..z3{up}..z4; % body +draw z4..z5{down}..z6{down}..z7--z1; +draw z3--z13; draw z5--z15; % fins +labels(1,2,3,4,5,6,7,13,15); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{E} +% The Proto-Semitic h?, stick man with upraised arms. +% \begin{macrocode} + +cmchar "Proto-Semitic letter h? (E)"; +beginglyph("E",0.6); +numeric alpha, beta; +z1=(midloc,3/4h); +alpha := 1/2(h-y1); +beta := 24/16alpha; % 20/16 too small +z2=(x1,1/2y1); +z3=(leftloc, 1/2[y1,h]); +z4=(x3,2/3[y2,y1]); +z7=(rightloc,y3); +z6=(x7,y4); +z8=(x3,0); +z9=(x7,y8); +z10=(x1,h-alpha); +draw z3--z4--z6--z7; % arms +draw z8--z2--z9; % legs +draw z1--z2; % body +draw fullcircle scaled beta shifted z10; % head +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{e} +% An alternate Proto-Semitic h?, abstract stick man +% with upraised arms. +% \begin{macrocode} + +cmchar "Proto-Semitic alternate h? (coded as e)"; +beginglyph("e",0.6); +numeric alpha; +z1=(midloc,h); +alpha := 1/2(h-y1); +z2=(x1,1/3y1); +z3=(leftloc, y1); +z4=(x3,2/3y1); +z7=(rightloc,y3); +z6=(x7,y4); +z8=(x7,y2); +z9=(x8,0); +draw z3--z4--z6--z7; % arms +draw z1--z2--z8--z9; % head, body, and leg +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% Proto-Semitic letter z?. Two horizontal parallel lines. +% \begin{macrocode} + +cmchar "Proto-Semitic letter z? (z)"; +beginglyph("z",0.8); +numeric alpha; +alpha:=0.2h; +x1=x6=leftloc; x5=x10=rightloc; +y1=y5=1/2h+alpha; +y6=y10=1/2h-alpha; +draw z1--z5; % top +draw z6--z10; % bottom +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The Proto-Semitic \textit{hotu} (fence?) (h sub dot?). Looks like a fence. +% \begin{macrocode} + +cmchar "Proto-Semitic letter hotu (h sub dot?) (coded as H)"; +beginglyph("H", 0.8); +numeric alpha; +alpha:=0.2h; +x1=x6=leftloc; x5=x10=rightloc; +y1=y2=y3=y4=y5=1/2h+alpha; +y6=y7=y8=y9=y10=1/2h-alpha; +x2=x7=1/4[x1,x5]; +x4=x9=3/4[x1,x5]; +x3=x8=1/2[x2,x4]; +draw z1--z5; % fence top +draw z6--z10; % fence bottom +draw z2--z7; draw z3--z8; draw z4--z9; % stakes +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{h} +% An alternate Proto-Semitic \textit{hotu} (fence?). Looks like a vertical fence. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic hotu (coded as h)"; +beginglyph("h", 0.4); +numeric alpha; +x1=x2=x3=x4=x5=leftloc; +x7=x8=x9=rightloc; +y1=0; y5=h; +y2=y7=1/4h; +y4=y9=3/4h; +y3=y8=1/2[y2,y4]; +draw z1--z5; draw z7--z9; % verticals +draw z2--z7; draw z3--z8; draw z4--z9; % horizontals +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{T} +% The Proto-Semitic t sub dot?. Twisted flax hieroglyph. +% \begin{macrocode} + +cmchar "Proto-Semitic letter t sub dot? (T)"; +beginglyph("T",0.4); +x1=x8=x3=x6=leftloc; x9=x2=x7=x4=rightloc; +x5=midloc; +y1=y9=0; y5=h; +y8=y2=3/12h; +y6=y4=10/12h; +y3=y7=1/2[y8,y6]; +z2'=1/2[z9,z2]; z8'=1/2[z1,z8]; +draw z1{(z2'-z1)}...z2{up}..z3{up}..z4{up}..z5{left}.. + z6{down}..z7{down}..z8{down}...{(z9-z8')}z9; +labels(1,2,3,4,5,6,7,8,9); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The Proto-Semitic \textit{yadu} (hand/arm). +% \begin{macrocode} + +cmchar "Proto-Semitic letter y"; +beginglyph("y",1.0); +numeric alpha,beta;; +alpha := 3/8h; +beta := 1/2alpha; +%% the L +x1=x2=leftloc; x3=rightloc; +y1=1/2h+alpha; y2=y3=1/2h-alpha; +%% the TV arial +z4=1/2[z2,z3]; +z6=(x3,3/4[y2,y1]); +z5=1/2[z4,z6]; +z4l=z4 shifted (beta*dir(135)); z4r=z4 shifted (beta*dir(-45)); +z5l=z5 shifted (beta*dir(135)); z5r=z5 shifted (beta*dir(-45)); +z6l=z6 shifted (beta*dir(135)); z6r=z6 shifted (beta*dir(-45)); + +draw z1--z2--z3; +draw z4--z6; +draw z4l--z4r; draw z5l--z5r; draw z6l--z6r; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Y} +% Alternate Proto-Semitic \textit{yadu} (hand/arm). +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic y"; +beginglyph("Y",1.0); +z1=(leftloc,h); z3=(rightloc,0); +z2=1/2[z1,z3]; +z4=(x2,y1); z5=(x3,y2); +draw z1--z3; +draw z4--z2--z5; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{k} +% The Proto-Semitic \textit{kappu} (palm of the hand). +% \begin{macrocode} + +cmchar "Proto-Semitic letter k"; +beginglyph("k",0.8); +numeric alpha; +alpha:=0.8; +numeric n[]; +n1 := rightloc-leftloc; % glyph width +n2 := 1/8n1; +z1=(leftloc+n2, h); z3=(rightloc-n2, y1); +z11=(leftloc, 1/4h); z13=(rightloc,y11); +z2=(midloc,0); +z6=(1/3[x1,x3], y1); z7=(x6, 0.2h); +z8=(2/3[x1,x3], y6); z9=(x8,y7); +draw z1..{down}z11..z2..{up}z13..z3; % bowl +draw z6--z7; draw z8--z9; % uprights +labels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{K} +% An alternate Proto-Semitic \textit{kappu}. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic k"; +beginglyph("K",0.8); +numeric alpha; +alpha:=0.8; +numeric n[]; +n1 := rightloc-leftloc; % glyph width +n2 := 1/8n1; +z1=(leftloc+n2, h); z3=(rightloc-n2, y1); +z11=(leftloc, 1/3h); z13=(rightloc,y11); +z2=(midloc,0); +z6=(x2, y1); z7=(x6, 0); +z8=(2/3[x1,x3], y6); z9=(x8,y7); +draw z1..{down}z11..z2..{up}z13..z3; % bowl +draw z6--z7; %% draw z8--z9; % uprights +labels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The Proto-Semitic \textit{lamdu} (ox goad). A long spiral. +% \begin{macrocode} + +cmchar "Proto-Semitic letter l"; +beginglyph("l",0.8); +z1=(1/4[leftloc,rightloc], 2/3h); +z3=(x1,h); +z4=(leftloc,1/2[y1,y3]); +z2=(1/2[leftloc,rightloc],y4); +z6=(rightloc,0); +z5=(1/2[x4,x3], 8/10[y6,y1]); +draw z1{right}..z2{up}..z3{left}..z4{down}..z5..z6; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{L} +% Alternate Proto-Semitic \textit{lamdu} (ox goad). A long spiral. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic l"; +beginglyph("L",0.8); +z1=(1/4[rightloc,leftloc], 2/3h); +z3=(x1,h); +z4=(rightloc,1/2[y1,y3]); +z2=(1/2[rightloc,leftloc],y4); +z6=(leftloc,0); +z5=(1/2[x4,x3], 8/10[y6,y1]); +draw z1{left}..z2{up}..z3{right}..z4{down}..z5..z6; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The Proto-Semitic \textit{mayyuma} (water). A jagged line. +% \begin{macrocode} + +cmchar"Proto-Semitic letter m"; +beginglyph("m",1.0); +numeric alpha; +alpha := 1/16h; +z1=(leftloc,1/2h-alpha); +z10=(rightloc,1/2h+alpha); +x2=1/7[x1,x10]; +x3=2/7[x1,x10]; +x4=3/7[x1,x10]; +x5=4/7[x1,x10]; +x6=5/7[x1,x10]; +x7=6/7[x1,x10]; +y2=y4=y6=y10; +y3=y5=y7=y1; +draw z1--z2--z3--z4--z5--z6--z7--z10; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The Proto-Semitic \textit{nahasu} (snake). A wriggling cobra. +% \begin{macrocode} + +cmchar "Proto-Semitic letter n"; +beginglyph("n",1.0); +numeric alpha; +alpha := 3/8h; +z1=(leftloc,1/2h+alpha); +z3=(1/4[leftloc,rightloc],1/2h); +z5=(rightloc,y3-1/2alpha); +z4=(3/4[leftloc,rightloc],y3); +draw z1{dir(-20)}..{down}z3--z4{right}..z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{`} +% The Proto-Semitic \textit{enu} (eye). +% \begin{macrocode} + +cmchar "Proto-Semitic letter enu (`)"; +beginglyph("`",1.0); +numeric alpha; +path pth[]; +alpha := 3/16h; +z1=(leftloc,1/2h); +z3=(rightloc,y1); +z2=(1/2[x1,x3],y1+alpha); +z4=(x2,y1-alpha); +pth1 := z1..z2..z3; +pth2 := z1..z4..z3; +z5 = point 0.75 of pth1; +z7 = point 1.25 of pth1; +z6=1/2[z1,z3]; +draw pth1; draw pth2; % the eye +draw z5..z6..z7; % the pupil +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The Proto-Semitic \textit{enu} (eye). +% \begin{macrocode} + +cmchar "Proto-Semitic letter enu (coded as o)"; +beginglyph("o",1.0); +numeric alpha; +path pth[]; +alpha := 3/16h; +z1=(leftloc,1/2h); +z3=(rightloc,y1); +z2=(1/2[x1,x3],y1+alpha); +z4=(x2,y1-alpha); +pth1 := z1..z2..z3; +pth2 := z1..z4..z3; +z5 = point 0.75 of pth1; +z7 = point 1.25 of pth1; +z6=1/2[z1,z3]; +draw pth1; draw pth2; % the eye +draw z5..z6..z7; % the pupil +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{O} +% An alternative Proto-Semitic \textit{enu} (eye). +% \begin{macrocode} + +cmchar "Alternative Proto-Semitic o"; +beginglyph("O",1.0); +numeric alpha; +path pth[]; +alpha := 3/16h; +z1=(leftloc,1/2h); +z3=(rightloc,y1); +z2=(1/2[x1,x3],y1+alpha); +z4=(x2,y1-alpha); +pth1 := z1..z2..z3; +pth2 := z1..z4..z3; +%z5 = point 0.75 of pth1; +%z7 = point 1.25 of pth1; +%z6=1/2[z1,z3]; +draw pth1; draw pth2; % the eye +%draw z5..z6..z7; % the pupil +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{s} +% The Proto-Semitic letter s?. A box with a tail. +% \begin{macrocode} + +cmchar "Proto-Semitic letter s? (s)"; +beginglyph("s", 1.0); +numeric alpha; +alpha := 0.1*(rightloc-leftloc); +z1=(leftloc+alpha, h/2); z3=(rightloc,y1); +z2=(1/2[x1,x3], h); z4=(x2,0); +z5=(leftloc,1/2[y1,y4]); +draw z1--z2--z3--z4--cycle; +draw z1--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{q} +% The Proto-Semitic q? figure of eight (a knot?). +% \begin{macrocode} + +cmchar "Proto-semitic letter q? figure-of-eight (q)"; +beginglyph("q", 1.0); +numeric alpha; +alpha := 3/16h; +z1=(leftloc,h/2); z6=(rightloc,y1); +%% left oval +z3=2/3[z1,z6]; +x4=x2=1/2[x1,x3]; y2=y1+alpha; y4=y1-alpha; +%% right oval +x5=x7=1/2[x3,x6]; y5=y1+3/4alpha; y7=y1-3/4alpha; +draw z1..z2..z3..z4..cycle; +draw z3..z5..z6..z7..cycle; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Q} +% An alternate Proto-Semitic figure of eight (a knot?). +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic figure-of-eight (coded as Q)"; +beginglyph("Q", 0.5); +numeric alpha; +z1=(midloc,0); z6=(midloc,h); +%% bottom oval +z3=2/3[z1,z6]; +y4=y2=1/2[y1,y3]; x2=leftloc; x4=rightloc; +%% top oval +y5=y7=1/2[y3,y6]; x5=1/2[x2,x3]; x7=1/2[x3,x4]; +draw z1..z2..z3..z4..cycle; +draw z3..z5..z6..z7..cycle; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{w} +% The Proto-Semitic \textit{wawwu} (hook/peg). Like a lamppost. +% \begin{macrocode} + +cmchar "Proto-Semitic letter w"; +beginglyph("w",0.4); +numeric alpha; +x1=leftloc; +x3=rightloc; +alpha=0.5(x3-x1); % circle radius +y2=h; +y4=y2-2alpha; +bot y5=-o; +x2=x4=x5=midloc; +y1=y3=h-alpha; +draw z1..z2..z3..z4..cycle; % the circle +draw z5--z4; % the upright +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The Proto-Semitic \textit{rasu} (head). It looks like a head in left +% profile wearing a skull cap. +% \begin{macrocode} + +cmchar "Proto-Semitic letter r"; +beginglyph("r", 0.8); +numeric alpha,beta; +alpha := 1/20w; +pair vec[]; +z2=(leftloc,1/3h); % tip of nose +z9=(rightloc,0); % base of back of neck +z1=(1/3[leftloc,rightloc],0); % base of front of neck +z3=(x1,3/4h); % front of hat +z6=(1/2[x1,x9], 3/4[y1,y2]); % nape of neck +z5=(1/2[x6,x9], 1/2[y2,y3]); % back of hat +z4=(9/12[x3,x5], h); % top of head +z10'=9/16[z2,z3]; % eye +z10=(x10'+5/2alpha, y10'); +beta := angle(z5-z3); +vec1 := dir(beta); +vec2=(z3-z2); +z11=z10 shifted (alpha*vec1); +z9'=(x5,y9); +draw z1{up}..z2; % chin +draw z2--z3{vec2}..z4{right}..z5..z6..{down}z9'; % head +draw z3--z5; % hat +draw z10--z11; % eye +labels(1,2,3,4,5,6,7,8,9,9',10,11); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{R} +% An alternate Proto-Semitic \textit{rasu} (head). It looks like a head in +% right profile. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic r (coded as R)"; +beginglyph("R", 0.8); +numeric alpha, beta; +alpha := 1/20w; +pair vec[]; +z2=(rightloc,1/3h); % tip of nose +z9=(leftloc,0); % base of back of neck +z1=(1/3[rightloc,leftloc],0); % base of front of neck +z3=(x1,3/4h); % front of hat +z6=(1/2[x1,x9], 3/4[y1,y2]); % nape of neck +z5=(1/2[x6,x9], 1/2[y2,y3]); % back of hat +z4=(9/12[x3,x5], 9/10h); % top of head +z10'=11/16[z2,z3]; % eye +z10=(x10'-5/2alpha, y10'); +beta := angle(z5-z3); +vec1 := dir(angle(z5-z3)); +vec2=(z3-z2); +z11=z10 shifted (alpha*vec1); +z9'=(x5,y9); +draw z1{up}..z2; % chin +draw z2--z3{vec2}..z4{left}..z5..z6..{down}z9'; % head +%%draw z3--z5; % hat +draw z10--z11; % eye +labels(1,2,3,4,5,6,7,8,9,9',10,11); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{S} +% The Proto-Semitic letter s sup v. It's like a modern lowercase w. +% \begin{macrocode} + +cmchar "Proto-Semitic letter s sup v (coded as S)"; +beginglyph("S", 1.0); +z2=(leftloc,1/4h); z6=(rightloc,y2); +z3=(1/4[x2,x6], 0); z5=(3/4[x2,x6], y3); +z1=(x3,6/8h); z7=(x5,y1); +z4=(1/2[x3,x5],y2); +draw z1..z2{down}..z3{right}..{up}z4; +draw z7..z6{down}..z5{left}..{up}z4; +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The Proto-Semitic \textit{tawwu} (mark). A cross. +% \begin{macrocode} + +cmchar "Proto-Semitic letter t"; +beginglyph("t", 0.8); +numeric alpha; +alpha := midloc-leftloc; +z10=(midloc,1/2h); +z1=(leftloc,y10); z2=(rightloc,y1); +z3=(x10,y10+alpha); +z4=(x3,y10-alpha); +draw z1--z2; % horizontal +draw z3--z4; % vertical +labels(1,2,3,4,10); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The Proto-Semitic letter looking like a leg \& foot, p?. +% \begin{macrocode} + +cmchar "Proto-Semitic letter like a leg & foot (p)"; +beginglyph("p", 0.8); +x1=x2=leftloc; y1=17/20h; y2=3/20h; +z3=(rightloc,y2); +x6=1/4[x2,x3]; y6=y1; +x5=x6; y5 = y2 + (x6-x1); +x4=x3 -(y5-y2); y4=y5; +draw z1--z2--z3; +draw z6--z5--z4{right}..{down}z3; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{P} +% Alternate Proto-Semitic letter looking like a leg \& foot. Looks like an +% elbow in this case. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic letter like a leg & foot (coded as P)"; +beginglyph("P", 0.8); +numeric alpha; +alpha := 2/10(rightloc-leftloc); +x1=rightloc; x2=leftloc; y1=17/20h; y2=3/20h; +z5=(x1-alpha, y1); +z6=(x2,y2+alpha); +z0=(x1,y2); z10=(x2,y1); +z3=3/20[z0,z10]; +z7=7/20[z0,z10]; +draw z1{down}..z3..{left}z2; +draw z5{down}..z7..{left}z6; +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The Proto-Semitic letter looking like a plant. S sub dot? +% \begin{macrocode} + +cmchar "Proto-Semitic letter like a plant, S sub dot? (coded as x)"; +beginglyph("x", 1.0); +x1=x2=midloc; +x3=leftloc; x4=rightloc; +y1=0; y2=h; +y3=y4=2/3h; +draw z1--z2; % the stem +draw z1{up}..z3; draw z1{up}..z4; % the leaves +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{X} +% Alternate Proto-Semitic letter looking like a plant. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic letter like a plant (X)"; +beginglyph("X", 0.8); +x1=x2=midloc; +x3=leftloc; x4=rightloc; +y1=0; y2=h; +z5=1/2[z1,z2]; +y3=y4=h; +draw z1--z2; % the stem +draw z5{up}..z3; draw z5{up}..z4; % the leaves +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{v} +% Proto-Semitic letter looking like a viking helmet. +% \begin{macrocode} + +cmchar "Proto-Semitic letter like a viking helmet (v)"; +beginglyph("v", 0.8); +path pth[]; +%% helmet +z1=(leftloc,0); z7=(rightloc,0); +z4=(midloc,h); +pth1 := z1{up}..{(1,2)}z4{(1,-2)}..z7{down}; +%% wings +z3 = point 0.75 of pth1; +z13=(leftloc,h); +z5 = point 1.25 of pth1; +z15=(rightloc,y13); +draw pth1; draw z7--z1; % helmet +draw z3--z13; draw z5--z15; % 2 wings +labels(1,2,3,4,5,6,7,13,15,16); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{V} +% Alternate Proto-Semitic letter looking like a viking helmet. +% \begin{macrocode} + +cmchar "Alternate Proto-Semitic letter like a viking helmet (V)"; +beginglyph("V", 0.8); +path pth[]; +%% helmet +z1=(leftloc,0); z7=(rightloc,0); +z4=(midloc,13/16h); +y2=y6=3/4[y1,y4]; +x2=2/10[x1,x7]; x6=2/10[x7,x1]; +pth1 := z1--z2{(z2-z1)}..z4{right}..{(z7-z6)}z6--z7--cycle; +pth2 := subpath (1,3) of pth1; +%% wings +z3 = point 0.5 of pth2; +z13=(leftloc,h); +z5 = point 1.5 of pth2; +z15=(rightloc,y13); +z16'=z6 shifted (h*(2,1)); +z16=whatever[z6,z16']; x16=rightloc; +draw pth1; % helmet +draw z3--z13; draw z5--z15; draw z6--z16; % 3 wings +labels(1,2,3,4,5,6,7,13,15,16); endchar; + +% \end{macrocode} +% \end{macro} +% +% The end of the glyphs and the file +% +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{proto}{} + \DeclareFontShape{OT1}{proto}{m}{n}{ <-> proto10 }{} + \DeclareFontShape{OT1}{proto}{bx}{n}{ <-> sub proto/m/n }{} + \DeclareFontShape{OT1}{proto}{b}{n}{ <-> sub proto/m/n }{} + \DeclareFontShape{OT1}{proto}{m}{sl}{ <-> sub proto/m/n }{} + \DeclareFontShape{OT1}{proto}{m}{it}{ <-> sub proto/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{proto}{} + \DeclareFontShape{T1}{proto}{m}{n}{ <-> proto10 }{} + \DeclareFontShape{T1}{proto}{bx}{n}{ <-> sub proto/m/n }{} + \DeclareFontShape{T1}{proto}{b}{n}{ <-> sub proto/m/n }{} + \DeclareFontShape{T1}{proto}{m}{sl}{ <-> sub proto/m/n }{} + \DeclareFontShape{T1}{proto}{m}{it}{ <-> sub proto/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{protosem} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{protosem}[2005/03/18 v1.2 package for Proto-Semitic fonts] +% \end{macrocode} +% +% +% \begin{macro}{\protofamily} +% Selects the font family in the OT1 encoding. +% \begin{macrocode} +\newcommand{\protofamily}{\usefont{OT1}{proto}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textproto} +% Text command for the font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textproto}{\protofamily} + +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} +\chardef\Arq=`' +\chardef\Aa=`a \chardef\Aaleph=`a +\chardef\Ab=`b \chardef\Abeth=`b +\chardef\Ag=`g \chardef\Agimel=`g +\chardef\Ad=`d \chardef\Adaleth=`d +\chardef\Az=`z \chardef\Azayin=`z +\chardef\Ah=`e \chardef\Ahe=`e +\chardef\Aw=`w \chardef\Avav=`w +\chardef\Ahd=`H \chardef\Aheth=`H +\chardef\Atd=`T \chardef\Ateth=`T +\chardef\Ay=`y \chardef\Ayod=`y +\chardef\Ak=`k \chardef\Akaph=`k +\chardef\Al=`l \chardef\Alamed=`l +\chardef\Am=`m \chardef\Amum=`m +\chardef\An=`n \chardef\Anun=`n +\chardef\Alq=`` +\chardef\Ao=`o \chardef\Aayin=`o +\chardef\As=`s \chardef\Asamekh=`s +\chardef\Ap=`p \chardef\Ape=`p +\chardef\Asd=`x \chardef\Asade=`x +\chardef\Aq=`q \chardef\Aqoph=`q +\chardef\Ar=`r \chardef\Aresh=`r +\chardef\Asv=`S \chardef\Ashin=`S +\chardef\Av=`v \chardef\Ahelmet=`v +\chardef\At=`t \chardef\Atav=`t + +\chardef\AAa=`A \chardef\AAaleph=`A +\chardef\AAb=`B \chardef\AAbeth=`B +\chardef\AAd=`D \chardef\AAdaleth=`D +\chardef\AAh=`E \chardef\AAhe=`E +\chardef\AAhd=`h \chardef\AAheth=`h +\chardef\AAy=`Y \chardef\AAyod=`Y +\chardef\AAk=`K \chardef\AAkaph=`K +\chardef\AAl=`L \chardef\AAlamed=`L +\chardef\AAo=`O \chardef\AAayin=`O +\chardef\AAp=`P \chardef\AApe=`P +\chardef\AAsd=`X \chardef\AAsade=`X +\chardef\AAq=`Q \chardef\AAqoph=`Q +\chardef\AAr=`R \chardef\AAresh=`R +\chardef\AAv=`V \chardef\AAhelmet=`V + +% \end{macrocode} +% +% \begin{macro}{\translitproto} +% \begin{macro}{\transliprotofont} +% |\translitproto{|\meta{commands}|}| transliterates +% \meta{commands} using the |\translitproto| font. +% \begin{macrocode} +\newcommand{\translitproto}[1]{{% + \@translitPS\translitprotofont #1}} +\newcommand{\translitprotofont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitPS} +% This macro redefines all the character commands to produce +% the transliterated value instead of the glyph. There must be no +% spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitPS}{% +\def\Arq{'}% +\def\Aa{'}\def\Aaleph{\Aa}\def\AAa{\Aa}\def\AAaleph{\Aa}% +\def\Ab{b}\def\Abeth{\Ab}\def\AAb{\Ab}\def\AAbeth{\Ab}% +\def\Ag{g}\def\Agimel{\Ag}% +\def\Ad{d}\def\Adaleth{\Ad}\def\AAd{\Ad}\def\AAdaleth{\Ad}% +\def\Ae{h}\def\Ahe{\Ae}\def\AAe{\Ae}\def\AAhe{\Ae}% +\def\Az{z}\def\Azayin{\Az}% +\def\Aw{w}\def\Avav{\Aw}% +\def\Ahd{\d{h}}\def\Aheth{\Ahd}\def\AAhd{\Ahd}\def\AAheth{\Ahd}% +\def\Atd{\d{t}}\def\Ateth{\Atd}% +\def\Ay{y}\def\Ayod{\Ay}\def\AAy{\Ay}\def\AAyod{\Ay}% +\def\Ak{k}\def\Akaph{\Ak}\def\AAk{\Ak}\def\AAkaph{\Ak}% +\def\Al{l}\def\Alamed{\Al}\def\AAl{\Al}\def\AAlamed{\Al}% +\def\Am{m}\def\Amem{\Am}% +\def\An{n}\def\Anun{\An}% +\def\Alq{`}% +\def\Ao{`}\def\Aayin{\Ao}\def\AAo{\Ao}\def\AAayin{\Ao}% +\def\As{s}\def\Asamekh{\As}% +\def\Ap{p}\def\Ape{\Ap}\def\AAp{\Ap}\def\AApe{\Ap}% +\def\Asd{\d{s}}\def\Asade{\Asd}\def\AAsd{\Asd}\def\AAsade{\Asd}% +\def\Aq{q}\def\Aqoph{\Aq}\def\AAq{\Aq}\def\AAqoph{\Aq}% +\def\Ar{r}\def\Aresh{\Ar}\def\AAr{\Ar}\def\AAresh{\Ar}% +\def\Asv{\v{s}}\def\Ashin{\Asv}% +\def\Av{?}\def\Ahelmet{\Av}\def\AAv{\Av}\def\AAhelmet{\Av}% +\def\At{t}\def\Atav{\At}% +} + +% \end{macrocode} +% \end{macro} +% +% +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The Postscript Type1 map} \label{sec:map} +% +% Just one line. +% +% \begin{macrocode} +%<*map> +proto10 Archaic-ProtoSemitic <proto10.pfb +%</map> +% \end{macrocode} +% +% \Finale +% \PrintIndex +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/protosem.ins b/Master/texmf-dist/source/fonts/archaic/protosem.ins new file mode 100644 index 00000000000..4991ebe85d2 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/protosem.ins @@ -0,0 +1,96 @@ +%% protosem.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{protosem.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{protosem.drv}{t}{\from{protosem.dtx}{driver}} + +%%% \Msg{*** Generating the Metafont files ***} +%%% \usepostamble\empty +%%%\generateFile{proto10.mf}{t}{\from{protosem.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1proto.fd}{t}{\from{protosem.dtx}{fdot1}} +\generateFile{t1proto.fd}{t}{\from{protosem.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} +\usepostamble\defaultpostamble + +\generateFile{protosem.sty}{t}{\from{protosem.dtx}{usc}} + +\Msg{*** Generating the Postscript Type1 map files ***} +\usepreamble\empty +\usepostamble\empty +\generateFile{proto10.map}{t}{\from{protosem.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into directories searched by TeX:} +\Msg{*} +%%\Msg{* Move these into the font source area:} +%%\Msg{* \space\space proto10.mf} +%%\Msg{* \space\space protoglyph.mf} +%%\Msg{* \space\space prototitle.mf} +\Msg{*} +\Msg{* Move these into the LaTeX macro area:} +\Msg{* \space\space ot1proto.fd} +\Msg{* \space\space t1proto.fd} +\Msg{* \space\space protosem.sty} +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/runic.dtx b/Master/texmf-dist/source/fonts/archaic/runic.dtx new file mode 100644 index 00000000000..df2746911aa --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/runic.dtx @@ -0,0 +1,929 @@ +% \iffalse meta-comment +% +% runic.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{docmfp} +\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{runic.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{25} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v1.1}{2005/03/31}{Minor changes reflecting changed circumstances} +% \changes{v1.1}{2005/03/31}{Merged the Metafont files} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v1.1} \def\filedate{2005/03/31} +% \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}} +% +% \title{The \Lpack{Runic} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{runic} package provides a set of fonts for the Runic +% script, also known as futharc after the names of the initial letters +% of the Runic abecedary. The font follows the Anglo-Saxon abecedary. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% The Runic alphabet and characters was in fairly common use in Europe, +% particularly in the Germanic, Scandinavian and Anglo-Saxon countries +% until the Middle Ages. +% The font presented here follows the Anglo-Saxon abecedary. +% +% This is one of a series of fonts intended to show how the Latin alphabet has +% changed 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 font and package may be 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{runic} package} \label{sec:usc} +% +% There are three major versions of the Runic script, known as \textit{futharc} +% after the initial letters of its abecedary, Anglo-Saxon, Germanic and +% Scandinavian. Scholars are unclear about the genealogy of the script, but there +% are some obvious relationships betyween some of the futharc glyphs and the +% Phoenecian glyphs. Some other letters, such as the \textit{thorn} and +% \textit{wen}, are known Runic inventions. And then there are other glyphs +% which I can only assume were also Runic inventions. +% +% The font presented here is based on the Anglo-Saxon Runic abecedary +% which had 24 letters and one (punctuation) mark. +% The font presented here is based on information from Drucker~\cite{DRUCKER95}, +% Firmage~\cite{FIRMAGE93}, and the +% \textit{Encyclopedia Brittanica}. +% +% +% \DescribeMacro{\Fthorn} +% \DescribeMacro{\Fng} +% Many of the Runic characters +% have a direct correspondence with the modern Latin alphabet. +% For those characters that have a direct correspondance I have mapped +% the Runic letter to the uppercase Latin letter. However, the \textit{thorn} +% and \textit{ng} characters have no match. These two characters are +% accessed via |\Fthorn| and |\Fng| respectively. +% +% The letter sequence +% for the futharc abecedary mapping is:\\ +% |F U \Fthorn A R K G W H N I J Y P X S T B E M L \Fng D O :| \\ +% where |:| is the (punctuation) mark. +% +% +% \DescribeMacro{\futfamily} +% This command selects the Runic font family. The family name is |fut|. +% +% \DescribeMacro{\textfut} +% The command |\textfut{|\meta{text}|}| typesets \meta{text} in the +% Runic font. +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company,second edition, 2004. +% +% \end{thebibliography} +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% FUT10.MF Computer Runic font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="Runic"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.7pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font the driver file would normally be called here. +% In this case I have embedded it. +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of parameters +%%% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% If there was a seperate driver file, this would be its contents. +% +% \begin{macrocode} +font_coding_scheme:="Runic glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.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} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% That would be the end of a driver file, except for calling the glyph code. +% +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Runic font. The characters +% are defined in the futharc ordering. +% +% \begin{macrocode} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% end of driver code +%%% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{F} +% The letter F (\textit{feoh}, wealth). Somewhat like a modern F. +% \begin{macrocode} + +cmchar "Runic letter F"; +beginglyph("F",0.4); +x1=x2=x3=x6=leftloc; +x4=x5=rightloc; +bot y1=-o; +y2=0.4h; y3=0.7h; +y4=0.6h; y5=0.9h; +y6=h; +draw z1--z6; % upright +draw z3--z5; draw z2--z4; % arms +labels(1,2,3,4,5,6); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{U} +% The letter U (\textit{ur}, auroch (a wild ox)). Somewhat like an inverted +% angular U. +% \begin{macrocode} + +cmchar "Runic letter U"; +beginglyph("U",0.6); +x1=x2=leftloc; +x3=x4=rightloc; +bot y1= bot y4=-o; top y2=h; y3=0.6h; +draw z1--z2--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{thorn} +% The letter \textit{thorn}. +% \begin{macrocode} + +cmchar "Runic letter Thorn"; +beginglyph(oct"002", 0.4); +x1=x2=x3=x4=leftloc; x5=rightloc; +bot y1=-o; y2=0.25h; y3=0.75h; top y4=h; y5=0.5h; +draw z1--z4; % upright +draw z2--z5--z3; % bowl +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{A} +% The letter A (\textit{asc}, oak tree). Somewhat like a kinked F. +% \begin{macrocode} + +cmchar "Runic letter A"; +beginglyph("A",0.6); +x1=x2=x3=leftloc; x4=x5=midloc; x6=x7=rightloc; +bot y1=-o; y3=y7=h; y2=y6=y5=0.75h; y4=0.5h; +draw z1--z3; % upright +draw z2--z4--z6; draw z3--z5--z7; % arms +labels(1,2,3,4,5,6,7); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{R} +% The letter R (\textit{rad}, riding). An angular modern R. +% \begin{macrocode} + +cmchar "Runic letter R"; +beginglyph("R",0.4); +x1=x2=x3=leftloc; x4=x5=rightloc; +bot y1= bot y4=-o; y2=0.4h; y5=0.7h; top y3=h; +draw z1--z3; % upright +draw z2--z5--z3; % bowl +draw z2--z4; % leg +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{K} +% The letter K (\textit{kaun}, torch). Like K but without the upper arm. +% \begin{macrocode} + +cmchar "Runic letter K"; +beginglyph("K",0.4); +x1=x2=x3=leftloc; x4=rightloc; +bot y1= bot y4=-o; y2=0.4h; top y3=h; +draw z1--z3; % upright +draw z2--z4; % leg +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The letter G (\textit{gifu}, gift). This looks like our uppercase letter X. +% \begin{macrocode} + +cmchar "Runic letter G"; +beginglyph("G",0.6); +x1=x2=leftloc; x3=x4=rightloc; +bot y1= bot y3=-o; top y2= top y4= h; +draw z1--z4; +draw z2--z3; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{W} +% The letter W (\textit{wen}, joy). It looks like an angular P. +% \begin{macrocode} + +cmchar "Runic letter W"; +beginglyph("W", 0.4); +x1=x2=x3=leftloc; x5=rightloc; +bot y1=-o; y2=0.4h; y5=0.7h; top y3=h; +draw z1--z3; % upright +draw z2--z5--z3; % bowl +labels(1,2,3,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The letter H (\textit{hegel}, hail). Like an H but with double sloping bars. +% \begin{macrocode} + +cmchar "Runic letter H"; +beginglyph("H",0.6); +x1=x2=leftloc; x3=x4=rightloc; +bot y1 = bot y3= -o; top y2 = top y4 = h; +z5=0.5[z1,z2]; z6=0.7[z1,z2]; +z7=0.3[z3,z4]; z8=0.5[z3,z4]; +draw z1--z2; draw z3--z4; % uprights +draw z5--z7; draw z6--z8; % bars +labels(1,2,3,4,5,6,7,8); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{N} +% The letter N (\textit{nyd}, need or hardship). A cross with a sloping bar. +% \begin{macrocode} + +cmchar "Runic letter N"; +beginglyph("N",0.4); +x1=x2=midloc; x3=leftloc; x4=rightloc; +bot y1=-o; top y2=h; +y3=0.6h; y4=0.4h; +draw z1--z2; % upright +draw z3--z4; % bar +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{I} +% The letter I (\textit{is}, ice). +% \begin{macrocode} + +cmchar "Runic letter I"; +beginglyph("I",0.2); +x1=x2=midloc; +bot y1=-o; top y2=h; +draw z1--z2; +labels(1,2); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{J} +% The letter J (\textit{ger}, year). It looks like an angular $\Phi$. +% \begin{macrocode} + +cmchar "Runic letter J"; +beginglyph("J",0.4); +x1=x2=x3=x5=midloc; x4=leftloc; x6=rightloc; +bot y1=-o; top y2=h; +y4=y6=0.5h; +y3=0.25h; y5=0.75h; +draw z1--z2; % the upright +draw z3--z4--z5--z6--cycle; % the rectangle +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Y} +% The letter \textit{eoh}. Somewhat like an angular upright S. +% \begin{macrocode} + +cmchar"Runic letter Y"; +beginglyph("Y",0.6); +x1=leftloc; x2=x3=midloc; x4=rightloc; +bot y2=-o; top y3=h; +y1=0.3h; y4=0.7h; +draw z1--z2--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{P} +% The letter P (\textit{peorth}). +% \begin{macrocode} + +cmchar "Runic letter P"; +beginglyph("P",0.6); +x1=x2=leftloc; x3=x4=midloc; x5=x6=rightloc; +bot y1= bot y5=-o; top y2= top y6= h; +y3=0.3h; y4=0.7h; +draw z5--z3--z1--z2--z4--z6; +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{X} +% The letter X (\textit{eolhx}, elk?). Like an angular $\Psi$. +% It corresponds to the Phoenician \textit{XXX}. +% \begin{macrocode} + +cmchar "Runic letter X"; +beginglyph("X", 0.6); +x1=x2=midloc; +x4=leftloc; x5=rightloc; +bot y1=-o; top y2= top y4= top y5= h; +z3=0.5[z1,z2]; +draw z1--z2; % upright +draw z4--z3--z5; % V shape +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{S} +% The letter S (\textit{sigil}, sun). Like an angular S on its side. +% \begin{macrocode} + +cmchar "Runic letter S"; +beginglyph("S",0.4); +x1=x2=leftloc; x3=x4=rightloc; +top y1=h; bot y4=-o; +y2=0.3h; y3=0.7h; +draw z1--z2--z3--z4; +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The letter T (\textit{tir}, the name of a star?). Like an upward pointing +% arrow. +% \begin{macrocode} + +cmchar "Runic letter T"; +beginglyph("T", 0.4); +x1=x2=midloc; x3=leftloc; x4=rightloc; +bot y1=-o; top y2=h; +y3=y4=0.7h; +draw z1--z2; % upright +draw z3--z2--z4; % arrowhead +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{B} +% The letter B (\textit{berc}, birch tree). An angular B. +% \begin{macrocode} + +cmchar "Runic letter B"; +beginglyph("B",0.4); +x1=x2=leftloc; +x4=x5=rightloc; +bot y1=-o; top y2=h; +y4=0.3h; y5=0.7h; +z3=0.5[z1,z2]; +draw z1--z2; % upright +draw z3--z5--z2; % upper bowl +draw z3--z4--z1; % lower bowl +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{E} +% The letter E (\textit{eh}, horse). It looks like an M. +% \begin{macrocode} + +cmchar "Runic letter E"; +beginglyph("E",0.6); +x1=x2=leftloc; x3=midloc; x4=x5=rightloc; +bot y1= bot y5=-o; top y2= top y4= h; +y3=0.6h; +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{M} +% The letter M (\textit{man}, man). +% \begin{macrocode} + +cmchar "Runic letter M"; +beginglyph("M", 0.6); +x1=x2=x3=leftloc; x4=x5=x6=rightloc; +bot y1= bot y4=-o; top y3= top y6= h; +y2=y5=0.6h; +draw z1--z3; draw z4--z6; % uprights +draw z2--z6; draw z3--z5; % cross +labels(1,2,3,4,5,6); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{L} +% The letter L (\textit{lagu}, water or sea). Somewhat like $\Gamma$. +% \begin{macrocode} + +cmchar "Runic letter L"; +beginglyph("L", 0.4); +x1=x2=leftloc; x3=rightloc; +bot y1=-o; top y2=h; y3=0.6h; +draw z1--z2--z3; +labels(1,2,3); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{ng} +% The letter \textit{ng}. Like a pair of crossed angle brackets. +% \begin{macrocode} + +cmchar "Runic letter NG"; +beginglyph(oct"010", 0.6); +x1=x2=leftloc; x3=x4=rightloc; +bot y1= bot y3=-o; top y2= top y4= h; +x5=0.85[x1,x3]; x6=0.15[x1,x3]; +y5=y6=0.5h; +draw z1--z5--z2; +draw z3--z6--z4; +labels(1,2,3,4,5,6); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{D} +% The letter D (\textit{daeg}, day). Like the Runic M, but the cross is lower. +% \begin{macrocode} + +cmchar "Runic letter D"; +beginglyph("D", 0.6); +x1=x2=leftloc; x3=x4=rightloc; +bot y1= bot y3=-o; top y2= top y4= h; +z5=0.4[z1,z2]; z6=0.8[z1,z2]; +z7=0.4[z3,z4]; z8=0.8[z3,z4]; +draw z1--z2; draw z3--z4; % uprights +draw z5--z8; draw z6--z7; % cross +labels(1,2,3,4,5,6,7,8); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{O} +% The letter O (\textit{othil}, mouth). +% \begin{macrocode} + +cmchar "Runic letter O"; +beginglyph("O", 0.6); +x1=x2=x3=leftloc; x4=x5=x6=rightloc; x7=midloc; +y1=y4=0; y7= h; +y2=y5=0.25[y1,y7]; y3=y6=0.75[y1,y7]; +draw z1--z2--z6--z7--z3--z5--z4; +labels(1,2,3,4,5,6,7); endchar; + + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{:} +% The Runic punctuation mark. +% \begin{macrocode} + +cmchar "Runic mark :"; +beginglyph(":",0.2); +x1=x2=x3=x4=midloc; +y1=0.2h; y2=0.35h; y3=0.65h; y4=0.8h; +draw z1--z2; draw z3--z4; % the `colon' +labels(1,2,3,4); endchar; + +% \end{macrocode} +% \end{macro} +% +% The end of the glyphs and the file. +% +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{fut}{} + \DeclareFontShape{OT1}{fut}{m}{n}{ <-> fut10 }{} + \DeclareFontShape{OT1}{fut}{bx}{n}{ <-> sub fut/m/n }{} + \DeclareFontShape{OT1}{fut}{b}{n}{ <-> sub fut/m/n }{} + \DeclareFontShape{OT1}{fut}{m}{sl}{ <-> sub fut/m/n }{} + \DeclareFontShape{OT1}{fut}{m}{it}{ <-> sub fut/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{fut}{} + \DeclareFontShape{T1}{fut}{m}{n}{ <-> fut10 }{} + \DeclareFontShape{T1}{fut}{bx}{n}{ <-> sub fut/m/n }{} + \DeclareFontShape{T1}{fut}{b}{n}{ <-> sub fut/m/n }{} + \DeclareFontShape{T1}{fut}{m}{sl}{ <-> sub fut/m/n }{} + \DeclareFontShape{T1}{fut}{m}{it}{ <-> sub fut/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{runic} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{runic}[1999/03/14 v1.0 package for Runic fonts] +% \end{macrocode} +% +% +% \begin{macro}{\futfamily} +% Selects the futharc (Runic) font family in the OT1 encoding. +% \begin{macrocode} +\newcommand{\futfamily}{\usefont{OT1}{fut}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textetr} +% Text command for the futharc (Runic) font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textfut}{\futfamily} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Fthorn} +% \begin{macro}{\Fng} +% The Runic \textit{thorn} and \textit{ng} characters are accessed +% by |\Fthorn| and |\Fng| respectively. +% \begin{macrocode} +\chardef\Fthorn='002 +\chardef\Fng='010 +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The Postscript Type1 map} \label{sec:map} +% +% Just one line. +% +% \begin{macrocode} +%<*map> +fut10 Archaic-Futharc <fut10.pfb +%</map> +% \end{macrocode} +% +% \Finale +% \PrintIndex +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/runic.ins b/Master/texmf-dist/source/fonts/archaic/runic.ins new file mode 100644 index 00000000000..7381f96180b --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/runic.ins @@ -0,0 +1,94 @@ +%% runic.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{runic.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{runic.drv}{t}{\from{runic.dtx}{driver}} + +%%%\Msg{*** Generating the Metafont files ***} + +\usepostamble\empty +%%%\generateFile{fut10.mf}{t}{\from{runic.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1fut.fd}{t}{\from{runic.dtx}{fdot1}} +\generateFile{t1fut.fd}{t}{\from{runic.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} +\usepostamble\defaultpostamble + +\generateFile{runic.sty}{t}{\from{runic.dtx}{usc}} + +\Msg{*** Generating the Postscript Type1 map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{fut10.map}{t}{\from{runic.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation: } +\Msg{*} +\Msg{* Move these files into the LaTeX macro area:} +\Msg{* \space\space ot1fut.fd} +\Msg{* \space\space t1fut.fd} +\Msg{* \space\space runic.sty} +\Msg{*} +\Msg{* Further instructions are in the README } +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/ugarite.dtx b/Master/texmf-dist/source/fonts/archaic/ugarite.dtx new file mode 100644 index 00000000000..574c5baaec6 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/ugarite.dtx @@ -0,0 +1,1767 @@ +% \iffalse meta-comment +% +% ugarite.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\makeatletter + \DeclareTextCommand{\Uunder}{OT1}[1]^^A + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}^^A + \vbox to.2ex{\hbox{\char21}\vss}\hidewidth}}} +\makeatother +\begin{document} + \raggedbottom + \DocInput{ugarite.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{309} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/03/14}{First public release} +% \changes{v1.1}{2000/09/30}{Changed some encodings to match the series} +% \changes{v1.2}{2005/06/18}{Added map file} +% +% \def\fileversion{v1.0} \def\filedate{1999/03/14} +% \def\fileversion{v1.1} \def\filedate{2000/09/30} +% \def\fileversion{v1.2} \def\filedate{2005/06/18} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Ugaritic Cuneiform} +% +% +% \title{The \Lpack{Ugaritic Cuneiform} font\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{ugarite} bundle provides a set of fonts for the +% \thisfont{} alphabetic script which was used around 1300~\BC{} in the Middle East. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% +% The Phoenician alphabet and characters is a direct ancestor of our modern day +% Latin alphabet and fonts. +% The \thisfont{} font presented here is one of a series of fonts intended +% to show how +% the modern Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts and source code for the package is in +% later sections. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F', and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{ugarite} package} \label{sec:usc} +% +% The earliest cuneiform writing, about 2800~\BC, was used by +% the Sumerians in the Middle East~\cite{WALKER87,HEALEY90}. +% Other cuneiform scripts were used for Akkadian (2300~\BC) and +% Babylonian (2000~\BC). These were partly ideographic and partly +% syllabic scripts. The last dated use of a cuneiform script was +% in 75~\AD. +% +% The \thisfont{} script came from Ugarit (Ras Shamura) on the +% Syrian coast and was used for a language related to Hebrew and +% one of the precusors of Phoenician. Unlike the other cuneiform +% scripts, \thisfont{} is alphabetic, and the order is known from +% some abecedaries that have been found. +% +% The full alphabetic script has 30 letters, plus a word divider in +% the form of a short vertical stroke. The full script was used in +% administrative texts, but the last three letters were dropped when +% writing literary texts. +% +% +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and, where I know it, the +% modern name of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcll} \hline +% Value & Name? & ASCII & Command & Command \\ \hline +% \textit{a} & +% aleph & +% ' a & |\Arq| |\Aa| & +% |\Aaleph| +% \\ +% \textit{b} & +% beth & +% b & |\Ab| & +% |\Abeth| +% \\ +% \textit{g} & +% gimel & +% g & |\Ag| & +% |\Agimel| +% \\ +% \textit{\Uunder{h}} & +% & +% I & |\Ahu| & +% +% \\ +% \textit{d} & +% daleth & +% d & |\Ad| & +% |\Adaleth| +% \\ +% \textit{h} & +% he & +% h & |\Ah| & +% |\Ahe| +% \\ +% \textit{w} & +% vav & +% w & |\Aw| & +% |\Avav| +% \\ +% \textit{z} & +% zayin & +% z & |\Az| & +% |\Azayin| +% \\ +% \textit{\d{h}} & +% heth & +% H & |\Ahd| & +% |\Aheth| +% \\ +% \textit{\d{t}} & +% teth & +% T & |\Atd| & +% |\Ateth| +% \\ +% \textit{y} & +% yod & +% y & |\Ay| & +% |\Ayod| +% \\ +% \textit{k} & +% kaph & +% k & |\Ak| & +% |\Akaph| +% \\ +% \textit{\'{s}} & +% & +% X & |\Asa| & +% +% \\ +% \textit{l} & +% lamed & +% l & |\Al| & +% |\Alamed| +% \\ +% \textit{m} & +% mem & +% m & |\Am| & +% |\Amem| +% \\ +% \textit{\b{d}} & +% & +% D & |\Adb| & +% +% \\ +% \textit{n} & +% nun & +% n & |\An| & +% |\Anun| +% \\ +% \textit{\d{z}} & +% & +% Z & |\Azd| & +% +% \\ +% \textit{s} & +% samekh & +% s & |\As| & +% |\Asamekh| +% \\ +% \textit{`} & +% ayin & +% ` o & |\Alq| |\Ao| & +% |\Aayin| +% \\ +% \textit{p} & +% pe & +% p & |\Ap| & +% |\Ape| +% \\ +% \textit{\d{s}} & +% sade & +% x & |\Asd| & +% |\Asade| +% \\ +% \textit{q} & +% qoph & +% q & |\Aq| & +% |\Aqoph| +% \\ +% \textit{r} & +% resh & +% r & |\Ar| & +% |\Aresh| +% \\ +% \textit{\b{t}} & +% & +% J & |\Atb| & +% +% \\ +% \textit{\.{g}} & +% & +% G & |\Agd| & +% +% \\ +% \textit{t} & +% tav & +% t & |\At| & +% |\Atav| +% \\ +% \textit{i} & +% & +% i & |\Ai| & +% +% \\ +% \textit{u} & +% & +% u & |\Au| & +% +% \\ +% \textit{\`{s}} & +% & +% V & |\Asg| & +% +% \\ +% \textit{:} & +% word divider & +% : & |\Awd| & +% +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% +% \DescribeMacro{\cugarfamily} +% This command selects the \thisfont{} font family. +% The family name is |cugar|. +% +% \DescribeMacro{\textcugar} +% The command |\textcugar{|\meta{ASCII/commands}|}| +% typesets \meta{ASCII/commands} in the +% \thisfont{} font. +% +% I have provided two, and sometimes three, ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, +% (b) by commands whose names are based on the transliterated values, and +% (c) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab}. +% +% +% \DescribeMacro{\translitcugar} +% The command |\translitcugar{|\meta{commands}|}| will typeset the +% transliteration of the Ugarite character commnds (those in the +% last two columns of Table~\ref{tab}). +% +% \DescribeMacro{\translitcugarfont} +% The font used for the transliteration is defined by this macro, +% which is initialised to an italic font (i.e., |\itshape|). +% +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Dav97]{DAVIES97} +% W. V. Davies. +% \newblock \emph{Reading the Past: Egyptian Hieroglyphs}. +% \newblock University of California Press/British Museum, 1997. +% \newblock (ISBN 0-520-06287-6) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% +% \bibitem[Hea90]{HEALEY90} +% John F.~Healey. +% \newblock \emph{Reading the Past: The Early Alphabet}. +% \newblock University of California Press/British Museum, 1990. +% \newblock (ISBN 0-520-07309-6) +% +% \bibitem[Wal87]{WALKER87} +% C.~B.~F.~Walker. +% \newblock \emph{Reading the Past: Cuneiform}. +% \newblock University of California Press/British Museum, 1987. +% \newblock (ISBN 0-520-06115-2) +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% CUGAR10.MF Computer Ugaritic Cuneiform font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="ugarite"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=8pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.4pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% For a full font the driver file would normally be called here. +% In this case I have embedded it. +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% If there was a driver file, this would be its contents. +% +% \begin{macrocode} + +font_coding_scheme:="Ugarite glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=px#; % vertical thickness of the pen + +define_pixels(s,u); +define_blacker_pixels(px,py); +define_good_x_pixels(leftloc); +define_corrected_pixels(o); % turn on overshoot correction +define_horizontal_corrected_pixels(ho); + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% \begin{macro}{aw} +% Variables for the middldle and rightmost xcoord of a character, and +% the actual width of a character. +% \begin{macrocode} +numeric midloc, rightloc, aw; +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trht} +% \begin{macro}{trbs} +% The normal height and base of a triangle. +% \begin{macrocode} +numeric trht, trbs; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{th} +% \begin{macro}{tb} +% The ratio of the normal height and base of a triangle with respect to +% the character height. +% \begin{macrocode} +numeric th, tb; +th = 6/24; tb = 8/24; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{wiht} +% \begin{macro}{wibs} +% The normal height and base of a wing. +% \begin{macrocode} +numeric wiht, wibs; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{wh} +% \begin{macro}{wb} +% The ratio of the normal height and base of a wing with respect to +% the character height. +% \begin{macrocode} +numeric wh, wb; +wh = 10/24; wb = 20/24; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{beginglyph} +% A macro to save some typing of beginchar arguments, and also assigns +% values to various variables. +% +% \begin{macrocode} +def beginglyph(expr code, unit_width) = + beginchar(code, unit_width*ht#+2s#, ht#, 0); + midloc:=1/2w; rightloc:=(w-s); aw := rightloc-leftloc; + trht := th*h; trbs := tb*h; + wiht := wh*h; wibs := wb*h; + pickup stylus enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{triangle} +% |triangle($, ht, base, angle)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| rotated +% at |angle| from pointing along the positive |x| axis. +% \begin{macrocode} + +def triangle(suffix $)(expr ht, bs, ang) = + path pth[]; + pair pr[]; + pr1 := (x$-ht,y$); % midpoint of base in default position + pr2 := pr1 shifted (1/2bs*up); % base points + pr3 := pr1 shifted (1/2bs*down); + z$trl = pr2 rotatedaround(z$, ang); + z$trr = pr3 rotatedaround(z$, ang); + z$trc = 1/2[z$trl,z$trr]; + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trir} +% |trir($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |x| direction (i.e., Right). +% \begin{macrocode} + +def trir(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$-ht, y$); % midpoint of base + z$trl = (x$trc, y$trc+1/2bs); % base points + z$trr = (x$trc, y$trc-1/2bs); + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{triu} +% |triu($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |y| direction (i.e. Up). +% \begin{macrocode} + +def triu(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$, y$-ht); % midpoint of base + z$trl = (x$-1/2bs, y$trc); % base points + z$trr = (x$+1/2bs, y$trc); % base points + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{tril} +% |tril($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |x| direction (i.e., Left). +% \begin{macrocode} + +def tril(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$+ht, y$); % midpoint of base + z$trl = (x$trc, y$trc-1/2bs); % base points + z$trr = (x$trc, y$trc+1/2bs); + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trid} +% |tril($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |x| direction (i.e., Left). +% \begin{macrocode} + +def tril(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$+ht, y$); % midpoint of base + z$trl = (x$trc, y$trc-1/2bs); % base points + z$trr = (x$trc, y$trc+1/2bs); + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{trid} +% |trid($, ht, base)| calculates the points on a triangle +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |y| direction (i.e. Down). +% \begin{macrocode} + +def trid(suffix $)(expr ht, bs) = + path pth[]; + z$trc = (x$, y$+ht); % midpoint of base + z$trl = (x$+1/2bs, y$trc); % base points + z$trr = (x$-1/2bs, y$trc); % base points + z$tic = 1/2[z$,z$trc]; + pth$ := z$--z$trl--z$trr--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wing} +% |wing($, ht, base, angle)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| rotated +% at |angle| from pointing along the negative |x| axis. +% \begin{macrocode} + +def wing(suffix $)(expr ht, bs, ang) = + path pth[]; + pair pr[]; + pr1 := (x$+ht,y$); % midpoint of base in default position + pr2 := pr1 shifted (1/2bs*down); % base points + pr3 := pr1 shifted (1/2bs*up); + pr4 := pr1 rotatedaround(z$, ang); + z$wil = pr2 rotatedaround(z$, ang); + z$wir = pr3 rotatedaround(z$, ang); + z$wic = 1/2[z$,pr4]; + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingl} +% |wingl($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |x| direction (i.e., Left). +% \begin{macrocode} + +def wingl(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$+ht, y$-1/2bs); % base points + z$wir = (x$wil, y$+1/2bs); + z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingd} +% |wingd($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the negative |y| direction (i.e., Down). +% \begin{macrocode} + +def wingd(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$+1/2bs, y$+ht); % base points + z$wir = (x$-1/2bs, y$wil); + z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingr} +% |wingr($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |x| direction (i.e., Right). +% \begin{macrocode} + +def wingr(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$-ht, y$+1/2bs); % base points + z$wir = (x$wil, y$-1/2bs); + z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{wingu} +% |wingu($, ht, base)| calculates the points on a `flying wing' +% whose apex is at |z$|, of height |ht| and base width |base| +% pointing in the positive |y| direction (i.e., Up). +% \begin{macrocode} + +def wingu(suffix $)(expr ht, bs) = + path pth[]; + z$wil = (x$-1/2bs, y$-ht); % base points + z$wir = (x$+1/2bs, y$wil); + z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve + pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle; +enddef; + +% \end{macrocode} +% \end{macro} +% +% This would be the end of a seperate driver file, except for calling +% the glyph code. +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the \thisfont{} font. +% The characters +% are defined in the original alphabetic ordering. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% \begin{macro}{'} +% The \thisfont{} ' (semitic aleph). +% \begin{macrocode} + +cmchar "Ugarite letter '"; +beginglyph("'", 24/24); + z1trc=(leftloc,1/2h); + trir(1, trht, trbs); fill pth1; + z2trc=z1; + trir(2, trht, trbs); fill pth2; + z4=(rightloc,y1tic); draw z1tic--z4; + labels(1,1trc,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The \thisfont{} ' (semitic aleph). +% \begin{macrocode} + +cmchar "Ugarite letter ' (coded as a)"; +beginglyph("a", 24/24); + z1trc=(leftloc,1/2h); + trir(1, trht, trbs); fill pth1; + z2trc=z1; + trir(2, trht, trbs); fill pth2; + z4=(rightloc,y1tic); draw z1tic--z4; + labels(1,1trc,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{b} +% The \thisfont{} B. +% \begin{macrocode} + +cmchar "Ugarite letter b"; +beginglyph("b", (th+3/2tb)); + z1trr=(leftloc,0); % bottom pin + trir(1, trht, trbs); fill pth1; + z3trc=(x1,h); % left pin + trid(3, trht, trbs); fill pth3; + z4trr=z3trl; % right pin + trid(4, trht, trbs); fill pth4; + z2=(x4,y1); + trir(2, trht, trbs); fill pth2; % second bottom head + rt x21 = rightloc; y21=y1tic; % bodies + draw z1tic--z21; + draw z3tic--z1; draw z4tic--z2; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The \thisfont{} G. +% \begin{macrocode} + +cmchar "Ugarite letter g"; +beginglyph("g", tb); + z1trc=(midloc,h); + trid(1, trht, trbs); fill pth1; + z13=(x1,0); draw z1tic--z13; + labels(1,1trl,1trc,1trr,11,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{I} +% The \thisfont{} letter H with a u under. +% \begin{macrocode} + +cmchar "Ugarite letter h sub u (I)"; +beginglyph("I", tb); + z1trc=(midloc,h); + trid(1, trht, trbs); fill pth1; % top head + z2trc=(x1trc,y1); + trid(2, trht, trbs); fill pth2; % middle head + z3trc=(x1trc,y2); + trid(3, trht, trbs); fill pth3; % bottom head + z13=(x1,0); draw z1tic--z13; + labels(1,2,3,4,5,6,11,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The \thisfont{} letter D. +% \begin{macrocode} + +cmchar "Ugarite letter d"; +beginglyph("d", (th+5/2tb)); + z1trr=(leftloc,0); + trir(1, trht, trbs); fill pth1; % bottom left head + z11trc=(x1,h); % top left head + trid(11, trht, trbs); fill pth11; + z12trr=z11trl; % top center head + trid(12, trht, trbs); fill pth12; + z13trr=z12trl; % top right head + trid(13, trht, trbs); fill pth13; + z2=(x12,y1); % bottom center head + trir(2, trht, trbs); fill pth2; + z3=(x13,y1); % bottom right head + trir(3, trht, trbs); fill pth3; + rt x3' = rightloc; y3'=y1tic; % bodies + draw z1tic--z3'; + draw z11tic--z1; draw z12tic--z2; draw z13tic--z3; + labels(1,2,3,4,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{h} +% The \thisfont{} letter H. +% \begin{macrocode} + +cmchar "Ugarite letter h"; +beginglyph("h",24/24); + z2trc = (leftloc,1/2h); % center head + trir(2, trht, trbs); fill pth2; + z1trr=z2trl; % top head + trir(1, trht, trbs); fill pth1; + z3trl=z2trr; % bottom head + trir(3, trht, trbs); fill pth3; + y1'' = y1; y2'' = y2; y3'' = y3; % bodies + x1'' = x2'' = x3'' = rightloc; + draw z1tic--z1''; draw z2tic--z2''; draw z3tic--z3''; +labels(1,2,3,4,5,6,7,8,9,10); endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{w} +% The \thisfont{} letter W. +% \begin{macrocode} + +cmchar "Ugarite letter w"; +beginglyph("w", (5th)); + z1trr=(leftloc,1/2h); % top head + trir(1, trht, trbs); fill pth1; + z2trl=z1trr; % bottom head + trir(2, trht, trbs); fill pth2; + z3trc=(3/6aw, 1/2h); % center left head + trir(3, trht, trbs); fill pth3; + z4trc=z3; % center right head + trir(4, trht, trbs); fill pth4; + x1''=x3trc; y1'' = y1; % left bodies + x2''=x3trc; y2'' = y2; + x3''=rightloc; y3'' = y3; + draw z1tic--z1''; + draw z2tic--z2''; + draw z3tic--z3''; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The \thisfont{} letter Z. +% \begin{macrocode} + +cmchar "Ugarite letter z"; +beginglyph("z", tb); + z1trc=(midloc,h); + trid(1, trht, trbs); fill pth1; % top head + z2trc=(x1trc,y1); + trid(2, trht, trbs); fill pth2; % middle head + z1''=(x1,0); draw z1tic--z1''; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The \thisfont{} letter H sub d. +% \begin{macrocode} + +cmchar "Ugarite letter H sub d (H)"; +beginglyph("H", (4tb)); % 3tb too small + numeric n[]; + z1trc=(leftloc,1/2h); % left head + trir(1, trht, trbs); fill pth1; + z2trc=(midloc,h); % top middle head + trid(2, trht, trbs); fill pth2; + n1 := 3/2trbs; % base of small wing % 2trbs too large + n2 := 1/2n1; % height of small wing + z3 = (rightloc-n2,y1); + wingl(3, n2, n1); fill pth3; + z4 = (x2,y1); + z5=(1/2[x1,x3], y4-trht-1/2trbs); % bottom head + triangle(5, trht, trbs, -45); fill pth5; + z5'=whatever[z5trc,z5]; y5'=0; + draw z1tic--z3; + draw z2tic--z4; + draw z5tic--z5'; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The \thisfont{} letter T sub d. +% \begin{macrocode} + +cmchar "Ugarite letter T sub d (T)"; +beginglyph("T", (3tb)); + numeric n[]; + z1trc=(leftloc,1/2h); % left head + trir(1, trht, trbs); fill pth1; + z2trc=(midloc,h); % top middle head + trid(2, trht, trbs); fill pth2; + n1 := 2trbs; % base of small wing + n2 := 1/2n1; % height of small wing + z3 = (rightloc-n2,y1); + wingl(3, n2, n1); fill pth3; + z4 = (x2,y1); + draw z1tic--z3; + draw z2tic--z4; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The \thisfont{} letter Y. +% \begin{macrocode} + +cmchar "Ugarite letter y"; +beginglyph("y", (2tb)); +%% left pin + z1trr=(leftloc,h); + trid(1, trht, trbs); fill pth1; % top head + z2trc=(x1trc,y1); + trid(2, trht, trbs); fill pth2; % middle head + z3trc=(x1trc,y2); + trid(3, trht, trbs); fill pth3; % bottom head + z1''=(x1,0); draw z1tic--z1''; +%% right pin + z11trr=z1trl; + trid(11, trht, trbs); fill pth11; % top head + z12trc=(x11trc,y11); + trid(12, trht, trbs); fill pth12; % middle head + z13trc=(x11trc,y12); + trid(13, trht, trbs); fill pth13; % bottom head + z11''=(x11,0); draw z11tic--z11''; + labels(1,2,3,4,5,6,11,12,13); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{k} +% The \thisfont{} letter K. +% \begin{macrocode} + +cmchar "Ugarite letter k"; +beginglyph("k", (5th)); + z1trr=(leftloc,1/2h); % top head + trir(1, trht, trbs); fill pth1; + z2trl=z1trr; % bottom head + trir(2, trht, trbs); fill pth2; + z3trc=(3/6aw, 1/2h); % center left head + trir(3, trht, trbs); fill pth3; + x1''=x3trc; y1'' = y1; % left bodies + x2''=x3trc; y2'' = y2; + x3''=rightloc; y3'' = y3; + draw z1tic--z1''; + draw z2tic--z2''; + draw z3tic--z3''; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{V} +% The \thisfont{} letter S with an acute accent. +% \begin{macrocode} + +cmchar "Ugarite letter s acute (X)"; +beginglyph("X", (2wh+tb)); + z1trc=(midloc,h); % top head + trid(1, trht, trbs); fill pth1; + z1''=(x1,0); + draw z1tic--z1''; + z2=(leftloc, 1/2h); % left wing + wingl(2, wiht, wibs); fill pth2; + z3=(rightloc, y2) ; % right wing + wingr(3, wiht, wibs); fill pth3; + labels(1,2,2wil,2wic,2wir,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The \thisfont{} letter L. +% \begin{macrocode} + +cmchar "Ugarite letter l"; +beginglyph("l", (3tb)); +%% left pin + z1trr=(leftloc,h); + trid(1, trht, trbs); fill pth1; % top head + z1''=(x1,0); draw z1tic--z1''; +%% center pin + z11trr=z1trl; + trid(11, trht, trbs); fill pth11; % top head + z11''=(x11,0); draw z11tic--z11''; +%% right pin + z21trr=z11trl; + trid(21, trht, trbs); fill pth21; % top head + z21''=(x21,0); draw z21tic--z21''; + labels(1,2,3,4,5,6,11,12,13,21,22,23); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The \thisfont{} letter M. +% \begin{macrocode} + +cmchar "Ugarite letter m"; +beginglyph("m", (3tb)); + z1trl=(rightloc,h); % right head + trid(1, trht, trbs); fill pth1; + z1''=(x1,0); draw z1tic--z1''; + z2trc=(leftloc, 1/2[y1tic,y1'']); % left head + trir(2, trht, trbs); fill pth2; + z2''=(x1,y2); draw z2tic--z2''; + labels(1,2,3,4,5,6); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{D} +% The \thisfont{} letter D with an underbar. +% \begin{macrocode} + +cmchar "Ugarite letter d sub bar (D)"; +beginglyph("D", (wh+tb)); + z1trl=(rightloc,h); % top head + trid(1, trht, trbs); fill pth1; + z1''=(x1,0); draw z1tic--z1''; + z2=(leftloc, 1/2h); % left wing + wingl(2, wiht, wibs); fill pth2; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The \thisfont{} letter N. +% \begin{macrocode} + +cmchar "Ugarite letter n"; +beginglyph("n", (5th)); + z1trc=(leftloc, 1/2h); % left head + trir(1, trht, trbs); fill pth1; + z2trc=z1; % center head + trir(2, trht, trbs); fill pth2; + z3trc=z2; % right head + trir(3, trht, trbs); fill pth3; + z1''=(rightloc,y1); draw z1tic--z1''; + labels(1,2,3,4,5); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% \begin{macro}{Z} +% The \thisfont{} letter Z with an underdot. +% \begin{macrocode} + +cmchar "Ugarite letter z sub dot (Z)"; +beginglyph("Z", (3th+wh)); + z1trr=(leftloc,1/2h); % top head + trir(1, trht, trbs); fill pth1; + z1''=(leftloc+3trht, y1); draw z1tic--z1''; + z2trl=z1trr; % bottom head + trir(2, trht, trbs); fill pth2; + z2''=(x1'',y2); draw z2tic--z2''; + z3=(x1'',1/2h); % wing + wingl(3, wiht, wibs); fill pth3; + labels(1,2,3,4,5,6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{s} +% The \thisfont{} letter S. +% \begin{macrocode} + +cmchar "Ugarite letter s"; +beginglyph("s", (2tb)); + z1trr=(leftloc,h); % left head + trid(1, trht, trbs); fill pth1; + z1''=(x1,1/2h); draw z1tic--z1''; + z2trr=z1trl; % right head + trid(2, trht, trbs); fill pth2; + z2''=(x2,y1''); draw z2tic--z2''; + z3trc=(1/2[x1,x2], y1''); % bottom head + trid(3, trht, trbs); fill pth3; + z3''=(x3,0); draw z3tic--z3''; + labels(1,2,3,4,5,6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{`} +% The \thisfont{} letter single left quote. +% \begin{macrocode} + +cmchar "Ugarite letter `"; +beginglyph("`", (wh)); + z1=(leftloc,1/2h); + wingl(1, wiht, wibs); fill pth1; + labels(1,2,3,4,5,6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The \thisfont{} letter single left quote. +% \begin{macrocode} + +cmchar "Ugarite letter ` (coded as o)"; +beginglyph("o", (wh)); + z1=(leftloc,1/2h); + wingl(1, wiht, wibs); fill pth1; + labels(1,2,3,4,5,6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{p} +% The \thisfont{} letter P. +% \begin{macrocode} + +cmchar "Ugarite letter p"; +beginglyph("p", (4th)); + z1trr=(leftloc,1/2h); % top head + trir(1, trht, trbs); fill pth1; + z1''=(rightloc,y1); draw z1tic--z1''; + z2trl=z1trr; % bottom head + trir(2, trht, trbs); fill pth2; + z2''=(x1'',y2); draw z2tic--z2''; + labels(1,2,3,4,5,6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The \thisfont{} letter S sub dot. +% \begin{macrocode} + +cmchar "Ugarite letter S sub dot (x)"; +beginglyph("x", (2tb)); + z1trr=(leftloc,h); % left head + trid(1, trht, trbs); fill pth1; + z1''=(x1,0); draw z1tic--z1''; + z2trr=z1trl; % right head + trid(2, trht, trbs); fill pth2; + z2''=(x2,0); draw z2tic--z2''; + labels(1,2,3,4,5,6,7); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{q} +% The \thisfont{} letter Q. +% \begin{macrocode} + +cmchar "Ugarite letter q"; +beginglyph("q", (3tb)); + numeric n[]; + z1trc=(leftloc,1/2h); % left head + trir(1, trht, trbs); fill pth1; + n1 := 2trbs; % base of small wing + n2 := 1/2n1; % height of small wing + z3 = (rightloc-n2,y1); + wingl(3, n2, n1); fill pth3; + draw z1tic--z3; + labels(1,2,3,4,5,6,7,8,9,10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The \thisfont{} letter R. +% \begin{macrocode} + +cmchar "Ugarite letter r"; +beginglyph("r", (5th)); % 6th too much +%% bottom + z1trl=(leftloc,1/2h); % left head + trir(1, trht, trbs); fill pth1; + z2trc=z1; % center head + trir(2, trht, trbs); fill pth2; +%% top + z11trr=z1trl; % left head + trir(11, trht, trbs); fill pth11; + z12trc=z11; % center head + trir(12, trht, trbs); fill pth12; +%% right + z21trc=(x2+trht, 1/2[y1,y11]); + trir(21, trht, trbs); fill pth21; + z1''=(x21trc,y1); draw z1tic--z1''; + z11''=(x21trl,y11); draw z11tic--z11''; + z21''=(rightloc,y21); draw z21tic--z21''; + labels(1,2,3,4,5,6,7,11,12,21); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{J} +% The \thisfont{} T sub bar. +% \begin{macrocode} + +cmchar "Ugarite letter T sub bar (J)"; +beginglyph("J", (2tb)); + z1trl=(rightloc,h); % vertical pin + trid(1, trht, trbs); fill pth1; + z1''=(x1,0); draw z1tic--z1''; + z2=(x1trr,1/3h); % angled pin + z2''=(rightloc,0); + triangle(2, trht, trbs, angle((z2''-z2))); fill pth2; + draw z2tic--z2''; + labels(1,1'',2,2''); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The \thisfont{} G with a dot accent. +% \begin{macrocode} + +cmchar "Ugarite letter G sup dot (G)"; +beginglyph("G", 24/24); + z1trc=(leftloc,1/2h); % horizontal pin + trir(1, trht, trbs); fill pth1; + z1''=(rightloc,y1); draw z1tic--z1''; + z2=(1/2[x1,x1''], y1trr); % angled pin + triangle(2, trht, trbs, 45); fill pth2; + z2''=whatever[z2trc,z2]; y2''=(y1+(y1-y2)); + draw z2tic--z2''; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The \thisfont{} T. +% \begin{macrocode} + +cmchar "Ugarite letter t"; +beginglyph("t", 24/24); + z1trc=(leftloc,1/2h); + trir(1, trht, trbs); fill pth1; + z1''=(rightloc,y1); draw z1tic--z1''; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{i} +% The \thisfont{} I. +% \begin{macrocode} + +cmchar "Ugarite letter i"; +beginglyph("i", 24/24); + z1trc=(leftloc,h); % top + trir(1, trht, trbs); fill pth1; + z1''=(rightloc,y1); draw z1tic--z1''; + z2trl=z1trr; % center + trir(2, trht, trbs); fill pth2; + z2''=(rightloc,y2); draw z2tic--z2''; + z3trl=z2trr; % bottom + trir(3, trht, trbs); fill pth3; + z3''=(rightloc,y3); draw z3tic--z3''; + + z4trc=(midloc,y3); % small vertical pin + trid(4, trht, trbs); fill pth4; + z4''=(x4,0); draw z4tic--z4''; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{u} +% The \thisfont{} letter U. +% \begin{macrocode} + +cmchar "Ugarite letter u"; +beginglyph("u", (4tb)); % 5tb too big + z2trc=(midloc,h); % center pin + trid(2, trht, trbs); fill pth2; + z1trl=z2trr; % left pin + trid(1, trht, trbs); fill pth1; + z3trr=z2trl; % right pin + trid(3, trht, trbs); fill pth3; + z4trr=(leftloc,0); % bottom pin + trir(4, trht, trbs); fill pth4; + z1''=(x1,y4); draw z1tic--z1''; + z2''=(x2,y4); draw z2tic--z2''; + z3''=(x3,y4); draw z3tic--z3''; + z4''=(rightloc,y4); draw z4tic--z4''; + labels(1,2,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{V} +% The \thisfont{} letter S with grave accent. +% \begin{macrocode} + +cmchar "Ugarite letter S with grave accent (V)"; +beginglyph("V", (4tb)); + numeric n[]; + n1 := 3/2trbs; % base of wing % 2trbs too large + n2 := 1/2n1; % height of wing + z11trc=(midloc,h); % pin + trid(11, trht, trbs); fill pth11; + z11''=(x11,0); draw z11tic--z11''; +%% left wings + z3wir=(x11trr,0); % bottom + wingu(3, n2, n1); fill pth3; + z1=(x3,y11); % top + wingu(1, n2, n1); fill pth1; + z2=1/2[z1,z3]; % middle + wingu(2, n2, n1); fill pth2; +%% right wings + z23wil=(x11trl,0); % bottom + wingu(23, n2, n1); fill pth23; + z21=(x23,y11); % top + wingu(21, n2, n1); fill pth21; + z22=1/2[z21,z23]; % middle + wingu(22, n2, n1); fill pth22; + labels(1,2,3,11,21,22,23); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{:} +% The \thisfont{} word divider. +% \begin{macrocode} + +cmchar "Ugarite word divider (:)"; +beginglyph(":", (tb)); + z1trc=(midloc, 3/4h); + trid(1, trht, trbs); fill pth1; + z2=(midloc, 1/4h); draw z1tic--z2; + labels(1,1',1'',2,2',2trl,2trc,2trr,3,4); +endchar; + +% \end{macrocode} +% \end{macro} +% +% +% +% +% The end of the glyphs and file +% +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{cugar}{} + \DeclareFontShape{OT1}{cugar}{m}{n}{ <-> cugar10 }{} + \DeclareFontShape{OT1}{cugar}{bx}{n}{ <-> sub cugar/m/n }{} + \DeclareFontShape{OT1}{cugar}{b}{n}{ <-> sub cugar/m/n }{} + \DeclareFontShape{OT1}{cugar}{m}{sl}{ <-> sub cugar/m/n }{} + \DeclareFontShape{OT1}{cugar}{m}{it}{ <-> sub cugar/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{cugar}{} + \DeclareFontShape{T1}{cugar}{m}{n}{ <-> cugar10 }{} + \DeclareFontShape{T1}{cugar}{bx}{n}{ <-> sub cugar/m/n }{} + \DeclareFontShape{T1}{cugar}{b}{n}{ <-> sub cugar/m/n }{} + \DeclareFontShape{T1}{cugar}{m}{sl}{ <-> sub cugar/m/n }{} + \DeclareFontShape{T1}{cugar}{m}{it}{ <-> sub cugar/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{uguarite} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{ugarite}[2000/09/30 v1.1 package for Ugaritic fonts] +% \end{macrocode} +% +% +% \begin{macro}{\cugarfamily} +% Selects the font family in the OT1 encoding. +% \begin{macrocode} +\newcommand{\cugarfamily}{\usefont{OT1}{cugar}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textcugar} +% Text command for the font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textcugar}{\cugarfamily} + +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} +\chardef\Arq=`' \chardef\Aa=`a \chardef\Aaleph=`' +\chardef\Ab=`b \chardef\Abeth=`b +\chardef\Ag=`g \chardef\Agimel=`g +\chardef\Ahu=`I % \chardef\A=` +\chardef\Ad=`d \chardef\Adaleth=`d +\chardef\Ah=`h \chardef\Ahe=`h +\chardef\Aw=`w \chardef\Avav=`w +\chardef\Az=`z \chardef\Azayin=`z +\chardef\Ahd=`H \chardef\Aheth=`H +\chardef\Atd=`T \chardef\Ateth=`T +\chardef\Ay=`y \chardef\Ayod=`y +\chardef\Ak=`k \chardef\Akaph=`k +\chardef\Asa=`X % \chardef\A=` +\chardef\Al=`l \chardef\Alamed=`l +\chardef\Am=`m \chardef\Amem=`m +\chardef\Adb=`D % \chardef\A=` +\chardef\An=`n \chardef\Anun=`n +\chardef\Azd=`Z % \chardef\A=` +\chardef\As=`s \chardef\Asamekh=`s +\chardef\Alq=`` \chardef\Ao=`o \chardef\Aayin=`` +\chardef\Ap=`p \chardef\Ape=`p +\chardef\Asd=`x \chardef\Asade=`x +\chardef\Aq=`q \chardef\Aqoph=`q +\chardef\Ar=`r \chardef\Aresh=`r +\chardef\Atb=`J % \chardef\A=` +\chardef\Agd=`G % \chardef\A=` +\chardef\At=`t \chardef\Atav=`t +\chardef\Ai=`i % \chardef\A=` +\chardef\Au=`u % \chardef\A=` +\chardef\Asg=`V % \chardef\A=` +\chardef\Awd=`: % \chardef\A=` + +% \end{macrocode} +% +% \begin{macro}{\translitcugar} +% \begin{macro}{\translitcugarfont} +% |\translitcugar{|\meta{char-commands}|}| typesets a transliteration of +% the \thisfont{} character commands. These are typeset with the +% |\translitcugarfont|. +% \begin{macrocode} +\newcommand{\translitcugar}[1]{{% + \@translitU\translitcugarfont #1}} +\newcommand{\translitcugarfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Uunder} +% We need a command to put a small U shaped cup under a letter. +% \begin{macrocode} +\DeclareTextCommand{\Uunder}{OT1}[1]% + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char21}\vss}\hidewidth}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@translitU} +% This macro redefines all the character producing commands for use within +% |\translitcugar|. It is important not to have any spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitU}{% +\def\Arq{'}\def\Aa{\Arq}\def\Aaleph{\Arq}% +\def\Ab{b}\def\Abeth{\Ab}% +\def\Ag{g}\def\Agimel{\Ag}% +\def\Ahu{\Uunder{h}}% +\def\Ad{d}% +\def\Ah{h}\def\Ahe{\Ah}% +\def\Aw{w}\def\Avav{\Aw}% +\def\Az{z}\def\Azayin{\Az}% +\def\Ahd{\d{h}}\def\Aheth{\Ahd}% +\def\Atd{\d{t}}\def\Ateth{\Atd}% +\def\Ay{y}\def\Ayod{\Ay}% +\def\Ak{k}\def\Akaph{\Ak}% +\def\Asa{\'{s}}% +\def\Al{l}\def\Alamed{\Al}% +\def\Am{m}\def\Amem{\Am}% +\def\Adb{\b{d}}% +\def\An{n}\def\Anun{\An}% +\def\Azd{\d{z}}% +\def\As{s}\def\Asamekh{\As}% +\def\Alq{`}\def\Ao{\Alq}\def\Aayin{\Alq}% +\def\Ap{p}\def\Ape{\Ap}% +\def\Asd{\d{s}}\def\Asade{\Asd}% +\def\Aq{q}\def\Aqoph{\Aq}% +\def\Ar{r}\def\Aresh{\Ar}% +\def\Atb{\b{t}}% +\def\Agd{\.{g}}% +\def\At{t}\def\Atav{\At}% +\def\Ai{i}% +\def\Au{u}% +\def\Asg{\`{s}}% +\def\Awd{:\space}% +} + +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{Map file} +% A short file. +% \changes{v1.2}{2005/06/18}{Added map file} +% +% \begin{macrocode} +%<*map> +cugar10 Archaic-Ugaritic-Cuneiform <cugar10.pfb +%</map> +% \end{macrocode} +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/Master/texmf-dist/source/fonts/archaic/ugarite.ins b/Master/texmf-dist/source/fonts/archaic/ugarite.ins new file mode 100644 index 00000000000..8935b94ed78 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/ugarite.ins @@ -0,0 +1,90 @@ +%% ugarite.ins +%% 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. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{ugarite.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 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. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%%\generateFile{ugarite.drv}{t}{\from{ugarite.dtx}{driver}} + +%%%\Msg{*** Generating the Metafont files ***} +%%%\usepostamble\empty +%%%\generateFile{cugar10.mf}{t}{\from{ugarite.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1cugar.fd}{t}{\from{ugarite.dtx}{fdot1}} +\generateFile{t1cugar.fd}{t}{\from{ugarite.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{ugarite.sty}{t}{\from{ugarite.dtx}{usc}} + +\Msg{*** Generating the map files ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{ugarite.map}{t}{\from{ugarite.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue the installation move these files} +\Msg{* into the LaTeX macro area:} +\Msg{* \space\space ot1cugar.fd} +\Msg{* \space\space t1cugar.fd} +\Msg{* \space\space ugarite.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/Master/texmf-dist/source/fonts/archaic/viking.dtx b/Master/texmf-dist/source/fonts/archaic/viking.dtx new file mode 100644 index 00000000000..a7bf2ca026c --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/viking.dtx @@ -0,0 +1,1041 @@ +% \iffalse meta-comment +% +% viking.dtx +% Copyright Uwe Zimmermann +% based on runic.dtx by Peter R. Wilson (c)1999 +% +% This program is provided under the terms of the +% LaTeX Project Public License distributed from CTAN +% archives in directory macros/latex/base/lppl.txt. +% +% Author: Uwe Zimmermann, uwe.zimmermann@sciencetronics.com +% +% +%<*driver> +\documentclass{ltxdoc} +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\begin{document} + \DocInput{viking.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{21} +% +% \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}{2003/08/12}{First public release} +% +% \def\fileversion{v1.0} +% \def\filedate{2003/08/12} +% \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}} +% +% \title{The \Lpack{Viking} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Uwe Zimmermann\\ +% Sciencetronics \\ +% {\tt uwe.zimmermann@sciencetronics.com} +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{viking} package provides two sets of Runic letters in +% the form used by the Scandinavian vikings around 1000~\AD. It is a +% ``modernized'' set of 16 characters some of which are assigned several +% pronunciations. +% \end{abstract} +% \tableofcontents +% +% \StopEventually{} +% +% +% +% \section{Introduction} +% +% This package is based on the \Lpack{runic} package by Peter Wilson, +% but was modified to represent the Runic alphabet as it was used by the +% Scandinavian vikings. The original 24 letter \textit{Futhark} had +% at that time been simplified to a 16 letter alphabet, which existed +% in two forms: one form with shorter and one form with longer branches. +% +% This package accommodates both sets of runic characters in the place +% of the upper and lower case latin characters, respectively. +% +% 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 is in Sections~\ref{sec:mf} and~\ref{sec:fd} +% and source code for the package is in Section~\ref{sec:code}. +% +% \section{The \Lpack{runic} package} \label{sec:usc} +% +% The font in this package represents the later runic alphabet used +% by the Scandinavian vikings from about 700~\AD\ until about 1200~\AD\ +% when the runes were replaced by both the medieval runic alphabet and the +% roman (latin) alphabet. Originally this runic alphabet was developed +% from the older versions with 24 letters, represented in the Lpack{runic} +% package by Peter Wilson. The shape of the runes had been simplified and the +% number was reduced from 24 to 16 characters. +% +% The font presented here is based on information from Enoksen~\cite{ENOKSEN98}, +% Jansson~\cite{JANSSON84}, Brink~\cite{BRINK83} and +% Gustavson~\cite{GUSTAVSON91}. +% +% Many of the Runic characters +% have a direct correspondence with the modern Latin alphabet. +% The \textit{S} rune is allowed in a second mirrored form, +% which was mapped as \textit{Z}. The \textit{yR} rune changed +% their pronunciation towards \textit{Y} during the viking ages, +% which allowed me to map it at this character position. Unlike +% Wilson I chose to avoid a command for the \textit{thurs} (\textit{thorn}) +% rune and placed it as the letter \textit{D} instead. Since it +% also represents the sound \textit{dh} this does not appear unreasonable +% and eases the writing of texts and the reading of the source code. +% +% The uppercase letters will produce the long-armed form of the +% runes, while the lowercase letters correspond to the somewhat +% shorter alternative form (Swedish: \textit{kortkvist runor}). +% +% The letter sequence +% for the viking futhark abecedary mapping is:\\ +% |F U D O R K H N I A S T B M L Y : .| \\ +% with the two punctuation marks |:| and |.| commonly found +% in runic inscriptions. +% +% +% \DescribeMacro{\futfamily} +% This command selects the Runic font family. The family name is |vik|. +% +% \DescribeMacro{\textfut} +% The command |\textfut{|\meta{text}|}| typesets \meta{text} in the +% Runic font. +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> +%%% VIK10.MF Computer Runic font 10 point design size. + +% \end{macrocode} +% Specify the font size. +% \begin{macrocode} + +font_identifier:="Viking"; font_size 10pt#; + +% \end{macrocode} +% +% +% \begin{macro}{u} +% \begin{macro}{ht} +% \begin{macro}{s} +% \begin{macro}{o} +% \begin{macro}{px} +% \begin{macro}{font-normal-space} +% \begin{macro}{font-normal-shrink} +% \begin{macro}{font-x-height} +% \begin{macro}{font-quad} +% Define the very simple font parameters. +% \begin{macrocode} +u#:=.2pt#; % unit width +ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt) +s#:=1.5pt#; % width correction (right and left) +o#:=1/20pt#; % overshoot +px#:=.7pt#; % horizontal width of pen +font_normal_space:=7pt#; % width of a blank space +font_normal_shrink:=.9pt#; % width correction for blank space +font_x_height:=4.5pt#; % height of one ex +font_quad:=10pt#; % an em + +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% Finally, call the driver file for the Runic font. +% \begin{macrocode} +input viktitle %% switch to the driver file---Runic title + +end + +%</up> +% \end{macrocode} +% +% +% \subsection{The driver file} +% +% Announce the file and switch into Metafont mode +% +% \begin{macrocode} +%<*mfd> +% This is VIKTITLE.MF. It makes the short Runic font. + +font_coding_scheme:="Runic glyphs"; +mode_setup; + +% \end{macrocode} +% +% \begin{macro}{ho} +% \begin{macro}{leftloc} +% \begin{macro}{py} +% Perform additional setup. +% \begin{macrocode} +ho#:=o#; % horizontal overshoot +leftloc#:=s#; % leftmost xcoord of character +py#:=.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} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{midloc} +% \begin{macro}{rightloc} +% Variables for the middle xcoord and rightmost xcoord of a character. +% \begin{macrocode} +numeric midloc, rightloc; +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{stylus} +% Define the pen. +% \begin{macrocode} +pickup pencircle xscaled px yscaled py; +stylus:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{stugna} +% Define the thicker pen for the E rune. +% \begin{macrocode} +pickup pencircle xscaled 2px yscaled 2px; +stugna:=savepen; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{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{macro} +% +% \begin{macro}{cmchar} +% |cmchar| should precede each character +% \begin{macrocode} +let cmchar=\; + +% \end{macrocode} +% \end{macro} +% +% Finally, input the file that does all the work. +% \begin{macrocode} + +input vikglyph; % Runic glyphs + +end + +%</mfd> +% \end{macrocode} +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the Runic font. The characters +% are defined in the futhark ordering. +% +% \begin{macrocode} +%<*maj> +% VIKGLYPH.MF Program file for Runic font. +% +% +% \end{macrocode} +% +% \begin{macro}{F} +% The long-armed F +% \begin{macrocode} +cmchar "Runic letter F"; +beginglyph("F",0.6); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.4h); +z3 = (leftloc, 0.7h); +z4 = (leftloc, 1.0h); +z5 = (midloc, 1.0h); +z6 = (rightloc, 1.0h); +draw z1--z4; +draw z2--z6; +draw z3--z5; +labels(1,2,3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{U} +% The long-armed U +% \begin{macrocode} +cmchar "Runic letter U"; +beginglyph("U",0.6); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z3 = (0.75rightloc, 0.65h); +z4 = (rightloc, 0.0h); +draw z1--z2--z3--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{D} +% The long-armed TH +% \begin{macrocode} +cmchar "Runic letter TH"; +beginglyph("D",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.2h); +z3 = (leftloc, 0.8h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 0.5h); +draw z1--z4; +draw z2--z5; +draw z3--z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{O} +% The long-armed O +% \begin{macrocode} +cmchar "Runic letter O"; +beginglyph("O",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.4h); +z3 = (leftloc, 0.7h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 0.5h); +z6 = (rightloc, 0.2h); +draw z1--z4; +draw z2--z6; +draw z3--z5; +labels(1,2,3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{R} +% The long-armed R +% \begin{macrocode} +cmchar "Runic letter R"; +beginglyph("R",0.6); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z3 = (0.7(leftloc+rightloc), 0.75h); +z4 = (0.3(leftloc+rightloc), 0.5h); +z5 = (rightloc, 0.0h); +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{K} +% The long-armed K +% \begin{macrocode} +cmchar "Runic letter K"; +beginglyph("K",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.5h); +z3 = (leftloc, 1.0h); +z4 = (rightloc, 1.0h); +draw z1--z3; +draw z2--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The long-armed G +% \begin{macrocode} +cmchar "Runic letter G"; +beginglyph("G",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.5h); +z3 = (leftloc, 1.0h); +z4 = (rightloc, 1.0h); +z5 = (midloc, 0.95h); +draw z1--z3; +draw z2--z4; +draw z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The long-armed H +% \begin{macrocode} +cmchar "Runic letter H"; +beginglyph("H",0.4); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z3 = (leftloc, 0.3h); +z4 = (leftloc, 0.7h); +z5 = (rightloc, 0.7h); +z6 = (rightloc, 0.3h); +draw z1--z2; +draw z3--z5; +draw z4--z6; +labels(1,2,3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{N} +% The long-armed N +% \begin{macrocode} +cmchar "Runic letter N"; +beginglyph("N",0.4); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z4 = (leftloc, 0.7h); +z6 = (rightloc, 0.3h); +draw z1--z2; +draw z4--z6; +labels(1,2,4,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{I} +% The long-armed I +% \begin{macrocode} +cmchar "Runic letter I"; +beginglyph("I",0.4); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +draw z1--z2; +labels(1,2); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{E} +% The long-armed E +% \begin{macrocode} +cmchar "Runic letter E"; +beginglyph("E",0.4); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z3 = (midloc, 0.5h); +draw z1--z2; +pickup stugna +draw z3; +labels(1,2,3); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{A} +% The long-armed A +% \begin{macrocode} +cmchar "Runic letter A"; +beginglyph("A",0.4); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z4 = (leftloc, 0.3h); +z6 = (rightloc, 0.7h); +draw z1--z2; +draw z4--z6; +labels(1,2,4,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{S} +% The long-armed S +% \begin{macrocode} +cmchar "Runic letter S"; +beginglyph("S",0.4); +z1 = (rightloc, 0.0h); +z2 = (rightloc, 0.7h); +z3 = (leftloc, 0.3h); +z4 = (leftloc, 1.0h); +draw z1--z2--z3--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Z} +% The long-armed mirrored S +% \begin{macrocode} +cmchar "Runic letter Z"; +beginglyph("Z",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.7h); +z3 = (rightloc, 0.3h); +z4 = (rightloc, 1.0h); +draw z1--z2--z3--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The long-armed T +% \begin{macrocode} +cmchar "Runic letter T"; +beginglyph("T",0.4); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z3 = (leftloc, 0.8h); +z4 = (rightloc, 0.8h); +draw z1--z2; +draw z2--z3; +draw z2--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{B} +% The long-armed B +% \begin{macrocode} +cmchar "Runic letter B"; +beginglyph("B",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.5h); +z3 = (leftloc, 1.0h); +z4 = (rightloc, 0.75h); +z5 = (rightloc, 0.25h); +draw z1--z3; +draw z3--z4--z2; +draw z2--z5--z1; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{M} +% The long-armed M +% \begin{macrocode} +cmchar "Runic letter M"; +beginglyph("M",0.6); +z1 = (midloc, 0.0h); +z2 = (midloc, 0.7h); +z3 = (midloc, 1.0h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 1.0h); +draw z1--z3; +draw z2--z4; +draw z2--z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{L} +% The long-armed L +% \begin{macrocode} +cmchar "Runic letter L"; +beginglyph("L",0.4); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z3 = (rightloc, 0.8h); +draw z1--z2--z3; +labels(1,2,3); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Y} +% The long-armed Y +% \begin{macrocode} +cmchar "Runic letter Y"; +beginglyph("Y",0.6); +z1 = (midloc, 0.0h); +z2 = (midloc, 0.3h); +z3 = (midloc, 1.0h); +z4 = (leftloc, 0.0h); +z5 = (rightloc, 0.0h); +draw z1--z3; +draw z2--z4; +draw z2--z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{:} +% The punctuation : +% \begin{macrocode} +cmchar "Runic letter :"; +beginglyph(":",0.2); +z3 = (leftloc, 0.4h); +z4 = (leftloc, 0.6h); +z5 = (rightloc, 0.6h); +z6 = (rightloc, 0.4h); +draw z3--z5; +draw z4--z6; +labels(3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{.} +% The punctuation . +% \begin{macrocode} +cmchar "Runic letter ."; +beginglyph(".",0.2); +z3 = (midloc, 0.5h); +draw z3; +labels(3); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{f} +% The short-armed F +% \begin{macrocode} +cmchar "Runic letter F"; +beginglyph("f",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.5h); +z3 = (leftloc, 0.75h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 1.0h); +z6 = (rightloc, 0.75h); +draw z1--z4; +draw z2--z6; +draw z3--z5; +labels(1,2,3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{u} +% The short-armed U +% \begin{macrocode} +cmchar "Runic letter U"; +beginglyph("u",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z4 = (rightloc, 0.0h); +draw z1--z2--z4; +labels(1,2,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The short-armed TH +% \begin{macrocode} +cmchar "Runic letter TH"; +beginglyph("d",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.2h); +z3 = (leftloc, 0.8h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 0.5h); +draw z1--z4; +draw z2--z5; +draw z3--z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The short-armed O +% \begin{macrocode} +cmchar "Runic letter O"; +beginglyph("o",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.4h); +z3 = (leftloc, 0.7h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 0.5h); +z6 = (rightloc, 0.2h); +draw z1--z4; +draw z2--z6; +draw z3--z5; +labels(1,2,3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The short-armed R +% \begin{macrocode} +cmchar "Runic letter R"; +beginglyph("r",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z3 = (0.7(leftloc+rightloc), 0.75h); +z4 = (0.3(leftloc+rightloc), 0.5h); +z5 = (rightloc, 0.0h); +draw z1--z2--z3--z4--z5; +labels(1,2,3,4,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{k} +% The short-armed K +% \begin{macrocode} +cmchar "Runic letter K"; +beginglyph("k",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.5h); +z3 = (leftloc, 1.0h); +z4 = (rightloc, 1.0h); +draw z1--z3; +draw z2--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{h} +% The short-armed H +% \begin{macrocode} +cmchar "Runic letter H"; +beginglyph("h",0.2); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z3 = (leftloc, 0.5h); +z5 = (rightloc, 0.5h); +draw z1--z2; +draw z3--z5; +labels(1,2,3,5); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The short-armed N +% \begin{macrocode} +cmchar "Runic letter N"; +beginglyph("n",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z4 = (leftloc, 0.6h); +z6 = (rightloc, 0.3h); +draw z1--z2; +draw z4--z6; +labels(1,2,4,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{i} +% The short-armed I +% \begin{macrocode} +cmchar "Runic letter I"; +beginglyph("i",0.2); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +draw z1--z2; +labels(1,2); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The short-armed A +% \begin{macrocode} +cmchar "Runic letter A"; +beginglyph("a",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z4 = (leftloc, 0.4h); +z6 = (rightloc, 0.7h); +draw z1--z2; +draw z4--z6; +labels(1,2,4,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{s} +% The short-armed S +% \begin{macrocode} +cmchar "Runic letter S"; +beginglyph("s",0.2); +z1 = (midloc, 0.5h); +z2 = (midloc, 1.0h); +draw z1--z2; +labels(1,2); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The short-armed T +% \begin{macrocode} +cmchar "Runic letter T"; +beginglyph("t",0.3); +z1 = (rightloc, 0.0h); +z2 = (rightloc, 1.0h); +z3 = (leftloc, 0.8h); +draw z1--z2; +draw z2--z3; +labels(1,2,3); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The short-armed B +% \begin{macrocode} +cmchar "Runic letter B"; +beginglyph("b",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 0.3h); +z3 = (leftloc, 0.6h); +z4 = (leftloc, 1.0h); +z5 = (rightloc, 0.8h); +z6 = (rightloc, 0.5h); +draw z1--z4; +draw z2--z6; +draw z3--z5; +labels(1,2,3,4,5,6); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The short-armed M +% \begin{macrocode} +cmchar "Runic letter M"; +beginglyph("m",0.3); +z1 = (midloc, 0.0h); +z2 = (midloc, 1.0h); +z3 = (leftloc, 1.0h); +z4 = (rightloc, 1.0h); +draw z1--z2; +draw z3--z4; +labels(1,2,3,4); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The short-armed L +% \begin{macrocode} +cmchar "Runic letter L"; +beginglyph("l",0.3); +z1 = (leftloc, 0.0h); +z2 = (leftloc, 1.0h); +z3 = (rightloc, 0.8h); +draw z1--z2--z3; +labels(1,2,3); +endchar; +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The short-armed Y +% \begin{macrocode} +cmchar "Runic letter Y"; +beginglyph("y",0.2); +z1 = (midloc, 0.0h); +z2 = (midloc, 0.5h); +draw z1--z2; +labels(1,2); +endchar; +%</maj> +% \end{macrocode} +% \end{macro} +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{vik}{} + \DeclareFontShape{OT1}{vik}{m}{n}{ <-> vik10 }{} + \DeclareFontShape{OT1}{vik}{bx}{n}{ <-> sub vik/m/n }{} + \DeclareFontShape{OT1}{vik}{b}{n}{ <-> sub vik/m/n }{} + \DeclareFontShape{OT1}{vik}{m}{sl}{ <-> sub vik/m/n }{} + \DeclareFontShape{OT1}{vik}{m}{it}{ <-> sub vik/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{vik}{} + \DeclareFontShape{T1}{vik}{m}{n}{ <-> vik10 }{} + \DeclareFontShape{T1}{vik}{bx}{n}{ <-> sub vik/m/n }{} + \DeclareFontShape{T1}{vik}{b}{n}{ <-> sub vik/m/n }{} + \DeclareFontShape{T1}{vik}{m}{sl}{ <-> sub vik/m/n }{} + \DeclareFontShape{T1}{vik}{m}{it}{ <-> sub vik/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{viking} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{viking}[2003/08/12 v1.0 package for Runic fonts] +% \end{macrocode} +% +% +% \begin{macro}{\vikfamily} +% Selects the futharc (Runic) font family in the OT1 encoding. +% \begin{macrocode} +\newcommand{\vikfamily}{\usefont{OT1}{vik}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textvik} +% Text command for the viking (Runic) font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textvik}{\vikfamily} +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% +% \bibliographystyle{alpha} +% +% \begin{thebibliography}{GMS94} +% +% \bibitem[Eno98]{ENOKSEN98} +% Lars Magnus Enoksen. +% \newblock {\em Runor}. +% \newblock Historiska Media, 1998. +% \newblock ISBN 91-89442-55-5 +% +% \bibitem[Bri83]{BRINK83} +% Thorgunn Sn{\ae}dal Brink. +% \newblock {\em Runstenar och runinskrifter i Sigtuna kommun}. +% \newblock Bohusl{\"a}ningens Boktryckeri, 1983. +% \newblock ISSN 0280-8439 +% +% \bibitem[Jan84]{JANSSON84} +% Sven B.\ F.\ Jansson. +% \newblock {\em Runinskrifter i Sverige}. +% \newblock Almqvist \& Wiksell, 1984. +% \newblock ISBN 91-20-07030-6 +% +% \bibitem[Gus91]{GUSTAVSON91} +% Helmer Gustavson. +% \newblock {\em Runstenar i Vallentuna}. +% \newblock CEWE, 1991. +% \newblock ISBN 91-971070-6-9 +% +% \bibitem[GMS94]{GOOSSENS94} +% Michel Goossens, Frank Mittelbach, and Alexander Samarin. +% \newblock {\em The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, 1994. +% \newblock ISBN 0-201-54199-8 +% +% +% \end{thebibliography} +% +% +% \Finale +% \PrintIndex +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} diff --git a/Master/texmf-dist/source/fonts/archaic/viking.ins b/Master/texmf-dist/source/fonts/archaic/viking.ins new file mode 100644 index 00000000000..399ae958fd9 --- /dev/null +++ b/Master/texmf-dist/source/fonts/archaic/viking.ins @@ -0,0 +1,85 @@ +%% +%% viking.ins +%% Copyright 2003 Uwe Zimmermann +%% +%% This program is provided under the terms of the +%% LaTeX Project Public License distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt. +%% +%% Author: Uwe Zimmermann +%% uwe.zimmermann@sciencetronics.com +%% +%% based on runic.ins by Peter R. Wilson +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\batchfile{viking.ins} +\input docstrip.tex +\preamble + + Copyright 2003 Uwe Zimmermann + + This program is provided under the terms of the + LaTeX Project Public License distributed from CTAN + archives in directory macros/latex/base/lppl.txt. + + Author: Uwe Zimmermann + uwe.zimmermann@sciencetronics.com + + based on runic.ins by Peter R. Wilson + +\endpreamble + +\keepsilent + +%%% \Msg{*** Generating the driver file ***} +%%% \generateFile{viking.drv}{t}{\from{viking.dtx}{driver}} + +\Msg{*** Generating the Metafont files ***} + +\usepostamble\empty +\generateFile{vik10.mf}{t}{\from{viking.dtx}{up}} +\generateFile{vikglyph.mf}{t}{\from{viking.dtx}{maj}} +\generateFile{viktitle.mf}{t}{\from{viking.dtx}{mfd}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1vik.fd}{t}{\from{viking.dtx}{fdot1}} +\generateFile{t1vik.fd}{t}{\from{viking.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{viking.sty}{t}{\from{viking.dtx}{usc}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To finish the installation you have to move the following} +\Msg{* files into directories searched by TeX:} +\Msg{*} +\Msg{* Move these into the font source area:} +\Msg{* \space\space vik10.mf} +\Msg{* \space\space vikglyph.mf} +\Msg{* \space\space viktitle.mf} +\Msg{*} +\Msg{* Move these into the LaTeX macro area:} +\Msg{* \space\space ot1vik.fd} +\Msg{* \space\space t1vik.fd} +\Msg{* \space\space viking.sty} +\Msg{*} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput |