%PDF- %PDF-
Direktori : /data/old/usr/share/texlive/texmf-dist/fonts/source/lh/base/ |
Current File : //data/old/usr/share/texlive/texmf-dist/fonts/source/lh/base/fikparm.mf |
% % fikparm.mf % %% Cyrillic font container with T2 encoding beta-support % % This file is future part of lxfonts package % Version 3.5 // Patchlevel=1 % (c) O.Lapko % % This package is freeware product under conditions similar to % those of D. E. Knuth specified for the Computer Modern family of fonts. % In particular, only the authors are entitled to modify this file % (and all this package as well) and to save it under the same name. % % % Content: % % File with modified macros for font startup from polish fik_mik.mf % (Bogus\l{}aw Jackowski and Marek Ry\'cko) % and % start of Lig & kerns block from lkligtbl.mf (Alexander Berdnikov) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: % % |LHver_check| like exbase's |version_check| % If unknown fonteq: def fonteq % If unknown genmode: set genmode % Set param_base (it could be reset in fontbegin file) % Set flags for input glyph files (they could be reset in fontbegin file) % Set flags for letter shapes: not supported by current version (-"-) % Input fontbegin file (if necessary) % Defining boolean altcoding % Input cmbase and lcyrbeg (file with macros for ec param file) % input lkligtbl.mf (ligs & kerns block of A.Berdnikov) % Redefining `generate' macro % Use_driver macro: % input parameter file % set font_identifier (and gensize for ec) % input coding file % input Cyrillic definitions file % input driver file % % FINAL: START FONT -- use_driver(fonteq) % % defining LHver_check 3.5 % lh_maj_ver:=3; lh_min_ver:=5; % version identification def LHver_check(expr e,f)= if e>lh_maj_ver: message "LH font warning: Obsolete base"; elseif e<lh_maj_ver: message "LH font warning: File from old release found"; else: % e=lh_maj_ver: OK if f>lh_min_ver: message "LH font warning: Obsolete base"; elseif f<lh_min_ver: message "LH font warning: File from old release found"; else: % f=lh_min_ver: LH version is OK fi fi enddef; % changed fonteq with genmode must precede fikparm: % -- set value of first letters to change if unknown fonteq: def fonteq=2 enddef; fi % -- set boolean for cmbright fonts (vvv) if unknown cmbright: boolean cmbright; if unknown ebbase: cmbright:=false; ebbase:=0; else: cmbright:=true; fi; fi % -- set genmode string: the name of first letters if unknown genmode: string genmode; genmode:="cm"; fi if genmode="dc": genmode:="ec"; message "We use ec fonts only"; message ""; fi % new booleans 2007 (3.5g) % for mongolian italian otld with bar stroke; % for lowercase yat with beak serifs if unknown variant_obar: boolean variant_obar; variant_obar:=false; fi if unknown variant_yat: boolean variant_yat; variant_yat:=false; fi % -- |param_base| can be changed only in begin file string param_base; param_base:=jobname; % -- selfhelp % fonteq -- *number* of first (two, three or even four) letters from % current font which are changed to letters from a standard/popular font % header to input necessary parameters; it's entered *only* in font headers; % genmode -- *the name* of first two, three or even four letters from % a standard/popular font header to input necessary parameters; % it's entered both in font headers and in fontbegin file (if fonteq wasn't % changed); it must consist of *fonteq* letters, % param_base -- default: *jobname*; % one may use encoding and kern&ligs data from another font data in case of % changing param_base to necessary name (e.g. ll* virtual fonts use % lh* 8-bit font data with `vfcoding:=true;' command); param_base must % be changed *in fontbegin file only*. % % -- name of encoding for T2/X2 string enc_name; % next booleans are used in ??begin files: % -- set booleans for font stuff boolean wncoding,vfcoding,roman_ec; wncoding:=false; vfcoding:=false; roman_ec:=false; % -- set flags for Cyrillic letter assortment boolean more_letters,old_cyr,other_cyr,unic; more_letters:=false; old_cyr:=false; other_cyr:=false; unic:=false; % -- set flags for letter shapes % - put ogoneks instead of descenders? boolean is_ogonek; is_ogonek=false; % -- `true' not supported in current version if unknown concrete: boolean concrete; concrete:=false; fi if unknown specific: boolean specific; specific:=false; fi if unknown kapitel: boolean kapitel; kapitel:=false; fi % -- set flags for ligature and kerning stuff boolean TITLEfont,SmallCapsfont,ROMANfont; % there must stay jobname because data is read from started font header % to check whether is the "standard LH" font; if substring(fonteq-2,fonteq) of jobname = "lh": % lh* fonts have not any additional parameters enc_name:="LCY"; elseif substring(fonteq-2,fonteq) of jobname = "ll": param_base:="lh" & (substring(fonteq,length(jobname)) of jobname); vfcoding:=true; enc_name:="LCY"; elseif substring(fonteq-2,fonteq) of jobname = "wn": more_letters:=true; wncoding:=true; enc_name:="WNCYR"; elseif substring(fonteq-2,fonteq) of jobname = "la": roman_ec:=true; more_letters:=true; genmode:="ex"; enc_name:="T2A"; elseif substring(fonteq-2,fonteq) of jobname = "lb": roman_ec:=true; more_letters:=true; genmode:="ex"; enc_name:="T2B"; elseif substring(fonteq-2,fonteq) of jobname = "lc": roman_ec:=true; more_letters:=true; genmode:="ex"; enc_name:="T2C"; elseif substring(fonteq-2,fonteq) of jobname = "ld": roman_ec:=true; more_letters:=true; old_cyr:=true; genmode:="ex"; enc_name:="T2D"; elseif substring(fonteq-2,fonteq) of jobname = "rx": more_letters:=true; genmode:="ex"; enc_name:="X2"; % elseif substring(fonteq-2,fonteq) of jobname = "rs": % more_letters:=true; old_cyr:=true; % genmode:="ex"; enc_name:="XS"; else: % for another non-standard fonts enc_name:="Unknown"; % should be changed in fontbegin file scantokens("input " & substring(fonteq-2,fonteq) of jobname & "begin.mf"); fi % -- must go after redefined booleans wncoding and vfcoding in ??begin.mf boolean altcoding; altcoding:= if wncoding or vfcoding: false else: true fi; % -- start base file: % exbase won't loaded for run in small memory systems if unknown cmbase: input cmbase; fi % -- additional macros for ec compatible mode input lcyrbeg; % -- if TFMonly: "kill" cmbase's drawing macros if known TFMonly: input nodraw; fi % Only build TFM % -- start macros for ligatures and kerning input lkligtbl; string driver_name,ss; numeric ii; % -- set additional extra_endchar for SliTeX invisible fonts % !!! WARNING: % in icmcsc10.mf the line "extra_endchar:=..." must stay BEFORE "generate csc" ss:=substring(0,fonteq-2) of param_base; if (ss="i") or (ss="il"): extra_endchar := extra_endchar & "clearit;"; fi % -- reset slitex boolean for SliTeX fonts ss:=substring(0,fonteq-2) of param_base; if (ss="l") or (ss="il"): slitex := true; fi vardef generate @# = driver_name:=str @#; endgroup enddef; % -- input parameter file % set font_identfier % then driver file vardef use_driver @# (expr fonteq) = % % Start values ii:=0; forever: ii:=ii+1; ss:=substring(length(param_base)-ii,length(param_base)-ii+1) of param_base; exitif (ss<"0") or (ss>"9") or (ii>=length(param_base)); endfor; % % - input parameter file ii:=ii-1; ss:=substring(length(param_base)-ii,length(param_base)) of param_base; if (genmode="ex") or (genmode="ec"): exbase:=1; %!!! THAT'S TRICK: we don't need exbase at all % added flag for concrete if concrete: gensize:=scantokens(ss); ss:="input eo"& (substring(fonteq+1,length(param_base)) of param_base); elseif cmbright: exbase:=1; %!!! THAT'S TRICK: we don't need exbase at all gensize:=scantokens(ss); ss:="input eb"& (substring(fonteq+1,length(param_base)) of param_base); else: % - set gensize for ec parameter files if (ss="8") or (ss="10"): % for EC slitex fonts gensize:=scantokens(ss); ss:="input "& (substring(0,fonteq-2) of param_base) & "ec" & (substring(fonteq,length(param_base)) of param_base); else: gensize:=scantokens(ss)/100; ss:="input ec" & (substring(fonteq,length(param_base)-ii) of param_base); fi fi else: % - set gensize for cm parameter files gensize:=scantokens(ss); % added flag for concrete if concrete: ss:="input cc"& (substring(fonteq+1,length(param_base)) of param_base); else: % HERE could be cm genmode: vvvvvvv ss:="input "& (substring(0,fonteq-2) of param_base) & genmode & (substring(fonteq,length(param_base)) of param_base); fi fi show gensize,ss; % % - set font_identifier numeric true_pt#; true_pt#=pt#; pt#:=true_pt#; scantokens(ss); pt#:=true_pt#; font_identifier:=substring(0,length(param_base)-ii) of param_base; % % - input encoding file scantokens ("input "& (substring(fonteq-2,fonteq) of param_base) & "codes"); % - input Cyrillic definitions file scantokens "input lcyrdefs"; % % - input driver file scantokens("input "& if genmode="ex": if driver_name= "exroman" : "leroman" % also cmbright&ec (vvv) elseif driver_name= "ebroman" : "lebroman" % cmbright&ec (vvv) elseif driver_name= "extextit": "letextit" elseif driver_name= "excsc" : "lecsc" else: driver_name fi elseif genmode="ec": if driver_name= "exroman" : "ldroman" elseif driver_name= "extextit": "ldtextit" elseif driver_name= "excsc" : "ldcsc" else: driver_name fi else: if driver_name= "roman" : "ldroman" elseif driver_name= "sroman" : "ldroman" % slitex must be true elseif driver_name= "broman" : "ldbroman" % cmbright (vvv) elseif driver_name= "textit" : "ldtextit" elseif driver_name= "title" : "ldtitle" elseif driver_name= "csc" : "ldcsc" elseif driver_name= "texset" : "ldtexset" else: driver_name fi fi); enddef; % START FONT use_driver(fonteq); endinput; %end of file