% Computer Modern Math Symbols 10 point
if unknown cmbase: input cmbase fi

font_identifier:="ULSY"; font_size 10pt#;

u#:=20/36pt#;      % unit width
width_adj#:=0pt#;    % width adjustment for certain characters
serif_fit#:=0pt#;    % extra sidebar near lowercase serifs
cap_serif_fit#:=5/36pt#;  % extra sidebar near uppercase serifs
letter_fit#:=0pt#;    % extra space added to all sidebars

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

crisp#:=8/36pt#;    % diameter of serif corners
tiny#:=8/36pt#;      % diameter of rounded corners
fine#:=7/36pt#;      % diameter of sharply rounded corners
thin_join#:=7/36pt#;    % width of extrafine details
hair#:=9/36pt#;      % lowercase hairline breadth
stem#:=24/36pt#;    % lowercase stem breadth
curve#:=29/36pt#;    % lowercase curve breadth
ess#:=27/36pt#;      % breadth in middle of lowercase s
flare#:=32/36pt#;    % diameter of bulbs or breadth of terminals
dot_size#:=38/36pt#;    % diameter of dots
cap_hair#:=11/36pt#;    % uppercase hairline breadth
cap_stem#:=30/36pt#;    % uppercase stem breadth
cap_curve#:=35/36pt#;    % uppercase curve breadth
cap_ess#:=33/36pt#;    % breadth in middle of uppercase s
rule_thickness#:=.4pt#;    % thickness of lines in math symbols

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

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

slant:=.25;      % tilt ratio $(\Delta x/\Delta y)$
fudge:=1;      % factor applied to weights of heavy characters
math_spread:=0;      % extra openness of math symbols
superness:=1/sqrt2;    % parameter for superellipses
superpull:=1/6;      % extra openness inside bowls
beak_darkness:=11/30;    % fraction of triangle inside beak serifs
ligs:=2;      % level of ligatures to be included

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

