% % lxpseudo.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: % % expseudo.mf (ec fonts) with another beginning :-) % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This file contains pseudoparameters which are not entered in the % parameter files, but are computed from the initial parameter set. % There are also ad hoc parameters needed only once, and scratch % parameters with different values at each occuerence (like |theta|). % LHver_check(3,5); % like |version_check| in ec % Diameters of dots % numeric idot_diam#,udot_diam#,pdot_diam#; if ebbase<>1: %(CMBRIGHT) idot_diam#=max(dot_size#,cap_curve#); % dot of letters `i' and `j' udot_diam#=max(dot_size#,cap_curve#); % umlaut dots fi pdot_diam#=if monospace: 5/4 fi\\ dot_size#; % punctuation dots % The following umlaut dot diameter is used inside |exbase.mf|: % dot_diam:=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)); % Several symbols just use |dot_size|. % |heavy_hair| occurs in italic lowercase `e'. Since there are many % accented versions of it, it is declared once here vardef heavy_hair=hround .2[hair,stem] enddef; % |qvair| (quotes vair) for the french quotes vardef qvair=max(round(xvair),fine+epsilon) enddef; % |limit_dist| is used in |put_accent| and |put_cross| % (the value of |u| is changed by |mono_adjust|, hence the global setting) vardef limit_dist=5/4u enddef; % Height of lowercase umlaut, taken from csfonts % Changed again, since the |lowercase_umlaut| macro works differently numeric lc_trema_height#; % lc_trema_height# = min(cap_height#,9/7x_height#+.5max(dot_size#,cap_curve#)); if ebbase=1: %(CMBRIGHT) lc_trema_height# = min(cap_height#,x_height#+ldot_height#); else: lc_trema_height# = min(cap_height#,9/7hi.x_height#+max(dot_size#,cap_curve#)); fi % More parametrisations for accents from csaccent.mf (csfonts): numeric uc_acc_height, uc_acc_height#, lc_acute_height, lc_acute_height#, lc_hachek_height, lc_hachek_height#, accent_u, accent_u#, accent_thin, uc_acc_shift, asc_acc_shift; if unknown circ_weight: circ_weight:=1; fi %uc_acc_height# = cap_height#+asc_height#-x_height#; uc_acc_height# = cap_height#+acc_height#; lc_acute_height# = asc_height#; lc_hachek_height# = hi.x_height#+acc_height#; accent_u# = u#; % unexpanded dimension unit vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef; vardef uc_acc_shift = cap_height - x_height enddef; vardef asc_acc_shift = asc_height - x_height enddef; numeric cap_accent_height, cap_accent_height#; %cap_accent_height# = uc_acc_height#; cap_accent_height# = cap_height# + acc_height#; def pseudo_setup = if monospace: if true_mono: let normal_adjust_fit=mono_adjust_fit; fi fi if ebbase=1:%(CMBRIGHT) idot_diam:=stem'; idot_diam#:=stem'/hppp; udot_diam:=min(stem', hround(.85dot_size)); udot_diam#:=udot_diam/hppp; fi define_whole_blacker_pixels(idot_diam,udot_diam,pdot_diam); define_whole_vertical_pixels(lc_trema_height); define_whole_vertical_pixels(uc_acc_height,lc_acute_height, lc_hachek_height); define_pixels(accent_u); define_whole_vertical_pixels(cap_accent_height); % LAST MINUTE EXTRA FONT SETUP %%% define_pixels prepare_pen if not serifs: fisp#:=1/3[fine#,crisp#]; define_whole_pixels(fisp); prepare_pen fisp; fi if known ogonek_pen#: define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen; fi enddef; endinput; %end of file