diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/malvern/source/magenc.mf |
Initial commit
Diffstat (limited to 'fonts/malvern/source/magenc.mf')
-rw-r--r-- | fonts/malvern/source/magenc.mf | 384 |
1 files changed, 384 insertions, 0 deletions
diff --git a/fonts/malvern/source/magenc.mf b/fonts/malvern/source/magenc.mf new file mode 100644 index 0000000000..a6a1b5eb6c --- /dev/null +++ b/fonts/malvern/source/magenc.mf @@ -0,0 +1,384 @@ +% magenc.mf 1.2.0 1994/10/11 -- Malvern G (greek) +% Copyright 1994 P. Damian Cugley + +%%% @METAFONT-file { +%%% filename = "magenc.mf", +%%% version = "1.2.0", +%%% date = "1994/10/11", +%%% package = "Malvern 1.2", +%%% author = "P. Damian Cugley", +%%% email = "damian.cugley@comlab.ox.ac.uk", +%%% address = "Oxford University Computing Laboratory, +%%% Parks Road, Oxford OX1 3QD, UK", +%%% codetable = "USASCII", +%%% keywords = "Malvern, METAFONT, font, typefont, TeX", +%%% supported = "Maybe", +%%% abstract = "Greek encoding definition for the Malvern +%%% font family.", +%%% dependencies = "other program files", +%%% } + +% See the Malvern Handbook (maman.tex) for more info about Malvern. +% This software is available freely but without warranty. +% See the file COPYING for details. + +%{{{ magenc.mf + +numeric c; c = -1; +vardef next_code = + c := c + 1; + if c = 32: c := hex"80"; fi + c +enddef; + +%{{{ capitals + +code.gr.cap.alpha = ASCII"A"; +code.gr.cap.beta = ASCII"B"; +code.gr.cap.sigma1 = ASCII"C"; % lunate sigma +code.gr.cap.delta = ASCII"D"; +code.gr.cap.epsilon = ASCII"E"; +code.gr.cap.phi = ASCII"F"; +code.gr.cap.gamma = ASCII"G"; +code.gr.cap.eta = ASCII"H"; +code.gr.cap.iota = ASCII"I"; +code.gr.cap.theta = ASCII"J"; +code.gr.cap.kappa = ASCII"K"; +code.gr.cap.lambda = ASCII"L"; +code.gr.cap.mu = ASCII"M"; +code.gr.cap.nu = ASCII"N"; +code.gr.cap.omicron = ASCII"O"; +code.gr.cap.pi = ASCII"P"; +code.gr.cap.chi = ASCII"Q"; +code.gr.cap.rho = ASCII"R"; +code.gr.cap.sigma = ASCII"S"; +code.gr.cap.tau = ASCII"T"; +code.gr.cap.upsilon = ASCII"U"; +code.gr.cap.digamma = ASCII"V"; % obselete +code.gr.cap.omega = ASCII"W"; +code.gr.cap.xi = ASCII"X"; +code.gr.cap.psi = ASCII"Y"; +code.gr.cap.zeta = ASCII"Z"; + +%code.gr.cap.upsilon1 = 91; +%code.gr.cap.koppa = 92; +%code.gr.cap.xi1 = 93; + +%}}} capitals +%{{{ lower case + +% Transliteration as per Yannis's + +% alpha beta gamma delta epsilon zeta eta theta iota kappa mu nu +% a b g d e z h j i k m n +% xi omicron pi rho sigma final-sigma tau upsilon phi chi psi omega +% x o p r s c t u f q y w + +% also: koppa digamma lunate-sigma sampi stimga +% 92/124 v 91/123 64/96 + +% code.gr.lc.sampi = 96; % obselete letter + +code.gr.lc.alpha = ASCII"a"; +code.gr.lc.beta = ASCII"b"; +code.gr.lc.sigma1 = ASCII"c"; % lunate sigma +code.gr.lc.delta = ASCII"d"; +code.gr.lc.epsilon = ASCII"e"; +code.gr.lc.phi = ASCII"f"; +code.gr.lc.gamma = ASCII"g"; +code.gr.lc.eta = ASCII"h"; +code.gr.lc.iota = ASCII"i"; +code.gr.lc.theta = ASCII"j"; +code.gr.lc.kappa = ASCII"k"; +code.gr.lc.lambda = ASCII"l"; +code.gr.lc.mu = ASCII"m"; +code.gr.lc.nu = ASCII"n"; +code.gr.lc.omicron = ASCII"o"; +code.gr.lc.pi = ASCII"p"; +code.gr.lc.chi = ASCII"q"; +code.gr.lc.rho = ASCII"r"; +code.gr.lc.sigma = ASCII"s"; % medial sigma ($\sigma$) +code.gr.lc.tau = ASCII"t"; +code.gr.lc.upsilon = ASCII"u"; +code.gr.lc.digamma = ASCII"v"; % obselete letter +code.gr.lc.omega = ASCII"w"; +code.gr.lc.xi = ASCII"x"; +code.gr.lc.psi = ASCII"y"; +code.gr.lc.zeta = ASCII"z"; + +code.gr.lc.final_sigma = 127; % $\varsigma$ +code.gr.lc.phi1 = 92; + +%code.gr.lc.koppa = 124; % obselete letter +%code.gr.lc.epsilon1 = 125; +%code.gr.lc.theta1 = 127; +%code.gr.lc.rho1 = 94; +%code.gr.lc.pi1 = 95; + +%}}} lower case +%{{{ punctuation etc. + +code.exclam = ASCII"!"; +code.colon = ASCII":"; % two dots +code.gr.colon = ASCII";"; % raised dot +code.gr.question = ASCII"?"; % looks like ; +code.full_stop = ASCII"."; +code.comma = ASCII","; +code.hyphen = ASCII"-"; + +code.zero = ASCII"0"; +code.percent = ASCII"%"; +code.plus_sign = ASCII"+"; +code.asterisk7 = ASCII"*"; +code.equals = ASCII"="; +code.paren.left = ASCII"("; +code.paren.right = ASCII")"; +code.brack.left = ASCII"["; +code.brack.right = ASCII"]"; +code.slash = ASCII"/"; +code.guillemet.left = ASCII"{"; +code.guillemet.right = ASCII"}"; + +code.cwm = ASCII" "; % same effect as end of word +code.null = ASCII"@"; % supresses effect of being at end of word + +forsuffixes $ = apostrophe, en_dash, em_dash: + code.$ = next_code; +endfor + +%}}} punctuation +%{{{ marks + +code.gr.accent = next_code; +code.gr.breve = next_code; +code.gr.macron = next_code; + +code.gr.acute = ASCII"'"; +code.gr.grave = ASCII"`"; +code.gr.circumflex = ASCII"~"; +code.gr.asp = ASCII"<"; +code.gr.len = ASCII">"; +code.gr.di = 34; +code.gr.iota_sub = ASCII"|"; + +forsuffixes $ = asp, len, di: + forsuffixes @ = acute, grave, circumflex: + code.gr.$.@ = next_code; + endfor +endfor + +code.gr.di.accent = next_code; + +if false: + +code.gr.iota_sub = 0; % iota subscript +code.gr.lc.alpha.iota_sub = 1; +code.gr.lc.eta.iota_sub = 2; +code.gr.lc.omega.iota_sub = 3; + +code.gr.acute = 9; +code.gr.grave = 10; +code.gr.circumflex = 11; +code.gr.tilde = 12; +code.gr.accent = 13; % the new universal accent + +code.gr.asp = 14; +code.gr.asp.acute = 15; +code.gr.asp.grave = 16; +code.gr.asp.circumflex = 17; +code.gr.asp.tilde = 18; +code.gr.breve = 19; % instead of asp.accent, which does not occur + +code.gr.len = 20; +code.gr.len.acute = 21; +code.gr.len.grave = 22; +code.gr.len.circumflex = 23; +code.gr.len.tilde = 24; +code.gr.macron = 25; % instead of len.accent + +code.gr.di = 26; +code.gr.di.acute = 27; +code.gr.di.grave = 28; +code.gr.di.circumflex = 29; +code.gr.di.tilde = 30; +code.gr.di.accent = 31; + +fi + +%}}} marks +%{{{ composites + +if c + 1 < hex"10": c := hex"10" - 1; fi + +forsuffixes $ = alpha, eta, omega: + code.gr.lc.$.iota_sub = next_code; +endfor + +forsuffixes # = asp, len: + code.gr.lc.rho.# = next_code; +endfor + +forsuffixes $$ = cap, lc: + forsuffixes $ = sigma, zeta, psi, xi: + code.gr.$$.$.breve = next_code; + endfor +endfor + +%if c + 1 < hex"80": c := hex"80" - 1; fi + +forsuffixes $ = alpha, alpha.iota_sub, epsilon, eta, eta.iota_sub, + iota, omicron, upsilon, omega, omega.iota_sub: + forsuffixes @ = accent, acute, grave, circumflex: + code.gr.lc.$.@ = next_code; + endfor + forsuffixes # = asp, len: + forsuffixes @ = , acute, grave, circumflex: + code.gr.lc.$.#.@ = next_code; + endfor + endfor +endfor + +forsuffixes $ = iota, upsilon: + forsuffixes @ = , accent, acute, grave, circumflex: + code.gr.lc.$.di.@ = next_code; + endfor +endfor + +if false: +% These codes are from Levy's fonts. + +code.gr.lc.alpha.grave = hex"80"; +code.gr.lc.alpha.asp = hex"81"; +code.gr.lc.alpha.len = hex"82"; + +code.gr.lc.alpha.iota_sub.grave = hex"84"; +code.gr.lc.alpha.iota_sub.asp = hex"85"; +code.gr.lc.alpha.iota_sub.len = hex"86"; + +code.gr.lc.alpha.acute = hex"88"; +code.gr.lc.alpha.asp.acute = hex"89"; +code.gr.lc.alpha.len.acute = hex"8A"; + +code.gr.lc.alpha.iota_sub.acute = hex"8C"; +code.gr.lc.alpha.iota_sub.asp.acute = hex"8D"; +code.gr.lc.alpha.iota_sub.len.acute = hex"8E"; + +code.gr.lc.alpha.circumflex = hex"90"; +code.gr.lc.alpha.asp.circumflex = hex"91"; +code.gr.lc.alpha.len.circumflex = hex"92"; + +code.gr.lc.alpha.iota_sub.circumflex = hex"94"; +code.gr.lc.alpha.iota_sub.asp.circumflex = hex"95"; +code.gr.lc.alpha.iota_sub.len.circumflex = hex"96"; + +code.gr.lc.eta.grave = hex"98"; +code.gr.lc.eta.asp = hex"99"; +code.gr.lc.eta.len = hex"9A"; + +code.gr.lc.eta.iota_sub.grave = hex"9C"; +code.gr.lc.eta.iota_sub.asp = hex"9D"; +code.gr.lc.eta.iota_sub.len = hex"9E"; + +code.gr.lc.eta.acute = hex"A0"; +code.gr.lc.eta.asp.acute = hex"A1"; +code.gr.lc.eta.len.acute = hex"A2"; + +code.gr.lc.eta.iota_sub.acute = hex"A4"; +code.gr.lc.eta.iota_sub.asp.acute = hex"A5"; +code.gr.lc.eta.iota_sub.len.acute = hex"A6"; + +code.gr.lc.eta.circumflex = hex"A8"; +code.gr.lc.eta.asp.circumflex = hex"A9"; +code.gr.lc.eta.len.circumflex = hex"AA"; + +code.gr.lc.eta.iota_sub.circumflex = hex"AC"; +code.gr.lc.eta.iota_sub.asp.circumflex = hex"AD"; +code.gr.lc.eta.iota_sub.len.circumflex = hex"AE"; + +code.gr.lc.omega.grave = hex"B0"; +code.gr.lc.omega.asp = hex"B1"; +code.gr.lc.omega.len = hex"B2"; + +code.gr.lc.omega.iota_sub.grave = hex"B4"; +code.gr.lc.omega.iota_sub.asp = hex"B5"; +code.gr.lc.omega.iota_sub.len = hex"B6"; + +code.gr.lc.omega.acute = hex"B8"; +code.gr.lc.omega.asp.acute = hex"B9"; +code.gr.lc.omega.len.acute = hex"BA"; + +code.gr.lc.omega.iota_sub.acute = hex"BC"; +code.gr.lc.omega.iota_sub.asp.acute = hex"BD"; +code.gr.lc.omega.iota_sub.len.acute = hex"BE"; + +code.gr.lc.omega.circumflex = hex"C0"; +code.gr.lc.omega.asp.circumflex = hex"C1"; +code.gr.lc.omega.len.circumflex = hex"C2"; + +code.gr.lc.omega.iota_sub.circumflex = hex"C4"; +code.gr.lc.omega.iota_sub.asp.circumflex = hex"C5"; +code.gr.lc.omega.iota_sub.len.circumflex = hex"C6"; + +code.gr.lc.iota.grave = hex"C8"; +code.gr.lc.iota.asp = hex"C9"; +code.gr.lc.iota.len = hex"CA"; + +code.gr.lc.upsilon.grave = hex"CC"; +code.gr.lc.upsilon.asp = hex"CD"; +code.gr.lc.upsilon.len = hex"CE"; + +code.gr.lc.iota.acute = hex"D0"; +code.gr.lc.iota.asp.acute = hex"D1"; +code.gr.lc.iota.len.acute = hex"D2"; + +code.gr.lc.upsilon.acute = hex"D4"; +code.gr.lc.upsilon.asp.acute = hex"D5"; +code.gr.lc.upsilon.len.acute = hex"D6"; + +code.gr.lc.iota.circumflex = hex"D8"; +code.gr.lc.iota.asp.circumflex = hex"D9"; +code.gr.lc.iota.len.circumflex = hex"DA"; + +code.gr.lc.upsilon.circumflex = hex"DC"; +code.gr.lc.upsilon.asp.circumflex = hex"DD"; +code.gr.lc.upsilon.len.circumflex = hex"DE"; + +code.gr.lc.epsilon.grave = hex"E0"; +code.gr.lc.epsilon.asp = hex"E1"; +code.gr.lc.epsilon.len = hex"E2"; + +code.gr.lc.omicron.grave = hex"E4"; +code.gr.lc.omicron.asp = hex"E5"; +code.gr.lc.omicron.len = hex"E6"; + +code.gr.lc.epsilon.acute = hex"E8"; +code.gr.lc.epsilon.asp.acute = hex"E9"; +code.gr.lc.epsilon.len.acute = hex"EA"; + +code.gr.lc.omicron.acute = hex"EC"; +code.gr.lc.omicron.asp.acute = hex"ED"; +code.gr.lc.omicron.len.acute = hex"EE"; + +code.gr.lc.iota.di = hex"F0"; +code.gr.lc.iota.di.grave = hex"F1"; +code.gr.lc.iota.di.acute = hex"F2"; +code.gr.lc.iota.di.circumflex = hex"F3"; +code.gr.lc.upsilon.di = hex"F4"; +code.gr.lc.upsilon.di.grave = hex"F5"; +code.gr.lc.upsilon.di.acute = hex"F6"; +code.gr.lc.upsilon.di.circumflex = hex"F7"; + +code.gr.lc.rho.asp = hex"FB"; +code.gr.lc.rho.len = hex"FC"; + +fi + +%}}} composites + +font_coding_scheme "Malvern G " & maversion; + +%}}} Malvern G + +% Local variables: +% fold-folded-p: t +% End: |