% Computer Modern Cyrillic Caps and Small Caps
if unknown cmbase: input cmbase fi


font_identifier:="CMCCSC"; font_size design_size * pt#;

% first come parameters used to set the uppercase letters
% (including some for lowercase that aren't actually used)
% These parameters are nearly the same as the Computer Modern Roman
% parameters.

input c-cmr;

u#:=                      % unit width
    ((u#*360pt#) + (design_size * 1))/360pt#;

letter_fit#:=             % extra space added to all sidebars
    ((letter_fit#*360pt#) + (design_size * 5))/360pt#;

ligs:=1;                  % level of ligatures to be included

% now come replacements used to set the lowercase caps

lower.u#:=                % unit width
    (u#*360pt#*16)/(21*360pt#);

lower.width_adj#:=        % width adjustment for certain characters
    width_adj#;

lower.cap_serif_fit#:=    % extra sidebar near uppercase serifs
    (cap_serif_fit#*360pt#*4)/(5*360pt#);

lower.letter_fit#:=       % extra space added to all sidebars
    (letter_fit#*36pt#*24)/(5*360pt#);

lower.body_height#:=      % height of tallest characters
    (body_height#*36pt#*20.0)/(27.0*36pt#);

lower.cap_height#:=       % height of caps
    (cap_height#*36pt#*18.5)/(24.6*36pt#);

lower.x_height#:=         % height of lowercase without ascenders
    (x_height#*116)/(155);

lower.bar_height#:=       % height of crossbar in lowercase e
    (bar_height#*36pt#*65)/(87*36pt#);

lower.comma_depth#:=      % depth of comma below baseline
    (comma_depth#*36pt#*52)/(70*36pt#);

lower.stem#:=             % lowercase stem breadth
    (stem#*360pt#*21)/(25*360pt#);

lower.flare#:=            % diameter of bulbs or breadth of terminals
    (flare#*360pt#*25)/(33*360pt#);

lower.cap_hair#:=         % uppercase hairline breadth
    (cap_hair#*36pt#*91)/(11*360pt#);

lower.cap_stem#:=         % uppercase stem breadth
    (cap_stem#*360pt#*26)/(32*360pt#);

lower.cap_curve#:=        % uppercase curve breadth
    (cap_curve#*360pt#*31)/(37*360pt#);

lower.cap_ess#:=          % breadth in middle of uppercase s
    (cap_ess#*360pt#*28)/(35*360pt#);

lower.cap_jut#:=          % protrusion of uppercase serifs
    (cap_jut#*360pt#*26)/(37*360pt#);

lower.beak_jut#:=         % horizontal protrusion of beak serifs
    (beak_jut#*360pt#*7)/(10*360pt#);

lower.beak#:=             % vertical protrusion of beak serifs
    (beak#*36pt#*52)/(7*360pt#);

lower.slab#:=             % serif and arm thickness
    (slab#*36pt#*91)/(11*360pt#);

lower.cap_bar#:=          % uppercase bar thickness
    (cap_bar#*36pt#*91)/(11*360pt#);

lower.cap_band#:=         % uppercase thickness above/below lobes
    (cap_band#*36pt#*91)/(11*360pt#);

lower.cap_notch_cut#:=    % max breadth above/below uppercase notches
    cap_notch_cut#;

lower.o#:=                % amount of overshoot for curves
    (o#*360pt#*5)/(8*360pt#);

lower.apex_o#:=           % amount of overshoot for diagonal junctions
    (apex_o#*360pt#*4)/(8*360pt#);

lower.fudge:=             % factor applied to weights of heavy characters
    fudge;

generate cyccsc      % switch to the driver file

