% \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} % % % % \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 % % \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 }{} % % \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 }{} % % \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} % % \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 % \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 \~}