diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/vicentino/kraml |
Initial commit
Diffstat (limited to 'fonts/vicentino/kraml')
65 files changed, 3496 insertions, 0 deletions
diff --git a/fonts/vicentino/kraml/local.mf b/fonts/vicentino/kraml/local.mf new file mode 100644 index 0000000000..92094ec0ad --- /dev/null +++ b/fonts/vicentino/kraml/local.mf @@ -0,0 +1,160 @@ +% +% local.mf +% + +% +% Define modes +% +mode_def hplaser = % HP LaserJet+ + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=300; + blacker:=0; % The LaserJet is black enough + fillin:=.2; % and it tends to fill in diagonals + o_correction:=.6; % + enddef; + +mode_def kyocera = % Kyocera F-1010 + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=300; + blacker:=0; % The Kyocera is black enough + fillin:=.2; % and it tends to fill in diagonals + o_correction:=.6; % + enddef; + +mode_def epsonfx = % Epson FX-80 + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=240; + blacker:=0; % don't make the pens any blacker + fillin:=0; % and don't compensate for fillin + o_correction:=.2; % but suppress most overshoots + aspect_ratio:=9/10; % 216 dots/inch vertical + enddef; + +mode_def epsonmx = % Epson MX-80 + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=120; + blacker:=0; % don't make the pens any blacker + fillin:=0; % and don't compensate for fillin + o_correction:=.2; % but suppress most overshoots + aspect_ratio:=9/5; % 216 dots/inch vertical + enddef; + +mode_def lqhires = % NEC-P6 high resolution (360x360) + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=360; + blacker:=0; % don't make the pens any blacker + fillin:=0; % and don't compensate for fillin + o_correction:=.4; % but suppress most overshoots + enddef; + +mode_def lqmedres = % LQ-1500, NEC-P6 medium resolution (360x180) + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=360; + blacker:=0; % 0.3 avoids `holes' + fillin:=0; % and don't compensate for fillin + o_correction:=.1; % but suppress most overshoots + aspect_ratio:=1/2; % 180 dots/inch vertical + enddef; + +mode_def lqmedresl = % LQ-1500, NEC-P6 medium resolution (180x360) + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=180; + blacker:=0; % 0.3 avoids `holes' + fillin:=0; % and don't compensate for fillin + o_correction:=.1; % but suppress most overshoots + aspect_ratio:=2; % 360 dots/inch vertical + enddef; + +mode_def lqlores = % LQ-1500, NEC-P6 low resolution (180x180) + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=180; + blacker:=0; % don't make the pens any blacker + fillin:=0; % and don't compensate for fillin + o_correction:=.1; % but suppress most overshoots + enddef; + +mode_def itoh = % C.ITOH 8510A (160x144) + proofing:=0; % no, we're not making proofs + fontmaking:=1; % yes, we are making a font + tracingtitles:=0; % no, don't show titles in the log + pixels_per_inch:=160; + blacker:=0; % don't make the pens any blacker + fillin:=0; % and don't compensate for fillin + o_correction:=.1; % but suppress most overshoots + aspect_ratio:=9/10; % 144 dots/inch vertical + enddef; + +% +% Select default mode +% +localfont:=hplaser; + + +% +% Here are macros for Xerox-world font info: +% + +def font_family expr s = % string s names the font family, e.g., "CMR" + headerbyte 49: BCPL_string(s,20); + special "identifier "&s enddef; +def coding_scheme expr s = % string s names the scheme, e.g. "TEX TEXT" + headerbyte 9: BCPL_string(s,40); + special "codingscheme "&s enddef; +def font_face_byte expr x = % integer x gives the family member number, + headerbyte 72: x; % which should be between 0 and 255 + special "fontfacebyte"; numspecial x enddef; + +def BCPL_string(expr s,n)= % string s becomes an n-byte BCPL string + for l:=if length(s)>=n: n-1 else: length(s) fi: l + for k:=1 upto l: , substring (k-1,k) of s endfor + for k:=l+2 upto n: , 0 endfor endfor enddef; + +Xerox_world:=1; % users can say `if known Xerox_world:...fi' + +inner end; +def bye= + if fontmaking>0: font_family font_identifier_; + coding_scheme font_coding_scheme_; + font_face_byte max(0,254-round 2designsize); fi + tracingstats:=1; % at least for now we want this + end + enddef; + +outer bye,end; + + +% +% Patch plain base (kill bugs) +% +def drawdot expr z = if unknown currentpen_path: def_pen_path_ fi + addto_currentpicture contour + currentpen_path shifted (z.t_) withpen penspeck enddef; + +% +% This has been fixed in plain 1.7 +% +%vardef cutoff(expr z,theta) = +% interim autorounding := 0; interim smoothing := 0; +% addto pic_ doublepath z.t_ withpen currentpen; +% addto pic_ contour +% (cut_ scaled (1+max(pen_lft,pen_rt,pen_top/aspect_ratio,pen_bot/aspect_ratio)) +% rotated theta shifted z.t_); +% cull pic_ keeping (2,2) withweight -default_wt_; +% addto currentpicture also pic_; +% pic_:=nullpicture enddef; diff --git a/fonts/vicentino/kraml/read.me b/fonts/vicentino/kraml/read.me new file mode 100644 index 0000000000..c80d7e0574 --- /dev/null +++ b/fonts/vicentino/kraml/read.me @@ -0,0 +1,30 @@ +=========================================================================== + Copyright Notice for VICENTINO fonts +=========================================================================== + +Dies ist eine vorl„ufige Version meiner Schrift "Vicentino". Diese +Schrift darf kopiert und benutzt werden, auáer fr kommerziellen +Gebrauch. Dies bezieht sich auf die Darstellung der Schrift in Form +von Metafont-Sourcecode, TeX Font Metrics und Pixeldateien. Die +Umwandlung in andere Fontformate bzw Fontprogramme (zB Postscript oder +TrueType) ist nur mit meiner ausdrcklichen Erlaubnis gestattet. + +This is a preliminary version of my "Vicentino" fonts. They may be used +and copied freely except for commercial use. This is with respect to the +representation of the fonts as Metafont source code, TeX Font Metrics and +pixel files (bitmaps). The conversion to other font formats or font programs +(e.g. Postscript or TrueType) may not be done without my explicit +permission. + +Willibald Kraml, 1992 +=========================================================================== + +Da dies nur eine vorl„ufige Version ist, behalte ich mir Žnderungen +aller Art fr zuknftige Versionen vor. Fr Kritik und Anregungen bin ich +dankbar. + +Willibald Kraml +Degengasse 27/16 +A-1160 Wien +e-mail: kraml@kpmg.co.at oder: a7511daa@awiuni11 (earn) + diff --git a/fonts/vicentino/kraml/readme.2 b/fonts/vicentino/kraml/readme.2 new file mode 100644 index 0000000000..79c82bb736 --- /dev/null +++ b/fonts/vicentino/kraml/readme.2 @@ -0,0 +1,47 @@ +Folgende Vicentino Fonts sind hier enthalten: +============================================= +Diverse Aenderungen, 31.03.92 Jobst-Hartmut Lueddecke + + +VCC Vicentino Corsiva, Design size = 10 pt, nur Laserjet +VCC10 Vicentino Corsiva, Design size = 10 pt, alle Modi, jhl +VCC14 Vicentino Corsiva, Design size = 14 pt, alle Modi, jhl +VCCB Vicentino Corsiva Bold, Design size = 10 pt, nur Laserjet +VCCB10 Vicentino Corsiva Bold, Design size = 10 pt, alle Modi, jhl +VCCB14 Vicentino Corsiva Bold, Design size = 14 pt, alle Modi, jhl + +VCM Vicentino Modern, Design size = 10 pt, nur Laserjet +VCM10 Vicentino Modern, Design size = 10 pt, alle Modi, jhl +VCM14 Vicentino Modern, Design size = 14 pt, alle Modi, jhl +VCMB Vicentino Modern Bold, Design size = 10 pt, nur Laserjet +VCMB10 Vicentino Modern Bold, Design size = 10 pt, alle Modi, jhl +VCMB14 Vicentino Modern Bold, Design size = 14 pt, alle Modi, jhl + +VCT Vicentino Twist, Design size = 10 pt, nur Laserjet +VCT10 Vicentino Twist, Design size = 10 pt, alle Modi, jhl +VCT14 Vicentino Twist, Design size = 14 pt, alle Modi, jhl +VCTB Vicentino Twist Bold, Design size = 10 pt, nur Laserjet +VCTB10 Vicentino Twist Bold, Design size = 10 pt, alle Modi, jhl +VCTB14 Vicentino Twist Bold, Design size = 14 pt, alle Modi, jhl + +VCCA Swash characters for Vicentino, Design size = 10 pt, nur Laserjet +VCCA10 Swash characters for Vicentino, Design size = 10 pt, alle Modi, jhl +VCCA14 Swash characters for Vicentino, Design size = 14 pt, alle Modi, jhl +VCCBA bold, Design size = 10 pt, nur Laserjet +VCCBA10 bold, Design size = 10 pt, alle Modi, jhl +VCCBA14 bold, Design size = 14 pt, alle Modi, jhl + +VCMA Swash for Vicentino Modern, Design size = 10 pt, nur Laserjet +VCMA10 Swash for Vicentino Modern, Design size = 10 pt, alle Modi, jhl +VCMA14 Swash for Vicentino Modern, Design size = 14 pt, alle Modi, jhl +VCMBA bold, Design size = 10 pt, nur Laserjet +VCMBA10 bold, Design size = 10 pt, alle Modi, jhl +VCMBA14 bold, Design size = 14 pt, alle Modi, jhl + +VCTA Swash for Vicentino Twist, Design size = 10 pt, nur Laserjet +VCTA10 Swash for Vicentino Twist, Design size = 10 pt, alle Modi, jhl +VCTA14 Swash for Vicentino Twist, Design size = 14 pt, alle Modi, jhl +VCTBA bold, Design size = 10 pt, nur Laserjet +VCTBA10 bold, Design size = 10 pt, alle Modi, jhl +VCTBA14 bold, Design size = 14 pt, alle Modi, jhl + diff --git a/fonts/vicentino/kraml/vcaltdri.mf b/fonts/vicentino/kraml/vcaltdri.mf new file mode 100644 index 0000000000..ca066a6895 --- /dev/null +++ b/fonts/vicentino/kraml/vcaltdri.mf @@ -0,0 +1,13 @@ +% driver file for vicentino fonts (alternative character set): +% input all character sources + +input vcdefs; +%input vcupper; +input vcaltlow; +input vcbigdig; +input vcaltpun; +% ligatures & kerning +input vcaltlig; +input vcaltlgt; +%that's it! + diff --git a/fonts/vicentino/kraml/vcaltlgt.mf b/fonts/vicentino/kraml/vcaltlgt.mf new file mode 100644 index 0000000000..cbb500401b --- /dev/null +++ b/fonts/vicentino/kraml/vcaltlgt.mf @@ -0,0 +1,12 @@ +% VCALTLGT - ligature tables & kerning for vicentino fonts (alternative +% character set) +% w. kraml, 1991, 92 + +%ligtable "f" : "i" =: 12, "f" =: 11, "t" kern -1/8sw#; +ligtable "f" : "f" kern -.3sw#, "u" kern -1/6sw#; +ligtable "c" : "t" =: 12; +ligtable "s" : "t" =: 11, "p" =: 13; +%ligtable "t" : "t" kern -1/8sw#; +%ligtable "'" : "'" =: 34; +%ligtable "`" : "`" =: 92; + diff --git a/fonts/vicentino/kraml/vcaltlig.mf b/fonts/vicentino/kraml/vcaltlig.mf new file mode 100644 index 0000000000..fea4577bb1 --- /dev/null +++ b/fonts/vicentino/kraml/vcaltlig.mf @@ -0,0 +1,90 @@ +% vcaltlig.mf ligatures for vicentino fonts +% kraml 1992 +slant := lowerslant; +currenttransform := identity slanted slant; + + +beginchar(char11, 2sw#+1.5tw#, xh#, 0); "the st ligature"; +pickup lower_pen; +x1=x2=.5sw+.5tw; top.y1=h; bot.y2=0; +x3=.75tw; rt.x4=sw+tw; y3=.76h; y4=.3h; +x5=sw+.3tw; lft.x6=.6s; y5=y3+.55th; y6=y4-3/4th; +path trial,p; +trial = z3{down}..tension1.1..{down}z4; +z7 = trial intersectionpoint (z6{up}..{up}z5); +p = z7..tension1.3..z5..z1{left}..z3{down}..tension1.1.. +z4{down}..z2{left}..z6..tension2.5..cycle; +draw subpath if modern:(.77,6.11) else: (.75,6.23) fi of p; +% t part +x11=x12=w-1.26tw; rt.x13=w; y11=h+2.5th; bot.y12=0; y13=th; +y14=y15=xh-th; lft.x14=sw+1tw; x15=x13; +path stem; +stem=z11{curl0}..tension7..z12..tension2..{dir40}z13; +draw if modern: subpath(0,1.6) of fi stem; +draw z14--z15; +% connection +x19=.66sw; y19=h+th; +path conn; conn=subpath(0,1) of p & z5{up}...z19{dir79} + ..tension.9 ..{dir59}z11; +if not.modern: pickup cap_serif_pen; fi +draw if modern: subpath(1.1,2.93) else: subpath(1.15,2.8) fi of conn; +labels(19); +end_char; + +beginchar(char12, 2sw#+1.5tw#, xh#, 0); "the ct ligature"; +pickup lower_pen; +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.5s; +rt x1=2axis-.5s; lft x3=.5s; +x2-dev=x4+dev=axis; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +rt.x5+.25s=rt.x6=sw+tw-.2s; y5=3/4h; y6=th; +path p,q ; p= superellipse(z1,z2,z3,z4,0.73); +q= z5..{left}z2 & subpath(2,6) of p & z4{right}..{dir36}z6; +draw q; +% t part +x11=x12=w-1.26tw; rt.x13=w; y11=h+2.5th; bot.y12=0; y13=th; +y14=y15=xh-th; lft.x14=sw+1tw; x15=x13; +path stem; +stem=z11{curl0}..tension7..z12..tension2..{dir40}z13; +draw if modern: subpath(0,1.6) of fi stem; +draw z14--z15; +% connection +x19=.72sw; y19=h+th; +path conn; conn=z2{left}..z19{dir79} + ..tension.9 ..{dir59}z11; +if not.modern: pickup cap_serif_pen; fi +draw if modern: subpath(0.1,1.93) else: subpath(0.1,1.8) fi of conn; +labels(19); +end_char; + +beginchar(char13, 3sw#+tw#, xh#, 0); "the sp ligature"; +pickup lower_pen; +x1=x2=.5sw+.5tw; top.y1=h; bot.y2=0; +x3=.75tw; rt.x4=sw+tw; y3=.76h; y4=.3h; +x5=sw+.3tw; lft.x6=.6s; y5=y3+.55th; y6=y4-3/4th; +path trial,p; +trial = z3{down}..tension1.1..{down}z4; +z7 = trial intersectionpoint (z6{up}..{up}z5); +p = z7..tension1.3..z5..z1{left}..z3{down}..tension1.1.. +z4{down}..z2{left}..z6..tension2.5..cycle; +draw subpath if modern:(.77,6.11) else: (.75,6.23) fi of p; +% p part +x11=x12=w-sw-tw; y11=h+2.55th; bot.y12=-dh+1.3th; +lft.x13=w-sw-2.25tw; y13=h-th; top.y14=h; x14=x15=w-.5sw-tw; bot.y15=0; +rt.x14'=w-.5s; y14'=.525h; +rt.x12'=lft.x13; bot.y12'=-dh; +path stem, bowl; stem = z11{dir240}..tension3.3..{dir255}z12..{dir170}z12' ; +z16 = stem horintersection 1.25th; +draw if modern: subpath(0,1.8) of fi stem; +bowl=z13{dir35}...z14{right}..z14'{down}..z15{left}..{dir105}z16; +draw if modern: subpath(0.15,4) of fi bowl; +% connection +x19=.66sw; y19=h+th; +if not.modern: pickup cap_serif_pen;fi +path conn; conn=subpath(0,1) of p & z5{up}...z19{dir79} + ..tension.9..{dir59}z11; +draw if modern: subpath(1.1,2.93) else: subpath(1.15,2.8) fi of conn; +labels(19); +end_char; + diff --git a/fonts/vicentino/kraml/vcaltlow.mf b/fonts/vicentino/kraml/vcaltlow.mf new file mode 100644 index 0000000000..dab978409b --- /dev/null +++ b/fonts/vicentino/kraml/vcaltlow.mf @@ -0,0 +1,333 @@ +% VCALTLOW - lower characters for vicentino font (alternative set) +% w. kraml, 1991, 92 + +% lower case: +slant := lowerslant; +currenttransform := identity slanted slant; + +beginchar("a", 2tw#+sw#+1.5sw#, xh#, 0); "the letter a"; +pickup lower_pen; +x1=x2=w-1.5sw-tw; top.y1=top.y5=h; +rt.x3=w-.75s; y3=3.5th; bot.y6=bot.y2=0; +lft x5=1.5tw; lft x6=1.25tw; +path rightstem; rightstem = z1---z2{right}...{dir126}z3; +z4 = rightstem horintersection .7h; +draw if modern: subpath(0,1.9) of fi rightstem; +draw z4..tension3..z5..tension2.5..z6{right}..tension1.75..{up}z4; +end_char; + +beginchar("b", 2tw#+sw#, ah#, 0); "the letter b"; +pickup lower_pen; +x2=x3=tw+.25s; x2-x1=halfser; y2=3/4h; bot.y3=1.667th; +z2-z1=whatever*dir40; +top.y2'=h; x2'=x2+4/3tw; +path stem, loop; stem = z2'{dir170}..z2{down}..{dir275}z3; +z4 = stem horintersection y1; +draw if modern: subpath(.1,2) of fi stem; +x5=x8=w/2; top.y5=xh; bot.y8=0; +z6 = stem horintersection xh/2; +y7=y6; rt.x7=w-2/3s; +loop = z6{up}..z5..tension.9..z7..z8..{dir95}z3; +draw loop; +end_char; + +beginchar("c", sw#+tw#+1.5sw#, xh#, 0); "the letter c"; +pickup lower_pen; +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.5s; +rt x1=2axis-.5s; lft x3=.5s; +x2-dev=x4+dev=axis; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +rt.x5=w-1.5sw; rt.x6=w-.25s; y5=3/4h; y6=3.5th; +path p,q ; p= superellipse(z1,z2,z3,z4,0.73); +q= z5..{left}z2 & subpath(2,6) of p & z4{right}...{dir126}z6; +draw q; +end_char; + +beginchar("d", sw#+tw#+s#, ah#, 0); "the letter d"; +pickup lower_pen; +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.5s; +rt x1=2axis-.5s; lft x3=.5s; +x2-dev=x4+dev=axis; +y1-dev=y3+dev=.52xh; +top.y2=xh; bot y4=0; +x5=.41w; top.y5=h; lft.x6=0; y6=h-1.25th; +path p,q ; p= superellipse(z1,z2,z3,z4,0.73); +q=z1{up}...{left}z5..{dir216}z6; +draw p & q; +end_char; + +beginchar("e", sw#+tw#+1.5sw#, xh#, 0); "the letter e"; +pickup lower_pen; +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.75s; +rt x1=2axis-.5s; lft x3=.5s; +x2-dev=x4=axis; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +rt.x5=w-1.5sw; rt.x6=w-.25s; y5=3/4h; y6=3.5th; +path p,q ; p= superellipse(z1,z2,z3,z4,0.73); +z7 = (subpath(2,6) of p) horintersection .425h; +q= z7{dir18}..tension1.25.. + z5..{left}z2 & subpath(2,6) of p & z4{right}...{dir126}z6; +draw if modern: subpath(0,6.925) of fi q; +end_char; + +beginchar("f", 3.25tw#, ah#, dh#); "the letter f"; +pickup lower_pen; +x2-.8s=x3+.8s=w/2; x1=w+1sw; x4=-1.25sw; +top.y2+2s=top.y1+3s=h; bot.y3=-dh+2s; bot.y4=-dh+s; +y5=y6=xh-th; lft.x5=0.25s; x6=w; +path stem; +stem = z1{dir105}..tension1.2..z2..tension 2.25.. + z3{dir240}..if modern: else: {dir145}fi z4; +draw if modern: subpath(0,2.7) of fi stem; +draw z5--z6; +end_char; + +beginchar("g", sw#+tw#+s#, xh#, dh#); "the letter g"; +pickup lower_pen; +x1=w/2+2/3s; x3=w/2-2/3s; x2=w-x4=.9tw; +top.y1=h; y2=y4=.63h; y3=.24h; +draw z1..z2..z3; +draw z1..z4..z3; +x8=x3-.5s; x5=.4[x2,x3]; rt.x7=w-.4s; +bot.y8=-dh; bot.y5=.25s; y7=y8+1.65th; +path p; +p =z3..z5{down}..{down}z7..{left}z8; +draw p; +z6 = p horintersection 0; +lft.x9=0; y9=y8+1.25th; +draw z8{left}..z9{up}..{dir30}z6; +end_char; + +beginchar("h", 2tw#+sw#, ah#, 0); "the letter h"; +pickup lower_pen; +x2=x3=tw+.25s; x2-x1=halfser; y2=3/4h; bot.y3=0; +z2-z1=whatever*dir40; +top.y2'=h; x2'=x2+4/3tw; +path stem, loop; stem = z2'{dir170}..z2{down}..{dir275}z3; +z4 = stem horintersection y1; +draw if modern: subpath(.1,2) of fi stem; +x5=w/2; top.y5=xh; bot.y8=0; x8=x5+.6tw; +z6 = stem horintersection xh/2; +y7=y6; rt.x7=w-2/3s; +x9=x5+.8s; y9=.66th; +loop = z6{up}..z5..tension.9..z7{down}..z8..z9; +draw if modern: subpath(0,3.2) of fi loop; +end_char; + +beginchar("k", 2tw#+sw#, ah#, 0); "the letter k"; +pickup lower_pen; +x2=x3=tw; x2-x1=halfser; y2=3/4h; bot.y3=0; +z2-z1=whatever*dir40; +top.y2'=h; x2'=x2+4/3tw; +path stem, loop; stem = z2'{dir170}..z2{down}..{dir275}z3; +z4 = stem horintersection y1; +draw if modern: subpath(.1,2) of fi stem; +x5=w/2 + .5s; top.y5=xh; +x5'=w-tw; y5'= if modern: .8xh else: .7xh fi; +z6 = stem horintersection 0.45xh; +loop = z6{up}..z5..z5' + if modern:{dir220} else:{dir245} fi + ..tension.825..{dir275}z3; +draw if modern: subpath(1.5,3) of fi loop; +z7 = loop horintersection 7/16xh; +bot.y8=-2th; top.y9=-s; rt.x9=w+2tw; lft.x8=w; +draw z7..tension1.75..z8..z9; +end_char; + +beginchar("l", 2tw#+s#, ah#, 0); "the letter l"; +pickup lower_pen; +x2=x3=w/2; x2-x1=halfser; rt x4=w; y2=3/4h; bot y3=0; y4=th; +z2-z1=whatever*dir40; +top.y2'=h; x2'=x2+4/3tw; +path stem; +stem = z2'{dir170}..z2{down}..tension7..z3..tension2..{dir40}z4; +draw if modern: subpath(0.1,2.2) of fi stem; +end_char; + +beginchar("m", 2tw#+2sw#+1.5sw#, xh#, 0); "the letter m"; +pickup lower_pen; +x2=x3=tw; x4=x5=tw+sw; x6=x7=w-tw-1.5sw; lft.x1=0; rt.x8=w-.75s; +top.y2=top.y4=top.y6=h; bot.y3=bot.y5=bot.y7=0; +y1=h-th; y8=3.5th; +path lstem, mstem, rstem; +lstem=z1{dir40}..tension2..z2..tension7..{curl0}z3; +mstem=z3{dir86}..tension1.9..z4{dir-30}..tension6..{curl0}z5; +rstem=z5{dir86}..tension1.9..z6{dir-30}..tension6..z7{right}...{dir126}z8; +draw if modern: subpath(0.8,2) of fi lstem; +draw mstem; +draw if modern: subpath(0,2.9) of fi rstem; +end_char; + +beginchar("n", 2tw#+sw#+1.5sw#, xh#, 0); "the letter n"; +pickup lower_pen; +x2=x3=tw; x4=x5=w-1.5sw-tw; lft.x1=.1s; rt.x6=w-.75s; +top.y2=top.y4=h; bot.y3=bot.y5=0; +y1=h-th; y6=3.5th; +path lstem, rstem; +lstem = z1{dir40}..tension2..z2..tension7..{curl0}z3; +draw if modern: subpath(.8,2) of fi lstem; +rstem = z3{dir86}..tension1.9..z4{dir-30}..tension6..z5{right}...{dir126}z6; +draw if modern: subpath(0,2.9) of fi rstem; +end_char; + +beginchar("p", 2tw#+sw#, xh#, dh#); "the letter p"; +pickup lower_pen; +x1=x2=tw; y1=h+s; bot.y2=-dh+1.3th; +lft.x3=0; y3=h-th; top.y4=h; x4=x5=.52w; bot.y5=0; +rt.x4'=w-.5s; y4'=.525h; +rt.x2'=0; bot.y2'=-dh; +path stem, bowl; stem = z1{down}..tension2.3..{dir255}z2..{dir170}z2' ; +z6 = stem horintersection 1.25th; +draw if modern: subpath(0,1.8) of fi stem; +bowl=z3{dir35}...z4{right}..z4'{down}..z5{left}..{dir105}z6; +draw if modern: subpath(0.15,4) of fi bowl; +labels(2', 4'); +end_char; + +beginchar("q", 2tw#+sw#, xh#, dh#); "the letter q"; +pickup lower_pen; +x1=w-tw; top.y1+.25th=top.y5=h; +bot.y6=0; +x2=1.2tw; bot.y2=-dh; +x2''=w+1.55tw; x2'=.5[x2,x2'']; +y2'-.25s=y2''-.75s=y2; +lft.x5=1.25tw; lft.x6=tw; +path rightstem; +rightstem = z1{dir-85}..tension.8..{dir220}z2 & z2{dir40}..tension.8..z2' + ..tension.8..{dir40}z2'' ; +draw if modern: subpath(0,2.85) of fi rightstem; +draw z1..tension2.1..z5..tension2.2..z6{right}..tension1.7..{up}z1; +labels(2',2''); +end_char; + +beginchar("r", tw#+sw#+.5s#+1.5sw#, xh#, 0); "r"; +pickup lower_pen; +x2=x3=tw; bot y3=0; top.y2=top.y5=h; +lft.x1=0; y1=h-th; top.y4=h+1/3s; rt.x4=w-.75s; x5=w-.7tw-1.5sw; +x4'=.22[x5,x4]; y4'=h-2.2th; +path lstem, rstem; +lstem=z1{dir40}..tension2..z2..tension7..{curl0}z3; +rstem=z3{dir86}..tension2..z5{dir-30}..z4'{dir-10}..{dir126}z4; +draw if modern: subpath(0.8,2) of fi lstem; +draw if modern: subpath(0,2.95) of fi rstem; +labels(4'); +end_char; + +beginchar("s", 2.5tw#, ah#, dh#); "the letter s (long form)"; +pickup lower_pen; +x2-.8s=x3+.8s=w/2; x1=w+.42tw; rt.x4=-.4tw; +top.y2+.25s=top.y1+.5s=h; bot.y3=-dh+s; bot.y4=-dh; +path stem; +stem = z1{dir105}..tension1.2..z2..tension 2.25.. + z3{dir240}..if modern: else: {dir145}fi z4; +draw if modern: subpath(0,2.8) of fi stem; +end_char; + +beginchar("t", 2.5tw#+1.5sw#, xh#, 0); "the letter t"; +pickup lower_pen; +x1=x2=1.25tw; rt.x3=w-.75s; y1=h+s; bot.y2=0; y3=3.5th; +y4=y5=xh-th; lft.x4=0.25s; x5=2.5tw; +path stem; +stem=z1{curl0}..tension9..z2{right}...{dir126}z3; +draw if modern: subpath(0,1.9) of fi stem; +draw z4--z5; +end_char; + +beginchar("u", 2tw#+sw#+sw#, xh#, 0); "the letter u"; +pickup lower_pen; +x2=x3-.5s=tw+sw; x4=x5=w-tw; lft.x1=0.5s; rt.x6=w; +top.y2=top.y4=h; bot.y3=bot.y5=0; +y1=h-2.5th; y6=th; +path lstem, rstem; +lstem=z1{dir126}...z2{right}..tension5.5..z3{right}..tension1.5..{dir86}z4; +rstem=z4{curl0}..tension8..z5..tension1.5..{dir40}z6; +draw if modern: subpath(.07,3) of fi lstem; +draw if modern: subpath(0,1.2) of fi rstem; +end_char; + +beginchar("v", 2tw#+sw#+sw#, xh#, 0); "the letter v"; +pickup lower_pen; +x2=tw+sw; x4-x5=2/3tw; +lft.x1=0.5s; rt.x4=w-2/3tw; x3=.7[x1,x4]; +top.y2=top.y4=h; y1=h-2.5th; y5=h-th; bot.y3=0; +path stem; +stem = z1{dir126}...z2{right}..tension6.7.. + z3{right}..tension2..z4{left}..tension1.5..z5; +draw if modern: subpath(.07,3.2) of fi stem; +end_char; + +beginchar("w", 3tw#+2sw#-2s#+sw#, xh#, 0); "the letter w"; +pickup lower_pen; +x2=tw+sw; x7-x8=2/3tw; +lft.x1=0.5s; rt.x7=w-2/3tw; x3=.7[x1,x4]; +x7-x4=x6-x3=x4-x2; +top.y2=top.y4=top.y7=h; y1=h-2.5th; y8=h-th; bot.y3=bot.y6=0; +path lstem, rstem; +lstem=z1{dir126}...z2{right}..tension6.7.. + z3{right}..tension2.2..z4{dir130}; +rstem=z4{right}..tension6.7..z6{right}..tension2..z7{left}..tension1.5..z8; +draw if modern: subpath(.07,3) of fi lstem; +draw if modern: subpath(0,2.2) of fi rstem; +end_char; + +beginchar("x", 2tw#+sw#+.5s#, xh#, 0); "the letter x"; +pickup lower_pen; +lft.x1-.3s=lft.x5=0; x2=x6+.75s=tw+.1s; +x7-.5s=w-tw; rt.x8=w-.5s; x4=w+1.9tw; x3=w-.6tw; +top.y2=top.y7=h; y1=y8=h-th; +y5=th; y4=-1.5th; 0=bot.y6=bot.y3; +path nwso, swno; +nwso=z1{dir42}..tension1.75..z2..tension4..{z3-.75[z1,z2]}z3...{dir40}z4; +swno=z5..tension1.7..z6..tension3.3..z7..tension1.7..z8; +draw if modern: subpath(.8,2.9) of fi nwso; +draw if modern: subpath(.8,2.2) of fi swno; +end_char; + +beginchar("y", 2tw#+sw#+sw#, xh#, dh#); "the letter y"; +pickup lower_pen; +lft.x1=0; rt.x4=w; x2=2/3tw; +x4'=w-sw-s; y4'=h-1.2th; +x6=-tw; x5=x6+1.33tw; +top.y2=top.y4=h; y1=h-th; bot.y5=-dh; +y6=-dh+th; +path rstem, lstem; +rstem = z4...z4'..tension2.3..z5..tension1.2..z6; +z3=rstem horintersection -.55s; +lstem = z1{dir40}..tension2..z2{right}..tension2.7..{z5-z4'}z3; +draw if modern: subpath(0.07,2.7) of fi rstem; +draw if modern: subpath(.8,1.97) of fi lstem; +end_char; + +beginchar("z", 2tw#+sw#-.5s#, xh#, 0); "the letter z"; +pickup lower_pen; +lft.x1=lft.x4=0.175tw; rt.x3+.275tw=w; +x2=1.1tw; x5=w-1.275tw; +top.y2=top.y3=h; y1=h-1.225th; bot.y4=bot.y5=0; +x6 =w+2.1tw; y6=-2th; +path stem; +stem=z1{dir38}...z2.. + if modern: tension 1.2 else: tension.9 fi .. + {dir40}z3 & z3..tension6.. {dir265}z4 & + z4{dir40}..tension1.1..z5..{dir35}z6; +draw if modern: subpath(.25,4.9) of fi stem; +end_char; + +beginchar(char25, 5.1tw#, ah#, dh#); "the ss ligature (long forms)"; +pickup lower_pen; +x2-.8s=x3+.8s=1.5tw+.1s; x1=3.2tw+0.5s; rt.x4=-.25s; +top.y2+.75s=top.y1+s=h; bot.y3=-dh+s; bot.y4=-dh; +x11=x1+2.2tw; x12=x2+2.2tw; x13=x3+2.2tw; x14=x4+2.2tw; +y11=y1; y12=y2+.2s; y13=y3; y14=y4; +path lstem, rstem; +rstem = z11{dir106}..tension1.1..z12..tension2.25.. + z13{dir240}..if not.modern: {dir145}fi z14; +z1'=rstem horintersection h-2th; +lstem = z1'{dir110}..tension1.25..z2..tension 2.25.. + z3{dir240}..if modern: else: {dir145}fi z4; +draw if modern: subpath(0,2.75) of fi rstem; +draw if modern: subpath(0,2.6) of fi lstem; +labels(1'); +end_char; + diff --git a/fonts/vicentino/kraml/vcaltpun.mf b/fonts/vicentino/kraml/vcaltpun.mf new file mode 100644 index 0000000000..cfd64ebc63 --- /dev/null +++ b/fonts/vicentino/kraml/vcaltpun.mf @@ -0,0 +1,22 @@ +% VCALTPUNCT - punctuation characters for vicentino fonts - alternative forms +% w. kraml, 1991 + +%% punctuation marks follow here: +slant:= lowerslant; +currenttransform := identity slanted slant; + +beginchar(char38, 2.5sw#+2.5tw#, ch#, 0); "the ampersand \&"; +pickup lower_pen; +x2=1/4w; x1=x2+tw; x3=w-1.33tw; rt.x4=w-.3s; +top.y2=h; y1=h-th; bot.y3=0; y4=1.1th; +path p,q,r; +p = z1..tension1.2..{dir230}z2..tension1.94..z3{right}..{dir40}z4; +z5=p horintersection .85xh; z9=p horintersection .45xh; +lft.x6=.5s; x7=.45w; x8=2/3w; +bot.y7=0; y6=.75[y7,y5]; top.y8=xh; +q = z5{z2-z4}..{down}z6..{right}z7..{dir160}z8..{z3-z1}z9; +rt.x10=w-.5s; y10=xh+th; +r = z8{dir-20}..{dir126}z10; +draw p; draw q; draw r; +end_char; + diff --git a/fonts/vicentino/kraml/vcbigdig.mf b/fonts/vicentino/kraml/vcbigdig.mf new file mode 100644 index 0000000000..cf59869adb --- /dev/null +++ b/fonts/vicentino/kraml/vcbigdig.mf @@ -0,0 +1,97 @@ +% VCBIGDIG - "big" (modern style) digits for vicentino font +% w. kraml, 1991 + +% the figures start here +slant := upperslant; +currenttransform := identity slanted slant; + +beginchar("1", 4/10size#, ch#, 0); "the figure 1"; +pickup lower_pen; +top.lft.z1=(w/2,h); bot.lft.z2=(w/2,0); +lft.x1'=1.5s; z1-z1'=whatever*dir50; +draw z1'{dir35}..z1 & + z1{dir267}..tension7..{dir10}z2; +end_char; + +beginchar("2", 4/10size#, ch#, 0); "the figure 2"; +pickup lower_pen; +x1=w-x3=tw; x2=w/2; x4=w-x5=.5tw; +top.y2=h; bot.y4=bot.y5=0; +y1=y3=.625h; +path stem; +stem = z1..z2{right}..z3..{z4-z3}z4 & + z4{dir40}..if modern: tension2.. fi z5{dir40}; +draw stem; +end_char; + +beginchar("3", 4/10size#, ch#, 0); "the figure 3"; +pickup lower_pen; +x1=x4-.5s=w-x3=tw; x2=x6=w/2; +lft.x7=.5s; rt.x5=w-.5tw; +top.y2=h; bot.y6=0; +y1-th=y3=.7h; y4=.52h; y5=.5[y6,y4]; y7=1.25th; +draw z1{z1-z5}..z2{right}..z3..{dir205}z4 & + z4{dir20}..z5{down}..z6{left}..z7; +end_char; + +beginchar("4", 4/10size#, ch#, 0); "the figure 4"; +pickup lower_pen; +lft.x2=w-rt.x1=.5s; x3=x4=w-1.25tw; +top.y3=h; bot.y4=0; y2=y1=1/3h; +draw z1{dir160}..tension2.75..{left}z2 & + z2{up}..tension1.5..{z3-z2}z3 & + z3{dir267}..tension7..{dir10}z4; +end_char; + +beginchar("5", 4/10size#, ch#, 0); "the figure 5"; +pickup lower_pen; +rt.x1=w-.25s; rt.x4=w-.5tw; x2=2/3tw; lft.x3=lft.x5=.5s; +y1=top.y2=h; y3=.65h; bot.y5=0; y4=.55[y5,y3]; +draw z1{dir215}...z2{left} ---z3 & + z3{dir35}..z4{down}..tension1.5..{dir120}z5; +end_char; + +beginchar("6", 4/10size#, ch#, 0); "the figure 6"; +pickup lower_pen; +rt.x4=rt.x1=w-.5s; +lft.x2=.5s; x3=w/2; x5=.7[x2,x3]; +bot.y1=h; bot.y3=0; +y2=y4=1/3h; y5=.6h; +draw z1{dir207}..z2{down}..z3{right}..z4..z5{dir190}; +end_char; + +beginchar("7", 4/10size#, ch#, 0); "the figure 7"; +pickup lower_pen; +lft.x1=w-rt.x3=.5s; +x4=1.5tw; +top.y3=h; top.y4=0; bot.y1=h; +path stem; +stem=z1{dir260}..tension1.1..{right}z3 & + z3{curl0}..{dir-80}z4; +draw if modern: subpath(0.2,2) of fi stem; +end_char; + +beginchar("8", 4/10size#, ch#, 0); "the figure 8"; +pickup lower_pen; +x1=x2=x3=w/2; top.y1=h; bot.y3=0; y2=.55h; +lft.x4=w-rt.x5=.5s; y4=y5=.52[y3,y2]; +lft.x6=w-rt.x7=.6tw; y6=y7=.52[y2,y1]; +draw z1{right}..z7..z2..z4..z3{right}..z5..z6..cycle; +end_char; + +beginchar("9", 4/10size#, ch#, 0); "the figure 9"; +pickup lower_pen; +lft.x4-.25s=lft.x1=.5s; +rt.x2=w-.75s; x3=w/2; x5=.7[x2,x3]; +top.y1=0; top.y3=h; +y2=y4=2/3h; y5=.4h; +draw z1{dir27}..z2{up}..z3{left}..z4..z5{dir10}; +end_char; + +beginchar("0", 4/10size#, ch#, 0); "the figure 0"; +pickup lower_pen; +rt x1=w-.75s; lft x3=.75s; y1=y3=.55h; +x2=x4=w/2; top.y2=h; bot.y4=0; +draw superellipse(z1,z2,z3,z4,0.699); +end_char; + diff --git a/fonts/vicentino/kraml/vcc10.mf b/fonts/vicentino/kraml/vcc10.mf new file mode 100644 index 0000000000..dd7b52beff --- /dev/null +++ b/fonts/vicentino/kraml/vcc10.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcc11.mf b/fonts/vicentino/kraml/vcc11.mf new file mode 100644 index 0000000000..16299bac0b --- /dev/null +++ b/fonts/vicentino/kraml/vcc11.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=11pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcc12.mf b/fonts/vicentino/kraml/vcc12.mf new file mode 100644 index 0000000000..b0702582fc --- /dev/null +++ b/fonts/vicentino/kraml/vcc12.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=12pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcc14.mf b/fonts/vicentino/kraml/vcc14.mf new file mode 100644 index 0000000000..e7f8008366 --- /dev/null +++ b/fonts/vicentino/kraml/vcc14.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=14pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcc17.mf b/fonts/vicentino/kraml/vcc17.mf new file mode 100644 index 0000000000..0877f04666 --- /dev/null +++ b/fonts/vicentino/kraml/vcc17.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=17pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcc20.mf b/fonts/vicentino/kraml/vcc20.mf new file mode 100644 index 0000000000..941e5be49e --- /dev/null +++ b/fonts/vicentino/kraml/vcc20.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=20pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcca.mf b/fonts/vicentino/kraml/vcca.mf new file mode 100644 index 0000000000..dccd41b044 --- /dev/null +++ b/fonts/vicentino/kraml/vcca.mf @@ -0,0 +1,20 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +% generate it: + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcca10.mf b/fonts/vicentino/kraml/vcca10.mf new file mode 100644 index 0000000000..2b91a2b676 --- /dev/null +++ b/fonts/vicentino/kraml/vcca10.mf @@ -0,0 +1,21 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 +% changed for using with multiple modes, J.-H. Lueddecke +% +%input local; +%mode=hplaser; +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +% generate it: + +input vcaltdri; +end; diff --git a/fonts/vicentino/kraml/vcca11.mf b/fonts/vicentino/kraml/vcca11.mf new file mode 100644 index 0000000000..cf7a365735 --- /dev/null +++ b/fonts/vicentino/kraml/vcca11.mf @@ -0,0 +1,21 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 +% changed for using with multiple modes, J.-H. Lueddecke +% +%input local; +%mode=hplaser; +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=11pt#; % design size + +% generate it: + +input vcaltdri; +end; diff --git a/fonts/vicentino/kraml/vcca12.mf b/fonts/vicentino/kraml/vcca12.mf new file mode 100644 index 0000000000..159c63a6d5 --- /dev/null +++ b/fonts/vicentino/kraml/vcca12.mf @@ -0,0 +1,21 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 +% changed for using with multiple modes, J.-H. Lueddecke +% +%input local; +%mode=hplaser; +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=12pt#; % design size + +% generate it: + +input vcaltdri; +end; diff --git a/fonts/vicentino/kraml/vcca14.mf b/fonts/vicentino/kraml/vcca14.mf new file mode 100644 index 0000000000..d6567e863c --- /dev/null +++ b/fonts/vicentino/kraml/vcca14.mf @@ -0,0 +1,21 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 +% changed for using with multiple modes, J.-H. Lueddecke +% +%input local; +%mode=hplaser; +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=14pt#; % design size + +% generate it: + +input vcaltdri; +end; diff --git a/fonts/vicentino/kraml/vcca17.mf b/fonts/vicentino/kraml/vcca17.mf new file mode 100644 index 0000000000..e130e957ee --- /dev/null +++ b/fonts/vicentino/kraml/vcca17.mf @@ -0,0 +1,21 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 +% changed for using with multiple modes, J.-H. Lueddecke +% +%input local; +%mode=hplaser; +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=17pt#; % design size + +% generate it: + +input vcaltdri; +end; diff --git a/fonts/vicentino/kraml/vcca20.mf b/fonts/vicentino/kraml/vcca20.mf new file mode 100644 index 0000000000..e25329ed27 --- /dev/null +++ b/fonts/vicentino/kraml/vcca20.mf @@ -0,0 +1,21 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 +% changed for using with multiple modes, J.-H. Lueddecke +% +%input local; +%mode=hplaser; +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := false; + +% metrics +size#:=20pt#; % design size + +% generate it: + +input vcaltdri; +end; diff --git a/fonts/vicentino/kraml/vccb.mf b/fonts/vicentino/kraml/vccb.mf new file mode 100644 index 0000000000..df31cd7090 --- /dev/null +++ b/fonts/vicentino/kraml/vccb.mf @@ -0,0 +1,17 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vccb10.mf b/fonts/vicentino/kraml/vccb10.mf new file mode 100644 index 0000000000..38213bf02f --- /dev/null +++ b/fonts/vicentino/kraml/vccb10.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vccb14.mf b/fonts/vicentino/kraml/vccb14.mf new file mode 100644 index 0000000000..da105b584c --- /dev/null +++ b/fonts/vicentino/kraml/vccb14.mf @@ -0,0 +1,15 @@ +% VCC - Vicentino Corsiva (humanistische cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := true; + +% metrics +size#:=14pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vccba.mf b/fonts/vicentino/kraml/vccba.mf new file mode 100644 index 0000000000..629c355080 --- /dev/null +++ b/fonts/vicentino/kraml/vccba.mf @@ -0,0 +1,20 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +% generate it: + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vccba10.mf b/fonts/vicentino/kraml/vccba10.mf new file mode 100644 index 0000000000..3e5a66edf1 --- /dev/null +++ b/fonts/vicentino/kraml/vccba10.mf @@ -0,0 +1,19 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +% generate it: + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vccba14.mf b/fonts/vicentino/kraml/vccba14.mf new file mode 100644 index 0000000000..3243c24b77 --- /dev/null +++ b/fonts/vicentino/kraml/vccba14.mf @@ -0,0 +1,19 @@ +% VCCALT - Vicentino Corsiva (humanistische cursive) +% alternative character set +% w. kraml, 1991,92 + +mode_setup; + +boolean modern, twisted, bold; + modern := false; + twisted := false; + bold := true; + +% metrics +size#:=14pt#; % design size + +% generate it: + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcdefs.mf b/fonts/vicentino/kraml/vcdefs.mf new file mode 100644 index 0000000000..e4006e1e42 --- /dev/null +++ b/fonts/vicentino/kraml/vcdefs.mf @@ -0,0 +1,136 @@ +% VCDEFS - definitions & macros for vicentino fonts +% w. kraml, 1991 + +% some metrics + +ah# + dh# = size#; % = height of ascenders + depth of descenders +xh#= 7/16 size#; % x-height +ah#= xh# + 5/16 size#; % ascender height +ch#= xh# + 4/16 size#; % caps height +th# = 1/8 xh#; % terminal height + +digh# = xh#; % lower case digits height +diga# = xh# + 3/16 size#; % small digits ascenders +digd# = 3/16 size#; % small digits descenders + +% (almost all the time) horizontal: + +s# := 1/20 size#; % (orig. sidebar, now ) a small distance % normal! +tw# := 2/20 size#; % terminal width +sw# := 4/18 size#; % stem to stem width +halfser#:=.6tw#; % width of 'half' serif + +if bold: + s#:= 1.08s# ; + tw#:=1.08tw#; + sw#:=1.09sw#; + halfser#:=1.10halfser#; +fi +% pixels: +define_pixels(size,ah,xh,ch,digh,diga,digd,dh,th,s,tw,sw,halfser); + +% pen(s): + +xfactor := if bold: 1.37 else: 1 fi; +yfactor := if bold: 1.30 else: 1 fi; + +pen myoddpen; +capsule_def(myoddpen) + makepen((-40,15)-- + (-35.5,0)-- + (-30,-15)-- + (-20,-16.5)-- + (-10,-17)-- + (10,-17)-- + (20, -16.5)-- + (35,-15)-- + (38,0)-- + (40,15)-- + (34, 16.5)-- + (25,17.5)-- + (17.5,18)-- + (5,18.5)-- + (-5,18.5)-- + (-17.5,18)-- + (-25,17.5)-- + (-34,16.5)-- + cycle); +if modern: +pickup pencircle xscaled (.0645 size*xfactor) + yscaled (.046 size*yfactor) rotated 15; +else: +pickup myoddpen xscaled (.00095 size*xfactor) + yscaled (.00054 size*yfactor) rotated 35; % normal! +fi +lower_pen := savepen; + +pickup myoddpen xscaled (.0009size*xfactor) + yscaled (.00055size*yfactor) rotated 6; %! +cap_serif_pen := savepen; + +if twisted: + pickup pencircle xscaled (.074 size*xfactor) + yscaled (.02625 size*yfactor) rotated 130; + lower_pen := savepen; +fi + +% font slants: +upperslant := if modern: 1/6 else: 11/60 fi; % 1/5 +lowerslant := if modern: 1/6 else: 7/30 fi; % 1/4 +if twisted: upperslant := lowerslant := -2/60; fi + +% TFMs: +font_size size#; +font_quad 10/15 size#; +font_normal_space := 2tw#+.6s#; +font_normal_stretch := 3/50 size#; +font_normal_shrink := 2/50 size#; +font_x_height := xh#; + +% macros: + +def ltopserif(expr startpoint,endpoint,stempoint) = + draw startpoint--endpoint; + draw startpoint{endpoint-startpoint}..tension2.. + {stempoint-endpoint}stempoint + enddef; + +def cap_top_serif(expr startx, rwidth) = + pair outer_left_z_, left_zz_, z_, right_z_; + outer_left_z_ = (startx-1.43tw, h-.7th); + left_zz_ - outer_left_z_ =whatever*dir29; + left_zz_= (whatever, h-.15s); + top.z_ = (startx, h); + top.right_z_ = (startx+rwidth, h); + draw outer_left_z_{dir42} ... left_zz_..tension1.25..z_ + ..tension1.25..{dir35}right_z_ ; + enddef; +def cap_bot_serif(expr startx) = + pair left_z_, z_, right_z_; + pickup cap_serif_pen; + bot.left_z_ = (startx-.8tw,0); + bot.z_ = (startx, 0); + bot.right_z_ = (startx+.9tw, 0); + draw left_z_ ... z_{right} ... {dir70}right_z_ + enddef; + +def horintersection expr height = + intersectionpoint ((-w,height)--(2w,height)) enddef; + +def end_char = italcorr (charht*slant - .25tw#); + labels(range 1 thru 15); endchar enddef; + +def dot expr z = pair upper_z_; + upper_z_ := z + (0,1.1s); + draw upper_z_{right}..tension4..{left}z enddef; + +def comma expr z = pair upper_z_, lower_z_; + upper_z_ := z + (-1/32size,1s); + lower_z_ := z - (1/12size, 2s); + draw upper_z_{right}..tension4..z..tension2..lower_z_ enddef; + +def revcomma expr z = pair upper_z_, lower_z_; + upper_z_ := z + (1/12size, 2s); + lower_z_ := z - (-1/32size,1s); + draw lower_z_{left}..tension4..z..tension2..upper_z_ enddef; + diff --git a/fonts/vicentino/kraml/vcdriver.mf b/fonts/vicentino/kraml/vcdriver.mf new file mode 100644 index 0000000000..9e517a3985 --- /dev/null +++ b/fonts/vicentino/kraml/vcdriver.mf @@ -0,0 +1,12 @@ +% driver file for vicentino fonts: input all character sources + +input vcdefs; +input vcupper; +input vclower; +input vcsmdig; +input vcpunct; +% ligatures & kerning +input vclig; +input vcligtbl; +%that's it! + diff --git a/fonts/vicentino/kraml/vclig.mf b/fonts/vicentino/kraml/vclig.mf new file mode 100644 index 0000000000..1a33e7c0c7 --- /dev/null +++ b/fonts/vicentino/kraml/vclig.mf @@ -0,0 +1,139 @@ +%%% vclig.mf ligatures for vicentino fonts +slant := lowerslant; +currenttransform := identity slanted slant; + +beginchar(char12, 5tw#, ah#, dh#); "the fi ligature"; +pickup lower_pen; +x2-s=x3+.85s=1.63tw; x1=4.15tw; rt.x4=.25s; +top.y2+.85s=h; bot.y3=-dh+s; bot.y4=-dh; +top.y1=.5[xh,ah]; +path stem; +stem = z1{dir45}..tension1.2..z2..tension 2.25.. + z3{dir240}..if modern: else: {dir145}fi z4; +draw if modern: subpath(0,2.6) of fi stem; +% i +lft.x5=1/3s; y5=xh-1.33th; +x6=x7=3.93tw; rt.x8=w; top.y6=xh; bot.y7=0; y8=th; +path ipart; +ipart = z5...z6{right}..tension7..z7{right}..tension2.. + {dir40}z8; +draw if modern: subpath(0.15,2.2) of fi ipart; +end_char; + +beginchar(char11, 5.5tw#, ah#, dh#); "the ff ligature"; +pickup lower_pen; +x2-.8s=x3+.8s=1.6tw+.1s; x1=3.2tw+0.5s; rt.x4=-.25s; +top.y2+.75s=top.y1+s=h; bot.y3=-dh+s; bot.y4=-dh; +x11=x1+2.3tw; x12=x2+2.3tw; x13=x3+2.3tw; x14=x4+2.3tw; +y11=y1; y12=y2+.2s; y13=y3; y14=y4; +path lstem, rstem; +rstem = z11{dir106}..tension1.1..z12..tension2.25.. + z13{dir240}..if not.modern: {dir145}fi z14; +z1'=rstem horintersection h-2th; +lstem = z1'{dir110}..tension1.25..z2..tension 2.25.. + z3{dir240}..if modern: else: {dir145}fi z4; +draw if modern: subpath(0,2.75) of fi rstem; +draw if modern: subpath(0,2.6) of fi lstem; +lft.x5=1/3s; x6=w+.1s; y5=y6=xh-th; +draw z5--z6; +labels(1'); +end_char; + +beginchar(char15, 2sw#+2.5tw#, ah#, 0); "the ch ligature"; +pickup lower_pen; +x2=x3=sw+1.65tw; x2-x1=halfser; top.y2=h; bot.y3=0; +z2-z1=whatever*dir40; +path stem, loop; stem = z2{curl0}..{dir275}z3; +z4 = stem horintersection y1; +draw stem; +if not.modern: ltopserif(z1,z2,z4); fi +x5=1.5sw+1.5tw; top.y5=xh; bot.y8=0; x8=x5+.6tw; +z6 = stem horintersection xh/2; +y7=y6; rt.x7=w-2/3s; +x9=x5+.8s; y9=.66th; +loop = z6{up}..z5..tension.9..z7{down}..z8..z9; +draw if modern: subpath(0,3.2) of fi loop; +% c: +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.33s; +rt x11=2axis-.5s; lft x13=.5s; +x12-dev=x14+dev=axis; +y11-dev=y13+dev=.52xh; +top.y12=xh; bot.y14=0; +rt.x15=sw+.66tw; y15=3/4xh; +path p,q ; p= superellipse(z11,z12,z13,z14,0.73); +q= z15..{left}z12 & subpath(2,6) of p & z14{right}..{up}z6; +draw q; +end_char; + +beginchar(char26, 2sw#+.5tw#, xh#, 0); "the ligature ae"; +pickup lower_pen; +x1=.475w; x2=1tw; x3=.9w; x4=w-1.15tw; rt.x5=w-.25s; +top.y1=h; bot.y2=bot.y4=0; y5=th; y3=h-1.25th; +path p; +p = z1{dir210}..tension2..{right}z2..tension2.2..{up}z3 & z3..tension2.. + {dir220}z1..tension2..{right}z4..{dir40}z5; +draw p; +end_char; + +beginchar(char27, 2sw#+tw#+s#, xh#, 0); "the ligature oe"; +pickup lower_pen; +numeric dev; dev=.5s; +rt x1=w-sw-.5s; lft x3=0+.5s; +x2-dev=x4+dev=w/2-sw/2; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +draw superellipse(z1,z2,z3,z4,0.73); +% e +numeric edev, axis; edev=.5s; axis=w-.5sw-.5tw+.5s; +rt x11=w+.5s; x13=x1; +x12-edev=x14+edev=axis; +y11-edev=y13+edev=.52h; +top.y12=h; bot y14=0; +rt.x15+.25s=rt.x16=w-.25s; y15=3/4h; y16=th; +path p,q ; p= superellipse(z11,z12,z13,z14,0.73); +z17 = (subpath(2,6) of p) horintersection .425h; +q= z17{dir18}..tension1.25.. + z15..{left}z12 & subpath(2,6) of p & z14{right}..{dir36}z16; +draw q; +end_char; + +beginchar(char29, 4.5sw#, ch#, 0); "the ligature AE"; +pickup lower_pen; +% E +lft.x1=2sw; x4=2sw+tw; x2-3s=x3-2s=x5=w-1.25sw; x6=w-.5tw; +y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.5h; +path curve; +curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6; +draw if modern: subpath(1.25,5) else: subpath(1.15,5) fi of curve; +%A +lft.x11=1.1s; x12=1.5tw; +top.y11=bot.y12=0; y13'=h; x13'= 2.5sw; +z13= (subpath(2,3) of curve) horintersection h-th; +y8=.43h; x8=w-1.25tw; +path p; +p=z8{left}..tension if modern: .89 else: .92 fi..z11{dir-55}..z12{dir65} + ..tension1.4..{right}z13'..z13; +if modern: draw subpath(0.05,.6) of p; draw subpath(1.8,4) of p; else: +draw p; fi +end_char; + +beginchar(char30, 5sw#-2tw#, ch#, 0); "the ligature OE"; +pickup lower_pen; +numeric dev; dev=3/4s; +rt.x1=2.5sw-s; lft.x3=s; +x2-dev=x4+dev=1.25sw; +y1-dev=y3+dev=.52h; +top.y2=h; bot.y4=0; +draw superellipse(z1,z2,z3,z4,.74); +% E +lft.x11=2sw; x14=x1; x12-1.75tw=x13-s=x15-s=w-1.25sw; x16=w-.5tw; +y11=y12=.7h; top.y13=h; bot.y15=0; y16=1.5th; y14=y1; +path curve; +curve=z11{dir35}..tension.9..z12{dir35}..tension.85..z13{left}.. + z14{down}..z15{right}..z16; +draw if modern: subpath(1.25,5) else: subpath(1.15,5) fi of curve; +y17=y18; z17=curve horintersection .55h; +x18=w-1.25tw; +draw z17--z18; +end_char; + diff --git a/fonts/vicentino/kraml/vcligtbl.mf b/fonts/vicentino/kraml/vcligtbl.mf new file mode 100644 index 0000000000..4ece8d2f11 --- /dev/null +++ b/fonts/vicentino/kraml/vcligtbl.mf @@ -0,0 +1,38 @@ +% VCLIGTBL - ligature tables & kerning for vicentino fonts +% w. kraml, 1991 + +ku#:=1.2tw#; + +ligtable "f" : "i" =: 12, "f" =: 11, "t" kern -1/8sw#; +ligtable "t" : "t" kern -1/8sw#; +ligtable "c" : "h" =: 15; +ligtable "r" : "." kern -1.1ku#, "," kern -1.1ku#, "a" kern-.4ku#, + "d" kern-.4ku#, "e" kern-.4ku#, "g" kern-.4ku#, + "o" kern-.4ku#, "q" kern-.4ku#; +ligtable "J" : "a" kern -.5ku#, "e" kern -.5ku#, "i" kern-.5ku#, + "o" kern -.5ku#, "u" kern -.5ku#; +ligtable "K" : "a" kern -.5ku#, "e" kern -.5ku#, "i" kern-.25ku#, + "o" kern-.5ku#, "r" kern -.25ku#, "u" kern-.5ku#; +ligtable "L" : "i" kern-.2ku#, "u" kern-.2ku#; +ligtable "P" : "a" kern-.3ku#, "e" kern-.3ku#, "o" kern-.3ku#; +ligtable "T" : "a" kern-ku#, "c" kern-ku#, "d" kern-ku#, "e" kern-ku#, + "f" kern-.75ku#, "g" kern-.5ku#, "i" kern-.25ku#, + "j" kern-.25ku#, "m" kern-ku#, "n" kern-ku#, "o" kern-ku#, + "r" kern-ku#, "s" kern-ku#, "t" kern-.5ku#, "u" kern-ku#, + "v" kern-ku#, "w" kern-ku#, "y" kern-ku#, "z" kern-ku#; +ligtable "V" : "a" kern-.2ku#, "e" kern-.2ku#, "o" kern-.2ku#; +ligtable "W" : "a" kern-.2ku#, "e" kern-.2ku#, "o" kern-.2ku#; +ligtable "Y" : "a" kern-ku#, "c" kern-ku#, "d" kern-.75ku#, "e" kern-ku#, + "f" kern-.5ku#, "g" kern-.5ku#, "m" kern-ku#, "n" kern-ku#, + "o" kern-ku#, "p" kern-ku#, "q" kern-ku#, "r" kern-ku#, + "s" kern-ku#, "t" kern-.5ku#, "u" kern-ku#, "v" kern-ku#, + "w" kern-ku#, "x" kern-ku#, "z" kern-ku#; +ligtable "Z" : "a" kern-ku#, "c" kern-ku#, "d" kern-.75ku#, "e" kern-ku#, + "g" kern+ku#, "i" kern-.5ku#, "n" kern-.5ku#, "o" kern-ku#, + "u" kern-ku#, "v" kern-ku#, "w" kern-ku#, "y" kern-.25ku#; +ligtable "'" : "'" =: 34; +ligtable "`" : "`" =: 92; + +ligtable "-": "-"=:oct"173"; +ligtable oct"173": "-"=:oct"174"; + diff --git a/fonts/vicentino/kraml/vclower.mf b/fonts/vicentino/kraml/vclower.mf new file mode 100644 index 0000000000..4816a985b2 --- /dev/null +++ b/fonts/vicentino/kraml/vclower.mf @@ -0,0 +1,367 @@ +% VCLOWER - lower characters for vicentino font +% w. kraml, 1991 + +% lower case: +slant := lowerslant; +currenttransform := identity slanted slant; + +beginchar("a", 2tw#+sw#, xh#, 0); "the letter a"; +pickup lower_pen; +x1=x2=x7=w-tw; top.y1=top.y5=h; +rt x3=w; y3=th; bot y6=bot y2=0; y7=3/4h; +x5=1.75tw; x6=1.5tw; +path rightstem; rightstem = z1..tension6.7 ..z2..tension2..{dir40}z3; +z4 = rightstem horintersection .7h; +draw if modern: subpath(0,1.2) of fi rightstem; +draw z4..tension3..z5..tension2.5..z6{right}..tension1.75..{up}z4; +end_char; + +beginchar("b", 2tw#+sw#, ah#, 0); "the letter b"; +pickup lower_pen; +x2=x3=tw+.25s; x2-x1=halfser; top.y2=h; bot.y3=1.667th; +z2-z1=whatever*dir40; +path stem, loop; stem = z2{curl0}..{dir275}z3; +z4 = stem horintersection y1; +draw stem; +if modern: else: ltopserif(z1,z2,z4); fi +x5=x8=w/2; top.y5=xh; bot.y8=0; +z6 = stem horintersection xh/2; +y7=y6; rt.x7=w-2/3s; +loop = z6{up}..z5..tension.9..z7..z8..{dir95}z3; +draw loop; +end_char; + +beginchar("c", sw#+tw#, xh#, 0); "the letter c"; +pickup lower_pen; +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.5s; +rt x1=2axis-.5s; lft x3=.5s; +x2-dev=x4+dev=axis; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +rt.x5+.25s=rt.x6=w-.25s; y5=3/4h; y6=th; +path p,q ; p= superellipse(z1,z2,z3,z4,0.73); +q= z5..{left}z2 & subpath(2,6) of p & z4{right}..{dir36}z6; +draw q; +end_char; + +beginchar("d", 2tw#+sw#, ah#, 0); "the letter d"; +pickup lower_pen; +x1-.5s=x2=x7=w-tw; top.y1=h; top.y5=xh; +rt x3=w; y3=th; bot y6=bot y2=0; +x5=1.75tw; x6=1.55tw; +path rightstem; rightstem = z1..tension6.7 ..z2..tension2..{dir40}z3; +z4 = rightstem horintersection .8xh; +draw if modern: subpath(0,1.2) of fi rightstem; +x1-x8=halfser; z1-z8=whatever*dir40; +z9 = rightstem horintersection y8; +if modern: else: ltopserif(z8,z1,z9); fi +draw z4..tension2..z5..tension2..z6{right}..tension1.75..{up}z4; +end_char; + +beginchar("e", sw#+tw#, xh#, 0); "the letter e"; +pickup lower_pen; +numeric dev, axis; dev=.5s; axis=.5sw+.5tw+.5s; +rt x1=2axis-.5s; lft x3=.5s; +x2-dev=x4+dev=axis; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +rt.x5+.25s=rt.x6=w-.25s; y5=3/4h; y6=th; +path p,q ; p= superellipse(z1,z2,z3,z4,0.73); +z7 = (subpath(2,6) of p) horintersection .425h; +q= z7{dir18}..tension1.25.. + z5..{left}z2 & subpath(2,6) of p & z4{right}..{dir36}z6; +draw q; +end_char; + +beginchar("f", 3.2tw#, ah#, dh#); "the letter f"; +pickup lower_pen; +x2-.8s=x3+.8s=w/2+.1s; x1=w+0.5s; rt.x4=-.25s; +top.y2+.75s=top.y1+s=h; bot.y3=-dh+s; bot.y4=-dh; +y5=y6=xh-th; lft.x5=1/3s; x6=w+.1s; +path stem; +stem = z1{dir105}..tension1.2..z2..tension 2.25.. + z3{dir240}..if modern: else: {dir145}fi z4; +draw if modern: subpath(0,2.6) of fi stem; +draw z5--z6; +end_char; + +beginchar("g", 2tw#+sw#, xh#, dh#); "the letter g"; +pickup lower_pen; +x1=x2=w-.8tw; top.y1=top.y5=top.y1'=h; +rt.x1'=w-.25s; +bot y6=bot y2=0; +x5=1.75tw; x6=1.5tw; lft.x9=if modern:s else: -.2s fi; +x8= if modern: w-.78tw else: w-1.5s fi; +bot.y8-s = bot.y9 = if modern: -dh+1.5s else: -dh+s fi; +path rightstem, rightstemtrial; +rightstemtrial = z1'{dir205}..tension2.1..z2..tension1.8..z8.. + if modern: tension1.1 else: tension1.56 fi + ..z9..{dir36}z6; +z4 = rightstemtrial horintersection 3/4h; +top.z6'= (subpath(2,4) of rightstemtrial) horintersection -.2s; +z6''=z6'-(.33s,0); +rightstem=z1'{dir205}..tension2.1..z2..tension1.8..z8.. + if modern: tension1.1 else: tension1.56 fi + ..z9..{dir36}z6''; +draw subpath(0, if modern:3.275 else: 4 fi) of rightstem; +draw z4..tension3..z5..tension2.5..z6{right}..tension1.75..{dir80}z4; +end_char; + +beginchar("h", 2tw#+sw#, ah#, 0); "the letter h"; +pickup lower_pen; +x2=x3=tw+.25s; x2-x1=halfser; top.y2=h; bot.y3=0; +z2-z1=whatever*dir40; +path stem, loop; stem = z2{curl0}..{dir275}z3; +z4 = stem horintersection y1; +draw stem; +if not.modern: ltopserif(z1,z2,z4); fi +x5=w/2; top.y5=xh; bot.y8=0; x8=x5+.6tw; +z6 = stem horintersection xh/2; +y7=y6; rt.x7=w-2/3s; +x9=x5+.8s; y9=.66th; +loop = z6{up}..z5..tension.9..z7{down}..z8..z9; +draw if modern: subpath(0,3.2) of fi loop; +end_char; + +beginchar("i", 2tw#+.5s#, xh#, 0); "i"; +pickup lower_pen; +x5=x2=x3=w/2; lft.x1=.1s; rt.x4=w-.1s; y1=h-th; top.y2=h; bot y3=0; y4=th; +y5=.5[xh,ah]; +path stem; +stem = z1{dir40}..tension2..z2..tension5..z3..tension2.. + {dir40}z4; +draw if modern: subpath(0.8,2.2) of fi stem; +dot z5; +end_char; + +beginchar("j", 2tw#+.5s#, xh#, dh#); "the letter j"; +pickup lower_pen; +x5=x2=w/2; lft x1=0; x4=w/2-.1s; y1=h-th; top.y2=h; bot.y6=-dh+.33th; +y5=.5[xh,ah]; bot.y4=-dh+1.1th; x6=0.1s; +path stem; +stem = z1{dir40}..tension2..z2..tension4.5.. + z4..tension.825..{dir133.5}z6; +draw if modern: subpath(0.8, 2.72) of fi stem; +dot z5; +end_char; + +beginchar("k", 2tw#+sw#, ah#, 0); "the letter k"; +pickup lower_pen; +x2=x3=tw; x2-x1=halfser; top.y2=h; bot.y3=0; +z2-z1=whatever*dir40; +path stem, loop; stem = z2{curl0}..{dir275}z3; +z4 = stem horintersection y1; +draw stem; +if modern: else: ltopserif(z1,z2,z4); fi +x5=w/2 + .5s; top.y5=xh; +x5'=w-tw; y5'= if modern: .8xh else: .7xh fi; +z6 = stem horintersection 0.45xh; +loop = z6{up}..z5..z5' + if modern:{dir220} else:{dir245} fi + ..tension.825..{dir275}z3; +draw if modern: subpath(1.5,3) of fi loop; +z7 = loop horintersection 7/16xh; +bot.y8=0; top.y9=th; rt.x9=w; lft.x8=w-tw; +draw z7..tension1.75..z8..z9; +end_char; + +beginchar("l", 2tw#+.5s#, ah#, 0); "the letter l"; +pickup lower_pen; +x2=x3=w/2; x2-x1=halfser; rt x4=w-.1s; top y2=h; bot y3=0; y4=th; +z2-z1=whatever*dir40; +path stem; +stem = z2{curl0}..tension7..z3..tension2..{dir40}z4; +draw if modern: subpath(0,1.2) of fi stem; +% top serif +z5 = stem horintersection y1; +if modern: else: ltopserif(z1,z2,z5); fi +end_char; + +beginchar("m", 2tw#+2sw#, xh#, 0); "the letter m"; +pickup lower_pen; +x2=x3=tw; x4=x5=tw+sw; x6=x7=w-tw; lft.x1=0.1s; rt.x8=w-.1s; +top.y2=top.y4=top.y6=h; bot.y3=bot.y5=bot.y7=0; +y1=h-th; y8=th; +path lstem, mstem, rstem; +lstem=z1{dir40}..tension2..z2..tension7..{curl0}z3; +mstem=z3{dir86}..tension1.9..z4{dir-30}..tension6..{curl0}z5; +rstem=z5{dir86}..tension1.9..z6{dir-30}..tension6..z7..tension2..{dir40}z8; +draw if modern: subpath(0.8,2) of fi lstem; +draw mstem; +draw if modern: subpath(0,2.2) of fi rstem; +end_char; + +beginchar("n", 2tw#+sw#, xh#, 0); "the letter n"; +pickup lower_pen; +x2=x3=tw; x4=x5=w-tw; lft.x1=0.1s; rt.x6=w-.1s; +top.y2=top.y4=h; bot.y3=bot.y5=0; +y1=h-th; y6=th; +path lstem, rstem; +lstem = z1{dir40}..tension2..z2..tension7..{curl0}z3; +draw if modern: subpath(.8,2) of fi lstem; +rstem = z3{dir86}..tension1.9..z4{dir-30}..tension6..z5..tension2..{dir40}z6; +draw if modern: subpath(0,2.2) of fi rstem; +end_char; + +beginchar("o", sw#+tw#+s#, xh#, 0); "the letter o"; +pickup lower_pen; +numeric dev; dev=.5s; +rt x1=w-.5s; lft x3=0+.5s; +x2-dev=x4+dev=w/2; +y1-dev=y3+dev=.52h; +top.y2=h; bot y4=0; +draw superellipse(z1,z2,z3,z4,0.73); +end_char; + +beginchar("p", 2tw#+sw#, xh#, dh#); "the letter p"; +pickup lower_pen; +x1=x2=tw; y1=h+s; bot.y2=-dh; +lft.x3=0; y3=h-th; top.y4=h; x4=x5=.52w; bot.y5=0; +rt.x4'=w-.5s; y4'=.525h; +path stem, bowl; +stem = z1{curl.0}..tension7..{dir-15}z2; +z6 = stem horintersection 1.4th; +draw if modern: subpath(0,.95) of fi stem; +bowl=z3{dir35}...z4{right}..z4'{down}..z5{left}..{dir100}z6; +draw if modern: subpath(0.15,4) of fi bowl; +labels(2', 4'); +end_char; + +beginchar("q", 2tw#+sw#, xh#, dh#); "the letter q"; +pickup lower_pen; +x1=x2=w-tw; top.y1+.25th=top.y5=h; +bot y6=0; bot.y2=-dh; +x5=1.5tw; x6=1.25tw; +path rightstem; rightstem = z1{curl.0}..tension7..{dir-15}z2; +draw if modern: subpath(0,.95) of fi rightstem; +draw z1..tension2.1..z5..tension2.2..z6{right}..tension1.7..{up}z1; +end_char; + +beginchar("r", tw#+sw#+.5s#, xh#, 0); "r"; +pickup lower_pen; +x2=x3=tw; bot y3=0; top.y2=top.y5=h; +lft x1=0.1s; y1=h-th; y4=h-1.25th; rt.x4=w-.15s; x5=w-.7tw; +path lstem, rstem; +lstem=z1{dir40}..tension2..z2..tension7..{curl0}z3; +rstem=z3{dir86}..tension2..z5{dir-30}..tension1.1..z4; +draw if modern: subpath(0.8,2) of fi lstem; +draw rstem; +end_char; + +beginchar("s", tw#+sw#, xh#, 0); "the letter s"; +pickup lower_pen; +x1=x2=w/2; top.y1=h; bot.y2=0; +x3=.75tw; rt.x4=w-.5s; y3=.76h; y4=.3h; +x5=w-.7tw; lft.x6=.6s; y5=y3+.55th; y6=y4-3/4th; +path trial,p; +trial = z3{down}..tension1.1..{down}z4; +z7 = trial intersectionpoint (z6{up}..{up}z5); +p = z7..tension1.3..z5..z1{left}..z3{down}..tension1.1.. +z4{down}..z2{left}..z6..tension2.5..cycle; +draw subpath if modern:(.77,6.11) else: (.75,6.23) fi of p; +end_char; + +beginchar("t", 2.5tw#, xh#, 0); "the letter t"; +pickup lower_pen; +x1=x2=w/2; rt.x3=w-.1s; y1=h+s; bot.y2=0; y3=th; +y4=y5=xh-th; lft.x4=0.25s; x5=x3; +path stem; +stem=z1{curl0}..tension7..z2..tension2..{dir40}z3; +draw if modern: subpath(0,1.6) of fi stem; +draw z4--z5; +end_char; + +beginchar("u", 2tw#+sw#, xh#, 0); "the letter u"; +pickup lower_pen; +x2=x3-.5s=tw; x4=x5=w-tw; lft.x1=0.1s; rt.x6=w-.1s; +top.y2=top.y4=h; bot.y3=bot.y5=0; +y1=h-th; y6=th; +path lstem, rstem; +lstem=z1{dir40}..tension1.5..z2..tension5..z3{dir-30}..tension1.9..{dir86}z4; +rstem=z4{curl0}..tension7..z5..tension2..{dir40}z6; +draw if modern: subpath(.8,3) of fi lstem; +draw if modern: subpath(0,1.2) of fi rstem; +end_char; + +beginchar("v", 2tw#+sw#, xh#, 0); "the letter v"; +pickup lower_pen; +x2=tw; x4-x5=2/3tw; +lft.x1=0; rt.x4=w-2/3tw; x3=.45[x1,x4]; +top.y2=top.y4=h; y1=y5=h-th; bot.y3=0; +path stem; +stem = z1..tension2..z2{right}..tension6.7.. + z3{right}..tension2..z4{left}..tension1.5..z5; +draw if modern: subpath(.8,3.2) of fi stem; +end_char; + +beginchar("w", 3tw#+2sw#-2s#, xh#, 0); "the letter w"; +pickup lower_pen; +x2=tw; x7-x8=2/3tw; +lft.x1=0; rt.x7=w-2/3tw; x3=.45[x1,x4]; +x7-x4=x6-x3=x4-x2; +top.y2=top.y4=top.y7=h; y1=y8=h-th; bot.y3=bot.y6=0; +path lstem, rstem; +lstem=z1..tension2..z2{right}..tension6.7.. + z3{right}..tension2.2..z4{dir130}; +rstem=z4{right}..tension6.7..z6{right}..tension2..z7{left}..tension1.5..z8; +draw if modern: subpath(.8,3) of fi lstem; +draw if modern: subpath(0,2.2) of fi rstem; +end_char; + +beginchar("x", 2tw#+sw#+.5s#, xh#, 0); "the letter x"; +pickup lower_pen; +lft.x1-.3s=lft.x5=0; x2=x6+.75s=tw+.1s; +x7-.5s=w-tw; rt.x8=w-.5s; rt.x4=w-.1s; x3=w-tw; +top.y2=top.y7=h; y1=y8=h-th; +y5=th; y4=th; 0=bot.y6=bot.y3; +path nwso, swno; +nwso=z1{dir42}..tension1.75..z2..tension3..{right}z3..tension2..z4; +swno=z5..tension1.7..z6..tension3.3..z7..tension1.7..z8; +draw if modern: subpath(.8,2.2) of fi nwso; +draw if modern: subpath(.8,2.2) of fi swno; +end_char; + +beginchar("y", 2tw#+sw#, xh#, dh#); "the letter y"; +pickup lower_pen; +lft.x1=0; rt.x4=w-.4tw; x2=.8tw; +lft.x6=0; x5=x6+.75s; +top.y2=h; top.y4=h+.17s; y1=h-th; bot.y5=-dh; +y6=-dh+th; +path rstem, lstem; +rstem = z4{dir-35}..tension3.55..z5{dir155}..tension1.2..z6; +z3=rstem horintersection -.55s; +lstem = z1{dir42.5}..tension1.75..z2..tension3.4..z3; +draw if modern: subpath(0,1.2) of fi rstem; +draw if modern: subpath(.8,2) of fi lstem; +end_char; + +beginchar("z", 2tw#+sw#-.5s#, xh#, 0); "the letter z"; +pickup lower_pen; +lft.x1=lft.x4=0.175tw; rt.x3+.275tw=x6+.5tw=w; +x2=1.1tw; x5=w-.5tw; +top.y2=top.y3=h; y1=h-1.225th; bot.y4=bot.y5-1/3s=0; +y6=2th; +path stem; +stem=z1{dir38}...z2.. + if modern: tension 1.2 else: tension.9 fi .. + {dir40}z3 & z3..tension6.. {dir265}z4 & + z4{dir40}..tension1.2..z5{dir46}..z6; +draw if modern: subpath(.25,4.5) of fi stem; +end_char; + +beginchar(char 25, 2.1tw# +sw#, ah#, dh#); "the german ss ligature"; +pickup lower_pen; +x2-.8s=x3+.8s=1.05tw; x1=w-.85s; rt.x4=-.2s; +top.y2=h-th; top.y1=h-1.6th; bot.y3=-dh+s; bot.y4=-dh; +path lpart, rpart; +lpart=z1{dir105}..tension1.2..z2..tension2.25.. + z3{dir240}..if not.modern: {dir145}fi z4; +lft.x7=.8sw; rt.x6=w-0.75s; +lft.x5=sw; x6'=.5[x6,x7]; bot.y6'=0; +y5=xh-th; y6=y7=1.4th; +rpart=z1{dir285}..z5%{down} +..tension1.25..z6..z6'..{dir120}z7; +draw if modern: subpath(0,2.6) of fi lpart; +draw if modern: subpath(0,3.75) of fi rpart; +end_char; + diff --git a/fonts/vicentino/kraml/vcm.mf b/fonts/vicentino/kraml/vcm.mf new file mode 100644 index 0000000000..3368aadbe0 --- /dev/null +++ b/fonts/vicentino/kraml/vcm.mf @@ -0,0 +1,17 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcm10.mf b/fonts/vicentino/kraml/vcm10.mf new file mode 100644 index 0000000000..2e9e3cd8b2 --- /dev/null +++ b/fonts/vicentino/kraml/vcm10.mf @@ -0,0 +1,15 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcm14.mf b/fonts/vicentino/kraml/vcm14.mf new file mode 100644 index 0000000000..e2c359e268 --- /dev/null +++ b/fonts/vicentino/kraml/vcm14.mf @@ -0,0 +1,15 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := false; + +% metrics +size#:=14pt#; % design size + +input vcdriver; +end; diff --git a/fonts/vicentino/kraml/vcma.mf b/fonts/vicentino/kraml/vcma.mf new file mode 100644 index 0000000000..ebf9fbed28 --- /dev/null +++ b/fonts/vicentino/kraml/vcma.mf @@ -0,0 +1,17 @@ +% VCMALT - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcma10.mf b/fonts/vicentino/kraml/vcma10.mf new file mode 100644 index 0000000000..389b7ab7f4 --- /dev/null +++ b/fonts/vicentino/kraml/vcma10.mf @@ -0,0 +1,16 @@ +% VCMALT - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcma14.mf b/fonts/vicentino/kraml/vcma14.mf new file mode 100644 index 0000000000..034412cc75 --- /dev/null +++ b/fonts/vicentino/kraml/vcma14.mf @@ -0,0 +1,16 @@ +% VCMALT - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := false; + +% metrics +size#:=14pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcmb.mf b/fonts/vicentino/kraml/vcmb.mf new file mode 100644 index 0000000000..817f80ad1c --- /dev/null +++ b/fonts/vicentino/kraml/vcmb.mf @@ -0,0 +1,17 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcmb10.mf b/fonts/vicentino/kraml/vcmb10.mf new file mode 100644 index 0000000000..d0e39f4652 --- /dev/null +++ b/fonts/vicentino/kraml/vcmb10.mf @@ -0,0 +1,16 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcmb11.mf b/fonts/vicentino/kraml/vcmb11.mf new file mode 100644 index 0000000000..e69e5b8768 --- /dev/null +++ b/fonts/vicentino/kraml/vcmb11.mf @@ -0,0 +1,16 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=11pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcmb12.mf b/fonts/vicentino/kraml/vcmb12.mf new file mode 100644 index 0000000000..69d5bda277 --- /dev/null +++ b/fonts/vicentino/kraml/vcmb12.mf @@ -0,0 +1,16 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=12pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcmb14.mf b/fonts/vicentino/kraml/vcmb14.mf new file mode 100644 index 0000000000..655598864c --- /dev/null +++ b/fonts/vicentino/kraml/vcmb14.mf @@ -0,0 +1,16 @@ +% VCM - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=14pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcmba.mf b/fonts/vicentino/kraml/vcmba.mf new file mode 100644 index 0000000000..aba93b6320 --- /dev/null +++ b/fonts/vicentino/kraml/vcmba.mf @@ -0,0 +1,17 @@ +% VCMLATB - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcmba10.mf b/fonts/vicentino/kraml/vcmba10.mf new file mode 100644 index 0000000000..58273a2ec6 --- /dev/null +++ b/fonts/vicentino/kraml/vcmba10.mf @@ -0,0 +1,16 @@ +% VCMLATB - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcmba11.mf b/fonts/vicentino/kraml/vcmba11.mf new file mode 100644 index 0000000000..a55a11f1b5 --- /dev/null +++ b/fonts/vicentino/kraml/vcmba11.mf @@ -0,0 +1,16 @@ +% VCMLATB - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=11pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcmba12.mf b/fonts/vicentino/kraml/vcmba12.mf new file mode 100644 index 0000000000..7d20bfbab2 --- /dev/null +++ b/fonts/vicentino/kraml/vcmba12.mf @@ -0,0 +1,16 @@ +% VCMLATB - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=12pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcmba14.mf b/fonts/vicentino/kraml/vcmba14.mf new file mode 100644 index 0000000000..aff7138a3c --- /dev/null +++ b/fonts/vicentino/kraml/vcmba14.mf @@ -0,0 +1,16 @@ +% VCMLATB - Vicentino Modern (moderne cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := false; + bold := true; + +% metrics +size#:=14pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcpunct.mf b/fonts/vicentino/kraml/vcpunct.mf new file mode 100644 index 0000000000..8b4eb551c4 --- /dev/null +++ b/fonts/vicentino/kraml/vcpunct.mf @@ -0,0 +1,324 @@ +% VCPUNCT - punctuation characters for vicentino fonts +% w. kraml, 1991 + +%% punctuation marks follow here: +slant:= upperslant; +currenttransform := identity slanted slant; + +beginchar(char 0, 2sw#+s#, ch#, dh#); "the paragraph (or alinea) sign"; +pickup lower_pen; +x2=x4=.66w; top.y2=h; y6=-dh+th; +bot.y4=-dh+2th; lft.x6=.25s; +path stem; +stem = z2{dir-30}..tension11.. + z4{dir255}..tension1.1..z6; +rt.x1=w-.33s; top.y1=h; lft.x3=.1s; +z5=stem horintersection 2th; y3=.5[y2,y5]; +x7=x3+tw; y7=y3; z9=z5+(tw,0); +path p; p=z2{left}..{down}z3..{right}z5 & z5{dir170}..{up}z7..{dir10}z2..cycle; +draw stem; filldraw p; draw z1--z2; draw z5--z9; +end_char; + +beginchar(char 1, 2sw#-1.25s#, ch#, dh#); "the section sign"; +pickup lower_pen; +x2=x7=w/2; x3=x8=w-x1=w-x6=tw; lft.x5=w-rt.x4=.4s; +top.y2=h; bot.y7=-dh; y5=y4=.5[y2,y7]; y1=y3=6/7[y7,y2]; +y6=y8=1/7[y7,y2]; +path tra, trb, upp, lop; +tra= z1{up}..{left}z2..{down}z3..{down}z4; +trb= z8{down}..{right}z7..{up}z6..{up}z5; +z5'=tra horintersection 5/7[y7,y2]; +z4'=trb horintersection 2/7[y7,y2]; +upp= z1{dir60}..{left}z2..z3..z5'..z4...z4'; +lop= z8{dir240}..{right}z7..z6..z4'..z5...z5'; +draw upp; draw lop; +end_char; + +beginchar(".", 2tw#+s#, th#, 0); "dot"; +pickup lower_pen; +bot.z1 = (w/2,0); +dot.z1; +end_char; + +beginchar(",", 2tw#+1.5s#, th#, th#); "comma"; +pickup lower_pen; +bot.z1 = (w/2+.5s,0); +comma z1; +end_char; + +beginchar(":", 2tw#+s#, xh#, 0); "colon"; +pickup lower_pen; +bot.z1 = (w/2,0); z2=(w/2, 3/4xh); +dot z1; dot z2; +end_char; + +beginchar(";", 2tw#+1.5s#, xh#, 0); "semicolon"; +pickup lower_pen; +bot.z1 = (w/2+.5s,0); z2=(w/2, 3/4xh); +comma z1; dot z2; +end_char; + +beginchar(char 38, 2sw#+2tw#, ch#, 0); "the ampersand \&"; +pickup lower_pen; +x1-.66s=x2+s=x3=x5=.42w; x4=w-2.9tw; rt.x6=w-.5s; +top.y1=h-.75s; y2=.6h; y4=.525h; y6=.7[y4,h]; bot.y3=0; +y4-y5+1.33th=y6-y4; +draw z1{dir130}..{right}z2 & + z2{left}..{right}z3..tension1.25..{dir215}z4; +path tpart; +tpart=z5 if modern: else: {dir105} fi + ..z4{dir32}..tension1.25.. if modern: {dir100} else: {dir145}fi z6; +draw if modern: subpath(.2,1.92) of fi tpart; +end_char; + +beginchar("$", 2tw#+sw#, ch#, 0); "the $ (dollar sign)"; +pickup lower_pen; +x1=w-1.5s; x3=w-s; x2=tw; x4=.5s; +top.y1=h-th; bot.y4=s; +y2=2/3h; y3=1/3h; +y1'=y1-s; x1'=x1-.25s; +x1''=x4''=w/2; top.y1''=h; bot.y4''=0; +path sstem; +sstem=z1'{dir10}..{up}z1&z1..z1''{left}..z2..tension.8..z3..z4''{left}..z4; +x5=x6=w/2+.5s; bot.y5=h+s; top.y6=-s; draw z5{dir267}..z6; +draw if modern: subpath(.8,6) of fi sstem; +labels(1',1'',4''); +end_char; + +beginchar("!", 2tw#+s#, ch#, 0); "exclamation !"; +pickup lower_pen; +top.y1=top.y1'=top.y2=h; x1=x3=w/2; lft.x2=x1; y3=1/2xh; x1'=.5[x1,x2]; +bot.z4=(w/2,0); +draw z1{dir268}..z3; draw z1---z1'{dir263}..z3; +dot z4; +end_char; + +beginchar("?", 3tw#+s#, ch#, 0); "question mark?"; +pickup lower_pen; +x1+tw=x2=x3=x4=1.5tw; bot.y4=0; +y3=1/2xh; y2=y3+2th; y1=h-th; +draw z1{dir40}..tension.84..{dir215}z2...z3; +dot z4; +end_char; + +beginchar("(", 2tw#+s#, ah#, dh#); "opening parentheses ("; +pickup lower_pen; +top.rt.z1=(w-.5s,h); bot.rt.z3=(w-.5s,-dh); +lft.z2=(s,.53[y1,y3]); +draw z1{curl6}..z2..{curl6}z3; +end_char; + +beginchar(")", 2tw#+s#, ah#, dh#); "closing parentheses )"; +pickup lower_pen; +top.lft.z1=(.5s,h); bot.lft.z3=(.5s,-dh); +rt.z2=(w-s,.53[y1,y3]); +draw z1{curl6}..z2..{curl6}z3; +end_char; + +beginchar("[", 2tw#+s#, ah#, dh#); "opening bracket ["; +pickup lower_pen; +top.rt.z1=(w-.5s,h); bot.rt.z3=(w-.5s,-dh); +top.lft.z1'=(s,h); bot.lft.z3'=(s,-dh); +draw z1---z1'{dir-80}..tension1.5..{dir-100}z3'---z3; +end_char; + +beginchar("]", 2tw#+s#, ah#, dh#); "closing bracket ]"; +pickup lower_pen; +top.lft.z1=(.5s,h); bot.lft.z3=(.5s,-dh); +top.rt.z1'=(w-s,h); bot.rt.z3'=(w-s,-dh); +draw z1---z1'{dir-100}..tension1.5..{dir-80}z3'---z3; +end_char; + +beginchar("/", 2tw#, ah#, dh#); "the virgule (/)"; +pickup lower_pen; +top.rt.z1=(w-.5s,h); bot.lft.z2=(.5s,-dh); +draw z1{dir-40}..tension8..{dir-40}z2; +end_char; + +beginchar(char 35, 2sw#+.75s#, ch#, 0); "number sign"; +pickup lower_pen; +top.lft.z1=(2tw,h); +bot.lft.z2=(.5tw,0); +top.rt.z3=(w-.5tw,h); +bot.rt.z4=(w-2tw,0); +draw z1--z2; draw z3--z4; +lft.x5=lft.x7=0; rt.x6=rt.x8=w; +y5=y6=.62h; y7=y8=.38h; +draw z5--z6; draw z7--z8; +end_char; + +beginchar(char 37, 2sw#+.25s#, ch#, 0); "percent sign"; +pickup lower_pen; +top.z1=(1.3tw,h-.7th); bot.z2=(1.3tw,h-4.6th); +draw z1{left}..z2{right}..cycle; +top.z3=(w-1.3tw,3.9th); bot.z4=(w-1.3tw,0); +draw z3{left}..z4{right}..cycle; +top.rt.z5=(w-.5s,h); bot.lft.z6=(.5s,-1.5th); +draw z2{right}..{z5-z6}z5 & z5--z6; +end_char; + +beginchar("+", 1/3size#, xh#, 0); "plus"; +pickup lower_pen; +numeric axis; +axis=.5[-dh,ah]; +z1 = (s,axis); z2 = (w-s,axis); +draw z1--z2; +z3=(w/2,axis+(x2-x1)/2); z4=(w/2,axis-(x2-x1)/2); +draw z3--z4; +end_char; + +beginchar(char 123, 1/3size#, xh#, 0); "minus"; +pickup lower_pen; +numeric axis; +axis=.5[-dh,ah]; +z1 = (s,axis); z2 = (w-s,axis); +draw z1..z2; +end_char; + +beginchar(char 42, .4size#, xh#, 0); "asterisk"; +pickup lower_pen; +%pickup cap_serif_pen; +z0=(w/2,xh); +z1 = (s,xh); z2 = (w-s,xh); +draw z1..z2; +z3 = z1 rotatedaround (z0, 60); +z5 = z1 rotatedaround (z0, 120); +z4 = z2 rotatedaround (z0, 60); +z6 = z2 rotatedaround (z0, 120); +draw z3..z4; draw z5..z6; +end_char; + +beginchar("-", 2tw#+s#, xh#, 0); "hyphen"; +pickup lower_pen; +z1 = (.75s,.4h); z2 = (w-.75s,.6h); +draw z1{dir55}.. {dir-5}.5[z1,z2]{curl0}..z2{dir55}; +end_char; + +beginchar(char 124, 8/10size#, xh#, 0); "em rule"; +pickup lower_pen; +numeric axis; +axis=.5[-dh,ah]; +z1 = (2.75s,axis); z2 = (w-2.75s,axis); +z1'= (s,axis-s); z2'= (w-s, axis+s); +draw z1'{dir35}..z1{right}..{right}z2..{dir35}z2'; +end_char; + + +% quote characters and trema have lowercase slant +% some others as well +slant:=lowerslant; +currenttransform := identity slanted slant; + + +beginchar(char 39, 3.5tw#, ch#, 0); "punctuation ' "; +pickup lower_pen; +z1=(1.75tw,h); +comma z1; +end_char; + +beginchar(char 34, 5tw#, ch#, 0); "punctuation '' "; +pickup lower_pen; +z1=(1.75tw,h); z2=(w-1.75tw,h); +comma z1; comma z2; +end_char; + +beginchar(char96, 3.5tw#, ch#, 0); "punctuation ` "; +pickup lower_pen; +z1=(1.75tw,h-s); +revcomma z1; +end_char; + +beginchar(char 92, 5tw#, ch#, 0); "punctuation `` "; +pickup lower_pen; +z1=(1.75tw,h-s); z2=(w-1.5tw,h-s); +revcomma z1; revcomma z2; +end_char; + +beginchar(char 127, 5/18size#, 17/30 size#, 0); "trema (umlaut)"; +pickup lower_pen; +top.lft.z1 = (s,h-s); top.rt.z2=(w,h-s); +dot z1; dot z2; +end_char; + +beginchar(char 95, 3/18size#, 17/30 size#, 0); "dot accent"; +pickup lower_pen; +top.z1 = (w/2,h-.2s); +dot z1; +end_char; + +beginchar(char 16, 2tw#+.5s#, xh#, 0); "dotless i"; +pickup lower_pen; +x2=x3=w/2; lft.x1=.1s; rt.x4=w-.1s; y1=h-th; top.y2=h; bot y3=0; y4=th; +path stem; +stem = z1{dir40}..tension2..z2..tension5..z3..tension2.. + {dir40}z4; +draw if modern: subpath(0.8,2.2) of fi stem; +end_char; + +beginchar(char 17, 2tw#+.5s#, xh#, dh#); "dotless j"; +pickup lower_pen; +x2=w/2; lft x1=0; x4=w/2-.1s; y1=h-th; top.y2=h; bot.y6=-dh+.33th; +bot.y4=-dh+1.1th; x6=.1s; +path stem; +stem = z1{dir40}..tension2..z2..tension4.5.. + z4..tension.825..{dir133.5}z6; +draw if modern: subpath(0.8, 2.72) of fi stem; +end_char; + +beginchar(char 64, 4tw#+sw#, ch#, 0); "the at-sign"; +pickup lower_pen; +x1=x2=w-2tw; y1=y5=xh; +rt. x3=w-tw; y3=3th; bot.y6=bot.y2=2th; +lft x5=2.5tw; lft x6=2.25tw; +x7=x9=w/2; y7=xh+2.9th; y9=0; lft.x8=.33s; y8=h/2; rt.x10=w-.25s; y10=1.3th; +path rightstem; rightstem = z1..tension6.7 ..z2..tension2..{dir35}z3 + ..{left}z7..{down}z8..{right}z9..{dir36}z10; +z4 = rightstem horintersection .7xh; +draw if modern: subpath(0,5.92) of fi rightstem; +draw z4..tension3..z5..tension2.5..z6{right}..tension1.75..{up}z4; +end_char; + +beginchar(char 20, 6/18size#, 17/30size#, 0); "hatchek"; +pickup lower_pen; +lft.z1=(.5s,h+1.25s); rt.z3=(w-.25s,h+1.25s); z2=(.55[x1,x3],h-.5s); +draw z1{right}..tension1.5..z2 & z2..tension1.5..{right}z3; +end_char; + +beginchar(char 21, 6/18size#, 17/30size#, 0); "breve accent"; +pickup lower_pen; +lft.z1=(.5s,h+1.25s); rt.z3=(w-.25s,h+1.25s); +draw z1{down}..{up}z3; +end_char; + +beginchar(char 22, 6/18size#, 17/30size#, 0); "macron"; +pickup lower_pen; +lft.z1=(.5s,h); rt.z3=(w-.25s,h); +draw z1--z3; +end_char; + +beginchar(char 23, 1.5sw#, 17/30size#, 0); "circle accent"; +pickup lower_pen; +rt.z1=(2.5s,h+s); lft.z3=(w-2.4s,h+s); +draw z1{down}..{up}z3..cycle; +end_char; + +beginchar(char 24, 5/18size#, 0, 2/3dh#); "cedilla"; +pickup lower_pen; +z1=(w/2, 0); z2=(w/2, -1/4dh); z3=(w/3, -2/3dh); +draw z1---z2{right}..tension.8..{left}z3; +end_char; + +beginchar("^", 6/18size#, 17/30size#, 0); "circumflex"; +pickup lower_pen; +top.lft.z1=(.5s,h); top.rt.z3=(w-.25s,h); z2=(.55[x1,x3],h+1.35s); +draw z1{right}..tension1.5..z2 & z2..tension1.5..{right}z3; +end_char; + +beginchar("~", 6/18size#, 17/30size#, 0); "tilde"; +pickup lower_pen; +top.lft.z1=(.33s,h); top.rt.z4=(w,h+.85s); +x2=1/3[x1,x4]; x3=2/3[x1,x4]; +y2=y4; y1=y3; +draw z1{dir36}..z2..z3..{dir36}z4; +end_char; + diff --git a/fonts/vicentino/kraml/vcsmdig.mf b/fonts/vicentino/kraml/vcsmdig.mf new file mode 100644 index 0000000000..063244bb2f --- /dev/null +++ b/fonts/vicentino/kraml/vcsmdig.mf @@ -0,0 +1,99 @@ +% VCSMDIG - "small" (mediaeval style) digits for vicentino font +% w. kraml, 1991 + +% the figures start here +% small (nautic or old-style) figures +dig_w := 3/2sw#; +slant := upperslant; +currenttransform := identity slanted slant; + +beginchar("1", dig_w, digh#, 0); "the figure 1"; +pickup lower_pen; +top.lft.z1=(w/2,h); bot.lft.z2=(w/2,0); +lft.x1'=2s; z1-z1'=whatever*dir45; +draw z1'{dir35}..z1 & + z1{dir267}..tension7..{dir10}z2; +end_char; + +beginchar("2", dig_w, digh#, 0); "the figure 2"; +pickup lower_pen; +x1=w-x3=tw; x2=w/2; x4=w-x5=.5tw; +top.y2=h; bot.y4=bot.y5=0; +y1=y3=.625h; +path stem; +stem = z1..z2{right}..z3..{z4-z3}z4 & + z4{dir40}..if modern: tension2.. fi z5{dir40}; +draw stem; +end_char; + +beginchar("3", dig_w, digh#, digd#); "the figure 3"; +pickup lower_pen; +x1=x4-.5s=w-x3=tw; x2=x6=w/2; +lft.x7=.5s; rt.x5=w-.5tw; +top.y2=h; bot.y6=-digd; +y1-th=y3=.7[-digd,h]; y4=.52[-digd,h]; y5=.5[y6,y4]; y7=-digd+1.25th; +draw z1{z1-z5}..z2{right}..z3..{dir205}z4 & + z4{dir20}..z5{down}..z6{left}..z7; +end_char; + +beginchar("4", dig_w, digh#, digd#); "the figure 4"; +pickup lower_pen; +lft.x2=w-rt.x1=.33s; x3=x4=w-1.12tw; +top.y3=h; bot.y4=-digd; y2=y1=1/3[-digd,h]; +draw z1{dir160}..tension3..z2 & + z2{up}..tension1.5..{z3-z2}z3 & + z3{dir267}..tension7..{dir10}z4; +end_char; + +beginchar("5", dig_w, digh#, digd#); "the figure 5"; +pickup lower_pen; +rt.x1=w-.25s; rt.x4=w-.5tw; x2=2/3tw; lft.x3=lft.x5=.5s; +y1=top.y2=h; y3=.65[-digd,h]; bot.y5=-digd; y4=.55[y5,y3]; +draw z1{dir215}...z2{left} ---z3 & + z3{dir35}..z4{down}..tension1.5..{dir120}z5; +end_char; + +beginchar("6", dig_w, diga#, 0); "the figure 6"; +pickup lower_pen; +rt.x4=rt.x1=w-.5s; +lft.x2=.5s; x3=w/2; x5=.7[x2,x3]; +y1=h; bot.y3=0; +y2=y4=1/3h; y5=.6h; +draw z1{dir215}..z2{down}..z3{right}..z4..z5{dir190}; +end_char; + +beginchar("7", dig_w, digh#, digd#); "the figure 7"; +pickup lower_pen; +lft.x1=w-rt.x3=.5s; +x4=1.5tw; +top.y3=h; y4=-digd; bot.y1=h; +path stem; +stem=z1{dir260}..tension1.1..{right}z3 & + z3{curl0}..{dir-80}z4; +draw if modern: subpath(0.2,2) of fi stem; +end_char; + +beginchar("8", dig_w, diga#, 0); "the figure 8"; +pickup lower_pen; +x1=x2=x3=w/2; top.y1=h; bot.y3=0; y2=.55h; +lft.x4=w-rt.x5=.5s; y4=y5=.52[y3,y2]; +lft.x6=w-rt.x7=.6tw; y6=y7=.52[y2,y1]; +draw z1{right}..z7..z2..z4..z3{right}..z5..z6..cycle; +end_char; + +beginchar("9", dig_w, digh#, digd#); "the figure 9"; +pickup lower_pen; +lft.x4-.25s=lft.x1=.5s; +rt.x2=w-.75s; x3=w/2; x5=.7[x2,x3]; +y1=-digd; top.y3=h; +y2=y4=2/3[-digd,h]; y5=.4[-digd,h]; +draw z1{dir35}..z2{up}..z3{left}..z4..z5{dir10}; +end_char; + +beginchar("0", dig_w, digh#, 0); "the figure 0"; +pickup lower_pen; +rt x1=w-.85s; lft x3=.85s; y1=y3=.54h; +x2=x4=w/2; top.y2=h; bot.y4=0; +draw superellipse(z1,z2,z3,z4,0.685); +end_char; + diff --git a/fonts/vicentino/kraml/vct.mf b/fonts/vicentino/kraml/vct.mf new file mode 100644 index 0000000000..dc3987e4c4 --- /dev/null +++ b/fonts/vicentino/kraml/vct.mf @@ -0,0 +1,17 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991-2 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vct10.mf b/fonts/vicentino/kraml/vct10.mf new file mode 100644 index 0000000000..65a2bfcabc --- /dev/null +++ b/fonts/vicentino/kraml/vct10.mf @@ -0,0 +1,16 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vct14.mf b/fonts/vicentino/kraml/vct14.mf new file mode 100644 index 0000000000..e5f2283bd2 --- /dev/null +++ b/fonts/vicentino/kraml/vct14.mf @@ -0,0 +1,16 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := false; + +% metrics +size#:=14pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vcta.mf b/fonts/vicentino/kraml/vcta.mf new file mode 100644 index 0000000000..05354d074e --- /dev/null +++ b/fonts/vicentino/kraml/vcta.mf @@ -0,0 +1,17 @@ +% VCTALT - Vicentino Twist (twisted cursive) +% w. kraml, 1991 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcta10.mf b/fonts/vicentino/kraml/vcta10.mf new file mode 100644 index 0000000000..632bd276a2 --- /dev/null +++ b/fonts/vicentino/kraml/vcta10.mf @@ -0,0 +1,16 @@ +% VCTALT - Vicentino Twist (twisted cursive) +% w. kraml, 1991 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := false; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vcta14.mf b/fonts/vicentino/kraml/vcta14.mf new file mode 100644 index 0000000000..8808e65ab9 --- /dev/null +++ b/fonts/vicentino/kraml/vcta14.mf @@ -0,0 +1,16 @@ +% VCTALT - Vicentino Twist (twisted cursive) +% w. kraml, 1991 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := false; + +% metrics +size#:=14pt#; % design size + +input vcaltdri; +end; + diff --git a/fonts/vicentino/kraml/vctb.mf b/fonts/vicentino/kraml/vctb.mf new file mode 100644 index 0000000000..c211492650 --- /dev/null +++ b/fonts/vicentino/kraml/vctb.mf @@ -0,0 +1,17 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991-2 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vctb10.mf b/fonts/vicentino/kraml/vctb10.mf new file mode 100644 index 0000000000..c3389f7d21 --- /dev/null +++ b/fonts/vicentino/kraml/vctb10.mf @@ -0,0 +1,16 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vctb14.mf b/fonts/vicentino/kraml/vctb14.mf new file mode 100644 index 0000000000..ff8ae36e2d --- /dev/null +++ b/fonts/vicentino/kraml/vctb14.mf @@ -0,0 +1,16 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991-2 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := true; + +% metrics +size#:=14pt#; % design size + +input vcdriver; +end; + diff --git a/fonts/vicentino/kraml/vctba.mf b/fonts/vicentino/kraml/vctba.mf new file mode 100644 index 0000000000..f5583d22e0 --- /dev/null +++ b/fonts/vicentino/kraml/vctba.mf @@ -0,0 +1,19 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991 + +input local; +mode=hplaser; mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; + +% finis amen +end; + diff --git a/fonts/vicentino/kraml/vctba10.mf b/fonts/vicentino/kraml/vctba10.mf new file mode 100644 index 0000000000..00cb733d04 --- /dev/null +++ b/fonts/vicentino/kraml/vctba10.mf @@ -0,0 +1,18 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := true; + +% metrics +size#:=10pt#; % design size + +input vcaltdri; + +% finis amen +end; + diff --git a/fonts/vicentino/kraml/vctba14.mf b/fonts/vicentino/kraml/vctba14.mf new file mode 100644 index 0000000000..8ab9cce74c --- /dev/null +++ b/fonts/vicentino/kraml/vctba14.mf @@ -0,0 +1,18 @@ +% VCT - Vicentino Twist (twisted cursive) +% w. kraml, 1991 + +mode_setup; + +boolean modern, twisted, bold; + modern := true; + twisted := true; + bold := true; + +% metrics +size#:=14pt#; % design size + +input vcaltdri; + +% finis amen +end; + diff --git a/fonts/vicentino/kraml/vcupper.mf b/fonts/vicentino/kraml/vcupper.mf new file mode 100644 index 0000000000..e2b1ad79bb --- /dev/null +++ b/fonts/vicentino/kraml/vcupper.mf @@ -0,0 +1,389 @@ +% upper case: +slant := upperslant; +currenttransform := identity slanted slant; + +beginchar("A", 2.75sw#, ch#, 0); "the letter A"; +pickup lower_pen; +lft.x1=w-rt.x5=0; x2=1.25tw; w-x4=tw; +x3= if modern: .56[x2,x4] +else: x4-(y3-y4)*upperslant +fi; +top.y1=bot.y2=bot.y4=0; top.y3=h; y5=3/4th; +path p; +p=z1{right}..z2..tension3..z3---z4...{dir35}z5; +draw if modern: subpath(0.5,3.37) of fi p; +z7=(subpath(2,3) of p) horintersection 1/3h; +y6=y7; rt.x6=x2+.25s; +draw if modern: subpath(0.18,1) of fi z6..z7; +end_char; + +beginchar("B", 2.25sw#, ch#, 0); "the letter B"; +pickup lower_pen; +x1=x2+tw=1.5tw; x3=w-2.35tw; x4=.53[x2,x3]; +x1'=x1''=tw; y1'=h-4.5th; y1''=4.5th; +top.y1=h; y2=-th; top.y3=h; y4=.56h; bot.y5=0; +z5=(z1''{down}...z2{dir215}) horintersection y5; +path curve; +curve=z1{dir215}...z1'{down}..z1''{down}..z5..z2{dir215} + ..z3{right}..{left}z4 & z4{right}..tension.75..{dir155}z5; + +draw subpath(0.1,3) of curve; +draw if modern: subpath(4.9,7) else: subpath(4.87,7) fi of curve; +end_char; + +beginchar("C", 2.75sw#, ch#, 0); "the letter C"; +pickup lower_pen; +lft.x1=0; x4=tw; x2-3s=x3-2s=x5=w/2; x6=w-.5tw; +y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.5h; +path curve; +curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6; +draw if modern: subpath(1.25,5) else: subpath(1,5) fi of curve; +end_char; + +beginchar("D", 2.5sw#, ch#,0); "the letter D"; +pickup lower_pen; +x1=x2+tw=x1'+.5tw; x3=x1+1.1tw; rt.x4=w-.25s; +x1'=x1''=1.1tw; y1'=h-4.25th; y1''=4.25th; +top.y1=h; y2=-th; top.y3=h; y4=.53h; bot.y5=0; +z5=(z1''{down}...z2{dir215}) horintersection y5; +lft.z3'=(.1s, h-th); +path stem, curve; +stem=z1{dir215}...z1'{down}..z1''{down}..z5; +curve=z3'{dir36}..z1..z3...z4{down}..tension.85..{dir164}z5; +draw stem; +draw if modern: subpath(.25,4) of fi curve; +end_char; + +beginchar("E", 2.5sw#, ch#, 0); "the letter E"; +pickup lower_pen; +lft.x1=0; x4=tw; x2-3s=x3-2s=x5=w/2; x6=w-.5tw; +y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.5h; +path curve; +curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6; +draw if modern: subpath(1.25,5) else: subpath(1.15,5) fi of curve; +y7=y8; x7=.5tw; y7=.52h; +x8=w-1.25tw; +draw z7--z8; +end_char; + +beginchar("F", 2.5sw#, ch#, 0); "the letter F"; +pickup lower_pen; +x1=x2=.475w; y2=0; +lft.x3=0; y3=-2/3dh; top.y1=h; +path p; +p=z1..z2{down}...{dir150}z3; +lft.x4=.2tw; x5=.26w; x6=.8w; rt.x7=w-.1s; +y4=h-4.5th; top.y5+.15s=top.y6=h; y7=h; +path curve; +curve=z4{dir125}..z5..tension1.25..z1---z6...z7; +draw if modern: subpath(0,1.7) of fi p; +draw if modern: subpath(.6,3.65) of fi curve; +y7'=y8; +x7'=w/3; y7'=.55[y3,y1]; +x8=w-.77tw; +draw if modern: subpath(.09,.9) of fi (z7'--z8); +end_char; + +beginchar("G", 2.75sw#, ch#, 0); "the letter G"; +pickup lower_pen; +lft.x1=0; x4=3/4tw; x2-3s=x3-2s=x5=w/2; x6=w-.7tw; +x8=x6; x7-s=w/2; +y7=y8-.18th=2/3xh; +y1=y2=.7h; y3=h; y5=0; y6=1.5th; y4=.48h; +path curve, second; +curve=z1{dir35}..tension.9..z2{dir35}..tension.85..z3{left}..z4..z5{right}..z6; +second= z7{dir14}...z8 softjoin z8{dir260}..{down}z6; +draw if modern: subpath(1.3,5) else: subpath(1.15,5) fi of curve; +draw second; +end_char; + +beginchar("H", 2.65sw#, ch#, 0); "the letter H"; +pickup lower_pen; +x1=x2=x3+.75s=1.5tw; y2=3th; +bot.y3=0; top.y1=h; +y1'=h-1.25th; z1-z1'=whatever*dir25; +path p,q; +p=z1'..tension11..z1{down}..z2{down}...{dir200}z3; +draw if modern: subpath(.75,2.95) of fi p; +rt.x4=w-1/3s; x5+1/2s=x6=w-1.2tw; rt.x7=w-.5s; +top.y4=h; y5=.52h; bot.y6=0; y7=th; +q=z4{dir169}...z5{down}...{right}z6...{dir35}z7; +draw if modern: subpath(.12,2.2) of fi q; +y8=y5; x8=.8tw; draw if modern: subpath(.05,1) of fi (z8--z5); +if not.modern: +cap_bot_serif(x2); +fi +end_char; + +beginchar("I", 1.5sw#, ch#, 0); "the letter I"; +pickup lower_pen; +x1=x2=x3+.75s=w/2 +.25s; y2=3th; +bot.y3=0; top.y1=h; +path p; +p=z1..z2{down}...{dir200}z3; +draw if modern: subpath(0,1.95) of fi p; +if not.modern: +cap_top_serif(x2,1.18tw); +cap_bot_serif(x2); +fi +end_char; + +beginchar("J", 1.5sw#, ch#, 0); "the letter J"; +pickup lower_pen; +x1=x2=w/2 +.25s; y2=0; rt.x3=-s; +y3=-2/3dh; top.y1=h; +path p; +p=z1..z2{down}...{dir150}z3; +draw if modern: subpath(0,1.95) of fi p; +if not.modern: +cap_top_serif(x2,1.18tw); +fi +end_char; + +beginchar("K", 2.5sw#, ch#, 0); "the letter K"; +pickup lower_pen; +x1=x2=x3+.75s=1.5tw; y2=3th; +bot.y3=0; top.y1=h; +y1'=h-1.25th; z1-z1'=whatever*dir25; +path p; +p=z1'..tension11..z1{down}..z2{down}...{dir200}z3; +draw if modern: subpath(0.7,2.95) of fi p; +pickup lower_pen; +x4=w-tw; lft.x5=rt.x2; x6=w+1.5tw; +y4=h; y5=.53h; y6=-1.33th; +path q; +q=z4{dir-80}..{dir225}z5 & z5{dir-49}..tension if modern: 1.4 else: 1.2 fi + ..{dir35}z6; +draw if modern: subpath(0.04,1.66) of fi q; +if not.modern: +cap_bot_serif(x2); +fi +end_char; + +beginchar("L", 2.25sw#, ch#, 0); "the letter L"; +pickup lower_pen; +x3'-.5s=x4'=1.1tw; x2-s=x3=w/2+1s; lft.x5=0.5s; x6=w-.5tw; x6'=w-2tw; +y2=.7h; y3=h; y5=bot.y5'=bot.y6'=0; +y6=1.5th; y4'=2th; y3'=h-2.5th; +path p, q; +p=z2{dir35}..z3{left}..tension.95..z3'.. + tension if modern: 1.9 else: 1.5 fi ..z4'..z5{dir205}; +z5'=p horintersection y5'; +q = z5'{dir if modern: 10 else: 15 fi}..z6'{right}..{dir80}z6; +draw if modern: subpath(1.33,3.8) else: subpath(0,4) fi of p; +draw if modern: subpath(0,1.8) of fi q; +labels(3',4'); +end_char; + +beginchar("M", 3.5sw#, ch#, 0); "the letter M"; +pickup lower_pen; +lft.x1=.1s; x3=w/2+1/4s; x2-.5s=w-x4=1.8tw; rt.x6=w-.15s; x5=w-tw; +bot.y1=0; bot.y3= +bot.y5=0; y6=th; top.y2=y4=h; +x1'=1.15tw; y1'=th; +z2'=(1.3tw,h); +path p,q; +p = z1{dir-55}..z1'..tension1.4..{dir78}z2; +q = z2'{dir40}.. z2{dir-62}..tension if modern: 1.9 else: 1.7 fi ..z3{down} + & z3{dir89}..tension1.15..z4{dir70} + & z4{dir280}..tension if modern: 6 else: 5 fi ..z5{right}..z6; +draw if modern: subpath(.36,2) of fi p; +draw if modern: subpath(.8,4.3) of fi q; +end_char; + +beginchar("N", 2.75sw#, ch#, 0); "the letter N"; +pickup lower_pen; +lft.x1=.2s; x4=w; x2=1.5tw; x3=w-1.2tw; +bot.y1=0; bot.y3=.66s; top.y2=y4=h+.1s; +x1'=1.25tw; y1'=.5th; z2'=(.75tw,h); +bot.rt.z3'=(w,0); z4'=(w-1.15tw, h-1.2th); +path p,m,mt,q; +p = z1{dir-56}..z1'...{up}z2 ; +q = z3{dir96}..tension2..z4'...{dir-22}z4; +m = z2'{dir40} .. z2{dir-55}..tension if modern: 1.15 else: 1.05 fi ..z3 + ..{dir30}z3'; +draw if modern: subpath(.67,2) of fi p; +draw if modern: subpath(.83,2.5) of fi m; +draw if modern: subpath(0,1.4) of fi q; +end_char; + +beginchar("O", 2.75sw#, ch#, 0); "the letter O"; +pickup lower_pen; +numeric dev; dev=3/4s; +rt.x1=w-s; lft.x3=s; +x2-dev=x4+dev=w/2; +y1-dev=y3+dev=.52h; +top.y2=h; bot.y4=0; +draw superellipse(z1,z2,z3,z4,.74); +end_char; + +beginchar("P", 2.25sw#, ch#, 0); "the letter P"; +pickup lower_pen; +x1=x2=x3+.75s=1.5tw; y2=3th; +bot.y3=0; top.y1=h; +path p; +p=z1..z2{down}...{dir200}z3; +lft.x4=.1s; x5=.55w; x6=w-.6tw; lft.x7=rt.x1+.1s; +y4=h-th; top.y5=h; y6=.74h; y7=.45h; +path curve; +curve=z4{dir36}..z1..z5..{down}z6..{dir158}z7; +draw p; +draw if modern: subpath(.55,4) of fi curve; +if not.modern: +cap_bot_serif(x2); +fi +end_char; + +beginchar("Q", 2.75sw#, ch#, 0); "the letter Q"; +pickup lower_pen; +numeric dev; dev=3/4s; +rt.x1=w-s; lft.x3=s; +x2-dev=x4+dev=w/2; +y1-dev=y3+dev=.52h; +top.y2=h; bot.y4=0; +path p,q; +p=superellipse(z1,z2,z3,z4,.74); +z5 = (1.2tw,-th); z4'=(x4,0); +z6 = (w+1.5tw,-1.33th); q=z5{dir30}..z4'{right}..{dir35}z6; +draw p; draw if modern: subpath(.35,1.7) of fi q; +end_char; + +beginchar("R", 2.5sw#, ch#, 0); "the letter R"; +pickup lower_pen; +x1=x2=x3+.75s=1.5tw; y2=3th; +bot.y3=0; top.y1=h; +path p; +p=z1..z2{down}...{dir200}z3; +lft.x4=0; x5=.55w; x6=w-1.33tw; lft.x7=rt.x1+.1s; +y4=h-th; top.y5=h; y6=.77h; y7=.52h; +x9=w+ if twisted: .3 else: 1.5 fi tw; +y9=if twisted: 1.95th else: -1.33th fi; +x7'= if twisted:.5 else:.36 fi[x7,x9]; +y7'= if twisted: .77 else:.36 fi[y7,y9]; +path curve; +curve=z4..z1..z5..{down}z6..z7 & z7{dir-10}..if modern: tension.8.. fi + z7'..if twisted: tension.77..{dir85} else:{dir36} fi z9; +draw p; +draw if modern: if twisted: subpath(.55,5.7) else: subpath(.55,5.4) fi of fi +curve; +if not.modern: cap_bot_serif(x2); fi +end_char; + +beginchar("S", 2.35sw#, ch#, 0); "the letter S"; +pickup lower_pen; +x1=x2=w/2; if modern: top. else: fi y1=h; bot.y2=0; +x3=1.25tw; rt.x4=w-.5s; y3=.78h; y4=.3h; +x5=w-1.2tw; lft.x6=0.75s; y5=y3+1.15th; y6=y4-1.75th; +path trial,p; +trial = z3{down}..tension1.1..{down}z4; +z7 = trial intersectionpoint (z6{up}..{up}z5); +p = z7..tension1.3..z5..z1{left}..z3{down}..tension1.1.. +z4{down}..z2{left}..z6..tension2.5..cycle; +draw subpath if modern:(.77,6.11) else: (.75,6.23) fi of p; +end_char; + +beginchar("T", 2.5sw#, ch#, 0); "the letter T"; +pickup lower_pen; +x1=x2=x3+.75s=.56w; y2=3th; +bot.y3=0; top.y1=h; +path p; +p=z1..z2{down}...{dir200}z3; +lft.x4=.2tw; x5=.26w; x6=.8w; rt.x7=w-.1s; +y4=h-4.5th; top.y5+.15s=top.y6=h; y7=h; +path curve; +curve=z4{dir125}..z5..tension1.25..z1---z6...z7; +draw p; +draw if modern: subpath(.62,3.53) of fi curve; +if not.modern: +cap_bot_serif(x2); +fi +end_char; + +beginchar("U", 2.6sw#, ch#, 0); "the letter U"; +pickup lower_pen; +x3=2.1tw; x4=x5=w-1.1tw; x1=if modern: 1.5 else:2 fi tw; rt.x6=w; +lft.x1'=s; y1'=.4h; +top.y4=h; bot.y3=bot.y5=0; +top.y1=h; y6=1.25th; +x4'=x4-.25s; y4'=xh-s; +y2'=h-.85th; z4-z2'=whatever*dir22; +path lstem, rstem; +lstem=z1..{down}z1'..z3{right}..tension1.2..{dir80}z4'; +rstem=z2'..tension11..z4{down}..z4'..tension5.5..z5{right}.. + tension1.2..{dir36}z6; +draw lstem; +draw if modern: subpath(.67,3.3) of fi rstem; +if not.modern: cap_top_serif(x1-.2tw,.2tw); fi +labels(4'); +end_char; + +beginchar("V", 2.6sw#, ch#, 0); "the letter V"; +pickup lower_pen; +x4-x5=.85tw; +x1=if modern:1.25 else: 2 fi tw; rt.x4=w-.85tw; x3=1/3[x1,x4]; +top.y4=h; top.y1=h; y5=h-1.5th; bot.y3=0; +path stem; +stem =z1{dir200}..tension3.. + z3{right}..tension2.5..z4{left}..tension1.5..z5; +draw if modern: subpath(0,2.1) of fi stem; +if not.modern: cap_top_serif(x1-.2tw,.2tw); fi +end_char; + +beginchar("W", 3.25sw#, ch#, 0); "the letter W"; +pickup lower_pen; +x7-x8=.9tw; +x1=if modern:1.25 else: 2 fi tw; rt.x7=w-.85tw; x3=1/3[x1,x4]; +x7-x4=x6-x3=x4-x1; +top.y7=top.y1=h; y8=h-1.5th; bot.y3=bot.y6=0; y4=xh+s; +path lstem, rstem; +lstem=z1{dir200}..tension3.. + z3{right}..tension2.25..z4{dir125}; +rstem=z4{dir-10}..tension6..z6{right}..tension2.5..z7{left}..tension1.5..z8; +draw if modern: subpath(0,2.9) of fi lstem; +draw if modern: subpath(0.1,2.15) of fi rstem; +if not.modern: cap_top_serif(x1-.2tw,.2tw); fi +end_char; + +beginchar("X", 2.65sw#, ch#, 0); "the letter X"; +pickup lower_pen; +x1=1.3tw; lft.x5=.5s; x6=1tw; lft.x1'=.275tw; +x7=w-1.25tw; rt.x8=w-s; rt.x4=w-1/3s; x3=w-1.25tw; +top.y7=h; top.y1=h; y8=h-1.25th; y1'=h-th; +y5=y4=1.25th; 0=bot.y6=bot.y3; +path nwso, swno; +nwso=z1'..z1{right}..tension if modern:8 else: 6 fi + ..{right}z3...{dir35}z4; +swno=z5..tension2..z6{right}..tension2.5..{right}z7...{dir-65}z8; +draw if modern: subpath(.7,2.3) of fi nwso; +draw if modern: subpath(.8,2.2) of fi swno; +end_char; + +beginchar("Y", 2.5sw#, ch#, 0); "the letter Y"; +pickup lower_pen; +x2=w/2; lft.x1=w-rt.x3=.25s; +bot.y2=0; top.y1=top.y3=h; +z8=(x2,.4xh); +path lp,rp; +lp=z1{dir35}..tension1.625..{dir267}z8---z2; +rp=z8{up}..tension1.45..{dir-20}z3; +draw if modern: subpath(.08,2) of fi lp; +draw if modern: subpath(0,.9) of fi rp; +if not.modern: cap_bot_serif(x2); fi +end_char; + +beginchar("Z", 2.35sw#, ch#, 0); "the letter Z"; +pickup lower_pen; +lft.x1=lft.x4=0.25tw; rt.x3+1/3tw=w; +x2=1.25tw; +top.y2=top.y3=h; y1=h-1.5th; bot.y4=0; +z6=(w+1.5tw, -1.33th); +path stem; +stem=z1{dir38}...z2.. + if modern: tension 1.2 else: tension.85 fi .. + {dir40}z3 & z3..tension6.. {dir265}z4 & + z4{dir35}..{dir35}z6; +draw if modern: subpath(.25,3.77) of fi stem; +y7=y8=.55h; x7+.75tw=x8-.925tw=w/2; +draw z7--z8; +end_char; + diff --git a/fonts/vicentino/kraml/vortrag.tex b/fonts/vicentino/kraml/vortrag.tex new file mode 100644 index 0000000000..0a7ee6c1c6 --- /dev/null +++ b/fonts/vicentino/kraml/vortrag.tex @@ -0,0 +1,387 @@ +\documentclass[draft,12pt,a4paper,german]{article} +\usepackage[german]{babel} +%Updated to Latex2e by James Kifiger. +\newcommand{\MF}{Metafont} +\title{Die humanistische Kursive von Arrighis Operina bis \MF{} -- ein +typographischer Versuch} +\author{Willibald Kraml} +\usepackage[T1]{fontenc} + +\begin{document}\tolerance 300 +\maketitle + +\section{Die kursive Kanzleischrift im humanistischen Italien} + +Im 15. und 16. Jahrhundert waren in Italien vor allem zwei +Handschriftenformen im Gebrauch: die humanistische Minuskelschrift oder +Antiqua, eine eher statisch und klassisch wirkende Schrift, die letztlich +auf die karolingische Minuskel zur"uckgeht, aber von den Humanisten +\glqq irrt"umlich\grqq f"ur eine schon in der Antike vorhandene (und darum auch +besonders gesch"atzte) Schrift gehalten wurde (und eben darum auch +\glqq Antiqua\grqq +genannt wurde). Sie wurde vor allem f"ur sch"on ausgearbeitete Manuskripte +verwendet. Die zweite "ubliche Schrift war dynamischer, rascher zu schreiben +und dementsprechend die \glqq Alltagsschrift\grqq der gelehrten Schichten +(und nur +die konnten "uberhaupt lesen und schreiben). Sie war unter dem Namen +\glqq Cancellaresca\grqq oder \glqq Cancellaresca bastarda\grqq , also +\glqq Kanzleischrift\grqq +bekannt. Auch \glqq Cancellaresca corsiva\grqq war ein g"angiger Ausdruck, +der sich +auf die M"oglichkeit bezog, diese Schrift sehr fl"ussig schreiben zu k"onnen. + +In der ersten H"alfte des 16. Jh. erschienen einige sogenannte +\glqq Schreibmeisterb"ucher\grqq , in denen die korrekte Art gelehrt wird, diese +Kanzleischrift zu schreiben (was mit der korrekten Art, die Feder zu +schneiden und beim Schreiben zu halten, beginnt). + +Das erste (und im Titel des Vortrags schon genannte) ist das Werk +\glqq .......\grqq des Ludovico degli Arrighi, der auch Ludovico de Henriciis +(?) oder +(nach seiner Herkunft) Vicentino genannt wird. +Er war von Beruf Schreiber und Kalligraph in den Kanzleien des Vatikan. +Sein Buch wurde nach seiner handgeschriebenen Vorlage Seite f"ur Seite in +Holz geschnitten und so gedruckt (nach der Methode der \glqq Blockb"ucher\grqq +, die +schon vor Gutenbergs Erfindung in Gebrauch waren). Dadurch ging nat"urlich +ein wesentlicher Teil der Qualit"at der Handschrift verloren. + +Ein Hauptkonkurrent Vicentinos war Giovambattista Palatino, der sein Werk +\glqq ........\grqq nur kurze Zeit sp"ater zur Publikation brachte. Sein Name +ist den +typographisch Interessierten nat"urlich von der gleichnamigen Schrift Hermann +Zapfs bekannt. + +Diese Schriftformen blieben beinahe ohne Ver"anderungen "uber etwa 200 Jahre +in Gebrauch, und zwar nicht nur in Italien, sondern im Lauf der Zeit in fast +ganz Europa. So gibt es entsprechende Lehrb"ucher bzw. Abhandlungen "uber +diese Schrift auch von Erasmus, ..... + + +\section{Das Formeninventar der humanistischen\\Kursiven} + +Das Inventar der meisten kursiven Minuskeln l"a"st sich auf ganz wenige +Grundformen zur"uckf"uhren, die z.B. in den Buchstaben f, o und n prototypisch +vorhanden sind. Aus der Grundform des f (und der Langform des s) sind auch +die Ober- und Unterl"angen gebildet. Diese Einheitlichkeit der Formen, +verbunden mit einer ziemlich starren Federhaltung und gleichm"a"sigem +Federdruck f"uhrt zu einer "asthetisch durchaus anspruchsvollen, fast +\glqq kalligraphisch\grqq zu nennenden Schrift. Der daraus resultierende +Nachteil +ist die nur mittelm"a"sig gute Lesbarkeit, die sich aus dem Mangel an +differenzierten Formen ergibt (gerade in der Zone der Oberl"angen und der +oberen H"alfte der Mittell"angen, die nach modernen Erkenntnissen f"ur die +Lesbarkeit besonders wichtig sind). Auch die H"aufung der +\glqq r"uckw"arts\grqq +gewandten Unterl"angen ist zwar reizvoll, vermindert aber eher das erzielbare +Lesetempo (anders steht es nat"urlich um das Schreibtempo: die Formen der +Kursive lassen sich ganz besonders rasch schreiben, vor allem im Vergleich +zur Antiqua, die h"aufigeres Absetzen und auch zahlreicheres Verdrehen der +Federstellung bzw. Druckwechsel verlangt). + +Auff"allig ist, da"s die Schr"aglage anf"anglich nicht sehr ausgepr"agt oder +auch +gar nicht vorhanden war. Sie war eher eine mehr oder minder zuf"allig +hinzukommende Eigenschaft, die sich aus dem raschen und fl"ussigen Schreiben +ergab, die aber nicht als wesentlich angesehen wurde. + +Nun zu einigen Buchstaben (Minuskeln) im Detail: +\begin{itemize} +\item[a] Das a hat eine deutlich andere Form als bei der Antiqua -- es besteht +sozusagen aus den Grundformen des o und des i, wobei allerdings die +Rundung des o in "alterer Zeit stets in eine ann"ahernde Dreiecksform +aufgel"ost ist. + +\item[g] Das g kommt in zwei Varianten vor, einer vom a abgeleiteten mit +einer weit ausladenden unteren Schleife, und in der Variante, die in der +Antiqua die gew"ohnliche Form darstellt. Diese Form ist vor allem bei +Ludivico sehr beliebt und weist bei ihm eine spezielle Eigenart auf: es +fehlt das sonst gew"ohnlich vorhandenen \glqq Ohr\grqq . + +\item[h] Das h ist in der handgeschriebenen Kursive immer sehr formverwandt +mit dem b, und auch in den Schreibmeisterb"uchern wird dieser Umstand betont: +das h ist ein unten offenes b. + +\item[k] Das k weist immer eine Schlaufe auf. + +\item[s] Das s begegnet uns in zwei Formen: dam kurzen oder runden s und +dem langen s (das wie das f, aber ohne Querstrich geschrieben wird). +Wichtig (heute nur mehr f"ur die Deutschsprachigen) ist die ss-Ligatur, die +entweder in Form von zwei langen s, oder aber h"aufiger in der Kombination +aus langem und kurzem s vorkommt, eine Ligatur, die im Deutschen noch als +scharfes s fortlebt, leider aber oft f"alschlicherweise als \glqq sz\grqq +bezeichnet +wird, eine Zeichenfolge, die es im Deutschen sprachhistorisch nie gegeben +hat. Die ss-Ligatur (ebenso wie die Langform des s) war "ubrigens auch in der +Antiqua zuhause und in praktisch allen Sprachen, die das Lateinalphabet +verwenden, bis ins neunzehnte Jahrhundert hinein in Gebrauch. Der deutsche +\glqq Alleinanspruch\grqq auf das "s ist also noch nicht sehr alt! Aus dem +Gesagten +ergibt sich nat"urlich auch, da"s etwa der Usus der Schweizer, bei gewissen +Schrifttypen (z.B. in Schreibmaschinenschriften) kein "s, sondern ein ss zu +schreiben, eigentlich durchaus rechtens ist und konsequent, da in diesen +Schriften auch sonst keine Ligaturen verwendet werden. +\end{itemize} + +Neben der ss-Ligatur kommen auch eine ganze Reihe von anderen +\textbf{Ligaturen} vor, von denen einige im Lauf der Zeit v"ollig +untergegangen sind, andere sich nur teilweise erhalten haben (z.B. st, +sp und so weiter). + +Die \textbf{Gro"sbuchstaben} (Majuskeln) stellen ein Problem f"ur sich dar: zum +einen kommen sie in den nicht-deutschen Sprachen vergleichsweise selten vor +und beschr"anken sich auf die Initialen von Namen oder von S"atzen bzw. +Abschnitten. Gerade als Initialen legte man fr"uher gro"sen Wert auf +ausgeschm"uckte Formen, auch wenn die f"ur sich genommen vielleicht kaum mehr +lesbar sind. Die Majuskeln sind sowohl in der Antiqua als auch in der +Cancellaresca ein eigentlich fremdes Element, da sie direkt auf die Formen +der lateinischen Antike zur"uckgehen, w"ahrende die Minuskeln das Ergebnis +einer mehrhundertj"ahrigen kontinuierlichen Entwicklung sind. + +Bei der Antiqua ist dies nicht so auff"allig, weil sie sich in ihrer +Entwicklung aus den karolingischen Minuskeln wieder hin zu mehr Statik +ge"andert hat und damit gut zu den ebenfalls statischen Formen der Kapitalis +pa"st. Im Humanismus wurden dann noch die Serifen bei den Minuskeln in der +Art der Serifen der Kapitalis eingef"uhrt, wodurch ein starkes gemeinsames +Formelement vorhanden war. + +In der kursiven Kanzleischrift verwendete man zun"achst im Textinneren +ebenfalls die gew"ohnlichen Kapitalisbuchstaben als Gro"sbuchstaben, obwohl +sie dort vielmehr den Charakter eines Fremdk"orpers haben. F"ur die Initialen +am Textanfang begann man mit sehr kunstvollen, ja geradezu manierierten +Formen zu experimentieren, die dann teilweise (in ihren etwas einfacheren +Formen) auch im Textinneren Verwendung fanden. Die Anf"ange der kursiven +Gro"sbuchstaben wirken auf unser Auge mit wenigen Ausnahmen nur grotesk und +unproportioniert. Man vergleiche das Blatt der kursiven Majuskeln im +Lehrbuch des Palatino mit seinem Schriftkunstwerk, das aus lateinischen +Kapitalisbuchstaben besteht, und man wird verstehen, was ich meine. + +\section{Die Kursive als Drucktype} + +Schon bald begann man, die Kursive auch als Vorlage f"ur Drucktypen zu +verwenden, hatte aber dabei mit einem technischen Problem zu k"ampfen, n"amlich +den "Uberh"angen der Ober- und Unterl"angen. Zum ersten Mal begegnet uns eine +kursive Drucktype in einem bei Aldus Manutius gedruckten Buch im Jahre 1501, +sie stammt von Francesco Griffo. Er zieht sich aus der Aff"are, indem er die +Ober- und Unterl"angen der Antiqua ann"ahert und mit Serifen versieht, nur +f und s behalten ihre geschwungene Form (wobei sie bei den Unterl"angen etwas +\glqq gestutzt\grqq wird). Griffo verwendet nur f"ur die Minuskeln kursive +Formen, und +zwar in leichter Schr"aglage, als Gro"sbuchstaben werden normale +(geradestehende) Kapitalisbuchstaben (die Gro"sbuchstaben der Antiqua) +verwendet. + +Durch die Ann"aherung an das Formeninventar erreicht Griffo, da"s die +"Uberh"ange nicht mehr allzu h"aufig sind; was er (wahrscheinlich wohl +unbewu"st) auch erreicht, ist eine besserer Lesbarkeit durch gr"o"sere +Differenzierung in den Ober- und Unterl"angen. + +Wichtig ist die Verwendung dieser neuen Drucktype: Sie wird als +eigenst"andige Buchschrift verwendet und nicht etwa als Auszeichnungsschrift +in Erg"anzung zur Antiqua, wie dies heutzutage f"ur gew"ohnlich der Fall ist. +Die Verwendung zur Auszeichnung kommt erst einige Zeit sp"ater in Gebrauch, +wobei sich die Kursive als selbst"andige Buchschrift durchaus noch einige +Zeit halten konnte. + +Die Tendenz der immer gr"o"seren Ann"aherung der Kursiven an das +Formeninventar der Antiqua ist auch in den folgenden Jahrhunderten +zu beobachten und steht nat"urlich mit der neuen Funktion der +Auszeichnungsschrift in Zusammenhang. Ein wichtiger Schritt in diese +Richtung wird dem Wiener Buchdrucker Johann Singriener zugeschrieben, der +1524 zum ersten Mal schr"agstehnde Kapitalisbuchstaben verwendet. Aber noch +um 1550 werden in Frankreich kursive Schriften mit geradestehenden +Gro"sbuchstaben verwendet. Und lange Zeit sp"ater noch werden dann die +Gro"sbuchstaben zwar schr"aggestellt, allerdings weniger schr"ag als die +korrespondierenden Minuskeln. Der Endpunkt +dieser Entwicklung findet sich in unserem Jahrhundert in der +\glqq schr"aggestellten Antiqua\grqq (vgl. Knuths \emph{Computer Modern +Slanted}, bei +der ausschlie"slich nur mehr die Antiquaformen vorkommen, allerdings in +Schr"aglage, womit auch das urspr"unglich nur akzidentelle Merkmal zum +dominierenden, ja zum alleinigen Merkmal wurde. Das gleiche finden wir bei +den schr"agen Formen zu den serifenlosen Schriften. So kommt es, da"s heute +die meisten Leute \emph{kursiv} als gleichbedeutend mit \emph{schr"ag} sehen. + +Die n"achsten bedeutenden Versuche nach Griffo, die kursive Schreibschrift +auch als Druckschrift einzusetzen, finden wir bei dem uns schon bekannten +Ludovico Vicentino. Zwei oder drei Drucktypen wurden von ihm entworfen und +von dem ber"uhmten Drucker Blado verwendet, wobei er sich bei seiner ersten +Drucktype bem"uht, den urspr"unglichen Duktus der geschriebenen Schrift +m"oglichst getreu beizubehalten. Sp"ater folgt er (wohl auch prim"ar aus +technischen Gr"unden) dem Beispiel Griffos und n"ahert seine Formen der +Antiqua an. Die Schriftschnitte Vicentinos wurden in unserem Jahrhundert +wieder neu entdeckt und sch"atzen gelernt, was hervorragenden +Pers"onlichkeiten wie dem englischen Kalligraphen Edward Johnston und dem +Typographen Stanley Morison, dem Designer der heutzutage ja schon +notorischen \emph{New Times Roman}, oder dem Drucker Hans Mardersteig zu +verdanken ist. Die Lanston Monotype Corporation, deren typographischer Leiter +Stanley Morison war, hat sich dabei besondere Verdienste erworben -- dieselbe +Lanston Monotype Corporation, die heuer aufgrund wirtschaftlicher +Schwierigkeiten zu existieren aufgeh"ort hat. + +\section{Die Renaissance der \glqq Chancery\grqq } + +Die Wiederentdeckung der alten Kursiven Arrighis war auch der Anfang einer +bescheidenen Renaissance der Kursiven als Buchschrift. Die englische +Rilke-Ausgabe der Weimarer \emph{Cranach Press} wurde in dieser Type gesetzt, +aber auch andere literarische Werke erschienen wieder in Kursiv, so z.B. +Thomas Manns \emph{Der Tod in Venedig}. + +In unserem Jahrhundert fand man dann noch eine weitere +Verwendungsm"oglichkeit f"ur die Schriftformen der humanistischen +Kanzleischrift: Mit Schnitten wie Zapfs \emph{Chancery} oder Zapfs {\em +Medici} begann die Renaissance der Kursiven als Zierschrift, f"ur die man +lange Zeit haupts"achlich die englische Schreibschrift (einen sehr sp"aten +Nachfahren der humanistischen Kursive) eingesetzt hatte. Die Verwendung der +typischen gebogenen Oberl"angen in sehr ausgepr"agter Form gibt diesen +Schriften einen sehr kalligraphischen Effekt, allerdings auf Kosten der +Lesbarkeit, so da"s diese Schriften als Buchschriften nur bedingt geeignet +sind. + +Ideale Kompromisse, die den Geist der alten Kursive deutlich sichtbar machen +und doch vorwiegend als Buchschrift konzipiert sind, sind in meinen Augen +Zapfs \emph{Palatino Kursiv} und Matthew Carters \emph{Galliard Italic}. + +\section{raggedright Die humanistische Kursive und \MF{}} + +Das Zeitalter des Computers auch in der Typographie wurde eigentlich schon mit +Matthew Carters Schrift angesprochen: er zeichnete seine Vorlagen, scannte +sie und bearbeitete sie am Computer mit dem Programm \emph{Ikarus} nach. + +Mit \MF{} wurde uns von Donald Knuth ein Hilfsmittel gegeben, direkt die +Formen von Schrifttypen als Programm beschreiben zu k"onnen. Jeder, der sich +daran versucht, mit \MF{} Zeichen zu gestalten, wird aber dabei sehr +schnell merken, da"s dies kein ganz einfaches Unterfangen darstellt. Und f"ur +den Anf"anger stellt sich das doppelte Problem, eine durchaus recht komplexe +Programmiersprache lernen zu m"ussen f"ur die Verwendung in einer Sache, von +der er als solcher meistens auch keine Ahnung hat, n"amlich der Formgebung +von Buchstaben. + +Genau vor diesem Dilemma stand ich auch vor einem Jahr, als ich begann, +mich mit \MF{} zu besch"aftigen. Bestehende Formen m"oglichst getreu mit +\MF{} \glqq abbilden\grqq wollte ich nicht (obwohl so ein Vorgehen +wahrscheinlich +empfehlenswerter w"are). Und bei meiner Suche nach Schriftformen, die sich +m"oglichst einfach mit \MF{} gestalten lie"sen (die Programme f"ur die +einzelnen Zeichen sollten kurz und "uberschaubar bleiben, und mit m"oglichst +wenig Sprachelementen auskommen), kam ich schlie"slich auf die +Kursive. + +In \MF{} gibt es unter anderem die M"oglichkeit, definierte +\glqq Federn\grqq fixer +Gestalt entlang von Pfaden zu f"uhren und so geschriebene Formen nachzuahmen. +Die Einschr"ankungen liegen darin, da"s diese konzeptuellen Federn w"ahrend +eines +Kurvenzuges von fixer Gestalt, Gr"o"se und Lage sein m"ussen. F"ur die Kursive +ist dies kein allzu gro"ser Nachteil, da auch ihre handschriftlichen +Vorbilder mit einer ziemlich starren Federhaltung und mit wenig +Druckunterschieden (was zu unterschiedlichen Strichbreiten f"uhrt) +geschrieben wurden. Diese Methode wurde auch bei den bei \TeX{} +standardm"a"sig vorhandenen kalligraphischen Gro"sbuchstaben von Neenie +Billawalla erfolgreich verwendet. + +Zwei Federformen sind in \MF{} schon vordefiniert: elliptische (mit dem +Sonderfall der kreisf"ormigen) und rechteckige (bzw. quadratische). Beide +sind f"ur die kursiven Schriftformen allerdings nur bedingt geeignet. + +Die elliptische Feder f"uhrt zwar zu sehr sch"onen, runden Kurven entlang der +Au"senseite von Rundungen, aber An- und Abstriche (und die sind f"ur die +humanistische Kursive sehr charakteristisch) wirken kraftlos und unelegant. +Die rechteckige Feder wiederum bewirkt, da"s entlang der Au"senseite von +Rundungen Kurventeile auftreten, die absolut gerade sind; durch die an +diesen Stellen auf der Innenseite zwangsl"aufig auftretende Tendenz zu +spitzen Formen wird der Eindruck noch verst"arkt, ja es kommt sogar zu einer +optischen T"auschung, bei der man meint, da"s an dieser Stelle ein Knick nach +innen vorhanden sei! Auch die "Uberg"ange bei den An- und Abstrichen sind nicht +sch"on, es kommt zu Knicken und auch hier zu optischen T"auschungen, als w"are +die Form des Federstrichs leicht konkav. + +Neben den vordefinierten Federformen gibt es auch die M"oglichkeit, selber +neue Formen in Form von Polygonz"ugen zu definieren, wobei allerdings die +Einschr"ankung zu beachten ist, da"s die Form allseitig konvex sein mu"s. Ich +begann mit solchen Formen zu experimentieren und kam schlie"slich auf eine +Form, die von der Grundform der rechteckigen Feder abgeleitet ist, bei der aber +alle vier Seiten leicht konvexe Linienz"uge sind. Au"serdem ging ich nicht von +einem Rechteck aus, sondern von einem Trapez, bei dem die Oberseite l"anger +ist als die Unterseite. Damit konnte ich, wie ich glaube, die Nachteile der +elliptischen bzw. der rechteckigen Federformen eliminieren: die Au"senseiten +von Rundungen bleiben rund, und die An- und Abstriche ergeben harmonische, +kontinuierlich an- bzw. abschwellende Formen mit dennoch markantem Abschlu"s. + +Die Formen der einzelnen Zeichen wurden ausschlie"slich am Computer +erarbeitet, wobei die Lage von St"utzpunkten, bestimmte Winkellagen der +Kurven oder in vielen F"allen die sog. \emph{tension} ad hoc festgelegt wurde, +bis eine (mich) einigerma"sen befriedigende Form gefunden wurde. Dabei war +ich nicht bem"uht, die "uberlieferten Formen in allen Details nachzuahmen, +vielmehr war ich bestrebt, eine eigene, pers"onliche Schrift im Geiste der +humanistischen Kursive zu gestalten. Ich entschlo"s mich, da"s diese Schrift +den Namen \emph{Vicentino Corsiva} tragen sollte, als Verbeugung vor dem gro"sen +Schriftk"unstler Ludovico Vicentino. + +Ich ging bei meinen Experimenten von \emph{plain \MF{}} aus, also nicht +von den Makros der Computer Modern Familie, da diese "uberwiegend dazu +dienen, das Formeninventar klassizistischer Schriften in den Griff zu +bekommen. Au"serdem wollte ich von einem eher minimalistischen Ansatz +ausgehen um zu sehen, was dabei mit \MF{} m"oglich ist (und wo die Grenzen +eines solchen Ansatzes liegen). + +Ich habe mit den so erarbeiteten Formen auch weiter experimentiert und +versucht, ein gewisses Ma"s an \emph{Metaness} einzubauen; daraus entstanden +zum einen auch halbfette Varianten, und auch zwei weitere +\glqq Schnitte\grqq : mit +einer fast kreisf"ormigen Feder geschrieben und unter fast g"anzlicher +Weglassung der An- und Abstriche wirkt die \emph{Vicentino Modern} wie mit +dem Filzstift geschrieben und wesentlich neuzeitlicher; dazu tragen auch +gewisse Varianten in den Formen (etwa bei g und k) bei, die aber immer von +der \glqq klassischen\grqq Form abgeleitet sind. Als "au"serst experimentelle +Form ist +die \emph{Vicentino Twist} anzusehen, bei der eine elliptische Feder in +Linksdrehung verwendet wird, um leicht nach links geneigte Zeichen zu +schreiben, die aus den Grundformen der \emph{Vicentino Modern} bestehen. Das +Resultat ist eine durch ihr flimmerndes Schriftbild sehr auff"allige (und +schlecht lesbare und darum f"ur l"angeren Text absolut ungeeignete) Schrift. + +Ein Problem ist auch die Codierung der Zeichen; es ist kaum sinnvoll, die +Standardeinteilung von \TeX{} zu verwenden (weil etwa die griechischen +Zeichen darin eigentlich nichts zu suchen haben), au"serdem sind in diesem +Zusammenhang ja derzeit \glqq Umbauarbeiten\grqq auf einen 8-bit Zeichensatz im +Gange. Au"serdem entschlo"s ich mich, bei den Ligaturen nicht den CM-Fonts zu +folgen: die Entscheidung, welche Ligaturen vorhanden sein sollen, h"angt ganz +entschieden von der Schriftform und nat"urlich auch von der Sprache ab, f"ur +die man eine Schrift gestaltet. So verzichtete ich z.B. auf die Ligaturen +\emph{fl}, \emph{ffi} und \emph{ffl}, hielt aber eine Ligatur \emph{ch} gerade +f"ur die deutsche Sprache f"ur sinnvoll. Au"serdem war es mir ein Bed"urfnis, +wie bei den alten Kursivschriften "ublich auch alternative Zeichenformen +vorzusehen (eigene Formen f"ur den An- oder Auslaut, die Variante des \emph{g}, +die alten Ligaturen \emph{ct}, \emph{st} und \emph{sp}, majuskelgro"se Ziffern +usw.). Derzeit sind die entstandenen Zeichens"atze ein etwas unsch"oner +Kompromi"s: sie folgen im wesentlichen den alten \TeX-Konventionen, lassen +allerdings einige L"ucken (manche davon ungerechtfertigt) und besetzen eine +Position anders (um die ch-Ligatur unterzubringen). Die alternativen Zeichen +sind in einem zweiten Font untergebracht. Dies ist als Provisorium +anzusehen: es ist unbedingt notwendig, f"ur die Umlaute und auch f"ur die +deutschen Anf"uhrungszeichen eigene Zeichen vorzusehen. In der +\glqq endg"ultigen\grqq +Version sollen daher die Zeichen in ihrer Anordnung weitgehend den neuen +DC-Fonts entsprechen. Obwohl die Schrift also nicht eigentlich als +\glqq fertig\grqq +bezeichnet werden kann, m"ochte ich sie dennoch allen Interessierten zur +Verf"ugung stellen und bin f"ur Kritik und Anregungen nat"urlich dankbar. + +\section{Literatur (in Auswahl)} +\begin{itemize} +\item -- Scribes and Sources + +\item Alexander Lawson, Anatomy of a Typeface, London 1990. + +\item James Moran, Stanley Morison -- His typographic achievement, London 1971. + +\item Jan Tschichold, Meisterbuch der Schrift, Ravensburg 1965. + +\item Emil Wetzig, Kursiv als Buchschrift, in: Gutenberg-Jahrbuch 1962, + S. 39--43. + +\end{itemize} + +\end{document} + |