% the following font parameters are explained in {\sl The \TeX book}, Appendix G
subs:=7/10;  % subscripts to 10pt will normally be in 7pt type
rth#:=.4pt#;  % assume that rules will come from cmex10
fontdimen 8:  % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
 math_axis#+3.51rth#+54/36pt#+subs*desc_depth#,      % num1
 math_axis#+1.51rth#+30/36pt#,          % num2
 math_axis#+1.51rth#+48/36pt#,          % num3
 -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#),    % denom1
 -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#),    % denom2
 8.99pt#-subs*asc_height#,          % sup1
 8.49pt#-subs*asc_height#,          % sup2
 104/36pt#,              % sup3
 54/36pt#,              % sub1
 -(8.49pt#-2subs*asc_height#-3.1rth#),        % sub2
 subs*asc_height#-36/36pt#,          % sup\_drop
 18/36pt#,              % sub\_drop
 23.9pt#,              % delim1
 10.1pt#,              % delim2
 math_axis#;              % axis\_height

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% generate ulsydv      % switch to the driver file
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The Computer Modern Symbols family (by D. E. Knuth, 1979--1985)

font_coding_scheme:="TeX math symbols";
mode_setup; font_setup;

autorounding:=hair;
% input calu;  % upper case calligraphic alphabet
autorounding:=0;

font_slant slant; font_x_height x_height#;
font_quad 18u# if not monospace:+4letter_fit# fi;
% (The spacing is zero so that \TeX\ will always add the italic correction.)
% (The calling file should give the other math symbol font parameters.)

slant:=mono_charic#:=0;  % the remaining characters will not be slanted
currenttransform:=identity yscaled aspect_ratio scaled granularity;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% input ulsymbol;  % the symbols
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This file defines the symbols of a \TeX\ math symbol font.
% Character codes \0000--\0100 and \0133--\0177 are generated.
% Changes til 20 February 1989 included

% (Improvements to the author's original characters were worked out in 1982
% by Ronald F. Whitney and other members of
% the American Mathematical Society.)

% Italic corrections have not been computed for most of these characters,
% since they are generally not slanted.

odplus=oct"010";
blitza=oct"011";
blitzb=oct"012";
blitzc=oct"013";
blitzd=oct"014";
blitze=oct"015";
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% input ulsym;  % symbols common to other fonts
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This file generates the following characters when their codes are known:
% Changes til 20 February 1989 included
% odplus,blitza,...,blitze

iff known odplus: cmchar "Circle-plus operator";
beginarithchar(odplus); pickup light_rule.nib; autorounded;
lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
y9=math_axis;x9=x8;
circle_points; draw_circle;  % circle
draw z2--z6; draw z9--z8;  % bar and stem
labels(1,2,3,4,5,6,7,8); endchar;

iff known blitza: cmchar "WIDERSPRUCHSBLITZA";
beginarithchar(blitza);
f:=1.2;
g:=1.2;
x0=w/2;y0=1.5math_axis;
x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
x3=x2;y3=y0+f*0.75math_axis;
x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
z7=0.5[z5,z6];
z8=(y6-y7,x7-x6)+z7;
z9=(y7-y6,x6-x7)+z7;
z10=2[z5,z6];
z11=0.5[z8,z10];z12=0.4[z11,z6];
z13=0.5[z9,z10];z14=0.4[z13,z6];
penpos4(g*f*1pt,45);
penpos3(g*f*0.75pt,45);
penpos2(g*f*0.9pt,60);
penpos0(g*f*0.9pt,60);
penpos1(g*f*0.9pt,60);
penpos5(g*f*0.30pt,30);
penpos6(g*f*0.20pt,0);
fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
endchar;

iff known blitzb: cmchar "WIDERSPRUCHSBLITZB";
beginarithchar(blitzb);
f:=1.3;
g:=1.2;
x0=w/2;y0=1.5math_axis;
x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
x3=x2;y3=y0+f*0.75math_axis;
x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
z7=0.5[z5,z6];
z8=(y6-y7,x7-x6)+z7;
z9=(y7-y6,x6-x7)+z7;
z10=2[z5,z6];
z11=0.5[z8,z10];z12=0.4[z11,z6];
z13=0.5[z9,z10];z14=0.4[z13,z6];
penpos4(g*f*1pt,45);
penpos3(g*f*0.75pt,45);
penpos2(g*f*0.9pt,60);
penpos0(g*f*0.9pt,60);
penpos1(g*f*0.9pt,60);
penpos5(g*f*0.30pt,30);
penpos6(g*f*0.20pt,0);
fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
endchar;

iff known blitzc: cmchar "WIDERSPRUCHSBLITZC";
beginarithchar(blitzc);
f:=1.4;
g:=1.2;
x0=w/2;y0=1.5math_axis;
x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
x3=x2;y3=y0+f*0.75math_axis;
x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
z7=0.5[z5,z6];
z8=(y6-y7,x7-x6)+z7;
z9=(y7-y6,x6-x7)+z7;
z10=2[z5,z6];
z11=0.5[z8,z10];z12=0.4[z11,z6];
z13=0.5[z9,z10];z14=0.4[z13,z6];
penpos4(g*f*1pt,45);
penpos3(g*f*0.75pt,45);
penpos2(g*f*0.9pt,60);
penpos0(g*f*0.9pt,60);
penpos1(g*f*0.9pt,60);
penpos5(g*f*0.30pt,30);
penpos6(g*f*0.20pt,0);
fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
endchar;

iff known blitzd: cmchar "WIDERSPRUCHSBLITZD";
beginarithchar(blitzd);
f:=1.5;
g:=1.2;
x0=w/2;y0=1.5math_axis;
x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
x3=x2;y3=y0+f*0.75math_axis;
x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
z7=0.5[z5,z6];
z8=(y6-y7,x7-x6)+z7;
z9=(y7-y6,x6-x7)+z7;
z10=2[z5,z6];
z11=0.5[z8,z10];z12=0.4[z11,z6];
z13=0.5[z9,z10];z14=0.4[z13,z6];
penpos4(g*f*1pt,45);
penpos3(g*f*0.75pt,45);
penpos2(g*f*0.9pt,60);
penpos0(g*f*0.9pt,60);
penpos1(g*f*0.9pt,60);
penpos5(g*f*0.30pt,30);
penpos6(g*f*0.20pt,0);
fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
endchar;

iff known blitze: cmchar "WIDERSPRUCHSBLITZE";
beginarithchar(blitze);
f:=1.6;
g:=1.2;
x0=w/2;y0=1.5math_axis;
x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
x3=x2;y3=y0+f*0.75math_axis;
x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
z7=0.5[z5,z6];
z8=(y6-y7,x7-x6)+z7;
z9=(y7-y6,x6-x7)+z7;
z10=2[z5,z6];
z11=0.5[z8,z10];z12=0.4[z11,z6];
z13=0.5[z9,z10];z14=0.4[z13,z6];
penpos4(g*f*1pt,45);
penpos3(g*f*0.75pt,45);
penpos2(g*f*0.9pt,60);
penpos0(g*f*0.9pt,60);
penpos1(g*f*0.9pt,60);
penpos5(g*f*0.30pt,30);
penpos6(g*f*0.20pt,0);
fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
endchar;

bye.
