%%% @mffile{ %%% filename="flyspec.mf", %%% version="", %%% date="", %%% filetype="mf fontcreator", %%% package="m-capbas.arj" %%% author="Phons Bloemen (PhB)", %%% address="Eindhoven U. of Technology" %%% email="Internet: phons@ei.ele.tue.nl", %%% codetable="ISO/ASCII", %%% checksumtype="none", %%% checksum="0", %%% keywords="", %%% abstract=" %%% Generates flyspec font, a 5x5 grid font. %%% This is the 'Flyspec 3' font as mentioned in %%% 'the Jargon File'. May be even Flyspec 2! %%% Part of Capital Baseball package" %%% copyright="Copyleft (L) Phons Bloemen (PhB), %%% according to GNU public licence version 2 or later. %%% (1) Do not change this file (even its name) %%% (2) if you do make changes, first rename it to some %%% other name, and mark your changes clearly.", %%% } %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% if unknown cmbase: input cmbase fi %% mode_setup; %% def generate suffix t= enddef; %% input cmtt10; font_setup; %% get some definitions from cmtt10 for proper setup %% do not ask why this sequence is used, it works! mode_setup; if unknown gensize: gensize := 10; fi; em# := gensize * 0.3pt#; uu# := 0.3 em#; font_coding_scheme:="TeX text"; font_identifier:="FLYSPEC"; font_size gensize * 1pt#; body_height#:=5uu#; % height of tallest characters asc_height#:=5uu#; % height of lowercase ascenders cap_height#:=5uu#; % height of caps fig_height#:=5uu#; % height of numerals x_height#:=4uu#; % height of lowercase without ascenders math_axis#:=3uu#; % axis of symmetry for math symbols bar_height#:=3uu#; % height of crossbar in lowercase e comma_depth#:=1uu#; % depth of comma below baseline desc_depth#:=1uu#; % depth of lowercase descenders %% monospace := false; %% font_setup; font_normal_space 4uu#; font_quad 18uu#; font_extra_space 4uu#; %%% This draws the dot matrix (a generic function, can %%% be used for many dot matrix characters). %%% Parameters of 'flychar': %%% c : character number (decimal) %%% k : # dots horizontal ('width') 0 1 2 3 %%% l : # dots vertical ('height') 4 5 6 7 %%% m : # dots descender ('depth') 8 9 10 11 %%% t : sequence of dot numbers to set. 12 13 14 15 %%% Dot numbering of a 4 x 5 'flychar': 16 17 18 19 def flychar(expr c,k,l,m)(text t) = beginchar((char c), (k+1)*uu#, l*uu#, m*uu#); clearit; pickup pensquare xscaled (w/(k+1)) yscaled((h+d)/(l+m)); for a = t : drawdot((0.5+(a mod k))*w/(k+1),h-((0.5+floor(a/k))*(h+d)/(l+m))); endfor; endchar; enddef; %%% The space character is special beginchar(32,4*uu#,5*uu#,0); endchar; %%% The 'flychar' characters follow (upper and lower case!) flychar(33,1,5,0)(0,1,2,4); flychar(34,3,3,0)(0,2,3,5); flychar(35,5,5,0)(1,3,5,6,7,8,9,11,13,15,16,17,18,19,21,23); flychar(36,5,5,0)(1,2,3,4,5,7,11,12,13,17,19,20,21,22,23); flychar(37,5,5,0)(0,1,4,5,8,12,16,19,20,23,24); flychar(38,5,5,0)(1,5,7,11,15,17,19,21,22,23); flychar(39,2,3,0)(1,2); flychar(40,2,5,0)(1,2,4,6,9); flychar(41,2,5,0)(0,3,5,7,8); flychar(42,5,5,0)(2,5,7,9,11,12,13,15,17,19,22); flychar(43,5,5,0)(2,7,10,11,12,13,14,17,22); flychar(44,2,4,1)(7,8); flychar(45,5,5,0)(10,11,12,13,14); flychar(46,1,5,0)(4); flychar(47,5,5,0)(4,8,12,16,20); flychar(48,5,5,0)(1,2,3,5,9,10,14,15,19,21,22,23); flychar(49,5,5,0)(1,2,7,12,17,21,22,23); flychar(50,5,5,0)(0,1,2,3,9,12,13,16,20,21,22,23,24); flychar(51,5,5,0)(0,1,2,3,4,8,12,13,15,19,21,22,23); flychar(52,5,5,0)(0,4,5,9,10,11,12,13,14,19,24); flychar(53,5,5,0)(0,1,2,3,4,5,10,11,12,13,19,20,21,22,23); flychar(54,5,5,0)(1,2,3,4,5,10,11,12,13,15,19,21,22,23); flychar(55,5,5,0)(0,1,2,3,4,9,14,19,24); flychar(56,5,5,0)(1,2,3,5,9,11,12,13,15,19,21,22,23); flychar(57,5,5,0)(1,2,3,5,9,11,12,13,14,19,20,21,22,23); flychar(58,1,5,0)(1,3); flychar(59,2,4,1)(3,7,8); flychar(60,3,5,0)(2,4,6,10,14); flychar(61,5,5,0)(5,6,7,8,9,15,16,17,18,19); flychar(62,3,5,0)(0,4,8,10,12); flychar(63,5,5,0)(1,2,3,5,9,13,22); flychar(64,5,5,0)(0,1,2,3,4,5,6,9,10,11,14,19,20,21,22,23,24); flychar(65,5,5,0)(1,2,3,5,9,10,11,12,13,14,15,19,20,24); flychar(66,5,5,0)(0,1,2,3,5,9,10,11,12,13,15,19,20,21,22,23); flychar(67,5,5,0)(0,1,2,3,4,5,10,15,20,21,22,23,24); flychar(68,5,5,0)(0,1,2,3,5,9,10,14,15,19,20,21,22,23); flychar(69,5,5,0)(0,1,2,3,4,5,10,11,12,13,15,20,21,22,23,24); flychar(70,5,5,0)(0,1,2,3,4,5,10,11,12,13,15,20); flychar(71,5,5,0)(1,2,3,4,5,10,15,19,21,22,23,24); flychar(72,5,5,0)(0,4,5,9,10,11,12,13,14,15,19,20,24); flychar(73,3,5,0)(0,1,2,4,7,10,12,13,14); flychar(74,3,5,0)(0,1,2,5,8,11,12,13); flychar(75,5,5,0)(0,4,5,8,10,11,12,15,18,20,24); flychar(76,5,5,0)(0,5,10,15,20,21,22,23,24); flychar(77,5,5,0)(0,4,5,6,8,9,10,12,14,15,19,20,24); flychar(78,5,5,0)(0,4,5,6,9,10,12,14,15,18,19,20,24); flychar(79,5,5,0)(0,1,2,3,4,5,9,10,14,15,19,20,21,22,23,24); flychar(80,5,5,0)(0,1,2,3,5,9,10,11,12,13,15,20); flychar(81,5,5,0)(0,1,2,3,4,5,9,10,12,14,15,18,20,21,22,24); flychar(82,5,5,0)(0,1,2,3,5,9,10,11,12,13,15,18,20,24); flychar(83,5,5,0)(1,2,3,4,5,11,12,13,19,20,21,22,23); flychar(84,5,5,0)(0,1,2,3,4,7,12,17,22); flychar(85,5,5,0)(0,4,5,9,10,14,15,19,21,22,23); flychar(86,5,5,0)(0,4,5,9,10,14,16,18,22); flychar(87,5,5,0)(0,4,5,9,10,12,14,15,16,18,19,21,23); flychar(88,5,5,0)(0,4,6,8,12,16,18,20,24); flychar(89,5,5,0)(0,4,6,8,12,17,22); flychar(90,5,5,0)(0,1,2,3,4,8,12,16,20,21,22,23,24); flychar(91,2,5,0)(0,1,2,4,6,8,9); flychar(92,5,5,0)(0,6,12,18,24); flychar(93,2,5,0)(0,1,3,5,7,8,9); flychar(94,3,5,0)(1,3,5); flychar(95,5,4,1)(20,21,22,23,24); flychar(96,2,3,0)(1,2); flychar(97,4,4,0)(1,2,4,6,8,10,13,14,15); flychar(98,4,5,0)(0,4,5,6,8,11,12,15,16,17,18); flychar(99,4,4,0)(1,2,3,4,8,13,14,15); flychar(100,4,5,0)(3,5,6,7,8,11,12,15,17,18,19); flychar(101,4,4,0)(1,2,4,7,8,10,13,14,15); flychar(102,4,5,0)(2,3,5,8,9,10,13,17); flychar(103,4,4,1)(1,2,3,4,7,9,10,11,15,17,18); flychar(104,4,5,0)(0,4,5,6,7,8,11,12,15,16,19); flychar(105,1,5,0)(0,2,3,4); flychar(106,2,5,1)(1,5,7,9,10); flychar(107,4,5,0)(0,4,7,8,10,12,13,16,18); flychar(108,2,5,0)(0,2,4,6,8,9); flychar(109,5,4,0)(1,3,5,7,9,10,12,14,15,19); flychar(110,4,4,0)(0,1,2,4,7,8,11,12,15); flychar(111,4,4,0)(1,2,4,7,8,11,13,14); flychar(112,4,4,1)(0,1,2,4,7,8,11,12,13,14,16); flychar(113,4,4,1)(1,2,3,4,7,8,11,13,14,15,19); flychar(114,3,4,0)(1,2,3,6,9); flychar(115,4,4,0)(1,2,4,11,13,14); flychar(116,3,5,0)(1,3,4,5,7,10,13,14); flychar(117,4,4,0)(0,3,4,7,8,11,13,14,15); flychar(118,4,4,0)(0,3,4,6,8,9,12); flychar(119,5,4,0)(0,4,5,7,9,10,11,13,14,16,18); flychar(120,4,4,0)(0,3,5,7,10,12,13,15); flychar(121,4,4,1)(0,3,4,7,9,10,11,15,17,18); flychar(122,4,4,0)(0,1,2,3,6,9,12,13,14,15); flychar(123,3,5,0)(0,1,4,8,10,12,13); flychar(124,1,5,0)(0,1,2,3,4); flychar(125,3,5,0)(1,2,4,6,10,13,14); flychar(126,4,5,0)(1,3,4,6); bye.