summaryrefslogtreecommitdiff
path: root/fonts/schulschriften/source/wesu/wesu14_def.mf
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/schulschriften/source/wesu/wesu14_def.mf')
-rw-r--r--fonts/schulschriften/source/wesu/wesu14_def.mf426
1 files changed, 426 insertions, 0 deletions
diff --git a/fonts/schulschriften/source/wesu/wesu14_def.mf b/fonts/schulschriften/source/wesu/wesu14_def.mf
new file mode 100644
index 0000000000..fd911011bc
--- /dev/null
+++ b/fonts/schulschriften/source/wesu/wesu14_def.mf
@@ -0,0 +1,426 @@
+% Suetterlinschrift wesu
+% Parameter- und Makrodefinitionen
+% Walter Entenmann
+% 09.06.2011
+%
+% Parameterdefinitionen:
+% fuer math. Sonderzeichen wie < > ...
+hmath:=ht/2;
+hdash:=ht/2;
+% Superellipse fuer @-Zeichen
+atb:=ht/2;
+ata:=7ut;
+sigma:=0.73345;
+r := 3.5ut;
+% Absenkung des Verbindungsniveaus
+dy := 2ut;
+% Endstrich, Breite und Hoehe bei fahne
+endx:=9ut;
+endy:=5ut;
+% Stretch (Hoehe zu Breite beim o)
+k := 4/3;
+% ht/8 (haeufig benoetigtes Mass)
+ds := ht/8;
+% Fundamentaler Abstand z.B. zwischen a-Bogen und -Stamm
+gap := 5ut;
+% Schlingengroesse
+s := 4ut; % Kleinbuchstaben
+so := 10ut; % fuer "o"
+S := 5ut; % Grossbuchstaben
+% Ober-, Unterschleifenbreite und Faktor
+sb := ht/2;
+fs := 0.4;
+% Breite und Hoehenkoordinate des v-Bauches
+vb := 15ut;
+vh := 12ut;
+
+% Parameter fuer Grossbuchstaben:
+% Oberschleifenbreite (Oschl)
+Sb:=15ut;
+% Breite und Hoehenkoordinate des V-Bauchs
+Vb:=21ut;
+Vh:=27.5ut;
+% Breite und Hoehenkoordinate des gr. S
+BS:=17.5ut;
+Hs:=15ut;
+Bs:=15ut; % reduzierte Breite fuer M, N, W, ...
+% Weitere Parameter fuer die S-Schlaufe
+Sm := 2; % Steigung S-Ansatz
+Sf := 1/3; % Faktor wie fs
+Stens := 1.2; % Spannung im S-Bogen rechts
+Sab := 5ut; % Abhang beim S-Ansatz
+% Breite der Schlingen bei der Doppelschleife Dschl fuer X
+BX:=15ut;
+
+% Makrodefinitionen:
+% Fuer Sonderzeichen
+def komma(expr deltax, deltay) =
+ draw ((0,0){1,-2}..tension1.2..{-1,-1}(-2ut,-10ut)) shifted (deltax,deltay);
+ enddef;
+
+% Fuer Kleinbuchstaben (und teilweise auch fuer Grossbuchstaben)
+def gerade (expr hy, br, mr, sx) =
+ draw ((0,hy)--(br,hy+mr*br)) shifted (sx,0);
+ xpos := sx+br;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def kurzstrich(expr sx) =
+ draw ((0,ht-dy)--(dy,ht)) shifted (sx,0);
+ xpos:=sx+dy;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def tangente (expr dx) =
+ if not wortende:
+ draw z0..tension2..{1,1}(x0+ht-dy-y0+dx,ht-dy);
+ xpos:=x0+ht-dy-y0+dx;
+ if wmax<xpos: wmax:=xpos; fi
+else:
+ if wmax<x0: wmax:=x0; fi
+ fi
+ zeigen;
+ enddef;
+
+def lschleife(expr sl, hy, fy, sx) =
+ draw ((0,0){up}..(-(1-fs)*sl,sl){left}..(-sl,(1-fs)*sl){down}..{right}(0,0)) yscaled fy shifted (sx,hy);
+ if wmax<sx: wmax:=sx; fi
+ enddef;
+
+
+def stamm(expr ha, hb, sx) =
+ draw ((0,ha)--(0,hb)) shifted(sx,0);
+ if wmax<sx: wmax:=sx; fi
+enddef;
+
+def strich(expr sx) =
+ if not wortende :
+% gerade(0,ht-dy,1,sx);
+ draw ((0,0)--(ht-dy,ht-dy)) shifted (sx,0);
+ xpos:=sx+ht-dy;
+ if wmax<xpos: wmax:=xpos; fi
+ else:
+ draw ((0,0)--(endx,endx)) shifted (sx,0);
+ xpos:=sx+endx;
+ if wmax<xpos: wmax:=xpos; fi
+ fi
+ zeigen;
+ enddef;
+
+ def spitz (expr sx) =
+ draw ((0,ht-dy){1,1}..tension 1.2..{up}(dy+gap,Ht)) shifted (sx,0);
+ xpos:=sx+dy+gap;
+ if wmax<xpos: wmax:=xpos; fi
+ enddef;
+
+def oschl(expr sx) =
+ draw ((0,ht){1,1}..(sb,Ht-fs*sb){up}..((1-fs)*sb,Ht){left}..tension1.2..{down}(0,ht)) shifted (sx,0);
+ if wmax<(sx+sb): wmax:=sx+sb; fi
+enddef;
+
+def uschl(expr fscale, delta, sx) =
+ draw ((0,0){down}..tension1.2..(-sb*(1-fs),-dt){left}..(-sb,-dt+fs*sb){up}..{1,1}(0,0)) scaled fscale shifted (sx,delta);
+ if wmax<sx: wmax:=sx; fi
+enddef;
+
+% Hermite-Interpolation, 1 Intervall
+def schweif(expr hl, hr, b, phil, phir, tens, mt, sx) =
+ p := (0,hl){dir phil}..tension tens..{dir phir}(b,hr);
+ draw p shifted (sx,0);
+ if ((b>0) and (phil<angle(1,mt)) and (phir>angle(1,mt))) or
+ ((b<0) and (angle(-dir(phir))<angle(1,mt)) and (angle(-dir(phil))>angle(1,mt))):
+ x0:=whatever; y0:=whatever;
+ z0=(directionpoint (1,mt) of if b<0: reverse fi p) shifted (sx,0); fi
+ xpos:=sx+b;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def fahne (expr hl, hr, b, phil, phir, tens, mt, sx) =
+ if not wortende:
+ schweif(hl, hr, b, phil, phir, tens, mt, sx);
+ else:
+ draw ((0,hl){dir phil}..
+ (endx,hl if phil<0: - else: + fi if phil=45: endx else: endy fi)) shifted (sx,0);
+ xpos:=sx+endx;
+ if wmax<xpos: wmax:=xpos; fi
+ fi
+ zeigen;
+ enddef;
+
+def ipunkt(expr sx) =
+ draw ((-sqrt(2)*ds,0)--(sqrt(2)*ds,0)) rotated 45 shifted (sx,ht+(Ht-ht)/2);
+ if wmax<(sx+ds): wmax:=sx+ds; fi
+enddef;
+
+def umlaut(expr dx, sx) =
+ ipunkt(sx+dx);
+ ipunkt(sx+dx+7.5ut);
+enddef;
+
+def k_teil(expr sx) =
+ draw ((0,ht){up}..(3*ds,1.5*ht){right}..(3*ht/4,ht){down}..tension 1.5..(0,6ut){left}..(-4ut,8ut){up}..(-1ut,ht/2){right}..tension 1.5..{right}(12ut,ht/4)..{1,1}(15ut,7ut)) shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0 = (15ut,7ut) shifted (sx,0);
+ xpos:=sx+15ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+3*ht/4): wmax:=sx+3*ht/4; fi
+enddef;
+
+def l_fuss (expr sx) =
+ draw ((0,ht/2){down}..tension1.2..(3.5ut,0){right}..tension1.2..{1,1}(7.5ut,3ut))
+ shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0 = (7.5ut,3ut) shifted (sx,0);
+ xpos:=sx+7.5ut;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def rschleife (expr sl, hy, deltay, fy, sx) =
+ draw ((0,0){right}..(sl,-(1-fs)*sl){down}..((1-fs)*sl,-sl){left}..if deltay<>0:tension1.5 ..fi(0,deltay){up}) yscaled fy shifted (sx,hy);
+ if wmax<(sx+sl): wmax:=sx+sl; fi
+enddef;
+
+def vbauch (expr hl, sx) =
+ bogen(hl,ht,vh,vb,0.5,90,-90,1,1,sx);
+ schweif(vh,fs*s/faktor,-(vb-s-1ut),-90,angle(-1,-0.25),1,1,xpos);
+enddef;
+
+def z_teil (expr sx) =
+ draw ((0,ht-dy){1,1}..(6ut,ht){right}..(12.5ut,ht-7ut){down}..tension 1.3..(5ut,5ut){left}..(2ut,6.5ut){up}..(5ut,8ut){right}..tension 1..(15ut,-7.5ut){down}..tension 1.2..(7ut,-dt){left}..(0,-dt+7ut){up}..tension 1.4..{1,1}(17.5ut,6.5ut)) shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0 = (17.5ut,6.5ut) shifted (sx,0);
+ xpos:=sx+17.5ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+15ut): wmax:=sx+15ut; fi
+enddef;
+
+% Hermite-Interpolation, 2 Intervalle
+% Scheitelpunkt bei (fx*b,hm)
+def bogen (expr hl, hm, hr, b, fx, phil, phir, tensl, tensr, sx) =
+ p := (0,hl){dir phil}..tension tensl..(fx*b,hm){b/abs(b),0}..tension tensr..{dir phir}(b,hr);
+ draw p shifted (sx,0);
+ if (hm<hl) and (hm<hr) and
+ (((b>0) and (phir>45)) or ((b<0) and (phil>-135))):
+ x0:=whatever; y0:=whatever;
+ z0=(directionpoint (1,1) of if b<0: reverse fi p) shifted (sx,0); fi
+ xpos:=sx+b;
+ if wmax<xpos: wmax:=xpos; fi
+ enddef;
+
+def ss_teil (expr sx) =
+ p := (0,ht){up}..tension 1.2..(8ut,35ut){right}..(15ut,27.5ut){down}..tension 1.2..(7.5ut,18.5ut){left}..(5.5ut,ht){up}..(7.5ut,21.5ut){right}..tension 1.1..(17.5ut,ht/2){down}..tension 1.2..(10ut,0){left}..(3ut,5ut);
+ draw p shifted (sx,0);
+ z0=(directionpoint (-1,-1) of (subpath (6,7) of p)) shifted (sx,0);
+ xpos:=sx+ht/2;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(s+17.5ut): wmax:=s+17.5ut; fi
+enddef;
+
+% Nur fuer Wartungszwecke
+% Makro aktivieren, um die 'width' der Zeichen auszugeben
+def zeigen=
+% weite:=20*wmax/ht;
+% showvariable weite;
+enddef;
+
+def a_teil =
+ kurzstrich(xpos);
+ stamm(ht,ht/2,xpos);
+ bogen(ht/2,0,ht/2,ht/k,0.5,-90,90,1,1,xpos);
+ stamm(ht/2,ht-s,xpos);
+ lschleife(s,ht-s,1,xpos);
+ schweif(ht-s,ht,gap,0,90,1,1,xpos);
+ stamm(ht,0,xpos);
+enddef;
+
+def o_char =
+ kurzstrich(xpos);
+ stamm(ht,ht/2,xpos);
+ bogen(ht/2,0,ht/2,ht/k,0.5,-90,90,1,1,xpos);
+ stamm(ht/2,ht-so,xpos);
+ fsalt:=fs; fs:=0.5;
+ lschleife(so,ht-so,1,xpos);
+ fs:=fsalt;
+ fahne(ht-so,ht-dy,3*ht/4-dy,0,45,1,1,xpos);
+enddef;
+
+%
+% Makros fuer Grossbuchstaben
+def Oval (expr Br, sx) =
+ p := (Br/2+0.5ut,Ht){left}..(0,Ht/2){down}..(Br/2,0){right}..(Br,Ht/2){up}..tension1.2..(Br/2+3.5ut,Ht){left}..(Br/2+1.5ut,Ht-1.5ut){down}..{right}(Br/2+8.5ut,Ht-5ut);
+ draw p shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0=(directionpoint (1,1) of (subpath (2,3) of p)) shifted (sx,0);
+ % Abstand vom Endpunkt bis zum rechten Rand des Ovals:
+ lastx:=Br/2-8.5ut;
+ xpos:=sx+Br/2+8.5ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+Br): wmax:=sx+Br; fi
+enddef;
+
+def Stock (expr sx) =
+ breit:=12.5ut;
+ draw ((0,Ht-5ut){1,2}..(0.6*breit,Ht){right}..{down}(breit,Ht-10ut)) shifted (sx,0);
+ xpos:=sx+breit;
+ if wmax<xpos: wmax:=xpos; fi
+ enddef;
+
+ def Ihaken=
+bogen(Ht-7.5ut,Ht,Ht-10ut,12.5ut,0.6,90,-90,1.5,1,xpos);
+enddef;
+
+def Ibogen=
+bogen(10ut,0,10ut,-22.5ut,0.5,-90,90,1,1,xpos);
+ enddef;
+
+def Oschl(expr sx) =
+ draw ((-10ut,ht+5ut){1,-2}..(0,ht){right}..(Sb,Ht-fs*ht){up}..((1-fs)*Sb,Ht){left}..{down}(0,ht)) shifted (sx+10ut,0);
+ xpos:=sx+10ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+10ut+Sb): wmax:=sx+10ut+Sb;fi
+enddef;
+
+def L_fuss(expr B, sx) =
+ draw ((0,ht/4){down}..(-3.5ut,0){left}..(-7.5ut,3ut){up}..(-4ut,6ut){right}..tension 1.5..(B,0){right}) shifted (sx,0);
+ xpos:=sx+B;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def B_bauch(expr sx) =
+ lasty:=8.25ut;
+ draw ((0,0){right}..(5ut,5ut){up}..tension1..(0ut,12ut){left}..(-1.2ut,11ut){down}..tension1.2..(2.5ut,lasty){right}) shifted (sx,0);
+ xpos:=sx+2.5ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+5ut): wmax:=sx+5ut; fi
+enddef;
+
+def D_kopf (expr sx) =
+ draw ((0,ht){up}..(-12ut,Ht){left}..(-20ut,32ut){down}..(0,ht){right}..(7.5ut,ht+2.5ut)) shifted (sx,0);
+ xpos:=sx+7.5ut;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def schwalbe(expr sx) =
+ draw ((0,Ht-7.5ut){up}..tension 1.5..(4ut,Ht){right}..tension 1.5..(11ut,Ht-7.5ut){right}..{up}(15ut,Ht)) shifted (sx,0);
+ xpos:=sx+15ut;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def Ipunkt (expr sx) =
+ draw ((-sqrt(2)*3ut,0)--(sqrt(2)*3ut,0)) rotated 45 shifted (sx,Ht+7ut);
+ if wmax<(sx+3ut): wmax:=sx+3ut; fi
+ enddef;
+
+def Umlaut(expr dx, sx) =
+ Ipunkt(sx+dx);
+ Ipunkt(sx+dx+8.5ut);
+enddef;
+
+def A_teil =
+ Oval(25ut,xpos);
+ schweif(Ht-5ut,Ht,lastx+gap,0,90,1,1,xpos);
+ enddef;
+
+def A_char =
+ xpos:=0;wmax:=xpos;
+A_teil;
+ stamm(Ht,ht/2,xpos);
+ l_fuss(xpos);
+ tangente(0);
+enddef;
+
+def O_char =
+xpos:=0;wmax:=xpos;
+Oval(30ut,xpos);
+a:=x0;b:=y0;
+schweif(Ht-5ut,Ht,lastx,0,angle(1,2),1,1,xpos);
+x0:=whatever;y0:=whatever;
+z0=(a,b);
+tangente(2.5ut);
+ enddef;
+
+def U_char =
+xpos:=0;wmax:=xpos;
+Stock(xpos);
+stamm(Ht-10ut,15ut,xpos);
+bogen(15ut,0,15ut,20ut,0.5,-90,90,1,1,xpos);
+stamm(Ht-S,15ut,xpos);
+lschleife(S,Ht-S,1,xpos);
+schweif(Ht-S,Ht,gap,0,90,1,1,xpos);
+stamm(Ht,ht/2,xpos);
+l_fuss(xpos);
+tangente(0);
+enddef;
+
+def Vbauch (expr hl, sx) =
+ bogen(hl,Ht,Vh,Vb,0.5,90,-90,1,1,sx);
+ schweif(Vh,fs*S/faktor,-(Vb-S-1ut),-90,angle(-1,-0.25),1.2,0.5,xpos);
+ enddef;
+
+ def N_fuss (expr hl, br, tensl, tensr, sx) =
+ draw ((0,hl){down}..tension tensl..(br,0){right}..tension tensr..{1,1}(br+4ut,3ut))
+ shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0 = (br+4ut,3ut) shifted (sx,0);
+ xpos:=sx+br+4ut;
+ if wmax<xpos: wmax:=xpos; fi
+enddef;
+
+def Dschl (expr sx) =
+draw ((-gap/2,0){down}..(-(BX+gap/2)*(1-fs),-ht){left}..(-(BX+gap/2),-ht*(1-fs)){up}..tension1.3..(0,0)..tension1.3..(BX+gap/2,ht*(1-fs)){up}..((BX+gap/2)*(1-fs),ht){left}..{down}(gap/2,0)) shifted (sx+gap/2,ht);
+xpos:=sx+gap;
+if wmax<xpos: wmax:=xpos; fi
+if wmax<(sx+BX+gap/2): wmax:=sx+BX+gap/2; fi
+enddef;
+
+def P_teil(expr sx) =
+ draw ((0,25ut){up}..(10ut,Ht){right}..(20ut,30ut){down}..tension 1.5..(0,5ut){left}..(-4ut,8ut){up}..(-2ut,10ut){right}..tension 1.5..(10ut,5ut){right}..{1,1}(14ut,7ut)) shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0 = (14ut,7ut) shifted (sx,0);
+ xpos:=x0;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+20ut): wmax:=sx+20ut; fi
+enddef;
+
+def K_teil (expr sx) =
+ breit:=13ut;
+ draw ((0,ht){down}..(-12.5ut,0){left}..(-20ut,7.5ut){up}..(0,ht){right}..(breit,ht-7.5ut){down}..tension 1.2..(1.5ut,5ut){left}..(-2ut,7.5ut){up}..(1.5ut,9ut){right}..tension 1.2..(13ut,0){right}) shifted (sx,0);
+ xpos:=sx+13ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+breit): wmax:=sx+breit; fi
+enddef;
+
+def R_teil (expr sx) =
+ breit:=13ut;
+ draw ((0,Ht){right}..(breit,Ht-9ut){down}..(-2.5ut,ht-1ut){left}..(-5ut,ht+1.5ut){up}..(-2ut,ht+3ut){right}..tension1.5..(12ut,0){right}) shifted (sx,0);
+ xpos:=sx+12ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+breit): wmax:=sx+breit; fi
+enddef;
+
+def Z_teil (expr sx) =
+ breit:=20ut;
+ p := (0,32.5ut){1,4}..(10ut,Ht){right}..(breit,29ut){down}..tension1.2..(6.25ut,13ut){left}..(4ut,15ut){up}..(6.25ut,17ut){right}..tension1..(breit,-2ut){down}..tension1.2..(12ut,-dt){left}..(4ut,-11ut){up}..tension 1.2..{1,1}(24ut,10ut);
+ draw p shifted (sx,0);
+ x0:=whatever; y0:=whatever;
+ z0=(24ut,10ut) shifted (sx,0);
+ xpos:=sx+24ut;
+ if wmax<xpos: wmax:=xpos; fi
+ if wmax<(sx+breit): wmax:=sx+breit; fi
+ enddef;
+
+ def Shalbe(expr B) =
+ bogen(Ht-Sab,Ht,Hs,B+gap,Sf,angle(1,Sm),-90,1,Stens,xpos);
+ bogen(Hs,0,Hs,-B,0.5,-90,90,1,1,xpos);
+ enddef;
+
+ def Szwbogen(expr B, ab, phir) =
+bogen(Hs,Ht,Ht-ab,B,1-Sf,90,phir,Stens,1,xpos);
+enddef;
+
+def Nrechts =
+ schweif(Hs,Ht,Bs,90,angle(1,0.25),1,1,xpos);
+ schweif(Ht,Ht,Bs,-90,45,1,1,xpos);
+ schweif(Ht,Hs,-(Bs-gap),-135,-90,1,1,xpos);
+ enddef;
+%%%%%%%%%%%%%%%%%%% File-Ende %%%%%%%%%%%%%%%%%%%