summaryrefslogtreecommitdiff
path: root/fonts/malvern/source/magenc.mf
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/malvern/source/magenc.mf
Initial commit
Diffstat (limited to 'fonts/malvern/source/magenc.mf')
-rw-r--r--fonts/malvern/source/magenc.mf384
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: