% Computer Modern Slanted Sans Serif Math Font for Vectors 10 pt % compiled by Karel Hor k if unknown cmbase: input cmbase fi font_identifier:="CMVEE"; %% CMSSDC combined with CMSSI font_size design_size * pt#; % Compute the font construction parameters for the Computer % Modern Sans-Serif family. Some other Computer Modern families % compute their parameters as modifications of these. u#:=(19*(design_size/10))/36pt#; % unit width width_adj#:=(15*(design_size/10))/36pt#; % width adjustment for certain characters serif_fit#:=(-8*(design_size/10))/36pt#; % extra sidebar near lowercase serifs cap_serif_fit#:=(-9*(design_size/10))/36pt#; % extra sidebar near uppercase serifs letter_fit#:=0pt#; % extra space added to all sidebars body_height#:=(270*(design_size/10))/36pt#; % height of tallest characters asc_height#:=(250*(design_size/10))/36pt#; % height of lowercase ascenders cap_height#:=(250*(design_size/10))/36pt#; % height of caps fig_height#:=(250*(design_size/10))/36pt#; % height of numerals x_height#:= % height of lowercase without ascenders (if design_size < 10: (design_size*160) else: (-(2.25815850815*design_size*design_size) + (209.679487179*design_size) - (270.979020979))fi)/360pt#; math_axis#:= % axis of symmetry for math symbols (if design_size < 10: (design_size*90) else: ((-0.0052031302031*design_size*design_size) + (90.11446864*design_size) - (0.62437562437))fi)/360pt#; bar_height#:= % height of crossbar in lowercase e (if design_size < 10: ((design_size*80)-10) elseif design_size < 12: ((design_size*90)-110) else: ((design_size*73.863636363)+83.636363644)fi)/360pt#; comma_depth#:= % depth of comma below baseline (if design_size < 10: ((design_size*40)+50) %elseif design_size < 12: (design_size*45) else: ((0.0624375624375*design_size*design_size) + (43.626373626*design_size) + (7.4925074925))fi)/360pt#; desc_depth#:= % depth of lowercase descenders (if design_size < 10: (design_size*70) else: ((0.0104062604062*design_size*design_size) + (69.771062271*design_size) + (1.24875124875))fi)/360pt#; crisp#:= % diameter of serif corners 0pt#; tiny#:= % diameter of rounded corners 0pt#; fine#:= % diameter of sharply rounded corners 0pt#; thin_join#:=(8*(design_size/10))/36pt#; % width of extrafine details hair#:=(40*(design_size/10))/36pt#; % lowercase hairline breadth stem#:=(40*(design_size/10))/36pt#; % lowercase stem breadth curve#:=(40*(design_size/10))/36pt#; % lowercase curve breadth ess#:=(37*(design_size/10))/36pt#; % breadth in middle of lowercase s flare#:=(31*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals dot_size#:=(38*(design_size/10))/36pt#; % diameter of dots cap_hair#:=(40*(design_size/10))/36pt#; % uppercase hairline breadth cap_stem#:=(44*(design_size/10))/36pt#; % uppercase stem breadth cap_curve#:=(44*(design_size/10))/36pt#; % uppercase curve breadth cap_ess#:=(42*(design_size/10))/36pt#; % breadth in middle of uppercase s rule_thickness#:=(25*(design_size/10))/36pt#; % thickness of lines in math symbols dish#:= % amount erased at top or bottom of serifs 0pt#; bracket#:= % vertical distance from serif base to tangent 0pt#; jut#:= % protrusion of lowercase serifs 0pt#; cap_jut#:= % protrusion of uppercase serifs 0pt#; beak_jut#:= % horizontal protrusion of beak serifs 0pt#; beak#:=(1.5*(design_size/10))/36pt#; % vertical protrusion of beak serifs vair#:=(23*(design_size/10))/36pt#; % vertical diameter of hairlines notch_cut#:=(40*(design_size/10))/36pt#; % maximum breadth above or below notches bar#:=(23*(design_size/10))/36pt#; % lowercase bar thickness slab#:=(31*(design_size/10))/36pt#; % serif and arm thickness cap_bar#:=(29*(design_size/10))/36pt#; % uppercase bar thickness cap_band#:=(27*(design_size/10))/36pt#; % uppercase thickness above/below lobes cap_notch_cut#:=(37*(design_size/10))/36pt#; % max breadth above/below uppercase notches serif_drop#:=(2*(design_size/10))/36pt#; % vertical drop of sloped serifs stem_corr#:=(1*(design_size/10))/36pt#; % for small refinements of stem breadth vair_corr#:=(2*(design_size/10))/36pt#; % for small refinements of hairline height apex_corr#:=(14*(design_size/10))/36pt#; % extra width at diagonal junctions o#:=(7*(design_size/10))/36pt#; % amount of overshoot for curves apex_o#:=0pt#; % amount of overshoot for diagonal junctions slant:=sind12 / cosd12; % tilt ratio $(\Delta x/\Delta y)$ fudge:=.91; % factor applied to weights of heavy characters math_spread:=.3; % extra openness of math symbols superness:=.74; % parameter for superellipses superpull:=1/18; % extra openness inside bowls beak_darkness:=0; % fraction of triangle inside beak serifs ligs:=0; square_dots:= % should dots be square? true; hefty:= % should we try hard not to be overweight? true; serifs:= % should serifs and bulbs be attached? false; monospace:= % should all characters have the same width? false; variant_g:= % should an italic-style g be used? true; low_asterisk:= % should the asterisk be centered at the axis? false; math_fitting:= % should math-mode spacing be used? false; font_coding_scheme:="TeX vectors"; mode_setup; font_setup; input romanu; % upper case (majuscules) input romanla; % lower case (minuscules) with italic a !! input romand; % numerals input greekl input greeku %input romanp; % ampersand, question marks, currency sign %input romspl; % lowercase specials (dotless \i, ligature \ae, etc.) %input punct; % punctuation symbols common to roman and italic text %input accent; % accents common to roman and italic text %if ligs>1: input romlig; fi % letter ligatures %if ligs>0: input comlig; fi % ligatures common with italic text %if ligs<=1: input romsub; fi % substitutes for ligatures font_slant slant; font_x_height x_height#; font_quad 18u#+4letter_fit#; k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#; ligtable "P": "A" kern kk#, "y": "o" kern k#, "e" kern k#, "a" kern k#; % "." kern kk#, "," kern kk#; ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kkk#, else: "o" kern k#, "e" kern k#, "u" kern k#, "r" kern k#, "a" kern k#, "A" kern kk#, fi "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#; ligtable "T": "y" kern if serifs: k# else: kk# fi, "Y": "e" kern kk#, "o" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#; ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#, "V" kern k#, "Y" kern k#; ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#, "d" kern -k#, "c" kern -k#, "q" kern -k#, "t": "y" kern k#, "u": "w" kern k#; ligtable "A": if serifs: "R": fi\\ "t" kern k#, "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#, "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#; ligtable "g": "j" kern -k#; % logjam ligtable "I": "I" kern -k#; % Richard III % there are ligature/kern programs for |"f"| in the {\tt romlig} file % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file bye. slant:=mono_charic#:=0; % the remaining characters will not be slanted currenttransform:=identity yscaled aspect_ratio scaled granularity; skewchar=oct"177"; skew#=.5u#; save comma; period=oct"72"; comma=oct"73"; slash=oct"75"; % non-ASCII positions ligtable "h": skewchar kern -skew#; ligtable oct"027":oct"034": comma kern -u#, period kern -u#, % $\nu:\tau:$ "L":"g":"u":"v":"x": oct"013": oct"026": % $L:g:u:v:x:\alpha:\mu:$ oct"035":oct"173": skewchar kern skew#; % $\upsilon:\imath:$ ligtable "U": comma kern-2u#, period kern-2u#, % $U:$ slash kern-u#, skewchar kern skew#; ligtable "K":oct"011": slash kern-u#, % $K:\it\Psi:$ oct"016":"r": comma kern-u#, period kern-u#, % $\delta:r:$ "D":"c":"e":"o":"s":"y":"z":oct"017": % $D:c:e:o:s:y:z:\epsilon:$ oct"021":oct"023":oct"037": skewchar kern 2skew#; % $\eta:\iota:\chi:$ ligtable oct"007": slash kern-u#, % $\it\Upsilon:$ comma kern-2u#, period kern-2u#, skewchar kern 2skew#; ligtable oct"005":"H": slash kern-u#, % $\it\Pi:H:$ comma kern-u#, period kern-u#, skewchar kern 2skew#; ligtable "N":"X": slash kern -1.5u#, % $N:X:$ "C":"T": slash kern -.5u#, comma kern -u#, period kern -u#, % $C:T:$ "B":"E":"G":"O":"Q":"R":oct"174": % $B:E:G:O:Q:R:\jmath:$ ligtable "M":"S":"Z": slash kern-u#, % $M:S:Z:$ comma kern-u#, period kern-u#, skewchar kern 3skew#; ligtable oct"000":"F":"P": slash kern -u#, % $\it\Gamma:F:P:$ comma kern-2u#, period kern-2u#, skewchar kern 3skew#; ligtable "I":oct"030":oct"040":oct"140":oct"175": % $I:\xi:\psi:\ell:\wp:$ skewchar kern 4skew#; ligtable "A": skewchar kern 5skew#; % $A:$ ligtable "d": "Y" kern u#, "Z" kern-u#, "j" kern-2u#, "f" kern-3u#, % $d:$ oct"001":oct"003": skewchar kern 6skew#; % $\it\Delta:\Lambda:$ ligtable "f": comma kern-u#, period kern-u#, skewchar kern 6skew#; % $f:$ ligtable "J": slash kern-u#, % $J:$ comma kern-2u#, period kern-2u#, skewchar kern 6skew#; ligtable "j":oct"033": comma kern -u#, period kern -u#; % $j:\sigma:$ ligtable "V":"W":"Y":comma kern-3u#, period kern-3u#, % $V:W:Y:$ slash kern-2u#; ligtable slash: oct"001" kern -u#, "A" kern -u#, "M" kern -u#, % $/:$ "N" kern -u#, "Y" kern +u#, "Z" kern -u#; bye.