summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support/pedigree-perl/Pedigree
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/support/pedigree-perl/Pedigree')
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/AbortionNode.3167
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Area.3233
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/ChildlessNode.3170
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Language.3197
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Makefile42
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/MarriageNode.3199
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Node.3341
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Parser.3162
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/PersonNode.3212
-rw-r--r--Master/texmf-dist/doc/support/pedigree-perl/Pedigree/TwinsNode.3169
10 files changed, 1892 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/AbortionNode.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/AbortionNode.3
new file mode 100644
index 00000000000..3ae47c203b9
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/AbortionNode.3
@@ -0,0 +1,167 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::AbortionNode 3"
+.TH Pedigree::AbortionNode 3 "2007-07-22" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::AbortionNode \- an abortion in a pedigree
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::AbortionNode;
+.PP
+$node = new Pedigree::AbortionNode(\fI%params\fR);
+.PP
+$node\->DrawNode(\fI$xidst\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR,
+\&\fI@fieldsfornode\fR);
+.PP
+$node\->PrintLegend(\fI$land\fR, \fI@fields\fR);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package contains data about an abortion. Abortion is like a person,
+but it cannot have kids, and it is drawn differently
+.IP "\fBDrawNode\fR(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR, \fI@fieldsfornode\fR);" 4
+.IX Item "DrawNode($xdist, $ydist, $belowtextfont, $abovetextfont, @fieldsfornode);"
+Output the command to draw this node. The parameters are
+distances between the nodes (in cm) and fields for abovetext.
+.IP "\fBPrintLegend\fR(\fI$lang\fR, \fI@fields\fR);" 4
+.IX Item "PrintLegend($lang, @fields);"
+Print the legend for the given node, including \fI@fields\fR in the given
+language \fI$lang\fR, and excluding the fields, that have no meaning for
+this node.
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Area.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Area.3
new file mode 100644
index 00000000000..9e58f6b46c9
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Area.3
@@ -0,0 +1,233 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::Area 3"
+.TH Pedigree::Area 3 "2007-07-08" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::Area \- Calculate the area taken by a tree or a clump
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::Area;
+.PP
+$area = new Pedigree::Area($node);
+.PP
+$Ymin=$area\->\fIGetYmin()\fR;
+.PP
+$area\->SetYmin($Ymin);
+.PP
+$Ymax=$area\->\fIGetYmax()\fR;
+.PP
+$area\->SetYmax($Ymax);
+.PP
+$Xmin=$area\->GetXmin($y);
+.PP
+$area\->SetXmin($y,$x);
+.PP
+$Xmax=$area\->GetXmax($y);
+.PP
+$area\->SetXmax($y,$x);
+.PP
+$area\->AddRight($otherarea);
+.PP
+$area\->AddLeft($otherarea);
+.PP
+$rootnode=$area\->\fIGetRootNode()\fR;
+.PP
+$area\->MoveLowerLayers($x);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+The algorithm of \fIpedigree\fR\|(1) uses the notion of area: a part of
+a picture taken by a tree or a clump. This package implements this
+notion.
+.PP
+Each Area has \fBrootnode\fR \- the reference node for all calculations.
+All distances are calculated as relative to the coordinates of the
+\&\fBrootnode\fR.
+.PP
+The units are distances between the nodes in X and Y direction. The
+Y axis is \fIdownward\fR: the earlier generations have smaller Y
+coordinates.
+.IP "\fBnew\fR(\fI$rootnode\fR);" 4
+.IX Item "new($rootnode);"
+Construct a new area around the given rootnode
+.IP "\fBGetYmin\fR();" 4
+.IX Item "GetYmin();"
+Get the lower bound of the area.
+.IP "\fBSetYmin\fR(\fI$y\fR);" 4
+.IX Item "SetYmin($y);"
+Set the lower bound of the area.
+.IP "\fBGetYmax\fR();" 4
+.IX Item "GetYmax();"
+Get the upper bound of the area.
+.IP "\fBSetYmax\fR(\fI$y\fR);" 4
+.IX Item "SetYmax($y);"
+Set the upper bound of the area.
+.IP "\fBGetXmin\fR(\fI$y\fR);" 4
+.IX Item "GetXmin($y);"
+Get the minimal X coordinate of the area on the level Y.
+.ie n .IP "\fBSetXmin\fR(\fI$y, \fI$x\fI\fR);" 4
+.el .IP "\fBSetXmin\fR(\fI$y, \f(CI$x\fI\fR);" 4
+.IX Item "SetXmin($y, $x);"
+Set the minimal X coordinate of the area on the level Y.
+.IP "\fBGetXmax\fR(\fI$y\fR);" 4
+.IX Item "GetXmax($y);"
+Get the maximal X coordinate of the area the the level Y.
+.ie n .IP "\fBSetXmax\fR(\fI$y, \fI$x\fI\fR);" 4
+.el .IP "\fBSetXmax\fR(\fI$y, \f(CI$x\fI\fR);" 4
+.IX Item "SetXmax($y, $x);"
+Set the maximal X coordinate of the area the the level Y.
+.IP "\fBAddRight\fR(\fI$otherarea\fR);" 4
+.IX Item "AddRight($otherarea);"
+Add the new area \fI$otherarea\fR to the given area at the right. The
+\&\*(L"other area\*(R" should have a root node that is relative to our root
+node. The relative Y of the other root node is used, the relative
+X is set.
+.IP "\fBAddLeft\fR(\fI$otherarea\fR);" 4
+.IX Item "AddLeft($otherarea);"
+Add the new area \fI$otherarea\fR to the given area at the left. The
+\&\*(L"other area\*(R" should have a root node that is relative to our root
+node. The relative Y of the other root node is used, the relative
+X is set.
+.IP "\fBGetRootNode\fR();" 4
+.IX Item "GetRootNode();"
+Return the root node of the area.
+.IP "\fBMoveLowerLayers\fR(\fI$x\fR);" 4
+.IX Item "MoveLowerLayers($x);"
+Shift the lower layers (>0) of the area in the X direction by \fI$x\fR
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2006, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/ChildlessNode.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/ChildlessNode.3
new file mode 100644
index 00000000000..08930658c49
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/ChildlessNode.3
@@ -0,0 +1,170 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::ChildlessNode 3"
+.TH Pedigree::ChildlessNode 3 "2007-07-22" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::ChildlessNode \- an abortion in a pedigree
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::ChildlessNode;
+.PP
+$node = new Pedigree::ChildlessNode(\fI%params\fR);
+.PP
+$node\->DrawNode(\fI$xidst\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR,
+\&\fI@fieldsfornode\fR);
+.PP
+$node\->PrintLegend(\fI$land\fR, \fI@fields\fR);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package contains data about a \*(L"childlessness\*(R" node. This node
+is not numbered in pedigree.
+.IP "\fBnew\fR(\fI%params\fR);" 4
+.IX Item "new(%params);"
+Construct a new node from the given parameters.
+.IP "\fBDrawNode\fR(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR, \fI@fieldsfornode\fR);" 4
+.IX Item "DrawNode($xdist, $ydist, $belowtextfont, $abovetextfont, @fieldsfornode);"
+Output the command to draw this node. The parameters are
+distances between the nodes (in cm) and fields for abovetext (not used
+here). We only print the Comment field below the node, and draw this
+node higher than other nodes.
+.IP "\fBPrintLegend\fR(\fI$lang\fR, \fI@fields\fR);" 4
+.IX Item "PrintLegend($lang, @fields);"
+This subroutine does nothing since childlessness has no legend.
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Language.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Language.3
new file mode 100644
index 00000000000..1838308c460
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Language.3
@@ -0,0 +1,197 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::Language 3"
+.TH Pedigree::Language 3 "2007-10-21" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::Language \- encapsulating language issues for pedigree library
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::Language;
+.PP
+$lang = new Pedigree::Language(\fI$language\fR[, \fI$encoding\fR]);
+.PP
+$lang\->\fIHeader()\fR;
+.PP
+$lang\->\fILanguage()\fR;
+.PP
+$lang\->\fIEncoding()\fR;
+.PP
+$lang\->\fIGetFieldNames()\fR;
+.PP
+$lang\->\fIGetValues()\fR;
+.PP
+$lang\->\fIGetSpecialNames()\fR;
+.PP
+$lang\->PrintField(\fI$field\fR, $<$value>);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package defines the language-dependent parts of the pedigree
+library. The idea is to gather everything about language here, so adding
+a new language should be (presumably) be easy.
+.IP "\fBnew\fR(\fI$language\fR[, \fI$encoding\fR]);" 4
+.IX Item "new($language[, $encoding]);"
+Construct the new interpreter from the given language and encoding names.
+.IP "\fBHeader\fR ()" 4
+.IX Item "Header ()"
+Print the language-related lines of the document preamble
+.IP "\fBLanguage\fR ()" 4
+.IX Item "Language ()"
+Print the current language
+.IP "\fBEncoding\fR ()" 4
+.IX Item "Encoding ()"
+Print the current encoding
+.IP "\fBGetFieldNames\fR();" 4
+.IX Item "GetFieldNames();"
+Outputs a reference to a hash
+\&\*(L"field_name_in_this_language\*(R"=>\*(L"field_name_in_English\*(R"
+.IP "\fBGetValues\fR();" 4
+.IX Item "GetValues();"
+Outputs a reference to a hash
+\&\*(L"field_value_in_this_language\*(R"=>\*(L"field_value_in_English\*(R"
+.IP "\fBGetSpecialNames\fR();" 4
+.IX Item "GetSpecialNames();"
+Some values for the 'Name' field start with \f(CW\*(C`#\*(C'\fR. They are special.
+This subroutine outputs a reference to a hash
+\&\*(L"special_name_in_this_language\*(R"=>\*(L"special_name\*(R"
+.IP "\fBPrintField\fR(\fI$field\fR, \fI$value\fR);" 4
+.IX Item "PrintField($field, $value);"
+Formats the value \fI$value\fR of the given field \fI$field\fR according
+to the rules of the given language.
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2006, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Makefile b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Makefile
new file mode 100644
index 00000000000..5afbb317dd3
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Makefile
@@ -0,0 +1,42 @@
+#
+# Makefile for pedigree
+# $Id: Makefile,v 2.4 2007-07-09 22:49:33 boris Exp $
+#
+# This file is in public domain
+#
+
+PREFIX = /usr/local
+
+
+PERLLIBS = \
+ AbortionNode.pm \
+ Area.pm \
+ ChildlessNode.pm \
+ Language.pm \
+ MarriageNode.pm \
+ Node.pm \
+ Parser.pm \
+ PersonNode.pm \
+ TwinsNode.pm
+
+MANPAGES3=${PERLLIBS:%.pm=%.3}
+
+all: man
+
+man: ${MANPAGES3}
+
+install: all
+ mkdir -p $(PREFIX)/lib/site_perl/Pedigree
+ install -m 644 ${PERLLIBS} $(PREFIX)/lib/site_perl/Pedigree
+
+installman: all
+ for x in ${MANPAGES3}; do install -m 644 $$x $(PREFIX)/man/man3/Pedigree::$$x; done
+
+
+%.3: %.pm
+ pod2man --section=3 -n Pedigree::$* -s 3 $< $@
+
+clean:
+
+distclean: clean
+ $(RM) *.3
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/MarriageNode.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/MarriageNode.3
new file mode 100644
index 00000000000..d36edd4a56c
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/MarriageNode.3
@@ -0,0 +1,199 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::MarriageNode 3"
+.TH Pedigree::MarriageNode 3 "2007-07-15" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::MarriageNode \- a marriage in a pedigree
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::MarriageNode;
+.PP
+$node = new Pedigree::MarriageNode(\fI%params\fR);
+.PP
+$FSpouse = \f(CW$node\fR\->\fIFSpouse()\fR;
+.PP
+$MSpouse = \f(CW$node\fR\->\fIMSpouse()\fR;
+.PP
+$consang = \f(CW$self\fR\->\fIisConsanguinic()\fR;
+.PP
+$area = \f(CW$node\fR\->\fISetArea()\fR;
+.PP
+$node\->CalcAbsCoord(\fI$x\fR, \fI$y\fR);
+.PP
+$node\->DrawNode(\fI$xidst\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR,
+\&\fI@fieldsfornode\fR);
+.PP
+$node\->\fIDrawConnections()\fR;
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package contains data about a marriage.
+.IP "\fBnew\fR(\fI%params\fR);" 4
+.IX Item "new(%params);"
+Construct a new node from the given parameters.
+.IP "\fBFSpouse\fR();" 4
+.IX Item "FSpouse();"
+Get female spouse of a node.
+.IP "\fBMSpouse\fR();" 4
+.IX Item "MSpouse();"
+Get female spouse of a node.
+.IP "\fBisConsanguinic\fR();" 4
+.IX Item "isConsanguinic();"
+Check whether the node is consanguinic
+.IP "\fBSetArea\fR();" 4
+.IX Item "SetArea();"
+Calculate relative coordinates for all nodes, that are descendants of
+the given node \fIand\fR the spouses that form the marriage. We create a
+\&\fIPedigree::Area\fR\|(3) around the given node and recursively apply the
+function to all descendants. The subroutine
+returns the reference to the created area.
+.IP "\fBCalcAbsCoor\fR(\fI$x\fR, $<y>);" 4
+.IX Item "CalcAbsCoor($x, $<y>);"
+Set the absolute coordinates of the given node, if the absolute
+coordinates of the parent node are (\fI$x\fR, \fI$y\fR), and recursively
+do this for all descendants of this node, and right and left clumps.
+.IP "\fBDrawNode\fR(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR, \fI@fieldsfornode\fR);" 4
+.IX Item "DrawNode($xdist, $ydist, $belowtextfont, $abovetextfont, @fieldsfornode);"
+Output the command to draw this node. The parameters are
+distances between the nodes (in cm).
+.IP "\fBDrawConnections\fR();" 4
+.IX Item "DrawConnections();"
+Draw the connections from the given node to its descendants and
+the spouses
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2006, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Node.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Node.3
new file mode 100644
index 00000000000..481b37ed9e8
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Node.3
@@ -0,0 +1,341 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::Node 3"
+.TH Pedigree::Node 3 "2009-01-05" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::Node \- the base package for nodes in pedigree charts
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::Node;
+.PP
+$node = new Pedigree::Node(\fI%params\fR);
+.PP
+$node\->\fICheckAllParents()\fR;
+.PP
+$Id = \f(CW$node\fR\->\fIId()\fR;
+.PP
+$node\->SetSortOrder(\-1|0|1);
+.PP
+$result = \f(CW$node\fR\->\fISortOrder()\fR;
+.PP
+$is_numbered=$node\->\fIisNumbered()\fR;
+.PP
+$type = \f(CW$node\fR\->\fIType()\fR;
+.PP
+$Kids = \f(CW$node\fR\->\fIKids()\fR;
+.PP
+$node\->\fIGetAndSortKids()\fR;
+.PP
+($root, \f(CW$newgen\fR) = \f(CW$node\fR\->FindRoot(\fI$generation\fR, [\fI$sort_order\fR]);
+.PP
+$x = \f(CW$node\fR\->\fIGetRelX()\fR;
+.PP
+$y = \f(CW$node\fR\->\fIGetRelY()\fR;
+.PP
+$node\->SetRelX(\fI$x\fR);
+.PP
+$node\->SetRelX(\fI$y\fR);
+.PP
+$x = \f(CW$node\fR\->\fIGetAbsX()\fR;
+.PP
+$y = \f(CW$node\fR\->\fIGetAbsY()\fR;
+.PP
+$node\->SetIndexX(\fI$n\fR);
+.PP
+$node\->SetAbsX(\fI$x\fR);
+.PP
+$node\->SetAbsY(\fI$y\fR);
+.PP
+$n = \f(CW$node\fR\->\fIGetIndexX()\fR;
+.PP
+$area = \f(CW$node\fR\->\fISetArea()\fR;
+.PP
+$delta = \f(CW$node\fR\->\fICenterKids()\fR;
+.PP
+$node\->CalcAbsCoord(\fI$x\fR, \fI$y\fR);
+.PP
+$node\->\fIAddConsanguinicMarriages()\fR;
+.PP
+$node\->AddTwins($ydist);
+.PP
+$frame = \f(CW$node\fR\->SetFrame(\fI$xdist\fR, \fI$ydist\fR);
+.PP
+$node\->DrawAll(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR,
+ \fI@fieldsfornode\fR);
+.PP
+$node\->\fIDrawConnections()\fR;
+.PP
+$node\->PrintAllLegends(\fI$land\fR, \fI@fields\fR);
+.PP
+$node\->PrintLegend(\fI$land\fR, \fI@fields\fR);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This is the basic package that defines nodes for pedigrees.
+\&\fIPedigree::PersonNode\fR\|(3) and \fIPedigree::MarriageNode\fR\|(3) inherit from
+this package.
+.IP "\fBnew\fR(\fI%params\fR);" 4
+.IX Item "new(%params);"
+Construct a new node from the given parameters. If a node with
+the give Id exists, add new information to the node.
+.IP "\fBCheckAllParents\fR();" 4
+.IX Item "CheckAllParents();"
+Check whether mothers and fathers of all nodes exist
+.IP "\fBId\fR();" 4
+.IX Item "Id();"
+Get Id of a node. Note that there is no way to set an Id of a node
+that was already created.
+.IP "\fBSetSortOrder\fR(\fI\-1|0|1\fR);" 4
+.IX Item "SetSortOrder(-1|0|1);"
+Normally the sibs nodes are sorted by age. However, if the nodes or
+their descendants are connected by a marriage line, we must sort them
+in the special way: all way to the left or all way to the right. The
+procedure \fBSetSortOrder\fR sets this flag for the node or deletes it
+depending on the argument.
+.IP "\fBSortOrder\fR();" 4
+.IX Item "SortOrder();"
+Normally the sibs nodes are sorted by age. However, if the nodes or
+their descendants are connected by a marriage line, we must sort them
+in the special way: all way to the left or all way to the right. The
+procedure \fBSortOrder\fR checks this flag.
+.IP "\fBisNumbered\fR();" 4
+.IX Item "isNumbered();"
+Check whether the node should be numbered in pedigree
+.IP "\fBType\fR()" 4
+.IX Item "Type()"
+Return node type.
+.IP "\fBKids\fR();" 4
+.IX Item "Kids();"
+Get the reference to the array of kids
+.IP "\fBGetAndSortKids\fR();" 4
+.IX Item "GetAndSortKids();"
+Apply sort the array of kids for the given node
+.IP "\fBFindRoot\fR(\fI$generation\fR, [\fI$sort_order\fR]);" 4
+.IX Item "FindRoot($generation, [$sort_order]);"
+Finds the root of the tree to which the current node belongs.
+Takes the current generation number and returns the root and its
+generation number. Here generation numbers go \*(L"backwards\*(R": the older
+generations have higher numbers. The found node is assigned sort order
+\&\fI$sort_order\fR.
+.IP "\fBGetRelX\fR();" 4
+.IX Item "GetRelX();"
+Find the relative x coordinate of the node. The coordinate is
+relative to the precedessor or to the marriage node, which connects
+this node to the proband
+.IP "\fBGetRelY\fR();" 4
+.IX Item "GetRelY();"
+Find the relative Y coordinate of the node. The coordinate is
+relative to the precedessor or to the marriage node, which connects
+this node to the proband. Note that the Y axis is down.
+.IP "\fBSetRelX\fR(\fI$x\fR);" 4
+.IX Item "SetRelX($x);"
+Set the relative x coordinate of the node. The coordinate is
+relative to the precedessor or to the marriage node, which connects
+this node to the proband.
+.IP "\fBSetRelY\fR(\fI$y\fR);" 4
+.IX Item "SetRelY($y);"
+Set the relative y coordinate of the node. The coordinate is
+relative to the precedessor or to the marriage node, which connects
+this node to the proband. Note that the Y axis is down.
+.IP "\fBGetAbsX\fR();" 4
+.IX Item "GetAbsX();"
+Find the absolute x coordinate of the node.
+.IP "\fBGetAbsY\fR();" 4
+.IX Item "GetAbsY();"
+Find the absolute Y coordinate of the node.
+.IP "\fBGetIndexX\fR();" 4
+.IX Item "GetIndexX();"
+Find the number of the node in the given generation.
+.IP "\fBSetAbsX\fR(\fI$x\fR);" 4
+.IX Item "SetAbsX($x);"
+Set the absolute x coordinate of the node.
+.IP "\fBSetAbsY\fR(\fI$y\fR);" 4
+.IX Item "SetAbsY($y);"
+Set the absolute y coordinate of the node.
+.IP "\fBSetIndexX\fR(\fI$n\fR);" 4
+.IX Item "SetIndexX($n);"
+Set the number of the node in the given generation.
+.IP "\fBSetArea\fR();" 4
+.IX Item "SetArea();"
+Calculate relative coordinates for all nodes, that are descendants of
+the given node. We create a \fIPedigree::Area\fR\|(3) around the given node
+and recursively apply the function to all descendants. The subroutine
+returns the reference to the created area.
+.IP "\fBCenterKids\fR();" 4
+.IX Item "CenterKids();"
+Move the relative coordinates of all the kids of the given node
+so the given node is centered in relation to the kids. Returns
+the shift to be applied to the \fIPedigree::Area\fR\|(3).
+.IP "\fBCalcAbsCoor\fR(\fI$x\fR, $<y>);" 4
+.IX Item "CalcAbsCoor($x, $<y>);"
+Set the absolute coordinates of the given node, if the absolute
+coordinates of the parent node are (\fI$x\fR, \fI$y\fR), and recursively
+do this for all descendants of this node. Additionally set up
+\&\fB%node_by_gen\fR.
+.IP "\fBAddConsanguinicMarriages\fR();" 4
+.IX Item "AddConsanguinicMarriages();"
+Check the pedigree and add consanguinic marriages to it. Note
+that this procedure must be called \fBafter\fR SetAbsCoor, so
+the coordinates of all nodes are set.
+.IP "\fBAddTwins\fR(\fI$ydist\fR);" 4
+.IX Item "AddTwins($ydist);"
+Check the pedigree and add twin nodes. Note
+that this procedure must be called \fBafter\fR SetAbsCoor and
+AddConsanguinicMarriages.
+.IP "\fBSetFrame\fR(\fI$xidst\fR, \fI$ydist\fR);" 4
+.IX Item "SetFrame($xidst, $ydist);"
+Calculate the frame: coordinates of the lower left and upper right
+corners of the picture (in ps units). As a side effect, add generation
+numbers to each person node and calculate the X index of each node.
+.IP "\fBDrawConnections\fR();" 4
+.IX Item "DrawConnections();"
+Draw the connections from the given node to its descendants
+.IP "\fBDrawAll\fR(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR, \fI@fieldsfornode\fR);" 4
+.IX Item "DrawAll($xdist, $ydist, $belowtextfont, $abovetextfont, @fieldsfornode);"
+Draw all nodes and connections in the form suitable for
+pspicture
+.IP "\fBPrintAllLegends\fR(\fI$lang\fR, \fI@fields\fR);" 4
+.IX Item "PrintAllLegends($lang, @fields);"
+Print legend for all the nodes. The first parameter is the
+language, the other is the fields to be included in the legend.
+.IP "\fBPrintLegend\fR(\fI$lang\fR, \fI@fields\fR);" 4
+.IX Item "PrintLegend($lang, @fields);"
+This subroutine does nothing: a generic node has no legend. It
+is overriden by \fIPedigree::PersonNode\fR\|(3) and \fIPedigree::AbortionNode\fR\|(3).
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2006, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Parser.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Parser.3
new file mode 100644
index 00000000000..44165db384e
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/Parser.3
@@ -0,0 +1,162 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::Parser 3"
+.TH Pedigree::Parser 3 "2007-07-16" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::Parser \- parser for the input file
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::Parser;
+.PP
+$parser = new Pedigree::Parser(I{$inputline>, \fI$lang\fR)
+.PP
+$parser\->Parse($inputline);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package parses input for the pedigree library and is used to
+define nodes.
+.IP "\fBnew\fR(\fI$inputline\fR, \fI$lang\fR);" 4
+.IX Item "new($inputline, $lang);"
+Construct a new parser from the pipe-separated line at input
+.IP "\fBParse\fR(\fI$inputline\fR);" 4
+.IX Item "Parse($inputline);"
+Take a line of comma-separated values; return a reference to a
+hash of parsed values
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2006, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/PersonNode.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/PersonNode.3
new file mode 100644
index 00000000000..af03e1c7c89
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/PersonNode.3
@@ -0,0 +1,212 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::PersonNode 3"
+.TH Pedigree::PersonNode 3 "2007-07-22" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::PersonNode \- a person in a pedigree
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::PersonNode;
+.PP
+$node = new Pedigree::PersonNode(\fI%params\fR);
+.PP
+$Id = \f(CW$node\fR\->\fIMotherId()\fR;
+\&\f(CW$Id\fR = \f(CW$node\fR\->\fIFatherId()\fR;
+.PP
+$isProband = \f(CW$node\fR\->\fIisProband()\fR;
+.PP
+$sex = \f(CW$node\fR\->\fISex()\fR;
+.PP
+$DoB = \f(CW$node\fR\->\fIDoB()\fR;
+.PP
+$DoD = \f(CW$node\fR\->\fIDoD()\fR;
+.PP
+$cond = \f(CW$node\fR\->\fICondition()\fR;
+.PP
+$GenName = \f(CW$node\fR\->\fIGetGenName()\fR;
+.PP
+$node\->SetGenName(\fI$name\fR);
+.PP
+$node\->DrawNode(\fI$xidst\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR,
+\&\fI@fieldsfornode\fR);
+.PP
+$node\->PrintLegend(\fI$land\fR, \fI@fields\fR);
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package contains data about a person.
+.IP "\fBnew\fR(\fI%params\fR);" 4
+.IX Item "new(%params);"
+Construct a new node from the given parameters.
+.IP "\fBMotherId\fR();" 4
+.IX Item "MotherId();"
+Return Mother Id.
+.IP "\fBFatherId\fR();" 4
+.IX Item "FatherId();"
+Return Father Id.
+.IP "\fBisProband\fR();" 4
+.IX Item "isProband();"
+Return 1 if the pesron is a Proband and zero otherwise
+.IP "\fBSex\fR();" 4
+.IX Item "Sex();"
+Get the sex of the node
+.IP "\fBDoB\fR();" 4
+.IX Item "DoB();"
+Get the DoB of the node
+.IP "\fBDoD\fR();" 4
+.IX Item "DoD();"
+Get the DoB of the node
+.IP "\fBCondition\fR();" 4
+.IX Item "Condition();"
+Returns node conditon.
+.IP "\fBGetGenName\fR();" 4
+.IX Item "GetGenName();"
+Find the generation name for the node
+.IP "\fBSetGenName\fR(\fI$name\fR);" 4
+.IX Item "SetGenName($name);"
+Set the generation name of the node
+.IP "\fBDrawNode\fR(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR, \fI@fieldsfornode\fR);" 4
+.IX Item "DrawNode($xdist, $ydist, $belowtextfont, $abovetextfont, @fieldsfornode);"
+Output the command to draw this node. The parameters are
+distances between the nodes (in cm) and fields for abovetext.
+.IP "\fBPrintLegend\fR(\fI$lang\fR, \fI@fields\fR);" 4
+.IX Item "PrintLegend($lang, @fields);"
+Print the legend for the given node, including \fI@fields\fR in the given
+language \fI$lang\fR.
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2006, 2007
diff --git a/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/TwinsNode.3 b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/TwinsNode.3
new file mode 100644
index 00000000000..79f11db2c35
--- /dev/null
+++ b/Master/texmf-dist/doc/support/pedigree-perl/Pedigree/TwinsNode.3
@@ -0,0 +1,169 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.\"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "Pedigree::TwinsNode 3"
+.TH Pedigree::TwinsNode 3 "2007-07-15" "perl v5.8.8" "User Contributed Perl Documentation"
+.SH "NAME"
+Pedigree::TwinsNode \- an auxillary twins node in a pedigree
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+use Pedigree::TwinsNode;
+.PP
+$node = new Pedigree::TwinsNode(\fI%params\fR);
+.PP
+$node\->DrawNode(\fI$xidst\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR,
+\&\fI@fieldsfornode\fR);
+.PP
+$node\->\fIDrawConnections()\fR;
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This package contains data about a twins node. Twins node is
+a special node between the parent and the twins.
+.IP "\fBnew\fR(\fI%params\fR);" 4
+.IX Item "new(%params);"
+Construct a new node from the given parameters.
+.IP "\fBDrawNode\fR(\fI$xdist\fR, \fI$ydist\fR, \fI$belowtextfont\fR, \fI$abovetextfont\fR, \fI@fieldsfornode\fR);" 4
+.IX Item "DrawNode($xdist, $ydist, $belowtextfont, $abovetextfont, @fieldsfornode);"
+Output the command to draw this node. The parameters are
+distances between the nodes (in psunits).
+.IP "\fBDrawConnections\fR();" 4
+.IX Item "DrawConnections();"
+Draw the connections from the given node to its descendants and
+the parent
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The calling program should define \fB$main::DEBUG\fR and set it to 0
+or 1.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+\&\fIpedigree\fR\|(1), \fIPedigree\fR\|(3)
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, Leila Akhmadeeva, 2007