summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/cmbright/ebpseudo.mf
blob: 6e50a3255894ab4562cf7e6c7fa52ff3b890827e (plain)
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
% ebpseudo.mf
% [= expseudo.mf, changed by Walter Schmidt, see (CMBR)]
%
% (c) Copyright 1995, 1996, 1997 J"org Knappen
%
% This file is part of the EC Bright fonts version 1.0
%
% 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|).
%
version_check(1,0);  % |version_check| was introduced in dc1.3

% Diameters of dots

numeric idot_diam#,udot_diam#,pdot_diam#;
% (CMBR)
% |idot_diam#| for dots on i and j, must fit stem width
% |udot_diam#| for the umlaut dots
   pdot_diam#:=if monospace: 5/4 fi\\ dot_size#; % punctuation dots


% |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;

% (CMBR)
% Don't compute lc_trema_height from x_height; leave it 
% to the designer to specify ldot_height,
% then compute lc_trema_height:=x_height+ldot_height, but not > cap_height.
% Just the same way as dot_height must be given for uppercase letters!
numeric lc_trema_height#;
lc_trema_height# = min(cap_height#,x_height#+ldot_height#);


% 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#;

% (CMBR)
def pseudo_setup =
  idot_diam:=stem';
  idot_diam#:=stem'/hppp;
  udot_diam:=min(stem', hround(.85dot_size));
  udot_diam#:=udot_diam/hppp;
  define_whole_blacker_pixels(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;