diff options
Diffstat (limited to 'fonts/archaic/ugarite/ugarite.dtx')
-rw-r--r-- | fonts/archaic/ugarite/ugarite.dtx | 1767 |
1 files changed, 1767 insertions, 0 deletions
diff --git a/fonts/archaic/ugarite/ugarite.dtx b/fonts/archaic/ugarite/ugarite.dtx new file mode 100644 index 0000000000..574c5baaec --- /dev/null +++ b/fonts/archaic/ugarite/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 \~} + + |