summaryrefslogtreecommitdiff
path: root/fonts/vicentino/kraml
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/vicentino/kraml
Initial commit
Diffstat (limited to 'fonts/vicentino/kraml')
-rw-r--r--fonts/vicentino/kraml/local.mf160
-rw-r--r--fonts/vicentino/kraml/read.me30
-rw-r--r--fonts/vicentino/kraml/readme.247
-rw-r--r--fonts/vicentino/kraml/vcaltdri.mf13
-rw-r--r--fonts/vicentino/kraml/vcaltlgt.mf12
-rw-r--r--fonts/vicentino/kraml/vcaltlig.mf90
-rw-r--r--fonts/vicentino/kraml/vcaltlow.mf333
-rw-r--r--fonts/vicentino/kraml/vcaltpun.mf22
-rw-r--r--fonts/vicentino/kraml/vcbigdig.mf97
-rw-r--r--fonts/vicentino/kraml/vcc10.mf15
-rw-r--r--fonts/vicentino/kraml/vcc11.mf15
-rw-r--r--fonts/vicentino/kraml/vcc12.mf15
-rw-r--r--fonts/vicentino/kraml/vcc14.mf15
-rw-r--r--fonts/vicentino/kraml/vcc17.mf15
-rw-r--r--fonts/vicentino/kraml/vcc20.mf15
-rw-r--r--fonts/vicentino/kraml/vcca.mf20
-rw-r--r--fonts/vicentino/kraml/vcca10.mf21
-rw-r--r--fonts/vicentino/kraml/vcca11.mf21
-rw-r--r--fonts/vicentino/kraml/vcca12.mf21
-rw-r--r--fonts/vicentino/kraml/vcca14.mf21
-rw-r--r--fonts/vicentino/kraml/vcca17.mf21
-rw-r--r--fonts/vicentino/kraml/vcca20.mf21
-rw-r--r--fonts/vicentino/kraml/vccb.mf17
-rw-r--r--fonts/vicentino/kraml/vccb10.mf15
-rw-r--r--fonts/vicentino/kraml/vccb14.mf15
-rw-r--r--fonts/vicentino/kraml/vccba.mf20
-rw-r--r--fonts/vicentino/kraml/vccba10.mf19
-rw-r--r--fonts/vicentino/kraml/vccba14.mf19
-rw-r--r--fonts/vicentino/kraml/vcdefs.mf136
-rw-r--r--fonts/vicentino/kraml/vcdriver.mf12
-rw-r--r--fonts/vicentino/kraml/vclig.mf139
-rw-r--r--fonts/vicentino/kraml/vcligtbl.mf38
-rw-r--r--fonts/vicentino/kraml/vclower.mf367
-rw-r--r--fonts/vicentino/kraml/vcm.mf17
-rw-r--r--fonts/vicentino/kraml/vcm10.mf15
-rw-r--r--fonts/vicentino/kraml/vcm14.mf15
-rw-r--r--fonts/vicentino/kraml/vcma.mf17
-rw-r--r--fonts/vicentino/kraml/vcma10.mf16
-rw-r--r--fonts/vicentino/kraml/vcma14.mf16
-rw-r--r--fonts/vicentino/kraml/vcmb.mf17
-rw-r--r--fonts/vicentino/kraml/vcmb10.mf16
-rw-r--r--fonts/vicentino/kraml/vcmb11.mf16
-rw-r--r--fonts/vicentino/kraml/vcmb12.mf16
-rw-r--r--fonts/vicentino/kraml/vcmb14.mf16
-rw-r--r--fonts/vicentino/kraml/vcmba.mf17
-rw-r--r--fonts/vicentino/kraml/vcmba10.mf16
-rw-r--r--fonts/vicentino/kraml/vcmba11.mf16
-rw-r--r--fonts/vicentino/kraml/vcmba12.mf16
-rw-r--r--fonts/vicentino/kraml/vcmba14.mf16
-rw-r--r--fonts/vicentino/kraml/vcpunct.mf324
-rw-r--r--fonts/vicentino/kraml/vcsmdig.mf99
-rw-r--r--fonts/vicentino/kraml/vct.mf17
-rw-r--r--fonts/vicentino/kraml/vct10.mf16
-rw-r--r--fonts/vicentino/kraml/vct14.mf16
-rw-r--r--fonts/vicentino/kraml/vcta.mf17
-rw-r--r--fonts/vicentino/kraml/vcta10.mf16
-rw-r--r--fonts/vicentino/kraml/vcta14.mf16
-rw-r--r--fonts/vicentino/kraml/vctb.mf17
-rw-r--r--fonts/vicentino/kraml/vctb10.mf16
-rw-r--r--fonts/vicentino/kraml/vctb14.mf16
-rw-r--r--fonts/vicentino/kraml/vctba.mf19
-rw-r--r--fonts/vicentino/kraml/vctba10.mf18
-rw-r--r--fonts/vicentino/kraml/vctba14.mf18
-rw-r--r--fonts/vicentino/kraml/vcupper.mf389
-rw-r--r--fonts/vicentino/kraml/vortrag.tex387
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}
+