From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- fonts/archaic/sarabian/sarabian.dtx | 1046 +++++++++++++++++++++++++++++++++++ 1 file changed, 1046 insertions(+) create mode 100644 fonts/archaic/sarabian/sarabian.dtx (limited to 'fonts/archaic/sarabian/sarabian.dtx') diff --git a/fonts/archaic/sarabian/sarabian.dtx b/fonts/archaic/sarabian/sarabian.dtx new file mode 100644 index 0000000000..95d89748c4 --- /dev/null +++ b/fonts/archaic/sarabian/sarabian.dtx @@ -0,0 +1,1046 @@ +% \iffalse meta-comment +% +% sarabian.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 + \DeclareTextCommand{\SAunder}{OT1}[1]% + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char21}\vss}\hidewidth}}} +\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{sarabian.dtx} +\end{document} +% +% +% \fi +% +% \CheckSum{177} +% +% \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/09/30}{First public release} +% \changes{v1.1}{2005/11/12}{Added map file} +% +% \def\fileversion{v1.0} +% \def\filedate{2000/09/30} +% \def\fileversion{v1.1} +% \def\filedate{2005/11/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}} +% \newcommand{\thisfont}{South Arabian} +% +% \title{The \Lpack{South Arabian} 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{sarabian} package provides a set of fonts, created by +% Alan Stanier, and LaTeX files for typesetting the +% \thisfont{} alphabet which was used around 600~\BC{} in some of the +% ancient kingdoms of Southern Arabia. +% \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 is in Sections~\ref{sec:mf} and~\ref{sec:fd} +% and source code for the package is in Section~\ref{sec:code}. +% +% \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{sarabian} package} \label{sec:usc} +% +% The \thisfont{} alphabet provided by this package is a descendent +% of the Proto-Siniatic or Proto-Canaanite scripts~\cite{HEALEY90}. +% It was used for about 1000 years, from roughly 600~\BC, in Southern +% Arabia. +% +% The alphabet consisted of 29 letters, but the ordering has no +% relationship to either the Semitic alphabets nor our modern day one. +% Table~\ref{tab} lists, in \thisfont{} alphabetic order, the transliterated +% values of the script. Note that there are many consonontal sounds +% represented that we no longer use. These are the letters with diacritics. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} alphabet}\label{tab} +% \begin{tabular}{ccl} \hline +% Value & ASCII & Command \\ \hline +% \textit{h} & h & |\SAh| \\ +% \textit{l} & l & |\SAl| \\ +% \textit{\d{h}} & H & |\SAhd| \\ +% \textit{m} & m & |\SAm| \\ +% \textit{q} & q & |\SAq| \\ +% \textit{w} & w & |\SAw| \\ +% \textit{\v{s}} & S & |\SAsv| \\ +% \textit{r} & r & |\SAr| \\ +% \textit{b} & b & |\SAb| \\ +% \textit{t} & t & |\SAt| \\ +% \textit{s} & s & |\SAs| \\ +% \textit{k} & k & |\SAk| \\ +% \textit{n} & n & |\SAn| \\ +% \textit{\SAunder{h}}& I & |\SAhu| \\ +% \textit{\'{s}} & X & |\SAsa| \\ +% \textit{f} & f & |\SAf| \\ +% \textit{'} & ' a & |\SArq| |\SAa| \\ +% \textit{`} & ` o & |\SAlq| |\SAo| \\ +% \textit{\d{d}} & B & |\SAdd| \\ +% \textit{g} & g & |\SAg| \\ +% \textit{d} & d & |\SAd| \\ +% \textit{\'{g}} & G & |\SAga| \\ +% \textit{\d{t}} & T & |\SA|td \\ +% \textit{z} & z & |\SAz| \\ +% \textit{\b{d}} & D & |\SAdb| \\ +% \textit{y} & y & |\SAy| \\ +% \textit{\b{t}} & J & |\SAtb| \\ +% \textit{\d{s}} & x & |\SAsd| \\ +% \textit{\d{z}} & Z & |\SAzd| \\ +% \hline +% \end{tabular} +% \end{table} +% +% The font provided was developed originally by Alan Stanier of +% Essex University. I have made very minor alterations to make it +% easier to use with the LaTeX font selection system. +% +% +% \DescribeMacro{\sarabfamily} +% This command selects the \thisfont{} font family. The family name is |sarab|. +% +% \DescribeMacro{\textsarab} +% The command |\textsarab{|\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}. +% +% \DescribeMacro{\translitsarab} +% The command |\translitsarab{|\meta{commands}|}| will typeset the transliteration +% of the \thisfont{} character commands (those in the third column of +% Table~\ref{tab}). +% +% \DescribeMacro{\translitsarabfont} +% 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) +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% The code is all in a single file. It is principally Alan Stanier's code, except +% that I have made a few slight modifications to make it easier to use with +% the automatic font generation usually employed by modern LaTeX systems. +% +% Start off by naming the file and including Stanier's comments. +% +% \begin{macrocode} +%<*up> +%%% SARAB10.MF South Arabian font 10 point design size. + +%%% This font was designed by Alan M Stanier ( alan@essex.ac.uk ), +%%% at Essex University Computer Service, Colchester, Essex CO4 3EA. England. +%%% +%%% If you make significant additions or improvements to the font, +%%% please email me an updated version +%%% +%%% This font was used for several languages in Southern Arabia in the +%%% second millenium BC +%%% + +% \end{macrocode} +% +% The next part of the original file looked like this: +% \begin{verbatim} +% mg:=1.0; % CHANGE THIS TO GET DIFFERENT SIZES OF FONT (font size = 10*mg pt) +% +% mode_setup; +% xpensize#:=mg*0.8pt; +% ypensize#:=mg*0.2pt; +% height#:=mg*10pt#; +% width#:=mg*7pt#; +% narrow#:=mg*5.3pt#; +% \end{verbatim} +% but this didn't seem to appeal to MetaFont very much, so I replaced it with: +% \begin{macrocode} +mode_setup; +font_identifier:="sarabian"; +font_size:= 10pt#; % nominally, a 10pt font +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 + +numeric pmg; pmg:=0.8; % a scale factor + +xpensize#:=pmg*0.8pt; +ypensize#:=pmg*0.2pt; +height#:=pmg*10pt#; +width#:=pmg*7pt#; +narrow#:=pmg*5.3pt#; + +mg#:= pmg*0.3pt#; +define_pixels(mg); + +numeric cscale; % scale factor for original circles +cscale# := mg#; +define_pixels(cscale); +let cmchar=\; + +% \end{macrocode} +% Now continue with the original code. +% \begin{macrocode} + +define_pixels(height,width,narrow); +def getpen = pickup pencircle xscaled xpensize# yscaled ypensize# rotated 30 enddef; + +% \end{macrocode} +% That finishes the simple set up. The rest of the code is for creating +% the character glyphs. It is Stanier's code, except that where he had a +% statement like: \\ +% |draw fullcircle scaled 10 shifted(...);| \\ +% I modifed it to: \\ +% |draw fullcircle scaled(10cscale) shifted(...);| \\ +% I also put a |cmchar "comment";| before each glyph code. + +% Note that the +% encoding I use is not the same as Stanier's but does match the encoding +% I use for my other archaic fonts. +% +% \begin{macro}{h} +% The \thisfont{} letter \textit{h}. +% \begin{macrocode} + +cmchar "letter h"; +beginchar("h",width#,height#,0); + getpen; + draw (0,mg*30){down} .. (mg*7.5,mg*15){right} .. (mg*15,mg*30){up}; + draw (mg*7.5,mg*15) -- (mg*7.5,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{l} +% The \thisfont{} letter \textit{l}. +% \begin{macrocode} + +cmchar "letter l"; +beginchar("l",width#,height#,0); + getpen; + draw (0,mg*15) -- (mg*15,mg*30) -- (mg*15,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{H} +% The \thisfont{} letter \textit{\d{h}}. +% \begin{macrocode} + +cmchar "letter h sub dot (coded as H)"; +beginchar("H",width#,height#,0); + getpen; + draw (0,mg*30){down} .. (mg*7.5,mg*15){right} .. (mg*15,mg*30){up}; + draw (mg*7.5,mg*30) -- (mg*7.5,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{m} +% The \thisfont{} letter \textit{m}. +% \begin{macrocode} + +cmchar "letter m"; +beginchar("m",width#,height#,0); + getpen; + draw (mg*15,mg*30) -- (mg*15,0) -- (0,mg*7.5) -- (mg*15,mg*15) -- + (0,mg*22.5) -- (mg*15,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{q} +% The \thisfont{} letter \textit{q}. +% \begin{macrocode} + +cmchar "letter q"; +beginchar("q",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*15); + draw (mg*5,mg*20) -- (mg*5,mg*30); + draw (mg*5,mg*10) -- (mg*5,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{w} +% The \thisfont{} letter \textit{w}. +% \begin{macrocode} + +cmchar "letter w"; +beginchar("w",width#,height#,0); + getpen; + draw fullcircle scaled (15cscale) shifted(mg*7.5,mg*15); + draw (mg*7.5,mg*7.5) -- (mg*7.5,mg*22.5); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{S} +% The \thisfont{} letter \textit{\v{s}}. +% \begin{macrocode} + +cmchar "letter s sup v (coded as S)"; +beginchar("S",width#,height#,0); + getpen; + draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0); + draw (mg*7.5,mg*15) -- (mg*7.5,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{r} +% The \thisfont{} letter \textit{r}. +% \begin{macrocode} + +cmchar "letter r"; +beginchar("r",width#,height#,0); + getpen; + draw (0,mg*30){right} .. (mg*15,mg*15){down} .. (0,0){left}; +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{b} +% The \thisfont{} letter \textit{b}. +% \begin{macrocode} + +cmchar "letter b"; +beginchar("b",width#,height#,0); + getpen; + draw (0,0) -- (0,mg*30) -- (mg*15,mg*30) -- (mg*15,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{t} +% The \thisfont{} letter \textit{t}. +% \begin{macrocode} + +cmchar "letter t"; +beginchar("t",width#,height#,0); + getpen; + draw (0,0) -- (mg*15,mg*30); + draw (0,mg*30) -- (mg*15,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{s} +% The \thisfont{} letter \textit{s}. +% \begin{macrocode} + +cmchar "letter s"; +beginchar("s",width#,height#,0); + getpen; + draw (0,0) -- (mg*15,mg*15) -- (0,mg*30); + draw (mg*15,0) -- (0,mg*15) -- (mg*15,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{k} +% The \thisfont{} letter \textit{k}. +% \begin{macrocode} + +cmchar "letter k"; +beginchar("k",width#,height#,0); + getpen; + draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0); + draw (0,mg*15) -- (mg*7.5,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{n} +% The \thisfont{} letter \textit{n}. +% \begin{macrocode} + +cmchar "letter n"; +beginchar("n",width#,height#,0); + getpen; + draw (0,mg*30) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{I} +% The \thisfont{} letter \textit{$h_u$}. +% \begin{macrocode} + +cmchar "letter h sub u (coded as H)"; +%%beginchar("1",width#,height#,0); +beginchar("I",width#,height#,0); + getpen; + draw (0,mg*30){down} .. (mg*7.5,mg*15){right} .. (mg*15,mg*30){up}; + draw (mg*7.5,mg*15) -- (mg*7.5,mg*7.5) -- (mg*15,mg*7.5) -- (mg*15,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{X} +% The \thisfont{} letter \textit{\'{s}}. +% \begin{macrocode} + +cmchar "letter s acute (coded as X)"; +%%beginchar("2",width#,height#,0); +beginchar("X",width#,height#,0); + getpen; + draw (0,0) -- (mg*15,mg*7.5) -- (0,mg*15) -- + (mg*15,mg*22.5) -- (0,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{f} +% The \thisfont{} letter \textit{f}. +% \begin{macrocode} + +cmchar "letter f"; +beginchar("f",width#,height#,0); + getpen; + draw (0,mg*15) -- (mg*7.5,0) -- (mg*15,mg*15) -- (mg*7.5,mg*30) + -- (0,mg*15); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{`} +% The \thisfont{} letter \textit{`} (semitic ayin). +% \begin{macrocode} + +cmchar "letter `"; +beginchar("`",width#,height#,0); + getpen; + draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0); + draw (mg*7.5,mg*15) -- (mg*7.5,mg*22.5) -- (0,mg*22.5) -- (0,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{o} +% The \thisfont{} letter \textit{`} (semitic ayin). +% \begin{macrocode} + +cmchar "letter ` (coded as o)"; +beginchar("o",width#,height#,0); + getpen; + draw (0,0) -- (0,mg*15) -- (mg*15,mg*15) -- (mg*15,0); + draw (mg*7.5,mg*15) -- (mg*7.5,mg*22.5) -- (0,mg*22.5) -- (0,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{'} +% The \thisfont{} letter \textit{'} (semitic aleph). +% \begin{macrocode} + +cmchar "letter '"; +beginchar("'",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{a} +% The \thisfont{} letter \textit{'} (semitic aleph). +% \begin{macrocode} + +cmchar "letter ' (coded as a)"; +beginchar("a",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*10); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{B} +% The \thisfont{} letter \textit{\d{d}}. +% \begin{macrocode} + +cmchar "letter d sub dot (coded as B)"; +%%beginchar("D",width#,height#,0); +beginchar("B",width#,height#,0); + getpen; + draw (0,0) -- (mg*15,0) -- (mg*15,mg*30) -- (0,mg*30) -- (0,0); + draw (0,mg*15) -- (mg*15,mg*15); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{g} +% The \thisfont{} letter \textit{g}. +% \begin{macrocode} + +cmchar "letter g"; +beginchar("g",width#,height#,0); + getpen; + draw (0,mg*30) -- (mg*15,mg*30) -- (mg*15,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{d} +% The \thisfont{} letter \textit{d}. +% \begin{macrocode} + +cmchar "letter d"; +beginchar("d",narrow#,height#,0); + getpen; + draw (0,mg*10) -- (0,mg*20) -- (mg*10,mg*15) -- (0,mg*10); + draw (mg*10,0) -- (mg*10,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{G} +% The \thisfont{} letter \textit{\'{g}}. +% \begin{macrocode} + +cmchar "letter g acute (coded as G)"; +beginchar("G",width#,height#,0); + getpen; + draw (0,mg*25) -- (mg*5,mg*30) -- (mg*15,mg*30) -- (mg*15,0); + draw (mg*5,0) -- (mg*5,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{T} +% The \thisfont{} letter \textit{\d{t}}. +% \begin{macrocode} + +cmchar "letter t sub dot (coded as T)"; +beginchar("T",width#,height#,0); + getpen; + draw (0,0) -- (mg*15,0) -- (mg*15,mg*30) -- (0,mg*30) -- (0,0); + draw (mg*7.5,0) -- (mg*7.5,mg*30); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{z} +% The \thisfont{} letter \textit{z}. +% \begin{macrocode} + +cmchar "letter z"; +beginchar("z",width#,height#,0); + getpen; + draw (0,0) -- (mg*15,mg*30) -- (0,mg*30) -- + (mg*15,0) -- (0,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{D} +% The \thisfont{} letter \textit{\b{d}}. +% \begin{macrocode} + +cmchar "letter d sub bar (coded as D)"; +%%beginchar("5",width#,height#,0); +beginchar("D",width#,height#,0); + getpen; + draw (0,0) -- (0,mg*30); + draw (mg*15,0) -- (mg*15,mg*30); + draw (0,mg*12.5) -- (mg*15,mg*12.5); + draw (0,mg*17.5) -- (mg*15,mg*17.5); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{y} +% The \thisfont{} letter \textit{y}. +% \begin{macrocode} + +cmchar "letter y"; +beginchar("y",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*25); + draw (mg*5,mg*20) -- (mg*5,0); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{J} +% The \thisfont{} letter \textit{\b{t}}. +% \begin{macrocode} + +cmchar "letter t sub bar (coded as J)"; +%%beginchar("4",narrow#,height#,0); +beginchar("J",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*25); + draw (mg*5,mg*20) -- (mg*5,mg*10); + draw fullcircle scaled (10cscale) shifted(mg*5,mg*5); +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{x} +% The \thisfont{} letter \textit{\d{s}}. +% \begin{macrocode} + +cmchar "letter s sub dot (coded as x)"; +%%beginchar("3",narrow#,height#,0); +beginchar("x",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*25); + draw (mg*5,mg*20) -- (mg*5,mg*10); + draw (0,0){up} .. (mg*5,mg*10){right} .. (mg*10,0){down}; +endchar; + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{Z} +% The \thisfont{} letter \textit{\d{z}}. +% \begin{macrocode} + +cmchar "letter z sub dot (coded as Z)"; +beginchar("Z",narrow#,height#,0); + getpen; + draw fullcircle scaled (10cscale) shifted(mg*5,mg*25); + draw (mg*5,mg*20) -- (mg*5,0); + draw (mg*5,mg*10){right} .. (mg*10,0){down}; +endchar; + +% \end{macrocode} +% \end{macro} +% +% The end of the glyphs, and file. +% \begin{macrocode} + +end + +% +% \end{macrocode} +% +% +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{sarab}{} + \DeclareFontShape{OT1}{sarab}{m}{n}{ <-> sarab10 }{} + \DeclareFontShape{OT1}{sarab}{bx}{n}{ <-> sub sarab/m/n }{} + \DeclareFontShape{OT1}{sarab}{b}{n}{ <-> sub sarab/m/n }{} + \DeclareFontShape{OT1}{sarab}{m}{sl}{ <-> sub sarab/m/n }{} + \DeclareFontShape{OT1}{sarab}{m}{it}{ <-> sub sarab/m/n }{} +% +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{sarab}{} + \DeclareFontShape{T1}{sarab}{m}{n}{ <-> sarab10 }{} + \DeclareFontShape{T1}{sarab}{bx}{n}{ <-> sub sarab/m/n }{} + \DeclareFontShape{T1}{sarab}{b}{n}{ <-> sub sarab/m/n }{} + \DeclareFontShape{T1}{sarab}{m}{sl}{ <-> sub sarab/m/n }{} + \DeclareFontShape{T1}{sarab}{m}{it}{ <-> sub sarab/m/n }{} +% +% \end{macrocode} +% +% \section{The \Lpack{sarabian} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{sarabian}[2005/11/12 v1.1 package for South Arabian fonts] +% \end{macrocode} +% +% +% \begin{macro}{\sarabfamily} +% Selects the font family in the T1 encoding. +% \changes{v1.1}{2005/11/12}{Changed default encoding from OT1 to T1} +% \begin{macrocode} +\newcommand{\sarabfamily}{\usefont{T1}{sarab}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textsarab} +% Text command for the font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textsarab}{\sarabfamily} + +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% \begin{macrocode} +\chardef\SArq=`' +\chardef\SAa=`a +\chardef\SAb=`b +\chardef\SAg=`g +\chardef\SAd=`d +\chardef\SAh=`h +\chardef\SAw=`w +\chardef\SAz=`z +\chardef\SAhd=`H +\chardef\SAtd=`T +\chardef\SAy=`y +\chardef\SAk=`k +\chardef\SAl=`l +\chardef\SAm=`m +\chardef\SAn=`n +\chardef\SAs=`s +\chardef\SAf=`f +\chardef\SAlq=`` +\chardef\SAo=`o +\chardef\SAsd=`x +\chardef\SAq=`q +\chardef\SAr=`r +\chardef\SAsv=`S +\chardef\SAt=`t +\chardef\SAhu=`I +\chardef\SAdb=`D +\chardef\SAtb=`J +\chardef\SAga=`G +\chardef\SAzd=`Z +\chardef\SAsa=`X +\chardef\SAdd=`B + +% \end{macrocode} +% +% \begin{macro}{translitsarab} +% \begin{macro}{translitsarabfont} +% |\translitsarab{|\meta{char-commands}|}| typesets a transliteration +% of the \thisfont{} character commands in the |\translisarabfont| font. +% \begin{macrocode} +\newcommand{\translitsarab}[1]{{% + \@translitSA\translitsarabfont #1}} +\newcommand{\translitsarabfont}{\itshape} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\SAunder} +% We need a copmmand to put a small U shaped cup under a letter. +% \begin{macrocode} +\DeclareTextCommand{\SAunder}{OT1}[1]% + {{\o@lign{\relax#1\crcr\hidewidth\sh@ft{29}% + \vbox to.2ex{\hbox{\char21}\vss}\hidewidth}}} + +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@translitSA} +% This command redefines all the character producing commands for +% use within |\translitsarab|. There must be no spaces in the +% definition. +% \begin{macrocode} +\newcommand{\@translitSA}{% +\def\SArq{'}% +\def\SAa{'}% +\def\SAb{b}% +\def\SAg{g}% +\def\SAd{d}% +\def\SAh{h}% +\def\SAw{w}% +\def\SAz{z}% +\def\SAhd{\d{h}}% +\def\SAtd{\d{t}}% +\def\SAy{y}% +\def\SAk{k}% +\def\SAl{l}% +\def\SAm{m}% +\def\SAn{n}% +\def\SAs{s}% +\def\SAf{f}% +\def\SAlq{`}% +\def\SAo{`}% +\def\SAsd{\d{s}}% +\def\SAq{q}% +\def\SAr{r}% +\def\SAsv{\v{s}}% +\def\SAt{t} +\def\SAhu{\SAunder{h}}% +\def\SAdb{\b{d}}% +\def\SAtb{\b{t}}% +\def\SAga{\'{g}}% +\def\SAzd{\d{z}}% +\def\SAsa{\'{s}}% +\def\SAdd{\d{d}}% +} + +% \end{macrocode} +% \end{macro} +% +% +% +% The end of this package. +% \begin{macrocode} +% +% \end{macrocode} +% +% \section{Map file} +% +% A very short map file. +% \changes{v1.1}{2005/11/12}{Added map file} +% +% \begin{macrocode} +%<*map> +sarab10 Archaic-South-Arabian +% \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 \~} + + -- cgit v1.2.3