diff options
Diffstat (limited to 'fonts/archaic/greek4cbc')
-rw-r--r-- | fonts/archaic/greek4cbc/README | 78 | ||||
-rw-r--r-- | fonts/archaic/greek4cbc/givbc10.afm | 276 | ||||
-rw-r--r-- | fonts/archaic/greek4cbc/givbc10.pfb | bin | 0 -> 16501 bytes | |||
-rw-r--r-- | fonts/archaic/greek4cbc/givbc10.tfm | bin | 0 -> 428 bytes | |||
-rw-r--r-- | fonts/archaic/greek4cbc/greek4cbc.dtx | 2095 | ||||
-rw-r--r-- | fonts/archaic/greek4cbc/greek4cbc.ins | 89 | ||||
-rw-r--r-- | fonts/archaic/greek4cbc/greek4cbc.pdf | bin | 0 -> 145620 bytes | |||
-rw-r--r-- | fonts/archaic/greek4cbc/trygivbc.pdf | bin | 0 -> 46273 bytes | |||
-rw-r--r-- | fonts/archaic/greek4cbc/trygivbc.tex | 130 |
9 files changed, 2668 insertions, 0 deletions
diff --git a/fonts/archaic/greek4cbc/README b/fonts/archaic/greek4cbc/README new file mode 100644 index 0000000000..c26734d612 --- /dev/null +++ b/fonts/archaic/greek4cbc/README @@ -0,0 +1,78 @@ + The greek4cbc bundle provides a Greek font typical of those used in +the 4th century BC. It is one of a series for archaic scripts. + +Changes in version 1.2 (2005/04/06) +o Font supplied as Postscript Type1 instead of MetaFont + +Changes in version 1.1 (2000/10/22) +o Practically everything changed + +Changes in version 1.0 (1999/03/14) +o First public release + +------------------------------------------------------------------ + 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: + README (this file) + greek4cbc.dtx + greek4cbc.ins + greek4cbc.pdf + and the derived files + greek4cbc.sty + ot1givbc10.fd + t1givbc10.fd + greek4cbc.map + and possibly givbc10.mf + +------------------------------------------------------------------ + The distribution consists of the following files: +README (this file) +greek4cbc.dtx +greek4cbc.ins +greek4cbc.pdf (user manual) +trygivbc.tex (example usage) +trygivbc.pdf +givbc10.afm +givbc10.pfb +givbc10.tfm + + To install the package: +o run: latex greek4cbc.ins, which will generate: + greek4cbc.sty + *.fd files + greek4cbc.map +o Move *.sty and *.fd files to a location where LaTeX will find them + e.g., .../texmf-local/tex/latex/greek4cbc +o Move *.afm, *.pfb and *.tfm files to where LaTeX looks for font information + e.g., .../texmf-var/fonts/afm/public/archaic/*.afm + .../texmf-var/fonts/type1/public/archaic/*.pfb + .../texmf-var/fonts/tfm/public/archaic/*.tfm +o Add the *.map information to the dvips/pdftex font maps +o Refresh the database + (for more information on the above see the FAQ). + +o run: (pdf)latex trygivbc for a test of the font + + To generate a second copy of the manual (which is already supplied as a PDF file): +o run: latex greek4cbc.dtx +o (for an index run: makeindex -s gind.ist *.idx) +o run: latex *.dtx +o Print *.dvi for a hardcopy of the package manual + +2005/04/06 +Peter Wilson +herries dot press at earthlink dot net + diff --git a/fonts/archaic/greek4cbc/givbc10.afm b/fonts/archaic/greek4cbc/givbc10.afm new file mode 100644 index 0000000000..e805c4450e --- /dev/null +++ b/fonts/archaic/greek4cbc/givbc10.afm @@ -0,0 +1,276 @@ +StartFontMetrics 2.0 +Comment Generated by pfaedit +Comment Creation Date: Fri Nov 11 17:41:46 2005 +FontName Archaic-Greek-4th-Century-BC +FullName Archaic Greek 4th Century BC +FamilyName Archaic +Weight Regular +Notice (Generated from MetaFont bitmap by mftrace 1.1.5, http://www.cs.uu.nl/~hanwen/mftrace/ Copyright 2005 Peter R. Wilson) +ItalicAngle 0 +IsFixedPitch false +UnderlinePosition -100 +UnderlineThickness 50 +Version 001.001 +EncodingScheme FontSpecific +FontBBox 42 -76 966 759 +XHeight 683 +Ascender 682 +StartCharMetrics 256 +C 0 ; WX 0 ; N grave ; B 0 0 0 0 ; +C 1 ; WX 0 ; N acute ; B 0 0 0 0 ; +C 2 ; WX 0 ; N circumflex ; B 0 0 0 0 ; +C 3 ; WX 0 ; N tilde ; B 0 0 0 0 ; +C 4 ; WX 0 ; N dieresis ; B 0 0 0 0 ; +C 5 ; WX 0 ; N hungarumlaut ; B 0 0 0 0 ; +C 6 ; WX 0 ; N ring ; B 0 0 0 0 ; +C 7 ; WX 0 ; N caron ; B 0 0 0 0 ; +C 8 ; WX 0 ; N breve ; B 0 0 0 0 ; +C 9 ; WX 0 ; N macron ; B 0 0 0 0 ; +C 10 ; WX 0 ; N dotaccent ; B 0 0 0 0 ; +C 11 ; WX 0 ; N cedilla ; B 0 0 0 0 ; +C 12 ; WX 0 ; N ogonek ; B 0 0 0 0 ; +C 13 ; WX 0 ; N quotesinglbase ; B 0 0 0 0 ; +C 14 ; WX 0 ; N guilsinglleft ; B 0 0 0 0 ; +C 15 ; WX 0 ; N guilsinglright ; B 0 0 0 0 ; +C 16 ; WX 0 ; N quotedblleft ; B 0 0 0 0 ; +C 17 ; WX 0 ; N quotedblright ; B 0 0 0 0 ; +C 18 ; WX 0 ; N quotedblbase ; B 0 0 0 0 ; +C 19 ; WX 0 ; N guillemotleft ; B 0 0 0 0 ; +C 20 ; WX 0 ; N guillemotright ; B 0 0 0 0 ; +C 21 ; WX 0 ; N endash ; B 0 0 0 0 ; +C 22 ; WX 0 ; N emdash ; B 0 0 0 0 ; +C 23 ; WX 0 ; N cwm ; B 0 0 0 0 ; +C 24 ; WX 0 ; N perthousand ; B 0 0 0 0 ; +C 25 ; WX 0 ; N dotlessi ; B 0 0 0 0 ; +C 26 ; WX 0 ; N dotlessj ; B 0 0 0 0 ; +C 27 ; WX 0 ; N ff ; B 0 0 0 0 ; L l ffl ; L i ffi ; +C 28 ; WX 0 ; N fi ; B 0 0 0 0 ; +C 29 ; WX 0 ; N fl ; B 0 0 0 0 ; +C 30 ; WX 0 ; N ffi ; B 0 0 0 0 ; +C 31 ; WX 0 ; N ffl ; B 0 0 0 0 ; +C 32 ; WX 0 ; N space ; B 0 0 0 0 ; +C 33 ; WX 0 ; N exclam ; B 0 0 0 0 ; +C 34 ; WX 0 ; N quotedbl ; B 0 0 0 0 ; +C 35 ; WX 0 ; N numbersign ; B 0 0 0 0 ; +C 36 ; WX 0 ; N dollar ; B 0 0 0 0 ; +C 37 ; WX 0 ; N percent ; B 0 0 0 0 ; +C 38 ; WX 0 ; N ampersand ; B 0 0 0 0 ; +C 39 ; WX 0 ; N quoteright ; B 0 0 0 0 ; +C 40 ; WX 0 ; N parenleft ; B 0 0 0 0 ; +C 41 ; WX 0 ; N parenright ; B 0 0 0 0 ; +C 42 ; WX 0 ; N asterisk ; B 0 0 0 0 ; +C 43 ; WX 0 ; N plus ; B 0 0 0 0 ; +C 44 ; WX 0 ; N comma ; B 0 0 0 0 ; +C 45 ; WX 0 ; N hyphen ; B 0 0 0 0 ; +C 46 ; WX 0 ; N period ; B 0 0 0 0 ; +C 47 ; WX 0 ; N slash ; B 0 0 0 0 ; +C 48 ; WX 0 ; N zero ; B 0 0 0 0 ; +C 49 ; WX 0 ; N one ; B 0 0 0 0 ; +C 50 ; WX 0 ; N two ; B 0 0 0 0 ; +C 51 ; WX 0 ; N three ; B 0 0 0 0 ; +C 52 ; WX 0 ; N four ; B 0 0 0 0 ; +C 53 ; WX 0 ; N five ; B 0 0 0 0 ; +C 54 ; WX 0 ; N six ; B 0 0 0 0 ; +C 55 ; WX 0 ; N seven ; B 0 0 0 0 ; +C 56 ; WX 0 ; N eight ; B 0 0 0 0 ; +C 57 ; WX 0 ; N nine ; B 0 0 0 0 ; +C 58 ; WX 0 ; N colon ; B 0 0 0 0 ; +C 59 ; WX 0 ; N semicolon ; B 0 0 0 0 ; +C 60 ; WX 0 ; N less ; B 0 0 0 0 ; +C 61 ; WX 0 ; N equal ; B 0 0 0 0 ; +C 62 ; WX 0 ; N greater ; B 0 0 0 0 ; +C 63 ; WX 0 ; N question ; B 0 0 0 0 ; +C 64 ; WX 0 ; N at ; B 0 0 0 0 ; +C 65 ; WX 0 ; N A ; B 0 0 0 0 ; +C 66 ; WX 678 ; N B ; B 111 -68 566 751 ; +C 67 ; WX 0 ; N C ; B 0 0 0 0 ; +C 68 ; WX 0 ; N D ; B 0 0 0 0 ; +C 69 ; WX 0 ; N E ; B 0 0 0 0 ; +C 70 ; WX 658 ; N F ; B 56 -68 602 751 ; +C 71 ; WX 0 ; N G ; B 0 0 0 0 ; +C 72 ; WX 0 ; N H ; B 0 0 0 0 ; +C 73 ; WX 0 ; N I ; B 0 0 0 0 ; L J IJ ; +C 74 ; WX 0 ; N J ; B 0 0 0 0 ; +C 75 ; WX 0 ; N K ; B 0 0 0 0 ; +C 76 ; WX 0 ; N L ; B 0 0 0 0 ; +C 77 ; WX 946 ; N M ; B 61 -76 887 683 ; +C 78 ; WX 906 ; N N ; B 111 -76 794 759 ; +C 79 ; WX 1022 ; N O ; B 55 0 966 683 ; +C 80 ; WX 681 ; N P ; B 57 0 623 683 ; +C 81 ; WX 794 ; N Q ; B 57 -68 736 751 ; +C 82 ; WX 567 ; N R ; B 55 -68 435 751 ; +C 83 ; WX 0 ; N S ; B 0 0 0 0 ; +C 84 ; WX 794 ; N T ; B 56 0 739 684 ; +C 85 ; WX 0 ; N U ; B 0 0 0 0 ; +C 86 ; WX 0 ; N V ; B 0 0 0 0 ; +C 87 ; WX 0 ; N W ; B 0 0 0 0 ; +C 88 ; WX 794 ; N X ; B 57 0 739 683 ; +C 89 ; WX 931 ; N Y ; B 57 -68 873 751 ; +C 90 ; WX 0 ; N Z ; B 0 0 0 0 ; +C 91 ; WX 0 ; N bracketleft ; B 0 0 0 0 ; +C 92 ; WX 0 ; N backslash ; B 0 0 0 0 ; +C 93 ; WX 0 ; N bracketright ; B 0 0 0 0 ; +C 94 ; WX 0 ; N asciicircum ; B 0 0 0 0 ; +C 95 ; WX 0 ; N underscore ; B 0 0 0 0 ; +C 96 ; WX 0 ; N quoteleft ; B 0 0 0 0 ; +C 97 ; WX 946 ; N a ; B 65 0 881 682 ; +C 98 ; WX 602 ; N b ; B 111 0 489 683 ; +C 99 ; WX 0 ; N c ; B 0 0 0 0 ; +C 100 ; WX 946 ; N d ; B 42 0 904 682 ; +C 101 ; WX 719 ; N e ; B 56 0 663 683 ; +C 102 ; WX 567 ; N f ; B 56 0 510 683 ; L l fl ; L i fi ; L f ff ; +C 103 ; WX 643 ; N g ; B 56 0 586 683 ; +C 104 ; WX 906 ; N h ; B 111 0 794 683 ; +C 105 ; WX 298 ; N i ; B 111 0 187 683 ; L j ij ; +C 106 ; WX 0 ; N j ; B 0 0 0 0 ; +C 107 ; WX 567 ; N k ; B 55 0 511 683 ; +C 108 ; WX 946 ; N l ; B 65 0 881 682 ; +C 109 ; WX 946 ; N m ; B 61 0 887 683 ; +C 110 ; WX 906 ; N n ; B 111 0 794 683 ; +C 111 ; WX 794 ; N o ; B 56 0 739 684 ; +C 112 ; WX 906 ; N p ; B 111 0 794 683 ; +C 113 ; WX 0 ; N q ; B 0 0 0 0 ; +C 114 ; WX 491 ; N r ; B 55 0 436 684 ; +C 115 ; WX 567 ; N s ; B 56 0 511 683 ; +C 116 ; WX 794 ; N t ; B 55 0 737 683 ; +C 117 ; WX 0 ; N u ; B 0 0 0 0 ; +C 118 ; WX 0 ; N v ; B 0 0 0 0 ; +C 119 ; WX 0 ; N w ; B 0 0 0 0 ; +C 120 ; WX 794 ; N x ; B 55 0 739 683 ; +C 121 ; WX 794 ; N y ; B 56 0 737 683 ; +C 122 ; WX 794 ; N z ; B 55 0 739 683 ; +C 123 ; WX 0 ; N braceleft ; B 0 0 0 0 ; +C 124 ; WX 0 ; N bar ; B 0 0 0 0 ; +C 125 ; WX 0 ; N braceright ; B 0 0 0 0 ; +C 126 ; WX 0 ; N asciitilde ; B 0 0 0 0 ; +C 127 ; WX 0 ; N sfthyphen ; B 0 0 0 0 ; +C 128 ; WX 0 ; N Abreve ; B 0 0 0 0 ; +C 129 ; WX 0 ; N Aogonek ; B 0 0 0 0 ; +C 130 ; WX 0 ; N Cacute ; B 0 0 0 0 ; +C 131 ; WX 0 ; N Ccaron ; B 0 0 0 0 ; +C 132 ; WX 0 ; N Dcaron ; B 0 0 0 0 ; +C 133 ; WX 0 ; N Ecaron ; B 0 0 0 0 ; +C 134 ; WX 0 ; N Eogonek ; B 0 0 0 0 ; +C 135 ; WX 0 ; N Gbreve ; B 0 0 0 0 ; +C 136 ; WX 0 ; N Lacute ; B 0 0 0 0 ; +C 137 ; WX 0 ; N Lcaron ; B 0 0 0 0 ; +C 138 ; WX 0 ; N Lslash ; B 0 0 0 0 ; +C 139 ; WX 0 ; N Nacute ; B 0 0 0 0 ; +C 140 ; WX 0 ; N Ncaron ; B 0 0 0 0 ; +C 141 ; WX 0 ; N Eng ; B 0 0 0 0 ; +C 142 ; WX 0 ; N Ohungarumlaut ; B 0 0 0 0 ; +C 143 ; WX 0 ; N Racute ; B 0 0 0 0 ; +C 144 ; WX 0 ; N Rcaron ; B 0 0 0 0 ; +C 145 ; WX 0 ; N Sacute ; B 0 0 0 0 ; +C 146 ; WX 0 ; N Scaron ; B 0 0 0 0 ; +C 147 ; WX 0 ; N Scedilla ; B 0 0 0 0 ; +C 148 ; WX 0 ; N Tcaron ; B 0 0 0 0 ; +C 149 ; WX 0 ; N Tcedilla ; B 0 0 0 0 ; +C 150 ; WX 0 ; N Uhungarumlaut ; B 0 0 0 0 ; +C 151 ; WX 0 ; N Uring ; B 0 0 0 0 ; +C 152 ; WX 0 ; N Ydieresis ; B 0 0 0 0 ; +C 153 ; WX 0 ; N Zacute ; B 0 0 0 0 ; +C 154 ; WX 0 ; N Zcaron ; B 0 0 0 0 ; +C 155 ; WX 0 ; N Zdotaccent ; B 0 0 0 0 ; +C 156 ; WX 0 ; N IJ ; B 0 0 0 0 ; +C 157 ; WX 0 ; N Idotaccent ; B 0 0 0 0 ; +C 158 ; WX 0 ; N dcroat ; B 0 0 0 0 ; +C 159 ; WX 0 ; N section ; B 0 0 0 0 ; +C 160 ; WX 0 ; N abreve ; B 0 0 0 0 ; +C 161 ; WX 0 ; N aogonek ; B 0 0 0 0 ; +C 162 ; WX 0 ; N cacute ; B 0 0 0 0 ; +C 163 ; WX 0 ; N ccaron ; B 0 0 0 0 ; +C 164 ; WX 0 ; N dcaron ; B 0 0 0 0 ; +C 165 ; WX 0 ; N ecaron ; B 0 0 0 0 ; +C 166 ; WX 0 ; N eogonek ; B 0 0 0 0 ; +C 167 ; WX 0 ; N gbreve ; B 0 0 0 0 ; +C 168 ; WX 0 ; N lacute ; B 0 0 0 0 ; +C 169 ; WX 0 ; N lcaron ; B 0 0 0 0 ; +C 170 ; WX 0 ; N lslash ; B 0 0 0 0 ; +C 171 ; WX 0 ; N nacute ; B 0 0 0 0 ; +C 172 ; WX 0 ; N ncaron ; B 0 0 0 0 ; +C 173 ; WX 0 ; N eng ; B 0 0 0 0 ; +C 174 ; WX 0 ; N ohungarumlaut ; B 0 0 0 0 ; +C 175 ; WX 0 ; N racute ; B 0 0 0 0 ; +C 176 ; WX 0 ; N rcaron ; B 0 0 0 0 ; +C 177 ; WX 0 ; N sacute ; B 0 0 0 0 ; +C 178 ; WX 0 ; N scaron ; B 0 0 0 0 ; +C 179 ; WX 0 ; N scedilla ; B 0 0 0 0 ; +C 180 ; WX 0 ; N tcaron ; B 0 0 0 0 ; +C 181 ; WX 0 ; N tcedilla ; B 0 0 0 0 ; +C 182 ; WX 0 ; N uhungarumlaut ; B 0 0 0 0 ; +C 183 ; WX 0 ; N uring ; B 0 0 0 0 ; +C 184 ; WX 0 ; N ydieresis ; B 0 0 0 0 ; +C 185 ; WX 0 ; N zacute ; B 0 0 0 0 ; +C 186 ; WX 0 ; N zcaron ; B 0 0 0 0 ; +C 187 ; WX 0 ; N zdotaccent ; B 0 0 0 0 ; +C 188 ; WX 0 ; N ij ; B 0 0 0 0 ; +C 189 ; WX 0 ; N exclamdown ; B 0 0 0 0 ; +C 190 ; WX 0 ; N questiondown ; B 0 0 0 0 ; +C 191 ; WX 0 ; N sterling ; B 0 0 0 0 ; +C 192 ; WX 0 ; N Agrave ; B 0 0 0 0 ; +C 193 ; WX 0 ; N Aacute ; B 0 0 0 0 ; +C 194 ; WX 0 ; N Acircumflex ; B 0 0 0 0 ; +C 195 ; WX 0 ; N Atilde ; B 0 0 0 0 ; +C 196 ; WX 0 ; N Adieresis ; B 0 0 0 0 ; +C 197 ; WX 0 ; N Aring ; B 0 0 0 0 ; +C 198 ; WX 0 ; N AE ; B 0 0 0 0 ; +C 199 ; WX 0 ; N Ccedilla ; B 0 0 0 0 ; +C 200 ; WX 0 ; N Egrave ; B 0 0 0 0 ; +C 201 ; WX 0 ; N Eacute ; B 0 0 0 0 ; +C 202 ; WX 0 ; N Ecircumflex ; B 0 0 0 0 ; +C 203 ; WX 0 ; N Edieresis ; B 0 0 0 0 ; +C 204 ; WX 0 ; N Igrave ; B 0 0 0 0 ; +C 205 ; WX 0 ; N Iacute ; B 0 0 0 0 ; +C 206 ; WX 0 ; N Icircumflex ; B 0 0 0 0 ; +C 207 ; WX 0 ; N Idieresis ; B 0 0 0 0 ; +C 208 ; WX 0 ; N Eth ; B 0 0 0 0 ; +C 209 ; WX 0 ; N Ntilde ; B 0 0 0 0 ; +C 210 ; WX 0 ; N Ograve ; B 0 0 0 0 ; +C 211 ; WX 0 ; N Oacute ; B 0 0 0 0 ; +C 212 ; WX 0 ; N Ocircumflex ; B 0 0 0 0 ; +C 213 ; WX 0 ; N Otilde ; B 0 0 0 0 ; +C 214 ; WX 0 ; N Odieresis ; B 0 0 0 0 ; +C 215 ; WX 0 ; N OE ; B 0 0 0 0 ; +C 216 ; WX 0 ; N Oslash ; B 0 0 0 0 ; +C 217 ; WX 0 ; N Ugrave ; B 0 0 0 0 ; +C 218 ; WX 0 ; N Uacute ; B 0 0 0 0 ; +C 219 ; WX 0 ; N Ucircumflex ; B 0 0 0 0 ; +C 220 ; WX 0 ; N Udieresis ; B 0 0 0 0 ; +C 221 ; WX 0 ; N Yacute ; B 0 0 0 0 ; +C 222 ; WX 0 ; N Thorn ; B 0 0 0 0 ; +C 223 ; WX 0 ; N SS ; B 0 0 0 0 ; +C 224 ; WX 0 ; N agrave ; B 0 0 0 0 ; +C 225 ; WX 0 ; N aacute ; B 0 0 0 0 ; +C 226 ; WX 0 ; N acircumflex ; B 0 0 0 0 ; +C 227 ; WX 0 ; N atilde ; B 0 0 0 0 ; +C 228 ; WX 0 ; N adieresis ; B 0 0 0 0 ; +C 229 ; WX 0 ; N aring ; B 0 0 0 0 ; +C 230 ; WX 0 ; N ae ; B 0 0 0 0 ; +C 231 ; WX 0 ; N ccedilla ; B 0 0 0 0 ; +C 232 ; WX 0 ; N egrave ; B 0 0 0 0 ; +C 233 ; WX 0 ; N eacute ; B 0 0 0 0 ; +C 234 ; WX 0 ; N ecircumflex ; B 0 0 0 0 ; +C 235 ; WX 0 ; N edieresis ; B 0 0 0 0 ; +C 236 ; WX 0 ; N igrave ; B 0 0 0 0 ; +C 237 ; WX 0 ; N iacute ; B 0 0 0 0 ; +C 238 ; WX 0 ; N icircumflex ; B 0 0 0 0 ; +C 239 ; WX 0 ; N idieresis ; B 0 0 0 0 ; +C 240 ; WX 0 ; N eth ; B 0 0 0 0 ; +C 241 ; WX 0 ; N ntilde ; B 0 0 0 0 ; +C 242 ; WX 0 ; N ograve ; B 0 0 0 0 ; +C 243 ; WX 0 ; N oacute ; B 0 0 0 0 ; +C 244 ; WX 0 ; N ocircumflex ; B 0 0 0 0 ; +C 245 ; WX 0 ; N otilde ; B 0 0 0 0 ; +C 246 ; WX 0 ; N odieresis ; B 0 0 0 0 ; +C 247 ; WX 0 ; N oe ; B 0 0 0 0 ; +C 248 ; WX 0 ; N oslash ; B 0 0 0 0 ; +C 249 ; WX 0 ; N ugrave ; B 0 0 0 0 ; +C 250 ; WX 0 ; N uacute ; B 0 0 0 0 ; +C 251 ; WX 0 ; N ucircumflex ; B 0 0 0 0 ; +C 252 ; WX 0 ; N udieresis ; B 0 0 0 0 ; +C 253 ; WX 0 ; N yacute ; B 0 0 0 0 ; +C 254 ; WX 0 ; N thorn ; B 0 0 0 0 ; +C 255 ; WX 0 ; N germandbls ; B 0 0 0 0 ; +EndCharMetrics +EndFontMetrics diff --git a/fonts/archaic/greek4cbc/givbc10.pfb b/fonts/archaic/greek4cbc/givbc10.pfb Binary files differnew file mode 100644 index 0000000000..8f7e7376ab --- /dev/null +++ b/fonts/archaic/greek4cbc/givbc10.pfb diff --git a/fonts/archaic/greek4cbc/givbc10.tfm b/fonts/archaic/greek4cbc/givbc10.tfm Binary files differnew file mode 100644 index 0000000000..3b51b8de36 --- /dev/null +++ b/fonts/archaic/greek4cbc/givbc10.tfm diff --git a/fonts/archaic/greek4cbc/greek4cbc.dtx b/fonts/archaic/greek4cbc/greek4cbc.dtx new file mode 100644 index 0000000000..a114acdc29 --- /dev/null +++ b/fonts/archaic/greek4cbc/greek4cbc.dtx @@ -0,0 +1,2095 @@ +% \iffalse meta-comment +% +% greeg4cbc.dtx +% +% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +% Copyright 1999--2005 Peter R. Wilson +% +% This work may be distributed and/or modified under the +% conditions of the Latex Project Public License, either +% version 1.3 of this license or (at your option) any +% later version. +% The latest version of the license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of +% LaTeX version 2003/06/01 or later. +% +% This work has the LPPL maintenance status "author-maintained". +% +% This work consists of the files listed in the README file. +% +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\usepackage{url} +\usepackage[draft=false, + plainpages=false, + pdfpagelabels, + bookmarksnumbered, + hyperindex=false + ]{hyperref} +\providecommand{\phantomsection}{} +\OnlyDescription %% comment this out for the full glory +\EnableCrossrefs +\CodelineIndex +\setcounter{StandardModuleDepth}{1} +\makeatletter + \@mparswitchfalse +\makeatother +\renewcommand{\MakeUppercase}[1]{#1} +\pagestyle{headings} +\newenvironment{addtomargins}[1]{% + \begin{list}{}{% + \topsep 0pt% + \addtolength{\leftmargin}{#1}% + \addtolength{\rightmargin}{#1}% + \listparindent \parindent + \itemindent \parindent + \parsep \parskip}% + \item[]}{\end{list}} +\begin{document} + \raggedbottom + \DocInput{greek4cbc.dtx} +\end{document} +%</driver> +% +% \fi +% +% \CheckSum{305} +% +% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath} +% \DoNotIndex{\@centercr,\@cite} +% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue} +% \DoNotIndex{\@input,\@ixpt,\@m} +% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint} +% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb} +% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt} +% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt} +% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace} +% \DoNotIndex{\advance,\Alph,\alph} +% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box} +% \DoNotIndex{\bullet} +% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption} +% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass} +% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist} +% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup} +% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter} +% \DoNotIndex{\fbox} +% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef} +% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule} +% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi} +% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi} +% \DoNotIndex{\input} +% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark} +% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright} +% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment} +% \DoNotIndex{\NeedsTeXFormat,\newdimen} +% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number} +% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@} +% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip} +% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions} +% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright} +% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font} +% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman} +% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength} +% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space} +% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase} +% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt} +% \DoNotIndex{\viipt,\vipt,\vskip,\vspace} +% \DoNotIndex{\wd,\xiipt,\year,\z@} +% +% \changes{v1.0}{1999/04/10}{First public release} +% \changes{v1.1}{2000/10/22}{Simplified and matched with other archaics} +% \changes{v1.2}{2005/04/06}{Changed contact info, plus Type1 support} +% +% \def\fileversion{v1.0} \def\filedate{1999/04/10} +% \def\fileversion{v1.1} \def\filedate{2000/10/22} +% \def\fileversion{v1.2} \def\filedate{2005/04/06} +% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package +% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option +% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file +% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter +% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle +% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment +% \newcommand{\BC}{\textsc{bc}} +% \newcommand{\AD}{\textsc{ad}} +% \newcommand{\thisfont}{Greek} +% +% +% \makeatletter +% \newif\if@inenv +% \@inenvtrue +% +% \def\makeuscoreletter{\catcode`\_11\relax} +% \def\makehashletter{\catcode`\#11\relax} +% \def\MakeMfpPrivateLetters{\makeuscoreletter\makehashletter} +% +% \def\environment{\@inenvtrue\begingroup +% \catcode`\\12 +% \MakePrivateLetters \m@cro@ \iffalse} +% +% \def\mfpmacro{\@inenvfalse\begingroup +% \catcode`\\12 +% \MakeMfpPrivateLetters \m@cro@ \iffalse} +% +% \let\endmfpmacro\endmacro +% +% \def\SpecialMainEnvIndex#1{^^A +% \if@inenv^^A +% \@bsphack\special@index{^^A +% #1\actualchar +% {\string\ttfamily\space#1} +% (environment)^^A +% \encapchar main}^^A +% \index{environments:\levelchar{\protect\ttfamily#1}\encapchar +% main}\@esphack^^A +% \else^^A +% \@bsphack\special@index{^^A +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \space(mfp macro)^^A +% \encapchar main}^^A +% \index{mfp macros:\levelchar +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \encapchar usage}\@esphack^^A +% \fi} +% +% \def\DescribeMfpMacro{\leavevmode\@bsphack\begingroup\MakeMfpPrivateLetters +% \Describe@Mfpm} +% \def\Describe@Mfpm#1{\endgroup +% \marginpar{\raggedleft\PrintDescribeEnv{#1}}^^A +% \SpecialMfpmIndex{#1}\@esphack\ignorespaces} +% +% \def\SpecialMfpmIndex#1{^^A +% \@bsphack +% \index{\string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \space(mfp macro) +% \encapchar usage}^^A +% \index{mfp macros:\levelchar +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \encapchar usage}^^A +% \@esphack} +% +% \def\DescribeMfpVariable{\leavevmode\@bsphack\begingroup\MakeMfpPrivateLetters +% \Describe@Mfpv} +% \def\Describe@Mfpv#1{\endgroup +% \marginpar{\raggedleft\PrintDescribeEnv{#1}}^^A +% \SpecialMfpvIndex{#1}\@esphack\ignorespaces} +% +% \def\SpecialMfpvIndex#1{^^A +% \@bsphack +% \index{\string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \space(mfp variable)\encapchar usage}^^A +% \index{mfp variables:\levelchar +% \string#1\actualchar +% \string\verb +% \quotechar*\verbatimchar +% \string#1\verbatimchar +% \encapchar usage}^^A +% \@esphack} +% +% \makeatother +% +% \title{The \Lpack{Greek4cbc} fonts\thanks{This +% file has version number \fileversion, last revised +% \filedate.}} +% +% \author{% +% Peter Wilson\thanks{\texttt{herries dot press at earthlink dot net}}\\ +% Herries Press +% } +% \date{\filedate} +% \maketitle +% \begin{abstract} +% The \Lpack{greek4cbc} bundle provides a set of uppercase Greek +% characters as +% shown on a 394~\BC{} stele in Athens. +% \end{abstract} +% \tableofcontents +% +% +% +% \section{Introduction} +% +% The font presented here is meant to be typical of the Greek characters +% in use about the 4th century~\BC. It is one of a series of fonts intended +% to show how the Latin alphabet has evolved from its original Phoenician form +% to its present day appearance. +% +% This manual is typeset according to the conventions of the +% \LaTeX{} \textsc{docstrip} utility which enables the automatic +% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}. +% +% Section~\ref{sec:usc} describes the usage of the package. +% Commented code for the fonts +% and source code for the package may be in later sections. +% +% \subsection{An alphabetic tree} +% +% Scholars are reasonably agreed that all the world's alphabets are descended +% from a Semitic alphabet invented about 1600~\BC{} in the Middle +% East~\cite{DRUCKER95}. The word `Semitic' refers +% to the family of languages used in the geographical area from +% Sinai in the south, up the Mediterranean coast to Asia Minor in the north and +% west to the valley of the Euphrates. +% +% The Phoenician alphabet was stable by about 1100~\BC{} and the script was +% written right to left. In earlier times the writing direction was variable, +% and so were +% the shapes and orientation of the characters. The alphabet consisted of +% 22 letters and they were named after things. For example, their first two +% letters were called \textit{aleph} (ox), and \textit{beth} (house). +% The Phoenician script had +% only one case --- unlike our modern fonts which have both upper- and +% lower-cases. In modern day terms the Phoenician abecedary was: \\ +% A B G D E Y Z H $\Theta$ I K L M N X O P ts Q R S T \\ +% where the `Y' (\textit{vau}) character was sometimes written as `F' and +% `ts' stands for the \textit{tsade} character. +% +% The Greek alphabet is one of the descendants of the Phoenician alphabet; +% another was Aramaic which is the ancestor of the Arabic, Persian and Indian +% scripts. +% Initially Greek was written right to left but around the 6th C~\BC{} became +% \textit{boustrophedron}, meaning that the lines +% alternated in direction. At about 500~\BC{} the writing direction stabilised +% as left to +% right. The Greeks modified the Phoenician alphabet to match the vocalisation +% of their language. They kept the Phoenician names of the letters, suitably +% `greekified', so \textit{aleph} became the familar \textit{alpha} and +% \textit{beth} became \textit{beta}. At this +% point the names of the letters had no meaning. Their were several variants +% of the Greek character glyphs until they were finally fixed in Athens in +% 403~\BC. +% The Greeks did not develop a lower-case +% script until about 600--700~\AD. +% +% The Etruscans based their alphabet on the Greek one, and again modified it. +% However, the Etruscans wrote right to left, so their borrowed characters are +% mirror images of the original Greek ones. Like the Phoenicians, the Etruscan +% script consisted of only one case; they died out before ever needing a +% lower-case script. The Etruscan script was used up until the first century +% \AD, even though the Etruscans themselves had dissapeared by that time. +% +% +% In turn, the Romans based their alphabet on the Etruscan one, but as they +% wrote left to right, the characters were again mirrored (although the early +% Roman inscriptions are boustrophedron). +% +% As the English alphabet is descended from the Roman alphabet +% it has a pedigree of some three and a half thousand years. +% +% \section{The \Lpack{greek4cbc} package} \label{sec:usc} +% +% In the 6th century~\BC{} the Greek alphabet was settling down, but +% there were several different glyphs used for the characters depending +% both on the date and on the geographical area. The alphabet retained +% the Phoenician F form of \textit{vau}, which the Greeks called +% \textit{digamma}, and also used the Phoenician \textit{qoph} (from +% which we get our Q). It had added the $\Psi$, $\Phi$, and $\Omega$ +% characters. Thus, the abecedary consisted of 26 characters compared +% with the 24 characters for modern Greek. +% +% In 403~\BC{} the Athenian Greeks came to an agreement on a standard +% abecedary and set of glyphs. The font provided by this package comes +% from an inscription on a stele in Athens dated 394~\BC, so I have +% assumed that it is reasonable rendition of the 403 `standard'. I have +% taken the glyphs from Lewis Day's compendium~\cite{DAY95}. The abecedary +% is the modern one of 24 characters. +% +% Table~\ref{tab} lists, in the \thisfont{} alphabetical order, the +% transliterated value of the characters and the +% modern and Phoenician names (in parentheses) of the character. +% +% \begin{table} +% \centering +% \caption{The \thisfont{} script and alphabet}\label{tab} +% \begin{tabular}{clcll} \hline +% Value & Name & ASCII & Command & Command \\ \hline +% $A$ & +% alpha (aleph) & +% a & |\Aalpha| & +% |\ARalpha| +% \\ +% $B$ & +% beta (beth) & +% b & |\Abeta| & +% |\ARbeta| +% \\ +% $\Gamma$ & +% gamma (gimel) & +% g & |\Agamma| & +% |\ARgamma| +% \\ +% $\Delta$ & +% delta (daleth) & +% d & |\Adelta| & +% |\ARdelta| +% \\ +% $E$ & +% epsilon (he) & +% e & |\Aepsilon| & +% |\ARepsilon| +% \\ +% $Z$ & +% zeta (zayin) & +% z & |\Azeta| & +% |\ARzeta| +% \\ +% $H$ & +% eta (heth) & +% h & |\Aeta| & +% |\AReta| +% \\ +% $\Theta$ & +% theta (teth) & +% T & |\Atheta| & +% |\ARtheta| +% \\ +% $I$ & +% iota (yod) & +% i & |\Aiota| & +% |\ARiota| +% \\ +% $K$ & +% kappa (kaph) & +% k & |\Akappa| & +% |\ARkappa| +% \\ +% $\Lambda$ & +% lambda (lamed) & +% l & |\Alambda| & +% |\ARlambda| +% \\ +% $M$ & +% mu (mem) & +% m & |\Amu| & +% |\ARmu| +% \\ +% $N$ & +% nu (nun) & +% n & |\Anu| & +% |\ARnu| +% \\ +% $\Xi$ & +% xi (samekh) & +% x & |\Axi| & +% |\ARxi| +% \\ +% $O$ & +% omicron (ayin) & +% o & |\Aomicron| & +% |\ARomicron| +% \\ +% $\Pi$ & +% pi (pe) & +% p & |\Api| & +% |\ARpi| +% \\ +% $R$ & +% rho (resh) & +% r & |\Arho| & +% |\ARrho| +% \\ +% $\Sigma$ & +% sigma (shin) & +% s & |\Asigma| & +% |\ARsigma| +% \\ +% $T$ & +% tau (tav) & +% t & |\Atau| & +% |\ARtau| +% \\ +% $\Upsilon$ & +% upsilon & +% y & |\Aupsilon| & +% |\ARupsilon| +% \\ +% $X$ & +% chi & +% X & |\Achi| & +% |\ARchi| +% \\ +% $\Phi$ & +% phi & +% f & |\Aphi| & +% |\ARphi| +% \\ +% $\Psi$ & +% psi & +% P & |\Apsi| & +% |\ARpsi| +% \\ +% $\Omega$ & +% omega & +% O & |\Aomega| & +% |\ARomega| +% \\ +% \hline +% \end{tabular} +% \end{table} +% +% \DescribeMacro{\givbcfamily} +% This command selects the 4th century~\BC{} Greek font family. +% The family name is |givbc|, standing for Greek IV century BC. +% +% \DescribeMacro{\textgivbc} +% The command |\textgivbc{|\meta{text}|}| typesets \meta{text} in the +% Greek font. +% +% I have provided two ways of accessing the \thisfont{} glyphs: +% (a) by ASCII characters, and +% (b) by commands whose names are based on the (modern) name of the +% character. +% These are shown in Table~\ref{tab}. +% The glyphs illustrated by Day are not uniform in height but I have +% provided both `smooth' and `rough' versions. The smooth versions +% are accessed by either the ASCII characters or by the commands |\Axxx|, +% while the rough versions are only accessible by the |\ARxxx| commands. +% +% \DescribeMacro{\translitgivbc} +% |\translitgivbc{|\meta{commands}|}| will typeset \meta{commands} +% (those in the last two columns of Table~\ref{tab}) as modern glyphs instead +% of the archaic ones. +% +% \DescribeMacro{\translitgivbcfont} +% The transliterated text is set in the |\translitgivbcfont| font, +% which is initialised to a math roman form (i.e., |\mathrm|). The +% transliteration need not be in math mode. +% +% \StopEventually{ +% \bibliographystyle{alpha} +% \begin{thebibliography}{GMS94} +% +% \bibitem[Day95]{DAY95} +% Lewis F.~Day. +% \newblock \emph{Alphabets Old \& New}. +% \newblock Senate, 1995. +% \newblock (Third edition originally published by B.~T.~Bashford, 1910) +% +% \bibitem[Dru95]{DRUCKER95} +% Johanna Drucker. +% \newblock \emph{The Alphabetic Labyrinth}. +% \newblock Thames and Hudson, 1995. +% +% \bibitem[Fir93]{FIRMAGE93} +% Richard A.~Firmage. +% \newblock \emph{The Alphabet Abecedarium}. +% \newblock David R.~Goodine, 1993. +% +% \bibitem[MG04]{MITTELBACH04} +% Frank Mittelbach and Michel Goossens. +% \newblock \emph{The LaTeX Companion}. +% \newblock Addison-Wesley Publishing Company, second edition, 2004. +% +% \end{thebibliography} +% \PrintIndex +% } +% +% +% \section{The Metafont code} \label{sec:mf} +% +% \subsection{The parameter file} +% +% We deal with the parameter file first, and start by announcing +% what it is for. +% \begin{macrocode} +%<*up> + %%% GIVBC10.MF Computer Greek 4 century BC font 10 point design size. + +% \end{macrocode} +% Parameters from CMR10.MF are used as much as possible, but we +% only need a few of them. We also +% make sure that \Lpack{cmbase} is loaded as well as plain Metafont. +% \DescribeMfpVariable{font_identifier} +% \DescribeMfpVariable{font_size} +% \begin{macrocode} +if unknown cmbase: input cmbase fi + +font_identifier:="GIVBC"; font_size 10pt#; + +% \end{macrocode} +% +% +% \DescribeMfpVariable{u#} +% \DescribeMfpVariable{letter_fit#} +% The majority of the parameters and values are the same for both +% fonts. +% \begin{macrocode} +u#:=20/36pt#; % unit width +letter_fit#:=0pt#; % extra space added to all sidebars + +% \end{macrocode} +% +% \DescribeMfpVariable{body_height#} +% \DescribeMfpVariable{asc_height#} +% \DescribeMfpVariable{cap_height#} +% \DescribeMfpVariable{fig_height#} +% \DescribeMfpVariable{x_height#} +% \DescribeMfpVariable{desc_depth#} +% \DescribeMfpVariable{half_height#} +% \begin{macrocode} +body_height#:=270/36pt#; % height of tallest characters +asc_height#:=250/36pt#; % height of lowercase ascenders +cap_height#:=246/36pt#; % height of caps +fig_height#:=232/36pt#; % height of numerals +x_height#:=155/36pt#; % height of lowercase without ascenders +desc_depth#:=70/36pt#; % depth of lowercase descenders +half_height#:=1/2cap_height#; % half the height of caps + +% \end{macrocode} +% +% \DescribeMfpVariable{side#} +% \DescribeMfpVariable{thickfudge} +% \DescribeMfpVariable{thick#} +% I have used a square to help in defining the letter's geometry. +% All lines have the same thickness. +% \begin{macrocode} +side#:=cap_height#; % Height and width of the square +thickfudge:=1/9; +thick#:=thickfudge*side#; % thickness of all lines in the font + +% \end{macrocode} +% +% \DescribeMfpVariable{rule_thickness#} +% \begin{macrocode} +rule_thickness#:=.4pt#; % thickness of lines + +% \end{macrocode} +% +% \DescribeMfpVariable{cap_stem#} +% \begin{macrocode} +cap_stem#:=thick#; % thickness of majuscule stems + +% \end{macrocode} +% +% \DescribeMfpVariable{o#} +% \DescribeMfpVariable{apex_o#} +% \DescribeMfpVariable{apex_corr#} +% These deal with fine tuning of some aspects of the glyphs. +% \begin{macrocode} +o#:=8/36pt#; % amount of overshoot for curves +apex_o#:=thin#; % amount of overshoot for diagonal junctions +apex_corr#=0pt#; % fine tuning of overshoot + +% \end{macrocode} +% +% \DescribeMfpVariable{slant} +% |slant| is the amount the font slopes to the right. +% \begin{macrocode} +slant:=0; % tilt ratio $(\Delta x/\Delta y)$ + +% \end{macrocode} +% +% \DescribeMfpVariable{serifs} +% \DescribeMfpVariable{monospace} +% We are generating a sans, variable-width font. +% \begin{macrocode} +serifs:=false; % should serifs and bulbs be attached? +monospace:=false; % should all characters have the same width? + +% \end{macrocode} +% +% \DescribeMfpVariable{dot_size#} +% \DescribeMfpVariable{square_dots} +% These parameters are required for the punctation glyphs. +% \begin{macrocode} +dot_size#:=38/36pt#; % size of dots +square_dots:=false; % should dots be square? + +% \end{macrocode} +% +% \DescribeMfpVariable{whole_font} +% We are not generating a complete font. +% \begin{macrocode} +boolean whole_font; % try generating a complete font? +whole_font:=false; + +% \end{macrocode} +% +% The driver file would normally be called here. +% +% +% \subsection{The driver file} +% +% If there was a driver file, this would be it. To a large extent the +% driver code is based on my \Lpack{cpctitle.mf} +% for the Pacioli font. +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of parameters +% start of driver code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \begin{mfpmacro}{makebox} +% This is a new version of the \Lpack{cmbase.mf} |makebox| macro. +% Essentially, as we are only generating an uppercase font, we don't +% need all the horizontals for the lowercase characters. +% +% \begin{macrocode} +% A new version of cmbase.mf makebox macro +def makebox(text rule) = + for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth: + rule((l,y)t_,(r,y)t_); endfor % horizontals + for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals + for x=u*(1+floor(1/u)) step u until r-1: + rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals + if charic<>0: + rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction +enddef; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{proofpcbb} +% The macro |proofpcbb(S, xoff, yoff)| draws crosses at the corners of +% the square, +% and at the bottom and top midpoints, where the point |zS| is at +% position |(xoff,yoff)| in the square. +% \begin{macrocode} + +% A macro to delineate the bounding square in proof mode. +% Point z$ is at (xoff,yoff) in the bounding square. +def proofpcbb(suffix $)(expr xoff, yoff) = +if proofing > 0: + x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner + z$br = (x$bl+cap_height, y$bl); % BRHC + z$tr = (x$bl+cap_height, y$bl+cap_height); % TRHC + z$tl = (x$bl, y$bl+cap_height); % TLHC + z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points + pair hc, vc; + hc = (2u,0); vc = (0,2u); + pickup pensquare scaled 2; + for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc: + draw s-hc--s+hc; + draw s-vc--s+vc; + endfor +fi +enddef; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{cm_font_setup} +% The basic font set up. +% \begin{macrocode} + +let cm_font_setup=font_setup; % Knuth's original font_setup + + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{greek_font_setup} +% This macro contains additional set up for the Greek font. +% \begin{macrocode} + +def greek_font_setup= % contains special stuff for archaic Greek font + define_pixels(u); + define_pixels(side,thick,half_height); + let adjust_fit=normal_adjust_fit; + define_whole_pixels(letter_fit); + define_whole_vertical_pixels(body_height,asc_height, + cap_height,x_height,desc_depth); + body_depth:=desc_depth+body_height-asc_height; + define_pixels(dot_size); + shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit; + if not string mode: + if mode<=smoke: + shrink_fit:=0; + fi + fi +enddef; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% END OF MACROS %%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% Set the mode and font setup. +% \begin{macrocode} + +font_coding_scheme:="ASCII caps and miniscules"; + +mode_setup; + +greek_font_setup; + +% \end{macrocode} +% +% \DescribeMfpVariable{pcshiftx#} +% \begin{macrocode} +numeric pcshiftx#; % x value of LHS of box wrt origin of char box +define_pixels(pcshiftx); + +% \end{macrocode} +% +% Do the spacings. +% +% \DescribeMfpVariable{font_slant} +% \DescribeMfpVariable{font_x_height} +% \DescribeMfpVariable{font_normal_space} +% \DescribeMfpVariable{font_quad} +% \DescribeMfpVariable{font_extra_space} +% \begin{macrocode} + +font_slant slant; +font_x_height x_height#; +if monospace: font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; +else: font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; +fi + +% \end{macrocode} +% +% \subsection{The glyph code} +% +% The following code generates the glyphs for the \thisfont{} font. +% +% +% \begin{macrocode} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% end of driver code +% start of glyph code +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% \end{macrocode} +% +% +% \begin{mfpmacro}{a} +% The letter \textit{alpha}. The inside of the legs are at the edges +% of the square. The bar is at 1/3 the height. +% \begin{macrocode} + +cmchar "Greek 394BC letter alpha (a)"; +beginchar("a", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100 = h/2; x100 = pcshiftx+y100; % center point +numeric alpha[], hor, vert, hypot, theta; +pair greek[]; +hor := 0.5h; vert := h-thick; +greek1 = (hor, vert); +theta = 270 + angle(greek1); + % for left leg +penpos1(thick,theta); penpos2(thick,theta); + % and for the right leg +penpos3(thick,-theta); penpos4(thick,-theta); +rt x1r=pcshiftx; lft x4l=x1r+side; +bot y1r=bot y4l=0; +top y3r= top y2l=h; +x3r=x2l = 0.5[x1r,x4l]; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + % draw the legs +filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle; + % now for the bar +y5l=y6l=hround(1/3h); +y5r-y5l=y6r-y6l=thick; +penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4)); +z5=whatever[z1,z2]; z6=whatever[z3,z4]; +penstroke z5e--z6e; % bar line +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{b} +% The letter \textit{beta}. The actual height is 6/5 the nominal height, +% with the width being 2/3 the nominal height. This rendition scales it so +% that the actual height is the same as the nominal height (i.e., setting +% the declared width to 5/9 nominal height). +% +% \begin{macrocode} + +cmchar "Greek 394BC letter beta (b)"; +beginchar("b",4u#+5/9side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := 2u; +y100=h/2; x100=pcshiftx+y100; % square center +% the stem +penpos1(thick,0); penpos2(thick,0); +y2l=0; y1l=h; x1l=x2l=pcshiftx; +numeric alpha, long, short, hypot; +long=(w-2pcshiftx); short=h/4; hypot=short++long; +alpha := hypot/long; +% prepare for the bottom bowl +penpos3(alpha*thick,90); penpos4(alpha*thick,90); +penpos5(alpha*thick,90); penpos6(alpha*thick,90); +z3l=z2l; +x4l=w-pcshiftx; y4l=0.25[y2l,y1l]; +z5r=z4l; +x6l=x2r; y6l=0.5[y2l,y1l]; +% prepare for the top bowl +penpos7(alpha*thick,90); penpos8(alpha*thick,90); +penpos9(alpha*thick,90); penpos10(alpha*thick,90); +z7r=z6l; +x8l=x4l; y8l=0.75[y2l,y1l]; +z9r=z8l; +z10r=z1l; +% now for the notches +z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem +z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner +z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls +z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner +z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem +% draw the outer boundary +filldraw z1l--z2l--z4l--z13--z8l--cycle; +% remove interior of bottom bowl +unfilldraw z6l--z12--z11--cycle; +% and the top bowl +unfilldraw z7r--z15--z14--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{g} +% The letter \textit{gamma}. The bottom of the top arm is 2/3 side long. +% \begin{macrocode} + +cmchar "Greek 394BC letter gamma (g)"; +beginchar("g",2u#+thick#+2/3side#, cap_height#, 0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +penpos1(thick,0); penpos2(thick,0); +x1l=x2l=pcshiftx; top y1l=h; bot y2l=0; +filldraw stroke z1e--z2e; +% the arm +penpos3(thick,90); penpos4(thick,90); +y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx; +filldraw stroke z3e--z4e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{d} +% The letter \textit{delta}. Same as \textit{alpha} except that the `bar' +% is at the base. +% \begin{macrocode} + +cmchar "Greek 394BC letter delat (d)"; +beginchar("d", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100 = h/2; x100 = pcshiftx+y100; % center point +numeric alpha, hor, vert, hypot, theta; +pair greek[]; +hor := 0.5h; vert := h-thick; +greek1 = (hor, vert); +theta = 270 + angle(greek1); + % for left leg +penpos1(thick,theta); penpos2(thick,theta); + % and for the right leg +penpos3(thick,-theta); penpos4(thick,-theta); +rt x1r=pcshiftx; lft x4l=x1r+side; +bot y1r=bot y4l=0; +top y2l= top y3r=h; +x3r=x2l = 0.5[x1r,x4l]; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + % now for the bar +penpos5(thick,90); penpos6(thick,90); +bot y5l=bot y6l=0; +x5l=pcshiftx; x6l=w-pcshiftx; +z7=whatever[z1l,z2l]=whatever[z5l,z6l]; +z8=whatever[z3r,z4r]=whatever[z5l,z6l]; +z9=whatever[z1r,z2r]=whatever[z5r,z6r]; +z10=whatever[z3l,z4l]=whatever[z5r,z6r]; +% draw the outer +filldraw z7--z2l--z8--cycle; +% subtract the inner +unfilldraw z9--z0--z10--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{e} +% The letter \textit{epsilon}. From LHS of square, top arm is 2/3 + thick, +% middle is 2/3, and bottom is 2/3 + 2thick. +% \begin{macrocode} + +cmchar "Greek 394BC letter epsilon (e)"; +beginchar("e", 2u#+2/3side#+2thick#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center point +penpos1(thick,0); penpos2(thick,0); +lft x1l=lft x2l=pcshiftx; top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % stem +% middle arm +penpos5(thick,90); penpos6(thick,90); +x5=x1; y5=y6=h/2; rt x6=pcshiftx + 2/3side; +filldraw stroke z5e--z6e; +% top arm +penpos3(thick,90); penpos4(thick,90); +x3=x1; top y3r=top y4r=h; x4=x6+thick; +filldraw stroke z3e--z4e; +% bottom arm +penpos7(thick,90); penpos8(thick,90); +x7=x1; bot y7l=bot y8l=0; x8=x6+2thick; +filldraw stroke z7e--z8e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; % end of "E" + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{z} +% The letter \textit{zeta}. This fills the square, except that the top +% arm is only 4/5 of the side. +% \begin{macrocode} + +cmchar "Greek 394BC letter zeta (z)"; +beginchar("z", 2u#+side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha, hor, vert, hypot; +vert=h; hor=4/5side; hypot=vert++hor; +alpha=hypot/vert; +penpos1(thick,90); penpos2(thick,90); penpos3(alpha*thick, 0); +penpos4(alpha*thick, 0); +top y1r=h; lft x1=pcshiftx; +y2=y1; rt x2=x3; +rt x3r=x1+4/5side;; top y3=h; x4l=x1; bot y4=0; +filldraw stroke z1e--z2e; % top bar +filldraw stroke z3e--z4e; % diagonal +% and for the bottom bar +penpos8(thick,90); penpos9(thick,90); +x8=x4; bot y8l=0; +x9=pcshiftx+side; y9=y8; +filldraw stroke z8e--z9e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{h} +% The letter \textit{eta}. The crossbar is centered. +% \begin{macrocode} + +cmchar "Greek 394BC letter eta (h)"; +beginchar("h", 4u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% left stem +penpos1(thick,0); penpos2(thick,0); +lft x1l=lft x2l=pcshiftx; bot y1=0; top y2=h; +filldraw stroke z1e--z2e; +% right stem +penpos3(thick,0); penpos4(thick,0); +rt x3r= rt x4r= x1l+side; bot y3=0; top y4=h; +filldraw stroke z3e--z4e; +% crossbar +penpos5(thick,90); penpos6(thick,90); +x5=x1; x6=x3; y5=y6=h/2; +filldraw stroke z5e--z6e; +proofpcbb(100, y100, y100); +labels(1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{T} +% The letter \textit{theta}. Just a circle with a dot in the center. +% \begin{macrocode} + +cmchar "Greek 394BC letter theta (T)"; +beginchar("T", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha; alpha=0.75; +% outside of circle +x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100; +y1r=h; y3r=0; x1r=x3r=x100; +% inside of circle +x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r; +y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r; +filldraw z1r..z2r..z3r..z4r..cycle; +unfilldraw z1l..z2l..z3l..z4l..cycle; +% the dot +x12=x100-alpha*thick; x14=x100+alpha*thick; y12=y14=y100; +y11=y100+alpha*thick; y13=y100-alpha*thick; x11=x13=x100; +path p; +p= z11..z12..z13..z14..cycle; +filldraw p; filldraw p; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{i} +% The letter \textit{iota}. +% \begin{macrocode} + +cmchar "Greek 394BC letter iota (i)"; +beginchar("i", 4u#+thick#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + 0.5thick; % center point +penpos1(thick,0); penpos2(thick,0); +x1=x2=hround(w/2); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; % vertical stem +proofpcbb(100, y100, y100); +penlabels(1, 2, 100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{k} +% The letter \textit{kappa}. It fills 2/3 of the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter kappa (k)"; +beginchar("k", 2u#+2/3side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +% the stem +penpos1(thick,0); penpos2(thick,0); +lft x1l=lft x2l=pcshiftx; + top y1=h; bot y2=0; + filldraw stroke z1e--z2e; % left stem +numeric hor, vert, theta[]; +pair greek[]; +% upper arm +hor := 2/3side; vert := side/2; +greek1 = (hor,vert); +theta1=270+angle(greek1); +penpos3(thick,theta1); penpos4(thick,theta1); +x3l=x2r; y3l=side/2; +y4l=h; x4r=x1l+2/3side; +% lower arm +vert := -side/4; +greek2 = (hor,vert); +theta2=270+angle(greek2); +penpos5(thick,theta2); penpos6(thick,theta2); +z5r=z3l; +x6l=x4r; y6l=side/4; +% arm notch +z0=whatever[z3r,z4r]=whatever[z5l,z6l]; +% draw the arms +filldraw z3l--z4l--z4r--z0--z6l--z6r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{l} +% The letter \textit{lambda}. Identical to A without the crossbar. +% \begin{macrocode} + +cmchar "Greek 394BC letter lambda (l)"; +beginchar("l", 2u#+side#+2thick#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100 = h/2; x100 = pcshiftx+y100; % center point +numeric alpha[], hor, vert, hypot, theta; +pair greek[]; +hor := 0.5h; vert := h-thick; +greek1 = (hor, vert); +theta = 270 + angle(greek1); + % for left leg +penpos1(thick,theta); penpos2(thick,theta); + % and for the right leg +penpos3(thick,-theta); penpos4(thick,-theta); +rt x1r=pcshiftx; lft x4l=x1r+side; +bot y1r=bot y4l=0; +top y3r= top y2l=h; +x3r=x2l = 0.5[x1r,x4l]; +z0=whatever[z1r,z2r]=whatever[z3l,z4l]; + % draw the legs +filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,100); endchar; % end of "L" + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{m} +% The letter \textit{mu}. This has slightly sloping right and left legs. +% The inside base of the legs is the square side. +% \begin{macrocode} + +cmchar"Greek 394BC letter mu (m)"; +beginchar("m", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha, hor, vert, hypot, theta[]; +pair greek[]; +hor := 3thick; vert := side; +greek1 = (hor, vert); +theta1 = 270 + angle(greek1); +% left leg +penpos1(thick,theta1); penpos2(thick,theta1); +z1r=(pcshiftx,0); z2l=(pcshiftx+2thick,h); +% right leg +penpos3(thick,-theta1); penpos4(thick,-theta1); +z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h); +% stuff for the middle V, top of the notch at the square center +z0=z100; +theta2 = 270 + angle(z4r-z0); +% left of V +penpos5(thick,-theta2); penpos6(thick,-theta2); +z5r=z0; z6r=z2l; +% right of V +penpos7(thick,theta2); penpos8(thick,theta2); +z7l=z0; z8l=z4r; +% left leg notch +z9=whatever[z1r,z2r]=whatever[z5l,z6l]; +% under the V +z10=whatever[z5l,z6l]=whatever[z7r,z8r]; +% right leg notch +z11=whatever[z7r,z8r]=whatever[z3l,z4l]; +% draw it +filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{n} +% The letter \textit{nu}. It fills the square (actually left and right legs +% are a bit long). +% \begin{macrocode} + +cmchar "Greek 394BC letter nu (n)"; +beginchar("n", 4u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric hor, vert, theta; +pair greek[]; +hor = side-thick; vert = h; +greek1=(hor,vert); +theta=270 + angle(greek1); +% left leg +penpos1(thick,0); penpos2(thick,0); +z1l=(pcshiftx,0); z2l=(pcshiftx,h); +% right leg +penpos3(thick,0); penpos4(thick,0); +z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h); +% bar +penpos5(thick,-theta); penpos6(thick,-theta); +z5l=z3r; z6r=z2l; +% left notch +z7=whatever[z1r,z2r]=whatever[z5l,z6l]; +% right notch +z8=whatever[z5r,z6r]=whatever[z3l,z4l]; +filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{x} +% The letter \textit{xi}. It fills the square +% \begin{macrocode} + +cmchar "Greek 394BC letter xi (x)"; +beginchar("x", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% upright +penpos1(thick,0); penpos2(thick,0); +z1=(x100,0); z2=(x100,h); +filldraw stroke z1e--z2e; +% 3 horizontal bars +penpos3(thick,90); penpos4(thick,90); +z3r=(pcshiftx,h); z4r=(pcshiftx+side,h); +filldraw stroke z3e--z4e; +penpos5(thick,90); penpos6(thick,90); +z5=(pcshiftx,h/2); z6=(pcshiftx+side,h/2); +filldraw stroke z5e--z6e; +penpos7(thick,90); penpos8(thick,90); +z7l=(pcshiftx,0); z8l=(pcshiftx+side,0); +filldraw stroke z7e--z8e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{o} +% The letter \textit{omicron}. Just a circle. +% \begin{macrocode} + +cmchar "Greek 394BC letter omicron (o)"; +beginchar("o", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +% outside of circle +x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100; +y1r=h; y3r=0; x1r=x3r=x100; +% inside of circle +x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r; +y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r; +filldraw z1r..z2r..z3r..z4r..cycle; +unfilldraw z1l..z2l..z3l..z4l..cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{p} +% The letter \textit{pi}. This just fills the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter pi (p)"; +beginchar("p", 4u#+side#, cap_height#, 0); +adjust_fit(0, 0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +penpos1(thick,0); penpos2(thick,0); +x1l=x2l=pcshiftx; top y1l=h; bot y2l=0; +filldraw stroke z1e--z2e; +% the arm +penpos3(thick,90); penpos4(thick,90); +y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx; +filldraw stroke z3e--z4e; +% the beak +penpos5(thick,0); penpos6(thick,0); +x5r=x6r=x4; top y5=h; bot y6=h/2; +filldraw stroke z5e--z6e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); endchar; + + +% \end{macrocode} +% \end{mfpmacro} +% +% +% +% \begin{mfpmacro}{r} +% The letter \textit{rho}. The actual height is 6/5 side and width 2/3 side. +% The bowl fits into a square of 2/3 side. This is a trimmed version of the +% original. +% \begin{macrocode} + +cmchar "Greek 394BC letter rho (r)"; +beginchar("r", 2u#+5/9side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +penpos1(thick,0); penpos2(thick,0); + top lft z1l=(pcshiftx,h); bot lft z2l=(pcshiftx,0); +filldraw stroke z1e--z2e; % vertical stem +% the bowl +penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90); +top y3r=top y1; x3r=x1r; +bot y5r=5/9[y1,y2]; x5=x3; +x4r=x1l+5/9side; y4=0.5[y5r,y3r]; +filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{s} +% The letter \textit{sigma}. The width is 2/3 the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter sigma (s)"; +beginchar("s", 2u#+2/3side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx+y100; % square center +pair greek[]; +numeric theta[]; +numeric hor, vert; +% prepare for the long arms +hor := 2/3side; vert := 1/3h; +greek1=(hor,vert); +theta1=270+angle(greek1); +penpos1(thick,-theta1); penpos2(thick,-theta1); +penpos7(thick,theta1); penpos8(thick,theta1); +% prepare for the short arms +hor := 2/3side-thick; vert := h/2 - h/3; +greek2=(hor,vert); +theta2=270-angle(greek2); +penpos3(thick,theta2); penpos4(thick,theta2); +penpos5(thick,-theta2); penpos6(thick,-theta2); +% do the points +y1l=0; x1r=pcshiftx+2/3side; +z2l=(pcshiftx,h/3); +z3l=z2l; +z4r=(pcshiftx+2/3side-thick, h/2); +z5r=z4r; +z6l=(pcshiftx,2/3h); +z7l=z6l; +y8l=h; x8r=x1r; +% bottom notch +z10=whatever[z1r,z2r]=whatever[z3r,z4r]; +% middle notch +z11=whatever[z3l,z4l]=whatever[z5l,z6l]; +% top notch +z12=whatever[z5r,z6r]=whatever[z7r,z8r]; +% draw it all +filldraw z1l--z2l--z11--z6l--z8l--z8r--z12--z4r--z10--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,10,11,12,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{t} +% The letter \textit{tau}. It has a jaunty crossbar and fills the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter tau (t)"; +beginchar("t",2u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric hor, vert, theta; +numeric alpha[]; pair greek[]; +% the stem +alpha1=h-thick; +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,alpha1); +filldraw stroke z1e--z2e; +% the crossbar (left half) +penpos3(thick,90); penpos4(thick,90); +z3r=(pcshiftx,alpha1); z4r=(w/2,alpha1); +filldraw stroke z3e--z4e; +% right half +hor := w/2; vert := h/5; +greek1=(hor,vert); +theta = 270 + angle(greek1); +penpos5(thick,theta); +y5l=h; x5r=w-pcshiftx; +filldraw z4l{right}..{greek1}z5r--z5l{-greek1}..{left}z4r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{y} +% The letter \textit{upsilon}. +% Actual size is square with sides 6/5 of normal. This is +% a scaled version. +% \begin{macrocode} + +cmchar "Greek 394BC letter upsilon (y)"; +beginchar("y", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric alpha, theta; +numeric hor, vert; +pair greek[]; +alpha=h/3; +hor := h; vert := 0.75h; +greek1 = (hor,vert); greek2 = (-hor, -vert); +greek3 = (-hor,vert); greek4 = (hor, -vert); +theta = 270 + angle(greek1); +% stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,alpha); +% right arm +penpos3(thick,theta); +y3l=h; x3r=w-pcshiftx; +% left arm +penpos4(thick,-theta); +y4r=h; x4l=pcshiftx; +filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle; +filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; % End of "U" + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{X} +% The letter \textit{chi}. It just fits into the square. +% \begin{macrocode} + +cmchar "Greek 394BC letter chi (X)"; +beginchar("X", 2u#+side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric theta; +theta = 270+45; +% right going leg +penpos1(thick,theta); penpos2(thick,theta); +x1l=pcshiftx; y1r=0; x2r=pcshiftx+side; y2l=h; +filldraw stroke z1e--z2e; +% left going leg +penpos3(thick,-theta); penpos4(thick,-theta); +x3l=pcshiftx; y3r=h; x4r=pcshiftx+side; y4l=0; +filldraw stroke z3e--z4e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{f} +% The letter \textit{phi}. Actual height is 6/5 of square and outer dia of circle +% is 4/5 side (i.e., 2/3 the actual height). This is a scaled version. +% \begin{macrocode} + +cmchar "Greek 394BC letter phi (f)"; +beginchar("f", 2u#+2/3side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,h); +% the circle +z0=(w/2,h/2); +numeric alpha; +alpha := 1/3h; +y3o=y3i=y5i=y5o=h/2; +x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick; +x4o=x4i=x6i=x6o=w/2; +y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick; +% unfill the inner +unfilldraw z3i..z4i..z5i..z6i..cycle; +% draw the outer +filldraw z3o..z4o..z5o..z6o..cycle; +% draw the stem (twice) +filldraw stroke z1e--z2e; filldraw stroke z1e--z2e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{P} +% The letter \textit{psi}. The actual height is 6/5 square and width is square. +% This is a scaled version. +% \begin{macrocode} + +cmchar "Greek 394BC letter psi (P)"; +beginchar("P", 2u#+5/6side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric alpha, beta; +numeric hor, vert, theta; +pair greek; +alpha=5/6; % scale factor +beta=1/3alpha*side+thick; % arm seperation height +% the stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,0); z2=(w/2,h); +filldraw stroke z1e--z2e; +hor := w/2; vert := h-beta; +greek = (hor,vert); +theta=270+angle(greek); +% right arm +penpos3(thick,theta); penpos4(thick,theta); +z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx; +% left arm +penpos5(thick,-theta); penpos6(thick,-theta); +z5r=z3l; x6l=pcshiftx; y6r=y4l; +% intersection points +z10=whatever[z1r,z2r]=whatever[z3r,z4r]; +z11=whatever[z1l,z2l]=whatever[z5l,z6l]; +filldraw z3l--z4l--z4r--z10--cycle; % right arm +filldraw z5r--z6r--z6l--z11--cycle; % left arm +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,10,11,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{O} +% The letter \textit{omega}. Height is square, width is 4/3 square. +% \begin{macrocode} + +cmchar "Greek 394BC letter omega (O)"; +beginchar("O", 2u#+4/3side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% bottom arms +penpos1(thick,90); penpos2(thick,90); penpos3(thick,90); penpos4(thick,90); +z1l=(pcshiftx,0); z4l=(w-pcshiftx,0); +x2l = w/2-side/4; x3l=w/2+side/4; y2l=y3l=0; +% prepare the bowl +numeric theta, hor, vert; +pair greek[]; +hor := x2r-pcshiftx; vert := h; +greek1=(hor,vert); greek2=(-hor,-vert); +greek3=(-hor,vert); greek4=(hor,-vert); +theta = 270+angle(greek1); +penpos5(thick,-theta); penpos9(thick,theta); +z5r=z2l; z9l=z3l; +penpos6(thick,0); penpos8(thick,0); +z6l=(w/2-side/2, h/2); z8r=(w/2+side/2, h/2); +penpos7(thick,90); +z7r=(w/2,h); +path p[]; +p1=z5l{greek3}..z6l{up}..{right}z7r; +p2=z7r{right}..z8r{down}..{greek2}z9r; +p3=z1r--z4r; +% notch points +z10 = p3 intersectionpoint p1; +z11 = p3 intersectionpoint p2; +% draw it +filldraw z1r--z10{greek3}..z6l{up}..z7r{right}..z8r{down}..{greek2}z11--z4r + --z4l--z3l{greek1}..z8l{up}..z7l{left}..z6r{down}..{greek4}z2l--z1l--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,11,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% The rest of the glyphs are rough versions of some of the above. +% +% +% \begin{mfpmacro}{B} +% The letter \textit{beta}. The actual height is 6/5 the nominal height, +% with the width being 2/3 the nominal height. +% +% \begin{macrocode} + +cmchar "Greek 394BC letter beta (rough, B)"; +beginchar("B",4u#+2/3side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := 2u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric beta; +beta := side/10; % amount to extend top and bottom +% the stem +penpos1(thick,0); penpos2(thick,0); +y2l=-beta; y1l=h+beta; x1l=x2l=pcshiftx; +numeric alpha, long, short, hypot; +long=(w-2pcshiftx); short=h/4; hypot=short++long; +alpha := hypot/long; +% prepare for the bottom bowl +penpos3(alpha*thick,90); penpos4(alpha*thick,90); +penpos5(alpha*thick,90); penpos6(alpha*thick,90); +z3l=z2l; +x4l=w-pcshiftx; y4l=0.25[y2l,y1l]; +z5r=z4l; +x6l=x2r; y6l=0.5[y2l,y1l]; +% prepare for the top bowl +penpos7(alpha*thick,90); penpos8(alpha*thick,90); +penpos9(alpha*thick,90); penpos10(alpha*thick,90); +z7r=z6l; +x8l=x4l; y8l=0.75[y2l,y1l]; +z9r=z8l; +z10r=z1l; +% now for the notches +z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem +z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner +z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls +z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner +z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem +% draw the outer boundary +filldraw z1l--z2l--z4l--z13--z8l--cycle; +% remove interior of bottom bowl +unfilldraw z6l--z12--z11--cycle; +% and the top bowl +unfilldraw z7r--z15--z14--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{M} +% The letter \textit{mu}. This has slightly sloping right and left legs. +% The inside base of the legs is the square side. Left leg extends below +% the baseline. +% \begin{macrocode} + +cmchar"Greek 394BC letter mu (rough, M)"; +beginchar("M", 2u#+side#+2thick#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u+thick; +y100=h/2; x100=pcshiftx+y100; % square center +numeric alpha, hor, vert, hypot, theta[]; +pair greek[]; +hor := 3thick; vert := side; +greek1 = (hor, vert); +theta1 = 270 + angle(greek1); +% left leg +numeric beta; +beta := thick; % extra depth below baseline +penpos1(thick,theta1); penpos2(thick,theta1); +z1r=(pcshiftx,-beta); z2l=(pcshiftx+2thick,h); +% right leg +penpos3(thick,-theta1); penpos4(thick,-theta1); +z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h); +% stuff for the middle V, top of the notch at the square center +z0=z100; +theta2 = 270 + angle(z4r-z0); +% left of V +penpos5(thick,-theta2); penpos6(thick,-theta2); +z5r=z0; z6r=z2l; +% right of V +penpos7(thick,theta2); penpos8(thick,theta2); +z7l=z0; z8l=z4r; +% left leg notch +z9=whatever[z1r,z2r]=whatever[z5l,z6l]; +% under the V +z10=whatever[z5l,z6l]=whatever[z7r,z8r]; +% right leg notch +z11=whatever[z7r,z8r]=whatever[z3l,z4l]; +% draw it +filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{N} +% The letter \textit{nu}. It fills the square (actually left and right legs +% are a bit long). +% \begin{macrocode} + +cmchar "Greek 394BC letter nu (rough, N)"; +beginchar("N", 4u#+side#, cap_height#,0); +adjust_fit(0,0); +pcshiftx := 2u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric hor, vert, theta; +pair greek[]; +hor = side-thick; vert = h; +greek1=(hor,vert); +theta=270 + angle(greek1); +numeric beta; +beta := thick; % extra extensions of the legs +% left leg +penpos1(thick,0); penpos2(thick,0); +z1l=(pcshiftx,-beta); z2l=(pcshiftx,h); +% right leg +penpos3(thick,0); penpos4(thick,0); +z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h+beta); +% bar +penpos5(thick,-theta); penpos6(thick,-theta); +z5l=z3r; z6r=z2l; +% left notch +z7=whatever[z1r,z2r]=whatever[z5l,z6l]; +% right notch +z8=whatever[z5r,z6r]=whatever[z3l,z4l]; +filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,7,8,100); endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% \begin{mfpmacro}{R} +% The letter \textit{rho}. The actual height is 6/5 side and width 2/3 side. +% The bowl fits into a square of 2/3 side. +% \begin{macrocode} + +cmchar "Greek 394BC letter rho (rough, R)"; +beginchar("R", 2u#+2/3side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % square center +numeric beta; +beta := side/10; % extra top and bottom extensions +penpos1(thick,0); penpos2(thick,0); + top lft z1l=(pcshiftx,h+beta); bot lft z2l=(pcshiftx,-beta); +filldraw stroke z1e--z2e; % vertical stem +% the bowl +penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90); +top y3r=top y1; x3r=x1r; +bot y5r=5/9[y1,y2]; x5=x3; +x4r=x1l+5/9side; y4=0.5[y5r,y3r]; +filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{Y} +% The letter \textit{upsilon}. +% Actual size is square with sides 6/5 of normal. +% \begin{macrocode} + +cmchar "Greek 394BC letter upsilon (rough, Y)"; +beginchar("Y", 2u#+6/5side#, cap_height#, 0); +adjust_fit(0,0); +pcshiftx := u; +y100=h/2; x100=pcshiftx+y100; % center of square +numeric beta; +beta := side/10; % extra at top and bottom +numeric alpha, theta; +numeric hor, vert; +pair greek[]; +alpha=h/3; +hor := h; vert := 0.75h; +greek1 = (hor,vert); greek2 = (-hor, -vert); +greek3 = (-hor,vert); greek4 = (hor, -vert); +theta = 270 + angle(greek1); +% stem +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,-beta); z2=(w/2,alpha); +% right arm +penpos3(thick,theta); +y3l=h+beta; x3r=w-pcshiftx; +% left arm +penpos4(thick,-theta); +y4r=h+beta; x4l=pcshiftx; +filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle; +filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle; +proofpcbb(100, y100, y100); +penlabels(0,1,2,3,4,5,6,100); endchar; % End of "u" + +% \end{macrocode} +% \end{mfpmacro} +% +% +% +% \begin{mfpmacro}{F} +% The letter \textit{phi}. Actual height is 6/5 of square and outer dia of circle +% is 4/5 side (i.e., 2/3 the actual height). +% \begin{macrocode} + +cmchar "Greek 394BC letter phi (rough, F)"; +beginchar("F", 2u#+4/5side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +% the stem +numeric beta; +beta := side/10; % extra at top and bottom +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,-beta); z2=(w/2,h+beta); +% the circle +z0=(w/2,h/2); +numeric alpha; +alpha := 2/5side; +y3o=y3i=y5i=y5o=h/2; +x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick; +x4o=x4i=x6i=x6o=w/2; +y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick; +% unfill the inner +unfilldraw z3i..z4i..z5i..z6i..cycle; +% draw the outer +filldraw z3o..z4o..z5o..z6o..cycle; +% draw the stem (twice) +filldraw stroke z1e--z2e; filldraw stroke z1e--z2e; +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% \begin{mfpmacro}{Q} +% The letter \textit{psi}. The actual height is 6/5 square and width is square. +% \begin{macrocode} + +cmchar "Greek 394BC letter psi (rough, Q)"; +beginchar("Q", 2u#+side#, cap_height#,0); +adjust_fit(0, 0); +pcshiftx := u; +y100 = h/2; x100 = pcshiftx + y100; % center point +numeric alpha, beta; +numeric hor, vert, theta; +pair greek; +alpha=1; % scale factor +beta=1/3alpha*side+thick; % arm seperation height +% the stem +numeric gamma; +gamma := side/10; % extra at top and bottom +penpos1(thick,0); penpos2(thick,0); +z1=(w/2,-gamma); z2=(w/2,h+gamma); +filldraw stroke z1e--z2e; +hor := w/2; vert := h-beta; +greek = (hor,vert); +theta=270+angle(greek); +% right arm +penpos3(thick,theta); penpos4(thick,theta); +z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx; +% left arm +penpos5(thick,-theta); penpos6(thick,-theta); +z5r=z3l; x6l=pcshiftx; y6r=y4l; +% intersection points +z10=whatever[z1r,z2r]=whatever[z3r,z4r]; +z11=whatever[z1l,z2l]=whatever[z5l,z6l]; +filldraw z3l--z4l--z4r--z10--cycle; % right arm +filldraw z5r--z6r--z6l--z11--cycle; % left arm +proofpcbb(100, y100, y100); +penlabels(1,2,3,4,5,6,10,11,100); +endchar; + +% \end{macrocode} +% \end{mfpmacro} +% +% +% The end of the glyphs and the file. +% \begin{macrocode} + +end + +%</up> +% \end{macrocode} +% +% +% \section{The font definition files} \label{sec:fd} +% +% \begin{macrocode} +%<*fdot1> +\DeclareFontFamily{OT1}{givbc}{} + \DeclareFontShape{OT1}{givbc}{m}{n}{ <-> givbc10 }{} + \DeclareFontShape{OT1}{givbc}{bx}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{OT1}{givbc}{b}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{OT1}{givbc}{m}{sl}{ <-> sub givbc/m/n }{} + \DeclareFontShape{OT1}{givbc}{m}{it}{ <-> sub givbc/m/n }{} +%</fdot1> +% \end{macrocode} +% +% +% \begin{macrocode} +%<*fdt1> +\DeclareFontFamily{T1}{givbc}{} + \DeclareFontShape{T1}{givbc}{m}{n}{ <-> givbc10 }{} + \DeclareFontShape{T1}{givbc}{bx}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{T1}{givbc}{b}{n}{ <-> sub givbc/m/n }{} + \DeclareFontShape{T1}{givbc}{m}{sl}{ <-> sub givbc/m/n }{} + \DeclareFontShape{T1}{givbc}{m}{it}{ <-> sub givbc/m/n }{} +%</fdt1> +% \end{macrocode} +% +% \section{The \Lpack{greek4cbc} package code} \label{sec:code} +% +% Announce the name and version of the package, which requires +% \LaTeXe{}. +% \begin{macrocode} +%<*usc> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{greek4cbc}[2000/10/22 v1.1 package for 4th century BC Greek fonts] +% \end{macrocode} +% +% +% \begin{macro}{\givbcfamily} +% Selects the 4th century BC Greek font family in the T1 encoding. +% \begin{macrocode} +\newcommand{\givbcfamily}{\usefont{T1}{givbc}{m}{n}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textgivbc} +% Text command for the 4th century BC Greek font family. +% \begin{macrocode} +\DeclareTextFontCommand{\textgivbc}{\givbcfamily} +% \end{macrocode} +% \end{macro} +% +% The commands for the signs. +% +% \begin{macrocode} + +\chardef\Aalpha=`a +\chardef\Abeta=`b +\chardef\Agamma=`g +\chardef\Adelta=`d +\chardef\Aepsilon=`e +\chardef\Azeta=`z +\chardef\Aeta=`h +\chardef\Atheta=`T +\chardef\Aiota=`i +\chardef\Akappa=`k +\chardef\Alambda=`l +\chardef\Amu=`m +\chardef\Anu=`n +\chardef\Axi=`x +\chardef\Aomicron=`o +\chardef\Api=`p +\chardef\Arho=`r +\chardef\Asigma=`s +\chardef\Atau=`t +\chardef\Aupsilon=`y +\chardef\Achi=`X +\chardef\Aphi=`f +\chardef\Apsi=`P +\chardef\Aomega=`O + +\chardef\ARalpha=`a +\chardef\ARbeta=`B +\chardef\ARgamma=`g +\chardef\ARdelta=`d +\chardef\ARepsilon=`e +\chardef\ARzeta=`z +\chardef\AReta=`h +\chardef\ARtheta=`T +\chardef\ARiota=`i +\chardef\ARkappa=`k +\chardef\ARlambda=`l +\chardef\ARmu=`M +\chardef\ARnu=`N +\chardef\ARxi=`x +\chardef\ARomicron=`o +\chardef\ARpi=`p +\chardef\ARrho=`R +\chardef\ARsigma=`s +\chardef\ARtau=`t +\chardef\ARupsilon=`Y +\chardef\ARchi=`X +\chardef\ARphi=`F +\chardef\ARpsi=`Q +\chardef\ARomega=`O + +% \end{macrocode} +% +% \begin{macro}{\translitgvibc} +% \begin{macro}{\translitgivbcfont} +% |\translitgivbc{|\meta{commands}|}| transliterates \meta{commands} +% using the |\translitgivbcfont|. +% \begin{macrocode} +\newcommand{\translitgivbc}[1]{{% + \@translitGiv #1}} +\newcommand{\translitgivbcfont}{\mathrm} + +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@translitGiv} +% This macro redefines all character commands to produce the transliterated +% version instead of the glyph. There must be no spaces in the definition. +% \begin{macrocode} +\newcommand{\@translitGiv}{% +\def\Aalpha{\ensuremath{\translitgivbcfont{A}}}\def\ARalpha{\Aalpha}% +\def\Abeta{\ensuremath{\translitgivbcfont{B}}}\def\ARbeta{\Abeta}% +\def\Agamma{\ensuremath{\translitgivbcfont{\Gamma}}}\def\ARgamma{\Agamma}% +\def\Adelta{\ensuremath{\translitgivbcfont{\Delta}}}\def\ARdelta{\Adelta}% +\def\Aepsilon{\ensuremath{\translitgivbcfont{E}}}\def\ARepsilon{\Aepsilon}% +\def\Azeta{\ensuremath{\translitgivbcfont{Z}}}\def\ARzeta{\Azeta}% +\def\Aeta{\ensuremath{\translitgivbcfont{H}}}\def\AReta{\Aeta}% +\def\Atheta{\ensuremath{\translitgivbcfont{\Theta}}}\def\ARtheta{\Atheta}% +\def\Aiota{\ensuremath{\translitgivbcfont{I}}}\def\ARiota{\Aiota}% +\def\Akappa{\ensuremath{\translitgivbcfont{K}}}\def\ARkappa{\Akappa}% +\def\Alambda{\ensuremath{\translitgivbcfont{\Lambda}}}\def\ARlambda{\Alambda}% +\def\Amu{\ensuremath{\translitgivbcfont{M}}}\def\ARmu{\Amu}% +\def\Anu{\ensuremath{\translitgivbcfont{N}}}\def\ARnu{\Anu}% +\def\Axi{\ensuremath{\translitgivbcfont{\Xi}}}\def\ARxi{\Axi}% +\def\Aomicron{\ensuremath{\translitgivbcfont{O}}}\def\ARomicron{\Aomicron}% +\def\Api{\ensuremath{\translitgivbcfont{\Pi}}}\def\ARpi{\Api}% +\def\Arho{\ensuremath{\translitgivbcfont{R}}}\def\ARrho{\Arho}% +\def\Asigma{\ensuremath{\translitgivbcfont{\Sigma}}}\def\ARsigma{\Asigma}% +\def\Atau{\ensuremath{\translitgivbcfont{T}}}\def\ARtau{\Atau}% +\def\Aupsilon{\ensuremath{\translitgivbcfont{\Upsilon}}}\def\ARupsilon{\Aupsilon}% +\def\Achi{\ensuremath{\translitgivbcfont{X}}}\def\ARchi{\Achi}% +\def\Aphi{\ensuremath{\translitgivbcfont{\Phi}}}\def\ARphi{\Aphi}% +\def\Apsi{\ensuremath{\translitgivbcfont{\Psi}}}\def\ARpsi{\Apsi}% +\def\Aomega{\ensuremath{\translitgivbcfont{\Omega}}}\def\ARomega{\Aomega}% +} + +% \end{macrocode} +% \end{macro} +% +% The end of this package. +% \begin{macrocode} +%</usc> +% \end{macrocode} +% +% \section{The Type1 map file} +% +% Just a line. +% \changes{v1.2}{2005/04/06}{Added map file} +% \begin{macrocode} +%<*map> +givbc10 Archaic-Greek-4th-Century-BC <givbc10.pfb +%</map> +% \end{macrocode} +% +% +% +% \Finale +% +\endinput + +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} + + diff --git a/fonts/archaic/greek4cbc/greek4cbc.ins b/fonts/archaic/greek4cbc/greek4cbc.ins new file mode 100644 index 0000000000..bce08f41d7 --- /dev/null +++ b/fonts/archaic/greek4cbc/greek4cbc.ins @@ -0,0 +1,89 @@ +%% greek4cbc.ins +%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net +%% Copyright 1999--2005 Peter R. Wilson +%% +%% This work may be distributed and/or modified under the +%% conditions of the Latex Project Public License, either +%% version 1.3 of this license or (at your option) any +%% later version. +%% The latest version of the license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2003/06/01 or later. +%% +%% This work has the LPPL maintenance status "author-maintained". +%% +%% This work consists of the files listed in the README file. +%% +%% This file will generate fast loadable files from the doc files +%% in this work when run through LaTeX +%% +%% --------------------- start of docstrip commands -------------- +%% +\def\batchfile{greek4cbc.ins} +\input docstrip.tex +\preamble +------------------------------------------------------------------ + Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net + Copyright 1999--2005 Peter R. Wilson + + This work may be distributed and/or modified under the + conditions of the Latex Project Public License, either + version 1.3 of this license or (at your option) any + later version. + The latest version of the license is in + http://www.latex-project.org/lppl.txt + and version 1.3 or later is part of all distributions of + LaTeX version 2003/06/01 or later. + + This work has the LPPL maintenance status "author-maintained". + + This work consists of the files listed in the README file. +------------------------------------------------------------------ +\endpreamble + +\keepsilent + + +%% Uncomment the next lines for the MetaFont source +\Msg{*** Generating the Metafont files ***} +\usepostamble\empty +\generateFile{givbc10.mf}{t}{\from{greek4cbc.dtx}{up}} + +\Msg{*** Generating the Font Definition files ***} +\usepostamble\defaultpostamble + +\generateFile{ot1givbc.fd}{t}{\from{greek4cbc.dtx}{fdot1}} +\generateFile{t1givbc.fd}{t}{\from{greek4cbc.dtx}{fdt1}} + +\Msg{*** Generating the LaTeX2e package files ***} + +\generateFile{greek4cbc.sty}{t}{\from{greek4cbc.dtx}{usc}} + +\Msg{*** Generating the Type1 map file ***} +\usepreamble\empty +\usepostamble\empty + +\generateFile{greek4cbc.map}{t}{\from{greek4cbc.dtx}{map}} + +\Msg{***********************************************************} +\Msg{*} +\Msg{* To continue with the installation you have to move these files} +\Msg{* into the LaTeX macro area} +\Msg{* \space\space ot1givbc.fd} +\Msg{* \space\space t1givbc.fd} +\Msg{* \space\space greek4cbc.sty} +\Msg{*} +\Msg{* Further installation instructions are in the README} +\Msg{*} +\Msg{* To produce the documentation run the files ending with} +\Msg{* `.dtx' through LaTeX.} +\Msg{* Process any name.idx file by:} +\Msg{* \space\space\space\space makeindex -s gind.ist name} +\Msg{* Process any name.glo file by:} +\Msg{* \space\space\space\space makeindex -s gglo.ist -o name.gls name.glo} +\Msg{*} +\Msg{* Happy TeXing} +\Msg{***********************************************************} + +\endinput diff --git a/fonts/archaic/greek4cbc/greek4cbc.pdf b/fonts/archaic/greek4cbc/greek4cbc.pdf Binary files differnew file mode 100644 index 0000000000..d103144428 --- /dev/null +++ b/fonts/archaic/greek4cbc/greek4cbc.pdf diff --git a/fonts/archaic/greek4cbc/trygivbc.pdf b/fonts/archaic/greek4cbc/trygivbc.pdf Binary files differnew file mode 100644 index 0000000000..0b8cdb2104 --- /dev/null +++ b/fonts/archaic/greek4cbc/trygivbc.pdf diff --git a/fonts/archaic/greek4cbc/trygivbc.tex b/fonts/archaic/greek4cbc/trygivbc.tex new file mode 100644 index 0000000000..890bb05ac9 --- /dev/null +++ b/fonts/archaic/greek4cbc/trygivbc.tex @@ -0,0 +1,130 @@ +% trygivbc.tex Test 4thC BC Greek font +\documentclass{article} +\usepackage{greek4cbc} + +\newcommand{\abc}{a b g d e z h T i k l m n x o p r s t y X f P O} +\newcommand{\Acomms}{\Aalpha%\ + \Abeta%\ + \Agamma%\ + \Adelta%\ + \Aepsilon%\ + \Azeta%\ + \Aeta%\ + \Atheta%\ + \Aiota%\ + \Akappa%\ + \Alambda%\ + \Amu%\ + \Anu%\ + \Axi%\ + \Aomicron%\ + \Api%\ + \Arho%\ + \Asigma%\ + \Atau%\ + \Aupsilon%\ + \Achi%\ + \Aphi%\ + \Apsi%\ + \Aomega} + +\newcommand{\ARcomms}{\ARalpha%\ + \ARbeta%\ + \ARgamma%\ + \ARdelta%\ + \ARepsilon%\ + \ARzeta%\ + \AReta%\ + \ARtheta%\ + \ARiota%\ + \ARkappa%\ + \ARlambda%\ + \ARmu%\ + \ARnu%\ + \ARxi%\ + \ARomicron%\ + \ARpi%\ + \ARrho%\ + \ARsigma%\ + \ARtau%\ + \ARupsilon%\ + \ARchi%\ + \ARphi%\ + \ARpsi%\ + \ARomega} + + +\title{Try 4th Century BC Greek Font} +%%\author{Peter Wilson \\ \texttt{herries dot press at earthlink dot net}} +\author{} +\date{} +\begin{document} +\maketitle + + This provides a short test of the characters in the 4th century \textsc{bc} Greek +font +--- the \verb|givbc| font family. + +\begin{center} +The smooth font in Large size \\ +{\givbcfamily\Large \abc \par +} +\end{center} + +\begin{center} +The font in its normal size, both smooth and rough, and for comparison, transliterated into +Modern Greek. \\ +\textgivbc{\Acomms} \\ \textgivbc{\ARcomms} \\ +\translitgivbc{\Acomms} \\ +\end{center} + + GREEK in Greek is: \textgivbc{greek}. + +The next lines of `Greek' are produced by the following code (note that +the Greeks had no punctuation marks): +\begin{verbatim} +{\givbcfamily this font gomes in both a rough and a smooT +form \quad +Tis is Te smooT form \quad at Tis time Te +greeks no longer used boustrofedron riting} +\end{verbatim} + +{\givbcfamily this font gomes in both a rough and a smooT +form \quad +Tis is Te smooT form \quad at Tis time Te +greeks no longer used boustrofedron riting} + +\begin{table} +\centering +\caption{Alphabet and commands} +\begin{tabular}{|c|c||l|l|} \hline +Glyph & ASCII & Smooth & Rough \\ \hline +\textgivbc{a} & a & \verb|\Aalpha| & \verb|\ARalpha| \\ +\textgivbc{b} & b & \verb|\Abeta| & \verb|\ARbeta| \\ +\textgivbc{g} & g & \verb|\Agamma| & \verb|\ARgamma| \\ +\textgivbc{d} & d & \verb|\Adelta| & \verb|\ARdelta| \\ +\textgivbc{e} & e & \verb|\Aepsilon| & \verb|\ARepsilon| \\ +\textgivbc{z} & z & \verb|\Azeta| & \verb|\ARzeta| \\ +\textgivbc{h} & h & \verb|\Aeta| & \verb|\AReta| \\ +\textgivbc{T} & T & \verb|\Atheta| & \verb|\ARtheta| \\ +\textgivbc{i} & i & \verb|\Aiota| & \verb|\ARiota| \\ +\textgivbc{k} & k & \verb|\Akappa| & \verb|\ARkappa| \\ +\textgivbc{l} & l & \verb|\Alambda| & \verb|\ARlambda| \\ +\textgivbc{m} & m & \verb|\Amu| & \verb|\ARmu| \\ +\textgivbc{n} & n & \verb|\Anu| & \verb|\ARnu| \\ +\textgivbc{x} & x & \verb|\Axi| & \verb|\ARxi| \\ +\textgivbc{o} & o & \verb|\Aomicron| & \verb|\ARomicron| \\ +\textgivbc{p} & p & \verb|\Api| & \verb|\ARpi| \\ +\textgivbc{r} & r & \verb|\Arho| & \verb|\ARrho| \\ +\textgivbc{s} & s & \verb|\Asigma| & \verb|\ARsigma| \\ +\textgivbc{t} & t & \verb|\Atau| & \verb|\ARtau| \\ +\textgivbc{y} & y & \verb|\Aupsilon| & \verb|\ARupsilon| \\ +\textgivbc{X} & X & \verb|\Achi| & \verb|\ARchi| \\ +\textgivbc{f} & f & \verb|\Aphi| & \verb|\ARphi| \\ +\textgivbc{P} & P & \verb|\Apsi| & \verb|\ARpsi| \\ +\textgivbc{O} & O & \verb|\Aomega| & \verb|\ARomega| \\ +\hline +\end{tabular} +\end{table} + +\end{document} |