summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf')
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf306
1 files changed, 306 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf
new file mode 100644
index 00000000000..9122a5ad4e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf
@@ -0,0 +1,306 @@
+%%
+%% This is file `huncltitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def huncial_font_setup= % contains special stuff for huncial fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of huncial_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+ draw_serif($$, $, fr); % the serif
+ draw z$--z$$a; % the stem
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$u--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+huncial_font_setup;
+
+
+input huncll; % minuscules (lower case)
+input hunclu; % majuscules (capitals)
+input hunclpunct; % punctuation
+input huncllig; % the several dashes
+input huncldig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%% ligtable "P": "T": "Y": "A" kern kk#;
+%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+%% "V" kern k#, "Y" kern k#;
+%% ligtable "A": if serifs: "R": fi
+%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+%%ligtable "I": "I" kern -k#; % Richard III
+fi
+
+bye.
+