summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source')
-rw-r--r--Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf320
-rw-r--r--Master/texmf-dist/fonts/source/public/beuron/beuronkern.mf259
2 files changed, 416 insertions, 163 deletions
diff --git a/Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf b/Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf
index c1dbf97206b..6a47fa607c9 100644
--- a/Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf
+++ b/Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf
@@ -1,14 +1,14 @@
% beuronbuchst.mf
% Die Buchstaben der Beuroner Kunst
% The letters of Beuronese art
-% Autor: Keno Wehr
-% 4. September 2016
+% Autor: K. Wehr
+% 1. November 2017
% U.I.O.G.D.
mode_setup;
-Schriftgr# := 1cc#; % nominelle Schriftgröße
-hoe# := 2/3Schriftgr#; % Höhe der Buchstaben
+Schriftgr# := 1cc#; % nominelle Schriftgröße
+hoe# := 2/3Schriftgr#; % Höhe der Buchstaben
font_size Schriftgr#;
font_x_height 0.6hoe#;
@@ -18,62 +18,62 @@ font_normal_stretch f*1/3hoe#;
font_normal_shrink f*1/6hoe#;
-S# := 0.11hoe#; % Stiftbreite
+S# := 0.11hoe#; % Stiftbreite
define_pixels(S);
-klAb# := f*1.0S#; % kleinstmöglicher Buchstabenabstand
-grAb# := f*2.6S#; % größtmöglicher Buchstabenabstand
-Ue:=0.2*S; % Überstand der Rundungen nach oben und unten
+klAb# := f*1.0S#; % kleinstmöglicher Buchstabenabstand
+grAb# := f*2.6S#; % größtmöglicher Buchstabenabstand
+Ue:=0.2*S; % Überstand der Rundungen nach oben und unten
% Korrektur des solve-Makros, die Verschachtelungen erlaubt:
vardef save_solve@#(expr true_x,false_x) =
- save tx_, fx_, x_;
- tx_ := true_x;
- fx_ := false_x;
- forever:
- x_ := 0.5[tx_,fx_];
- exitif abs(tx_-fx_) <= tolerance;
- if @#(x_): tx_ else: fx_ fi := x_;
- endfor
- x_
+ save tx_, fx_, x_;
+ tx_ := true_x;
+ fx_ := false_x;
+ forever:
+ x_ := 0.5[tx_,fx_];
+ exitif abs(tx_-fx_) <= tolerance;
+ if @#(x_): tx_ else: fx_ fi := x_;
+ endfor
+ x_
enddef;
% Bestimme z.i so, dass die Gerade durch z.i und z.j zur Parallelen durch z.k
% den Abstand S hat:
def bestimme_Parallelenpunkt_A(suffix i, j, k) =
- % Überprüfe, ob der Abstand der Geraden durch z.i und z.j zur Parallelen
- % durch z.k größer ist als S, wobei die unbekannte Koordinate von z.i durch
- % das Argument ersetzt wird:
- vardef Abstand_groesser_S(expr Wert) =
- pair Lotfuss;
- if (unknown x.i):
- Lotfuss = whatever[z.j,(Wert,y.i)];
- Lotfuss-z.k = whatever*((Wert,y.i)-z.j) rotated 90;
- else:
- Lotfuss = whatever[z.j,(x.i,Wert)];
- Lotfuss-z.k = whatever*((x.i,Wert)-z.j) rotated 90;
- fi
- length(Lotfuss-z.k) > S
- enddef;
-
- if (unknown x.i):
- x.i = save_solve Abstand_groesser_S(x.j,x.k);
- else:
- y.i = save_solve Abstand_groesser_S(y.j,y.k);
- fi
+ % Überprüfe, ob der Abstand der Geraden durch z.i und z.j zur Parallelen
+ % durch z.k größer ist als S, wobei die unbekannte Koordinate von z.i durch
+ % das Argument ersetzt wird:
+ vardef Abstand_groesser_S(expr Wert) =
+ pair Lotfuss;
+ if (unknown x.i):
+ Lotfuss = whatever[z.j,(Wert,y.i)];
+ Lotfuss-z.k = whatever*((Wert,y.i)-z.j) rotated 90;
+ else:
+ Lotfuss = whatever[z.j,(x.i,Wert)];
+ Lotfuss-z.k = whatever*((x.i,Wert)-z.j) rotated 90;
+ fi
+ length(Lotfuss-z.k) > S
+ enddef;
+
+ if (unknown x.i):
+ x.i = save_solve Abstand_groesser_S(x.j,x.k);
+ else:
+ y.i = save_solve Abstand_groesser_S(y.j,y.k);
+ fi
enddef;
% Bestimme den Punkt z.i links von der Geraden durch z.j und z.k so,
% dass er von dieser Geraden den Abstand Ab hat:
def bestimme_Parallelenpunkt_B(suffix i, j, k)(expr Ab) =
- pair Lotfuss;
- Lotfuss = z.j+Ab*unitvector(z.k-z.j) rotated 90;
- z.i-Lotfuss = whatever*(z.k-z.j);
+ pair Lotfuss;
+ Lotfuss = z.j+Ab*unitvector(z.k-z.j) rotated 90;
+ z.i-Lotfuss = whatever*(z.k-z.j);
enddef;
-Avn# := klAb#; % Vor- und Nachbreite des A
-Ab# := f*1.15hoe#+2Avn#; % Dickte des A
+Avn# := klAb#; % Vor- und Nachbreite des A
+Ab# := f*1.15hoe#+2Avn#; % Dickte des A
define_pixels(Avn);
beginchar("A",Ab#,hoe#,0); "Buchstabe A";
@@ -86,8 +86,8 @@ y6 = y7 = h;
bestimme_Parallelenpunkt_A(6,1,5);
z5-z2 = whatever*(z6-z1);
fill z1--z2--z5--z3--z4--z7--z6--cycle;
-picture ABild;
-ABild := currentpicture;
+picture ABild_teilweise, ABild;
+ABild_teilweise := currentpicture;
z8 = 0.45[z2,z5];
x9 = w/2;
z10 = (w-x8,y8);
@@ -103,16 +103,17 @@ z9l-z8l = whatever*(z9-z8);
z10l-z9l = whatever*(z10-z9);
penstroke z8e--z9e--z10e;
penlabels(range 1 thru 10);
+ABild := currentpicture;
endchar;
-Pvor# := grAb#; % Vorbreite des P
-Pnach# := 0.4[klAb#,grAb#]; % Nachbreite des P
-Pb# := f*0.7hoe#+Pvor#+Pnach#; % Dickte des P
+Pvor# := grAb#; % Vorbreite des P
+Pnach# := 0.4[klAb#,grAb#]; % Nachbreite des P
+Pb# := f*0.7hoe#+Pvor#+Pnach#; % Dickte des P
define_pixels(Pvor,Pnach);
beginchar("P",Pb#,hoe#,0); "Buchstabe P";
-PBreite := w-Pvor-Pnach; % wird für das B und das R benötigt
+PBreite := w-Pvor-Pnach; % wird für das B und das R benötigt
pickup pensquare scaled S;
lft bot z1 = (Pvor,0);
lft top z2 = (Pvor,h);
@@ -127,12 +128,14 @@ y6 = y2;
pickup pencircle scaled S;
draw z3---z5..z4..z6---z2;
labels(range 1 thru 6);
+picture PBild;
+PBild := currentpicture;
endchar;
-Bvor# := grAb#; % Vorbreite des B
-Bnach# := 0.5[klAb#,grAb#]; % Nachbreite des B
-Bb# := f*0.85hoe#+Bvor#+Bnach#; % Dickte des B
+Bvor# := grAb#; % Vorbreite des B
+Bnach# := 0.5[klAb#,grAb#]; % Nachbreite des B
+Bb# := f*0.85hoe#+Bvor#+Bnach#; % Dickte des B
define_pixels(Bvor,Bnach);
beginchar("B",Bb#,hoe#,0); "Buchstabe B";
@@ -151,16 +154,18 @@ y7 = 0.5[y1,y3];
x8 = x9 = 0.5[x1,x7];
y8 = y1;
draw z3--z9;
-draw z3--z5; % falls bei großer Stauchung z5 links von z3 liegt
+draw z3--z5; % falls bei großer Stauchung z5 links von z3 liegt
pickup pencircle scaled S;
draw z1---z8..z7..{left}z9;
draw z2---z6..z4..{left}z5;
labels(range 1 thru 9);
+picture BBild;
+BBild := currentpicture;
endchar;
-Ovn# := 0.3[klAb#,grAb#]; % Vor- und Nachbreite des O
-Ob# := f*1.1hoe#+2Ovn#; % Dickte des O
+Ovn# := 0.3[klAb#,grAb#]; % Vor- und Nachbreite des O
+Ob# := f*1.1hoe#+2Ovn#; % Dickte des O
define_pixels(Ovn);
beginchar("O",Ob#,hoe#,0); "Buchstabe O";
@@ -171,26 +176,28 @@ x2 = x4 = w/2;
y1 = y3 = h/2;
top y2 = h+Ue;
bot y4 = -Ue;
-OBreite := w-2Ovn; % wird für das Q benötigt
-pair OUnten; % wird für das G benötigt
+OBreite := w-2Ovn; % wird für das Q benötigt
+pair OUnten; % wird für das G benötigt
OUnten := z4;
def OSpannung = ..tension 0.93.. enddef;
-path OPfad; % wird für das C und das G benötigt
+path OPfad; % wird für das C und das G benötigt
OPfad := z1 OSpannung z2 OSpannung z3 OSpannung z4 OSpannung cycle;
draw OPfad;
-picture OBild; % wird für das Q benötigt
-OBild := currentpicture;
labels(1,2,3,4);
+picture OBild; % wird auch für das Q benötigt
+OBild := currentpicture;
endchar;
-Cvor# := Ovn#; % Vorbreite des C
-Cnach# := 0.55[klAb#,grAb#]; % Nachbreite des C
-Cb# := f*0.95hoe#+Cvor#+Cnach#; % Dickte des C
+Cvor# := Ovn#; % Vorbreite des C
+Cnach# := 0.55[klAb#,grAb#]; % Nachbreite des C
+Cb# := f*0.95hoe#+Cvor#+Cnach#; % Dickte des C
beginchar("C",Cb#,hoe#,0); "Buchstabe C";
pickup pencircle scaled S;
cutdraw subpath(0.5,3.5) of OPfad;
+picture CBild;
+CBild := currentpicture;
endchar;
@@ -213,6 +220,8 @@ y5 = y2;
pickup pencircle scaled S;
draw z1---z4..z3..z5---z2;
labels(range 1 thru 5);
+picture DBild;
+DBild := currentpicture;
endchar;
@@ -223,7 +232,7 @@ define_pixels(Evor,Enach);
beginchar("E",Eb#,hoe#,0); "Buchstabe E";
interim autorounding := 0;
-EBreite := w-Evor-Enach; % Breite der Glyphe
+EBreite := w-Evor-Enach; % Breite der Glyphe
pickup pencircle scaled S;
lft x5 = Evor;
lft x3 = Evor+1/8EBreite;
@@ -241,6 +250,8 @@ Eunten = z4{left}..z5{down}..z6{right}..{up}z7;
cutdraw subpath(0.4,3.0) of Eoben;
cutdraw subpath(0,2.7) of Eunten;
labels(range 1 thru 7);
+picture EBild;
+EBild := currentpicture;
endchar;
@@ -261,6 +272,8 @@ y5 = y4;
draw z1--z2--z3;
draw z4--z5;
labels(range 1 thru 5);
+picture FBild;
+FBild := currentpicture;
endchar;
@@ -270,7 +283,7 @@ Gb# := f*1.05*hoe#+Gvor#+Gnach#;
define_pixels(Gvor, Gnach);
beginchar("G",Gb#,hoe#,0); "Buchstabe G";
-Galpha:=65; % Anfangswinkel in Punkt 1
+Galpha:=65; % Anfangswinkel in Punkt 1
pickup pencircle scaled S;
z4 = OUnten;
rt x3 = w-Gnach;
@@ -281,6 +294,8 @@ x1 = 0.5[Gvor+S/2,x2];
y1 = 0.25[y2,y4];
cutdraw subpath(0.5,3) of OPfad & z4{right}..z3{up}..z2{left}..{-dir(Galpha)}z1;
labels(range 1 thru 4);
+picture GBild;
+GBild := currentpicture;
endchar;
@@ -300,6 +315,8 @@ draw z1--z2;
draw z3--z4;
draw z5--z6;
labels(range 1 thru 6);
+picture HBild;
+HBild := currentpicture;
endchar;
@@ -311,6 +328,8 @@ bot z1 = (0.5w,0);
top z2 = (0.5w,h);
draw z1--z2;
labels(1,2);
+picture IBild;
+IBild := currentpicture;
endchar;
@@ -330,6 +349,8 @@ rt x3 = rt x4 = w-Jnach;
y4 = h;
cutdraw z1{down}..z2{right}..z3---z4;
labels(1,2,3,4);
+picture JBild;
+JBild := currentpicture;
endchar;
@@ -355,6 +376,8 @@ z8-z4 = whatever*(z9-z5);
draw z1--z2;
fill z4--z8--z9--z5--z7--z6--z3--cycle;
labels(range 1 thru 9);
+picture KBild;
+KBild := currentpicture;
endchar;
@@ -366,6 +389,8 @@ rt bot z3 = (w-Fnach,0);
draw z1--z2;
draw z1--z3;
labels(1,2,3);
+picture LBild;
+LBild := currentpicture;
endchar;
@@ -391,6 +416,8 @@ draw z1--z2;
draw z3--z4;
fill z7--z5--z9--z10--z6--z8--cycle;
labels(range 1 thru 10);
+picture MBild;
+MBild := currentpicture;
endchar;
@@ -414,6 +441,8 @@ draw z1--z2;
draw z3--z4;
fill z5--z6--z7--z8..cycle;
labels(range 1 thru 8);
+picture NBild;
+NBild := currentpicture;
endchar;
@@ -432,6 +461,8 @@ x4-x2 = x3-x1;
bestimme_Parallelenpunkt_B(2,1,3)(S);
fill z1--z2--z4--z3--cycle;
labels(1,2,3,4);
+picture QBild;
+QBild := currentpicture;
endchar;
@@ -461,6 +492,8 @@ draw z2---z6..z4{down}..{left}z5;
interim autorounding := 0;
cutdraw z3{right}..z7---z8;
labels(range 1 thru 8);
+picture RBild;
+RBild := currentpicture;
endchar;
@@ -486,6 +519,8 @@ path SPfad;
SPfad = z1{up}..z2{left}..z3{down}..z4..z5{down}..z6{left}..{up}z7;
cutdraw subpath (0.3,5.75) of SPfad;
labels(range 1 thru 7);
+picture SBild;
+SBild := currentpicture;
endchar;
@@ -498,7 +533,7 @@ pickup pensquare scaled S;
bot z1 = (w/2,0);
top z2 = (w/2,h);
draw z1--z2;
-Talpha = 30; % Neigungswinkel der Querstrichenden
+Talpha = 30; % Neigungswinkel der Querstrichenden
penpos3(whatever,-90-Talpha);
penpos4(whatever,-90+Talpha);
x3r = w-x4r = Tvn;
@@ -506,11 +541,13 @@ y3l = y4l = h;
y3l-y3r = y4l-y4r = S;
penstroke z3e--z4e;
penlabels(1,2,3,4);
+picture TBild;
+TBild := currentpicture;
endchar;
beginchar("U",Ab#,hoe#,0); "Buchstabe U";
-currentpicture := ABild reflectedabout ((0,h/2),(w,h/2));
+currentpicture := ABild_teilweise reflectedabout ((0,h/2),(w,h/2));
picture VBild;
VBild := currentpicture;
endchar;
@@ -538,15 +575,15 @@ x10 = w-x13;
x11 = w-x12;
y10 = y11 = y12 = y13 = 0;
vardef linker_Winkel_groesser(expr xWert) =
- x8' := xWert;
- y8' := y8;
- x5' := whatever;
- y5' := y5;
- x10' := whatever;
- y10' := y10;
- bestimme_Parallelenpunkt_A(10',1,8');
- bestimme_Parallelenpunkt_A(5',8',7);
- 180-angle(z1-z10') > angle(z5'-z8')
+ x8' := xWert;
+ y8' := y8;
+ x5' := whatever;
+ y5' := y5;
+ x10' := whatever;
+ y10' := y10;
+ bestimme_Parallelenpunkt_A(10',1,8');
+ bestimme_Parallelenpunkt_A(5',8',7);
+ 180-angle(z1-z10') > angle(z5'-z8')
enddef;
x8 = save_solve linker_Winkel_groesser(x1+S,x7-S);
bestimme_Parallelenpunkt_A(10,1,8);
@@ -555,6 +592,8 @@ z2-z8 = whatever*(z1-z10);
z11-z7 = whatever*(z5-z8);
fill z1--z2--z8--z5--z6--z9--z3--z4--z13--z12--z7--z11--z10--cycle;
labels(range 1 thru 13);
+picture WBild;
+WBild := currentpicture;
endchar;
@@ -571,9 +610,11 @@ x2 = x6 = w-x3 = w-x7;
bestimme_Parallelenpunkt_A(7,1,8);
fill z1--z2--z8--z7--cycle;
fill z3--z4--z6--z5--cycle;
-z9 = whatever[z4,z6] = whatever[z1,z7]; % Hilfspunkt für das Y
+z9 = whatever[z4,z6] = whatever[z1,z7]; % Hilfspunkt für das Y
Xmh = y9;
labels(range 1 thru 9);
+picture XBild;
+XBild := currentpicture;
endchar;
@@ -595,6 +636,8 @@ top y8 = y5;
fill z1--z6--z4--z3--z5--z2--cycle;
draw z7--z8;
labels(range 1 thru 8);
+picture YBild;
+YBild := currentpicture;
endchar;
@@ -618,10 +661,12 @@ x8-x7 = x6-x5;
bestimme_Parallelenpunkt_A(7,5,8);
fill z5--z6--z8--z7--cycle;
labels(range 1 thru 8);
+picture ZBild;
+ZBild := currentpicture;
endchar;
-Tzb# := f*1.0hoe#; % Dickte des Trennzeichens (Mittenpunkt)
+Tzb# := f*1.0hoe#; % Dickte des Trennzeichens (Mittenpunkt)
beginchar("/",Tzb#,hoe#,0); "Worttrennung";
pickup pencircle scaled 1.5S;
@@ -639,9 +684,9 @@ drawdot z2;
endchar;
-Krvn# := 1.5grAb#; % Vor- und Nachbreite des Kreuzzeichens (+)
-Krhoe# := 0.65hoe#; % Höhe und Breite des Kreuzzeichens
-Krb# := Krhoe#+2Krvn#; % Dickte des Kreuzzeichens
+Krvn# := 1.5grAb#; % Vor- und Nachbreite des Kreuzzeichens (+)
+Krhoe# := 0.65hoe#; % Höhe und Breite des Kreuzzeichens
+Krb# := Krhoe#+2Krvn#; % Dickte des Kreuzzeichens
define_pixels(Krhoe);
beginchar("+",Krb#,hoe#,0); "Kreuz";
@@ -657,8 +702,8 @@ labels(1,2,3,4);
endchar;
-Bsvn# := 0.4[klAb#,grAb#]; % Vor- und Nachbreite des Bindestrichs
-Bsb# := f*0.5hoe#+2Bsvn#; % Dickte des Bindestrichs
+Bsvn# := 0.4[klAb#,grAb#]; % Vor- und Nachbreite des Bindestrichs
+Bsb# := f*0.5hoe#+2Bsvn#; % Dickte des Bindestrichs
define_pixels(Bsvn);
beginchar("-",Bsb#,hoe#,0); "Bindestrich";
@@ -678,12 +723,11 @@ endchar;
% Griechisches Omega
-Omegavn# := Ovn#; % Vor- und Nachbreite des Omega
-Omegab# := f*1.1hoe#+2Omegavn#; % Dickte des Omega
+Omegavn# := Ovn#; % Vor- und Nachbreite des Omega
+Omegab# := f*1.1hoe#+2Omegavn#; % Dickte des Omega
define_pixels(Omegavn);
-beginchar(10,Omegab#,hoe#,0); "Griechischer Buchstabe Omega";
-%interim autorounding := 0;
+beginchar(141,Omegab#,hoe#,0); "Griechischer Buchstabe Omega";
pickup pensquare scaled S;
lft x1 = w-rt x9 = Omegavn+S/3;
bot y1 = 0;
@@ -710,6 +754,110 @@ cutoff(z7h,180);
labels(range 1 thru 9,3h,7h);
endchar;
+beginchar("a",Ab#,hoe#,0); "Buchstabe a";
+currentpicture := ABild;
+endchar;
+
+beginchar("b",Bb#,hoe#,0); "Buchstabe b";
+currentpicture := BBild;
+endchar;
+
+beginchar("c",Cb#,hoe#,0); "Buchstabe c";
+currentpicture := CBild;
+endchar;
+
+beginchar("d",Db#,hoe#,0); "Buchstabe d";
+currentpicture := DBild;
+endchar;
+
+beginchar("e",Eb#,hoe#,0); "Buchstabe e";
+currentpicture := EBild;
+endchar;
+
+beginchar("f",Fb#,hoe#,0); "Buchstabe f";
+currentpicture := FBild;
+endchar;
+
+beginchar("g",Gb#,hoe#,0); "Buchstabe g";
+currentpicture := GBild;
+endchar;
+
+beginchar("h",Hb#,hoe#,0); "Buchstabe h";
+currentpicture := HBild;
+endchar;
+
+beginchar("i",Ib#,hoe#,0); "Buchstabe i";
+currentpicture := IBild;
+endchar;
+
+beginchar("j",Jb#,hoe#,0); "Buchstabe j";
+currentpicture := JBild;
+endchar;
+
+beginchar("k",Kb#,hoe#,0); "Buchstabe k";
+currentpicture := KBild;
+endchar;
+
+beginchar("l",Fb#,hoe#,0); "Buchstabe l";
+currentpicture := LBild;
+endchar;
+
+beginchar("m",Mb#,hoe#,0); "Buchstabe m";
+currentpicture := MBild;
+endchar;
+
+beginchar("n",Nb#,hoe#,0); "Buchstabe n";
+currentpicture := NBild;
+endchar;
+
+beginchar("o",Ob#,hoe#,0); "Buchstabe o";
+currentpicture := OBild;
+endchar;
+
+beginchar("p",Pb#,hoe#,0); "Buchstabe p";
+currentpicture := PBild;
+endchar;
+
+beginchar("q",Qb#,hoe#,0); "Buchstabe q";
+currentpicture := QBild;
+endchar;
+
+beginchar("r",Rb#,hoe#,0); "Buchstabe r";
+currentpicture := RBild;
+endchar;
+
+beginchar("s",Sb#,hoe#,0); "Buchstabe s";
+currentpicture := SBild;
+endchar;
+
+beginchar("t",Tb#,hoe#,0); "Buchstabe t";
+currentpicture := TBild;
+endchar;
+
+beginchar("u",Ab#,hoe#,0); "Buchstabe u";
+currentpicture := VBild;
+endchar;
+
+beginchar("v",Ab#,hoe#,0); "Buchstabe v";
+currentpicture := VBild;
+endchar;
+
+beginchar("w",Wb#,hoe#,0); "Buchstabe w";
+currentpicture := WBild;
+endchar;
+
+beginchar("x",Xb#,hoe#,0); "Buchstabe x";
+currentpicture := XBild;
+endchar;
+
+beginchar("y",Yb#,hoe#,0); "Buchstabe y";
+currentpicture := YBild;
+endchar;
+
+beginchar("z",Zb#,hoe#,0); "Buchstabe z";
+currentpicture := ZBild;
+endchar;
+
input beuronkern;
end
diff --git a/Master/texmf-dist/fonts/source/public/beuron/beuronkern.mf b/Master/texmf-dist/fonts/source/public/beuron/beuronkern.mf
index 93e582d6228..56fefa864a6 100644
--- a/Master/texmf-dist/fonts/source/public/beuron/beuronkern.mf
+++ b/Master/texmf-dist/fonts/source/public/beuron/beuronkern.mf
@@ -1,80 +1,185 @@
% beuronkern.mf
% Unterschneidung der Schrift der Beuroner Kunst
% Kerning of the Beuronese art font
-% 20. März 2016
-
-kAA#:=1/2klAb#; % Zusatzabstand zwischen AA, VU, VV, VW, VY etc.
-kAT#:=-1/2klAb#; % Unterschneidung von AT und TA
-kAV#:=-5/8klAb#; % AV, AW, AY, VA etc.
-kBV#:=-3/8klAb#; % BU, BV, BW, BY
-kCO#:=1/4klAb#; % CC, CG, CO, CQ
-kDA#:=-1/8klAb#; % DA, DU, DV, DW
-kDO#:=1/8klAb#; % DC, DG, DO, DQ
-kEC#:=-1/8klAb#; % EC, EG, EO, EQ
-kEV#:=-1/8klAb#; % EU, EV, EW
-kFA#:=-1/2klAb#; % FA, LU, LV, LW
-kFC#:=-3/8klAb#; % FC, FG, FO, FQ, LC, LG, LO, LQ
-kFV#:=1/2klAb#; % FU, FV, FW, FY, LA
-kKC#:=-1/8klAb#; % KC, KG, KO, KQ, XC, XG, XO, XQ, OX
-kOC#:=1/4klAb#; % OC, OG, OO, OQ
-kOT#:=-1/8klAb#; % DT, OT, QT, TC, TG, TO, TQ
-kOY#:=-1/4klAb#; % OY, QY, YC, YG, YO, YQ
-kQV#:=-0/8klAb#; % QU, QV, QW
-kRC#:=-1/4klAb#; % RC, RG, RO, RQ
-kRV#:=-1/4klAb#; % RU, RV, RW, RY
-kSC#:=1/8klAb#; % SC, SG, SO, SQ
-kSV#:=-1/8klAb#; % SU, SV, SW, SY
-kTV#:=1/2klAb#; % TU, TV, TW, VT etc.
-kTBs#:=-3/4klAb#; % T-, -T
-kVE#:=-1/4klAb#; % UE, VE, WE, YE
-kVJ#:=-3/8klAb#; % UJ, VJ, WJ, YJ
-kZV#:=1/4klAb#; % ZU, ZV, ZW
-kBsC#:=1/4klAb#; % -C, -G, -O, -Q
-
-ligtable "A": "A" kern kAA#, "E" kern 1/8klAb#, "S" kern 1/4klAb#,
- "T" kern kAT#, "U" kern kAV#, "V" kern kAV#, "W" kern kAV#, "Y" kern kAV#;
-ligtable "B": "A" kern -1/8klAb#, "E" kern -1/8klAb#, "T" kern -1/8klAb#,
- "U" kern kBV#, "V" kern kBV#, "W" kern kBV#, "Y" kern kBV#;
-ligtable "C": "C" kern kCO#, "E" kern 1/4klAb#, "G" kern kCO#, "O" kern kCO#,
- "Q" kern kCO#;
-ligtable "D": "A" kern kDA#, "C" kern kDO#, "E" kern -1/8klAb#, "G" kern kDO#,
- "O" kern kDO#, "Q" kern kDO#, "T" kern kOT#, "U" kern kDA#, "V" kern kDA#,
- "W" kern kDA#, "Y" kern kDA#;
-ligtable "E": "C" kern kEC#, "G" kern kEC#, "O" kern kEC#, "Q" kern kEC#,
- "S" kern -1/4klAb#, "T" kern -1/2klAb#, "U" kern kEV#, "V" kern kEV#,
- "W" kern kEV#, "X" kern -1/4klAb#, "Y" kern kEV#;
-ligtable "F": "A" kern kFA#, "C" kern kFC#, "E" kern -1/4klAb#, "G" kern kFC#,
- "O" kern kFC#, "Q" kern kFC#, "S" kern -1/4klAb#, "T" kern 1/2klAb#,
- "U" kern kFV#, "V" kern kFV#, "W" kern kFV#, "Y" kern kFV#;
-ligtable "G": "G" kern 1/8klAb#, "Y" kern -1/8klAb#;
-ligtable "J": "A" kern -1/8klAb#;
-ligtable "K": "X": "C" kern kKC#, "E" kern -1/4klAb#, "G" kern kKC#,
- "O" kern kKC#, "Q" kern kKC#, "-" kern -1/2klAb#;
-ligtable "L": "A" kern kFV#, "C" kern kFC#, "G" kern kFC#, "O" kern kFC#,
- "Q" kern kFC#, "T" kern -3/4klAb#, "U" kern kFA#, "V" kern kFA#,
- "W" kern kFA#, "Y" kern -5/8klAb#, "-" kern -5/8klAb#;
-ligtable "O": "C" kern kOC#, "E" kern 1/8klAb#, "G" kern kOC#, "O" kern kOC#,
- "Q" kern kOC#, "T" kern kOT#, "X" kern kKC#, "Y" kern kOY#;
-ligtable "P": "A" kern -1/2klAb#, "E" kern -1/4klAb#, "S" kern -1/8klAb#;
-ligtable "Q": "T" kern kOT#, "U" kern kQV#, "V" kern kQV#, "W" kern kQV#,
- "Y" kern kOY#;
-ligtable "R": "A" kern 1/2klAb#, "C" kern kRC#, "G" kern kRC#, "O" kern kRC#,
- "Q" kern kRC#, "S" kern 1/4klAb#, "T" kern -1/4klAb#, "U" kern kRV#,
- "V" kern kRV#, "W" kern kRV#, "Y" kern kRV#, "Z" kern 1/8klAb#,
- "-" kern -1/4klAb#;
-ligtable "S": "C" kern kSC#, "E" kern 1/8klAb#, "G" kern kSC#, "O" kern kSC#,
- "Q" kern kSC#, "T" kern -1/4klAb#, "U" kern kSV#, "V" kern kSV#,
- "W" kern kSV#, "Y" kern kSV#;
-ligtable "T": "A" kern kAT#, "C" kern kOT#, "E" kern -1/4klAb#, "G" kern kOT#,
- "O" kern kOT#, "Q" kern kOT#, "S" kern -1/2klAb#, "T" kern 1/2klAb#,
- "U" kern kTV#, "V" kern kTV#, "W" kern kTV#, "Z" kern 1/4klAb#,
- "-" kern kTBs#;
-ligtable "U": "V": "W": "A" kern kAV#, "E" kern kVE#, "J" kern kVJ#,
- "S" kern -1/4klAb#, "T" kern kTV#, "U" kern kAA#, "V" kern kAA#,
- "W" kern kAA#, "Y" kern kAA#;
-ligtable "Y": "A" kern kAV#, "C" kern kOY#, "E" kern kVE#, "G" kern kOY#,
- "J" kern kVJ#, "O" kern kOY#, "Q" kern kOY#, "S" kern -3/8klAb#,
- "U" kern kAA#, "V" kern kAA#, "W" kern kAA#;
-ligtable "Z": "U" kern kZV#, "V" kern kZV#, "W" kern kZV#;
-ligtable "-": "C" kern kBsC#, "G" kern kBsC#, "O" kern kBsC#, "Q" kern kBsC#,
- "T" kern kTBs#;
+% 22. Dezember 2017
+
+kAA#:=1/2klAb#; % AA, [UVW]U, [UVW]V, [UVW]W, [UVW]Y, YU, YV, YW
+kAE#:=1/8klAb#; % AE
+kAS#:=1/4klAb#; % AS
+kAT#:=-1/2klAb#; % AT, TA
+kAV#:=-5/8klAb#; % AU, AV, AW, AY, [UVW]A, YA
+
+kBA#:=-1/8klAb#; % BA
+kBE#:=-1/8klAb#; % BE
+kBT#:=-1/8klAb#; % BT
+kBV#:=-3/8klAb#; % BU, BV, BW, BY
+
+kCC#:=1/4klAb#; % CC, CG, CO, CQ
+kCE#:=1/4klAb#; % CE
+
+kDA#:=-1/8klAb#; % DA, DU, DV, DW, DY
+kDC#:=1/8klAb#; % DC, DG, DO, DQ
+kDE#:=-1/8klAb#; % DE
+
+kEC#:=-1/8klAb#; % EC, EG, EO, EQ
+kES#:=-1/4klAb#; % ES
+kET#:=-1/2klAb#; % ET
+kEV#:=-1/8klAb#; % EU, EV, EW, EY
+kEX#:=-1/4klAb#; % EX
+
+kFA#:=-1/2klAb#; % FA, LU, LV, LW
+kFC#:=-3/8klAb#; % FC, FG, FO, FQ, LC, LG, LO, LQ
+kFE#:=-1/4klAb#; % FE
+kFS#:=-1/4klAb#; % FS
+kFT#:=1/2klAb#; % FT
+kFV#:=1/2klAb#; % FU, FV, FW, FY, LA
+
+kGG#:=1/8klAb#; % GG
+kGY#:=-1/8klAb#; % GY
+
+kJA#:=-1/8klAb#; % JA
+
+kKC#:=-1/8klAb#; % [KX]C, [KX]G, [KX]O, [KX]Q, OX
+kKE#:=-1/4klAb#; % [KX]E
+kKBs#:=-1/2klAb#; % [KX]-, -X
+
+kLT#:=-3/4klAb#; % LT
+kLY#:=-5/8klAb#; % LY
+kLBs#:=-5/8klAb#; % L-
+
+kOC#:=1/4klAb#; % OC, OG, OO, OQ
+kOE#:=1/8klAb#; % OE
+kOT#:=-1/8klAb#; % DT, OT, QT, TC, TG, TO, TQ
+kOY#:=-1/4klAb#; % OY, QY, YC, YG, YO, YQ
+
+kPA#:=-1/2klAb#; % PA
+kPE#:=-1/4klAb#; % PE
+kPS#:=-1/8klAb#; % PS
+
+kOBs#:=1/4klAb#; % O-, -C, -G, -O, -Q
+
+kQV#:=-1/8klAb#; % QU, QV, QW
+
+kRA#:=1/2klAb#; % RA
+kRC#:=-1/4klAb#; % RC, RG, RO, RQ
+kRS#:=1/4klAb#; % RS
+kRT#:=-1/4klAb#; % RT
+kRV#:=-1/4klAb#; % RU, RV, RW, RY
+kRZ#:=1/8klAb#; % RZ
+kRBs#:=-1/4klAb#; % R-
+
+kSC#:=1/8klAb#; % SC, SG, SO, SQ
+kSE#:=1/8klAb#; % SE
+kST#:=-1/4klAb#; % ST
+kSV#:=-1/8klAb#; % SU, SV, SW, SY
+
+kTE#:=-1/4klAb#; % TE
+kTS#:=-1/2klAb#; % TS
+kTT#:=1/2klAb#; % TT
+kTV#:=1/2klAb#; % TU, TV, TW, [UVW]T
+kTZ#:=1/4klAb#; % TZ, ZT
+kTBs#:=-3/4klAb#; % T-, -T
+
+kVE#:=-1/4klAb#; % [UVW]E, YE
+kVJ#:=-3/8klAb#; % [UVW]J, YJ
+kVS#:=-1/4klAb#; % [UVW]S
+kVZ#:=1/4klAb#; % [UVW]Z, ZU, ZV, ZW
+
+kYS#:=-3/8klAb#; % YS
+
+
+ligtable "A": "a": "A" kern kAA#, "a" kern kAA#, "E" kern kAE#, "e" kern kAE#,
+ "S" kern kAS#, "s" kern kAS#, "T" kern kAT#, "t" kern kAT#, "U" kern kAV#,
+ "u" kern kAV#, "V" kern kAV#, "v" kern kAV#, "W" kern kAV#, "w" kern kAV#,
+ "Y" kern kAV#, "y" kern kAV#;
+
+ligtable "B": "b": "A" kern kBA#, "a" kern kBA#, "E" kern kBE#, "e" kern kBE#,
+ "T" kern kBT#, "t" kern kBT#, "U" kern kBV#, "u" kern kBV#, "V" kern kBV#,
+ "v" kern kBV#, "W" kern kBV#, "w" kern kBV#, "Y" kern kBV#, "y" kern kBV#;
+
+ligtable "C": "c": "C" kern kCC#, "c" kern kCC#, "E" kern kCE#, "e" kern kCE#,
+ "G" kern kCC#, "g" kern kCC#, "O" kern kCC#, "o" kern kCC#, "Q" kern kCC#,
+ "q" kern kCC#;
+
+ligtable "D": "d": "A" kern kDA#, "a" kern kDA#, "C" kern kDC#, "c" kern kDC#,
+ "E" kern kDE#, "e" kern kDE#, "G" kern kDC#, "g" kern kDC#, "O" kern kDC#,
+ "o" kern kDC#, "Q" kern kDC#, "q" kern kDC#, "T" kern kOT#, "t" kern kOT#,
+ "U" kern kDA#, "u" kern kDA#, "V" kern kDA#, "v" kern kDA#, "W" kern kDA#,
+ "W" kern kDA#, "Y" kern kDA#, "y" kern kDA#;
+
+ligtable "E": "e": "C" kern kEC#, "c" kern kEC#, "G" kern kEC#, "g" kern kEC#,
+ "O" kern kEC#, "o" kern kEC#, "Q" kern kEC#, "q" kern kEC#, "S" kern kES#,
+ "s" kern kES#, "T" kern kET#, "t" kern kET#, "U" kern kEV#, "u" kern kEV#,
+ "V" kern kEV#, "v" kern kEV#, "W" kern kEV#, "w" kern kEV#, "X" kern kEX#,
+ "x" kern kEX#, "Y" kern kEV#, "y" kern kEV#;
+
+ligtable "F": "f": "A" kern kFA#, "a" kern kFA#, "C" kern kFC#, "c" kern kFC#,
+ "E" kern kFE#, "e" kern kFE#, "G" kern kFC#, "g" kern kFC#, "O" kern kFC#,
+ "o" kern kFC#, "Q" kern kFC#, "q" kern kFC#, "S" kern kFS#, "s" kern kFS#,
+ "T" kern kFT#, "t" kern kFT#, "U" kern kFV#, "u" kern kFV#, "V" kern kFV#,
+ "v" kern kFV#, "W" kern kFV#, "w" kern kFV#, "Y" kern kFV#, "y" kern kFV#;
+
+ligtable "G": "g": "G" kern kGG#, "g" kern kGG#, "Y" kern kGY#, "y" kern kGY#;
+
+ligtable "J": "j": "A" kern kJA#, "a" kern kJA#;
+
+ligtable "K": "k": "X": "x": "C" kern kKC#, "c" kern kKC#, "E" kern kKE#,
+ "e" kern kKE#, "G" kern kKC#, "g" kern kKC#, "O" kern kKC#, "o" kern kKC#,
+ "Q" kern kKC#, "q" kern kKC#, "-" kern kKBs#;
+
+ligtable "L": "l": "A" kern kFV#, "a" kern kFV#, "C" kern kFC#, "c" kern kFC#,
+ "G" kern kFC#, "g" kern kFC#, "O" kern kFC#, "o" kern kFC#, "Q" kern kFC#,
+ "q" kern kFC#, "T" kern kLT#, "t" kern kLT#, "U" kern kFA#, "u" kern kFA#,
+ "V" kern kFA#, "v" kern kFA#, "W" kern kFA#, "w" kern kFA#, "Y" kern kLY#,
+ "y" kern kLY#, "-" kern kLBs#;
+
+ligtable "O": "o": "C" kern kOC#, "c" kern kOC#, "E" kern kOE#, "e" kern kOE#,
+ "G" kern kOC#, "g" kern kOC#, "O" kern kOC#, "o" kern kOC#, "Q" kern kOC#,
+ "q" kern kOC#, "T" kern kOT#, "t" kern kOT#, "X" kern kKC#, "x" kern kKC#,
+ "Y" kern kOY#, "y" kern kOY#, "-" kern kOBs#;
+
+ligtable "P": "p": "A" kern kPA#, "a" kern kPA#, "E" kern kPE#, "e" kern kPE#,
+ "S" kern kPS#, "s" kern kPS#;
+
+ligtable "Q": "q": "T" kern kOT#, "t" kern kOT#, "U" kern kQV#, "u" kern kQV#,
+ "V" kern kQV#, "v" kern kQV#, "W" kern kQV#, "w" kern kQV#, "Y" kern kOY#,
+ "y" kern kOY#;
+
+ligtable "R": "r": "A" kern kRA#, "a" kern kRA#, "C" kern kRC#, "c" kern kRC#,
+ "G" kern kRC#, "g" kern kRC#, "O" kern kRC#, "o" kern kRC#, "Q" kern kRC#,
+ "q" kern kRC#, "S" kern kRS#, "s" kern kRS#, "T" kern kRT#, "t" kern kRT#,
+ "U" kern kRV#, "u" kern kRV#, "V" kern kRV#, "v" kern kRV#, "W" kern kRV#,
+ "w" kern kRV#, "Y" kern kRV#, "y" kern kRV#, "Z" kern kRZ#, "z" kern kRZ#,
+ "-" kern kRBs#;
+
+ligtable "S": "s": "C" kern kSC#, "c" kern kSC#, "E" kern kSE#, "e" kern kSE#,
+ "G" kern kSC#, "g" kern kSC#, "O" kern kSC#, "o" kern kSC#, "Q" kern kSC#,
+ "q" kern kSC#, "T" kern kST#, "t" kern kST#, "U" kern kSV#, "u" kern kSV#,
+ "V" kern kSV#, "v" kern kSV#, "W" kern kSV#, "w" kern kSV#, "Y" kern kSV#,
+ "y" kern kSV#;
+
+ligtable "T": "t": "A" kern kAT#, "a" kern kAT#, "C" kern kOT#, "c" kern kOT#,
+ "E" kern kTE#, "e" kern kTE#, "G" kern kOT#, "g" kern kOT#, "O" kern kOT#,
+ "o" kern kOT#, "Q" kern kOT#, "q" kern kOT#, "S" kern kTS#, "s" kern kTS#,
+ "T" kern kTT#, "t" kern kTT#, "U" kern kTV#, "u" kern kTV#, "V" kern kTV#,
+ "v" kern kTV#, "W" kern kTV#, "w" kern kTV#, "Z" kern kTZ#, "z" kern kTZ#,
+ "-" kern kTBs#;
+
+ligtable "U": "u": "V": "v": "W": "w": "A" kern kAV#, "a" kern kAV#,
+ "E" kern kVE#, "e" kern kVE#, "J" kern kVJ#, "j" kern kVJ#, "S" kern kVS#,
+ "s" kern kVS#, "T" kern kTV#, "t" kern kTV#, "U" kern kAA#, "u" kern kAA#,
+ "V" kern kAA#, "v" kern kAA#, "W" kern kAA#, "w" kern kAA#, "Y" kern kAA#,
+ "y" kern kAA#, "Z" kern kVZ#, "z" kern kVZ#;
+
+ligtable "Y": "y": "A" kern kAV#, "a" kern kAV#, "C" kern kOY#, "c" kern kOY#,
+ "E" kern kVE#, "e" kern kVE#, "G" kern kOY#, "g" kern kOY#, "J" kern kVJ#,
+ "j" kern kVJ#, "O" kern kOY#, "o" kern kOY#, "Q" kern kOY#, "q" kern kOY#,
+ "S" kern kYS#, "s" kern kYS#, "U" kern kAA#, "u" kern kAA#, "V" kern kAA#,
+ "v" kern kAA#, "W" kern kAA#, "w" kern kAA#;
+
+ligtable "Z": "z": "T" kern kTZ#, "t" kern kTZ#, "U" kern kVZ#, "u" kern kVZ#,
+ "V" kern kVZ#, "v" kern kVZ#, "W" kern kVZ#, "w" kern kVZ#;
+
+ligtable "-": "C" kern kOBs#, "c" kern kOBs#, "G" kern kOBs#, "g" kern kOBs#,
+ "O" kern kOBs#, "o" kern kOBs#, "Q" kern kOBs#, "q" kern kOBs#,
+ "T" kern kTBs#, "t" kern kTBs#, "X" kern kKBs#, "x" kern kKBs#;