summaryrefslogtreecommitdiff
path: root/fonts/vicentino
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
Initial commit
Diffstat (limited to 'fonts/vicentino')
-rw-r--r--fonts/vicentino/README4
-rw-r--r--fonts/vicentino/kilfiger/ot1vc.fd61
-rw-r--r--fonts/vicentino/kilfiger/readme42
-rw-r--r--fonts/vicentino/kilfiger/testvic.ps704
-rw-r--r--fonts/vicentino/kilfiger/testvic.tex20
-rw-r--r--fonts/vicentino/kilfiger/vicent.sty15
-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
71 files changed, 4342 insertions, 0 deletions
diff --git a/fonts/vicentino/README b/fonts/vicentino/README
new file mode 100644
index 0000000000..df2a77b05f
--- /dev/null
+++ b/fonts/vicentino/README
@@ -0,0 +1,4 @@
+Please see the files
+ kraml/read.me
+ kraml/readme.2
+ kilfiger/readme
diff --git a/fonts/vicentino/kilfiger/ot1vc.fd b/fonts/vicentino/kilfiger/ot1vc.fd
new file mode 100644
index 0000000000..c882d2b48f
--- /dev/null
+++ b/fonts/vicentino/kilfiger/ot1vc.fd
@@ -0,0 +1,61 @@
+%This was written by James Kilfiger, to support the Vicentino fonts of
+%Willibald Kraml
+\ProvidesFile{ot1vc.fd}[1999/10/05 Vincentino]
+\DeclareFontFamily{OT1}{vc}{\hyphenchar\font=-1}
+\DeclareFontShape{OT1}{vc}{m}{it}{%
+<5><6><7><8><9><10> vcc10
+<10.95> vcc11
+<12> vcc12
+<14.4> vcc14
+<17.28> vcc17
+<20.74><24.88> vcc20}{}
+
+\DeclareFontShape{OT1}{vc}{b}{it}{%
+<5><6><7><8><9><10><10.95><12> vccb10
+<14.4><17.28><20.74><24.88> vccb14}{}
+
+\DeclareFontShape{OT1}{vc}{m}{sl}{%
+<5><6><7><8><9><10><10.95><12> vcm10
+<14.4><17.28><20.74><24.88> vcm14}{}
+
+\DeclareFontShape{OT1}{vc}{b}{sl}{%
+<5><6><7><8><9><10> vcmb10
+<10.95> vcmb11
+<12> vcmb12
+<14.4><17.28><20.74><24.88> vcmb14}{}
+
+\DeclareFontShape{OT1}{vc}{m}{ui}{%
+<5><6><7><8><9><10><10.95><12> vct10
+<14.4><17.28><20.74><24.88> vct14}{}
+
+\DeclareFontShape{OT1}{vc}{b}{ui}{%
+<5><6><7><8><9><10><10.95><12> vctb10
+<14.4><17.28><20.74><24.88> vctb14}{}
+
+\DeclareFontShape{OT1}{vc}{m}{its}{
+<5><6><7><8><9><10><10.95><12> vcca10
+<14.4><17.28><20.74><24.88> vcca14}{}
+
+\DeclareFontShape{OT1}{vc}{b}{its}{
+<5><6><7><8><9><10><10.95><12> vccba10
+<14.4><17.28><20.74><24.88> vccba14}{}
+
+\DeclareFontShape{OT1}{vc}{m}{sls}{
+<5><6><7><8><9><10><10.95><12> vcma10
+<14.4><17.28><20.74><24.88> vcma14}{}
+
+\DeclareFontShape{OT1}{vc}{b}{sls}{
+<5><6><7><8><9><10><10.95><12> vcmba10
+<14.4><17.28><20.74><24.88> vcmba14}{}
+
+\DeclareFontShape{OT1}{vc}{m}{uis}{
+<5><6><7><8><9><10><10.95><12> vcta10
+<14.4><17.28><20.74><24.88> vcta14}{}
+
+\DeclareFontShape{OT1}{vc}{b}{uis}{
+<5><6><7><8><9><10><10.95><12> vctba10
+<14.4><17.28><20.74><24.88> vctba14}{}
+
+\DeclareFontShape{OT1}{vc}{bx}{it}{<->ssub * vc/b/it}{}
+\DeclareFontShape{OT1}{vc}{bx}{sl}{<->ssub * vc/b/sl}{}
+\DeclareFontShape{OT1}{vc}{bx}{ui}{<->ssub * vc/b/ui}{}
diff --git a/fonts/vicentino/kilfiger/readme b/fonts/vicentino/kilfiger/readme
new file mode 100644
index 0000000000..dbb554763d
--- /dev/null
+++ b/fonts/vicentino/kilfiger/readme
@@ -0,0 +1,42 @@
+These fonts provide three script fonts. A `cursive' shape, which is a
+slanted shape written with a wide-nibbed pen. A `twist' shape: a slanted
+shape with constant width. And a `modern script' shape: an upright shape
+with a forward sloping stress axis. They would mainly be suitable for
+display text.
+
+See the readme file in the kraml directory for details of the fonts.
+In this directory there are support files:
+ ot1vc.fd A font definition file
+ vicent.sty A package to help use of these fonts
+ testvic.{tex,ps} An example file.
+Comments about these files should be directed to James Kilfiger
+<mapdn@csv.warwick.ac.uk>
+
+Installation:
+The ot1vc.fd and vicent.sty should be put somewhere where TeX can find
+them. On a TDS distribution, such as teTeX or MiKTeX, an appropriate
+place might be .../texmf/tex/latex/mfnfss/ . Willibald Kraml's .mf files
+should be placed where metafont can find them. For example in
+.../texmf/fonts/source/public/vc/ . You will probably now need to
+refresh your texmf database, by issuing the command `texhash' on teTeX
+or from the MikTeX menu in the start menu. You may need to run metafont
+by hand, but this is not necessary on modern TeX distributions.
+
+Use:
+The fonts may be used with both plain TeX and LaTeX. Plain users should
+load the fonts with the \font primitive command. LaTeX users should
+give the command \usepackage{vicent} in the preamble of their document.
+This package provides three font changing declarations: \cursiveshape,
+\twistshape, and \modernscriptshape; and corresponding text font
+commands: \textcursive, etc.
+
+Note for Latex hackers:
+This family can be chosen with \fontfamily{vc}, then the cursive shape
+with \fontshape{it}, the modern script shape by \fontshape{sl} and the
+twist shape by \fontshape{ui}.
+
+The fonts also provide lowercase swash characters, these can only be
+selected by \fontshape commands, with shapes `its', `uis', and `sls'.
+
+
+
diff --git a/fonts/vicentino/kilfiger/testvic.ps b/fonts/vicentino/kilfiger/testvic.ps
new file mode 100644
index 0000000000..c5c2826b64
--- /dev/null
+++ b/fonts/vicentino/kilfiger/testvic.ps
@@ -0,0 +1,704 @@
+%!PS-Adobe-2.0
+%%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software
+%%Title: testvic.dvi
+%%Pages: 1
+%%PageOrder: Ascend
+%%BoundingBox: 0 0 596 842
+%%DocumentPaperSizes: a4
+%%EndComments
+%DVIPSWebPage: (www.radicaleye.com)
+%DVIPSCommandLine: dvips -D 600 testvic.dvi -o
+%DVIPSParameters: dpi=600, compressed
+%DVIPSSource: TeX output 1999.10.06:1404
+%%BeginProcSet: texc.pro
+%!
+/TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S
+N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72
+mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0
+0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{
+landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize
+mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[
+matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round
+exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{
+statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0]
+N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin
+/FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array
+/BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2
+array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N
+df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A
+definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get
+}B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub}
+B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr
+1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3
+1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx
+0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx
+sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{
+rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp
+gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B
+/chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{
+/cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{
+A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy
+get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse}
+ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp
+fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17
+{2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add
+chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{
+1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop}
+forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn
+/BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put
+}if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{
+bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A
+mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{
+SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{
+userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X
+1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4
+index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N
+/p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{
+/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)
+(LaserWriter 16/600)]{A length product length le{A length product exch 0
+exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse
+end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask
+grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot}
+imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round
+exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto
+fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p
+delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M}
+B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{
+p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S
+rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end
+
+%%EndProcSet
+TeXDict begin 39158280 55380996 1000 600 600 (testvic.dvi)
+@start
+%DVIPSBitmapFont: Fa cmr10 10 1
+/Fa 1 50 df<EB01C013031307131F13FFB5FCA2131F1200B3B3A8497E007FB512F0A31C
+3879B72A>49 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fb vcca14 17.28 1
+/Fb 1 115 df<F501801D07023C021F170F02FCDA7F80EE3FC0D903FE4A6C167F010F02
+0318FF013F5C4948011F7FD801FF4A198048157CD807C7903801F87FD81F07D903F06D17
+00000C9026F807E060D8000F90260FC03F4C5A031F6EED03F0DB3F8001FEED3FE00400D9
+FFFC90380FFFC04A4892B7C7FC011F01FE6D5EDAF1FC18F84B6D16E002E36E93C8FC9026
+3FE7F0010015F802EF030791C9FC4B91CCFC4A5A14FF495BA292CFFC5C13FF5CA25C5A5C
+A25C485BA25CA24890D0FCA35B120F5BA2485AA25BA2123F5BA25B127FA25B90D1FC12FC
+5A1260624176C062>114 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fc vct14 17.28 10
+/Fc 10 116 df<ED0FF8ED7FFF4AB512C04A14F04A14FC4A804A804A819338E07FC04A90
+38000FE003FCEB03F04BEB00F84A48147C4B143C4B143E4949143F8492C81380A34A16C0
+0103163F187F5C18FFA2187FA2183F4AED1F80F00F0084010793C7FCA85CA693B57E02F3
+B67E91B77E013F820007B87E121F84A26C4BC67E6C02F8C7FC6C01FCC8FC6C13F0EA00F7
+1307A71701A860A71703A860AC1701A2717E84187FF03F80181F180F95C7FCA3130FA85C
+131FA5133FA3495AA213FF5A5A485B121F5AB5CBFCA25B5B6C5A6C5AEA1FC06C5A3A917B
+EC48>12 D<ED038016C016E016F0A216F8A91501A416FCB3AC1500A416FEB3AB167EA416
+7FB016FFA45DA35D16FE1507150FA2ED1FFC153F157FEDFFF85C020713F0021F13E000E0
+137FD8FC03B512C0B712806C15006C5C5D6C14F06C14C0000191C7FC38003FF828828BE2
+30>74 D<EF01C000F8836C836C836C836C7E123F6C7E1703A31707A2170FA2171F4D5AA2
+177F4D5A5E4C5B5E4C5B4C5B5E93B5C8FC4B5B4B5B030F5B000F4A5B4B5B92B55A4A5C6D
+4849C9FC020F5B4A5B4A13E04A5B91B55A01E349CAFC01E75B01EF5B90B512E05D5D01EF
+90CBFC5CEBE7F8EBE3F013E1EBE0F81478147C808080816E7E6E7E14018100076D7E157C
+153C153E6D7F6F7E1507826F7E6F7E150082167C82161E161F707E707E707E160183707E
+177C000F163C173E83717E001F707E717E007F707E17004982003F177C84001F836C4870
+7E0007717E6CCA6C7ECBEA01F8727E197E85F11F80F10FC0F107E0190119001A60436E74
+E350>I<013E1438D9FF80133C4801E0133E4801F8133F487F02FF148048148015E048EB
+9FF09038FE07FC9038FC01FE393FF800FF49EB3FBFED1FFF491307007F80491300167F16
+3F5B167F12FFA290C8FC16FFA35DA25A5DA35DA25DA25DA2007E5C17C05DA2007F91B5FC
+5C6C15DF5C4A139F7E6D48131F5C000FEB3FFE9038C07FFC000713FFD803E3EBF80F90B5
+12F07E6C14E06D9038C007E06D13806D90380003F06D481301D903F8130090C912702C40
+79BE3D>97 D<EC7FC0903803FFF0010F13FC497F017F7F90B67E488148814814039138F8
+01F04801E07F14C04801007F491303485A4913075B007F140F49131F153F49137F00FF49
+485A495A020F5B5CD9007F5B49B55A01075C013F91C7FC48B512FCB65A15E05D92C8FC14
+FC14F014806C48C9FC13F01380007ECAFC127F7EA37E7F120FA26C7EA26C6C147016F8D8
+01F8EB03FCD800FEEB7FFE017FB6FC6D15807F7F6D150001015C6D6C13F8021F90C7FC29
+3F7DBE2E>101 D<D90FC0141ED93FF0143FD97FFEEC7F8090B56C14C04802F013FF03FC
+14E04814FF16C04801E301F113C0028001FD1380DA001FB51200484813074901005B163F
+4848140F1603495DA3491407123FA249140F5F161FA3163F5B167FA216FFA25DA25DA25D
+A2001F5C5DA2ED3FFD6D14F9157F000FECFFF14A8016E14A13C16C6C5A4A13815C000349
+13019039F0FFFE00D801F35B6CB5FC5D6D497F6D5B6D5B6D5B6D48C7FCEB01F890C9FC17
+7EA4177FA800E05E7E7E007C5DA26C5D5E6C5D4C5A6C6C147FD807E014FFD803F801075B
+3901FF807F6C90B65A6D5D6D5D6D5D010792C7FC01015C6D6C13F0020790C8FC33617ABE
+3D>103 D<12E07E1278127C7EA2123FEA7F80A5123F121F120FEA0700C7FCB212F07E7E
+127E127F7E1380A2121FA413C0AC123FA81380B3A3121FA4EA0FC0A2EA07E0EA03F01201
+12000C6177E020>105 D<12E07E7E7EA27EB3B3B0127EA4127FB3A97EA41380A7121FA3
+120F13C0EA07E0EA03F0120112000C6C77EB20>108 D<DB0FC0EC0F8000E0DA3FF0EC3F
+E06C4A6C4A7E6C4A6C4A7E6C496D497F007E496D497F4A5D007F0480806C495D4A01BF49
+13BF043F153F91263FFE1FD93FFE13809026807FFCEC7FFC03F815F8DAFFF0ECFFF08301
+8101E001C113E003C015C0018315C3038015800187010001C71300A2D98FFEECCFFEA2D9
+9FFCECDFFCA24AECFFF813BF4A5D13FF4A5DA24A5DA2605CA291C791C7FCA25F5B121F5F
+5BA25F5BA3495DA35F5BA4495D1A1F120F040FED0FC00007030715070003030315030001
+030115014A4078BF5C>I<EB1FFC90387FFFC048B512F048804880488081168048EBC03F
+9138000FC001FC131F4914E05BA249130FA26C48130715030007EC01C092C7FC6C7EA2EA
+01F8EA00FE137FEB3FC0EB1FF0EB0FFC6DB4FC010113C06D6C7EEC3FF8EC0FFCEC03FEEC
+00FFED3F80ED0FC0ED07E0ED01F0A2ED00F8A216FCA2ED01FE127812FC6C1403A26C1407
+6D130F151F007FEC7FFC90C712FF383FF0076CB612F87E6C15F06C15E06C15C06C6C1400
+011F5B010013F0273F7DBE2E>115 D E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fd vctb14 14.4 9
+/Fd 9 116 df<903801FFF890B512FE000F80B712C08282826C816C81A26C9038F8003F
+49C77E49815B83A25B83163FA249147FA216FFA25D5D5D4B5B153F4AB55A141F01EFB6C7
+FCA25E5E01E75C01E35C5E01E114F8260FE07F7F6E7F9138003FFF03017F9238003FC0EE
+0FE06DEC03F01601707E83177C177EA283A31880A318C0A2177FA417FFA25E5EA24C1380
+5E5E001F5D93B51200000F140301FF013F5B6C90B65AA26C5E6C5E6C5E6D5D010F92C7FC
+010314FCD9007F13F0020390C8FC32567CD141>66 D<ED018016E016F016F816FC150316
+FEA816FCA51507A916F8AAEB3F803801FFF84813FF4814E74814FFA25AA25AA248130190
+38FC001F49130F5BA24848131FA25B153F5B157FA315FF90C7FC5CA25CA25CA26C5BA25C
+5C6C5BA26DB5FCD81F8113FB13830187EBF3FCEA0FDF90B512E36C14C36C1481A26C1400
+6C4913FE6D48137E6D48133FD90FE0131F6D48130F285A79D937>100
+D<14FF010713C0011F13F0017F7F48B57E48804880481580A24815C0ECFC0F489038E01F
+E014803A7FFE003FF049137F4913FF48485A1407EBE01F147F01C1B512E013CF90B612C0
+168016005D15F815E015804AC7FC6C13F814C049C8FC13F0EA3F8090C9FC6C7EA2120F7F
+1207D803FCEB078090B612C06C15E06C15F06D14F87F6D14FC13077F010014F8020F13E0
+26347EB32A>I<12C07E12F87E127C127EA2B4FCA21380127FA2123F121F120F1207EA03
+00C7FCAE12E012F87E127E127F7E1380A213C0B3B2121FA2120FA2EA07E01203EA01F012
+0013200C5478D21D>105 D<12C07E7E7E7EA27EA27EB3B3AD7EA61380AE123FA5121F13
+C0120FA2EA07E01203EA01F0120013200C5B78D91D>108 D<150F00E0EC3FC000F8ECFF
+E0007C497F007E497F6C5B4A7F6D487F5CA26D487F91B6FC01C15B5D01C35B5D01C75B01
+CF5BA201DF5B5DEBFFFEA25CA25C5CA25C7E5CA25CA291C7FCA25BA25BA35BA35BA2826C
+5A000781820003ED0F8000011507D80060140329357AB437>110
+D<14FF010F13E0013F13F8497F48B6FC48814881488182488148EBFC039138C0007C4A13
+7E4848C7FC49805B5B00FF16805B5B17C0A25BA3167F90C8FCA316FF7E5DA26C5C17805D
+6C6C5B5D000F4A13006D90B5FC0007495B3803F00F90B65A7E6C5D6D5C6D5C6D5C010791
+C7FC6D5B010013F8EC3FC02A347EB330>I<00E0EB03C000F8EB0FF0007C497E007E497E
+6C49B4FC91B512806D14C0018114E0138301C314F001C713F0EDE07801CFEBC038ED8000
+01DF90C7FCA2EBFFFE5CA25CA25CA25CA25CA25C7EA291C8FCA25BA35BA35BA45BA46C5A
+1207A212031201EA006025347AB32D>114 D<EB7FFE0003B57E000F14E0488048808148
+80A281A249C6138001F0137F6C5A49133F001F141F49130F000FEC070001E090C7FCEA07
+F8EA03FE6C6C7E6C13E0EB7FF8EB3FFEEB0FFF6D13C001017F6D6C7EEC1FF8EC07FCEC01
+FEEC007F151F1680A20060EC3FC0127000FCEC7FE06C14FF5C6C1307387F801F90B6FC7E
+16C07E6C15806C15006C5CC614F86D13E00107138023347DB32A>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fe vct14 14.4 31
+/Fe 31 123 df<1206EA0780EA03C0A2EA01E0EA00F0A21378A213FCA2EA01FEA2120312
+07EA0FFC121FEAFFF8A213F013E0EA7FC0EA3F80EA1F000F187ADA2A>39
+D<12C012E012F01278127CA2127E12FEA3127E123EA2120C070E748D1E>46
+D<903801FFF090B512FE001F6E7EB77E8282826CEBF000D83FFCC7123C001F81EA03F800
+07151F498083A3835BA2161FA2163FA2167FA24C5A5D4B90C7FC5DED1FFE157F913803FF
+FC01E1B55A01E75C5E01E35C01E15C16E001E014F8023F13FE000390380007FF03007FEE
+1FC0EE07E06DEC01F0160017788383A283A21880A2EF07C0A418E0A4170FA3171FA2173F
+18C0177FA2EFFF805E4C13005E0007ED1FFE167F6C6C49485A9026FFC00F5B6C90B65A6C
+5E6D5D010F92C7FC010314FCD9007F13F00203138033567ED13C>66
+D<000FB512E0B7FC16C016F816FE6C816C16C06CD900017FD801FE9038000FF8EE03FC48
+48EC00FE173F496F7EEF07C0717E1701496F7E187884A284A284A2F00780A219C0180319
+E0A319F01801A419F8A31201A47FA31803A6F007F0A3180FA3F01FE0A2183F19C0187FA2
+F0FF80A24D13005F4D5A170F4D5A177F4D5A04035B040F5B047F5B01FE010FB55A90B8C7
+FC6C16FC5F6D15E0011F1580010302FCC8FCD9001F13803D547ED142>68
+D<1804183F0107B8FC017F17800003B912C0120F4818E04818C048EFFE00B5D8C07EC9FC
+EBFC0013E013806CC7FC127E123C121CC8FCAD153EA4153FAC020FB612C018F0A26E816E
+818080033FC9FCAC81A482B2153FA3157FA215FF93C9FC5CA24A5A14074A5A141FEC7FF8
+EB01FF010F5B495B6D5B5D6D90CAFCEB03FCEB01F03B6D7FD342>70
+D<156015701578157CA2157EAC153EA4153FB3A481A41680B3A3150FA416C0AD151FA315
+3FA2157F168015FFA24A13005C4A5A141F4A5A6C13FFD8F00F5BB65A6C5C5D6C91C7FC6C
+5B000713F8C61380226C89D128>74 D<EB01E0EB07F0497E131F497E137FA2EBFFF014C0
+485B91CAFC485AA25BA25BA25BA21207A65BB3B3A8120FA4001F160C171FD9FFF014FF48
+90B712804817C0B9FC7E18806C1700D9C00014F8001ECBFC120432557BD23C>76
+D<ED3FF80207B5FC021F14E0027F14F849B67E010715FF49824949C66C7E4901C0EB0FE0
+4990C7EA03F0D9FFFC14004801F0157802C0814849814890C9FC4982485A491780001F17
+074917C05B003F17034917E0A2485A19F0A290CA1201A312FE19F8A55AA91803A3127CA3
+F007F0127EA2180F123EA2F01FE0121E001F173F19C06C177F7F0007EFFF80A26C6C4B13
+005F6C6C4B5A170F6C6C4B5A0178157F017C4A485A013F02075B6D6C011F5B90260FF801
+B55A6DB75A6D93C7FC010015FC6E14F0021F14C0020391C8FC9138007FF03D527BD149>
+79 D<ED3FF80207B5FC021F14E0027F14F849B67E010715FF49824949C66C7E4901C0EB
+0FE04990C7EA03F0D9FFFC14004801F0157802C0814849814890C9FC4982485A4983001F
+170749835B003F17034983A2485A85A290CA1201A312FE85A55AA91803A3127CA34E5A12
+7EA2180F123EA24E5A121E001F173F616C177F7F00074D5AA26C6C4B90C7FC5F6C6C4B5A
+170F6C6C4B5A0178157F017C4A485A013F02075B6D6C011F5B90260FF801B55A6DB75A6D
+93C8FC010015FC6E14F017C049B6C9FC0107814915F017FC6D15FF6DD9801F13E09126FC
+000113F8D901F09038003FFFD90040020713C091C913F895383FFF80060F13F8060113FC
+9538007FFE190FF103FFF1007F1A0748627BD149>81 D<183C0103B712FE017F8248B912
+8012074818C0123F48EFFE009126E001F0C8FC38FFFC0013F0EA7FC04980003EC7FC121E
+1204C8FCB3AC1500A482B3A41501A31503150FA26F5AA215036F5A6F5A3A537FD242>84
+D<132013F8EA03FCEA07FE120FEA1FFF5A13FEEA7FF813E0EAFFC013801300A2127EA212
+3CA27E7E13801207EA03C012011200101971DB2A>96 D<01F81318D801FE131E486C131F
+4813C04801F0138014F84813FCEBF8FF9038F03F9F393FE00FDF9038C007FF804848C6FC
+157F153F90C7121FA248143F5AA3157FA25A15FFA35CA25CA25CA2007C4913C0A25CA200
+7EEB3FEF003E137F15CF14FFD81E01138FEA1F036C481307EB1FFEEA07FF6C13FC9138F8
+03E06C13F06C9038E001F090387FC000011FC7123024347AB332>I<EB01FCEB0FFF013F
+13C090B57E48804880488048EBF03CEC801E381FFE0001F8131F485A4914804848130F15
+0749130392C7FC48C9FCA25AA45AA8127CA47EA3121E121F7EA26C6C13066C6CEB1F8001
+F0EBFFC06CB6FC6C15E07F7F010F14C001031400010013F823347EB327>99
+D<EB01FE90380FFF80013F13E090B57E488048805A48EBF01E1480391FFE001F13F84848
+148049133F485A157F4913FF5C48485A020F130048133FECFFFE01035B010F5BD8FC7F5B
+00FDB55AB612804AC7FC14F814E0148001FCC8FCEA7FF01380007CC9FCA27EA3121E121F
+7EA26C6C13066C6CEB1F8001F0EBFFC06CB6FC6C15E07F7F010F14C001031400010013F8
+23347EB327>101 D<013E140CD9FF80131E4801F0133F4801FCEB7F8014FF4802C013C0
+EDF0FF270FFE1FFC1380D9F807B5120049C65B001F143F49130FED03FC491301A2150348
+5AA24B5AA3150F90C7FCA2151FA2153FA2157FA215FFA25C7E5C5C15FD9038800FFC000F
+EB1FF8A2EC3FF0000749487EEBC0FFD803C113C001C713806CB5FC6C14005C6D5A6D5A6D
+48137CEB07C090C8FCA2167EA87E00E015FE7E00781401A26C140315076C4A5A6C143F01
+C0EBFFF83807F8076CB65A6C5D6C5D013F5C010F49C7FC010313F89038007FC02A507BB3
+32>103 D<126012701278127CA2127EA212FEA65AB3A6EB03F8387C1FFE90387FFF8090
+B512E0007D80007F8081ECE07EEC001E01FC7F49EB07805B49EB03C0A24914E015014914
+F0A390C713F81500A416FC127EA3123EA4123FA31501A56C140316F81507A26D130F153F
+913803FFF0A2000F15E080000715C000036D13800001EC3E00265A79D932>I<12C012F0
+A21278127CA2127E12FEA2127EA2123E121E120CC7FCAF12C012F07E127CA27EA2123FB3
+B3A27EA27E13801207EA03C012000A5178D01B>I<12C07E7E7E7EB3B1151C151E81A26F
+7E82150F4B7E157F15FF5C5C020F5B4A5B4A90C7FC007CEB7FFC49485A495B495BD87E0F
+13804990C8FC495A495AEBFFF0007F5B5C5C91C9FC5B5B7F7F6C7FEBF7C0EBE3E0EBE1F8
+EBC0FC147E496C7E6E7EEC07E0EC03F86E7E001FEB007FED3FE292381FFF80030713C000
+0F6E13E000071400EE3FF00001150FC9EA01E02C5B7AD932>107
+D<0378141F00C0D901FEEC7FC000F0496CECFFE00078496D4813F0007C495C003C496D48
+13F8003E495CA2913B7FF7E01FFCFC003FD9FFE7EB3FF803C714F0490187EB7FE0490107
+14C017FFD907FE15809126FC03E11300130F02F8EBE3FEEB1FF0EEF7FCEB3FE0EEFFF8EB
+7FC05F148001FF5D14006C5E5B5FA25B94C7FC5BA25E5BA25E5BA25E15075BA25EA25B03
+03157C120F00070201153E6F48141E0001036014063F357AB44D>109
+D<15F800C0EB03FE00F0497E0078491380007C5B003C4913C0123E5C9138FFE7E0003F14
+C7491387491307A2EB07FE14FC130F14F8EB1FF0A2EB3FE0A214C0137F148013FF1400A2
+7E5BA25BA35BA35BA35BA45BA45B1503120F0007EC01F015000001153024357AB432>I<
+EB01FE90380FFF80013F13E090B512F848804880488048EBF01F91388007803A1FFE0003
+C013F84848EB01E05B484814F0A249EB00F8A248C8FCA24815FCA45AA51501A3127C1503
+A216F86C1407A2150F001E15F0001F141F6C143FED7FE039078001FF6C6C4813C0EBF01F
+6CB612806C15006D5B6D5B010F13F001035B010090C7FC26347EB32C>I<EA03807F7FA2
+7FA590B512C0007F14F0B612FC15FF16C06C816C813A1FF00003F8000FEC00FC6C48143C
+82821780160717C0160317E0A2160117F0A317F8A61603A41607A217F0160FA2161F17E0
+163F167FEEFFC05D030713806D133F90B712005E5E5E5E01E714C001E049C7FC91C9FCA5
+1203A47FA81201A47F1200A21378A27F131C130C2D5A7FBC32>I<00C0130F00F0EB1FC0
+0078EB3FF0007C497E003C497E003E805B49138F003FEC0780903807FE039138FC01C001
+0FEB00804A1300495AA2495AA25C137F5CA249C8FCA35BA2121F5BA35BA35BA45BA45BA5
+5BA2120F1207A2120122347AB32A>114 D<EB7FE03803FFFC4813FF4814804814C015E0
+5A9038FC01F013E09038C003F81380140113006C130015786C143015006C7E13E06C7EEA
+01FC6CB4FCEB7FC0EB1FF0EB0FFCEB03FE903800FF80EC3FC0EC0FE0EC03F0EC01F8EC00
+78153CA2153EA2153F0070147F12F815FF7E6C5B007E5BEC0FFE383F803F90B512FC7E6C
+14F86C14F0000114E06C6C1380903807FE0020347DB327>I<1338133C133EA2133FA8B6
+FC158015C06C14E07E6C14F07ED8003FC7FCA87FA480B3A4EB0F9014FCA2806D7EA26D13
+806D1300EB00781C3E80BC1E>I<124000F014180078141E007C141F123C003E1580A212
+3FA2153FA416C0157F7EA315FF7FA25CA45CA35CA25CA35C15EF000F133F15CF147FA290
+38C0FF8FA201C1130F13C3ECFE07EA07C7EBCFFC13FF6C01F813E0ECF0037EECE0016C90
+38C000F06D481330011EC8FC24367AB432>I<00E0141E00F8EC1F806C15C0007EEC0FE0
+003EEC07F0123F6CEC01F86C6CEB0078167CA2167E7FA31207A216FEA27FA31501000315
+FCA21503A27FED07F8A3ED0FF01201151FED3FE0A26D137FEDFFC0A24A13800000491300
+5C4A5AEC3FFCEBFC7F90387FFFF85D6D5B5D6D5B6D48C7FC5CEB03E027347AB332>I<00
+E0020CEC03C000F8020F15F06C6E6C80007E6F6D7E003E02036E7E003F816C183F6C6C6E
+140F1A80A21AC06D80A215071207A2191FA26D497EA3031F153F1A801203033F157FA282
+6D017FEDFF00A215FF047E495A4A133E00011703DA03FE4A5AA2912607FC3F130F01F84C
+5AEC0FF8021F4B5A00004A6C495A023F15FFDA7FE0495B02FF02075B01FD01C0138F017F
+496CB5C7FC606D496C5B4A5D6D486D5B6D486D13C04A5DD903C0D9007CC8FC42347AB34D
+>I<001C1538001F15FE6D497E6C6C4913806D5B00074A13C06C6C5BD80078ECFE006DEB
+3FF84B5A6D5C4B5A6D485BEB0781028390C7FC903803C7FEA2903801EFFC5DEB00FF5D6E
+5AA25D14FF495B92C8FC5BA2497FA290380FFBC090381FF9E014F190383FF0F014E0017F
+1378EBFFC04A7E5A48497E81485A48486D7E001F6E7EB448EB01FC4980007F6E7E49806C
+48EC3F806C48141F6CC812072A347CB335>I<163000E0153800F8153C6C81007E151F6C
+ED0F806D1407000F16C0EA03C06C7E6C6C15E0A21378A27F6D140FA27FA26D7E161F6D6C
+14C0A2800101143F8001001580A20278137FA2027C1400023C5B143E141E4B5A141FEC0F
+03ED83FCA2EC0787EDC7F815CF5EEC03EF15FF5EA26E5BA35EA293C7FC5C5DA24A5AA24A
+5A141F5D143F5D147F4A5A5D5B4990C8FC5B5C495A131F495A495A495A1243B55A6C5B91
+C9FC6C5A6C5A6C5AEA03E02B537CB432>I<D803FF1430001F01FC13F84890B57E4881B8
+FC7EA2263FE00F5B6CC7EA3FFC000E5DC8485A4B5A5E5C4A5B4A90C7FC4A5A5D141F4A5A
+4A5A4A5A5D5B495B4990C8FC5C495A131F495A5C495A13FF5C485B4890C9FC5A5B485A00
+1F150649140748481580484815C001F8140FB500C0EB1FE002FE13FF91B6FCA27E6C16C0
+6CC66C1480000C01031400C8EA1FF82B357EB32F>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Ff vcmb14 14.4 9
+/Ff 9 116 df<923803FFFE0203B61280023F15E00103B712F0010F16F85B4916FCEE00
+7F6D01C0EB1FFE170F01035B170792C7FC5B5C130F5C170F18FC131F4A141F18F8173F18
+F0013F157F4AECFFE05E4C13C04C1380041F1300017FEC7FFE9139E003FFFC02E7B512F0
+91B65A1780A290B712E08317FC02C780DAC00F7F0300148048031F13C04A13077013E070
+13F082EF7FF85A91C8123FEF1FFCA3170F5A5BA5120F49151F18F8A2173F001F17F04915
+7F18E017FF003F4B13C05B4C13804C1300007F5D494A5A4C5A00FFEDFFF801FC01035B90
+26FFE03F5B91B6128094C7FC6C15FC001F15F0000715C0C692C8FC010713F0375679D141
+>66 D<187CEF01FEEF03FF5F18FE170F18FCA2171F18F8A2173F18F0A2177F18E0A317FF
+18C0A25E1880A35E1800A45E5FA3160F5FA391381FF81FDA7FFF5B49B6FC5B130F5B495D
+EB7FF99038FFF03FECE00748EBC00148903880007F5F4890C7FC4914FF120F495D5D121F
+495B123F49495BA25D127F495BA24B90C7FCA200FF5C4990B5FCA25C4A5BA25C5C5CA25C
+6D485B91B5FC01E113EFD87FE313CF01F7138F90B5120F02FE7F6C01FC7F14F06C13E06C
+01805B3A03FE0007F8385A77D937>100 D<913801FFC0020F13F0023F13F891B512FC13
+034914FE131F49138F90387FFC07EBFFF04813E014C048EB800F48010013FC151F4848EB
+3FF849137F001FECFFF0D9F80313E04A13C0003F011F13809039F07FFE009038F1FFFC48
+B55A15E015804AC7FC14F8B512E0148001FCC8FC13F013C0A67FA3127F6DEB1F806DEB7F
+C09038FE03FF6CB6FCA26C15806C15006C14FC000114E06C6C90C7FC273479B32A>I<14
+F8EB03FCEB07FEA7130F14FC131F14F8EB0FF0EB07C090C7FCAF137FEBFF804813C05AA2
+7E7EA35A1480A45A1400A45A5BA3120F5BA4121F5BA3123F5BA4127F5BA412FF5BA37FA4
+6C5A6CC7FC175276D11D>105 D<147EEB01FF5BA35B14FEA4130F14FCA4131F14F8A413
+3F14F0A5137F14E0A413FF14C0A45A1480A55A1400A45A5BA5120F5BA4121F5BA5123F5B
+A6127F5BA612FF5BA57FA46C5A6CC7FC185A76D91D>108 D<EE07F8013FEC1FFED9FFC0
+EB3FFF4892B5FC5D15075D6C5C5DED7FFB484A5A0281EBE7FE028313C7028713871607EC
+8FFE4890389FFC0F023F14FCEC7FF815F0ECFFE0EDC01F4816F8158015005C163F4A14F0
+485BA24A137F4A14E0A2485BA24A13FF91C713C0A2485AA2495B17805BA2485A5D17005B
+178012FF4915006C5A003EC7EA01FC303578B437>110 D<913801FFC0020F13F0023F13
+FC91B57E010380010F15805B49018F13C090387FFC039038FFF00148496C13E05C485B48
+90C7127FA2485A5B121F5BA2123F4914FF17C0127F5BA25D178012FF495B1700A25D5E15
+0F5E151F4B5A7F4B5A4B5A007F5B6D485BD9F80F5BD9FE3F90C7FC6CB55A5D6C14F06C14
+C06C91C8FC000113FC38007FF02B3479B330>I<013FEB01FC9039FFC007FF484A138003
+3F13C05D92B512E06C13C114C314C74801CF137FDA8FFE138091399FFC1E00DABFF8C7FC
+A2ECFFF0485CA25D5DA292C8FC485BA25C5CA25C5A5CA25CA2485BA291C9FCA25B123F5B
+A25BA3485AA35BA212FF5B6C5A003ECAFC2B3478B32D>114 D<91381FFFC0027F13F049
+B512FC010714FE131F4914FF5B9038FFF80FECE0034813C04A5A4815FE140016FCA29138
+8003F06EC7FC806C7F14FC6C13FF6D13C06D7F6D13F801077F6D13FF01001480023F13C0
+020F13E080020113F080157F153FA4D80FE0137F003F15E0486C13FFA248484813C04948
+13806D5AD9FC1F130090B55A6C5C5D6C14E06C1480000749C7FCC613F828347BB32A>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fg vcm14 14.4 33
+/Fg 33 123 df<130E133FEB7F8014C0A2EB3FE0A2EB1FF0A2130F14E0131F14C0133FEB
+7F8013FF481300EA07FEEA3FFC485A485A13C090C7FC127C14186DDA2A>39
+D<130FEB3F8014C0137FEB3FE0A2131F14F0A2130F14E0131F14C0133FEB7F8013FF4813
+00EA07FEEA1FFCEA7FF85BEAFFC06CC7FC123C14187C8B21>44 D<120E123FEA7F80A513
+00A25A5AA21278090D748C1E>46 D<92380FFFC00207B512F091B612FC010781013F8149
+1680EDE00192C7EA7FC0EB3EFE0101ED3FE05C0103151F5CA213075CA2010F16C0A24A14
+3F1880131F177FEFFF005C4C5A013F4A5A16074C5AEE3FF04A495A4B485A017F011F5B91
+269FFFFEC7FC91B55A5E6E13FE707E496C14E0DA003F7F03017F9238003FFC49EC0FFEEE
+03FF00016F138082EF7FC0A249ED3FE0A20003161F18F0A2170F5BA21207A35B18E0120F
+171FA24916C0A2001F163F1880177F49EDFF00A2003F4B5A4C5A4914074C5A007F4B5A90
+C8EA7FE06D4A5AD8FFF001035B01FF013F90C7FC91B512FC6C5D000F15E0000392C8FCC6
+6C13F801071380345679D13C>66 D<0207B5FC0103B612F0011F15FC4915FF4916C018F0
+6DD980077F011890C76C7ED900FEEC1FFE0101ED07FF4A0201138001036F13C04AED7FE0
+183F0107EE1FF05CF00FF8A2010FEE07FCA24A150319FE131F1801A24A16FFA2013F82A4
+5CA2137FA491CAFC19FE5B1801A34917FCA200011703A219F8A249160719F01203180F19
+E0181F4917C0183F00071880187F1900495E60000F16014D5AA2494B5A4D5A001F161F4D
+5A494B5A4D5A003F030390C7FC4C5A494A5AEE3FF8007FEDFFE003075B01F8017F5B90B6
+48C8FCB712F86C15C06C4AC9FC000714F0D8003F90CAFC405478D142>68
+D<F103E0037FB712F0020FB8FC027F17E049B9FC010718004917F0013F010090C9FCEB7F
+F0D9FFC05B485B9038FE0001485A5B6C5AC85BA21503A45EA21507A45EA2150FA55EA215
+1FA45EA2153FA40203B612FC020F815CA2606E15F0DA007FCAFCA25DA45DA21401A45DA2
+1403A45DA21407A45DA2140FA45DA2141FA25DA2143F5D147F92CBFC5C5C1301495A1307
+495A495AEB7FE048485A00075B003F90CCFCEA7FFCEAFFF013C048CDFC1230446C78D242
+>70 D<1870EF01F8EF03FC18F8A21707A418F0A2170FA418E0A2171FA418C0A2173FA418
+80A2177FA41800A25FA45FA21601A45FA21603A45FA21607A45FA2160FA45FA2161FA45F
+A2163FA55FA2167FA494C7FCA25E5EA215015E15035E15075E150F4B5A153F4B5A4B5A02
+0390C8FC4A5A001CEB1FFC397F80FFF8B612E05D92C9FC6C13FC001F13E0D803FECAFC36
+6C8FD128>74 D<1678ED01FC1507151F4B5A4B5AEDFFC04A90C8FC4A5A4A5A5D4A5A5D14
+1F5D143F5D147FA292C9FC5CA25CA21301A25CA21303A25CA21307A35CA2130FA25CA213
+1FA35CA2133FA35CA2137FA391CAFCA25BA35BA21201A25BA21203A35BA21207A25BA200
+0FEE07C049ED0FE048B5147F92B6FC4817C0481780B8EAFE0017F026FE000791C7FC007C
+90CAFC33547AD23C>76 D<933803FF80043F13F04BB512FC030F14FF033F8192B77E0203
+D9F8037F4A903980007FF0DA1FFEC7EA1FF8DA3FF86E7EDA7FE014074A486E7E4990C8FC
+494815014948825C49488149481780A24948167F495AA249CAFC5B12015B12035BA21207
+491800A2000F605BA2121F495FA2123F1801A2495FA2007F1703A261A2180790CA5BA248
+170F61A2181F61183F61187F96C7FC606017016D4B5A1707007F5F4D5A6D4B5A173F6C6C
+4B5A4D5A6C6C020390C8FC4C5A6C6CEC1FFC6DEC7FF86CB4903801FFE06CD9E00F5B6C90
+B6C9FC6C15FC6D14F0011F14C0010749CAFC010013E0415275D149>79
+D<933803FF80043F13F04BB512FC030F14FF033F8192B77E0203D9F8037F4A903980007F
+F0DA1FFEC7EA1FF8DA3FF86E7EDA7FE014074A486E7E4990C8FC494815014948825C4948
+8149481780A24948167F495AA249CAFC5B12015B12035BA21207491800A2000F605BA212
+1F495FA2123F1801A2495FA2007F1703A261A2180790CA5BA248170F61A2181F61183F61
+187F96C7FC606017016D4B5A1707007F5F4D5A6D4B5A173F6C6C4B5A4D5A6C6C020390C8
+FC4C5A6C6CEC1FFC6DEC7FF86CB4903801FFE06CD9E00F5B6C90B6C9FC6C15FC6D14F001
+1F14C0010791CAFC011F14E090B612FC0003EDFF804816E0DA007F13F801F8010713FED8
+03E00100EBFFC0C9001F13F0040313FE0400EBFFC0053F13FE050F7F05011480717E060F
+1300F001FE416175D149>81 D<F001C0023FB712E00103B812F0011F17E090B9FC000318
+8048EFFC004890268001FCC8FC383FF800D87FE013035B485A48C7FC485D1270C81207A4
+5EA2150FA45EA2151FA45EA2153FA45EA2157FA493C9FCA25DA45DA21401A45DA21403A4
+5DA21407A45DA2140FA25DA2141F5DA2143F4A5AEB01FF4990CAFC5C5CEB01E03C5371D2
+42>84 D<EB03C0EB1FE0137F13FF5A4813803807FC00485A485A5B485A5B127F90C7FC5A
+A27FA2127F7FA2123F6C5A000EC7FC131862DA2A>96 D<023FEB0780903A01FF801FC001
+0713E049EBF03F4901F813804913FE90397FCFFF7F028313FFD9FF011400497E0001143F
+497F00036E5A49130700071403491301120F495CA2001F14035B1507123F4B5A5B151F12
+7F153F5E157F90C712FFA2485B5C5E5C5C5CA2EC3FDFEC7F9F02FF5B0181131F903883FE
+3F387FC7FCEBDFF8383FFFF002E07F6C13C06C1300D807FC131FD801F0EB0F802A3478B3
+32>I<15FF020713C0023F13E091B512F04914F8130790390FFE07FCEB1FF890383FF003
+EB7FC0D9FF8013F8140048481307484814F0A24848EB03C04990C7FC120F5B121F5BA212
+3F5BA2127FA390C9FCA25AA97FA2127F6D1304153F6C6CEBFF80D9F80713006CB6FC6C5C
+6C14F86C14E0C691C7FCEB3FF026347AB327>99 D<EF01C0EF07E0170F171FA2EF3FC018
+80A2177F1800A25F5FA21601A25FA21603A25FA21607A25FA2160FA25FA2161FA25FA216
+3FA35FEC0F8091387FF07F903801FFFC010713FF494AC7FC5BEB3FF390387FC07FEC801F
+9039FF0007FE48481301A2485A5B00075D491303120F5B1507001F5D5B150F123F49131F
+A2007F4A5AA2157F90C7FC15FF5A5C5E5CA25C5CA25C91383FDFC0A29038807FBFECFF3F
+EA7F81EBC3FEEBC7FC383FFFF802F07F6C01E07F6C01C05B6CEB001FD801F8EB0F80335A
+78D932>I<EC01FE91380FFF80027F13C049B512E0010714F05B90391FFC0FF8EB3FF090
+387FC007EBFF801400484814F04848130F16E04848131F49EB3FC0000F147F49EBFF8000
+1F0103130049485AEC1FFC003FEB7FF89038C1FFE001875B019F90C7FC387FFFFC14F014
+C091C8FC13FCEAFFE090C9FCA87FA2127F6D1304153F6C6CEBFF80D9F80713006CB6FC6C
+5C6C14F86C14E0C691C7FCEB3FF025347AB327>I<037C1438913A03FF8001FC020F9038
+E003FE4A9038F807FC4AEBFC0F4A01FF13F0DAFF9FEBDFE00303EBFFC04948C6FC4A6D13
+800103141F4A130701076E13004A1300130F5C011F5D4A1301A2013F14035C4C5A017F14
+0FA291C7121FA249143F4C5AA216FF5B5D00015C5D5FED0FF7ED1FEF153F16CFED7F8FED
+FF0F5CEC03FE9026FF07FC5BEC0FF86C90383FF01FECFFE015C06D138090383FFE00EB1F
+F8EB07C090C8FC5FA2163FA55FA2167F121C007E93C7FCB4FC5E5E6D13014B5A6C6C1307
+6DEB1FF8D83FF8495A3A1FFE01FFE06CB65A6C92C8FC6C14FCC614F0013F13C0D90FFCC9
+FC37507EB332>103 D<1470EB01F8497EA25CA21307A35CA2130FA35CA2131FA35CA213
+3FA25CA2137FA391C9FCA25BA45BA21201EC01FE91380FFF80D9FC3F13E091B57E48B67E
+829138FC0FFEECF8039138E001FF4813C04A7E91C7FC491580A249147F120F5BA25BA348
+5AA31700A2495CA2123FA25EA21501A25B5E127F15035EA215075EA290C7120F5E48141F
+4B5AEC07FF021F5B93C7FC48495AEC1FF80078EB0FC0295A76D932>I<EB01E0EB07F014
+F8A514F0130FA2EB1FE0EB0FC0EB070090C7FCB0137CEA01FE7FA37EA35BA21201A35BA2
+1203A35BA21207A35BA2120FA25BA2121FA35BA2123FA35BA2127FA390C7FCA25AA47FA2
+6CC7FC123E155176D01B>I<1478EB01FCA31303A35CA21307A25CA2130FA35CA2131FA3
+5CA2133FA35CA2137FA391C9FCA25BA35BA212011607EE1F80EE3FC04915E0A20003151F
+A217C049147F16FF00074A138003071300ED0FFCED3FF849495A913801FFC0000F495B4A
+48C7FCEC1FFCEC3FF04A5A9038E1FFC001E390C8FC381FE7FEEBEFFCEBFFF05C5C5C8048
+7FA2808080EBF7FEEBE3FF01E17FD87FC07FEC7FF06E7E496C7E6E7E6E6C7E020113E16E
+EBFFC090C76C13E06F13C048140F007E020313800038913800FC002B5A78D932>107
+D<043FEC07E001FCDAFF80EB3FF0486C01036DEBFFF8030F140300034A5C00014A5C4B5C
+DBFFBFEB3FE74A013FEB7FC79026FC03FE9138FF87F0DA07FC01811307000302F8ECFE0F
+913A0FF07F83FCDA1FE0EB87F8023F028F14E001F801C014F0DA7F8090381FE01F0007D9
+FF00EB3FC001F914FF4ADA7F8013C0D9FBFCECFF004948163F5F48B4484A14804A5A4D13
+7F02C05C1A0002805C4801005E4B5B5B4D5B4992C7FC18014848495A61495C180349130F
+007F4B5C5B4C13075B4B5A00FF6090C7FC4C130F8548143FA2486E4813070070020EC7EA
+03E0453577B44D>109 D<163F01FCECFF80486C010313C0150F00035C00015C5DEDFFBF
+4A133F9026FC03FE1380EC07FC0003ECF87FEC0FF0EC1FE0023F140001F813C04A485A00
+07495A13F94A5BEBFBFC9038F7F801A2260FFFF05B14E0150314C05E148048EB0007A25B
+5E5B150F485A5E5B151F5B007F5D5B153F5BA200FF5D90C7FC157F825AA248143F00706E
+C7FC2A3577B432>I<4AB4FC020F13C0027F13F049B57E010780498090381FFC0790393F
+F001FFEB7FC049487E91C71380485A4848147FA2485A5B120F5B121F5BA2003F1600A249
+5CA2007F5DA2150190C7FC5E481403A25E15075E150F5E151F5E153F6D495A15FF007F49
+90C7FC6D485AEC0FFC393FF03FF890B55A6C5C6C14806C49C8FC000113F038007F802934
+7AB32C>I<143814FC497E5CA21303A25CA249B512F016FE011F6E7E017F8190B77E8391
+39F0007FF86D48EB0FFC010F1407011F6E7EA2707E5C82013F1680A24A147FA2137FA391
+C8FCA25B1800A2495DA200015EA21601495DA2000315035F1607495D160F00074B5AA24C
+5A494A5A16FF486C4990C7FCED07FE01FFEB1FFC91B55A5E4815C093C8FC15FC01E713E0
+01C0CAFCA2123FA45BA2127FA590CBFCA25AAB5AA21278315A7DBC32>I<01FCEB07C048
+6CEB1FF0ED7FF80003ECFFFC00015B4A13FE5CEC0FF901FC13F191381FE1FC000390383F
+C0F8027F13005D4AC7FCEBF9FEA23807FBFC5C13FF5CA25C485BA25CA291C8FCA2485AA2
+5BA25BA2485AA35BA2485AA35BA212FF90C9FCA35AA25A1270273477B32A>114
+D<EC1FF891B5FC010314C0010F14E04914F04914F890387FE03F9038FF80071400485A49
+14F0150F000315E0151FED0FC06DEB020092C7FC6C7E806C13E06D7EEB3FFC6D7E6D6C7E
+01037F6D13F06D6C7E6E7EEC0FFE6E7E0201138080ED7FC0A2153FA300061580EA3F8015
+7F007F150090C75A48495A14036D485A9038F01FF86CB55A6C5C6C5C6C91C7FC000313F8
+38007FC025347BB327>I<EB01C0EB07E0497E5CA2131FA35CA2133FA2001FB512E0007F
+14F0A2B6FC6C14E06C1480C66CC7FCA25BA45BA21201A35BA21203A35BA21207A45BA212
+0FA45BA2121FA45BA2EA3FCE13FF8091C7FCA213FCEA1FF0EA0F801C3E77BC1E>I<EA01
+E0D807F0143C6D14FE120F00071401A216FCA215035BA2000FEC07F8A2150FA349EB1FF0
+A2001F143FA2157F16E015FF5B5C123F5C16C05CA25C13804A1380127F5C5CA2ECFF7FD9
+81FE1300130149485A48485AA2495A49485A133FEB7FC1EBFF81EC01FF13FE13FC6C487E
+D83FE0137C000FC9FC273675B432>I<000FEC07C0D87F80EB1FF0486CEB3FF816FCA200
+7FEC1FFE003F14031501A616FCA21503A216F85B1507007F15F0A2150F16E0151F16C0A2
+153F1680157FEDFF00A249485A5D4813034A5A140F5D4A5A4A5A147F4A5A4990C7FCEB07
+FE495AEB3FF8EBFFF014C05C6C48C8FC13F0EA1F80273471B332>I<000FDA01C014F8D8
+7F80D907E0EB03FE486C496C497E701580A2007F02076E13C0003FEF007F193FA5030F16
+80A2197FA24B481500A249013F5D61127F037F14016115FF18034A495C18074A5E4A150F
+4E5A5C4E5A49485EDA3FDF147F484B49C7FCDA7F9F5BDAFF3F5C494B5A02FE4A5AD903FC
+140FD907F84A5A010F4B5AD91FF04A5AD93FE09038C1FF80D97FC001C390C8FCD9FF80EB
+CFFE0200EBFFFC4915F0495DD87FF06D138001C002FCC9FC001EC7EA07E0423471B34D>
+I<D901F0EC07C0D907F8EC1FF0496CEC7FF86E903801FFF06E5B6D4A13E001009039800F
+FC00EE1FF06E6C485A4C5A023F495A03E190C7FC5E91381FE3FCEDF7F815FF6E5B5E5E6E
+5BA293C8FC6E5A5D4A7EA2140F4A7E5CA25C91B57EA2903801FE7FD903FC7F1307ECF83F
+D90FF07FEB1FE0013F131FD97FC07F148049486C7E485A00036E7E485AD83FF8903803FF
+C048488148487F496D5B6CC8127F003C031EC7FC35347CB335>I<1838027815FCD901FE
+EC01FE497E6F14FF816D6D7FEB003F6E7EA26E7EA2020715FE81170114036F14FCA20201
+14036F14F8A26E1407048013F0170F037F14E0A2EEC01F18C0033F133F1880177F04E013
+005F031F5B16E15F16E35F16F75FED0FFF5FA25F5FA294C7FCA25E5EA25EA25E4B5AA24B
+5A4B5A15FF93C8FC4A5A4A5AA24A5A4A5A141F4A5A5D4A5A4AC9FC5B495A495A495A495A
+495A380CFFC0003F5B4890CAFC485A13F8EA7FE0001FCBFC385381B432>I<DA3FF0130E
+49B5EAC03F4991B51280010F1600133F495DDAE07F13F8DA80015B013EC7EA3FE001104A
+5A90C8485A4B90C7FC4B5A4B5A4B5A4B5A5E4B5A4B5A15FF4A90C8FC4A5A4A5A4A5A4A5A
+4A5A5D4A5A4AC9FC5B495A495A495A5C495A495A137F495A4890CAFC485A4915F04848EC
+03F8485A001F1507D9FF805C4801FC130F489039FFE03FE092B5FCB85A5FD8FE034AC7FC
+2678001F13F8C813C031357DB32F>I E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fh vccb14 14.4 9
+/Fh 9 116 df<93380FFFC00307B512F0037F14F80207B612FC143F49B712FE5B130F49
+9039FE003FFF017F01E07F90B5487F3801FE7FD803E05B260080FF805B4990C7FC18FE5B
+A24A15FC1307EF0FF8A24A15F0010FED1FE018C0EF3F80EF7F004948147E4C5AEE0FF092
+380FFFE0033F1380013F497F02F1B512F002F314FC91B7FC188018C0D97FEF15E0DAE003
+14F0ED003F040F13F88201FF020113FC4A7FEF7FFE173FA2EF1FFF485B83A3835A91C8FC
+A218FEA25A4916FCA2170F18F8485AEF1FF018E0A249ED3FC0001F1780EF7F004915FE4C
+5A003F5E01FE4A5AD9FFC0EB0FC04801FCEBFF8091B548C7FC5EB712F0003F5D000F1580
+00034AC8FCC66C13F80107138038567AD141>66 D<1910197019F01803F007E0181FF03F
+C018FF4D13805F170F4D1300177F94B5FCEF33FE1703170760170FA260171FA260173FA2
+60A2177F60A217FFA2605EA295C7FCA2ED3F83EDFFFB4AEBFFFE14075C143F4A5C49B6FC
+903803F07F010701075B90380FE00190391FC0007F013F141F49485C01FF143F91C7FC5A
+494A5A1203484814FFA2000F4A5B5B5D121F49495B5D123F5D5D484892C8FC5D92B5FCA2
+5C00FF495BA2EC07F7EC0FE7EC1FCF91383F8FFC01F0010F1304027E141CD9F8FC14FCD9
+FFF8EBFFF8DAE01F5B6C01C014C002005C494AC8FC6C485CD81FF014F0D807C0EB07803C
+5A76D937>100 D<ED03FCED1FFEED7FFF4AB5FC5C020F14805C147FECFF07EB01F09026
+07E0031300130FD91FC05BEB3F80017F5C4948485A485D49495A00035D4848013FC7FC15
+FE390FF803F8EC1FF0001FEBFFC001F75BD9FFFEC8FC4813F814E0148049C9FCEA7FF05B
+A312FFA57FA26D806DEB03C001FF133F6C90B5C7FC5D5D6C14F06C5C6C1480000349C8FC
+C613F0293478B32A>I<1510157815F814031407140F143F15F0A315E015C0EC7F00147E
+147C147091C7FCAF14F81307EB1FFC133F13FF5A1207485BEA1FDFEA1E1F1200495AA35C
+137FA35C13FFA25C5AA291C7FCA25AA25B1207A25B120FA25BA2121FA25B123FA21410EB
+E078387FE3F8EBFFE05C5C4848C7FC5B13F013C0003EC8FC1D5377D21D>105
+D<1504151C153E15FC14011407EC0FF8141F147F14FF010313F05B5B133F90380C3FE0EB
+007FA315C014FFA215805BA315005BA35C1307A35C130FA25C131FA35C133FA35C137FA3
+5C13FFA35C5AA391C7FC5AA35B1207A4485AA4485AA5485AA5387FE0101478EBE3F8EBFF
+E05CB55A49C7FC5B13F013C0003EC8FC1F5A77D91D>108 D<0270EC07C0D903F8141F01
+0FED3FE0011F15FF017F5C01FF14070003495B48153F48037E13C0D80E3F14F80000EC03
+F04948485ADB0FC11380ED1F81ED3F01157E49484848130014C1ECC3F8DAC7F05B489038
+8FE007EC9FC0DABF805B14FF91387F000F4813FE4A5C161F5C48495C5C163F4A5C485B16
+7F91C7FC5F484814FF5B5F495B003F168249158F173F4B13FC48485D5F018015C090C748
+5B00FE4BC7FC00F815F80070EC01E0333478B337>110 D<ED03FCED1FFF037F13804AB5
+12C04A14E0140F4A14F0147FECFF03902601F00113F8903807E000130F4948137F495A01
+7F143F49C7FC5A5B000316F0485AA2120F4915E0001F157FA24915C0123F16FF1780485A
+4B1300A25E150300FF5D4B5AA24B5A5E6D495A4B5A6D49C7FC6D137E9038FF03F86CEBFF
+F05D15806C91C8FC6C13FC6C13F0000313C0C690C9FC2D3478B330>I<027014F0D903F8
+EB03F8010F140F011FEC1FFC017F143F01FF14FF0003495A48020713F04891380FDFE0D8
+0E3F90381F9FC0000091383F1F0090397FE07F0603FEC7FCECE1FCECE3F8ECE7F0EBFFCF
+ECDFE05D14FF485C92C8FC5CA25C5A5C5CA2485BA25C5C5A91C9FCA25B121F5BA25B123F
+5BA3485AA2138090CAFC12FE12F812702E3478B32D>114 D<ED3FFC4AB5FC0207148014
+1F4A14C091B6FC5B5B90380FE00349486C1380133F017F150001FF14FC4B5A4801E013E0
+6E485A6EC8FC14FE806C14C0816D13F86D13FE6D7F6D800103806D806D7E021F7F800203
+7F8080157F1308013C6D5A137C48485C485A000F5D4848495A003F92C7FC01F813FE48B4
+5BB612F05D5D92C8FC6C5B6C13F8000F13E0000113802A347AB32A>I
+E
+%EndDVIPSBitmapFont
+%DVIPSBitmapFont: Fi vcc14 14.4 32
+/Fi 32 123 df<1440EB01E01303EB0FF0131FA214F8130FA2130714F0A214E0EB0FC014
+80EB1F00133E1378EA03F0EA0FE0EA1F8048C7FC12FC1230151869DA2A>39
+D<EB0180EB03C0130F131FEB3FE0A214F0131FA3EB0FE014C0A2EB1F801400133E5B5BEA
+03E0EA0FC048C7FC127E12F85A14187C8B21>44 D<5AEA0780120F123F127FA31300A212
+7E12F85A12C0090D748C1E>46 D<EEFFFC037F13FF020FB6128091B712C01307013F16E0
+49EBE00048B5C7127F2603FE3FEC3FF0380FE07E261F00FE141FC75A0101150FA2495AA2
+18E013075C18C0171F010F16805CEF3F00A2011F157E5F4A5C4C5AEE03C0013FEC0F8004
+7FC7FCED1FFC913881FFF802877F028FEBFF80D97FBF14E091B67E023F14FCDA000F7F03
+007F49021F138016077013C049807013E0177F0001EE3FF0A249151F18F8170F1203A217
+075BA31207A24916F0A3000FEE0FE05B18C0171F001F17805BEF3F00A2003F167E495D5F
+4C5A48C8485AEE078001E04AC7FCD8FFFC147E9039FFC007F891B55A16C0001F92C8FC00
+0714FCC614F0010F90C9FC355679D13C>66 D<4AB512E0023F14FE49B712C0010716F049
+82013F16FE49D980077F2601F83FC7003F7FD9C07F020F7FC7007E02037F02FE804A6E7F
+0101707E183F49486F7E180FA249486F7EA2180385010F825C841A80A2131FA24A167FA3
+133FA25CA3017F1800A391CA5AA2615BA249160161A212014E5AA25B4E5AA2000360180F
+495F181F610007173F96C7FC49167EA260000F5F4D5A4915034D5A60001F4C5A494BC8FC
+173E177848485D4C5AEE07C0041FC9FC486C14FE01FEEB1FF890B612E0B75A93CAFC6C14
+F8000F14E026007FFCCBFC415478D142>68 D<1C601CE0F307C094B81280041FEEFE0004
+7F5E4BB812F003075F4B94C7FC92273FE00FF0C9FCED7C0003F05CEC03E04A5A4A48131F
+141F4AC75BA2147E02FE143FA2495A60A21303177FA295CAFCA2805F5C5C6D485CEB00C0
+91C8FC1601A25FA41603A25FA3047FB612F893B77E03035E4B5E4B16C0629226000FF0CA
+FCA25FA3161FA35FA3163FA25FA3167FA394CBFCA35EA25EA31501A35EA315035EA34B5A
+A25E150F5E4B5AA24BCCFC153E5D5DEC01E00007495A390FE03F80263FFFFECDFC485BB5
+12F06C13C06C90CEFCEA07F8536E83D442>70 D<EF0FE0EF3FFE94B5EAE0040403ECFFFE
+4C15FC041F15F8DC3C0714E09326F0007F13C04C90B5120093C790C7FC60A31701A360A3
+1703A260A31707A360A3170FA260A3171FA360A3173FA260A3177FA395C8FCA35FA25FA3
+1601A25FA31603A35FA31607A25FA3160FA35FA3161FA25FA3163F5FA34CC9FCA2167E16
+FE5E4B5AA24B5A5E4B5A4B5A031ECAFC5DD8078013F8390FF00FE0003FB55A4891CBFCB5
+5A6C13F8001F13C0D803FECCFC476D91D328>74 D<EF03FCEF1FFF057F13C04CB512E04C
+14F0160F93391F807FF893387C003F04F0131FDB03E0EB0FFC4B4813074B5A4BC712035D
+157E157C03FC15F84A5AA20203ED07F04B15E01407F00FC04A481580F01F00183C4A485C
+60EF03C04A48495A94C8FCA2147F92CAFCA35C5CA313015CA31303A25CA313075CA3130F
+A25CA3131FA25CA3133FA25CA3137F91CBFCA3495E49EE0780F00F00183F4848167E6090
+B500F8EB03F84891B612E0604894C7FC5F4816F8261F00031480003C90CBFC12F012403E
+587DD43C>76 D<EF7FE0933807FFFC043F13FF93B612C0030381030F8192261FF0037F03
+7FC7FC03F8EC3FFCDA03E0141FDA07806E7E4AC81207023E15034A824A81495A01038249
+4817805C130F4948167F49CAFCA2137EA25BA212015B12031A00485AA261485AA261121F
+5B180161123FA249160361A2127F4E5AA290CAFC4E5AA24860181FA261183F96C7FC6018
+7E60A26D4B5A4D5A6017076C6C4B5A606D4BC8FC173E6C6C5D6D15F06DEC03E06C6CEC0F
+C06C6C6C013FC9FC9138F007FE6C90B512F86C15E0C615806D49CAFC011F13F801031380
+415274D149>79 D<EF0FFC94B57E040714E0041F14F8047F804BB67E4B48C66C7EDB0FE0
+131F4BC700077F037C8003F06E7F4A4880DA07C0157F4A48824AC9123F143E027E161F4A
+835C13014948160F495AA2495AA2495AA2133F91CAFC5B6213FEA2191F485AA26212035B
+193F621207A249177F97C8FCA2120F19FEA25B4E5AA2001F601803A261180761180F614E
+5AA26D4CC9FC187E187C18FC6C6C4B5A606D4B5A4D5A6C6C4B5A6D031ECAFC6E147C6C6D
+495A6C01F0EB07E002FEEBFFC06C90B6CBFC6D14FC011F14F06D14C0010314F86D14FF01
+0715C0011F15F8017F15FE2701FF003FEBFFC0D807F8010114F0D80FC0D9003F01FE1510
+003FC80007D9FFC01470007C030102F8EB01F000E0DB003F9039FF801FC0CA000F91B512
+8005011600716C14FC060F14F0060114C09526001FFCC7FC546177D149>81
+D<1A181A38F101F0033FB712E00207B81280021F1700027F16FC49B85A4917C090280FF8
+000FE0C8FC49C7FC133C01F8141F485A48485D1207485A163F485A003F5EA248C8FC167F
+A25A94C9FCA35E7F5E90C8FC5A007C14011230C8FC5EA31503A25EA31507A35EA3150FA2
+5EA3151FA35EA3153FA25EA3157FA293CAFCA35D5DA35D14015DA24A5A5DEC078049B67E
+130704FCC9FC455575D442>84 D<143814F8EB03F0EB07E0EB1F80EB3F001378485A485A
+485A485A121F48C7FCA25A487EA27FA26C7E5B6C5A003EC7FC121C15185EDA2A>96
+D<DA01E01310DA07F813704A6C13F091393FFE03E091387FFF8791B512CFD903E7EBFFC0
+EB07C1EB0FC049487E49486C138081017E7F01FE6D1300497F000180497F00035D5B1207
+1501495C000F1403A2484813075E150F123F49131F5E153F007F147FA290C712FF4A5BA2
+48EB03EFEC07DF020F5BEC1F9F151FEC3E3F027C1440D980F8EB81C0D9C1F01387D9E3C0
+EB9F803B7FFF807FFE0002005B01FC14F06C4814C0D81FE091C7FCD807C0133C2C3477B3
+32>I<ED0FE0ED3FF8EDFFFC1403140F4A13FEEC7E07ECF003903801E001EB07C0EB0F80
+D91F0013FC4914F8017E14E049EB03C092C7FC485A12035B12075B120FA2485AA3123F5B
+A3127F90C9FCA35AA77F5D6D13076C6C133E9038F803FC90B55A6C14E05D6C91C7FC0007
+13F800011380273479B327>99 D<ED0FE0ED3FF8EDFFFC1403140F4A13FEEC7F07ECF003
+903801E001EB07C0D90F8013FCEB1F004914F8137E49EB03F016E04848EB07C00003EC0F
+8049EB1E0000075C4913F8000FEB03E0EC0FC0261FC07FC7FCEBC1FCEBCFF8383FFFE014
+8049C8FC13F0EA7F8090C9FCA35AA77F5D6D13076C6C133E9038F803FC90B55A6C14E05D
+6C91C7FC000713F800011380273479B327>101 D<05F81440DC03FE14E0933A07FF8003
+C0041F9038E007804C9038F01F004CEBFC3EDB01F1EBFF7E922603E07F5B0307131F9226
+0FC0075B4B487E05005B4BC7123F4B141F037E6E5A15FE4B141F02015E4B143F14034E5A
+5D020715FFA24A484990C7FC5FA2021F5C4B5C170F171F143F173F4B495A17FD17F9027F
+EB01F31603933807E3F817C3EE0F83EE1F07163E167CDBC0F85BEDE1E0EDFFC06EEB800F
+EDFE005DEC1FF0DA07C05C91C8FC14100270141F14F0EB03E0D907805D49C8FC133C4915
+3F5BD803E05E485A485A001F4CC8FC48C9FC177E485E5F486CEC01E06DEC0FC001F0EC7F
+8001FFD90FFEC9FC6C90B512F85E6C15C0000F4ACAFC000314F026003FFECBFC435087B3
+32>103 D<152015E014011407140F4A5A147F14FF1303495B5BEB1C3FEB007F92C8FCA3
+14FEA313015CA313035CA3495AA3130F5CA3131F5CA2ED07F0013FEB3FFC4AB47E02837F
+1487D97F9F1480EC3F03DA780113C04A7E4948137F4A14E0163F5C4890C7FC161F5BA212
+035BA34915C01207A249143FA2000F1680A25B167F1700121FA2495C5EA2123F4B5AA25B
+4B5AA2007F5D15075E90C7120F913803CFC091380FFF80484990C7FC48EB3FFC48495A00
+F0EB3FE00060EB0F802B5A76D932>I<1580EC03C01407141F143FA21580A21500147E14
+7C1470146091C7FCB0EB01E0130F133F13FF12035AEA1FDF383E1FC012381200133F5CA3
+49C7FCA413FEA312015BA3485AA3485AA4485AA3485AA4485AA3127FEB01C0EB0780013F
+C7FCEAFFFE13F813E05B90C8FC12781A5176D01B>I<15301570EC01F014034A5A141F14
+3FECFFC05B13075B90380E3F801300A24AC8FCA414FEA313015CA3495AA4495AA3130F5C
+A3131F5CED01FE92380FFF80013F013F13C04A5A0281B512E01483903A7F8FC07FF09138
+1E003F027C131F5C4948130F5C17E05C484914C0EE1F8091C7FCEE3F0049143E00035D49
+5CED01E049495A00074A5A031FC7FC49137C5DEC03E0000FEB0FC0143FEBE07F9038E1FF
+E013E3391FEFBFF0EBFE1F01FC7F13F8496C7E003F80EBE00701C07F6E7F6E7F01808000
+7F6D7FED7FFCEEFFC090C76C13E0007E6E1380007C6E130048EC03FC0060EC00F82C5A78
+D932>107 D<02E00278141E0103DA01F8147E010F4A6CEB01FF013F020F5C01FF021F5C
+48037F141F00074901F3143CD80F1FD901E35C000E913B07C3F801F0FED8003FD90F83EB
+03E0DB1F03EB07C09126803E07EB0F81037C91381F01FC03F8EBF03E90267F81F0147E02
+03EDFC03DBE00F01F813F8DA07C0EBE1F09026FF0F8013E3D9FE1F9139E7E007F0913A3F
+001FEFC0023EECCF804A14DF000101FC9139FF000FE0D9FDF8495A5C01FF4BEB1FC04849
+5C4A137F5F4A4AEB3F804890C712FF5F49EF7F005F48485B94C75A494A5C5B001F4A5A49
+4C5A5E491307003F191C4C903803F87849EFF9F04B48ECFFE048C74B1380007E4BECFE00
+007C4A485C48021EC713F00060020CEC03C0483478B34D>109 D<02E014F00103140301
+0FEC0FF8013F141F01FF147F4815FF00079038C001E7D80F1FEB07C7000E91380F87F0D8
+003FEB1F07153E9138807C0F03F813E0148190387F83F0913803E01FDA07C013C0EC0F80
+EBFF1F903AFE3F003F80143E147E5C486C48EB7F0013FDEBFFF04A13FE5A5C5C4B5A4813
+00A249495A5B120F4913075E5B121F49495AA25B003F16E092381FC3C049ECCF80EEFF00
+48C7EA3FFC007E15F0007C5D4815800060021EC7FC2D3478B332>I<ED0FF0ED3FFCEDFF
+FE02037F140F4A1480EC7E03ECF00149487ED907C0EB7FC0495A49C7FC49143F137E5BA2
+485A120349158012075B000F157F1700485AA216FE123F5B4B5AA2127F90C7485AA25E48
+4A5AA24B5A5E151F4BC7FC153E6D5B5D6D485A397FE003C09038F81F8090B5C8FC6C13FC
+5C6C13E000071380D801FCC9FC2A3479B32C>I<15301570EC01F014034A5A140FA2141F
+5D92B512E017F84A14FE91B7FC491680130749D9000713C0496C010113E0013880D900FE
+EC7FF0173F171F13014AEC0FF8A349481407A4495AA218F0130F5C170F18E0131F5CEF1F
+C0A2495AEF3F80A2017F160091C8127EA25F495D4914014C5A5F00014B5A6D4A5A6E011E
+C7FC02F8137C4890B55A16E05E93C8FC4814FC01F113F001F0CAFCA2120F5BA3121FA25B
+A3123FA25BA3127FA290CBFCA35AA55A5A5A1260355B7FBC32>I<02E0EB0F800103EC1F
+C0010F147F013F903801FFE001FF5B485C00079038C01F3FD80F1F90383E1FC0000E027C
+1380D8003F01F8130002C1130C4A48C7FC5DEC87C0EB7F8F4A5A4AC8FCA2EBFF7E495AA2
+6D5AA2485B5CA25C5A5CA291C9FC5A5BA25B120F5BA25B121F5BA25B123FA25BA248CAFC
+127E127C5A12602B3478B32A>114 D<ED3FE0EDFFFC020313FE140F023F13FF5CECF807
+903803E00149487E010F14FE494813FC16F8013FEB01F0017F14E0ED03809138C001006E
+C7FC8080EB3FFE806D13C06D13F001037F6D13FE6D6C7E6E1380140F020313C0806E13E0
+157F153FA2151F132001F014C0485A48481480D80F80133F001F150048C7FC48147E6D13
+7CD8FFE05B9038FC03E090B55A5D6C49C7FC001F13F800075BC6138028347BB327>I<14
+18143814F813011303495AA3495AA490B512F812034814F0001F14E04814C0150038003F
+80137F91C7FCA35B5BA312015BA312035BA312075BA3120F5BA3121F5BA3123F5BA3127F
+14F0EB03E0EB1FC0EBFF804848C7FC13F813E01380007CC8FC1D3D75BC1E>I<010F1540
+013FEC01C04914034848140F0007ED1F8048153F123ED878FE147F00701600120000015D
+A249495AA215031203495C1507A200074A5AA249131F153F5E000F147F5B15FF5E001F5B
+5C13C04A5BA2003FEB0FDFEC1FBF0180EB3F80143F147E007FEB7C7F02F890C7FC1301EB
+03F04A5A484848130790390F80FE1ED91F00137C01FC6D5A494813E001F0148001C091C7
+FC018013FC003EC712F02A3475B332>I<0107EC01F0013FEC0FF8D9FF80133F000315FF
+484A13FC001F1407D83F7FEB0FC70078EC1E0300E0143800001400A291C713F8A3491407
+17F0A349EC0FE0A217C00001151F1780163F17005B167EA200035DA24B5A4B5A5B4B5A5E
+00074A5A151F4BC7FC153E495B5D4A5A000F495AEC0780021FC8FC14FEEBFFF85C14C091
+C9FC13FCEA03E02E3475B332>I<01070360143C013F03E0EB01FED9FF80D903F0130700
+030307141F48031FEC3FFF001F95B5FCD83F7FEE01F90078EF03C000E04DC6FC000094C7
+FCA21AFE91C7485AA2491701047F15FCA304FFEC03F8495D4B16F0000118074B16E0190F
+4B16C0494B131F4B1680193F00034A1600DB3F7F5C197E037E5D49017C90C7FC03FC4A5A
+0007494848495A4A485D4B14074A484A5A020F5E4948484849C7FC0300143E000FD93E01
+5C027C5D02F8EC01E0D9F1F04A5AD9F3C0EC1F80D9FF80D9FFFEC8FC02005C01FC15F049
+5D01E01580D80380D9007CC9FC483475B34D>I<DA01E0EC03C0DA07F0140F021FED3FE0
+DA7FF8147F02FFEC01FF01034B13C0902607CFFC9038079F80D91E0791381F1F00011CED
+3E1C90260003FE49C7FC5F4C5A6E6C485A4C5A4C5A6E49C8FC16BF16BE16FC6F5A5E5EA2
+5E153F82A2157F15FF825C5CEC07DF91380FCFF8EC1F8F150F143E4A6C7E14F81301D903
+F07FECE003260107C07F26070F801570270F9F0001EB81E0D83FFEEDC7C048486DEBFF80
+D8FFF04BC7FC496E5A6C4815F06CC8EA3FC0000E030FC8FC3B347EB335>I<190C031E15
+1C037F157C4B6C14FE020315014A6D1303021F1501023C7FEC707FECE03F02006D14FC15
+1FA2701303030F15F8A36F6CEB07F0A219E00303140F7014C0181F19801501F03F008218
+7EA26F5CA24D5AA2EF83F0178760EF8FC0167FEF9F8017BF95C7FC17FEA25F5FA25F5FA2
+5F5F94C8FC5E5E5EA24B5A4B5A5E4B5A150F4B5A93C9FC153E5D5D14015D4A5A4A5A4A5A
+4ACAFC143E00025B000F5B381F81E0383FC3C0B55A49CBFC5BEA7FF06C5AEA0F803F5385
+B432>I<ED3F80912601FFF01330020701FC13704A9038FF81E0023FECFFC04A15809026
+01F81F1400902603C0035B010FC76C5A011EEC1FF80138EC01F001104A5A90C8485A4C5A
+4CC7FC163E5E5E4B5A4B5A4B5A4B5A4BC8FC153E5D5D4A5A4A5A4A5A4A5A4AC9FC143E5C
+5C495A5C1303494814184948147849C812FC013E14034914075B4848140348485D3807FF
+F048D9FF805B489138F807E092B512804893C7FC485DD8F80314F82660001F13E0C70001
+138034367DB42F>I E
+%EndDVIPSBitmapFont
+end
+%%EndProlog
+%%BeginSetup
+%%Feature: *Resolution 600dpi
+TeXDict begin
+%%BeginPaperSize: a4
+a4
+%%EndPaperSize
+
+%%EndSetup
+%%Page: 1 1
+1 0 bop 515 530 a Fi(This)28 b(is)e(the)i(`cursive')e(shape,)i
+Fh(in)h(Bold)h(series)36 b Fi(The)28 b(Quick)g(Br)-6
+b(own)28 b(Fox)515 679 y(J)-7 b(umps)27 b(Over)g(The)h(Lazy)h(Dog.)515
+829 y Fg(This)f(is)e(the)i(`modern)g(script')e(shape,)i
+Ff(in)h(Bold)h(series)j Fg(The)28 b(Quick)g(Br)-6 b(own)515
+978 y(Fox)29 b(J)-7 b(umps)27 b(Over)g(The)h(Lazy)h(Dog.)515
+1127 y Fe(This)f(is)e(the)i(`twist')e(shape)i Fd(in)i(Bold)g(series)d
+Fe(The)h(Quick)g(Br)-6 b(own)28 b(Fox)h(J)-7 b(umps)515
+1277 y(Over)27 b(The)h(Lazy)g(Dog.)2612 1426 y Fc(J)-9
+b(ames)34 b(K)l(il\014ge)p Fb(r)1926 5255 y Fa(1)p eop
+%%Trailer
+end
+userdict /end-hook known{end-hook}if
+%%EOF
diff --git a/fonts/vicentino/kilfiger/testvic.tex b/fonts/vicentino/kilfiger/testvic.tex
new file mode 100644
index 0000000000..2002636001
--- /dev/null
+++ b/fonts/vicentino/kilfiger/testvic.tex
@@ -0,0 +1,20 @@
+\documentclass{article}
+\usepackage{vicent}
+\begin{document}
+\Large\raggedright
+\textcursive{This is the `cursive' shape, \textbf{in Bold series}
+The Quick Brown Fox Jumps Over The Lazy Dog.}
+
+\textmodernscript{This is the `modern script' shape, \textbf{in Bold
+series} The Quick Brown Fox Jumps Over The Lazy Dog.}
+
+\texttwist{This is the `twist' shape \textbf{in Bold
+series} The Quick Brown Fox Jumps Over The Lazy Dog.}
+
+
+
+
+%example of using low level font selection to get a swash `r'
+\raggedleft{\LARGE\fontfamily{vc}\fontshape{ui}\selectfont
+James Kilfige\fontshape{its}\selectfont r }
+\end{document}
diff --git a/fonts/vicentino/kilfiger/vicent.sty b/fonts/vicentino/kilfiger/vicent.sty
new file mode 100644
index 0000000000..817e845af5
--- /dev/null
+++ b/fonts/vicentino/kilfiger/vicent.sty
@@ -0,0 +1,15 @@
+%This was written by James Kilfiger, to support the Vicentino fonts of
+%Willibald Kraml
+\ProvidesFile{vicent.sty}[1999/09/24 Vicentino Font Package]
+\newcommand\cursiveshape{\fontencoding{OT1}\fontfamily{vc}\fontshape{it}\selectfont}
+\newcommand\modernscriptshape{\fontencoding{OT1}\fontfamily{vc}\fontshape{sl}\selectfont}
+\newcommand\twistshape{\fontencoding{OT1}\fontfamily{vc}\fontshape{ui}\selectfont}
+\newcommand\vicentinofamily{\fontencoding{OT1}\fontfamily{vc}\selectfont}
+
+\DeclareTextFontCommand{\textcursive}{\cursiveshape}
+\DeclareTextFontCommand{\textmodernscript}{\modernscriptshape}
+\DeclareTextFontCommand{\texttwist}{\twistshape}
+\DeclareTextFontCommand{\textvicentino}{\vicentinofamily}
+
+
+
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}
+