summaryrefslogtreecommitdiff
path: root/fonts/genealogy
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/genealogy
Initial commit
Diffstat (limited to 'fonts/genealogy')
-rw-r--r--fonts/genealogy/README25
-rw-r--r--fonts/genealogy/drgen.mf131
-rw-r--r--fonts/genealogy/drgen10.mf20
-rw-r--r--fonts/genealogy/drgen10.tfmbin0 -> 524 bytes
-rw-r--r--fonts/genealogy/licence.txt5
-rw-r--r--fonts/genealogy/testgen.tex26
6 files changed, 207 insertions, 0 deletions
diff --git a/fonts/genealogy/README b/fonts/genealogy/README
new file mode 100644
index 0000000000..47f55b8731
--- /dev/null
+++ b/fonts/genealogy/README
@@ -0,0 +1,25 @@
+Genealogy symbols in METAFONT
+-----------------------------
+
+Files in this distribution:
+
+ drgen10.mf % the mf driver file
+ drgen10.tfm % tfm file for TeX
+ drgen.mf % the mf character definitions
+ testgen.tex % a test file
+ README % this file
+ licence.txt % licence conditions
+
+The MF files in this distribution are a simple compilation
+of the genealogical symbols found in the `wasy' and `gen' font.
+Actually, all I have done was to add the male and female symbols
+to Knuth's `gen' font. Thus, it avoids loading two fonts
+when you need only genealogical symbols.
+
+Hope this is helpful to somebody.
+
+Denis Roegel, May 30, 1996. (updated March 2, 1999)
+(roegel@loria.fr)
+
+
+
diff --git a/fonts/genealogy/drgen.mf b/fonts/genealogy/drgen.mf
new file mode 100644
index 0000000000..10c0f42454
--- /dev/null
+++ b/fonts/genealogy/drgen.mf
@@ -0,0 +1,131 @@
+% drgen.mf
+% D. Roegel, 20 april 1996
+% Adapted from rsym.mf and gen.mf
+
+cmchar "female";
+beginchar(hex"19",x_height#+2u#,1.7x_height#-desc_depth#,desc_depth#);
+italcorr 1/2x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x8=good.x (.5x_height + u);
+y6 = good.y (h-.5x_height); y8-y4=x2-x6;
+circle_points;
+x9 := x8;
+numeric a; a = round .5(h+d-x_height) + eps;
+x10=x8-a;
+x11=x8+a;
+y10 = y11; y11 = -d+a;
+y9 = -desc_depth;
+draw_circle;
+draw z10--z11; draw z4--z9;
+math_fit(0,ic#);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "male";
+numeric this_size#;
+this_size# = x_height#*(1+0.9/sqrt2);
+beginchar(hex"1A",this_size#+1.7u#,this_size#,0);
+italcorr this_size#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x2=x_height+2u-x6; y2=.5x_height; bot y4=0;
+circle_points;
+z9 = 1.9[z5,z1];
+draw_circle;
+x9 := good.x x9;
+y9 := good.y y9;
+x10 = x9; y11 = y9;
+y10 = y9-3.5u; x11 = x9-3.5u;
+draw z1--z9;
+draw z10--z9--z11;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cross (death symbol)";
+beginchar("d",9u#,.65[x_height#,asc_height#],.1(asc_height#-x_height#));
+adjust_fit(0,0); pickup tiny.nib; light_stem=Vround .5[vair,stem];
+pos1(stem,0); pos2(.4[hair,stem],0); pos3(stem,0);
+%pos4(stem,90); pos5(.5[vair,stem],90); pos6(stem,90);
+pos4(light_stem,90); pos5(.5[vair,light_stem],90); pos6(light_stem,90);
+x1=x2=x3=.5w; top y1=h; bot y3=-d; y2=y4r;
+y4=y5=y6; y4l=good.y .6[-d,h]; x4=good.x u; x6=r-x4; x5=x2;
+filldraw z1l...z2l{down}...z3l--z3r...z2r{up}...z1r--cycle; % vertical stroke
+filldraw z4l...z5l...z6l--z6r...z5r...z4r--cycle; % horizontal stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Rings (marriage symbol)";
+beginchar("m",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos1(light_stem,90); pos3(light_stem,-90);
+pos2(light_stem,180); pos4(.3[hair,light_stem],0);
+x1=x3=.5[x2,x4]; lft x2r=hround(-u-.5light_stem); rt x4r=hround(.6w+.5stem);
+%top y1r=vround(h+.5light_stem); y2=y4=.5[y1,y3];
+%bot y3r=vround(-d-.5light_stem);
+top y1r=h; y2=y4=.5[y1,y3];
+bot y3r=-d;
+pos5(light_stem,90); pos7(light_stem,-90);
+pos6(.3[hair,light_stem],180); pos8(light_stem,0);
+x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+u+.5light_stem);
+y5-y1=y6-y2=y7-y3=y8-y4=0;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+ &pulled_arc.e(4,1); % left ring
+filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+ &pulled_arc.e(8,5); % right ring
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Five-pointed star (birth symbol)";
+beginchar("b",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric theta; theta=360/5; % degrees between points
+pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
+top y1r=vround(math_axis+.5x_height+.5rule_thickness);
+ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
+pos2(curve,theta); pos3(rule_thickness,90+theta);
+z2=z0; z3-z0=(z1-z0) rotated theta;
+z4=whatever[z0l,z1r]=whatever[z2r,z3r];
+filldraw for n=0 upto 4:
+ z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
+ cycle; % star
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Divided rings (divorce symbol)";
+beginchar("1",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos11(stem,0); pos12(.4[hair,stem],0); pos13(stem,0);
+x11=x12=x13=.5w; top y11=round 1.3h; bot y13=round(-d-.3h); y12=.6[y13,y11];
+filldraw z11l...z12l{down}...z13l
+ --z13r...z12r{up}...z11r--cycle; % vertical stroke
+pos1(light_stem,90); pos3(light_stem,-90);
+pos2(light_stem,180); pos4(.3[hair,light_stem],0);
+x1=x3=.5[x2,x4]; lft x2r=hround(-3u-.5light_stem); rt x4r=hround(.25w+.5stem);
+top y1r=h; y2=y4=.5[y1,y3];
+bot y3r=-d;
+pos5(light_stem,90); pos7(light_stem,-90);
+pos6(.3[hair,light_stem],180); pos8(light_stem,0);
+x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+3u+.5light_stem);
+y5-y1=y6-y2=y7-y3=y8-y4=0;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+ &pulled_arc.e(4,1); % left ring
+filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+ &pulled_arc.e(8,5); % right ring
+penlabels(1,2,3,4,5,6,7,8,11,12,13); endchar;
+
+cmchar "Leaf";
+beginchar("l",18u#,asc_height#,0);
+adjust_fit(0,0); pickup pencircle scaled .6rule_thickness;
+z1=(0,0); z2=(w,h);
+z3=.5[z1,z2]+.25((z2-z1)rotated 90);
+z4=.5[z1,z2]+.25((z2-z1)rotated-90);
+path p[]; p3=z1...z3{z2-z1}...z2; p4=z1...z4{z2-z1}...z2;
+draw p3; % upper edge
+draw p4; % lower edge
+draw z1 -- z2; % stem
+z5=1/4[z1,z2]; z6=.55[z1,z2];
+z35=p3 intersectionpoint (z5--(x5,2h));
+z36=p3 intersectionpoint (z6--(x6,2h));
+z45=p4 intersectionpoint (z5--(2w,y5));
+z46=p4 intersectionpoint (z6--(2w,y6));
+draw z35--z5--z45; % vein
+draw z36--z6--z46; % vein
+labels(1,2,3,4,5,6,35,36,45,46); endchar;
diff --git a/fonts/genealogy/drgen10.mf b/fonts/genealogy/drgen10.mf
new file mode 100644
index 0000000000..756d36e4aa
--- /dev/null
+++ b/fonts/genealogy/drgen10.mf
@@ -0,0 +1,20 @@
+% drgen10.mf
+% D. Roegel, 20 april 1996
+% Adapted 1) from wasy10.mf, rsym.mf, wasychr.mf,
+% 2) from gen10.mf and gen.mf (Knuth's genealogical symbols)
+%
+
+if unknown cmbase: input cmbase fi % omit if CMMF can be assumed
+mode_setup;
+
+def generate suffix t= enddef;
+input cmr10; font_setup;
+
+font_identifier:="DRGEN";
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_quad 18u#+4letter_fit#;
+
+input drgen; % symbols
+
+bye.
diff --git a/fonts/genealogy/drgen10.tfm b/fonts/genealogy/drgen10.tfm
new file mode 100644
index 0000000000..ecf4e52dd3
--- /dev/null
+++ b/fonts/genealogy/drgen10.tfm
Binary files differ
diff --git a/fonts/genealogy/licence.txt b/fonts/genealogy/licence.txt
new file mode 100644
index 0000000000..e53351c2f7
--- /dev/null
+++ b/fonts/genealogy/licence.txt
@@ -0,0 +1,5 @@
+% Copyright 1999 Denis Roegel
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
diff --git a/fonts/genealogy/testgen.tex b/fonts/genealogy/testgen.tex
new file mode 100644
index 0000000000..a10087d7e2
--- /dev/null
+++ b/fonts/genealogy/testgen.tex
@@ -0,0 +1,26 @@
+% D. Roegel, 30 May 1996
+% roegel@loria.fr
+
+\font\gensymbols=drgen10
+\def\male{{\gensymbols\char"1A}}
+\def\female{{\gensymbols\char"19}}
+\def\died{{\gensymbols d}}
+\def\married{{\gensymbols m}}
+\def\born{{\gensymbols b}}
+\def\divorced{{\gensymbols1}}
+\def\leaf{{\gensymbols l}}
+
+\centerline{\bf Genealogical symbols from {\tt wasy} and {\tt gen} fonts}
+
+\bigskip
+\centerline{\vbox{\halign{#\hfil&\quad#\hfil\cr
+Male&\male\cr
+Female&\female\cr
+Born&\born\cr
+Married&\married\cr
+Divorced&\divorced\cr
+Died&\died\cr
+Leaf&\leaf\cr}}}
+
+\bye
+