% CM-style Sans Serif Caps and Small Caps 10 point
% Based on fonts by Donald Knuth
% By Ariel Barton, 2013/4/21
if unknown cmbase: input cmbase fi

font_identifier:="CMSSCSC"; font_size 10pt#;
% first come parameters used to set the uppercase letters
% (including some for lowercase that aren't actually used)
u#:=21/36pt#;                   % eczz1000 % unit width
width_adj#:=15/36pt#;           % cmss10 % width adjustment for certain characters
serif_fit#:=-7/36pt#;           % cmss10 % extra sidebar near lowercase serifs
cap_serif_fit#:=-10/36pt#;      % cmss10 % extra sidebar near uppercase serifs
letter_fit#:=5/36pt#;           % eczz1000 % extra space added to all sidebars

body_height#:=270/36pt#;        % cmss10 % height of tallest characters
asc_height#:=250/36pt#;         % cmss10 % height of lowercase ascenders
cap_height#:=250/36pt#;         % cmss10 % height of caps
fig_height#:=236/36pt#;         % cmss10 % height of numerals
x_height#:=160/36pt#;           % cmss10 % height of lowercase without ascenders
math_axis#:=90/36pt#;           % cmss10 % axis of symmetry for math symbols
bar_height#:=79/36pt#;          % cmss10 % height of crossbar in lowercase e
comma_depth#:=45/36pt#;         % cmss10 % depth of comma below baseline
desc_depth#:=70/36pt#;          % cmss10 % depth of lowercase descenders

crisp#:=0pt#;                   % cmss10 % diameter of serif corners
tiny#:=0pt#;                    % cmss10 % diameter of rounded corners
fine#:=0pt#;                    % cmss10 % diameter of sharply rounded corners
thin_join#:=17/36pt#;           % cmss10 % width of extrafine details
hair#:=28/36pt#;                % cmss10 % lowercase hairline breadth
stem#:=28/36pt#;                % cmss10 % lowercase stem breadth
curve#:=28/36pt#;               % cmss10 % lowercase curve breadth
ess#:=28/36pt#;                 % cmss10 % breadth in middle of lowercase s
flare#:=25/36pt#;               % cmss10 % diameter of bulbs or breadth of terminals
dot_size#:=30/36pt#;            % cmss10 % diameter of dots
cap_hair#:=28/36pt#;            % cmss10 % uppercase hairline breadth
cap_stem#:=32/36pt#;            % cmss10 % uppercase stem breadth
cap_curve#:=32/36pt#;           % cmss10 % uppercase curve breadth
cap_ess#:=32/36pt#;             % cmss10 % breadth in middle of uppercase s
rule_thickness#:=14.4/36pt#;    % cmss10 % thickness of lines in math symbols

dish#:=0pt#;                    % cmss10 % amount erased at top or bottom of serifs
bracket#:=0pt#;                 % cmss10 % vertical distance from serif base to tangent
jut#:=0pt#;                     % cmss10 % protrusion of lowercase serifs
cap_jut#:=0pt#;                 % cmss10 % protrusion of uppercase serifs
beak_jut#:=0pt#;                % cmss10 % horizontal protrusion of beak serifs
beak#:=0.5/36pt#;               % cmss10 % vertical protrusion of beak serifs
vair#:=22/36pt#;                % cmss10 % vertical diameter of hairlines
notch_cut#:=18/36pt#;           % cmss10 % maximum breadth above or below notches
bar#:=21/36pt#;                 % cmss10 % lowercase bar thickness
slab#:=23/36pt#;                % cmss10 % serif and arm thickness
cap_bar#:=22/36pt#;             % cmss10 % uppercase bar thickness
cap_band#:=20/36pt#;            % cmss10 % uppercase thickness above/below lobes
cap_notch_cut#:=25/36pt#;       % cmss10 % max breadth above/below uppercase notches
serif_drop#:=2/36pt#;           % cmss10 % vertical drop of sloped serifs
stem_corr#:=1/36pt#;            % cmss10 % for small refinements of stem breadth
vair_corr#:=1/36pt#;            % cmss10 % for small refinements of hairline height
apex_corr#:=5/36pt#;            % cmss10 % extra width at diagonal junctions

o#:=8/36pt#;                    % cmss10 % amount of overshoot for curves
apex_o#:=0pt#;                  % cmss10 % amount of overshoot for diagonal junctions

slant:=0;                       % cmss10 % tilt ratio $(\Delta x/\Delta y)$
fudge:=0.96;                    % cmss10 % factor applied to weights of heavy characters
math_spread:=0;                 % cmss10 % extra openness of math symbols
superness:=0.7071;              % cmss10 % parameter for superellipses
superpull:=0.05;                % cmss10 % extra openness inside bowls
beak_darkness:=0;               % cmss10 % fraction of triangle inside beak serifs
ligs:=1;                        % cmcsc10 % level of ligatures to be included

square_dots:=true;              % cmss10 % should dots be square?
hefty:=true;                    % cmss10 % should we try hard not to be overweight?
serifs:=false;                  % cmss10 % should serifs and bulbs be attached?
monospace:=false;               % cmss10 % should all characters have the same width?
variant_g:=false;               % cmss10 % should an italic-style g be used?
low_asterisk:=false;            % cmss10 % should the asterisk be centered at the axis?
math_fitting:=false;            % cmcsc10 % should math-mode spacing be used?


% now come replacements used to set the lowercase caps

lower.u#:=16/36pt#;             % eczz1000 % unit width
lower.width_adj#:=15/36pt#;     % eczz1000 % width adjustment for certain characters
lower.cap_serif_fit#:=-8/36pt#; % eczz1000 % extra sidebar near uppercase serifs
lower.letter_fit#:=2/36pt#;     % eczz1000 % extra space added to all sidebars

lower.body_height#:=200/36pt#;  % eczz1000 % height of tallest characters
lower.cap_height#:=188/36pt#;   % eczz1000 % height of caps
lower.x_height#:=119.7/36pt#;   % eczz1000 % height of lowercase without ascenders
lower.bar_height#:=59/36pt#;    % eczz1000 % height of crossbar in lowercase e
lower.comma_depth#:=33.42/36pt#;% eczz1000 % depth of comma below baseline

lower.flare#:=18.93/36pt#;      % eczz1000 % diameter of bulbs or breadth of terminals
lower.cap_hair#:=23.16/36pt#;   % eczz1000 % uppercase hairline breadth
lower.stem#:=23.51/36pt#;       % eczz1000 % lowercase stem breadth
lower.cap_stem#:=26/36pt#;      % eczz1000 % uppercase stem breadth
lower.cap_curve#:=26.8/36pt#;   % eczz1000 % uppercase curve breadth
lower.cap_ess#:=25.59/36pt#;    % eczz1000 % breadth in middle of uppercase s

lower.cap_jut#:=0pt#;           % eczz1000 % protrusion of uppercase serifs
lower.beak_jut#:=0pt#;          % eczz1000 % horizontal protrusion of beak serifs
lower.beak#:=0.37/36pt#;        % eczz1000 % vertical protrusion of beak serifs
lower.slab#:=19.02/36pt#;       % eczz1000 % serif and arm thickness
lower.cap_bar#:=18.2/36pt#;     % eczz1000 % uppercase bar thickness
lower.cap_band#:=16.54/36pt#;   % eczz1000 % uppercase thickness above/below lobes
lower.cap_notch_cut#:=25/36pt#; % eczz1000 % max breadth above/below uppercase notches

lower.o#:=5/36pt#;              % eczz1000 % amount of overshoot for curves
lower.apex_o#:=0pt#;            % eczz1000 % amount of overshoot for diagonal junctions

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


generate csc      % switch to the driver file
