summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/beuron/beuronbuchst.mf320
1 files changed, 234 insertions, 86 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