1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
%
% lxpseudo.mf
%
%% Cyrillic font container with T2 encoding beta-support
%
% This file is future part of lxfonts package
% Version 3.4 // Patchlevel=0
% (c) O.Lapko
%
% This package belongs to the public domain 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 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,4); % like |version_check| in ec
% Diameters of dots
%
numeric idot_diam#,udot_diam#,pdot_diam#;
idot_diam#=max(dot_size#,cap_curve#); % dot of letters `i' and `j'
udot_diam#=max(dot_size#,cap_curve#); % umlaut dots
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#));
lc_trema_height# = min(cap_height#,9/7hi.x_height#+max(dot_size#,cap_curve#));
% 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 =
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
|