summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-06-27 20:22:56 +0000
committerKarl Berry <karl@freefriends.org>2022-06-27 20:22:56 +0000
commitf53463f85287ae39aca758fb293f1de82dcb0580 (patch)
treee66ca756398c58f6a9e25d97fc5e29c1cf27b5bf
parenteec9dfedd34242b8479e29a4d91ea627a2e90770 (diff)
familytree (27jun22)
git-svn-id: svn://tug.org/texlive/trunk@63739 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/familytree/DEPENDS.txt3
-rw-r--r--Master/texmf-dist/doc/latex/familytree/LICENSE339
-rw-r--r--Master/texmf-dist/doc/latex/familytree/README.md212
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/Makefile37
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/familytree-ja.tex287
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/Makefile74
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig-ja.tex23
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Hidetada.tex5
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Ieyasu.tex24
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1base.tex4
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2Hidetada.tex28
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2base-ja.tex9
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2cfg.tex6
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2ival-ja.tex5
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Hidetada.tex29
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Iemitsu.tex28
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Ietsuna.tex16
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Hidetada.tex31
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Ogou.tex6
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/figs/figTY-ja.tex41
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/ft-gens-ja.tex305
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/ft-individual-ja.tex456
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/ft-lib-ja.tex86
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/ft-marriage-ja.tex219
-rw-r--r--Master/texmf-dist/doc/latex/familytree/doc-ja/ft-sibling-ja.tex181
-rw-r--r--Master/texmf-dist/doc/latex/familytree/familytree-ja.pdfbin0 -> 504083 bytes
-rw-r--r--Master/texmf-dist/doc/latex/familytree/familytree.pdfbin0 -> 178069 bytes
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/Makefile76
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig.tex9
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig1Robert1.tex19
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig1Robert2.tex3
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig2base.tex13
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig2ival.tex5
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig2sis.tex25
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3Lily1.tex16
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3Lily2.tex17
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3Lily3.tex20
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3Lily4.tex18
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3Robert1.tex12
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3Robert2.tex13
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig3sis.tex11
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig4HenryVIII.tex20
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig4Lily1.tex10
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig4Lily2.tex12
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig4Lily3.tex12
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig4Lily4.tex12
-rw-r--r--Master/texmf-dist/doc/latex/familytree/figs/fig4Robert.tex23
-rw-r--r--Master/texmf-dist/doc/latex/familytree/fonts.tex3
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai.pdfbin0 -> 184895 bytes
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/0Ichi.tex43
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/0sis.tex77
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/1Chacha.tex64
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/2Hatsu.tex76
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/3Gou.tex104
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/Asai.tex53
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Asai/Makefile19
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Crawley.pdfbin0 -> 19860 bytes
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Crawley.tex258
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Makefile24
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa.pdfbin0 -> 182522 bytes
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Makefile20
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Tokugawa.tex299
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-10th.tex25
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-11th.tex11
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-12th.tex14
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-13th.tex6
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-14th.tex1
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-15th.tex3
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-1st.tex1
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-2nd.tex10
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-3rd.tex22
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-4th.tex35
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-5th.tex27
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-6th.tex21
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-7th.tex14
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-8th.tex9
-rw-r--r--Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-9th.tex15
-rw-r--r--Master/texmf-dist/source/latex/familytree/Makefile51
-rw-r--r--Master/texmf-dist/source/latex/familytree/cmd.mk45
-rw-r--r--Master/texmf-dist/source/latex/familytree/familytree.dtx260
-rw-r--r--Master/texmf-dist/source/latex/familytree/familytree.ins12
-rw-r--r--Master/texmf-dist/source/latex/familytree/ft-gens.dtx365
-rw-r--r--Master/texmf-dist/source/latex/familytree/ft-individual.dtx760
-rw-r--r--Master/texmf-dist/source/latex/familytree/ft-lib.dtx247
-rw-r--r--Master/texmf-dist/source/latex/familytree/ft-marriage.dtx374
-rw-r--r--Master/texmf-dist/source/latex/familytree/ft-sibling.dtx333
-rw-r--r--Master/texmf-dist/tex/latex/familytree/familytree.sty1004
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/familytree.tlpsrc0
90 files changed, 7507 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/familytree/DEPENDS.txt b/Master/texmf-dist/doc/latex/familytree/DEPENDS.txt
new file mode 100644
index 00000000000..51174fac2fe
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/DEPENDS.txt
@@ -0,0 +1,3 @@
+# RequirePackage, CTAN pkgs
+relsize
+xparse
diff --git a/Master/texmf-dist/doc/latex/familytree/LICENSE b/Master/texmf-dist/doc/latex/familytree/LICENSE
new file mode 100644
index 00000000000..d159169d105
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/LICENSE
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/Master/texmf-dist/doc/latex/familytree/README.md b/Master/texmf-dist/doc/latex/familytree/README.md
new file mode 100644
index 00000000000..944c10aab82
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/README.md
@@ -0,0 +1,212 @@
+
+# familytree package
+`jiro1010senju AT gmail DOT com`
+
+---
+```
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+```
+---
+
+Some LaTeX macros (or commands) to draw a family tree.
+
+
+# Install
+
+`$ make Dir=/tmp`
+
+You will get these files under `/tmp`.
+```
+familytree.sty
+familytree.pdf
+familytree-ja.pdf
+Crawley.pdf
+Asai.pdf
+Tokugawa.pdf
+```
+
+`$ make InstallDir=/tmp/texmf-dist install`
+
+You will get these under `/tmp/texmf-dist`.
+
+```
+tex/latex/familytree.sty
+source/latex/familytree/familytree.pdf
+source/latex/familytree/familytree-ja.pdf
+source/latex/familytree/Crawley.pdf
+source/latex/familytree/Asai.pdf
+source/latex/familytree/Tokugawa.pdf
+```
+
+
+# Usage
+
+1.
+```
+\indvdldef{Harry}{Harry}
+\indvdldef{Lily}{Lily}[\matrilineal]
+\pcdef{Potters}{Lily}{Harry}
+\fbox{\usebox{\Potters}}
+```
+
+2.
+```
+\indvdldef{Petunia}{Petunia}
+\indvdldef{Lily}{Lily}
+\sblngdef{sis}{Petunia,Lily}
+\fbox{\usebox{\sis}}
+```
+
+3.
+```
+\indvdldef{Lily}{Lily}
+\indvdldef[\blank]{James}{James Potter}[\haschild]
+\mrrgdef{Potters}{James}{Lily}{}
+\fbox{\usebox{\Potters}}
+```
+
+4.
+```
+\indvdldef{Petunia}{Petunia}
+\indvdldef[\blank]{Vernon}{Vernon Dursley}[\haschild]
+\mrrgdef{Dursleys}{Vernon}{Petunia}{}
+%\fbox{\usebox{\Dursleys}}
+
+\newsavebox{\boxA}
+\savebox{\boxA}{\hbox{Petunia}}
+\indvdldef{Lily}{\hbox to \wd\boxA{Lily}}
+\indvdldef[\blank]{James}{James Potter}[\haschild]
+\mrrgdef{Potters}{}{Lily}{James}[\dimexpr\wd\Vernon - \wd\James\relax]
+%\fbox{\usebox{\Potters}}
+
+\sblngdef{sis}{Dursleys,ivali,Potters}
+\fbox{\usebox{\sis}}
+```
+
+
+# Syntax
+
+To define an individual,
+```
+\indvdldef
+ [child mark]
+ {new box name}
+ [title]
+ {individual name}
+ [list of additional info or attributes]
+ [maleline xlength]
+```
+
+- child mark
+ + `\ftbiological`
+ + `\ftadopted`
+ + `\fttop`
+ + `\ftblank`
+
+- attribute
+ + `\fthaschild`
+ + `\ftprivate`
+ + `\ftmaleline, \ftfemaleline, \ftpatrilineal, \ftmatrilineal`
+
+---
+
+To define the siblings,
+```
+\sblngdef
+ {new box name}
+ {name list of individual boxes}
+```
+
+You can insert the "interval box" in the name list, to make the
+spaces between the siblings.
+
+To define the interval box,
+```
+\ivaldef
+ {box-name}
+ {length}
+```
+
+There are three pre-defined interval boxes, `\ival`, `\ivali`, and `\ivalii`.
+
+---
+
+To define a parent-child relationship,
+```
+\pcdef
+ {new box name}
+ {parent box name}
+ {child box name}
+```
+
+To define the generations,
+```
+\gensdef
+ {new box name}
+ {parent box name}
+ {list of connection-pair}
+```
+
+```
+connection-pair :=
+ {individual box name in the parent box}
+ {child box name}
+```
+
+---
+
+To define a married couple or the spouses,
+```
+\mrrgdef
+ {new box name}
+ {spouse list A}
+ {oneself}
+ {spouse list B}
+ [childline xlength]
+```
+
+
+Configuration
+-------------
+
+```
+\nameboxcfg
+ {space from the child mark}
+ {font}
+ {space to the maleline}
+ {maleline length}
+
+\cmarkboxcfg
+ {space between two lines, for adopted}
+ {line length}
+
+\titleboxcfg
+ {indent}
+ {font}
+ {linestretch}
+ {vspace to the individual name}
+
+\optboxcfg
+ {vspace from the individual name}
+ {indent}
+ {font}
+ {linestretch}
+
+\sblngboxcfg
+ {space-length}
+```
+
+
+For more details, refer to `*.dtx`, `familytree.pdf` or `familytree-ja.pdf`,
+and `samples/` sub-dir.
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/Makefile b/Master/texmf-dist/doc/latex/familytree/doc-ja/Makefile
new file mode 100644
index 00000000000..4cfc10f8c36
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/Makefile
@@ -0,0 +1,37 @@
+
+Dir ?= /tmp
+export Dir
+InstallDir ?= ${Dir}/texmf-dist
+
+LATEX ?= platex -kanji=euc
+include ../cmd.mk
+Lo = '\def\Dir{'${Dir}'}'
+
+########################################
+
+Name = familytree
+Tgt = ${Dir}/${Name}-ja.pdf
+Tex = $(addsuffix -ja.tex, ${Name} ${Name} $(addprefix ft-, \
+ lib individual sibling gens marriage))
+
+########################################
+
+all: ${Tgt}
+
+clean:
+ ${RM} *~ ${Tgt}
+ ${MAKE} -C figs $@
+
+install:
+ install -m 444 -pD ${Dir}/${Name}-ja.pdf \
+ ${InstallDir}/source/latex/${Name}/${Name}-ja.pdf
+
+# it should be already generated by upper make
+# ${Dir}/${Name}.sty:
+
+${Dir}/${Name}-ja.pdf: ${Tex} ${Dir}/${Name}.sty \
+ ${figPdf} ${figPrint} ${figLilyPdf} ${figLilyPrint}
+ ${MAKE} -C figs all
+ $(call MakePdf,${Name}-ja,tex)
+
+-include priv.mk
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/familytree-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/familytree-ja.tex
new file mode 100644
index 00000000000..12c31edc335
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/familytree-ja.tex
@@ -0,0 +1,287 @@
+\iffalse
+Copyright 2022 Jiro Senju
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+\fi
+
+%\RequirePackage{plautopatch}
+% \documentclass[
+% draft,
+% jlreq_notes,open_bracket_pos=nibu_tentsuki
+% ]{jlreq}
+% jlreq and nameref don't co-work
+% \makeatletter
+% \show\section
+% \show\jlreq@headingcs@section
+% \patchcmd{\section}
+% {\@afterindenttrue}{\@afterindenttrue\def\@currentlabelname{#1}}
+% {}{\errmessage{patching section}}
+% \makeatother
+\documentclass[
+ draft
+]{jsarticle}
+\advance\evensidemargin 2zw
+\advance\oddsidemargin 2zw
+\advance\textwidth -2zw
+
+\usepackage{doc}
+\makeatletter
+% borrowd from ltxdoc.
+\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}}
+\def\cmd@to@cs#1#2{\char\number`#2\relax}
+\makeatother
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+
+\input{../fonts}
+
+\usepackage[dvipdfmx,final]{graphicx}
+\usepackage[final]{listings}
+\usepackage{jlisting}
+\lstset{basicstyle=\small\ttfamily\mcfamily,
+ language=TeX,
+ columns=[c]flexible,
+ tabsize=4,
+ %frame=tb,
+ keepspaces=true,
+ lineskip=-.1em,
+ belowskip=\smallskipamount}
+\usepackage{multicol}
+\usepackage{needspace}
+%
+% hyperref should come last
+\usepackage[dvipdfmx,final,pdfusetitle]{hyperref}
+\usepackage{pxjahyper}
+% CJKbookmarks=true
+% bookmarksdepth=section
+% pdffitwindow=true
+% pdfpagetransition=Dissolve
+% pdfstartview=FitB
+\hypersetup{
+ hyperfootnotes=false,
+ colorlinks=true,
+ linkcolor=blue,
+ % anchorcolor=black,
+ % citecolor=black,
+ % urlcolor=black,
+ bookmarks=true,
+ bookmarksnumbered=true,
+ setpagesize=false,
+ %pdftitle={},
+ %pdfauthor={},
+ pdfpagelayout=SinglePage,
+ pdfpagemode=UseOutlines,
+ pdfstartview=FitH
+}
+
+\usepackage{familytree}
+
+\makeatletter
+\def\meta@font@select{\slshape}
+\def\fps@table{htbp}
+\makeatother
+
+%\xspcode`\\=3% it doesn't help
+
+\renewcommand{\contentsname}{Ìܼ¡}
+\renewcommand{\tablename}{ɽ}
+\newcommand{\parag}[1]{%
+ \allowbreak%
+ \paragraph{#1}\nopagebreak\hskip0pt\nopagebreak%
+ \medskip%
+}
+\newcounter{CS}[section]
+\newcommand{\CS}{%
+ \ifnum\theCS=0%
+ control sequence%
+ \stepcounter{CS}%
+ \else%
+ CS%
+ \fi%
+}
+\newcommand{\srcfig}[2][]{%
+ {%
+ \noautoxspacing%
+ %\inhibitxspcode`¡Ë=2% is not helpful
+ \lstinputlisting{\Dir/#2print}%
+ \nopagebreak[4]%
+ }%
+ \nopagebreak[4]%
+ \hfil\includegraphics[#1]{\Dir/#2.pdf}%
+}
+\newcommand{\jslash}{~\slash{} \allowbreak}
+\newcommand{\IhadtoSplit}{%
+ Ť¤½èÍý¤òʬ³ä¤·Ï¢Â³¼Â¹Ô¤·¤Æ¤¤¤ë¤À¤±¤Î¡¢·è¤·¤ÆåºÎï¤Ç¤Ï¤Ê¤¤¹½Â¤¡£%
+ globalÊÑ¿ô¤ò¿ÍѤ·¤Æ¤ª¤ê¡¢¤è¤í¤·¤¯¤Ê¤¤¡£%
+ ¤À¤¬¡¢½èÍý¤¬Ä¹¤¤¤ÈÆɤߤˤ¯¤¤¤¿¤áʬ³ä¤·¤¿¡£%
+}
+\newcommand{\FamilyTree}{²È·Ï¿Þ}
+\newcommand{\Patrilineal}{Éã·Ï}
+\newcommand{\Matrilineal}{Êì·Ï}
+\newcommand{\MaleLine}{ÃË·Ï}
+\newcommand{\FemaleLine}{½÷·Ï}
+\newcommand{\InheritanceDiagram}{Áê³´Ø·¸ÀâÌÀ¿Þ}
+\let\tableautorefname=\tablename%
+\renewcommand{\subsectionautorefname}{}
+\newcommand{\refnm}[1]{%
+ \autoref{#1}¡Ö\nameref{#1}¡×%
+}
+
+\begin{document}
+\MakeShortVerb{\|}
+\GetFileInfo{familytree.sty}
+\title{{\spaceskip=1ex\textsf{familytree} package \fileversion}}
+\author{Àé½»¼£Ïº\\\texttt{\small jiro1010senju AT gmail DOT com}}
+\date{\filedate}
+\maketitle
+
+\FamilyTree
+
+³Æ¿Í¤òbox¤È¤·¤ÆÄêµÁ¤·¡¢³Æ¡¹¤ò´Ø·¸Àþ¤Ç¤Ä¤Ê¤°¡£
+¿Íʪ¤Ë¾ðÊó¤òÉղ乤ì¤Ð\InheritanceDiagram ¤È¤·¤Æ¤â»È¤¨¤ë¤À¤í¤¦¡£
+
+\begin{itemize}
+\item Éã·Ï\jslash Êì·Ï¤ËÂбþ
+\item ½Ä½ñ¤­¤ËÂбþ¡Ê|jlreq.cls|¤Î¤ß³Îǧ¡Ë
+\end{itemize}
+\bigskip
+
+¡ÊËÜʸ½ñ¤Ï±Ñ¸ìÈÇ|dtx|¤«¤éÀâÌÀÉôʬ¤òÈ´¤­½Ð¤·¤¿¤â¤Î¤Ç¤¢¤ë¡Ë
+\bigskip
+
+\setcounter{tocdepth}{4}
+\columnseprule=\arrayrulewidth
+\begin{multicols}{2}
+\tableofcontents
+\end{multicols}
+\bigskip
+
+\setcounter{secnumdepth}{0}
+\section{¤Ï¤¸¤á¤Ë}
+
+\FamilyTree ¤Ï¤¿¤Þ¤Ëį¤á¤ë¤È¶½Ì£¿¼¤¤¡£
+Îò»Ë¤«¤é¤Î±Æ¶Á¤â¤¢¤ë¤È»×¤¦¤¬¡¢À¾ÍΤǤϼ«Ê¬¤«¤é»Ï¤áξ¿Æ¤Î¤ß¤òé¤ê¡¢¤³¤ì¤ò
+·«¤êÊÖ¤¹·Á¼°¤¬Â¿¤¤¤½¤¦¤À¡£2¤Î¤Ù¤­¾è¤Ç¿Íʪ¤¬Áý¤¨¤Æ¹Ô¤¯¤Î¤Ç¸«¤¿
+ÌܤΥХé¥ó¥¹¤ÏºÎ¤ì¤Æ¤¤¤ë¡£
+¹ñÆâ¤Ç¤Ï»ÏÁĤ«¤é»Ï¤á¤ë\Patrilineal ¿Þ
+¡Ê\MaleLine ¿Þ¡Ë
+¤¬Â¿¤¤¤è¤¦¤Ë»×¤¦¡£\Patrilineal ¤Î¤ß¤òé¤ì¤Ð¡¢¿Þ¤ÏÈæ³ÓŪñ½ã¤Ë¤Ê¤ë¤¬¡¢
+¶½Ì£¿¼¤µ¤ÏȾ¸º¤¹¤ë¡£
+·»Äï»ÐËå´Ø·¸¤Î¤ß¤Ê¤é¤ºº§°ù´Ø·¸¤â´Þ¤á¤ë¤È¡¢¶½Ì£¤òÂ礤¤Ë¤½¤½¤é¤ì¤ë¿Þ¤Ë¤Ê
+¤ë¤¬¡¢Ê£»¨¤µ¤ÏÈôÌöŪ¤ËÁýÂ礹¤ë¡£
+
+Graphviz (|dot(1)|)¤ò»È¤Ã¤Æ¤â¿Þ¤ÏÉÁ¤±¤ë¤¬¡¢¸«¤ä¤¹¤¯¤¹¤ë¤Î¤ÏÆñ¤·¤¤¡£
+¤Þ¤¿¡¢|dot(1)|¤Ï¹ñÆâ¤ÇÍѤ¤¤é¤ì¤ëľÀþŪ¤Ê²È·Ï¿Þ¤Ë¤ÏÉÔ¸þ¤­¤Ç¤Ï¤Ê¤¤¤«¤È»×¤¦¡£
+Ê£»¨¤Ê\FamilyTree ¤Ç¤â´Öñ¤ËÉÁ¤±¤Ê¤¤¤«¤È»îºî¤·¤¿¤Î¤¬Ëܥѥ屡¼¥¸¤Ç¤¢¤ë¡£
+Ãø¼Ô¤ÎLatex¤Î·Ð¸³¤Ï¤½¤ì¤Û¤É¿¤¯¤Ê¤¤¤¬¡¢
+Ëܥѥ屡¼¥¸¤¬²È·Ï¿Þ¤òÐíâפ¹¤ë¾ì¹ç¤Î°ì½õ¤Ë¤Ê¤ì¤Ð¹¬¤¤¤Ç¤¢¤ë¡£
+¥³¥á¥ó¥È¤ä²þÁ±Äó°ÆÅù¤âÂç´¿·Þ¤Ç¤¢¤ë¡£
+
+\subsection{¼ÂÁõ¤Ë¤Ä¤¤¤Æ}
+
+´ðËÜŪ¤ËÁ´¤Æ¤Î\CS ̾¤Ë¤Ïprefix |ft|¤òÉղ䷤Ƥ¤¤ë¡£
+¤·¤«¤·¡¢ÍøÊØÀ­¤ä»ëǧÀ­¤¬µ¾À·¤Ë¤Ê¤ë¤¿¤á¡¢
+prefix¤ò½ü¤¤¤¿alias/synonym¤â|\let|¤ÇÄêµÁ¤¹¤ë¡£
+ÅöÁ³¤Ê¤¬¤éalias̾¤¬Ì¤»ÈÍѤʾì¹ç¤Ë¸Â¤ë¡£
+
+\CS ̾¤¬´ûÄêµÁ¤Çalias¤òÄêµÁ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï¡¢
+¤½¤Î»Ý|\message|¤¹¤ë¡£
+ËÜʸ½ñ¤Ç¤âprefix¤ò¾Ê¤¤¤¿alias̾¤òÍ¥ÀèŪ¤Ë»ÈÍѤϤ¹¤ë¤¬¡¢
+°ìÉô¤Î\CS ̾¤ÏprefixÉÕ¤­¤Î̾Á°¤ò»ÈÍѤ¹¤ë¡£
+\smallskip
+
+|dtx|¤ÏÊ£¿ô¤Ëʬ³ä¤·¤Æ¤¢¤ë¤¬¡¢
+À¸À®¤µ¤ì¤ë|sty|¤Ï°ì¤Ä¤Ç¤¢¤ë¡£
+ËÜʸ½ñ¤Ç¤Ï|ft-lib.dtx|¤òºÇ¸å¤ËºÜ¤»¤ë¤¬|sty|Æâ¤Ç¤ÏËÁƬ¤Ë°ÌÃÖ¤¹¤ë¡£
+
+|dtx|¤Ë¤Ï¹ÔÈÖ¹æ¤òÉղ乤뵡ǽ¤¬¤¢¤ë¤¬¡¢¤¢¤¨¤ÆÄÙ¤·¤Æ¤¢¤ë¡£
+Ê£¿ô¤¢¤ë|dtx|¤Î½ç½ø¤òÊѹ¹¤·¤Æ¤¢¤ë¤¿¤á¤À¡£
+¤½¤ì¤¾¤ì¤Î|dtx|¤ÎËÁƬ¤Ç¥«¥¦¥ó¥¿¤ËÃͤòÆþ¤ìľ¤·¤Æ¤ä¤ì¤Ð¡¢¤½¤ì¤é¤·¤¤¹Ô
+ÈÖ¹æ¤Ï½ÐÎϤǤ­¤ë¤¬¡¢Àµ³Î¤ÊÃͤò½¦¤¤½Ð¤¹¤Î¤Ï̵Íý¤¬¤¢¤ë¤¿¤á»ß¤á¤¿¡£
+|ins|¤«¤é|sty|¤òÀ¸À®¤·¤¿ºÝ¤Î|log|¤Ë¹Ô¿ô¤¬»Ä¤µ¤ì¤ë¤¬¡¢¤¢¤Æ¤Ë¤Ê¤é¤Ê¤¤
+¿ô»ú¤À¤Ã¤¿¡£
+\smallskip
+
+|xparse|¤ò»ÈÍѤ·¤Æ¤¤¤ë¤¿¤áoption°ú¿ô¤ÏÀèƬ¤Ë¸Â¤é¤Ê¤¤¡£°ú¿ô¤ò°Ï¤à³ç¸Ì¤Ï
+Ŭµ¹»È¤¤Ê¬¤±¤ëɬÍפ¬¤¢¤ë¡£
+\bigskip
+
+Åö½é¤ÏÁ´¤Æ|\hbox|¡¢|\vbox|¡¢¤â¤·¤¯¤Ï|tabular|¤Ç½èÍý¤Ç¤­¤ë¤È»×¤Ã¤Æ¤¤¤¿
+¤¬¡¢¤½¤Î¸å¤ÎÀþ¤ò¤Ä¤Ê¤²¤ëÃʳ¬¤Çº¤¤Ã¤¿¡£
+glueÅù¤Ë¤è¤ê
+|platex|¤¬°ÌÃÖ¤òÄ´À°¤·¤Æ¤¯¤ì¤ë¤Î¤ÇÀܳÅÀ¤¬°ÜÆ°¤·¤Æ¤·¤Þ¤¤¡¢
+ÈÆÍÑŪ\jslash ÉáÊ×Ū¤ËÀþ¤ò¤Ä¤Ê¤²¤é¤ì¤Ê¤¤¤Î¤À¡£
+TikZÅù¤Ç¤ÏºÂɸÄêµÁ¤äºÂɸ´ÖÀþʬÉÁ²è¤ß¤¿¤¤¤Ê¤³¤È¤â¤Ç¤­¤ë¤Î¤À¤í¤¦¤«¡£
+ʬ¤«¤é¤Ê¤¤¡£
+Àþ¤ò¤Ä¤Ê¤²¤ë¤¿¤á¤Ë¤Ï|picture|¤òÁªÂò¤»¤¶
+¤ë¤òÆÀ¤Ê¤«¤Ã¤¿¡£Àþ¤òÉÁ¤¯¤¿¤á¤È¸À¤¦¤è¤ê¤â¡¢ÉÁ¤¤¤¿Àþ¤ò¤Ä¤Ê¤²¤ë¤¿¤á¤Î
+layoutÌÜŪ¤À¡£
+
+depth¤Î°·¤¤¤Ë¤âº¤¤Ã¤¿¡¢¤È¸À¤¦¤«»ä¤Ë¤ÏÃμ±¡¢·Ð¸³¤¬Â­¤ê¤Ê¤«¤Ã¤¿¡£
+Ëܥѥ屡¼¥¸¤Ç¤Ïbox¤òÊ£¿ôºîÀ®¤·¡¢|picture|¤Ë¤è¤êÇÛÃÖ¤¹¤ë¤¬¡¢¤³¤³¤Ç
+depth¤ò°Õ¼±¤¹¤ëɬÍפ¬¤¢¤Ã¤¿¡£
+
+½Ä½ñ¤­Âбþ¤Ç¤âdepth¤Ï½ÅÍפÀ¤Ã¤¿¡£²£½ñ¤­¤Ç¤Ïfont¤¬»ý¤Ä¡¢±Ñ»ú¤ÈƱÍͤÎ
+depth¤À¤¬¡¢½Ä½ñ¤­¤Ç¤ÏÏ»ú¤ÎÉýȾʬ¤¬depth¤Ë¤Ê¤ë¡£
+¤³¤ÎÊÕ¤Ïñ¤Ë»ä¤¬ÃΤé¤Ê¤«¤Ã¤¿¤È¸À¤¨¤Ð¤½¤ì¤Þ¤Ç¤Ê¤Î¤À¤¬¡¢
+¤º¤¤¤Ö¤ó¼ê´Ö¤¬¤«¤«¤Ã¤¿¡£
+
+\subsection{¹½Â¤}
+
+¿Þ¤ò¹½À®¤¹¤ëÍ×ÁÇËè¤Ëbox¤È¤·¤ÆÄêµÁ¤·¡¢
+¤½¤ì¤é¤òÏ¢·ë¤¹¤ë¡£
+¿Íʪ´Ö¤òÀþ¤Ç¤Ä¤Ê¤°¾ì¹ç¤ËÈ÷¤¨¡¢
+boxÄêµÁ»þ¤ËÀܳÅÀ¤ÎºÂɸ¤òÊÌÅÓÄêµÁ¤·¤Æ¤ª¤¯¡£
+
+¿Þ¤Î¹½À®Í×ÁǤˤϼ¡¤Î¤â¤Î¤¬¤¢¤ë¡£
+
+\begin{enumerate}
+\needspace{2\baselineskip}
+\item ¿Íʪbox
+ \begin{itemize}
+ \item ¼Â»Ò¡¢ÍÜ»ÒÅù¤òɽ¤¹child mark
+ \item ¸ª½ñ¤­
+ \item ¿Íʪ̾
+ \item \Patrilineal ¿Þ\jslash\Matrilineal ¿Þ¤ËÍѤ¤¤ëmaleline\slash femaleline
+ \item ÉղþðÊó\par
+ À¸Ë×ǯ¡¢ÊÌ̾¤Ê¤É
+ \end{itemize}
+
+\item ·»Äï»ÐËåbox
+ \begin{itemize}
+ \item ¤½¤ì¤¾¤ì¤Îchild mark¤ò¤Ä¤Ê¤°¼ÂÀþ
+ \item ¿Íʪ̾¤Î´Ö¤Ë´Ö³Ö¤òÀߤ±¤ë¤¿¤á¤Îinterval box
+ \end{itemize}
+
+\item º§°ùbox
+ \begin{itemize}
+ \item Æó¼Ô¤ò¤Ä¤Ê¤°marriage line¡ÊÆó½ÅÀþ¡Ë
+ \end{itemize}
+
+\item ¿Æ»Ò¤Þ¤¿¤ÏÆóÀ¤Âåbox
+\end{enumerate}
+\bigskip
+
+°Ê²¼¡¢Í×ÁÇËè¤ËÀâÌÀ¤¹¤ë¡£
+
+\setcounter{secnumdepth}{4}
+\include{ft-individual-ja}
+\include{ft-sibling-ja}
+\include{ft-gens-ja}
+\include{ft-marriage-ja}
+\include{ft-lib-ja}
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/Makefile b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/Makefile
new file mode 100644
index 00000000000..a145c5ccd1f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/Makefile
@@ -0,0 +1,74 @@
+
+Dir ?= /tmp
+export Dir
+
+LATEX ?= platex -kanji=euc
+include ../../cmd.mk
+Lo = '\def\Dir{'${Dir}'}'
+
+Fig = fig1base fig1Ieyasu fig1Hidetada
+Fig += fig2base-ja fig2Hidetada fig2ival-ja fig2cfg
+Fig += fig3Hidetada fig3Ietsuna fig3Iemitsu
+Fig += fig4Hidetada fig4Ogou
+figLily = $(addprefix fig3Lily, 1 2 3 4) $(addprefix fig4Lily, 1 2 3 4)
+
+figTY = $(addsuffix T, ${Fig}) $(addsuffix Y, ${Fig})
+figTYPdf = $(addprefix ${Dir}/, $(addsuffix .pdf, ${figTY}))
+figPdf = $(addprefix ${Dir}/, $(addsuffix .pdf, ${Fig}))
+figPrint = $(addprefix ${Dir}/, $(addsuffix print.tex, ${Fig}))
+
+figLilyPdf = $(addprefix ${Dir}/, $(addsuffix .pdf, ${figLily}))
+figLilyPrint = $(addprefix ${Dir}/, $(addsuffix print.tex, ${figLily}))
+
+Tgt = ${figPdf} ${figPrint}
+
+########################################
+
+all: ${Tgt}
+
+clean:
+ ${RM} *~ ${Tgt}
+
+install:
+# do nothing
+
+########################################
+
+fig: ${figPdf}
+${figTYPdf}: Lo += '\def\figsrc{$(basename $<)}'
+${Dir}/%T.pdf: Lo += '\newif\ifmaketate\maketatetrue'
+${Dir}/%Y.pdf: Lo += '\newif\ifmaketate\maketatefalse'
+${Dir}/%T.pdf: %.tex figTY-ja.tex ${Dir}/${Name}.sty
+ $(call MakeFigPdf,$(basename $@),figTY-ja)
+ ebb $@
+${Dir}/%Y.pdf: %.tex figTY-ja.tex ${Dir}/${Name}.sty
+ $(call MakeFigPdf,$(basename $@),figTY-ja)
+ ebb $@
+
+${figPdf}: Lo = '\def\figsrc{$(notdir $(basename $@))}'
+${figPdf}: ${Dir}/%.pdf: fig-ja.tex ${Dir}/%T.pdf ${Dir}/%Y.pdf
+ $(call MakeFigPdf,$(basename $@),fig-ja)
+
+########################################
+
+untilComment = $(addprefix ${Dir}/, $(addsuffix print.tex, \
+ fig1Ieyasu fig2Hidetada fig3Hidetada fig4Hidetada))
+${untilComment}: ${Dir}/%print.tex: %.tex
+ sed -e '/^%$$/,$$d' $< | grep -v '^%' > $@
+
+noIndvdl = $(addprefix ${Dir}/, $(addsuffix print.tex, \
+ fig2ival-ja fig2cfg))
+${noIndvdl}: ${Dir}/%print.tex: %.tex
+ fgrep -vw indvdldef $< |\
+ fgrep -vx '' |\
+ $(call MakePrintTex, -) > $@
+
+# they should be already generated by upper make
+# ${figLilyPdf} ${figLilyPrint}:
+
+${Dir}/%Tprint.tex ${Dir}/%Yprint.tex: ${Dir}/%print.tex
+ cp -p $< $@
+${Dir}/%print.tex: %.tex
+ $(call MakePrintTex, $<) > $@
+
+-include priv.mk
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig-ja.tex
new file mode 100644
index 00000000000..8d01c647b1f
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig-ja.tex
@@ -0,0 +1,23 @@
+\documentclass[
+ %tate,
+ %landscape,
+ 12pt,
+ jlreq_notes,open_bracket_pos=nibu_tentsuki
+]{jlreq}
+\usepackage[dvipdfmx,final]{graphicx}
+%\renewcommand{\baselinestretch}{.5}
+\begin{document}
+\pagestyle{empty}
+\hfill
+%\begin{figure}
+\includegraphics{\figsrc T.pdf}
+%\caption{½Ä½ñ¤­}
+%\end{figure}
+\hfill
+%\begin{figure}
+\includegraphics{\figsrc Y.pdf}
+%\caption{²£½ñ¤­}
+%\end{figure}
+\hfill
+\hskip0pt
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Hidetada.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Hidetada.tex
new file mode 100644
index 00000000000..e43769f8c80
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Hidetada.tex
@@ -0,0 +1,5 @@
+\indvdldef{½¨Ãé}[ÆóÂå]{½¨Ãé}[\maleline]
+\fbox{\usebox{\½¨Ãé}}
+
+\indvdldef[\adopted]{¹ËµÈ}[¸ÞÂå]{¹ËµÈ}[À¸ÎàÎù¤ß¤ÎÎá,\maleline][3zw]
+\fbox{\usebox{\¹ËµÈ}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Ieyasu.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Ieyasu.tex
new file mode 100644
index 00000000000..755a2178647
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1Ieyasu.tex
@@ -0,0 +1,24 @@
+\indvdldef[\fttop]{²È¹¯}[½éÂå]{²È¹¯}
+\fbox{\usebox{\²È¹¯}}
+%
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ {%
+ \footnotesize%
+ \noautoxspacing%
+ \begin{tabular}{l|l}%
+ \boxsz{²È¹¯nameX}%
+ \boxsz{²È¹¯nameCX}%
+ \boxsz{²È¹¯nameCY}%
+ \end{tabular}%
+ }%
+}
+\ifmaketate
+ \tatechuyoko{\tblA}
+\else
+ \par
+ \bigskip
+ \tblA
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1base.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1base.tex
new file mode 100644
index 00000000000..d5ca0c6299d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig1base.tex
@@ -0,0 +1,4 @@
+\titleboxcfg{}{}{}{.1ex}
+\optboxcfg{1ex}{}{}{1}
+\indvdldef{A}[¸ª½ñ¤­]{¿Íʪ̾}[ÄɲþðÊó£±,ÄɲþðÊó£²]
+\fbox{\usebox{\A}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2Hidetada.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2Hidetada.tex
new file mode 100644
index 00000000000..4c6f4281959
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2Hidetada.tex
@@ -0,0 +1,28 @@
+\indvdldef{²È¸÷}[»°Âå]{²È¸÷}
+\indvdldef{ÃéĹ}{ÃéĹ¡Ê½Ù²Ï¡Ë}
+\indvdldef{ÀµÇ·}{ÀµÇ·¡ÊÊݲʡË}
+\sblngdef{½¨Ãé¤Î»Ò}{²È¸÷,ÃéĹ,ÀµÇ·}
+\fbox{\usebox{\½¨Ãé¤Î»Ò}}
+%
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ {%
+ \footnotesize%
+ \noautoxspacing%
+ \begin{tabular}{l|l}%
+ \boxsz{½¨Ãé¤Î»ÒnameCY}%
+ \boxsz{½¨Ãé¤Î»Ò²È¸÷nameCY}%
+ \boxsz{½¨Ãé¤Î»ÒÃéĹnameCY}%
+ \boxsz{½¨Ãé¤Î»ÒÀµÇ·nameCY}%
+ \end{tabular}%
+ }%
+}
+\ifmaketate
+ \tatechuyoko{\tblA}
+\else
+ \par
+ \bigskip
+ \tblA
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2base-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2base-ja.tex
new file mode 100644
index 00000000000..9a37de71c0a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2base-ja.tex
@@ -0,0 +1,9 @@
+\indvdldef{A}{¿Íʪ̾}[\maleline]
+\fbox{\usebox{\A}}
+
+\indvdldef{B}{Ť¤¿Íʪ̾}[\maleline]
+\fbox{\usebox{\B}}
+\bigskip
+
+\sblngdef{AB·»Äï}{A,B}
+\fbox{\usebox{\AB·»Äï}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2cfg.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2cfg.tex
new file mode 100644
index 00000000000..a862ea78369
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2cfg.tex
@@ -0,0 +1,6 @@
+\indvdldef{²È¸÷}[»°Âå]{²È¸÷}
+\indvdldef{ÃéĹ}{ÃéĹ¡Ê½Ù²Ï¡Ë}
+\indvdldef{ÀµÇ·}{ÀµÇ·¡ÊÊݲʡË}
+\sblngboxcfg{4zh}
+\sblngdef{²È¸÷¤Î·»Äï}{²È¸÷,ÃéĹ,ÀµÇ·}
+\fbox{\usebox{\²È¸÷¤Î·»Äï}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2ival-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2ival-ja.tex
new file mode 100644
index 00000000000..199c14957aa
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig2ival-ja.tex
@@ -0,0 +1,5 @@
+\indvdldef{²È¸÷}[»°Âå]{²È¸÷}
+\indvdldef{ÃéĹ}{ÃéĹ¡Ê½Ù²Ï¡Ë}
+\indvdldef{ÀµÇ·}{ÀµÇ·¡ÊÊݲʡË}
+\sblngdef{²È¸÷¤Î·»Äï}{²È¸÷,ivalii,ÃéĹ,ival,ÀµÇ·}
+\fbox{\usebox{\²È¸÷¤Î·»Äï}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Hidetada.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Hidetada.tex
new file mode 100644
index 00000000000..fd35b564972
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Hidetada.tex
@@ -0,0 +1,29 @@
+\indvdldef{²È¸÷}[»°Âå]{²È¸÷}[\maleline]
+\indvdldef{ÃéĹ}{ÃéĹ¡Ê½Ù²Ï¡Ë}
+\indvdldef{ÀµÇ·}{ÀµÇ·¡ÊÊݲʡË}
+\sblngdef{½¨Ãé¤Î»Ò}{²È¸÷,ÃéĹ,ÀµÇ·}
+
+\indvdldef{½¨Ãé}[ÆóÂå]{½¨Ãé}[\maleline]
+\pcdef{½¨Ãé¿Æ»Ò}{½¨Ãé}{½¨Ãé¤Î»Ò}
+\fbox{\usebox{\½¨Ãé¿Æ»Ò}}
+%
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ {%
+ \footnotesize%
+ \noautoxspacing%
+ \begin{tabular}{l|l}%
+ \boxsz{½¨Ãé¿Æ»ÒnameCY}%
+ \boxsz{½¨Ãé¿Æ»Ò½¨Ãé¤Î»ÒY}%
+ \end{tabular}%
+ }%
+}
+\ifmaketate
+ \raisebox{6.5zh}{\tatechuyoko{\tblA}}
+\else
+ \par
+ \bigskip
+ \tblA
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Iemitsu.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Iemitsu.tex
new file mode 100644
index 00000000000..17d3bf5e4c1
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Iemitsu.tex
@@ -0,0 +1,28 @@
+\indvdldef[\adopted]{¹ËµÈ}[¸ÞÂå]{¹ËµÈ}
+
+\indvdldef{¹ËË­}{¹ËË­¡Ê¸å¤ÎÏ»Âå ²ÈÀë¡Ë}
+\indvdldef{À¶Éð}{À¶Éð¡Ê¾¾Ê¿¡Ë}
+\sblngdef{¹Ë½Å¤Î»Ò}{¹ËË­,À¶Éð}
+
+\indvdldef{²È¹Ë}[»ÍÂå]{²È¹Ë}[\maleline]
+\indvdldef{¹Ë½Å}{¹Ë½Å¡Ê¹ÃÉÜ¡Ë}[\maleline]
+\indvdldef{ÆÁ¾¾}{ÆÁ¾¾¡Ê¸å¤Î¸ÞÂå ¹ËµÈ¡Ë}
+\sblngdef{²È¸÷¤Î»Ò}{²È¹Ë,ival,¹Ë½Å,ÆÁ¾¾}
+
+\gensdef{²È¹Ë¹ËµÈ}{²È¸÷¤Î»Ò}{%
+ {²È¹Ë}{¹ËµÈ},%
+ {¹Ë½Å}{¹Ë½Å¤Î»Ò}%
+}
+
+\indvdldef{²È¸÷}[»°Âå]{²È¸÷}[\maleline]
+\indvdldef{ÃéĹ}{ÃéĹ¡Ê½Ù²Ï¡Ë}
+\indvdldef{ÀµÇ·}{ÀµÇ·¡ÊÊݲʡË}
+\sblngdef{½¨Ãé¤Î»Ò}{²È¸÷,ÃéĹ,ÀµÇ·}
+
+\gensdef{²È¸÷²È¹Ë}{½¨Ãé¤Î»Ò}{%
+ {²È¸÷}{²È¹Ë¹ËµÈ}%
+}
+
+\indvdldef{½¨Ãé}[ÆóÂå]{½¨Ãé}[\maleline]
+\pcdef{½¨Ãé²È¸÷}{½¨Ãé}{²È¸÷²È¹Ë}
+\fbox{\usebox{\½¨Ãé²È¸÷}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Ietsuna.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Ietsuna.tex
new file mode 100644
index 00000000000..504a92a7408
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig3Ietsuna.tex
@@ -0,0 +1,16 @@
+\indvdldef[\adopted]{¹ËµÈ}[¸ÞÂå]{¹ËµÈ}
+
+\indvdldef{¹ËË­}{¹ËË­¡Ê¸å¤ÎÏ»Âå ²ÈÀë¡Ë}
+\indvdldef{À¶Éð}{À¶Éð¡Ê¾¾Ê¿¡Ë}
+\sblngdef{¹Ë½Å¤Î»Ò}{¹ËË­,À¶Éð}
+
+\indvdldef{²È¹Ë}[»ÍÂå]{²È¹Ë}[\maleline]
+\indvdldef{¹Ë½Å}{¹Ë½Å¡Ê¹ÃÉÜ¡Ë}[\maleline]
+\indvdldef{ÆÁ¾¾}{ÆÁ¾¾¡Ê¸å¤Î¸ÞÂå ¹ËµÈ¡Ë}
+\sblngdef{²È¸÷¤Î»Ò}{²È¹Ë,ival,¹Ë½Å,ÆÁ¾¾}
+
+\gensdef{²È¹Ë¹ËµÈ}{²È¸÷¤Î»Ò}{%
+ {²È¹Ë}{¹ËµÈ},%
+ {¹Ë½Å}{¹Ë½Å¤Î»Ò}%
+}
+\fbox{\usebox{\²È¹Ë¹ËµÈ}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Hidetada.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Hidetada.tex
new file mode 100644
index 00000000000..c7523c97b24
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Hidetada.tex
@@ -0,0 +1,31 @@
+\indvdldef{½¨Ãé}[ÆóÂå]{½¨Ãé}
+\indvdldef[\blank]{¾®É±}{¾®É±¡Ê±©¼Æ¡Ë}[¤ª¤Ò¤á ºÇ½é¤Î±ïÁÈ »àÊÌ]
+\indvdldef[\blank]{¹¾}{¹¾¡ÊÀõ°æ¡Ë}[¾®ÆÄ ±÷¹¾Í¿,¤ª¤´¤¦ ¤ª¤¨¤è,\haschild]
+\indvdldef[\blank]{±÷ÀÅ}{±÷ÀÅ¡Ê¿ÀÈø¡Ë}[¤·¤º¤« ¤ª¤·¤º Ë׸妼¼,\private,%
+ \haschild]
+\mrrgdef{½¨ÃéÉ×ÉØ}{}{½¨Ãé}{¾®É±,¹¾,±÷ÀÅ}
+\fbox{\usebox{\½¨ÃéÉ×ÉØ}}
+%
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ {%
+ \footnotesize%
+ \noautoxspacing%
+ \begin{tabular}{l|l}%
+ \boxsz{½¨ÃéÉ×ÉØnameCY}%
+ \boxsz{½¨ÃéÉ×Éؽ¨ÃénameCY}%
+ \boxsz{½¨ÃéÉ×Éؾ®É±mrrgCY}%
+ \boxsz{½¨ÃéÉ×Éع¾mrrgCY}%
+ \boxsz{½¨ÃéÉ×Éر÷ÀÅmrrgCY}%
+ \end{tabular}%
+ }%
+}
+\ifmaketate
+ \raisebox{6.5zh}{\tatechuyoko{\tblA}}
+\else
+ \par
+ \bigskip
+ \tblA
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Ogou.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Ogou.tex
new file mode 100644
index 00000000000..a1e09676069
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/fig4Ogou.tex
@@ -0,0 +1,6 @@
+\indvdldef{¹¾}{¹¾¡Ê¤´¤¦¡Ë}
+\indvdldef[\blank]{°ìÀ®}{º´¼£°ìÀ®}[ºÇ½é¤ÎÉ×]
+\indvdldef[\blank]{½¨¾¡}{Ë­¿Ã½¨¾¡}[ÆóÈÖÌÜ,\haschild]
+\indvdldef[\blank]{½¨Ãé}{ÆÁÀÃé}[»°ÈÖÌÜ,\haschild]
+\mrrgdef{¹¾É×ÉØ}{°ìÀ®,½¨¾¡,ivalii,½¨Ãé}{¹¾}{}
+\fbox{\usebox{\¹¾É×ÉØ}}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/figTY-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/figTY-ja.tex
new file mode 100644
index 00000000000..72863117b83
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/figs/figTY-ja.tex
@@ -0,0 +1,41 @@
+\ifmaketate
+\documentclass[
+ tate,
+ %landscape,
+ 12pt,
+ jlreq_notes,open_bracket_pos=nibu_tentsuki
+]{jlreq}
+\else
+\documentclass[
+ %tate,
+ %landscape,
+ 12pt,
+ jlreq_notes,open_bracket_pos=nibu_tentsuki
+]{jlreq}
+\fi
+
+\input{../../fonts}
+%\usepackage{plext}
+\usepackage{familytree}
+\makeatletter
+\let\nameuse=\@nameuse
+\let\stript=\strip@pt
+\makeatother
+\newlength{\len}
+\newsavebox{\abox}
+\newcommand{\nbox}[2][]{%
+ \savebox{\abox}{#2}%
+ \len=\ht\abox%
+ \advance\len \dp\abox%
+ \begin{picture}(\stript\wd\abox,\stript\ht\abox)%
+ \put(0,-\stript\dp\abox){\framebox(\stript\wd\abox,\stript\len){}}%
+ \put(0,0){\usebox{\abox}}%
+ #1%
+ \end{picture}%
+ H \the\ht\abox, D \the\dp\abox%
+}
+%\renewcommand{\baselinestretch}{.5}
+\begin{document}
+\pagestyle{empty}
+\input{\figsrc}
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-gens-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-gens-ja.tex
new file mode 100644
index 00000000000..b3784070cb3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-gens-ja.tex
@@ -0,0 +1,305 @@
+\iffalse
+Copyright 2022 Jiro Senju
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+\fi
+
+\section{¿Æ»Ò´Ø·¸¡¢ÆóÀ¤Âå (\texttt{ft-gens.dtx})}
+
+\DescribeMacro{\pcdef}
+\cmd{\pcdef
+ \marg{new box name}
+ \marg{parent box name}
+ \marg{child box name}
+}
+\medskip
+
+¿Æ»Ò´Ø·¸¡Êparent-child relationship¡Ë¤òÄêµÁ¤¹¤ë¡£
+
+»ØÄꤵ¤ì¤¿\meta{parent box}¤È\meta{child box}¤ò·ëÀþ¤·¤¿¿·¤¿¤Êbox¤ò
+\meta{new box name}¤ÇÄêµÁ¤¹¤ë¡£
+
+\meta{parent box}¤Ë»ØÄê¤Ç¤­¤ë¤Î¤Ï¡¢»Ò¤Ø¤Ä¤Ê¤¬¤ëÀþ¤¬°ìËܤÀ¤±¤Îbox¤Ë¸Â¤é
+¤ì¤ë¡£Î㤨¤Ð¡¢|\maleline|¡ÊÁêÅö¡Ë¤Î°À­¤òÍ¿¤¨
+|\indvdldef|¤ÇºîÀ®¤·¤¿box¤Ç¤¢¤ë¡£
+¤Þ¤¿\meta{child box}¤Ë»ØÄê¤Ç¤­¤ë¤Î¤Ï¿Æ¤Ø¤Ä¤Ê¤¬¤ëÀþ¤ò»ý¤Äbox¤Ë¸Â¤é¤ì¤ë¡£
+Î㤨¤Ð¡¢child mark¤Ë|\biological|¤ò»ØÄꤷ¤¿|\indvdldef|¤ÇºîÀ®¤·¤¿box¤Ç¤¢¤ë¡£
+
+|\pcdef|¤Ï¼¡¤Ëµó¤²¤ë|\gensdef|¤Î´Ê°×ÈǤǤ¢¤ë¡£
+\bigskip
+
+\DescribeMacro{\gensdef}
+\cmd{\gensdef
+ \marg{new box name}
+ \marg{parent box name}
+ \marg{list of connection-pair}
+}
+\smallskip
+
+\cmd{connection-pair :=\\
+\hspace{4em}\marg{individual box name in the parent box}\\
+\hspace{4em}\marg{child box name}
+}
+\medskip
+
+ÆóÀ¤Âå¤Î´Ø·¸¡Êgenerations¡Ë¤òÄêµÁ¤¹¤ë¡£
+
+\meta{connection-pair}¤È¤Ï¡¢°Ê²¼¤Î¤â¤Î¤òÁȤˤ·¤¿¤â¤Î¤Ç¤¢¤ë¡£
+
+\begin{enumerate}
+\item
+ \marg{parant box}Æâ¤Î¿Íʪbox̾
+\item
+ \marg{child box}̾
+\end{enumerate}
+
+¤³¤ÎÆó¤Ä¤Îbox¤Î\meta{box name}|nameCY|Ʊ»Î¤ò·ëÀþ¤¹¤ë¡£
+\smallskip
+
+\meta{child box}¤Ë¤Ï¡¢Á°½Ò¤Î|\pcdef|ƱÍͤˡ¢¿Æ¤Ø¤Ä¤Ê¤¬¤ëÀþ¤ò¡Ê°ìËÜ¡Ë»ý
+¤Äbox¤·¤«»ØÄê¤Ç¤­¤Ê¤¤¤¬¡¢\meta{parent box}¤Ë¤Ï»Ò¤Ø¤Ä¤Ê¤¬¤ëÀþ¤òÊ£¿ô
+»ý¤Ä¤â¤Î¤Ç¤â»ØÄê¤Ç¤­¤ë¡£¤É¤ÎÀþ¤È¤É¤Î\meta{child box}¤ò¤Ä¤Ê¤°¤«¤ò»ØÄꤹ
+¤ë¤Î¤¬\meta{connection-pair}¤Ç¤¢¤ë¡£
+
+ºîÀ®¤·¤¿box¤Îchild mark¤Ï¿Æbox¤Î¤½¤ì¤Ë°ìÃפ¹¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clearpage
+\subsection{Îã}
+
+\begin{enumerate}
+\itemsep=\bigskipamount
+\item
+\srcfig{fig3Hidetada}
+
+\clearpage
+\item
+\srcfig{fig3Ietsuna}
+
+\clearpage
+\item
+¾åÎãÆó¤Ä¤ò¤Ä¤Ê¤°¼ê½ç¤ò¾Ò²ð¤·¤Æ¤ª¤¯¡£
+\begin{enumerate}
+\item
+»Ò¤«¤é½ç¤ËÀèÁĤòé¤ê¤Ê¤¬¤éÄêµÁ¤¹¤ë¡£¤¹¤Ê¤ï¤Á¡¢¾åÎã2¤Î¸å¤Ë1¤òÄêµÁ¤¹¤ë¡£
+
+\item
+¾åÎã2¤ËÊѹ¹¤ÏÉÔÍפǤ¢¤ë¡£
+
+\item
+¾åÎã1¤Î
+
+\begin{lstlisting}[xleftmargin=1em]
+\pcdef{½¨Ãé¿Æ»Ò}{½¨Ãé}{½¨Ãé¤Î»Ò}
+\end{lstlisting}
+
+¤ò
+
+\begin{lstlisting}[xleftmargin=1em]
+\gensdef{²È¸÷²È¹Ë}{½¨Ãé¤Î»Ò}{%
+ {²È¸÷}{²È¹Ë¹ËµÈ}%
+}
+\pcdef{½¨Ãé²È¸÷}{½¨Ãé}{²È¸÷²È¹Ë}
+\end{lstlisting}
+
+¤ØÊѹ¹¤¹¤ë¡£
+\medskip
+
+¤¹¤Ê¤ï¤Á
+\textgt{\texttt{\textbackslash\kern0pt ½¨Ãé¤Î»Ò}}box
+Æâ¤Î¿Íʪbox
+\textgt{\texttt{\textbackslash\kern0pt ²È¸÷}}
+¤È¡¢¾åÎã2¤ÇÄêµÁºÑ¤ß¤Î
+\textgt{\texttt{\textbackslash\kern0pt ²È¹Ë¹ËµÈ}}box
+¤ò¤Ä¤Ê¤®¡¢¤³¤ì¤ò
+\textgt{\texttt{\textbackslash\kern0pt ²È¸÷²È¹Ë}}box
+¤È¤¹¤ë¡£
+
+\textgt{\texttt{\textbackslash\kern0pt ½¨Ãé}}box
+¤È¿Æ»Ò´Ø·¸¤ò·ë¤Ö¤Î¤Ï¤³¤Î
+\textgt{\texttt{\textbackslash\kern0pt ²È¸÷²È¹Ë}}box
+¤Ç¤¢¤ë¡£
+
+\item
+¿·¤¿¤ËÄêµÁ¤·¤¿
+\textgt{\texttt{\textbackslash\kern0pt ½¨Ãé²È¸÷}}
+¤òÉÁ²è¤¹¤ë¡£
+\end{enumerate}
+
+»æÌ̤ÎÅÔ¹ç¾å¡¢²£½ñ¤­¤Î·ë²Ì¤Î¤ßÄ󼨤¹¤ë¡£
+\end{enumerate}
+\smallskip
+
+\noindent\includegraphics[scale=.95]{fig3IemitsuY.pdf}
+\medskip
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Ê£¿ôbox¤ÎÄêµÁ¡¢·ëÀþ½ç½ø}
+\label{sec:Lily1}
+
+·»Äï»ÐËåbox¤È¤ÏÊ£¿ô¤Î¿Íʪbox¤òƱÎó¤Ëʤ٤ë¤â¤Î¤È¤È¤é¤¨¤ë¤Ê¤é¤Ð¡¢
+¤½¤ì¤Èľ¸ò¤¹¤ëÊý¸þ¤Ëʤ٤ë¤Î¤¬¿Æ»Òbox¤À¡£
+ƱÎó¤Ëʤó¤À·»Äï»ÐË夽¤ì¤¾¤ì¤¬»Ò¤ò»ý¤Ä¤Ê¤é¤Ð¡¢¿Æ»Ò´Ø·¸¤¬Ê£¿ô¤Ë¤Ê¤ë¤Î¤Ç
+ñ½ã¤Ë¿Æ»Ò´Ø·¸¥Ü¥Ã¥¯¥¹¤È¤Ï¸Æ¤Ó¤Å¤é¤¯¡¢ÆóÀ¤Âåbox¤È¸Æ¤ÖÊý¤¬¤Õ¤µ¤ï¤·¤¤¡£
+
+¤³¤Î¤è¤¦¤Ê¿Þ¤ÎºîÀ®ÊýË¡¤ÏÆóÄ̤ê¹Í¤¨¤é¤ì¤ë¡£¿Æ»Ò´Ø·¸¤òÊ£¿ôÄêµÁ¤·¡¢¿ÆƱ»Î¤ò
+·»Äï»ÐËåbox¤Ç¤Ä¤Ê¤°ÊýË¡¤È¡¢µÕ¤Ë¿ÆÀ¤Âå¤Î·»Äï»ÐËåbox¤òÀè¤ËÄêµÁ¤·¤Æ¤«¤é¡¢¤½¤ì¤¾
+¤ì¤Ë»Ò¤ò¤Ä¤Ê¤°ÊýË¡¤À¡£
+¤³¤ÎÆó¤Ä¤ÎÊýË¡¤òÈæ³Ó¤·¤Ê¤¬¤é¡¢¿Þ¤Î¸«¤ä¤¹¤µ¤ò¹Í¤¨¤ë¡£¤Þ¤ºÎã¤ò¿Þ¼¨¤¹¤ë¡£
+
+\begin{enumerate}
+\needspace{2\baselineskip}
+\item
+ÆóÁȤοƻҴط¸¤òÄêµÁ¸å¡¢¿ÆÀ¤Âå¤Î»ÐËå´Ø·¸¤òÄêµÁ¤¹¤ë¡£
+
+\srcfig{fig3Lily1}
+
+\needspace{3\baselineskip}
+\item
+»ÐËå´Ø·¸¤òÄêµÁ¸å¡¢¤½¤ì¤¾¤ì¤Î¿Æ»Ò´Ø·¸¤òÄêµÁ¤¹¤ë¡£
+
+\srcfig{fig3Lily2}
+\end{enumerate}
+
+¸«¤Æʬ¤«¤ëÄ̤ꡢ1¤ÎÊýË¡¤Ç¤Ï»Ò¤ò¤Ä¤Ê¤°Àþ¤ÎŤµ¤¬°Û¤Ê¤ê¡¢¹¹¤Ë»ÒÀ¤Âå¤Î°Ì
+Ã֤ⷤï¤Ê¤¯¤Ê¤ë¤¿¤á¡¢¸«¤Ë¤¯¤¤¿Þ¤È¤Ê¤ë¡£
+¤³¤ì¤Ï»Ò¤Ø¤Ä¤Ê¤¬¤ëÀþ¤Ï¤â¤Ã¤È¤âŤ¤¤â¤Î¤Ë·¤¨¤ë¤È¤¤¤¦|\sblngdef|¤Î
+µ¡Ç½¤¬Æ¯¤«¤Ê¤«¤Ã¤¿¤¿¤á¤À¡£|\sblngdef|¤Î°ú¿ô¤ËÅϤµ¤ì¤¿»þÅÀ¤Ç´û¤Ë
+¿Æ»Ò´Ø·¸¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¾õÂ֤Ǥ¢¤ê¡¢Àþ¤ÎÀè¤Ë¤Ï¿Íʪbox¤¬¤Ä¤Ê¤¬¤ì¤Æ¤¤¤ë¡£
+¤³¤Î¾õÂÖ¤Ç|\sblngdef|¤¬¶¯°ú¤ËÀþ¤ò±ä¤Ð¤¹¤Î¤Ï¤è¤í¤·¤¯¤Ê¤¤¡£
+
+°ìÊý¡¢2¤ÎÊýË¡¤Ç¤Ï|\sblngdef|¤Î°ú¿ô¤Ï|\indvdldef|¤µ¤ì¤¿¤À¤±¤Ç¾¤Ë¤Ï¤Ä¤Ê¤¬¤ì¤Æ¤¤¤Ê¤¤
+box¤Ç¤¢¤ë¡£¤³¤Î¤¿¤á¡¢¾å¤«¤éŤ¤Àþ¤òÉÁ¤­Â­¤·¤Æ¤â³²¤Ï̵¤¤¡£´ûÄêµÁbox¤ò²þÊÑ
+¤·¤Ê¤¤¤Þ¤Þ¡¢·»Äï»ÐËåbox¤ËÊĤ¸¤¿ÈϰϤÇƱ¤¸¹â¤µ¤ËÀþ¤ò¾å½ñ¤­¤·¤Æ¤¤¤ë¡£
+
+1¤ÎÊýË¡¤òºÎ¤Ã¤¿¾ì¹ç¤Ç¤âÀþ¤ÎŤµ¤ò·¤¨¤ëÊýË¡¤Ï¤¢¤ë¡£
+|\indvdldef|¤¬»ý¤ÄÀþŤÎÁý¸ºµ¡Ç½¤òÍøÍѤ·¡¢
+¾å¿Þ¤ÎLily¤¬»ý¤Ä|\femaleline|¡Ê|\matrilineal|¡Ë¤ÎŤµ¤òPetunia¤Î¤½¤ì¤ÈƱ
+¤¸¤Ë¤¹¤ì¤ÐÎɤ¤¡£
+Petunia¤ÈLily¤Î̾Á°¤ÎŤµ¤Îº¹¤òµá¤á¡¢¤½¤ì¤ò|\indvdldef|¤Ë¥ª¥×¥·¥ç¥ó¤È¤·
+¤ÆÄɲ乤롣
+ÉÁ²è·ë²Ì¤Ï¾åÎã2¤ÈƱ¤¸¤Ç¤¢¤ë¡£
+\smallskip
+
+\srcfig{fig3Lily3}
+\medskip
+
+|\nameboxcfg|¤Ë¤Ï»Ò¤ò¤Ä¤Ê¤°Àþ¤ÎŤµ¤òÊѹ¹¤¹¤ëµ¡Ç½¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤ì¤ò»È¤Ã
+¤Æ¤âƱÍͤηë²Ì¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£¤·¤«¤·¡¢|\indvdldef|¤¹¤ëÅÙ¤Ë
+|\nameboxcfg|¤¹¤ë¤Î¤ÏÆÀºö¤Ç¤Ï¤Ê¤¤¤À¤í¤¦¡£|\nameboxcfg|¤Ï¤â¤Ã¤È¹­ÈϰϤË
+ŬÍѤ¹¤ëÃͤòÊѹ¹¤·¡¢¸ÄÊÌÀßÄê¤Î²ó¿ô¤òºï¸º¤¹¤ë¤³¤È¤òÌÜŪ¤È¤·¤Æ¤ª¤ê¡¢
+|\indvdldef|¤ÎÅÙ¤ËÊѹ¹¤¹¤ë¤³¤È¤ÏÁÛÄꤷ¤Æ¤¤¤Ê¤¤¡Ê¤Ç¤­¤Ê¤¯¤Ï¤Ê¤¤¤¬¡Ë¡£
+¸ÄÊ̤˻ÈÍѤ¹¤ëÃͤÏ|\indvdldef|¤Î¥ª¥×¥·¥ç¥ó°ú¿ô¤ò»ÈÍѤ·¤¿Êý¤¬´ÊÊؤÀ¤í¤¦¡£
+\bigskip
+
+¤â¤¦°ì¤Ä¤ÎÊýË¡¤È¤·¤ÆLily¤Î̾Á°¤ÎŤµ¤òPetunia¤Î¤½¤ì¤Ë·¤¨¤ëÊýË¡¤â¤¢¤ë¡£
+¤³¤ÎÊýË¡¤Ç¤ÏLily¤Î̾Á°¤ÈÀþ¤Î´Ö¤¬¶õ¤­¡¢Àþ¤ÎŤµ¤¬Â·¤¦¡£
+\smallskip
+
+\srcfig{fig3Lily4}
+\medskip
+
+Lily¤Î¿Æ»Òbox¤òPetunia¿Æ»Òbox¤È¤Ï°ã¤¦¾ìÌ̤ǻÈÍѤ¹¤ë¤È¡¢Ì¾Á°¤Î¸å¤í¤¬ÉÔ
+¼«Á³¤Ë¶õ¤­¡¢¤ª¤«¤·¤¯¸«¤¨¤ë¤³¤È¤â¤¢¤ë¤«¤â¤·¤ì¤Ê¤¤¡£¤½¤Î¾ì¹ç¤Ï¡¢¶õ¤­¶ñ¹ç
+¤òÊѲ½¤µ¤»¤¿Lily box¤òÊ£¿ôÄêµÁ¤·»È¤¤Ê¬¤±¤ë¤³¤È¤Ë¤Ê¤ë¤À¤í¤¦¡£
+\bigskip
+
+box¤ÎÄêµÁ½ç½ø¡¢¸À¤¤´¹¤¨¤ì¤ÐÇÛÃÖ\jslash ·ëÀþ½ç½ø¤Ë¤ÏÃí°Õ¤¬É¬ÍפÀ¡£
+Ëܥѥ屡¼¥¸¤Ç¤ÎboxÄêµÁ¤È¤ÏÍ¿¤¨¤é¤ì¤¿Ê£¿ô¤Îbox¤òʤÙÀþ¤Ç¤Ä¤Ê¤°¤â¤Î¤À¤¬¡¢
+¤½¤ÎºÝ¤ËÍ¿¤¨¤é¤ì¤¿box¤ÎÂ礭¤µ¤ò¹Íθ¤¹¤ë¡£Î㤨¤Ð·»Äï»ÐËåbox¤òÄêµÁ¤¹¤ëºÝ¡¢
+´û¤Ë»Ò¹¤È¤Ä¤Ê¤¤¤Àbox¤òÍ¿¤¨¡¢¤½¤Îbox¤ÎÉý¡Ê¤Þ¤¿¤Ï¹â¤µ¡Ë¤¬Áý²Ã¤·¤Æ¤¤¤ì¤Ð¡¢
+·»Äï»ÐËå¤Î´Ö³Ö¤ò³È¤²¤ë¡£¤¹¤Ê¤ï¤Áinterval box¤Ë¤è¤ë´Ö³ÖÁÞÆþ¤¬É¬Íפˤʤë
+¤Î¤ÏËöü¤Î´Ø·¸ÄêµÁ¤À
+¤±¤Ë¤Ê¤ë¡£¤·¤«¤·¡¢·»Äï»ÐËåbox¤òÄêµÁ¤·¤¿¸å¤Ç»Ò¤È¤Ä¤Ê¤²¤ë¾ì¹ç¤Ï¡¢¤³¤Î
+´Ö³ÖÄ´À°µ¡Ç½¤¬È¯´ø¤µ¤ì¤Ê¤¤¡£ÎÙ¤ê¹ç¤¦»Òbox¤ÎÉý¡Ê¤Þ¤¿¤Ï¹â¤µ¡Ë¤¬¹­¤±¤ì¤Ð¡¢
+½Å¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£¤³¤Î¾ì¹ç¤Ï¼êÆ°¤Çinterval box¤òÁÞÆþ¤»¤¶¤ë¤òÆÀ¤Ê¤¤¡£
+
+Àܳ¥Ý¥¤¥ó¥È¤Ï\meta{box name}\meta{brabra}|nameCY|¤Ê¤É¤Î̾Á°¤ÇÄêµÁ¤µ¤ì
+¤¿ºÂɸ¤Ç
+¤¢¤ë¡£Á°¾Ï¤Þ¤Ç¤ÇÀâÌÀ¤·¤¿¤è¤¦¤Ë|\sblngdef|¤Ï·»Äï»ÐË夽¤ì¤¾¤ì¤Î̾Á°¤ÎÃæ
+¿´¤òɽ¤¹YºÂɸ¤òÄêµÁ¤¹¤ë¤¬¡¢nest¤·¤¿¾ì¹ç¤ËnestÆâÉô¤Þ¤Ç¤ÏÄêµÁ¤·¤Ê¤¤¡£¤¹
+¤Ê¤ï¤Á¿Æ»Òbox¤ËÇÛÃÖ¤µ¤ì¤¿¿Íʪbox¤ØÀþ¤ò¤Ä¤Ê¤²¤ë¤Î¤Ï¡Ê¤Û¤Ü¡Ë¼«Æ°Åª¤Ë¤Ç¤­
+¤ë¤¬¡¢¿Æ»ÒboxÆâ¤Î·»Äï»ÐËåbox¤ËÇÛÃÖ¤µ¤ì¤¿¿Íʪbox¤ØÀþ¤ò¤Ä¤Ê¤²¤ë¤Ë¤Ï¡¢¥æ¡¼
+¥¶¤¬¼«Ê¬¤ÇºÂɸ¤ò»»½Ð¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ÉÔ²Äǽ¤Ç¤Ï¤Ê¤¤¤¬¡¢¼ê´Ö¤Ï¤«¤«¤ë¡£
+¤³¤Î¼ê´Ö¤ò²óÈò¤¹¤ë¤¿¤á¡¢À¤Âå¤Ï²¼¤«¤é½ç¤ËÄêµÁ\jslash ·ëÀþ¤·¤Æ¤¤¤¯¤Î¤¬Îɤ¤¤È¹Í¤¨¤ë¡£
+\iffalse
+\bigskip
+
+ºÇ½ªÅª¤Ë¡¢
+¥æ¡¼¥¶¤¬¤É¤Î¤è¤¦¤Ê¿Þ¤òÍߤ¹¤ë¤Ë¤è¤ê¡¢¤É¤Î½ç½ø¤Çbox¤òÄêµÁ¤·¡¢¤Ä¤Ê¤²¤ë¤«¡¢
+¤Þ¤¿Ä´À°¤ò¤É¤¦²Ã¤¨¤ë¤«¤ò·èÄꤹ¤ë¤Î¤¬Îɤ¤¡£
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse
+% \subsubsection{ÆóÀ¤Âåbox --- core}
+%
+% \iffalse
+% \parag{¥«¥¹¥¿¥Þ¥¤¥º}
+%
+% \DescribeMacro{\ftgescfg}
+% \NoDescription
+% \begin{macrocode}
+% \newcommand{\ftgenscfg}[1]{%
+% }
+% \end{macrocode}
+% \fi
+%
+% \parag{connection pair}
+%
+% \DescribeMacro{\ft@getpair}
+% °ú¿ô¤«¤éconnection-pair¤ò¼è¤ê½Ð¤·¡¢
+% ¿ÆboxÆâ¤ÎÀܳÅÀ¤ò|\ft@cpoint|¤È¤·¤Æ¡¢¤Þ¤¿»Òbox̾¤ò|\ft@kids|¤È¤·¤ÆÄêµÁ¤¹¤ë¡£
+% ÀܳÅÀ¤ËÍ¿¤¨¤é¤ì¤¿¤â¤Î¤¬¿ÆboxÆâ¤Çnest¤·¤ÆÇÛÃÖ¤µ¤ì¤¿¾ì¹ç¤Ë¤âÂбþ¤¹¤ë¡£
+% ¤·¤«¤·nest¤Ï°ìÃʤޤǤ·¤«Âбþ¤·¤Ê¤¤¡£
+%
+% \parag{¾å;Çò}
+%
+% \DescribeMacro{\def@calc@xtop}
+% ¿Æbox¤ËɬÍפʾå;Çò¤ò»»½Ð¤·¡¢»ØÄꤵ¤ì¤¿global¤Ê̾Á°¤ÇÄêµÁ¤¹¤ë¡£
+%
+% \parag{²¼Í¾Çò}
+%
+% \DescribeMacro{\ft@calc@xbottom}
+% ¿Æbox¤ËɬÍפʲ¼Í¾Çò¤ò»»½Ð¤·¡¢»ØÄꤵ¤ì¤¿global¤Ê̾Á°¤ÇÄêµÁ¤¹¤ë¡£
+% Ʊ»þ¤Ë|\ft@depth|¤âÄêµÁ¤¹¤ë¡£
+%
+% \parag{box size»»½Ð}
+%
+% \DescribeMacro{\ft@gens@size}
+% box size¤ò»»½Ð¤¹¤ë¡£
+%
+% \parag{ÇÛÃÖ}
+%
+% \DescribeMacro{\ft@gens@layout}
+% ¿Æbox¤È»Òbox¤òÇÛÃÖ¤¹¤ë¡£
+% ÇÛÃÖ¤·¤¿¿Æbox¤Î|nameCY|ºÂɸ¤ò\meta{box name}|nameCY|¤È¤¹¤ë¡£
+% ÇÛÃÖ¤·¤¿»Òbox¤Î¸¶ÅÀ¡Êº¸²¼¡¢½Ä½ñ¤­¤Ê¤é¤ÐÃæ±û¾å¡Ë¤ò\meta{box
+% name}\meta{\kern0pt »Òbox name}|Y|¤È¤·¤ÆÄêµÁ¤¹¤ë¡£
+% ËÜpackage¼«¿È¤Ç¤ÏÉÔÍפκÂɸ¤À¤¬¡¢¥æ¡¼¥¶¤¬É¬ÍפȤ¹¤ë¤«¤â¤·¤ì¤Ê¤¤¤Î¤Ç¡£
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{ÆóÀ¤Âåbox --- interface}
+%
+% \DescribeMacro{\ftgensdef}
+% box¤Îchild mark¤Ï¿Æbox¤Î¤½¤ì¤Ë°ìÃפ¹¤ë¡£
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{¿Æ»Òbox --- interface}
+%
+% \DescribeMacro{\ftpcdef}
+% ¿Æ»Ò´Ø·¸box¤òÄêµÁ¤¹¤ë¡£
+% |\gensdef|¤Î´Ê°×ÈÇ¡£
+% ¿Æbox¡¢»Òbox¤½¤ì¤¾¤ì¤Î\meta{box name}|nameCY|Ʊ»Î¤ò·ëÀþ¤¹¤ë¡£
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-individual-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-individual-ja.tex
new file mode 100644
index 00000000000..a8b2ad30903
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-individual-ja.tex
@@ -0,0 +1,456 @@
+\iffalse
+Copyright 2022 Jiro Senju
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+\fi
+
+\section{¿Íʪ (\texttt{ft-individual.dtx})}
+
+\DescribeMacro{\indvdldef}
+\cmd{\indvdldef
+ \oarg{child mark}
+ \marg{new box name}
+ \oarg{title}
+ \marg{individual name}
+ \oarg{additonal info}
+ \oarg{maleline xlength}
+}
+\medskip
+
+Í¿¤¨¤é¤ì¤¿¾ðÊó¤òÀ°·Á\jslash ÇÛÃÖ¤·¤¿box¤ò¡¢»ØÄꤵ¤ì¤¿\meta{new box name}¤ÇÄêµÁ¤¹¤ë¡£
+
+\begin{enumerate}
+\item \oarg{child mark}
+\par
+¿Íʪ̾¤ÎÁ°¤ËÉÁ¤¯Àþ¤Î¼ïÊ̤ò»ØÄꤹ¤ë¡£
+¸å½Ò¤¹¤ë|\ftbiological|¡¢
+|\ftadopted|¡¢
+|\fttop|¡¢
+|\ftblank|
+¤Î¤¤¤Å¤ì¤«¤ò»ØÄꤹ¤ë
+
+\item \marg{new box name}
+\par
+ÄêµÁ¤¹¤ëbox̾¡£
+\CS ¤Ç¤Ï¤Ê¤¤
+¡Êbaskslash¤òÉÕ¤±¤Ê¤¤¡Ë
+
+\item \oarg{title}
+\par
+¸ª½ñ¤­
+\par
+¿Íʪ̾¤Î¸ª¤ËÆó²ó¤ê¾®¤µ¤Ê¥µ¥¤¥º¡Ê|\relsize{-2}|¡Ë¤ÇÇÛÃÖ¤µ¤ì¤ë
+
+\item \marg{individual name}
+\par
+¿Íʪ̾
+
+\item \oarg{additonal info}
+\par
+ÉղþðÊó
+\par
+À¸Ë×ǯ¡¢ÊÌ̾Åù¡¢Ç¤°Õ¤Î¾ðÊó¤òÄɲäǤ­¤ë¡£
+¿Íʪ̾¤Î¼¡Ãʤ˰ì²ó¤ê¾®¤µ¤Ê¥µ¥¤¥º¡Ê|\relsize{-1}|¡Ë¤ÇÇÛÃÖ¤µ¤ì¤ë¡£
+¹¹¤Ë¸å½Ò¤¹¤ë
+|\ftmaleline| (|\ftfemaleline|, |\ftpatrilineal|, |\ftmatrilineal|)¡¢
+|\fthaschild|¡¢
+|\ftprivate|
+¤Î°À­¤â»ØÄê¤Ç¤­¤ë
+
+\item \oarg{maleline xlength}
+\par
+¿Íʪ̾¤«¤é»Ò¤Ø¤ÎÀþ¤òÉÁ¤¯¾ì¹ç
+¡Ê¿Þ¤Ëº§°ù´Ø·¸¤ò´Þ¤á¤Ê¤¤¾ì¹ç¡Ë¡¢
+Àþ¤ÎŤµ¤òÁý¸º¤¹¤ë¡£
+⤷¡¢¸å½Ò¤¹¤ë·»Äï»ÐËåboxÆâ¤Ç¤Ï¼«Æ°Åª¤ËÄ´Àᤵ¤ì¤ë¤¿¤á¡¢
+°ÕÌ£¤ò¼º¤¦¡£
+\end{enumerate}
+
+¹¹¤Ë¸å¤Ç»ÈÍѤ¹¤ëºÂɸ¡Êñ°Ì¤Ï|pt|¡Ë¤òɽ¤¹\CS ¤âÄêµÁ¤¹¤ë¡£
+Í×ÁÇ¡Ê¿Íʪ̾¡Ë¤Ë´Ø¤¹¤ëºÂɸ¤Î¸¶ÅÀ¤Ï¤½¤ì¤¾¤ì¡¢
+²£½ñ¤­¤Î¾ì¹ç¤Ïboxº¸²¼¡¢
+½Ä½ñ¤­¤Î¾ì¹ç¤Ïboxº¸¾å¤Ç¤¢¤ë¡£
+
+\begin{itemize}
+\item \meta{box name}|nameX|
+\par
+ÇÛÃÖ¤·¤¿¿Íʪ̾¤ÎËöÈø
+
+\item \meta{box name}|nameCX|
+\par
+ÇÛÃÖ¤·¤¿¿Íʪ̾¤ÎÉý¤ÎÃæ±û
+¡Ê½Ä½ñ¤­¤Ê¤é¤Ð¹â¤µ¤ÎÃæ±û¡Ë
+
+\item \meta{box name}|nameCY|
+\par
+ÇÛÃÖ¤·¤¿¿Íʪ̾¤Î¹â¤µ¤ÎÃæ±û
+¡Ê½Ä½ñ¤­¤Ê¤é¤ÐÉý¤ÎÃæ±û¡Ë
+\end{itemize}
+\bigskip
+
+\needspace{4\baselineskip}
+\oarg{child mark}¤Ë¤Ï¼¡¤ÎÃͤΤ¤¤Å¤ì¤«¤ò»ØÄꤹ¤ë¡£
+
+\begin{itemize}
+\item |\biological|, |\ftbiological|
+\par
+¿Íʪ̾¤ÎÁ°¤Ë¼Â»Ò¤ò°ÕÌ£¤¹¤ë¼ÂÀþ¤òÉÁ¤¯¡£
+
+\item |\adopted|, |\ftadopted|
+\par
+¿Íʪ̾¤ÎÁ°¤ËÍܻҤò°ÕÌ£¤¹¤ëÆó½ÅÀþ¤òÉÁ¤¯¡£
+
+\item |\fttop| (|\top|)
+\par
+Àþ¤òÉÁ¤«¤Ê¤¤¡£·Ï¿Þ¤ÎºÇ¾å°Ì¤ËÍѤ¤¤ë¡£
+
+\item |\blank|, |\ftblank|
+\par
+Àþ¤òÉÁ¤«¤Ê¤¤Âå¤ï¤ê¤Ë¡¢Æ±¤¸¥µ¥¤¥º¤Î¶õÇò¤òÁÞÆþ¤¹¤ë¡£¸å½Ò¤¹¤ë
+|\mrrgdef|¤Ë»ØÄꤹ¤ëÇÛ¶ö¼Ô¤Ê¤É¤ÎÄêµÁ»þ¤Ë»ÈÍѤ¹¤ë¡£
+\end{itemize}
+\bigskip
+
+\oarg{additonal info}¤Ë¤Ï¼¡¤Î°À­¤ò´Þ¤á¤é¤ì¤ë¡£
+
+\begin{itemize}
+\item |\haschild|, |\fthaschild|
+\par
+»Ò¤ò¤â¤¦¤±¤¿ÇÛ¶ö¼Ô¤òɽ¤¹¡£
+\par
+¸å½Ò¤¹¤ëº§°ù´Ø·¸ÄêµÁ¤Ë»ÈÍѤ¹¤ë¤È¡¢º§°ù
+´Ø·¸¤ò°ÕÌ£¤¹¤ëÆó½ÅÀþ¤«¤éľ³Ñ¤Ë¼ÂÀþ¤òÉÁ¤¯¡£
+
+\item |\private|, |\ftprivate|
+\par
+ˡŪ¤Êº§°ù´Ø·¸¤Ç¤Ï¤Ê¤¤¤³¤È¤òɽ¤¹¡£
+\par
+¸å½Ò¤¹¤ëº§°ù´Ø·¸ÄêµÁ¤Ë»ÈÍѤ¹¤ë
+¤È¡¢º§°ù´Ø·¸¤ò°ÕÌ£¤¹¤ëÆó½ÅÀþ¤òÅÀÀþ¤Ë¤¹¤ë¡£
+
+\item |\maleline|, |\ftmaleline|
+\par
+º§°ùÀþ¤òÉÁ¤«¤º¿Íʪ̾¤«¤é»Ò¤Ø¤ÎÀþ¤òÉÁ¤¯¡£
+\par
+Àþ¤ÎŤµ¤Ï¥ª¥×¥·¥ç¥ó°ú¿ô\meta{maleline xlength}¤Ç²Ã¸º¤Ç¤­¤ë¡£
+|\ftfemaleline|¡¢
+|\ftpatrilineal|¡¢
+|\ftmatrilineal|¤ÈƱµÁ¡£
+\end{itemize}
+\bigskip
+
+ºîÀ®¤¹¤ëbox¤ÎÃæ¿È¤ÏºÙʬ²½¤µ¤ì¤¿box¤Ç¤¢¤ë¡£
+\smallskip
+
+\begin{itemize}
+\item ¸ª½ñ¤­¤òɽ¤¹|\ft@titlebox|
+\item ¿Íʪ̾¤òɽ¤¹|\ft@namebox|
+\par
+ÆâÉô¤Ë¤Ï¹¹¤Ë\meta{child mark}¤òɽ¤¹|\ft@cmarkbox|¡¢
+\meta{maleline}¤òɽ¤¹\allowbreak|\ft@malelinebox|¤¬¤¢¤ë¡£
+\item ÉղþðÊó¤òɽ¤¹|\ft@optbox|
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{¥«¥¹¥¿¥Þ¥¤¥º}
+
+ÇÛÃÖ¤òÄ´À°¤¹¤ëµ¡Ç½¤â¤¢¤ë¡£
+Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+Â礷¤¿¤³¤È¤Ï¤·¤Æ¤¤¤Ê¤¤¤Î¤ÇɬÍפ˱þ¤¸»²¾È\jslash »ÈÍѤ¹¤ëÄøÅÙ¤ÇÎɤ¤¡£
+°ú¿ôÅù¾ÜºÙ¤Ï¼ÂÁõ¤ò»²¾È¤Î¤³¤È¡£
+\medskip
+
+\needspace{1.5\baselineskip}
+\DescribeMacro{\nameboxcfg}
+\cmd{\nameboxcfg
+ \marg{space from the child mark}
+ \marg{font}
+ \marg{space to the maleline}
+ \marg{maleline length}
+}
+\smallskip
+
+\DescribeMacro{\cmarkboxcfg}
+\cmd{\cmarkboxcfg
+ \marg{space between two lines, for adopted}
+ \marg{line length}
+}
+\smallskip
+
+\DescribeMacro{\titleboxcfg}
+\cmd{\titleboxcfg
+ \marg{indent}
+ \marg{font}
+ \marg{linestretch}
+ \marg{vspace to the individual name}
+}
+\smallskip
+
+\DescribeMacro{\optboxcfg}
+\cmd{\optboxcfg
+ \marg{vspace from the individual name}
+ \marg{indent}
+ \marg{font}
+ \marg{linestretch}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Îã}
+
+\begin{enumerate}
+\itemsep=\bigskipamount
+\item
+\srcfig{fig1base}
+
+\item
+\srcfig{fig1Ieyasu}
+
+\item
+\srcfig{fig1Hidetada}
+\end{enumerate}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\iffalse
+\subsectImpl
+
+\subsubsection{child-mark box}
+
+\parag{¥«¥¹¥¿¥Þ¥¤¥º}
+
+\DescribeMacro{\ftcmarkboxcfg}
+\DescribeMacro{\cmarkboxcfg}
+child mark¤òÇÛÃÖ¤·¤¿box¤òÀ¸À®¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë
+|\adopted|¤ÎÆó½ÅÀþ¤Î´Ö³Ö¡¢
+Àþ¤ÎŤµ
+¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¡£
+
+Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{boxÀ¸À®}
+
+\DescribeMacro{\fttop}
+\DescribeMacro{\top}
+\DescribeMacro{\ftbiological}
+\DescribeMacro{\biological}
+\DescribeMacro{\ftadopted}
+\DescribeMacro{\adopted}
+\DescribeMacro{\ftblank}
+\DescribeMacro{\blank}
+child mark¼ïÎà¡£
+¤½¤ì¤¾¤ì¤Î°ÕÌ£¤Ï\refnm{table:cmark}¤ò»²¾È¡£
+
+\DescribeMacro{\ft@indvdl@nameH}
+\DescribeMacro{\ft@indvdl@nameD}
+\DescribeMacro{\ft@indvdl@nameCY}
+\DescribeMacro{\ft@do@cmarkdef}
+\DescribeMacro{\ft@cmarkdef}
+»ØÄꤵ¤ì¤¿\meta{cmark}¤ò»ý¤Äbox¤ò¡¢\meta{cmarkbox-name}¤Ë»ØÄꤵ¤ì¤¿Ì¾Á°¤ÇÀ¸
+À®¤¹¤ë¡£
+
+·ÓÀþʸ»ú¤ò»È¤¦¤³¤È¤â¸¡Æ¤¤·¤¿¤¬¡¢font¤¬°Û¤Ê¤ë¤È¤Ä¤Ê¤¬¤é¤Ê¤¯¤Ê¤ë¶²¤ì¤¬¤¢
+¤ë¤¿¤á|picutre|¤Î|line|¤Ë¤·¤¿¡£
+
+|\ft@indvdl@nameH|¡¢|\ft@indvdl@nameD|¡¢|\ft@indvdl@nameCY|¤Ïinterface
+¤Ç¤¢¤ë|\indvdldef|¤¬½é´ü²½¤¹¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsubsection{ÉղþðÊóbox}
+
+\parag{¥«¥¹¥¿¥Þ¥¤¥º}
+
+\DescribeMacro{\ftoptboxcfg}
+\DescribeMacro{\optboxcfg}
+ÉղþðÊó\meta{additional info}¤òÀ°·Á\jslash ÇÛÃÖ¤·¤¿|\ft@optbox|¤òÀ¸
+À®¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë¡¢
+¿Íʪ̾¤È¤Îµ÷Î¥¡¢
+»ú²¼¤²ÎÌ¡¢
+font¡¢
+linestretch
+¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¡£
+
+Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{°À­¤ÈÉղþðÊó¤Î²òÀÏ}
+
+\DescribeMacro{\ftmaleline}
+\DescribeMacro{\maleline}
+\DescribeMacro{\fthaschild}
+\DescribeMacro{\haschild}
+\DescribeMacro{\ftprivate}
+\DescribeMacro{\private}
+°À­¡£
+¤½¤ì¤¾¤ì¤Î°ÕÌ£¤Ï\refnm{table:attrib}¤ò»²¾È¡£
+
+\DescribeMacro{\ft@optlist}
+\meta{option-list}¤Ë»ØÄꤵ¤ì¤¿ÉղþðÊó\meta{additional info}¤«¤é°À­¤ò¼è¤ê½Ð¤·¡¢
+\meta{box-name}¤ò´ð¤Ë¤·¤¿Ì¾Á°¤Îglobal flag¤òÄêµÁ¤¹¤ë¡£
+°À­°Ê³°¤Î¤â¤Î¤Ï¸å¤Ç°õ»ú¤¹¤ë¤¿¤á¡¢
+Ê̥ꥹ¥È\meta{list}¤òÀ¸À®¤¹¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{boxÀ¸À®}
+
+\DescribeMacro{\ft@opt}
+ÉղþðÊó\meta{additional info}¤òÀ°·Á\jslash ÇÛÃÖ¤·¤¿|\ft@optbox|¤òÀ¸
+À®¤¹¤ë¡£
+
+ÀèƬ¤Ë¤Ï\meta{child-mark}ʬ¤Ë²Ã¤¨¡¢
+¿Íʪ̾¤«¤éindent¤¹¤ë¤¿¤á¤Î;Çò¤òÁÞÆþ¤¹¤ë¡£
+
+ºÇ½ª¹Ô¤Îdepth¤òbox¤Îdepth¤È¤¹¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsubsection{¿Íʪ̾box}
+
+\parag{¥«¥¹¥¿¥Þ¥¤¥º}
+
+\DescribeMacro{\ftnameboxcfg}
+\DescribeMacro{\nameboxcfg}
+¿Íʪ̾¤Ë»ÈÍѤ¹¤ë¡¢
+»ú²¼¤²ÎÌ¡¢
+font¡¢
+¿Íʪ̾¤Î¸å¤Ëmaleline¤òÉÁ¤¯¾ì¹ç¤Î¿Íʪ̾¤È¤Îµ÷Î¥¡¢
+¤ª¤è¤ÓÀþ¤ÎŤµ
+¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¡£
+
+Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{boxÀ¸À®}
+
+\DescribeMacro{\ft@name}
+¿Íʪ̾¤òÀ°·Á\jslash ÇÛÃÖ¤·¤¿|\@ft@namebox|¤òÀ¸À®¤¹¤ë¡£
+
+Ãæ¿È¤Ï|\ft@cmarkbox|¡¢\meta{individual-name}¡¢
+|\ft@malelinebox|¤òʤ٤¿¤â¤Î¡£
+
+maleline¤òÉÁ¤¯¾ì¹ç¡¢default¤Îlength¡¢¤È¤¤¤¦¤«Àþ¤Î»ÏÅÀ¤ò¤É¤¦·èÄꤹ¤ë¤«
+¤òÃ硹·è¤á¤é¤ì¤Ê¤«¤Ã¤¿¡£
+»ÏÅÀ¤òñ¤Ë¿Íʪ̾¤Î¸å¤í¤È¤¹¤ë¤«¡¢¤½¤ì¤È¤â¸ª½ñ¤­¤ÈÉղþðÊó¤â´Þ¤á¡¢°ì
+ÈÖÂ礭¤Êbox¤Î¸å¤í¤ò»ÏÅÀ¤È¤¹¤ë¤«¡£¸å¼Ô¤Ë¤¹¤ë¤È¿ÍʪboxñÆȤǤ諤¿ÌܤÏÎÉ
+¤¯¤Ê¤ë¡£¤¹¤Ê¤ï¤Á¾ï¤Ëmaleline¤ò°ìÈÖŤ¯¤µ¤»¤é¤ì¤ë¡£¤·¤«¤·¡¢¸å½Ò¤¹¤ë¾¤Î
+·»Äï»ÐËåbox¤Ê¤É¤Èʤ٤ë»þ¤Ë¡¢Àþ¤ò¤É¤ì¤À¤±±ä¤Ð¤»¤Ð¾¤Îbox¤È·¤¨¤é¤ì¤ë¤«
+¤ò»»½Ð¤¹¤ë¤Î¤Ë¼ê´Ö¤¬¤«¤«¤ë¤è¤¦¤Ë¤Ê¤ë¡£
+¤³¤ÎÅÀ¤ÏÁ°¼Ô¤ÎÊý¤Ëʬ¤¬¤¢¤ê¡¢Ã±¤Ë¿Íʪ̾¤Îsize¤Îº¹¤À¤±¤òÁý
+²Ã¤µ¤»¤ì¤Ð·¤¨¤é¤ì¤ë¡£
+»î¹Ôºø¸í¤Î¸å¡¢»ÏÅÀ¤ÏÁ°¼Ô¤È¤·¡¢default length¤Ï
+|\ft@namebox@maleline@length|¤È¤¹¤ë¡£
+¤¹¤Ê¤ï¤Á¡¢¿Íʪbox¤òñÆȤÇÍѤ¤¤ë¾ì¹ç¡¢¸ª½ñ¤­¤äÄɲþðÊó¤ÎÊý¤¬maleline¤è
+¤ê¤âŤ¯¤Ê¤ë¤³¤È¤¬¤¢¤êÆÀ¤ë¡£
+
+¸å¤Ç·»Äï»ÐËå\jslash ¿Æ»Ò\jslash º§°ù´Ø·¸ºîÀ®»þ¤ËºÂɸ¤È¤·¤ÆÍøÍѤǤ­¤ë¤è¤¦¡¢
+\meta{box name}|nameX|¡¢\meta{box name}|nameCX|¤òÄêµÁ¤¹¤ë¡£
+
+¿Íʪbox¤Îdepth¤Ï¿Íʪ̾¤Î¤½¤ì¤Ë°ìÃפµ¤»¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsubsection{¸ª½ñ¤­box}
+
+\parag{¥«¥¹¥¿¥Þ¥¤¥º}
+
+\hyphenation{line-stretch}
+\DescribeMacro{\fttitleboxcfg}
+\DescribeMacro{\titleboxcfg}
+¸ª½ñ¤­¤òÇÛÃÖ¤·¤¿|\ft@titlebox|¤òÀ¸À®¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë
+»ú²¼¤²ÎÌ¡¢
+font¡¢
+linestretch¡¢
+¿Íʪ̾¤È¤Îµ÷Î¥¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¡£
+
+Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{boxÀ¸À®}
+
+\DescribeMacro{\ft@title}
+¸ª½ñ¤­¤òÀ°·Á\jslash ÇÛÃÖ¤·¤¿|\ft@titlebox|¤òÀ¸À®¤¹¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsubsection{box¤ÎÏ¢·ë --- core}
+
+»ØÄꤵ¤ì¤¿¾ðÊó¤ò´ð¤Ë¡¢
+¸ª½ñ¤­¡Ê|\ft@titlebox|¡Ë¡¢¿Íʪ̾¡Ê|\ft@namebox|¡Ë¡¢ÉղþðÊó
+¡Ê|\ft@optbox|¡Ë¤½¤ì¤¾¤ì¤òºîÀ®¤¹¤ë¡£
+¤½¤ì¤é¤òʤٿÍʪbox¤òÀ¸À®¤¹¤ë¡£
+box¤Îdepth¤ÏºÇ½ª¹Ô¤Î¤½¤ì¤Ë°ìÃפµ¤»¤ë¡£
+
+¸å¤Ç·»Äï»ÐËå\jslash º§°ù\jslash ¿Æ»Ò´Ø·¸ºîÀ®»þ¤ËºÂɸ¤È¤·¤ÆÍøÍѤǤ­¤ë¤è¤¦¡¢
+\meta{box name}|nameCY|¤òÄêµÁ¤¹¤ë¡£
+
+³Æbox¤ÎÀ¸À®¡¢¿Íʪbox¤Îsize»»½Ð¡¢|picture|¤Ë¤è¤ëlayout¤Î»°Ãʳ¬¤òƧ¤à¡£
+¤½¤ì¤¾¤ì¤òÆÈΩ¤µ¤»ÄêµÁ¤¹¤ë¤¬¡¢\IhadtoSplit
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{³Æbox¤ÎÀ¸À®}
+
+\DescribeMacro{\ft@indvdlbox@gen}
+\NoDescription
+ \begin{macrocode}
+ \end{macrocode}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{¿Íʪbox¤Îsize»»½Ð}
+
+\DescribeMacro{\ft@indvdlbox@calc}
+\NoDescription
+ \begin{macrocode}
+ \end{macrocode}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{\texttt{picture}¤Ë¤è¤ëlayout}
+
+\DescribeMacro{\ft@indvdlbox@layout}
+\NoDescription
+ \begin{macrocode}
+ \end{macrocode}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\parag{boxÏ¢·ë¤Îmain}
+
+\DescribeMacro{\ft@indvdlbox}
+\NoDescription
+ \begin{macrocode}
+ \end{macrocode}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsubsection{¿Íʪbox --- interface}
+
+\DescribeMacro{\ftindvdldef}
+\DescribeMacro{\indvdldef}
+»ØÄꤵ¤ì¤¿¾ðÊó¤Ë½¾¤¤¡¢
+\meta{box name}¤È¤¤¤¦Ì¾Á°¤Îbox¤òÀ¸À®¤¹¤ë¡£
+
+\meta{individula name}¤À¤±¤Î¹â¤µ|\ft@indvdl@nameH|¤òµá¤á¡¢
+¹¹¤Ëdepth¤â¹Íθ¤·¤¿ÃæÅÀ¤ò|\ft@indvdl@nameCY|¤ËÄêµÁ¤·¡¢
+°Ê¹ß¤ÎÀܳÅÀ¤ÎºÂɸ»»½Ð¤ËÍѤ¤¤ë¡£
+
+\meta{child mark}¤Ï¿Íʪbox¤ÎÀèƬ¤ËÃÖ¤­¡¢
+Á´¤Æ¤Î¹Ô¤ÏlayoutŪ¤Ë¤½¤Î¸ºß¤ò°Õ¼±¤¹¤ëɬÍפ¬¤¢¤ë¤¿¤á¡¢
+¾¤Î¹àÌܤè¤ê¤âÀè¤Ë·èÄꤷ¡¢
+|\ft@cmarkbox|¡¢
+¤ª¤è¤Ó¤½¤ÎÉý¤òɽ¤¹|\ft@cmarkW|¤òÄêµÁ¤¹¤ë¡£
+
+\meta{cmark}¤¬|\ftblank|°Ê³°¤Î¾ì¹ç¤Ï¡¢
+child-mark¤¬Â¸ºß¤¹¤ë¤³¤È¤òɽ¤¹global flag¤ò
+\meta{containerbox-name}¤Ë»ØÄꤵ¤ì¤¿Ì¾Á°¤ò´ð¤ËÄêµÁ¤¹¤ë¡£
+
+|\ft@optlst|¤Ë¤è¤ê\meta{additional info}¤ò²òÀϤ·¡¢
+°À­¤ò½ü¤¤¤¿¤â¤Î¤ò|\ft@indvdl@opts|¤Ë¤Þ¤È¤á¤ë¡£
+Ʊ»þ¤Ë|\ifft@maleline|¤òÀßÄꤷ¡¢
+°À­¤Ë|\maleline|¤¬»ØÄꤵ¤ì¤Æ¤¤¤ë¤«Èݤ«¤ò°Ê¹ßȽÃǤǤ­¤ë¤è¤¦¤Ë¤¹¤ë¡£
+
+¤³¤³¤Þ¤Ç¤ÎÁ°½èÍý¤òºÑ¤Þ¤»¤¿¸å|\ft@indvdlbox|¤Ë¤è¤ê¿Íʪ̾box¤òÀ¸À®¤¹¤ë¡£
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-lib-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-lib-ja.tex
new file mode 100644
index 00000000000..fc0e647c411
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-lib-ja.tex
@@ -0,0 +1,86 @@
+\iffalse
+Copyright 2022 Jiro Senju
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+\fi
+
+\section{library (\texttt{ft-lib.dtx})}
+
+ËÜʸ½ñÃæºÇ¸å¤Î¾Ï¤Ç¤Ï¤¢¤ë¤¬¡¢
+|ft-lib.dtx|¤Ï|sty|Æâ¤Ç¤ÏÀèƬ¤Ë°ÌÃÖ¤¹¤ë¡£
+
+\iffalse
+% \DescribeMacro{\ft@unit}
+% °ìʸ»ú¤Î²£Éý¤òɽ¤¹¡ÊÆü±ÑÂбþ¡Ë¡£
+%
+% \DescribeMacro{\if@tate}
+% |\if@tate|¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤documentclass¤ËÂбþ¤¹¤ë¡£
+% ¸ú²Ì¤Ï̤³Îǧ¡£
+%
+% \DescribeMacro{\ft@alias}
+% prefix |ft|¤ò½ü³°¤·¤¿alias¤òÄêµÁ¤¹¤ë¡£Ì¾Á°¤¬»È¤¨¤Ê¤±¤ì¤ÐÄü¤á¤Æ
+% |message|¤¹¤ë¡£
+% ¤Ê¤ó¤Ç¤³¤ó¤Ê¤ËÂô»³|\expandafter|¤¬É¬Íפˤʤë¤Î¤«Íý²ò¤Ç¤­¤Æ¤¤¤Ê¤¤¡£
+\fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{utility}
+
+\DescribeMacro{\ftymd}
+\DescribeMacro{\ymd}
+\cmd{\ftymd
+ \marg{year}
+ \oarg{month}
+ \oarg{date}
+}
+
+ǯ·îÆü¤òÀ°·Á¡¢°õ»ú¤¹¤ë¡£½Ä½ñ¤­¤Ë¤âÂбþ¤·¤Æ¤¤¤ë¡£
+|\indvdldef|¤ÎÉղþðÊó¤Ç¤ÎÍøÍѤòÁÛÄꤷ¤Æ¤¤¤ë¡£
+\bigskip
+
+\DescribeMacro{\ftundef}
+\cmd{\ftundef
+ \marg{box name}
+}
+
+̾Á°¤Ë\meta{box name}¤ò»ý¤Ä¤â¤Î¤òÁ´¤Æ̤ÄêµÁ¤È¤¹¤ë¡£
+prefix |ft|¤Ê¤·¤Îalias¤ÏÀߤ±¤Ê¤¤¡£
+
+\iffalse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{internal library}
+%
+% \parag{global variable}
+%
+% \parag{utility function}
+%
+% \DescribeMacro{\ft@namexdef}
+% \DescribeMacro{\ft@namexdefstrip}
+%
+% \DescribeMacro{\ft@savenamebox}
+% \DescribeMacro{\ft@newnamebox}
+%
+% \DescribeMacro{\ft@nameboxsz}
+% \DescribeMacro{\ft@boxsz}
+%
+% \DescribeMacro{\ft@list@append}
+%
+% \parag{debugging}
+%
+% \DescribeMacro{\ifftdbg}
+% \DescribeMacro{\ft@dbgmsg}
+% \DescribeMacro{\ft@dbgframe}
+% \DescribeMacro{\ft@dbgplot}
+% \DescribeMacro{\ft@dbgbox}
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-marriage-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-marriage-ja.tex
new file mode 100644
index 00000000000..1076439f990
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-marriage-ja.tex
@@ -0,0 +1,219 @@
+\iffalse
+Copyright 2022 Jiro Senju
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+\fi
+
+\section{º§°ù´Ø·¸ (\texttt{ft-marriage.dtx})}
+
+\DescribeMacro{\mrrgdef}
+\cmd{\mrrgdef
+ \marg{new box name}
+ \marg{spouse list A}
+ \marg{oneself}
+ \marg{spouse list B}
+ \oarg{childline xlength}
+}
+\medskip
+
+»ØÄꤵ¤ì¤¿\meta{new box name}¤Çbox¤òÄêµÁ¤¹¤ë¡£
+ºÆº§¤ä¦¼¼¤Ê¤É¤Ë¤âÂбþ¤¹¤ë¤Ù¤¯¡¢ÇÛ¶ö¼Ô¤Ïlist·Á¼°¤Ç»ØÄꤹ¤ë¡£
+|\indvdldef|¤ÇÄêµÁ¤·¤¿box¤Î̾Á°¤ò¥«¥ó¥Þ¶èÀÚ¤ê¤Îlist¤È¤·¤ÆÍ¿¤¨¤ë¡£
+\meta{spouse list A}¤ÏËÜ¿Í¡Ê\meta{oneself}¡Ë¤Î¾å¦¡Ê½Ä½ñ¤­¤Ê¤é¤Ð±¦¡Ë¤Ë¡¢
+\meta{spouse list B}¤ÏËÜ¿Í¡Ê\meta{oneself}¡Ë¤Î²¼Â¦¡Ê½Ä½ñ¤­¤Ê¤é¤Ðº¸¡Ë¤Ë¡¢
+¤½¤ì¤¾¤ìÇÛÃÖ¤¹¤ë¡£
+¤¤¤Å¤ì¤â\CS ¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ
+¡ÊËÁƬ¤Ëbackslash¤ò´Þ¤Þ¤Ê¤¤¡Ë¡£
+\smallskip
+
+Á´°÷¤òƱÎó¤Ëʤ١¢Àµ¼°¤Êº§°ù´Ø·¸¤ÏÆó½Å¼ÂÀþ¤Ç¡¢Àµ¼°¤Ç¤Ê¤±¤ì¤Ð
+¡Ê|\private|°À­¡Ë
+Æó½ÅÅÀÀþ¤Ç·ë¤Ö¡£
+Æó½ÅÀþ¤Î°ÌÃÖ¤Ï\meta{oneself}¤Î¿Íʪ̾¤ÎÃæÅÀ¤È¤¹¤ë¡£
+\smallskip
+
+»Ò¤ò¤â¤¦¤±¤¿É×ÉØ
+¡ÊÇÛ¶ö¼Ô¤¬|\haschild|°À­¤ò»ý¤Ä¡Ë
+´Ö¤ÎÆó½ÅÀþ¤«¤é¤Ï»Ò¤ò¤Ä¤Ê¤°Àþ¤òÉÁ¤¯¡£
+\smallskip
+
+|\sblngdef|ƱÍͤ˴ֳ֤ò¶õ¤±¤ë¾ì¹ç¤Ïinterval box¤òÁÞÆþ¤Ç¤­¤ë¡£
+\medskip
+
+|\indvdldef|ƱÍͤˡ¢¸å¤Ç»ÈÍѤ¹¤ëºÂɸ¡Êñ°Ì¤Ï|pt|¡Ë¤òɽ¤¹\CS ¤âÄêµÁ¤¹¤ë¡£
+ºÂɸ¤Î¸¶ÅÀ¤Ï¤½¤ì¤¾¤ì¡¢
+²£½ñ¤­¤Î¾ì¹ç¤Ïboxº¸²¼¡¢
+½Ä½ñ¤­¤Î¾ì¹ç¤Ïboxº¸¾å¤Ç¤¢¤ë¡£
+
+\begin{itemize}
+\item \meta{box name}|nameCY|
+\par
+º§°ù´Ø·¸boxÆâ¤Ç¤ÎËÜ¿Í¡Ê\meta{oneself}¡Ë¤Î¿Íʪ̾¤Î¹â¤µ¤ÎÃæ±û
+¡Ê½Ä½ñ¤­¤Ê¤é¤ÐÉý¤ÎÃæ±û¡Ë
+
+\item \meta{box name}\meta{\kern0pt ¿Íʪbox name}|nameCY|
+\par
+º§°ù´Ø·¸boxÆâ¤Ç¤Îcmark¤ò»ý¤Ä¿Íʪ̾¤Î¹â¤µ¤ÎÃæ±û
+
+\item \meta{box name}\meta{\kern0pt ¿Íʪbox name}|mrrgCY|
+\par
+º§°ù´Ø·¸boxÆâ¤Ç¤Î|\haschild|°À­¤ò»ý¤Ä¿Íʪ̾¤Èº§°ùÀþ¤È¤ÎÃæÅÀ
+\end{itemize}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{¥«¥¹¥¿¥Þ¥¤¥º}
+
+% ÇÛÃÖ¤òÄ´À°¤¹¤ëµ¡Ç½¤â¤¢¤ë¡£
+% Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+% Â礷¤¿¤³¤È¤Ï¤·¤Æ¤¤¤Ê¤¤¤Î¤ÇɬÍפ˱þ¤¸»²¾È\jslash »ÈÍѤ¹¤ëÄøÅÙ¤ÇÎɤ¤¡£
+% °ú¿ôÅù¾ÜºÙ¤Ï¼ÂÁõ¤ò»²¾È¤Î¤³¤È¡£
+% \medskip
+
+\DescribeMacro{\mrrgboxcfg}
+\cmd{\mrrgboxcfg
+ \marg{space between two lines}
+ \marg{space between name and the line}
+ \marg{line length}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\clearpage
+\subsection{Îã}
+
+\begin{enumerate}
+\item
+\srcfig{fig4Hidetada}
+\clearpage
+
+\item
+\srcfig{fig4Ogou}
+\end{enumerate}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{ƱÀ¤ÂåÆâ¤ÎÇÛÃ֤ȷëÀþ}
+
+°ì¤Ä¤Î\FamilyTree ¤Ë¤Ê¤ó¤Ç¤â¤«¤ó¤Ç¤âµÍ¤á¹þ¤à¤Î¤Ï̵Íý¤¬¤¢¤ë¡£
+
+Î㤨¤ÐÉ×Éؤ¬¤È¤â¤ËºÆº§¤·¤Æ¤¤¤¿¾ì¹ç¡¢Á´°÷¤òƱÎó¤Ëʤ٤Ƥϸ«¤Ë¤¯
+¤¯¤Ê¤ë¤Ð¤«¤ê¤À¡£Àè¤Ëµó¤²¤¿Æó¤Ä¤Î¿Þ¤Ï½¨ÃéÉ×Éؤòɽ¤¹¤È¸À¤¨¤ÐƱ¤¸¤Ë¤Ê¤Ã¤Æ
+¤·¤Þ¤¦¤¬¡¢´ÑÅÀ¤ò½¨Ãé¤Ë¤¹¤ë¤«¤ª¹¾¤Ë¤¹¤ë¤«¤Ç¿ïʬ°ã¤¦¿Þ¤Ë¤Ê¤ë¡£¤³¤ÎÆó¤Ä¤Î
+¿Þ¤ò¹çÂΤµ¤»¤ë¤Î¤Ï¤Þ¤ºÌµÍý¤È
+»×¤¦¡£¿Íʪ¤ò¸º¤é¤¹¤«¡¢É×Éؤ½¤ì¤¾¤ì¤ò¼ç¿Í¸ø¤Ë¤·¤¿¿Þ¤ÎÆó¤Ä¤Ëʬ¤±¤ë¤·¤«¤Ê¤¤¡£
+¤½¤ì¤Ç¤â¼«¿È¤ÎÀèÁĤä»Ò¹¤¬ÇÛ¶ö¼Ô¦¤ÎÀèÁÄ\jslash »Ò¹¤È´Ø·¸¤ò
+»ý¤Ä¾ì¹ç¤¬¤¢¤ì¤Ð¡¢¹¹¤Ëʬ³ä¤»¤¶¤ë¤òÆÀ¤Ê¤¤¤À¤í¤¦¡£
+
+·»Äï»ÐËå´Ø·¸¤Èº§°ù´Ø·¸¤òƱ»þ¤Ëɽ¸½¤¹¤ë¾ì¹ç¤âƱÍͤÀ¡£
+ƱÀ¤ÂåÆâ¤ÇÀþ¤¬Æþ¤êÍð¤ì¤ë¤È¿Þ¤¬¸«¤Ë¤¯¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¦¡£
+\refnm{sec:Lily1}¤ÎÎã¤òºÆÍøÍѤ·¹Í¤¨¤Æ¤ß¤ë¡£
+
+Petunia -- Lily»ÐË夬¤½¤ì¤¾¤ì·ëº§¤·¤¿¾ì¹ç¡¢»ÐËå´Ø·¸¤Èº§°ù´Ø·¸¤òƱ»þ¤Ë¡¢
+¤«¤ÄåºÎï¤Ëɽ¸½¤Ç¤­¤ë¤À¤í¤¦¤«¡£
+
+¤Þ¤ºÆóÁȤÎÉ×ÉؤòÄêµÁ¤·¡¢¸å¤Ë»ÐËå´Ø·¸¤òÄêµÁ¤¹¤ë¡£
+\bigskip
+
+\srcfig{fig4Lily1}
+\medskip
+
+É×ÉØñ°Ì¤Ç¸«¤ì¤ÐÌäÂê¤Ï¤Ê¤¤¤«¤â¤·¤ì¤Ê¤¤¤¬¡¢»ÐËå´Ø·¸¤ò·ë¤Ö¤È¸«¤Å¤é¤¤¿Þ¤È¤Ê¤Ã¤Æ¤·
+¤Þ¤¦¡£¸¶°ø¤Ë¤Ê¤ê¤¦¤ëÅÀ¤Ï¼¡¤Î»°¤Ä¤À¤í¤¦¡£
+
+\begin{enumerate}
+\item º§°ù´Ø·¸¤òɽ¤¹Æó½ÅÀþ¤Î°ÌÃÖ¤¬Â·¤Ã¤Æ¤¤¤Ê¤¤¡£
+\item »Ò¤ò¤Ä¤Ê¤°Àþ¤ÎŤµ¤â°Û¤Ê¤Ã¤Æ¤ª¤ê¡¢¤³¤Î¾õÂ֤ǻҤò¤Ä¤Ê¤°¤È¸«¤Å¤é¤µ¤Ë
+ Çï¼Ö¤¬¤«¤«¤ë¡£
+\item James¤¬Petunia¤ÈLily¤Î´Ö¤Ë³ä¤ê¹þ¤ó¤Ç¤ª¤ê¡¢»ÐËå´Ø·¸¤ò¸«¤Å¤é¤¯¤·¤Æ
+¤¤¤ë¡£
+\end{enumerate}
+
+°ìÅÀÌܤÎÆó½ÅÀþ¤Î°ÌÃÖ¤ò·¤¨¤ì¤Ð¡¢ÆóÅÀÌܤÎÀþĹÉÔ·¤¤¤â¼«Æ°Åª¤Ë²ò¾Ã¤µ¤ì¤ë¡£
+¤³¤ì¤Ë¤Ï\refnm{sec:Lily1}¤Ç¤â¾Ò²ð¤·¤¿¡¢Lily box¤ÎÉý¤òPetunia box¤Î¤½¤ì
+¤Ë·¤¨¤ëÊýË¡¤¬»È¤¨¤ë¡£
+»°ÅÀÌܤÎJames¤Î°ÌÃÖ¤À¤¬¡¢¤Þ¤º¤Ï´Ö³Ö¤ò³È¤²¤Æ¤ß¤ë¡£
+\bigskip
+
+\srcfig{fig4Lily2}
+\medskip
+
+´Ö³Ö¤ò³È¤²¤Æ¤â»ÐËåÀþ¤¬James¤ò¸Ù¤¤¤Ç¤¤¤ë¤³¤È¤ÏÊѤï¤é¤Ê¤¤¡£¸«¤Å¤é¤µ¤Ï²þ
+Á±¤µ¤ì¤¿¤À¤í¤¦¤«¡©
+¹¹¤Ë²þÁ±¤¹¤ë¤Ë¤ÏJames¤ÈLily¤Î½ç½ø¤òÆþ¤ìÂؤ¨¤ë¤·¤«¤Ê¤¤¡£
+\bigskip
+
+\srcfig{fig4Lily3}
+\medskip
+
+Æþ¤ìÂؤ¨¤¿¾å¤Ç´Ö³Ö¤ò³È¤²¤ë¤Î¤â°ì¤Ä¤Î¼ê¤À¡£
+\bigskip
+
+\srcfig{fig4Lily4}
+\medskip
+
+¤³¤ì¤¬best¤À¤í¤¦¤«¡©
+¸«¤ä¤¹¤µ\jslash ¸«¤Ë¤¯¤µ¤Ï¼ç´Ñ¤ä¹¥¤ß¤¬¶¯¤¯½Ð¤ë½ê¤À¡£
+¸Ä¿ÍŪ¤Ë¤ÏÉ×Éؤνç½ø¤¬ÊѤï¤Ã¤Æ¤¤¤ëÅÀ¤ËÄñ¹³¤ò³Ð¤¨¤ë¡£¤À¤¬¡¢»ÐËå¤Ë´ÑÅÀ¤ò
+ÃÖ¤¤¤¿\FamilyTree ¤Ê¤é¤Ð¡¢¤³¤Î·Á¤âÍ­¤ê¤À¤Èǧ¤á¤¶¤ë¤òÆÀ¤Ê¤¤¡£·Ï¿ÞÆâ¤Î¾
+¤ÎÉôʬ¤È¤Î¥Ð¥é¥ó¥¹¤â¤¢¤ë¤Î¤Ç¡¢ºÇ½ªÅª¤Ë¤ÏÁí¹çŪ¤ËȽÃǤ¹¤ë¤â¤Î¤À¤í¤¦¡£
+º§°ù´Ø·¸¤ò´Þ¤á¤Ê¤¤\Matrilineal ¿Þ¤âÀѶËŪ¤Ë¸¡Æ¤¤·¤¿¤¤¡£
+
+\iffalse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \parag{¥«¥¹¥¿¥Þ¥¤¥º}
+%
+% \DescribeMacro{\ftmrrgboxcfg}
+% \DescribeMacro{\mrrgboxcfg}
+% º§°ùbox¤òÀ¸À®¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë
+% Æó½ÅÀþ¤Î´Ö³Ö¡¢
+% Æó½ÅÀþ¤È¿Íʪ̾¤È¤Îµ÷Î¥¡¢
+% Æó½ÅÀþ¤ÎŤµ
+% ¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¡£
+%
+% Êѹ¹¤·¤Ê¤¤¤â¤Î¤Ë¤Ï¶õ¤ò»ØÄꤹ¤ì¤ÐÎɤ¤¡£
+%
+% \parag{²òÀÏ}
+%
+% \DescribeMacro{\ft@mrrg@parse}
+% °ú¿ô¤ò²òÀϤ·¡¢º§°ùbox¤Îsize¤ò»»½Ð¤¹¤ë¡£
+%
+% »Ò¤Ë¤Ä¤Ê¤¬¤ëÀþ¤òÉÁ¤¯¾ì¹ç¡¢°ìÈÖŤ¤¤â¤Î¤Ë
+% |\ft@namebox@maleline@length|¤ò²Ã¤¨¤¿Ä¹¤µ¤Ë·¤¨¤ë¡£
+%
+% \parag{º§°ù´Ø·¸Àþ¤ÎÉÁ²è}
+%
+% \DescribeMacro{\ft@mrrg@line}
+% ËܿͤÈÇÛ¶ö¼Ô¤òÆó½ÅÀþ¤Ç¤Ä¤Ê¤°¡£
+%
+% ÇÛ¶ö¼Ô¤¬|\haschild|°À­¤ò»ý¤Ã¤Æ¤¤¤ì¤Ð¡¢Æó½ÅÀþ¤ÎÃæÅÀ¤«¤é»Ò¤Ø¤Ä¤Ê¤°¤¿¤á
+% ¤ÎÀþ¤âÉÁ¤­¡¢¤½¤ÎºÂɸ¤ò\meta{box name}\meta{\kern0pt ¿Íʪbox name}|mrrgCY|¤ËÄê
+% µÁ¤¹¤ë¡£
+%
+% \parag{¿Íʪ̾¤ÎÇÛÃÖ}
+%
+% \DescribeMacro{\ft@mrrg@name}
+% child mark°À­¤ò»ý¤Ä¿Íʪbox¤Î¾ì¹ç¤Ï¡¢\meta{box name}\meta{\kern0pt ¿Íʪbox
+% name}|nameCY|¤òÄêµÁ¤¹¤ë¡£
+%
+% \subsubsection{¿Íʪbox¤ÎÇÛÃ֤ȷëÀþ --- core}
+%
+% \DescribeMacro{\ft@mrrg@spouse}
+% ÇÛ¶ö¼ÔlistÆâ¤ÎÍ×ÁǤ½¤ì¤¾¤ì¤òÇÛÃÖ¤·¡¢º§°ù´Ø·¸Àþ¤òÉÁ¤¯¡£
+%
+% \subsubsection{º§°ùbox --- interface}
+%
+% \DescribeMacro{\ftmrrgdef}
+% \DescribeMacro{\mrrgdef}
+% ÇÛÃÖ¤·¤¿boxÆâ¤Ç¤ÎËÜ¿Í¡Ê\meta{oneself}¡Ë¤Î|nameCY|¤ò¡¢\meta{box name}|nameCY|¤È
+% ¤·¤ÆÄêµÁ¤¹¤ë¡£Æ±ÍͤËËܿͤÎ|hascmark|¤ò¤½¤Î¤Þ¤Þ\meta{box
+% name}|hascmark|¤È¤¹¤ë¡£
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-sibling-ja.tex b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-sibling-ja.tex
new file mode 100644
index 00000000000..00567f863a6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/doc-ja/ft-sibling-ja.tex
@@ -0,0 +1,181 @@
+\iffalse
+Copyright 2022 Jiro Senju
+
+This package is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+any later version.
+
+This package is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this package. If not, see <http://www.gnu.org/licenses/>.
+\fi
+
+\section{·»Äï»ÐËå´Ø·¸ (\texttt{ft-sibling.dtx})}
+
+\DescribeMacro{\sblngdef}
+\cmd{\sblngdef
+ \marg{new box name}
+ \marg{name list of individual boxes}
+}
+\medskip
+
+|\indvdldef|¤ÇÄêµÁ¤·¤¿box¤Î̾Á°¤ò¥«¥ó¥Þ¶èÀÚ¤ê¤Îlist¤È¤·¤ÆÍ¿¤¨¤ë¡£
+ƱÎó¤Ëʤ١¢·»Äï»ÐËå´Ö¤òÀþ¤Ç¤Ä¤Ê¤¤¤Àbox¤ò¡¢
+»ØÄꤵ¤ì¤¿\meta{new box name}¤ÇÄêµÁ¤¹¤ë¡£
+¤¤¤Å¤ì¤â\CS ¤Ç¤Ï¤Ê¤¤ÅÀ¤ËÃí°Õ
+¡ÊËÁƬ¤Ëbackslash¤ò´Þ¤Þ¤Ê¤¤¡Ë¡£
+
+»ØÄꤵ¤ì¤¿·»Äï»ÐËå¤ÎÆâ¡¢|\maleline|°À­¤ò»ý¤Ä¼Ô¤¬Ê£¿ôºß¤ì¤Ð¡¢°ìÈÖŤ¤
+¤â¤Î¤ËÀþ¤ÎŤµ¤ò·¤¨¤ë¡£
+\smallskip
+
+|\indvdldef|ƱÍͤˡ¢¸å¤Ç»ÈÍѤ¹¤ëºÂɸ¡Êñ°Ì¤Ï|pt|¡Ë¤òɽ¤¹\CS ¤âÄêµÁ¤¹¤ë¡£
+ºÂɸ¤Î¸¶ÅÀ¤Ï¤½¤ì¤¾¤ì¡¢
+²£½ñ¤­¤Î¾ì¹ç¤Ïboxº¸²¼¡¢
+½Ä½ñ¤­¤Î¾ì¹ç¤Ïboxº¸¾å¤Ç¤¢¤ë¡£
+
+\begin{itemize}
+\item \meta{box name}|nameCY|
+\par
+·»Äï»ÐËåã¤ò¤Ä¤Ê¤°Àþ¤ÎÃæ±û
+\par
+·»Äï»ÐËå´Ö¤ò¤Ä¤Ê¤°Àþ¤È¤Ï¤¹¤Ê¤ï¤Á\meta{listÀèƬbox}|nameCY|¤È\meta{list
+ËöÈøbox}|nameCY|¤ò¤Ä¤Ê¤°Àþ¤Ç¤¢¤ë¡£
+
+\item \meta{box name}\meta{\kern0pt ¿Íʪbox name}|nameCY|
+\par
+·»Äï»ÐËåboxÆâ¤Ç¤Î¿Íʪ̾¤½¤ì¤¾¤ì¤Î¹â¤µ¤ÎÃæ±û
+¡Ê½Ä½ñ¤­¤Ê¤é¤ÐÉý¤ÎÃæ±û¡Ë
+\par
+|\indvdldef|¤¬ÄêµÁ¤·¤¿\meta{\kern0pt ¿Íʪbox name}|nameCY|¤¬
+·»Äï»ÐËåboxÆâ¤Ç¤Î¿Íʪ̾¤Ë¹ç¤ï¤»¤ÆÊ¿¹Ô°ÜÆ°¤·¤¿¤È¤â¸À¤¨¤ë¡£
+\end{itemize}
+\bigskip
+
+\DescribeMacro{\ivaldef}
+\cmd{\ivaldef
+ \marg{new box name}
+ \marg{length}
+}
+\medskip
+
+\FamilyTree ¤Ç¤Ï·»Äï»ÐËå¤Î»Ò¹¤¬Â¿¤¤¾ì¹çÅù¡¢
+·»Äï»ÐËå´Ö¤Î´Ö³Ö¤ò³È¤²¤ë»ö¤¬¤¢¤ë¡£
+¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Ë¤Ï|\ivaldef| (interval box)
+¤ÇÀ¸À®¤·¤¿¡¢Ãæ¿È¤¬¶õ¤Îbox¤ò¼êÆ°¤ÇÁÞÆþ¤¹¤ë¡£
+¤³¤Îpackage¤Ç¤Ïͽ¤á»°¤Ä¤Îbox¤òÄêµÁ¤·¤Æ¤¢¤ë¡£
+|\ival|¡¢|\ivali|¡¢|\ivalii|¤Ç¤¢¤ê¡¢
+Ãæ¿È¤Ï¶õ¤À¤¬¤½¤ì¤¾¤ì|0.5zw|¡¢|1zw|¡¢|2zw|¤Îlength¤ò»ý¤Ä
+¡Ê¸·Ì©¤Ë¸À¤¦¤È¡¢Æü±ÑÂбþ¤Î¤¿¤á|1zw|¤ò|\ft@unit|¤È¤·¤ÆºÆÄêµÁ¤·¤Æ¤ª¤ê¡¢¤³¤³
+ ¤Ç¤Ï|.5\ft@unit|¡¢|1\ft@unit|¡¢|2\ft@unit|¤Îinterval box¤È¤·¤Æ¤¤¤ë¡Ë¡£
+
+|\ivaldef|¤Ï|\global\newsavebox|¤¹¤ë¤Î¤Ç¡¢
+Íðȯ¤·¤Æ¤Ï»ñ¸»¾ÃÈñ¤¬ÌäÂê¤Ë¤Ê¤ë¶²¤ì¤¬¤¢¤ë¡£
+¤½¤Î¾ì¹ç¤Ï¸å½Ò¤¹¤ë|\sblngboxcfg|¤ÇÁ´¤Æ¤Î·»Äï»ÐËå´Ö¤ËƱ¤¸´Ö³Ö¤òÀߤ±¤ì¤ÐÌäÂê
+¤ò²óÈò¤Ç¤­¤ë¡£¤Þ¤¿¤Ï¡¢¾®¤µ¤Ê¶õÇò¤òÊ£¿ôϢ³¤·¤ÆÁÞÆþ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¢
+¤ë¡£
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{¥«¥¹¥¿¥Þ¥¤¥º}
+
+% ÇÛÃÖ¤òÄ´À°¤¹¤ëµ¡Ç½¤â¤¢¤ë¡£
+% Â礷¤¿¤³¤È¤Ï¤·¤Æ¤¤¤Ê¤¤¤Î¤ÇɬÍפ˱þ¤¸»²¾È\jslash »ÈÍѤ¹¤ëÄøÅ٤Τâ¤Î¡£
+% °ú¿ôÅù¾ÜºÙ¤Ï¸å½Ò¤¹¤ë¡£
+% \smallskip
+
+\DescribeMacro{\sblngboxcfg}
+\cmd{\sblngboxcfg
+ \marg{space between the siblings}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Îã}
+
+\begin{enumerate}
+\itemsep=\bigskipamount
+\item
+\srcfig{fig2base}
+
+\item
+\srcfig{fig2Hidetada}
+
+\item
+\srcfig{fig2ival}
+
+\needspace{5\baselineskip}
+\item
+\srcfig{fig2cfg}
+\end{enumerate}
+
+\iffalse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{interval box}
+%
+% \DescribeMacro{\ftivaldef}
+% \DescribeMacro{\ivaldef}
+% ¥µ¥¤¥º¤Ï»ý¤Ä¤¬Ãæ¿È¤¬¶õ¤Îbox¤òÀ¸À®¤¹¤ë¡£
+% ·»Äï»ÐËå´Ö¤Ë·ä´Ö¤È¤·¤ÆÁÞÆþ¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë¡£
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \parag{pre-defined interval boxes}
+%
+% \DescribeMacro{\ftival}
+% \DescribeMacro{\ival}
+%
+% \DescribeMacro{\ftivali}
+% \DescribeMacro{\ivali}
+%
+% \DescribeMacro{\ftivalii}
+% \DescribeMacro{\ivalii}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \parag{¥«¥¹¥¿¥Þ¥¤¥º}\
+%
+% \DescribeMacro{\ftsblngboxcfg}
+% \DescribeMacro{\sblngboxcfg}
+% ·»Äï»ÐËå¤òÀ°·Á\jslash ÇÛÃÖ¤·¤¿box¤òÀ¸
+% À®¤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë·»Äï»ÐËå´Ö¤Î´Ö³Ö
+% ¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤ë¡£
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{·»Äï»ÐËåbox --- core}
+%
+% »ØÄꤵ¤ì¤¿·»Äï»ÐËå¤òÁ´¤ÆƱÎó¤Ëʤ١¢´Ø·¸Àþ¤ò·ë¤Ö¡£
+% »ØÄꤵ¤ì¤¿Ì¾Á°¤Çbox¤òÀ¸À®¤¹¤ë¡£
+%
+% »ØÄꤵ¤ì¤¿·»Äï»ÐËå¤ÎÆâ¡¢|\maleline|°À­¤ò»ý¤Ä¼Ô¤¬Ê£¿ôºß¤ì¤Ð¡¢°ì
+% ÈÖŤ¤¤â¤Î¤ËÀþ¤ÎŤµ¤ò·¤¨¤ë¡£
+% ¿Íʪ̾¤ÈÀþ¤Î´Ö¤Ë¤Ï¤³¤³¤Ç¤â|\ft@namebox@maleline@sp|ʬ¤Î¶õÇò¤òÀߤ±¤ë¡£
+%
+% \IhadtoSplit
+%
+% \DescribeMacro{\ft@sblng@maleline}
+% |maleline|¤ÎŤµ¤ò·¤¨¤ë¡£
+%
+% \DescribeMacro{\ft@sblng@connect}
+% ·»Äï»ÐËå´Ö¤òÀþ¤Ç¤Ä¤Ê¤°¡£
+%
+% Àþ¤ÎÃæÅÀ¤ò\meta{box-name}|nameCY|¤È¤·¤ÆÄêµÁ¤¹¤ë¡£
+%
+% \DescribeMacro{\ft@sblng@layout}
+% ÇÛÃÖ¤·¡¢Àþ¤Ç¤Ä¤Ê¤°¡£
+%
+% ¿Íʪ̾¤òÇÛÃÖ¤·¤¿¹â¤µ¤ò\meta{box name}\meta{\kern0pt ¿Íʪbox
+% name}|nameCY|¤È¤·¤ÆÄêµÁ¤¹¤ë¡£
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{·»Äï»ÐËåbox --- interface}
+%
+% \DescribeMacro{\ftsblngdef}
+% \DescribeMacro{\sblngdef}
+% Á°½èÍý¤È¤·¤ÆÁ´ÂÎ¥µ¥¤¥º¤ò»»½Ð¤·¡¢core¤Ç¤¢¤ë|\ft@sblng@layout|¤ò¼Â¹Ô¤¹¤ë¡£
+% member¤Ë|\maleline|°À­¤ò»ý¤Ä¤â¤Î¤¬µï¤ë¤±¤ì¤É¡¢
+% ¤â¤Ã¤È¤âÉý¤¬¹­¤¤¿Íʪbox¤Ï|\maleline|°À­¤ò»ý¤Ã¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢
+% ¤³¤Îbox¤ÎÉý¤ò³È¤²¡¢maleline¤ÎŤµ¤ò±ä¤Ð¤¹¡£
+% ±ä¤Ð¤¹Î̤Ï|\ft@namebox@maleline@length|¤Ç¤¢¤ë¡£
+\fi
diff --git a/Master/texmf-dist/doc/latex/familytree/familytree-ja.pdf b/Master/texmf-dist/doc/latex/familytree/familytree-ja.pdf
new file mode 100644
index 00000000000..83fa88daac7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/familytree-ja.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/familytree/familytree.pdf b/Master/texmf-dist/doc/latex/familytree/familytree.pdf
new file mode 100644
index 00000000000..f9f413e737b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/familytree.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/Makefile b/Master/texmf-dist/doc/latex/familytree/figs/Makefile
new file mode 100644
index 00000000000..15612d8f80e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/Makefile
@@ -0,0 +1,76 @@
+
+Dir ?= /tmp
+export Dir
+
+include ../cmd.mk
+Lo = '\def\Dir{'${Dir}'}'
+
+Fig = $(addprefix fig1Robert, 1 2)
+Fig += fig2base fig2sis fig2ival
+Fig += $(addprefix fig3Robert, 1 2) $(addprefix fig3Lily, 1 2 3 4)
+Fig += fig4Robert fig4HenryVIII $(addprefix fig4Lily, 1 2 3 4)
+
+figPdf = $(addprefix ${Dir}/, $(addsuffix .pdf, ${Fig}))
+figPrint = $(addprefix ${Dir}/, $(addsuffix print.tex, ${Fig}))
+Tgt = ${figPdf} ${figPrint}
+
+########################################
+
+all: ${Tgt}
+
+clean:
+ ${RM} *~ ${Tgt}
+
+install:
+# do nothing
+
+########################################
+
+fig: ${figPdf}
+${figPdf}: Lo = '\def\figsrc{$(notdir $(basename $@))}'
+${figPdf}: ${Dir}/%.pdf: fig.tex %.tex #${Dir}/${Name}.sty
+ $(call MakeFigPdf,$(basename $@),fig)
+
+########################################
+
+untilComment = $(addprefix ${Dir}/, $(addsuffix print.tex, \
+ fig1Robert1 fig2base fig2sis fig3Lily1 fig4Robert))
+${untilComment}: ${Dir}/%print.tex: %.tex
+ sed -e '/^%$$/,$$d' -e 's/.hfill//' $< | grep -v '^%' > $@
+
+noIndvdl = $(addprefix ${Dir}/, $(addsuffix print.tex, \
+ fig2ival fig3Robert2))
+${noIndvdl}: ${Dir}/%print.tex: %.tex
+ fgrep -vw indvdldef $< |\
+ fgrep -vx '' |\
+ $(call MakePrintTex, -) > $@
+
+${Dir}/fig3Lily2print.tex: ${Dir}/%print.tex: %.tex
+ { \
+ echo ...; \
+ fgrep -vw indvdldef $< |\
+ sed -e '/tabular/,$$d' |\
+ $(call MakePrintTex, -); \
+ } > $@
+
+$(addprefix ${Dir}/, $(addsuffix print.tex, \
+ fig3Lily3 fig3Lily4 fig4Lily2)): ${Dir}/%print.tex: %.tex
+ { \
+ echo ...; \
+ sed -e '0,/newsavebox/d' -e '/tabular/,$$d' $< |\
+ $(call MakePrintTex, -); \
+ } > $@
+
+${Dir}/fig4Lily3print.tex: n = 4
+${Dir}/fig4Lily4print.tex: n = 2
+$(addprefix ${Dir}/, $(addsuffix print.tex, \
+ fig4Lily3 fig4Lily4)): ${Dir}/%print.tex: %.tex
+ { \
+ echo ...; \
+ tail -${n} $<; \
+ } > $@
+
+${Dir}/%print.tex: %.tex
+ $(call MakePrintTex, $<) > $@
+
+-include priv.mk
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig.tex
new file mode 100644
index 00000000000..19d0fceafb3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig.tex
@@ -0,0 +1,9 @@
+\documentclass[]{article}
+\usepackage{familytree}
+\begin{document}
+\pagestyle{empty}
+\hfill
+\input{\figsrc}
+\hfill
+\hskip0pt
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig1Robert1.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig1Robert1.tex
new file mode 100644
index 00000000000..22adc5d1ab4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig1Robert1.tex
@@ -0,0 +1,19 @@
+\indvdldef[\fttop]{Robert}{Robert Crawley}[\maleline]
+\fbox{\usebox{\Robert}}\hfill
+%
+\makeatletter
+\let\nameuse=\@nameuse
+\makeatother
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ \begin{tabular}{l|l}%
+ \boxsz{RobertnameX}%
+ \boxsz{RobertnameCX}%
+ \boxsz{RobertnameCY}%
+ \end{tabular}%
+}
+\par
+\bigskip
+\hfill\tblA
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig1Robert2.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig1Robert2.tex
new file mode 100644
index 00000000000..ab7c617a4be
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig1Robert2.tex
@@ -0,0 +1,3 @@
+\indvdldef{Robert}[7th]{Robert Crawley}
+ [7th Earl of Grantham,\maleline]
+\fbox{\usebox{\Robert}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig2base.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig2base.tex
new file mode 100644
index 00000000000..549aa5b8cca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig2base.tex
@@ -0,0 +1,13 @@
+\indvdldef{A}{one's name}[\maleline]
+\indvdldef{B}{one's loooong name}[\maleline]
+\sblngdef{ABbro}{A,B}
+%
+{
+\def\arraystretch{1.5}
+\begin{tabular}{l}
+\fbox{\usebox{\A}}\\
+\fbox{\usebox{\B}}\\
+\\
+\fbox{\usebox{\ABbro}}
+\end{tabular}
+}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig2ival.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig2ival.tex
new file mode 100644
index 00000000000..6f820195bc7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig2ival.tex
@@ -0,0 +1,5 @@
+\indvdldef{youngSybil}{Lady Sybil}
+\indvdldef{youngEdith}{Lady Edith}
+\indvdldef{youngMary}{Lady Mary}
+\sblngdef{youngSis}{youngMary,ivali,youngEdith,ivalii,youngSybil}
+\fbox{\usebox{\youngSis}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig2sis.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig2sis.tex
new file mode 100644
index 00000000000..aab069ead53
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig2sis.tex
@@ -0,0 +1,25 @@
+\sblngboxcfg{1ex}
+\indvdldef{youngSybil}{Lady Sybil}
+\indvdldef{youngEdith}{Lady Edith}
+\indvdldef{youngMary}{Lady Mary}
+\sblngdef{youngSis}{youngMary,youngEdith,youngSybil}
+\fbox{\usebox{\youngSis}}
+\hfill
+%
+\makeatletter
+\let\nameuse=\@nameuse
+\makeatother
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ \begin{tabular}{l|l}%
+ \boxsz{youngSisnameCY}%
+ \boxsz{youngSisyoungMarynameCY}%
+ \boxsz{youngSisyoungEdithnameCY}%
+ \boxsz{youngSisyoungSybilnameCY}%
+ \end{tabular}%
+}
+\par
+\bigskip
+\hfill\tblA
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily1.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily1.tex
new file mode 100644
index 00000000000..41dbc8dc1cb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily1.tex
@@ -0,0 +1,16 @@
+\indvdldef{Dudly}{Dudly}
+\indvdldef{Petunia}{Petunia}[\matrilineal]
+\pcdef{Dursleys}{Petunia}{Dudly}
+
+\indvdldef{Harry}{Harry}
+\indvdldef{Lily}{Lily}[\matrilineal]
+\pcdef{Potters}{Lily}{Harry}
+
+\sblngdef{sis}{Dursleys,Potters}
+%
+\begin{tabular}{l}
+\fbox{\usebox{\Dursleys}}\\
+\fbox{\usebox{\Potters}}\\
+\\
+\fbox{\usebox{\sis}}
+\end{tabular}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily2.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily2.tex
new file mode 100644
index 00000000000..6172ff1c982
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily2.tex
@@ -0,0 +1,17 @@
+\indvdldef{Dudly}{Dudly}
+\indvdldef{Petunia}{Petunia}[\matrilineal]
+
+\indvdldef{Harry}{Harry}
+\indvdldef{Lily}{Lily}[\matrilineal]
+
+\sblngdef{sis}{Petunia,Lily}
+\gensdef{twofam}{sis}{%
+ {Petunia}{Dudly},%
+ {Lily}{Harry}%
+}
+
+\begin{tabular}{l}
+\fbox{\usebox{\sis}}\\
+\\
+\fbox{\usebox{\twofam}}
+\end{tabular}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily3.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily3.tex
new file mode 100644
index 00000000000..fd8a134b5d6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily3.tex
@@ -0,0 +1,20 @@
+\indvdldef{Dudly}{Dudly}
+\indvdldef{Petunia}{Petunia}[\matrilineal]
+\pcdef{Dursleys}{Petunia}{Dudly}
+
+\indvdldef{Harry}{Harry}
+\newsavebox{\boxA}
+\newsavebox{\boxB}
+\savebox{\boxA}{\hbox{Petunia}}
+\savebox{\boxB}{\hbox{Lily}}
+\indvdldef{Lily}{Lily}[\matrilineal][\dimexpr\wd\boxA - \wd\boxB\relax]
+\pcdef{Potters}{Lily}{Harry}
+
+\sblngdef{sis}{Dursleys,Potters}
+
+\begin{tabular}{l}
+\fbox{\usebox{\Dursleys}}\\
+\fbox{\usebox{\Potters}}\\
+\\
+\fbox{\usebox{\sis}}
+\end{tabular}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily4.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily4.tex
new file mode 100644
index 00000000000..bcf9653fe8d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3Lily4.tex
@@ -0,0 +1,18 @@
+\indvdldef{Dudly}{Dudly}
+\indvdldef{Petunia}{Petunia}[\matrilineal]
+\pcdef{Dursleys}{Petunia}{Dudly}
+
+\indvdldef{Harry}{Harry}
+\newsavebox{\boxA}
+\savebox{\boxA}{\hbox{Petunia}}
+\indvdldef{Lily}{\hbox to \wd\boxA{Lily}}[\matrilineal]
+\pcdef{Potters}{Lily}{Harry}
+
+\sblngdef{sis}{Dursleys,Potters}
+
+\begin{tabular}{l}
+\fbox{\usebox{\Dursleys}}\\
+\fbox{\usebox{\Potters}}\\
+\\
+\fbox{\usebox{\sis}}
+\end{tabular}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3Robert1.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3Robert1.tex
new file mode 100644
index 00000000000..977e30e71d4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3Robert1.tex
@@ -0,0 +1,12 @@
+\indvdldef{youngSybil}{Lady Sybil}
+\indvdldef{youngEdith}{Lady Edith}
+\indvdldef{youngMary}{Lady Mary}
+\sblngdef{youngSis}{youngMary,youngEdith,youngSybil}
+
+\indvdldef{Robert}{Robert Crawley}
+ [7th Earl of Grantham,\maleline][2em]
+\pcdef{RobertDaughters}{Robert}{youngSis}
+
+\indvdldef{Rosamund}{Rosamund Painswick}
+\sblngdef{RobertRosamund}{RobertDaughters,Rosamund}
+\fbox{\usebox{\RobertRosamund}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3Robert2.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3Robert2.tex
new file mode 100644
index 00000000000..82dd9b6c488
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3Robert2.tex
@@ -0,0 +1,13 @@
+\indvdldef{youngSybil}{Lady Sybil}
+\indvdldef{youngEdith}{Lady Edith}
+\indvdldef{youngMary}{Lady Mary}
+\sblngdef{youngSis}{youngMary,youngEdith,youngSybil}
+
+\indvdldef{Robert}{Robert Crawley}[7th Earl of Grantham,\maleline]
+\indvdldef{Rosamund}{Rosamund Painswick}
+\sblngdef{RobertRosamund}{Robert,Rosamund}
+
+\gensdef{family}{RobertRosamund}{
+ {Robert}{youngSis}
+}
+\fbox{\usebox{\family}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig3sis.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig3sis.tex
new file mode 100644
index 00000000000..e5b2f57daca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig3sis.tex
@@ -0,0 +1,11 @@
+\sblngboxcfg{1ex}
+\indvdldef{youngSybil}{Lady Sybil}
+\indvdldef{youngEdith}{Lady Edith}
+\indvdldef{youngMary}{Lady Mary}
+\sblngdef{youngSis}{youngMary,youngEdith,youngSybil}
+%\fbox{\usebox{\youngSis}}
+
+\indvdldef{Robert}{Robert Crawley}[7th Earl of Grantham]
+
+\pcdef{family}{Robert}{RobertRosamund}
+\fbox{\usebox{\family}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig4HenryVIII.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig4HenryVIII.tex
new file mode 100644
index 00000000000..afdbe83ebac
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig4HenryVIII.tex
@@ -0,0 +1,20 @@
+\indvdldef{HenryVIII}{King Henry VIII}[]
+
+\indvdldef[\ftblank]{CatherineofAragon}{Catherine of Aragon}
+ [married in 1509,\haschild]
+\indvdldef[\ftblank]{Elizabeth}{Elizabeth Blount}
+ [mistress,\haschild,\private]
+\indvdldef[\ftblank]{AnneBoleyn}{Anne Boleyn}
+ [m. 1533,\haschild]
+\indvdldef[\ftblank]{Jane}{Jane Seymour}
+ [m. 1536,\haschild]
+\indvdldef[\ftblank]{AnneofCleves}{Anne of Cleves}
+ [m. 1540]
+\indvdldef[\ftblank]{CatherineHoward}{Catherine Howard}
+ [m. 1540]
+\indvdldef[\ftblank]{CatherineParr}{Catherine Parr}
+ [m. 1543]
+
+\mrrgdef{HenryVIIIWives}{}{HenryVIII}{CatherineofAragon,Elizabeth,%
+ AnneBoleyn,Jane,AnneofCleves,CatherineHoward,CatherineParr}
+\fbox{\usebox{\HenryVIIIWives}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily1.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily1.tex
new file mode 100644
index 00000000000..c8a36a7b03a
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily1.tex
@@ -0,0 +1,10 @@
+\indvdldef{Petunia}{Petunia}
+\indvdldef[\blank]{Vernon}{Vernon Dursley}[\haschild]
+\mrrgdef{Dursleys}{Vernon}{Petunia}{}
+
+\indvdldef{Lily}{Lily}
+\indvdldef[\blank]{James}{James Potter}[\haschild]
+\mrrgdef{Potters}{James}{Lily}{}
+
+\sblngdef{sis}{Dursleys,Potters}
+\fbox{\usebox{\sis}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily2.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily2.tex
new file mode 100644
index 00000000000..04d1167de26
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily2.tex
@@ -0,0 +1,12 @@
+\indvdldef{Petunia}{Petunia}
+\indvdldef[\blank]{Vernon}{Vernon Dursley}[\haschild]
+\mrrgdef{Dursleys}{Vernon}{Petunia}{}
+
+\newsavebox{\boxA}
+\savebox{\boxA}{\hbox{Petunia}}
+\indvdldef{Lily}{\hbox to \wd\boxA{Lily}}
+\indvdldef[\blank]{James}{James Potter}[\haschild]
+\mrrgdef{Potters}{James}{Lily}{}[\dimexpr\wd\Vernon - \wd\James\relax]
+
+\sblngdef{sis}{Dursleys,ivali,Potters}
+\fbox{\usebox{\sis}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily3.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily3.tex
new file mode 100644
index 00000000000..5abc54e43b5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily3.tex
@@ -0,0 +1,12 @@
+\indvdldef{Petunia}{Petunia}
+\indvdldef[\blank]{Vernon}{Vernon Dursley}[\haschild]
+\mrrgdef{Dursleys}{Vernon}{Petunia}{}
+
+\newsavebox{\boxA}
+\savebox{\boxA}{\hbox{Petunia}}
+\indvdldef{Lily}{\hbox to \wd\boxA{Lily}}
+\indvdldef[\blank]{James}{James Potter}[\haschild]
+\mrrgdef{Potters}{}{Lily}{James}[\dimexpr\wd\Vernon - \wd\James\relax]
+
+\sblngdef{sis}{Dursleys,Potters}
+\fbox{\usebox{\sis}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily4.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily4.tex
new file mode 100644
index 00000000000..c310fe8b194
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig4Lily4.tex
@@ -0,0 +1,12 @@
+\indvdldef{Petunia}{Petunia}
+\indvdldef[\blank]{Vernon}{Vernon Dursley}[\haschild]
+\mrrgdef{Dursleys}{Vernon}{Petunia}{}
+
+\newsavebox{\boxA}
+\savebox{\boxA}{\hbox{Petunia}}
+\indvdldef{Lily}{\hbox to \wd\boxA{Lily}}
+\indvdldef[\blank]{James}{James Potter}[\haschild]
+\mrrgdef{Potters}{}{Lily}{James}[\dimexpr\wd\Vernon - \wd\James\relax]
+
+\sblngdef{sis}{Dursleys,ivali,Potters}
+\fbox{\usebox{\sis}}
diff --git a/Master/texmf-dist/doc/latex/familytree/figs/fig4Robert.tex b/Master/texmf-dist/doc/latex/familytree/figs/fig4Robert.tex
new file mode 100644
index 00000000000..0ce946757b5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/figs/fig4Robert.tex
@@ -0,0 +1,23 @@
+\indvdldef{Robert}{Robert Crawley}[7th Earl of Grantham]
+\indvdldef[\ftblank]{Cora}{Cora Crawley}
+ [Countess of Grantham,\haschild]
+\mrrgdef{seven}{}{Robert}{Cora}
+\fbox{\usebox{\seven}}
+%
+\hfill\hskip0pt
+\makeatletter
+\let\nameuse=\@nameuse
+\makeatother
+\newcommand{\boxsz}[1]{%
+ \texttt{\textbackslash#1} & \nameuse{#1}\\%
+}
+\newcommand{\tblA}{%
+ \begin{tabular}{l|l}%
+ \boxsz{sevennameCY}%
+ \boxsz{sevenRobertnameCY}%
+ \boxsz{sevenCoramrrgCY}%
+ \end{tabular}%
+}
+\par
+\bigskip
+\hfill\tblA
diff --git a/Master/texmf-dist/doc/latex/familytree/fonts.tex b/Master/texmf-dist/doc/latex/familytree/fonts.tex
new file mode 100644
index 00000000000..7b005826aeb
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/fonts.tex
@@ -0,0 +1,3 @@
+\usepackage[scaled=.95]{erewhon}
+\usepackage[erewhon,vvarbb,bigdelims]{newtxmath}
+\usepackage[scale=.95]{Chivo}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai.pdf b/Master/texmf-dist/doc/latex/familytree/samples/Asai.pdf
new file mode 100644
index 00000000000..60cac91c672
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/0Ichi.tex b/Master/texmf-dist/doc/latex/familytree/samples/Asai/0Ichi.tex
new file mode 100644
index 00000000000..248dc39fefa
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/0Ichi.tex
@@ -0,0 +1,43 @@
+\indvdldef{¿®Ä¹}{¿¥ÅÄ¿®Ä¹}
+
+\indvdldef[\blank]{¾¡²È}{¼ÆÅľ¡²È}[½¨µÈ¤È¤Î¹çÀï¤Ç¼«³²]
+
+\indvdldef{¤ª¸¤}{\fbox{±÷¸¤}}[¤ª¤¤¤Ì]
+\indvdldef[\blank]{¿®Êý}{º´¼£°Ù¶½¡Ê¿®Êý¡Ë}[\haschild]
+\indvdldef[\blank]{¿®ÎÉ}{ºÙÀî¾¼¸µ¡Ê¿®ÎÉ¡Ë}[\haschild]
+\mrrgdef{¤ª¸¤É×ÉØ}{¿®Êý,¿®ÎÉ}{¤ª¸¤}{}[\dimexpr\wd\¾¡²È - \wd\¿®Êý]
+
+\indvdldef{¤ª»Ô}{\fbox{±÷»Ô}}[¤ª¤¤¤Á,ĹÀ¯¤Î·Ñ¼¼,¾¡²È¤ÎÀµ¼¼,¾¡²È¤È
+ ¤È¤â¤Ë¼«³²]
+\indvdldef[\blank]{ĹÀ¯}{Àõ°æĹÀ¯}[¤¢¤µ¤¤ ¤¢¤¶¤¤¡©,¿®Ä¹¤È¤Î¹çÀï¤Ç¼«
+ ³²,\haschild]
+\mrrgdef{¤ª»ÔÉ×ÉØ}{ĹÀ¯,¾¡²È}{¤ª»Ô}{}
+
+\sblngdef{¿®Ä¹·»Ëå}{¿®Ä¹,ival,¤ª¸¤É×ÉØ,ival,¤ª»ÔÉ×ÉØ}
+
+\savebox{\abox}{
+ \parbox{.5\textwidth}{
+ \small%
+ ¤Ê¤ó¤Ç¤½¤ó¤Ê̾Á°¤Ê¤Î¡©\par
+ ¤È¸À¤¦¤Î¤ÏÃÖ¤¤¤È¤¤¤Æ¡£\par
+ \smallskip
+
+ \begin{itemize}
+ \itemsep=\medskipamount
+
+ \item
+ ¤ª¸¤¤ÎÊý¤ÏÆóÅٷ뺧¤·¡¢ÆóÅ٤Ȥâ»Ò¤ò¤â¤¦¤±¤¿¡£
+ º´¼£°Ù¶½¤Î©»Ò¤¬¸å¤ÇÅо줹¤ë¡£
+ \item
+ ¤ª»Ô¤ÎÊý¤âÆóÅٷ뺧¤·¡¢ºÇ½é¤Î·ëº§¤Ç̼¤ò»°¿Í»º¤ó¤À¡£
+ ¤³¤ì¤¬¼ç¿Í¸ø¡£
+ \item
+ ¤ª»Ô¤ÎÊý¤Ïʪ¸ì¤Ë¤è¤¯¼è¤ê¾å¤²¤é¤ì¡¢ÂçÁØÈþ¿Í¤À¤Ã¤¿¤È¤¤¤¦Ïä·¤À¡£
+ ½¨µÈ¤ÏÎø¤¤¾Ç¤¬¤ì¤¿¤¬¡¢¤½¤ì¤Ç¤¤¤ÆÀ襤¡¢ÌǤܤ¹¤È¤¤¤¦»þÂå¡£
+ \end{itemize}
+ }
+}
+\hfil
+\fbox{\usebox{\¿®Ä¹·»Ëå}}
+\hfil
+\raisebox{\dimexpr(\ht\¿®Ä¹·»Ëå - \ht\abox)/2}{\usebox{\abox}}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/0sis.tex b/Master/texmf-dist/doc/latex/familytree/samples/Asai/0sis.tex
new file mode 100644
index 00000000000..00153205f29
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/0sis.tex
@@ -0,0 +1,77 @@
+
+\indvdldef{°ìÀ®}{°ìÀ®}[¹¾¤Î½¾·»,¹¾¤ÎºÇ½é¤ÎÉס©]
+%Í¿¶åϺ ¸åºÊ¤Ë¤Ï¿®Ä¹¤Î̼¡¦¤ª¿¶
+\indvdldef{½¨µÙ}{½¨µÙ¡ÊÃæÀî¡Ë}
+\sblngdef{º´¼£¿®Êý¤Î»Ò}{°ìÀ®,½¨µÙ}
+\indvdldef{¸µ¾¡}{¸µ¾¡¡ÊºÙÀî¡Ë}% ºÙÀî¾¼¸µ¤Î»Ò
+
+\ftundef{¤ª¸¤,¤ª¸¤É×ÉØ}
+\indvdldef{¤ª¸¤}{\fbox{±÷¸¤}}[°ì»þ´ü Ã㡹¤Î¸å¸«]
+\mrrgdef{¤ª¸¤É×ÉØ}{ivalii,¿®Êý,ivalii,¿®ÎÉ}{¤ª¸¤}{}
+\gensdef{¤ª¸¤¿Æ»Ò}{¤ª¸¤É×ÉØ}{%
+ {¿®Êý}{º´¼£¿®Êý¤Î»Ò},%
+ {¿®ÎÉ}{¸µ¾¡}%
+}
+
+\indvdldef{ÃãÃã}{\fbox{Ã㡹}}[½¨µÈ¤Î¦¼¼,\femaleline]
+\indvdldef{½é}{\fbox{½é}}[½¾·» µþ¶Ë¹â¼¡¤ÎÀµ¼¼,\femaleline]
+\indvdldef{¹¾}{\fbox{¹¾}}[¾®ÆÄ ¤ª¤´¤¦,Ë­¿Ã½¨¾¡¤ÎÀµ¼¼,ÆÁÀÃé¤Î·Ñ
+ ¼¼,\femaleline]
+\sblngdef{»°»ÐËå}{ÃãÃã,½é,¹¾}
+
+\ftundef{¤ª»Ô,ĹÀ¯,¤ª»ÔÉ×ÉØ}
+\indvdldef{¤ª»Ô}{\fbox{±÷»Ô}}
+\indvdldef[\blank]{ĹÀ¯}{Àõ°æĹÀ¯}[\haschild]
+\mrrgdef{¤ª»ÔÉ×ÉØ}{ivali,ĹÀ¯}{¤ª»Ô}{}[\dimexpr\wd\¤ª¸¤ - \wd\ĹÀ¯]
+\gensdef{¤ª»Ô¿Æ»Ò}{¤ª»ÔÉ×ÉØ}{%
+ {ĹÀ¯}{»°»ÐËå}%
+}
+
+\sblngdef{¤ª»Ô»ÐËå}{¤ª¸¤¿Æ»Ò,ival,¤ª»Ô¿Æ»Ò}
+\fbox{\usebox{\¤ª»Ô»ÐËå}}
+\bigskip
+
+\begin{multicols}{2}
+\begin{itemize}
+\itemsep=\medskipamount
+\item
+¤³¤Î»þÂå¡¢·ëº§Áê¼ê¤Ï¤¤¤È¤³¡¢¤È¤¤¤¦¤Î¤¬Â¿¤¤¡£
+¼¡½÷ ½é¡¢»°½÷ ¹¾¤ÎÁê¼ê¤¬¤½¤¦¡£
+
+\item
+¤ª¸¤¤ÎÊý¤ÏĹ½÷ Ã㡹¤ÎÌÌÅݤò¤ß¤¿¤ê¡¢ÀèÉפȤΩ»Ò¤È»°½÷ ¹¾¤ò·ë¤ó¤À¤ê¤ÈÂç³è
+Ìö¤«¡£
+
+Ã㡹¤Î¸å¸«¤È¤Ê¤Ã¤Æ¤¤¤¿´ü´Ö¤Ï¤É¤ó¤Ê¤â¤ó¤À¤í¤¦¡© º´¼£°Ù¶½¤¬Àï»à
+% 1574
+¤·¤¿¤¿¤á
+¼Â²È¤ËÌá¤ê¡¢ºÆº§
+% 1577
+¤¹¤ë¤Þ¤Ç¤Î´Ö¤Ê¤Î¤À¤í¤¦¤«¡© ¤À¤È¤¹¤ë¤ÈÃ㡹
+% 1569À¸
+¤¬¸ÞºÐ¤«¤éȬºÐ¤Þ¤Ç¤«¡£
+¤ª»Ô¤ÎÊý¤Ï¸̿¤À¤·¡¢Ã㡹¤â¤Þ¤À²Ä°¦¤¤º¢¤À¤í¤¦¤«¤é¡¢¤½¤ì¤Û¤É¼ê¤ò¾Æ¤¯¤³¤È¤â̵
+¤«¤Ã¤¿¤Î¤Ç¤Ï¤Ê¤«¤í¤¦¤«¡£
+
+\item
+¤ª¸¤¤ÎÊý¤ÎĤ¤¤¤ÎºÝ¤Ë¤ÏÀèÉפȤΩ»Ò¤¬Î©¤Á²ó¤Ã¤¿¤½¤¦¤Ç¡¢¿Æ»ÒÃç¤ÏÎɤ«¤Ã¤¿
+¤é¤·¤¤¡£
+\end{itemize}
+\bigskip
+
+¿Íʪ¤ÎÏ䫤é¤Ï°ï¤ì¤ë¤¬¡¢
+{\texttt{\textbackslash mrrgdef}}
+{interface}
+¤Î·çÅÀ¤¬Ê¬¤«¤Ã¤¿¡£
+´Ö³Ö¤ò¶õ¤±¤ë¤Ë¤Ï
+{\texttt{ivalbox}}
+¤òÁÞÆþ¤¹¤ë¤¬¡¢
+{spouse}
+̾¤ÎÁ°¤ËÆþ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+
+¤³¤ì¤ÏÎɤ¯¤Ê¤¤¡£Á᡹¤Ëľ¤·¤¿¤¤¤¬¡¢¤µ¤Æ¤É¤¦¤ä¤í¤¦¡£
+
+{familytree}
+{pkg}
+¤Îº£¸å¤Î²ÝÂê¤È¤·¤¿¤¤¡£
+\end{multicols}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/1Chacha.tex b/Master/texmf-dist/doc/latex/familytree/samples/Asai/1Chacha.tex
new file mode 100644
index 00000000000..6037d27eda3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/1Chacha.tex
@@ -0,0 +1,64 @@
+
+\indvdldef[\adopted]{´°»Ò}[ͱ»Ò]{\fbox{´°»Ò}}[¤µ¤À¤³,¹¾¤È½¨¾¡¤Î̼,¶å¾ò
+ ¹¬²È¤ÎÀµ¼¼,ÄçÌÀ¹Ä¹¡¡ÊÂçÀµÅ·¹Ä¤Î¹Ä¹¡¡Ë¤Ë¤Ä¤Ê¤¬¤ë]
+
+\ftundef{̋̋}
+\indvdldef{ÃãÃã}{\fbox{Ã㡹}}
+ [\maleline,ÍäÅÂ,À¸\ymd{1569}¡© Ë×\ymd{1615}]
+\indvdldef[\blank]{½¨µÈ}{Ë­¿Ã½¨µÈ}[\haschild,\private]
+\mrrgdef{ÃãÃãÉ×ÉØ}{ivalv,ivalii,½¨µÈ}{ÃãÃã}{}
+
+\indvdldef{Äá¾¾}{Äá¾¾}[ÁáÀ¤]
+\indvdldef{½¨Íê}{½¨Íê}[¹¾¤Î̼ Àéɱ¤ÎÉ×]% ½¾Ëå
+\sblngdef{½¨µÈ¤Î»Ò}{Äá¾¾,½¨Íê}
+
+\gensdef{ÃãÃã¿Æ»Ò}{ÃãÃãÉ×ÉØ}{%
+ {½¨µÈ}{½¨µÈ¤Î»Ò},%
+ {ÃãÃã}{´°»Ò}%
+}
+\fbox{\usebox{\ÃãÃã¿Æ»Ò}}
+\bigskip
+
+\begin{multicols}{2}
+\begin{itemize}
+\itemsep=\medskipamount
+
+\item
+¤³¤ì¤âʪ¸ì¤Ç¤è¤¯¤¢¤ë¤¬¡¢Ã㡹¤Ï¿Æ¤ÎµØ¤Î½¨µÈ¤Î¦¼¼¤Ë¤Ê¤Ã¤¿¡£ÍäŤȸƤФ졢
+½¨µÈË´¤­¸å¤Î¶¯¾ð¤Ö¤ê¤Ïͭ̾¤À¤¬¡¢¤½¤ó¤Ê¤Ëµ¤¤¬¶¯¤¤¤Î¤Ê¤é¤Ð¦¼¼¤Ë¤Ê¤ëºÝ¤Ë
+¤â°ìÇÈÍ𤢤俤ΤǤϤʤ«¤í¤¦¤«¡£
+
+\item
+½¨µÈ¤Ï¸µ¡¹¤ª»Ô¤ÎÊý¤Ë¹û¤ì¤Æ¤ª¤ê¡¢¼«Ê¬¤È¤Î¹çÀï¤Ç¤ª»Ô¤ÎÊý¤¬¼«³²¤·¡¢¸å¤Ë¤½
+¤Î̼ Ã㡹¤ò¦¼¼¤Ë¤·¤¿¡£
+½õÊ¿¤Ë¸¢ÎϤò»ý¤¿¤¹¤ÈÈþ¿Í¤ËÎबµÚ¤Ö¤È¤¤¤¦¤³¤È¤«¡£
+¤Ç¤â½°Æ»¤¬ÅöÁ³¤ÎÀï¹ñÂç̾¤ÎÃæ¤Ç¡¢½¨µÈ¤Ï¤½¤Ã¤Á¤Ë¸«¸þ¤­¤â¤·¤Ê¤«¤Ã¤¿¡£
+
+»°»ÐËå¤ÎÃæ¤ÇÃ㡹¤¬°ìÈÖÊì¿Æ»÷¤ÎÈþ¿Í¤À¡Ê¤À¤«¤é½¨µÈ¤¬Â¦¼¼¤Ë¤·¤¿¡Ë¤È¤¤¤¦ÏÃ
+¤È¡¢¤½¤¦¤Ç¤â¤Ê¤¤¤È¤¤¤¦ÏäÈξÊý¤¢¤ë¡£
+
+\item
+½¨µÈ¤Ë¤ÏÃ桹»Ò¤¬½ÐÍè¤Ê¤«¤Ã¤¿¡£¼Â»Ò¤ò»º¤ó¤À¤È³Îǧ¤Ç¤­¤Æ¤¤¤ë¤Î¤ÏÃ㡹¤À¤±¡£
+Âè°ì»Ò¤ÏÁáÀ¤¤·¡¢ÃÂÀ¸¤Î´î¤Ó¤¬Â礭¤«¤Ã¤¿¤À¤±¤ËÍîÃÀ¤âÁêÅö¤Ê¤â¤Î¤À¤Ã¤¿¤é¤·
+¤¤¡£
+
+\item
+Âè°ì»ÒÁáÀ¤¸å¡¢¼Â»Ò¤òÄü¤á¡¢ÍÜ»Ò ½¨¼¡¤ª¤è¤Ó½¨½Ó¤ò¸å·Ñ¼Ô¸õÊä¤È¤·¤¿¸å¤Ë¡¢ÂèÆó»Ò ½¨Í꤬
+ÃÂÀ¸¤·¤¿¡£´û¤Ë´ØÇò¿¦¤ò¾ù¤é¤ì¤Æ¤¤¤¿½¨¼¡¤ÏÎä¶ø¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ºÇ½ªÅª¤Ë
+ÀÚÊ¢¤µ¤»¤é¤ì¤¿¡£½¨µÈ¤¬°ìÊýŪ¤ËÈóÆ»¤È¤¤¤¦Ïä⤢¤ì¤Ð¡¢½¨¼¡¤¬´ØÇò¿¦¤òÊÖ¤µ
+¤ºÂÐΩ¤·¤¿¤È¤«¡¢»ÄµÔ¹Ô°Ù¤¬¿Ó¤À¤·¤«¤Ã¤¿¤È¤«¤¤¤¦Ïä⤢¤ë¡£
+
+¤â¤¦°ì¿Í¤Î¸å·Ñ¼Ô¸õÊä ½¨½Ó¤Ï¡¢½¨µÈÀµ¼¼ ¤Í¤Í¤Î±ù¤Ç¤¢¤ê·ì±ï¤â¶á¤«¤Ã¤¿¤¬¡¢
+¾®ÁáÀî²È¤ØÍܻҤ˽Фµ¤ì¤¿¡£¸å·Ñ¼Ô¸õÊä¤È¤¤¤¦¤³¤È¤Ç½ôÂç̾¤¬¿ïʬÀÜÂÔ¤·¡¢»Ò
+¶¡¤Îº¢¤«¤é¼ò¤òÆݤó¤Ç¤¤¤¿¡£¤½¤Î¸å¸õÊ䤫¤é³°¤ì¤Æ¤â¼ò¤ÏÆݤß³¤±¡¢Á᤯¤«¤é¥¢
+¥ë¥³¡¼¥ëÃæÆǤˤʤäƤ¤¤¿¤é¤·¤¤¡£
+¤³¤ì¤¬¸å¤Î¾®ÁáÀ½©¤Ç¤¢¤ê¡¢¤½¤Î̾¤ò½¨µÈ»à¸å¤Î´Ø¥ö¸¶¤ÇÎò»Ë¤ËÂ礭¤¯»Ä¤¹
+¤³¤È¤Ë¤Ê¤ë¡£
+
+\item
+Ã㡹¤ÏËå ¹¾¤ÎºÆ¡¹º§¤ò·Àµ¡¤Ë¹¾¤Î̼ ´°»Ò¤òͱ»Ò¤Ë¤·¤¿¡£ÍܻҤߤ¿¤¤¤Ê¤â¤ó¤é
+¤·¤¤¡£
+¤·¤Ã¤«¤êÍܰ餷¤¿¤é¤·¤¯¡¢´°»Ò¤Ï¸ø²È¤Ë²Ç¤®¡¢»Ò¤ò»Ä¤·¤¿¡£»Ò¹¤Ï¸½ºß¤Î¹Ä¼¼
+¤Ë¤Ä¤Ê¤¬¤ë¡£
+\end{itemize}
+\end{multicols}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/2Hatsu.tex b/Master/texmf-dist/doc/latex/familytree/samples/Asai/2Hatsu.tex
new file mode 100644
index 00000000000..48b22476ef2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/2Hatsu.tex
@@ -0,0 +1,76 @@
+
+\indvdldef{Ãé¹â}{Ãé¹â}[¦¼¼¤Î»Ò]
+\indvdldef[\adopted]{½éɱ}{\fbox{½éɱ}}[¹¾¤È½¨Ãé¤Î̼,Ãé¹â¤ÎÀµ¼¼]
+\indvdldef[\adopted]{¸ÅÆà}{\fbox{¸ÅÆà}}[¹â¼¡¤ÎËå¤Î̼]
+\sblngdef{½é¤Î»Ò}{½éɱ,¸ÅÆà}
+%\fbox{\usebox{\½é¤Î»Ò}}
+\let\½é¤Î»ÒnameCX=\½éɱnameCX
+\mrrgdef{½éɱÉ×ÉØ}{Ãé¹â}{½é¤Î»Ò}{}
+%\fbox{\usebox{\½éɱÉ×ÉØ}}
+
+\ftundef{½é}
+\indvdldef{½é}{\fbox{½é}}[\femaleline,À¸\ymd{1570} Ë×\ymd{1633}]
+\indvdldef{¹â¼¡}{¹â¼¡}[\maleline]
+\mrrgdef{½éÉ×ÉØ}{}{¹â¼¡}{ivalii,ivali,ival,½é}[1zw]
+
+\ftundef{½é¿Æ»Ò}
+\let\½éɱÉ×ÉØnameCY=\½éɱÉ×ÉØÃé¹ânameCY
+\gensdef{½é¿Æ»Ò}{½éÉ×ÉØ}{%
+ {¹â¼¡}{½éɱÉ×ÉØ}%
+}
+%\fbox{\usebox{\½é¿Æ»Ò}}
+
+\indvdldef{¥Þ¥ê¥¢}{\fbox{¥Þ¥ê¥¢}}
+\ftundef{ĹÀ¯}
+\indvdldef{ĹÀ¯}{Àõ°æĹÀ¯}%[\maleline]
+\ftsblngboxcfg{\baselineskip}
+\sblngdef{ĹÀ¯»ÐÄï}{¥Þ¥ê¥¢,ival,ĹÀ¯}
+\ftsblngboxcfg{.75\baselineskip}
+%\fbox{\usebox{\ĹÀ¯»ÐÄï}}
+\let\ĹÀ¯»ÐÄïnameCX=\¥Þ¥ê¥¢nameCX
+
+\indvdldef[\blank]{¹âµÈ}{µþ¶Ë¹âµÈ}[\haschild]
+\mrrgdef{¥Þ¥ê¥¢É×ÉØ}{¹âµÈ}{ĹÀ¯»ÐÄï}{}
+\let\¥Þ¥ê¥¢É×ÉØnameCY=\¥Þ¥ê¥¢É×ÉعâµÈmrrgCY
+%\fbox{\usebox{\¥Þ¥ê¥¢É×ÉØ}}
+
+\gensdef{¥Þ¥ê¥¢¿Æ»Ò}{¥Þ¥ê¥¢É×ÉØ}{%
+ {¹âµÈ}{½é¿Æ»Ò}%
+}
+\fbox{\usebox{\¥Þ¥ê¥¢¿Æ»Ò}}
+\bigskip
+
+\begin{multicols}{2}
+\begin{itemize}
+\itemsep=\medskipamount
+
+\item
+¼¡½÷ ½é¤ÏÉã¤Î»Ð¤Î»Ò¡¢Íפ¹¤ë¤Ë½¾·»¤Ë²Ç¤¤¤À¡£»Ò¤Ï¤Ê¤¯¡¢Íܽ÷¤òÆó¿Í¤È¤Ã¤¿¡£
+°ì¿Í¤Ï¹¾¤Î̼¡¢¤È¤¤¤¦¤«¾­·³¤Î̼ ½éɱ¡£¤½¤Î½éɱ¤ÈÉפ¬Â¦¼¼¤Ë»º¤Þ¤»¤¿»Ò¤ò
+·ëº§¤µ¤»¤ë¡£À¨¤¤¤Ê¡¢¤³¤ì¡£¼Â»Ò¤Ç¤Ï¤Ê¤¤¤È¤Ï¸À¤¨¡¢Ì¼¤È©»Ò¡ÊÁêÅö¡Ë¤Î·ëº§¡£
+¤³¤ì¤Ï½é¤¬²Ç¤¤¤À²È¤Î¤³¤È¤òºÇÍ¥Àè¤Ë¹Í¤¨¤¿¤È¤¤¤¦¤³¤È¤À¤í¤¦¤«¡£
+
+¤Ç¤â½éɱ¤Î·ëº§¤Ï¹¬¤»¤Ç¤Ï¤Ê¤«¤Ã¤¿¤é¤·¤¯¡¢Éã¿Æ¤Ç¤¢¤ëÆóÂå ½¨Ãé¡¢Äï¤Ç¤¢¤ë»°
+Âå ²È¸÷¤Ï·ëº§Áê¼ê¤ËÂФ·Åܤ俤Ȥ¤¤¦Ï䬤¢¤ë¡£
+
+\item
+Ë­¿Ã¤ÈÆÁÀÁè¤Ã¤¿»þ¤Ë½é¤ÏϵĤ˿ÔÎϤ·¤¿¤È¤¢¤ë¡£¼«Ê¬¤Î»Ð¤ÈË夽¤ì¤¾¤ì¤Î
+²Ç¤®Àè¤À¡£Â¸ºß´¶¤¬Â礭¤¯´¶¤¸¤é¤ì¤Ê¤¤¤Î¤ÏÀ­³Ê¤¬²º¤ä¤«¤Ê¤Î¤À¤í¤¦¤«¡£¤È¸À
+¤¦¤«¡¢»Ð¤ÈË夬¤­¤Ä¤¹¤®¤ë¤Î¤«¤â¤·¤ì¤Ê¤¤¡£´û¤ËÉפȻàÊ̤·¤Æ¤¤¤¿¤Î¤Ç¼«Ê¬¤Ç
+´èÄ¥¤Ã¤¿¤é¤·¤¤¡£
+
+\item
+ĹÀ¯¤Î»Ð¤Î¥Þ¥ê¥¢¤È¤ÏÀöÎé̾¤À¤¬¡¢ËÜ̾¤¬Ê¬¤«¤é¤Ê¤¤¤é¤·¤¤¡£·Ééʤ«¤Ä¼ÁÁǤÊ
+À¸³è¤À¤Ã¤¿¤È¤Î¤³¤È¤À¤¬¡¢Àï¹ñ¤ÎÀ¤¤ò¤É¤¦¸«¤Æ¤¤¤¿¤Î¤À¤í¤¦¤«¡£
+
+\end{itemize}
+\bigskip
+
+{\spaceskip=1ex
+¿Íʪ¤ÎÏ䫤é¤Ï°ï¤ì¤ë¤¬¡¢¤³¤Î¿Þ¤òlatex¤¹¤ë¤Î¤ÏÆñ¤·¤«¤Ã¤¿¡£»°À¤Âå¤Îº§°ù
+´Ø·¸¤È¿Æ»Ò´Ø·¸¤¬Ì©ÀܤÀ¡£familytree pkgËÜÍè¤Îµ¡Ç½¤Ç¤ÏÂбþ»ÅÀڤ줺¡¢½ê¡¹
+ºÂɸ¤ò¼Ì¤¹¤È¤¤¤¦ºÙ¹©¤òÆþ¤ì¤Æ¤¤¤ë¡£
+
+familytree pkg¤Îº£¸å¤Î²ÝÂê¤È¤·¤¿¤¤¡£
+}
+\end{multicols}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/3Gou.tex b/Master/texmf-dist/doc/latex/familytree/samples/Asai/3Gou.tex
new file mode 100644
index 00000000000..4eca873b0fc
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/3Gou.tex
@@ -0,0 +1,104 @@
+
+\ftundef{´°»Ò}
+\indvdldef{´°»Ò}{\fbox{´°»Ò}}[¸å¤ËÃ㡹¤Îͱ»Ò]
+
+\indvdldef{Àéɱ}{\fbox{Àéɱ}}[½¾·» Ë­¿Ã½¨Íê¤ÎÀµ¼¼,ËÜ¿Ãé¹ï¤ÎÀµ¼¼]
+\indvdldef{¼îɱ}{\fbox{¼îɱ}}[½¾·» Á°ÅÄÍø¾ï¤ÎÀµ¼¼]%»°Ã˸޽÷
+\indvdldef{¾¡É±}{\fbox{¾¡É±}}[½¾·» ¾¾Ê¿Ã龤ÎÀµ¼¼]
+% ĹÃË¡§¸÷Ĺ
+% Ĺ½÷¡§Ç«»Ò - ÆÁÀÃéÍܽ÷¡¢¹â¾¾µÜ¹¥¿Î¿Æ²¦ÈÞ
+% ¼¡½÷¡§Äá»Ò -¡¡ÆÁÀî²È¸÷Íܽ÷¡¢¶å¾òƻ˼Àµ¼¼
+\ftundef{½éɱ}
+\indvdldef{½éɱ}{\fbox{½éɱ}}[¸å¤Ë»Ð ½é ¤ÎÍÜ»Ò,Ëô½¾·» µþ¶ËÃé¹â¤ÎÀµ¼¼]
+\indvdldef{²È¸÷}{²È¸÷}
+\indvdldef{ÃéĹ}{ÃéĹ}
+\indvdldef{Ï»Ò}{\fbox{Ï»Ò}}[¸å¿åÈøÅ·¹Ä¤Î¹Ä¹¡,ÌÀÀµÅ·¹Ä¤ÎÊì]
+\sblngdef{½¨Ãé¤Î»Ò}{Àéɱ,¼îɱ,¾¡É±,½éɱ,²È¸÷,ÃéĹ,Ï»Ò}
+\ftundef{¹¾}
+\indvdldef{¹¾}{\fbox{¹¾}}[À¸\ymd{1573} Ë×\ymd{1626}]
+\ftundef{°ìÀ®}
+\indvdldef[\blank]{°ìÀ®}{º´¼£°ìÀ®}[¤ª¸¤¤Î»Ò ¹¾¤Î½¾·»,¹¾¤ÎºÇ½é¤ÎÉס©]
+\indvdldef[\blank]{½¨¾¡}{Ë­¿Ã½¨¾¡}[\haschild,½¨µÈ¤Î±ù]
+\indvdldef[\blank]{½¨Ãé}{ÆÁÀÃé}[\haschild]
+\mrrgdef{¹¾É×ÉØ}{ivali,°ìÀ®,ivalx,ivalx,½¨¾¡,ivalv,½¨Ãé}{¹¾}{}
+\gensdef{¹¾¿Æ»Ò}{¹¾É×ÉØ}{%
+ {½¨¾¡}{´°»Ò},%
+ {½¨Ãé}{½¨Ãé¤Î»Ò}%
+}
+
+\savebox{\abox}{
+ \parbox{\dimexpr\textwidth - \wd\¹¾¿Æ»Ò - 3zw}{
+ \begin{itemize}
+ \itemsep=\medskipamount
+ \item
+ »°½÷ ¹¾¤Ï»Ò¤¬Â¿¤¤¡£
+ ºÆº§¤Ç°ì½÷¡¢ºÆ¡¹º§¤ÇÆóÃ˸޽÷¡£»Ò¤Ï³§¹¬¤»¤ËÁãΩ¤Ã¤¿¡¢¤È¸À¤¤¤¿¤¤¤È
+ ¤³¤í¤À¤¬¡¢¼¡ÃË ÃéĹ¤Ï¤½¤¦¤Ç¤â¤Ê¤«¤Ã¤¿¤è¤¦¤À¡£
+
+ ¤³¤ÎÊÕ¤ÎÏäÏĹÃË ²È¸÷¤ÎÆýÊì ½ÕÆü¤Î¶É´Ø·¸¤Ç¤è¤¯½Ð¤ÆÍè¤ë¤¬¡¢
+ Íľ¯´ü¤Ï²È¸÷¤è¤ê¤âÃéŤÎÊý¤¬½ÐÍ褬Îɤ¯¡¢Êì ¹¾¤«¤é¤â²Ä°¦¤¬¤é¤ì¾­
+ Íè¤òͭ˾»ë¤µ¤ì¤Æ¤¤¤¿¤±¤ì¤É¡¢½Õ
+ Æü¤Î¶É¤¬²È¹¯¤ËľÁʤ·¤¿·ë²Ì¡Ö»°ÂåÌܤϲȸ÷¡×¤È¼þÃΤµ¤ì¤¿¡£
+ ÃéŤÎÀ«¤ÏÆÁÀ¤é¾¾Ê¿¤ËÊѤ¨¤é¤ì¡¢¹¾¤ÎË׸å¤ÏÃéŤÎÍð˽¤¬ÌÜΩ¤Ä¤è
+ ¤¦¤Ë¤Ê¤ë¡£²È¸÷¤Ï½é¤á¤Ï¤Ç¤­¤ë¤À¤±²º¤ä¤«¤Ë±ó¤¶¤±¤Æ¤¤¤¿¤±¤ì¤É¡¢ºÇ½ª
+ Ū¤ËÀÚÊ¢¤È¤Ê¤Ã¤¿¡£
+
+ ¤¦¤ó¡¢¤Ê¤ó¤«½¨ÍêÃÂÀ¸¸å¤Î½¨¼¡¤ÎÏäߤ¿¤¤¤À¡£
+
+ \item
+ ½¨¾¡¤È¹¾¤Î̼ ´°»Ò¤ÏÃ㡹¤Ë°ú¤­¼è¤é¤ì¡¢¸ø²È¤Ë²Ç¤¤¤À¡£
+
+ \item
+ ½¨Ãé¤È¹¾¤ÎĹ½÷ Àéɱ¤Ï²È¹¯¤ËÂçÁزݦ¤¬¤é¤ì¤¿¤È¤¤¤¦Ï䬤¢¤ë¡£ÁÄÊì
+ ¤Ç¤¢¤ë ¤ª»Ô¤ÎºÍ³Ð¤ÈÍƻѤò¼õ¤±·Ñ¤¤¤À¤È¤«¡£À¯Î¬·ëº§¤ÇË­¿Ã½¨Íê¡¢ËÜ
+ ¿Ãé¹ï¤È·ëº§¤·¡¢É×ÉØÃç¤Ï±ßËþ¤À¤Ã¤¿¤½¤¦¤Ê¡£
+
+ \item
+ ¼¡½÷ ¼îɱ¤Ï²Ã²ìÁ°ÅĤ˲Ǥ®¡¢º£¤â¶âÂô¤Ç¤Ïͭ̾¿Í¡£É×ÉØÃç¤Ï±ßËþ¤À¤Ã
+ ¤¿¤¬¡¢¼îɱ¤ÎÆýÊ줬;·×¤Ê¤³¤È¤ò¤·¤ÆºÇ¸å¤Ï¤Á¤ÈÈᤷ¤¤Ïá£
+ \end{itemize}
+ }
+}
+\hfil
+\fbox{\usebox{\¹¾¿Æ»Ò}}
+\hfil
+\raisebox{\dimexpr(\ht\¹¾¿Æ»Ò - \ht\abox)}{\usebox{\abox}}
+
+\begin{multicols}{2}
+\begin{itemize}
+\itemsep=\medskipamount
+\item
+ »°½÷ ¾¡É±¤â²Ç¤¤¤Ç¹¬¤»¤À¤Ã¤¿¤È»×¤ï¤ì¤ë¤¬¡¢ÉפÎÊý¤¬¤¤¤Þ¤¤¤Á¤ÊÅÛ¤Ç
+ Á᤯¤Ë±£µï¤µ¤»¤é¤ì¤¿¡£¾¡É±¤Ï¤½¤Î¸å¤â¸ý¤ò¤è¤¯¶´¤à¤¦¤ë¤µ¤¤ÅÛ¤À¤Ã¤¿
+ ¤è¤¦¤À¡£
+
+\item
+ »Í½÷ ½éɱ¤Ï¹¾¤ÎËå¤Ç¤¢¤ë ½é ¤ÎÍܻҤˤʤ롣
+
+\item
+ ¸Þ½÷ Ï»Ҥϸå¿åÈøÅ·¹Ä¤Ë²Ç¤¤¤À¡£¹¬¤»¤È»×¤ï¤ì¤ë¤¬¡¢¤¦¡¼¤ó¡¢ÆþÆâ»þ
+ ¤ËÅ·¹Ä¤¬½÷´±¤È¤Î´Ö¤Ë»Ò¤ò¤â¤¦¤±¤Æ¤¤¤¿¤³¤È¤¬È¯³Ð¤·¡¢¤´¤¿¤´¤¿¤¬¤¢¤Ã¤¿¡£
+ Åö»þ¤ÏËëÉܤ¬Ä«Äî¤ËÂФ¹¤ëÄù¤áÉÕ¤±¤ò¶¯²½¤·»Ï¤á¤Æ¤ª¤ê¡¢Ï»Ҥ¬ÆþÆâ
+ ¤·¤¿¸å¤â»ö·ï¤¬µ¯¤³¤ê¡¢Å·¹Ä¤ÏËëÉܤËÊ¢¤òΩ¤Æ¤¿¤Î¤«±À±£¤ì¤¹¤ë¤è¤¦¤Ë
+ ¹Ä°Ì¤òÆÍÇ¡¾ù°Ì¤·¤Æ¤·¤Þ¤¦¡£¤È¸À¤Ã¤Æ¤â¸å·ÑÃ˻ҤϤª¤é¤º¡¢¼¡½÷¤Î½÷°ìµÜ
+ ¶½»Ò¤¬Å·¹Ä¤È¤Ê¤ë¡ÊÌÀÀµÅ·¹Ä¡Ë¡£º£¤Î¤È¤³¤í¡¢¤³¤ì¤¬ºÇ¸å¤Î½÷À­Å·
+ ¹Ä¤È¤¤¤¦¤³¤È¤À¡£
+ ¸Ä¿ÍŪ¤Ë¤Ï½÷À­¤â½÷·Ï¡ÊÊì·Ï¡Ë¤âǧ¤á¤Æ¡¢ÈϰϤäÍ¥Àè½ç°Ì¤ò·è¤á¤ë¤Î¤¬
+ Îɤ¤¤È»×¤¦¤¬¤Ê¤¡¡£
+
+ ¸å¿åÈø¤Ï¾å¹Ä¤È¤Ê¤Ã¤Æ±¡À¯¤òÉߤ¤¤¿¤Î¤Ç¡¢ÌÀÀµÅ·¹Ä¤Ï¤¢¤Þ¤ê³èÌö¤Ç¤­¤Ê¤«¤Ã
+ ¤¿¤è¤¦¤À¡£¤Ç¤âÏ»ҤÏÉפòÍý²ò¤·¡¢»¿Æ±¤·¤Æ¤¤¤¿¡£¤Ä¤Þ¤ê·»¤Ç¤¢¤ë
+ »°Âå ²È¸÷¤È¤Ï¤Á¤ç¤Ã¤ÈÂÐΩ¾õÂÖ¤¬¤¢¤Ã¤¿¤é¤·¤¤¡£¤½¤Î¤»¤¤¤«Ï»ҰʹߤÏŤ¤¤³¤È
+ ÆÁÀ¤é¤ÎÆþÆâ¤Ï¤Ê¤¤¡Ê¾¼Ï»þÂå¤Ë¤Ê¤Ã¤Æ·Ä´î¤Î¹¤¬¾¼ÏÂÅ·¹Ä¤ÎÄï¤Ë²Ç¤¤¤À¡Ë¡£
+ µÕ¤ËÅ·¹Ä²È¤«¤éÆÁÀî¤Ø¤Î¹ß²Ç¤Ï¤¢¤ê¡¢¤³¤ì¤¬Í­Ì¾¤Ê½½»ÍÂå ²ÈÌФ˲Ǥ¤¤ÀÏÂ
+ µÜ¿Æ»Ò¡Ê¤Á¤«¤³¡Ë¡£
+\end{itemize}
+
+¿Íʪ¤ÎÏ䫤é¤Ï°ï¤ì¤ë¤¬¡¢¤³¤Î¿Þ¤ò¤¢¤Þ¤êåºÎï¤Ç¤Ï¤Ê¤¤¡£
+º§°ù´Ø·¸¤òɽ¤¹Æó½ÅÀþ¤«¤é»Ò¤Ø¤Ä¤Ê¤¬¤ëÀþ¤òÉÁ¤¯¾ì¹ç¡¢Æó½ÅÀþ¤ÎÃæÅÀ¤ò»ÏÅÀ¤È
+¤¹¤ë¤Î¤¬Îɤ¤¤È¹Í¤¨¤Æ¤¤¤¿¤¬¡¢¹¾¤Î·Ï¿Þ¤Ç¤Ï½¨Ãé¤È¤Î»Ò¤¬Â¿¤¯¡¢½¨¾¡¤È¤Î»Ò¤Ï
+°ì¿Í¤À¤±¤À¡£·ë²ÌŪ¤Ë½¨¾¡¤Î°ÌÃÖ¤¬Â礭¤¯Î¥¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦ÅÀ¤¬Îɤ¯
+¤Ê¤¤¡£
+
+¤³¤ÎÅÀ¤âfamilytree pkg¤Îº£¸å¤Î²ÝÂê¤È¤·¤¿¤¤¡£
+\end{multicols}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/Asai.tex b/Master/texmf-dist/doc/latex/familytree/samples/Asai/Asai.tex
new file mode 100644
index 00000000000..a0eb55af47d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/Asai.tex
@@ -0,0 +1,53 @@
+\documentclass[
+ tate, landscape,
+ draft,
+ jlreq_notes,open_bracket_pos=nibu_tentsuki
+]{jlreq}
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+
+\makeatletter
+\let\iftate=\if@tate
+\makeatother
+
+\input{../../fonts}
+%\usepackage{otf}
+
+\usepackage{multicol}
+\columnseprule=\arrayrulewidth
+\usepackage{familytree}
+
+\ftoptboxcfg{}{}{}{1}
+\ftsblngboxcfg{.75\baselineskip}
+\ivaldef{ivalv}{5zh}
+\ivaldef{ivalx}{10zh}
+
+\newsavebox{\abox}
+\newcommand{\jslash}{~\tatechuyoko{{\large\slash}} \allowbreak}
+
+\ModifyPageStyle{plain}{nombre_position={bottom-center}}
+\begin{document}
+\pagestyle{plain}
+
+familytree sample
+
+\textgt{\large Àõ°æ»°»ÐËå²È·Ï¿Þ}
+\bigskip
+
+\newcommand{\f}[1]{%
+ \iftate%
+ \tatechuyoko{\texttt{(#1)}}%
+ \else%
+ \texttt{(#1)}%
+ \fi%
+ \medskip%
+ %
+ \input{#1}%
+ \clearpage%
+}
+
+\f{0Ichi}
+\f{0sis}
+\f{1Chacha}
+\f{2Hatsu}
+\f{3Gou}
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Asai/Makefile b/Master/texmf-dist/doc/latex/familytree/samples/Asai/Makefile
new file mode 100644
index 00000000000..1c5dfb956a4
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai/Makefile
@@ -0,0 +1,19 @@
+
+Dir ?= /tmp
+Tgt = ${Dir}/Asai.pdf
+
+LATEX ?= platex -kanji=euc
+include ../../cmd.mk
+
+all: ${Tgt}
+
+clean:
+ ${RM} *~ ${Tgt}
+
+install:
+ install -m 444 -pD ${Tgt} \
+ ${InstallDir}/source/latex/${Name}/$(notdir ${Tgt})
+
+${Tgt}: ${Dir}/%.pdf: %.tex ${Dir}/familytree.sty
+ $(call Latex, $<)
+ cd ${Dir}; ${DVIPDFMX} $(basename $<).dvi
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Crawley.pdf b/Master/texmf-dist/doc/latex/familytree/samples/Crawley.pdf
new file mode 100644
index 00000000000..4b068ec33cf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Crawley.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Crawley.tex b/Master/texmf-dist/doc/latex/familytree/samples/Crawley.tex
new file mode 100644
index 00000000000..8977c9ca339
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Crawley.tex
@@ -0,0 +1,258 @@
+\documentclass{article}
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+
+\makeatletter
+\let\stript=\strip@pt
+\makeatother
+
+\input{../fonts}
+\usepackage[dvipdfm,a4paper]{geometry}
+\usepackage{familytree}
+
+\newcommand{\nee}[1]{%
+ \\{\relsize{-1}(n\'{e}e #1)}%
+}
+
+\newcommand{\cname}[2][0]{%
+ \ifnum#1=1\let\mybox=\fbox\else\let\mybox=\mbox\fi%
+ \mybox{%
+ \begin{minipage}[b]{5em}%
+ \baselineskip=\dimexpr\baselineskip*10/15\relax%
+ \centering{#2}%
+ \end{minipage}%
+ }%
+}
+
+\NewDocumentCommand{\idef}{O{\ftbiological}mO{0}moO{0pt}}{%
+ % [cmark] id [fbox] name [opt] [xlen]
+ \indvdldef[#1]{#2}{\cname[#3]{#4}}[#5][#6]%
+}
+
+\begin{document}
+%\pagestyle{empty}
+
+familytree pkg sample
+
+\section*{\textsl{Inheritance Diagram}}
+
+Here, the Crawley family and their stories are borrowed from the
+famous British TV series \textsl{Downton Abbey\,.}
+I've borrowed it just to show how to use this familytree package.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section*{Crawley sisters}
+
+\idef{youngSybil}{Lady Sybil}
+\idef{youngEdith}{Lady Edith}
+\idef{youngMary}{Lady Mary}
+\sblngdef{youngSis}{youngMary,ivali,youngEdith,ivali,youngSybil}
+
+\idef{Robert}[1]{Robert Crawley}[7th Earl of Grantham]
+\idef[\ftblank]{Cora}{Cora Crawley \nee{Levinson}}[Countess of
+ Grantham,\haschild]
+\mrrgdef{seven}{}{Robert}{Cora}
+
+\gensdef{RobertyoungSis}{seven}{%
+ {Cora}{youngSis}%
+}
+\fbox{\usebox{\RobertyoungSis}}
+\bigskip
+
+Under the fee tail or ``entail'', three daughters
+cannot inherit the title and the estate of Lord Grantham's,
+including the big amount of fortune (dowry) Cora had brought.
+The law requires a male heir.
+
+Fortunately Robert has a cousin James Crawley, and his son Patrick.
+They are good heir presumptive to the earldom.
+Actually, but not officially, the eldest daughter Lady Mary is engaged
+to Patrick so that the family will keep their assets.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section*{Relationship between Robert, Matthew and cousin Patrick}
+\small
+
+\idef{youngMatthew}[1]{Matthew Crawley}
+\idef{Patrick}[1]{Patrick Crawley}[deceased\,?]
+
+\idef{Reginald}{Dr. Reginald Crawley}[(deceased)]
+\idef[\ftblank]{Isobel}{Isobel Crawley \nee{Turnbull}}[\haschild]
+\mrrgdef{ReginaldIsobel}{}{Reginald}{Isobel}[3em]
+\gensdef{IsobelMatthew}{ReginaldIsobel}{%
+ {Isobel}{youngMatthew}%
+}
+
+\ftundef{Robert}
+\idef{Robert}[1]{Robert Crawley}[7th Earl of Grantham,\maleline][2em]
+\pcdef{RobertMary}{Robert}{youngMary}
+
+\idef{James}[1]{James Crawley}[(deceased),\maleline][2em]
+\pcdef{JamesPatrick}{James}{Patrick}
+
+% \fbox{\vbox{%
+% \hbox{\usebox{\IsobelMatthew}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\RobertMary}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\JamesPatrick}}%
+% }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\idef{sixMat}{{\relsize{-1} Mr. Crawley}}
+ [6th gen.,(deceased),\maleline][3em]
+\pcdef{sixMatpc}{sixMat}{IsobelMatthew}
+
+\idef{PatrickSix}{Patrick Crawley}
+ [6th Earl of Grantham,(deceased),\maleline][3em]
+\pcdef{sixRobpc}{PatrickSix}{RobertMary}
+
+\pcdef{sixPatpc}{sixMat}{JamesPatrick}
+
+\sblngdef{sixes}{sixRobpc,ival,sixPatpc}
+
+% \fbox{\vbox{
+% \hbox{\usebox{\sixMatpc}}
+% \vskip\baselineskip
+% \hbox{\usebox{\sixes}}
+% }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\idef{fiveMat}{{\relsize{-1} Mr. Crawley}}[5th gen.,(deceased),\maleline]
+\pcdef{fiveMatpc}{fiveMat}{sixMatpc}
+
+\idef{fiveRob}{{\relsize{-1} 5th Earl of Grantham}}[(deceased),\maleline]
+\pcdef{fiveRobpc}{fiveRob}{sixes}
+
+% \fbox{\vbox{%
+% \hbox{\usebox{\fiveMatpc}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\fiveRobpc}}%
+% }}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\idef{fourMat}{{\relsize{-1} Mr. Crawley}}[4th gen.,(deceased),\maleline]
+\pcdef{fourMatpc}{fourMat}{fiveMatpc}
+\idef{fourRob}{{\relsize{-1} 4th Earl of Grantham}}[(deceased),\maleline]
+\pcdef{fourRobpc}{fourRob}{fiveRobpc}
+
+\sblngdef{fours}{fourRobpc,ival,fourMatpc}
+
+% \fbox{\usebox{\fours}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\idef[\fttop]{three}{{\relsize{-1} 3rd Earl of Grantham}}[(deceased),\maleline]
+\pcdef{threepc}{three}{fours}
+
+\fbox{\usebox{\threepc}}
+\bigskip
+
+\normalsize
+In 1912, James and Patrick have perished in the sinking of Titanic,
+and their body were not found. Not only Lady Mary lost her unofficial
+fianc\'{e}, but also the family lost the male heir.
+
+But Murray, Lord Grantham's business partner also a lawyer, discovered
+Robert's third cousin once removed, Matthew Crawley who is a son of an
+upper-middle-class doctor.
+Now Matthew has become the next heir presumptive out of the blue.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section*{Family member of Robert Crawley}
+
+\idef{Sybbie}{Sybil ``Sybbie'' Branson}
+\idef[\ftblank]{Tom}{Tom Branson}[\haschild]
+\idef{Sybil}{Sybil Cora Branson \nee{Crawley}}[(deceased)]
+
+\idef{Marigold}{Marigold Crawley}
+\idef{Edith}{Edith Pelham \nee{Crawley}}[Marchioness of Hexham]
+\idef[\ftblank]{Bertie}{Herbert ``Bertie'' Pelham}[7th Marquess of Hexham]
+\idef[\ftblank]{Gregson}{Michael Gregson}[(deceased),\private,\haschild]
+
+\idef{George}[1]{George Crawley}[Heir presumptive of,Robert Crawley]
+\idef[\ftblank]{Matthew}{Matthew Crawley}[(deceased),\haschild]
+\idef{Mary}{Mary Josephine Crawley}%[ ]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\mrrgdef{Bransons}{Tom}{Sybil}{}[\dimexpr\wd\Bertie-\wd\Sybil-2em\relax]
+\gensdef{TomSybbie}{Bransons}{%
+ {Tom}{Sybbie}%
+}
+% \fbox{\usebox{\TomSybbie}}
+
+\mrrgdef{EdithHus}{Gregson}{Edith}{Bertie}[-2em]
+\gensdef{EdithMarigold}{EdithHus}{%
+ {Gregson}{Marigold}%
+}
+% \fbox{\usebox{\EdithMarigold}}
+
+\mrrgdef{MatthewMary}{Matthew}{Mary}{}
+ [\dimexpr\wd\Bertie-\wd\Matthew-2em\relax]
+\gensdef{MaryGeorge}{MatthewMary}{%
+ {Matthew}{George}%
+}
+% \fbox{\usebox{\MaryGeorge}}
+
+\sblngdef{sis}{MaryGeorge,ivalii,EdithMarigold,ivalii,TomSybbie}
+% \fbox{\usebox{\sis}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\idef{Rosamund}{Rosamund Painswick \nee{Crawley}}
+\hyphenation{Marmaduke}
+\idef[\ftblank]{Marmaduke}{Sir Marmaduke Painswick}[(deceased)]
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\mrrgdef{Painswicks}{}{Rosamund}{Marmaduke}
+\sblngdef{RobertRosamund}{seven,ivalii,Painswicks}
+% \fbox{\usebox{\RobertRosamund}}
+
+\edef\RobertRosamundsevennameCY{%
+ \stript\dimexpr\sevenCoramrrgCY pt + \RobertRosamundsevennameCY pt%
+ - \sevennameCY pt%
+}
+\gensdef{Robertandsis}{RobertRosamund}{%
+ {seven}{sis}%
+}
+% \fbox{\usebox{\Robertandsis}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ftundef{PatrickSix}
+\idef{PatrickSix}{Patrick Crawley}[6th Earl of Grantham (deceased)]
+\idef[\ftblank]{Violet}{Violet Crawley}
+ [Dowager Countess of Grantham,\haschild]
+
+\mrrgdef{six}{}{PatrickSix}{Violet}
+\gensdef{Crawleys}{six}{%
+ {Violet}{Robertandsis}%
+}
+
+\fbox{\usebox{\Crawleys}}
+
+\hfill (at the end of Season 7)
+
+\end{document}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\idef[\ftblank]{}{Isidore Levinson}[(deceased)]
+\idef{}{Martha Levinson}
+\mrrgdef{Levinsons}{}{Isidore}{Martha}
+\idef{}{Harold Levinson}
+
+\idef{}{Roberta}
+\idef[\ftblank]{}{husband}
+
+\idef{}{Susan MacClare}[Marchioness of Flintshire]
+\idef[\ftblank]{}{Hugh ``Shrimpie'' MacClare}[Marquess of Flintshire]
+\mrrgdef{MacClares}{}{Shrimpie}{Susan}
+\idef{}{Lady Rose MacClare}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Makefile b/Master/texmf-dist/doc/latex/familytree/samples/Makefile
new file mode 100644
index 00000000000..61db41cab8e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Makefile
@@ -0,0 +1,24 @@
+
+Dir ?= /tmp
+Tgt = ${Dir}/Crawley.pdf
+
+include ../cmd.mk
+
+all: ${Tgt}
+ for i in Asai Tokugawa; \
+ do ${MAKE} -C ${CURDIR}/$${i} $@; done
+
+clean:
+ ${RM} *~ ${Tgt}
+ for i in Asai Tokugawa; \
+ do ${MAKE} -C ${CURDIR}/$${i} $@; done
+
+install: all
+ install -m 444 -pD ${Tgt} \
+ ${InstallDir}/source/latex/${Name}/$(notdir ${Tgt})
+ for i in Asai Tokugawa; \
+ do ${MAKE} -C ${CURDIR}/$${i} $@; done
+
+${Tgt}: ${Dir}/%.pdf: %.tex ${Dir}/familytree.sty
+ $(call Latex, $<)
+ cd ${Dir}; ${DVIPDFMX} $(basename $<).dvi
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa.pdf b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa.pdf
new file mode 100644
index 00000000000..78b07ad2669
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Makefile b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Makefile
new file mode 100644
index 00000000000..9c91482b6f7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Makefile
@@ -0,0 +1,20 @@
+
+Dir ?= /tmp
+Tgt = ${Dir}/Tokugawa.pdf
+
+LATEX ?= platex -kanji=euc
+include ../../cmd.mk
+
+all: ${Tgt}
+
+clean:
+ ${RM} *~ ${Tgt}
+
+install:
+ install -m 444 -pD ${Tgt} \
+ ${InstallDir}/source/latex/${Name}/$(notdir ${Tgt})
+
+${Tgt}: ${Dir}/%.pdf: %.tex ${Dir}/familytree.sty
+ $(call Latex, $<)
+ cd ${Dir}; ${DVIPDFMX} -o a.pdf $(basename $<).dvi
+ ${PDFCROP} ${Dir}/a.pdf $@
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Tokugawa.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Tokugawa.tex
new file mode 100644
index 00000000000..dd71aa8e283
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/Tokugawa.tex
@@ -0,0 +1,299 @@
+\documentclass[
+ paper=a0,
+ tate,
+ %landscape,
+ %12pt,
+ jlreq_notes,open_bracket_pos=nibu_tentsuki
+]{jlreq}
+\AtBeginDvi{\special{papersize=\the\paperwidth,\the\paperheight}}
+
+\input{../../fonts}
+\usepackage[noreplace,expert]{otf}
+\usepackage{familytree}
+
+\newcommand{\Empty}{}
+\newcommand{\nm}{}
+\NewDocumentCommand{\idef}{O{\ftbiological}momoO{0pt}}{
+ % [cmark] xname [title] name [opt] [xlen]
+ \def\nm{#4}%
+ \if#2\Empty\else%
+ \def\nm{#4¡Ê#2¡Ë}%
+ \fi%
+ %
+ \indvdldef[#1]{#4}[#3]{\nm}[#5][#6]%
+}
+\let\sdef=\sblngdef
+%\nameboxcfg{}{}{}{4zw}
+
+\ivaldef{ivalv}{5zh}
+\ivaldef{ivalx}{10zh}
+
+\begin{document}
+\pagestyle{empty}
+
+familytree sample
+
+\textgt{\large ÆÁÀî¾­·³Éã·Ï¿Þ}
+
+\input{tg-15th}
+% \fbox{\usebox{\²ÈÌФλÒ}}
+
+\input{tg-14th}
+\pcdef{²ÈÌзĴî}{²ÈÌÐ}{²ÈÌФλÒ}
+% \fbox{\usebox{\²ÈÌзĴî}}
+
+\input{tg-13th}
+\gensdef{²ÈÄê²ÈÌÐ}{²È·Ä¤Î»Ò}{%
+ {²ÈÄê}{²ÈÌзĴî}%
+}
+% \fbox{\usebox{\²ÈÄê²ÈÌÐ}}
+
+\input{tg-12th}
+\gensdef{²È·Ä²ÈÄê}{²ÈÀƤλÒ}{%
+ {²È·Ä}{²ÈÄê²ÈÌÐ},%
+ {Àƽç}{·ÄÊ¡}%
+}
+% \fbox{\usebox{\²È·Ä²ÈÄê}}
+
+\input{tg-11th}
+%\ftdbgtrue
+%\message{\the\ht\²È·Ä²ÈÄê}
+\gensdef{²ÈÀƲȷÄ}{²È¼£¤Î»Ò}{%
+ {²ÈÀÆ}{²È·Ä²ÈÄê}%
+}
+%\message{\the\ht\²ÈÀƲȷÄ}
+% \fbox{\usebox{\²ÈÀƲȷÄ}}
+
+\input{tg-10th}
+\gensdef{²È¼£²ÈÀÆ}{²È½Å¤Î»Ò}{%
+ {²È¼£}{²ÈÀƲȷÄ}%
+}
+\gensdef{¼£ºÑ¿Æ»Ò}{½¡Õú¤Î»Ò}{%
+ {¼£ºÑ}{¼£ºÑ¤Î»Ò}%
+}
+% \fbox{%
+% \vbox{\hbox{\usebox{\²È¼£²ÈÀÆ}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\¼£ºÑ¿Æ»Ò}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Àƾ¼¤Î»Ò}}%
+% }}
+
+\input{tg-9th}
+\gensdef{²È½Å²È¼£}{µÈ½¡¤Î»Ò}{%
+ {²È½Å}{²È¼£²ÈÀÆ},%
+ {½¡Õú}{¼£ºÑ¿Æ»Ò}%
+}
+%\sdef{Íê³Ø¤Î»Ò}{Íê±Ñ,¾¾Ê¿Íêµ×}
+\gensdef{Àƾ¼¿Æ»Ò}{¼£µª¤Î»Ò}{%
+ {Àƾ¼}{Àƾ¼¤Î»Ò}%
+}
+% \fbox{%
+% \vbox{\hbox{\usebox{\²È½Å²È¼£}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Àƾ¼¿Æ»Ò}}%
+% }}
+
+\input{tg-8th}
+\pcdef{µÈ½¡²È½Å}{µÈ½¡}{²È½Å²È¼£}
+\pcdef{Íê³Ø¿Æ»Ò}{Íê³Ø}{Íê³Ø¤Î»Ò}
+%\pcdef{Íê·¼¿Æ»Ò}{Íê·¼}{Íê³Ø}
+\gensdef{¼£µªÀƾ¼}{¼£ÊݤλÒ}{%
+ {¼£µª}{Àƾ¼¿Æ»Ò}%
+}
+% \fbox{%
+% \vbox{\hbox{\usebox{\µÈ½¡²È½Å}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Íê³Ø¿Æ»Ò}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\¼£µªÀƾ¼}}%
+% }}
+
+\input{tg-7th}
+\pcdef{²È·ÑµÈ½¡}{²È·Ñ}{µÈ½¡²È½Å}
+\gensdef{Íê·¼Íê³Ø}{Í긬¤Î»Ò}{%
+ {Íê·¼}{Íê³Ø¿Æ»Ò}%
+}
+\gensdef{¼£Êݼ£µª}{½¡´Í¤Î»Ò}{%
+ {¼£ÊÝ}{¼£µªÀƾ¼}%
+}
+% \fbox{%
+% \vbox{\hbox{\usebox{\²È·ÑµÈ½¡}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Íê·¼Íê³Ø}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\¼£Êݼ£µª}}%
+% }}
+
+\input{tg-6th}
+\pcdef{²ÈÀë²È·Ñ}{²ÈÀë}{²È·ÑµÈ½¡}
+\gensdef{Í긬Íê·¼}{½¡¾­¤Î»Ò}{%
+ {Í긬}{Íê·¼Íê³Ø}%
+}
+%\sdef{ÍêË­¤Î»Ò}{·ÚËãϤ,Íê¼£}
+\gensdef{½¡´Í¼£ÊÝ}{½¡ô¡¤Î»Ò}{%
+ {½¡´Í}{¼£Êݼ£µª}%
+}
+% \fbox{\usebox{\½¡¾­¤Î»Ò}}\par
+% \fbox{\usebox{\ÍêË­¤Î»Ò}}\par
+% \fbox{\usebox{\½¡ô¡¤Î»Ò}}\par
+% \fbox{%
+% \vbox{\hbox{\usebox{\²ÈÀë²È·Ñ}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Í긬Íê·¼}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\½¡´Í¼£ÊÝ}}%
+% }}
+
+\input{tg-5th}
+\pcdef{¹ËµÈ²ÈÀë}{¹ËµÈ}{²ÈÀë²È·Ñ}
+\gensdef{½¡¾­Í긬}{½¡Ä¾¤Î»Ò}{%
+ {½¡¾­}{Í긬Íê·¼}%
+}
+%\tokuone{Íê¾Ï}{¼°Éô}
+\gensdef{ÍêË­¿Æ»Ò}{Íê¾ï¤Î»Ò}{%
+ {ÍêË­}{ÍêË­¤Î»Ò}%
+}
+\gensdef{½¡ô¡½¡´Í}{¹Ë¾ò¤Î»Ò}{%
+ {½¡ô¡}{½¡´Í¼£ÊÝ}%
+}
+% \fbox{\usebox{\¹ËµÈ}}\par
+% \fbox{\usebox{\½¡Ä¾¤Î»Ò}}\par
+% \fbox{\usebox{\Íê¾ï¤Î»Ò}}\par
+% \fbox{\usebox{\¹Ë¾ò¤Î»Ò}}\par
+% \fbox{%
+% \vbox{\hbox{\usebox{\¹ËµÈ²ÈÀë}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\½¡¾­Í긬}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\ÍêË­¿Æ»Ò}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\½¡ô¡½¡´Í}}%
+% }}
+
+\input{tg-4th}
+\gensdef{²È¹Ë¹ËµÈ}{²È¸÷¤Î»Ò}{%
+ {²È¹Ë}{¹ËµÈ²ÈÀë},%
+ {¹Ë½Å}{¹Ë½Å¤Î»Ò}%
+}
+%\sdef{¸÷Äç¤Î»Ò}{¹Ë¶µ,Í꿦,Íêµ×}
+\gensdef{½¡Ä¾½¡¾­}{Íê½ã¤Î»Ò}{%
+ {½¡Ä¾}{½¡¾­Í긬}%
+}
+\gensdef{Íê¾ïÍêË­}{Íê½Å¤Î»Ò}{%
+ {Íê¾ï}{ÍêË­¿Æ»Ò},%
+ {Íê¾Ï}{¼°Éô}%
+}
+%\let\Íê¾ÏÍêË­=\Íê¾ïÍêË­
+\gensdef{¹Ë¾ò½¡ô¡}{¸÷Óû¤Î»Ò}{%
+ {¹Ë¾ò}{½¡ô¡½¡´Í}%
+}
+% \fbox{\usebox{\²È¸÷¤Î»Ò}}\par
+% \fbox{\usebox{\¸÷Äç¤Î»Ò}}\par
+% \fbox{\usebox{\Íê½ã¤Î»Ò}}\par
+% \fbox{\usebox{\Íê½Å¤Î»Ò}}\par
+% \fbox{\usebox{\¸÷Óû¤Î»Ò}}\par
+% \fbox{%
+% \vbox{\hbox{\usebox{\²È¹Ë¹ËµÈ}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\½¡Ä¾½¡¾­}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Íê¾ïÍêË­}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\¹Ë¾ò½¡ô¡}}%
+% }}
+
+\input{tg-3rd}
+\gensdef{²È¸÷²È¹Ë}{½¨Ãé¤Î»Ò}{%
+ {²È¸÷}{²È¹Ë¹ËµÈ}%
+}
+\gensdef{¸÷ÄçÍêµ×}{ÍêÀë¤Î»Ò}{%
+ {¸÷Äç}{¸÷Äç¤Î»Ò},%
+ {Íê½ã}{½¡Ä¾½¡¾­}%
+}
+%\let\Íê½ã½¡Ä¾=\¸÷ÄçÍêµ×
+\gensdef{Íê½ÅÍê¾ï}{Íê˼¤Î»Ò}{%
+ {Íê½Å}{Íê¾ïÍêË­},%
+ {¸÷Óû}{¹Ë¾ò½¡ô¡}%
+}
+\let\¸÷Óû¹Ë¾ò=\Íê½ÅÍê¾ï
+% \fbox{%
+% \vbox{\hbox{\usebox{\²È¸÷²È¹Ë}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\¸÷ÄçÍêµ×}}%
+% \vskip\baselineskip%
+% \hbox{\usebox{\Íê½ÅÍê¾ï}}%
+% }}
+
+\input{tg-2nd}
+\gensdef{½¨Ãé²È¸÷}{²È¹¯¤Î»Ò}{%
+ {½¨Ãé}{²È¸÷²È¹Ë},%
+ {ÍêÀë}{¸÷ÄçÍêµ×},%
+ {Íê˼}{Íê½ÅÍê¾ï}%
+}
+% \fbox{\usebox{\½¨Ãé²È¸÷}}
+
+\input{tg-1st}
+\pcdef{²È¹¯½¨Ãé}{²È¹¯}{½¨Ãé²È¸÷}
+%\fbox{%
+\usebox{\²È¹¯½¨Ãé}%
+%}
+
+% W \the\wd\²È¹¯½¨Ãé, H \the\ht\²È¹¯½¨Ãé, D \the\dp\²È¹¯½¨Ãé
+
+\clearpage
+\begin{minipage}{16zw}
+\iffalse
+Å·¹Ä²È¤Ï¹Ä°Ì·Ñ¾µ¤ÎºÝ¤ËÍܻҤò¤È¤ë¤³¤È¤Ï¤Ê¤¤¡£¾ò·ï¤Ï¹Ä²Ã˻ҤȤ¤¤¦¤³¤È¤·
+¤«¤Ê¤¤¤Î¤À¤í¤¦¤«¡£
+°ìÊý¡¢¾­·³²È¤Ïɬ¤ºÍܻҤˤ·¤Æ¾­·³¿¦¤ò·Ñ¤¬¤»¤Æ¤¤¤ë¡£¤³¤Î
+°ã¤¤¤Ï²¿¤À¤í¤¦¤«¤È¼«Ê¬¤Ê¤ê¤Ë¹Í¤¨¤Æ¤ß¤¿¡£
+
+¾­·³²È¤Î¾ì¹ç¤Ï¡¢¡Ö¿¦¡×¤ò·Ñ¤¤¤Ç¤¤¤ë¤È¤¤¤¦ÅÀ¤¬°ÕÌ£¤ò»ý¤Ä¤Î¤À¤í¤¦¤«¡£
+ºâ»º¤ÎÁ곤À¤±¤Ê¤é¤ÐÍܻҤǤʤ¯¤È¤âÎɤ¤¤È»×¤¦¤¬¡¢ÀΤϹͤ¨Êý¤¬°ã¤¦¤Î¤À¤í
+¤¦¤«¡£
+¤¦¡¼¤ó¡¢¤É¤¦¤À¤í¤¦¡£
+
+¿¦¥¤¥³¡¼¥ë´±°Ì¤ÏÄ«Ä¤é»ò¤ï¤Ã¤¿¤â¤Î¤Ç¡¢¤³¤ì¤ò·Ñ¾µ¤Ç¤­¤ë¤Î¤ÏÃäÃˤ˸¤ë
+¤È¤«¤¤¤¦¤³¤È¤«¡£¤ó¤Ç¡¢¿¦¥¤¥³¡¼¥ë¡Ö²È¡×¤«¡£
+¸Å¤¯¤Ï¡ÖÂ碡פȤ¤¤¦¿¦¤¬¤¢¤ê¡¢¤½¤Î¿¦¤òƱ¤¸²È¤Ç·Ñ¾µ¤·¤Æ¤¤¤¿¤½¤¦¤Ê¡£¤½¤Î
+̾¤âÂ碤µ¤ó¡£¿¦¤ÎÂ碤ϸå¤ÎÂ碾ʤˤĤʤ¬¤ë¡£»Å»ö¤ÎÃæ¿È¤¬Â¢¤Î´ÉÍý¤«¤ª
+¶â¤Î´ÉÍý¤«¤ÏÃΤé¤ó¤±¤É¡£
+
+·Ñ¾µ¤Ç¤­¤Ê¤±¤ì¤ÐÊÖ¾å¡ÊÊô´Ô¡Ë¤¹¤ë¤·¤«¤Ê¤¤¤È¤¤¤¦¤³¤È¤«¡£
+¤À¤«¤é¿ïʬ±ó¤¤¿ÆÀ̤ǤâÍ¥½¨¤È¸«¹þ¤Þ¤ì¤ì¤Ð¾­·³¿¦¤Ë¤Õ¤µ¤ï¤·¤¤¤È¤Î¹Í¤¨¤«¤é¡¢
+¤¿¤È¤¨ÀÞ¤ê¹ç¤¤¤¬°­¤¤¼Ô¤Ç¤â¡¢ÍܻҤÎÊý¤¬Ç¯¾å¤Ç¤â¡¢
+ÍܻұïÁȤ·¤Æ¾­·³¿¦¤ò·Ñ¤¬¤»¤ë¤È¤¤¤¦¤³¤È¤Ê¤Î¤«¡£
+¤¦¡¼¤ó¡¢°ã¤¦¤«¤Ê¡£
+
+¤Ç¤â¡¢Í¥½¨¤«¤É¤¦¤«¤È¤¤¤¦È½ÃǤ¬Æþ¤ë¤Î¤ÏÍܻҤξì¹ç¤À¤±¤Ç¡¢¼Â»Ò¤¬¤¢¤ë¾ì¹ç
+¤ÏÍľ¯¤È¤«É¼å¤È¤«¡¢¤¢¤Þ¤êÎɤ¯¤Ê¤¤¾õ¶·¤Ç¤â·Ñ¤¤¤Ç¤¤¤ë¡£¼Â»Ò¤È¤¤¤¦¤À¤±¤Ç
+ÁêÅö¶¯¤¤¤è¤¦¤À¡£
+³«¹ñÁ°¸å¤ÎËëÉܤÎ̵ǽ¤Ö¤ê¤Ï¤è¤¯¸À¤ï¤ì¤ë¤¬¡¢Á´¤¯¹Í¤¨¤Æ¤¤¤Ê¤¤¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
+¾­·³¿¦¤Î·Ñ¾µ¤Ï¤ª¤ª¤´¤È¤À¤«¤é¤«¤â¤·¤ì¤Ê¤¤¤±¤É¡¢°Õ³°¤È¹Í¤¨¤Æ¤¤¤ë¤¸¤ã¤Ê¤¤
+¤«¤È¤¤¤¦°õ¾Ý¤À¡£
+
+ÈøÄ¥¡¢¿å¸Í¡¢µª°Ë¤Ï¸æ»°²È¤È¤¤¤Ã¤Æ¡¢²È¹¯¤Î»Ò¤¬ÆÁÀîʬ²È¤Ë¤Ê¤Ã¤¿¡£Åö½é¤«
+¤é½¡²È¤ÎÀ׷Ѥ®¤¬¥Ô¥ó¥Á¤Ë¤Ê¤Ã¤¿¾ì¹ç¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤È¹Í¤¨¤é¤ì¤Æ¤¤¤¿¤è¤¦¤À¡£
+¸¢ÎÏÆ®Áè¤òÈò¤±¤ëÌÜŪ¤â¤¢¤Ã¤¿¤À¤í¤¦¤¬¡£
+¤³¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÏÍ­¸ú¤Ëµ¡Ç½¤·¤¿¡£ÈøÄ¥¡¢¿å¸Í¤Ï¸å¤Ë½¡²È¤ØÍܻҤòÁ÷¤ê½Ð¤·¤¿¡£
+ÈøÄ¥¤«¤é¾­·³¤Ï½Ð¤Æ¤¤¤Ê¤¤¤¬¡¢°ÕµÁ¤¬Ìµ¤¤¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
+
+¸½Âå¤Î¹Ä¼¼¤Ï¤É¤¦¤À¤í¤¦¤«¡£
+ÌÀ¼£À¯Éܤ¬Åµ»ø¤Ê¤É¤Î½÷´±¿¦¤òÂ礭¤¯Êѹ¹¤·¡¢ÂçÀµ»þÂå¤Ë¤âÅö»þ¤ÎÀÝÀ¯¤¬Åµ»ø
+¤ò¤¤¤è¤¤¤èÇѻߤ¹¤ëÊý¸þ¤Ø¿Ê¤á¤¿¡£
+ÂçÀµÅ·¹Ä°Ê¹ß¡¢Å·¹Ä¤Ï¹Ä¹¡¤È¤·¤«»Ò¤ò¤â¤¦¤±¤Æ¤¤¤Ê¤¤¡£Â¦¼¼À©ÅÙ¤â¤Ê¤¤¡£
+¸½ºß¤Î¹Ä¼¼ÅµÈϤǤÏÀµ¼¼¤Î»Ò¤·¤«¹Ä²¤Ç¤Ï¤Ê¤¤¤È¤·¤Æ¤¤¤ë¤é¤·¤¤¡£
+¤¦¡¼¤ó¡¢¥Ð¥Ã¥¯¥¢¥Ã¥×¤ÏÍפé¤ó¤Î¤À¤í¤¦¤«¡©
+\bigskip
+
+¿å¸Í²«Ìç¤Ï¼Â»Ò¤òĹ·»¤ØÍܻҤ˽Ф·¡¢¤Þ¤¿Ä¹·»¤Î»Ò¤òÍܻҤˤȤ俤ꤷ¤Æ¤¤¤ë¡£
+¤Ê¤ó¤«ÉÔ¼«Á³¤Ë¸«¤¨¤ë¤¬¡¢¼¡Ãˤμ«Ê¬¤¬²ÈÆĤò·Ñ¤¤¤À¤³¤È¤Ë°ú¤±Ìܤò´¶¤¸¤Æ¤¤
+¤¿¤«¤é¤À¤½¤¦¤Ê¡£¼¡Âå¤Ï·»¤Î»Ò¤Ø·Ñ¤¬¤»¤¿¤«¤Ã¤¿¤È¤¤¤¦¤³¤È¤«¡£
+\bigskip
+\fi
+
+¤³¤Î¿Þ¤Ïñ¤Ë¿Í¿ô¤¬Â¿¤¤¤À¤±¤Ç¤Ï¤Ê¤¯¡¢Âå¤òƱ¤¸¹â¤µ¤Ë·¤¨¤ë¤Î¤Ë¼ê´Ö¤¬¤«¤«¤Ã
+¤¿¡£¤³¤ÎÊÕ¤âfamilytree pkg¤Îº£¸å¤Î²ÝÂê¤À¡¢Í¥ÀèÅÙ¤ÏÄ㤤¤±¤ì¤É¤â¡£
+\end{minipage}
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-10th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-10th.tex
new file mode 100644
index 00000000000..b58df406e35
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-10th.tex
@@ -0,0 +1,25 @@
+\idef{}[½½Âå]{²È¼£}[\ftmaleline,À¸\ymd{1737}][4zw]
+\idef{À¶¿å}{½Å¹¥}
+\sdef{²È½Å¤Î»Ò}{²È¼£,½Å¹¥}
+
+\idef{¾¾Ê¿}{½Å¾»}
+\idef{¾¾Ê¿}{½ÅÉÙ}
+\idef{}{¼£ºÑ}[\ftmaleline][4zw]
+\idef{¹õÅÄ}{¼£Ç·}
+\sdef{½¡Õú¤Î»Ò}{½Å¾»,½ÅÉÙ,¼£ºÑ,¼£Ç·}
+
+\idef{}{·ÄÆÆ}[À¸\ymd{1832}]
+\idef{ÃÓÅÄ}{·ÄÆÁ}
+\idef{¾¾Ê¿ °ì¶¶ ¸å¤Î½½¸ÞÂå ·Ä´î}{¾¼Ã×}
+\idef{¾¾Ê¿}{ľ¸ô}
+\idef{ÃÓÅÄ}{ÌÐÀ¯}
+\idef{¾¾Ê¿}{Éðæâ}
+\idef{´îÏ¢Àî}{Æì»á}
+\idef{¾¾Ê¿}{¾¼·±}
+%\idef{¾¾Ê¿}{ÃéÏÂ}
+\indvdldef{Àƾ¼»ÒÃéÏÂ}{ÃéÏ¡ʾ¾Ê¿¡Ë}
+\idef{ÅÚ²°}{µóľ}
+\idef{ÆÁÀî}{¾¼Éð}
+\idef{¾¾Ê¿}{´îÆÁ}
+\idef{¾¾Ê¿}{ÍêÇ·}[À¸\ymd{1858}]
+\sdef{Àƾ¼¤Î»Ò}{·ÄÆÆ,·ÄÆÁ,¾¼Ã×,ľ¸ô,ÌÐÀ¯,Éðæâ,Æì»á,¾¼·±,Àƾ¼»ÒÃéÏÂ,µóľ,¾¼Éð,´îÆÁ,ÍêÇ·}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-11th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-11th.tex
new file mode 100644
index 00000000000..635339f8987
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-11th.tex
@@ -0,0 +1,11 @@
+\idef[\adopted]{}[½½°ìÂå]{²ÈÀÆ}[\ftmaleline,À¸\ymd{1773}][10zw]
+\idef{}{²È´ð}
+\sdef{²È¼£¤Î»Ò}{²È´ð,ival,²ÈÀÆ}
+
+\idef{¸å¤Î½½°ìÂå ²ÈÀÆ}{Ë­ÀéÂå}
+\idef{}{¼£¹ñ}
+\idef{¹õÅÄ}{ÀÆδ}
+\idef{}{Àƶ©}
+\idef{}{ÀÆÆØ}
+\idef{¾¾Ê¿}{µÁµï}
+\sdef{¼£ºÑ¤Î»Ò}{Ë­ÀéÂå,¼£¹ñ,ÀÆδ,Àƶ©,ÀÆÆØ,µÁµï}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-12th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-12th.tex
new file mode 100644
index 00000000000..74687877211
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-12th.tex
@@ -0,0 +1,14 @@
+\idef{}[½½ÆóÂå]{²È·Ä}[\ftmaleline,À¸\ymd{1793}][4zw]
+\idef{}{Àƽç}[\ftmaleline,¤Ê¤ê¤æ¤­]
+\idef{À¶¿å}{ÀÆÌÀ}
+\idef{}{ÀÆÁñ}%[¤Ê¤ê¤¿¤«]
+\idef{ÃÓÅÄ}{Àƽ°}
+\idef{¾¾Ê¿}{ÀÆ̱}
+\idef{ÈøÄ¥}{ÀƲ¹}%[¤Ê¤ê¤Ï¤ë]
+\idef{¾¾Ê¿}{ÀÆÎÉ}%[¤Ê¤ê¤Ê¤¬]
+\idef{}{Àƶ°}%[¤Ê¤ê¤«¤Ä]
+\idef{¾¾Ê¿}{ÀÆÁ±}%[¤Ê¤ê¤µ¤ï]
+\idef{˪¿Ü²ì}{ÀÆ͵}%[¤Ê¤ê¤Ò¤í]
+\idef{¾¾Ê¿}{ÀƾÊ}%[¤Ê¤ê¤µ¤À]
+\idef{¾¾Ê¿}{ÀÆÀë}[À¸\ymd{1825}]
+\sdef{²ÈÀƤλÒ}{²È·Ä,ival,Àƽç,ÀÆÌÀ,ÀÆÁñ,Àƽ°,ÀÆ̱,ÀƲ¹,ÀÆÎÉ,Àƶ°,ÀÆÁ±,ÀÆ͵,ÀƾÊ,ÀÆÀë}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-13th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-13th.tex
new file mode 100644
index 00000000000..c51f640176b
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-13th.tex
@@ -0,0 +1,6 @@
+\idef{}[½½»°Âå]{²ÈÄê}[À¸\ymd{1824},\ftmaleline][4zw]
+\idef{°ì¶¶}{·Ä¾»}
+\sdef{²È·Ä¤Î»Ò}{²ÈÄê,ival,·Ä¾»}
+
+\idef{¸å¤Î½½»ÍÂå ²ÈÌÐ}{·ÄÊ¡}
+%\tokuone{Àƽç}{·ÄÊ¡}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-14th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-14th.tex
new file mode 100644
index 00000000000..54b864dbc99
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-14th.tex
@@ -0,0 +1 @@
+\idef[\adopted]{}[½½»ÍÂå]{²ÈÌÐ}[\ftmaleline,À¸\ymd{1846}][2zw]
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-15th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-15th.tex
new file mode 100644
index 00000000000..1554a8a8bf8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-15th.tex
@@ -0,0 +1,3 @@
+\idef[\adopted]{}{Ìоµ}[¤â¤Á¤Ä¤°]
+\idef[\adopted]{}[½½¸ÞÂå]{·Ä´î}[À¸\ymd{1837}]
+\sdef{²ÈÌФλÒ}{Ìоµ,ival,·Ä´î}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-1st.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-1st.tex
new file mode 100644
index 00000000000..a04add53129
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-1st.tex
@@ -0,0 +1 @@
+\idef[\fttop]{}[½éÂå]{²È¹¯}[\ftmaleline,À¸\ymd{1543}]
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-2nd.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-2nd.tex
new file mode 100644
index 00000000000..5b471722364
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-2nd.tex
@@ -0,0 +1,10 @@
+\idef{¾¾Ê¿}{¿®¹¯}
+\idef{·ë¾ë}{½¨¹¯}
+\idef{}[ÆóÂå]{½¨Ãé}[\ftmaleline,À¸\ymd{1579}][4zw]
+\idef{¾¾Ê¿}{ÃéµÈ}
+\idef{ÉðÅÄ}{¿®µÈ}
+\idef{¾¾Ê¿}{Ãéµ±}
+\idef{ÈøÄ¥}{µÁľ}
+\idef{µª°Ë}{ÍêÀë}[\ftmaleline]
+\idef{¿å¸Í}{Íê˼}[\ftmaleline]
+\sdef{²È¹¯¤Î»Ò}{¿®¹¯,½¨¹¯,ival,½¨Ãé,ival,ÃéµÈ,¿®µÈ,Ãéµ±,µÁľ,ival,ÍêÀë,ivalx,ivalx,ivalv,ivali,Íê˼}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-3rd.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-3rd.tex
new file mode 100644
index 00000000000..032ab8599fd
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-3rd.tex
@@ -0,0 +1,22 @@
+\idef{}[»°Âå]{²È¸÷}[\ftmaleline,À¸\ymd{1604}][4zw]
+\idef{½Ù²Ï}{ÃéĹ}
+\idef{ÊݲÊ}{ÀµÇ·}
+\sdef{½¨Ãé¤Î»Ò}{²È¸÷,ÃéĹ,ÀµÇ·}
+
+\idef{}{¸÷Äç}[\ftmaleline][4zw]
+\idef{¾¾Ê¿}{½¤Íý}
+\idef{¾¾Ê¿}{Íê½ã}[\ftmaleline]
+\sdef{ÍêÀë¤Î»Ò}{¸÷Äç,ivalii,½¤Íý,ivalii,Íê½ã}
+
+\idef{¾¾Ê¿}{Íê½Å}[\ftmaleline,À¸\ymd{1622}]
+\idef{}{¸÷Óû}[\ftmaleline][4zw]
+\idef{¾¾Ê¿}{Í긵}
+\idef{¾¾Ê¿}{Íêδ}
+\idef{¾¾Ê¿}{ÍêÍø}
+\idef{¾¾Ê¿}{Íêͺ}
+\indvdldef{Íê˼»ÒÍêͺ}{Íêͺ¡Ê¾¾Ê¿¡Ë}
+\indvdldef{Íê˼»ÒÍêÂÙ}{ÍêÂ١ʾ¾Ê¿¡Ë}
+\idef{¾¾Ê¿}{Íê°Ê}
+\idef{¾¾Ê¿}{˼»þ}
+\idef{ÎëÌÚ}{½ÅµÁ}[À¸\ymd{1634}]
+\sdef{Íê˼¤Î»Ò}{Íê½Å,ivalii,ivalii,¸÷Óû,Í긵,Íêδ,ÍêÍø,Íê˼»ÒÍêͺ,Íê˼»ÒÍêÂÙ,Íê°Ê,˼»þ,½ÅµÁ}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-4th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-4th.tex
new file mode 100644
index 00000000000..033c12f4cd6
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-4th.tex
@@ -0,0 +1,35 @@
+
+\idef{}[»ÍÂå]{²È¹Ë}[\ftmaleline,À¸\ymd{1641}][8zw]
+\idef{¹ÃÉÜ}{¹Ë½Å}[\ftmaleline]
+\idef{¸å¤Î¸ÞÂå ¹ËµÈ}{ÆÁ¾¾}
+\sdef{²È¸÷¤Î»Ò}{²È¹Ë,ival,¹Ë½Å,ÆÁ¾¾}
+
+\idef{}{¹Ë¶µ}
+\idef{}{Í꿦}
+\idef{¸å¤ÎȬÂå µÈ½¡}{Íêµ×}
+\sdef{¸÷Äç¤Î»Ò}{¹Ë¶µ,Í꿦,Íêµ×}
+
+\idef{ÅÏÊÕ}{¶³¹Ë}
+\idef{¾¾Ê¿}{ÍêÏ©}
+\idef{¾¾Ê¿}{ÍêÎ÷}
+\indvdldef{Íê½ã»ÒÍêͺ}{Íêͺ¡Ê¾¾Ê¿¡Ë}
+\idef{}{½¡Ä¾}[\ftmaleline][8zw]
+\idef{»°ËÙ}{¾°Ê÷}
+\idef{¾¾Ê¿}{ÍêÅÏ}
+\sdef{Íê½ã¤Î»Ò}{¶³¹Ë,ÍêÏ©,ÍêÎ÷,Íê½ã»ÒÍêͺ,½¡Ä¾,¾°Ê÷,ÍêÅÏ}
+
+\idef{¸å¤ÎÆÁÀî¹ËÊý}{ÍêÀ¤}%[¤è¤ê¤è]%¸÷Óû¤Ø
+\idef[\adopted]{}{Íê¾ï}[\ftmaleline][8zw]
+\idef{¸å¤ÎÆÁÀî¹Ë¾ò}{Íê¹ñ}%¸÷Óû¤Ø
+\idef{}{Íê¹ä}
+\idef{}{Íê¾Ï}[\ftmaleline]
+\idef{}{Íêľ}
+\idef{}{Íê˧}
+\sdef{Íê½Å¤Î»Ò}{ÍêÀ¤,Íê¾ï,Íê¹ñ,Íê¹ä,Íê¾Ï,Íêľ,Íê˧}
+
+%¸÷Óû¤Î¼Â»Ò
+\idef{¸å¤Î¾¾Ê¿Íê¾ï}{ÄáÀéÂå}%Íê½Å¤Ø
+%¸÷Óû¤ÎÍÜ»Ò
+\idef[\adopted]{}{¹ËÊý}
+\idef[\adopted]{}{¹Ë¾ò}[\ftmaleline,¹ËÛê ¤Ä¤Ê¤¨¤À][8zw]
+\sdef{¸÷Óû¤Î»Ò}{ÄáÀéÂå,¹ËÊý,¹Ë¾ò}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-5th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-5th.tex
new file mode 100644
index 00000000000..180ab0d48ca
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-5th.tex
@@ -0,0 +1,27 @@
+
+\idef[\adopted]{}[¸ÞÂå]{¹ËµÈ}[\ftmaleline,À¸\ymd{1646}][4zw]
+
+\idef{¸å¤ÎÏ»Âå ²ÈÀë}{¹ËË­}
+\idef{¾¾Ê¿}{À¶Éð}
+\sdef{¹Ë½Å¤Î»Ò}{¹ËË­,À¶Éð}
+
+\idef{}{½¡¾­}[\ftmaleline][4zw]
+\idef{}{¼£Äç}
+\idef{¾¾Ê¿}{Íê±û}
+\idef{¾¾Ê¿}{¿®Í­}
+\idef{ÆâÆ£}{Äç´´}
+\sdef{½¡Ä¾¤Î»Ò}{½¡¾­,¼£Äç,Íê±û,¿®Í­,Äç´´}
+
+\idef{¸å¤ÎÍêË­}{¼°Éô}
+%\tokuone{Íê¾Ï}{¼°Éô}
+
+\indvdldef{Íê¾ï»ÒÍêÂÙ}{ÍêÂÙ}
+\idef{}{µ×¾¾}
+\idef[\adopted]{}{ÍêË­}[\ftmaleline][4zw]
+\sdef{Íê¾ï¤Î»Ò}{Íê¾ï»ÒÍêÂÙ,µ×¾¾,ÍêË­}
+
+\idef{}{µÈÕÕ}[¤è¤·¤¶¤Í]
+\indvdldef[\adopted]{tmp}{½¡ô¡}[\ftmaleline,¤à¤Í¤¿¤«]
+\idef[\adopted]{}{½¡ô¡}[\ftmaleline,¤à¤Í¤¿¤«][4zw]
+\ftundef{tmp}
+\sdef{¹Ë¾ò¤Î»Ò}{µÈÕÕ,½¡ô¡}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-6th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-6th.tex
new file mode 100644
index 00000000000..d3b9484d974
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-6th.tex
@@ -0,0 +1,21 @@
+\idef[\adopted]{}[Ï»Âå]{²ÈÀë}[\ftmaleline,À¸\ymd{1662}][4zw]
+
+\idef{}{½ÅÎÑ}
+\idef{ÆâÆ£}{³Øʸ}
+\idef{¾¾Ê¿}{Í궽}
+\idef{¾¾Ê¿}{Í긬}[\ftmaleline,¤è¤ê¤«¤¿]
+\idef{¾¾Ê¿}{Ãé¸ù}
+\idef{»°±º}{°Ùæû}
+%\idef{¾¾Ê¿}{ÃéÏÂ}
+\indvdldef{½¡¾­»ÒÃéÏÂ}{ÃéÏ¡ʾ¾Ê¿¡Ë}
+\idef{°ÂÆ£}{Æ»µª}
+\idef{°¤Éô}{ÀµÍ³}
+\sdef{½¡¾­¤Î»Ò}{½ÅÎÑ,³Øʸ,Í궽,Í긬,Ãé¸ù,°Ùæû,½¡¾­»ÒÃéÏÂ,Æ»µª,ÀµÍ³}
+
+\idef{¸å¤ÎÆÁÀô¡}{·ÚËãϤ}%¹ËÛê¤Ø
+\idef{}{Íê¼£}
+\sdef{ÍêË­¤Î»Ò}{·ÚËãϤ,Íê¼£}
+
+\idef{¾¾Ê¿}{Íê½ç}%[¤è¤ê¤æ¤­]
+\idef{}{½¡´Í}[\ftmaleline,¤à¤Í¤â¤È][4zw]
+\sdef{½¡ô¡¤Î»Ò}{Íê½ç,½¡´Í}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-7th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-7th.tex
new file mode 100644
index 00000000000..6172b427609
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-7th.tex
@@ -0,0 +1,14 @@
+\idef{}[¼·Âå]{²È·Ñ}[\ftmaleline,À¸\ymd{1709}][4zw]
+
+\idef{¾¾Ê¿}{Íê´Ç}
+\idef{ËÜ¿}{Ã鸲}
+\idef{¾¾Ê¿}{Íê·¼}[\ftmaleline,¤è¤ê¤æ¤­]
+\sdef{Í긬¤Î»Ò}{Íê´Ç,Ã鸲,Íê·¼}
+
+\idef{}{¼£ÊÝ}[\ftmaleline][4zw]
+\idef{¾¾Ê¿}{Íê¿Þ}%¾¾Ê¿Íê½çÍÜ»Ò
+\idef{¾¾Ê¿}{Íêµß}
+\idef{¾¾Ê¿}{Êݼõ}
+\idef{¾¾Ê¿}{ÊÝÊ¡}%¾¾Ê¿ÍêæûÍÜ»Ò
+\idef{Ã滳}{¿®·É}%Ã滳À¯¿®ÍÜ»Ò
+\sdef{½¡´Í¤Î»Ò}{¼£ÊÝ,Íê¿Þ,Íêµß,Êݼõ,ÊÝÊ¡,¿®·É}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-8th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-8th.tex
new file mode 100644
index 00000000000..f65ce053fd9
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-8th.tex
@@ -0,0 +1,9 @@
+\idef[\adopted]{}[ȬÂå]{µÈ½¡}[\ftmaleline,À¸\ymd{1684}][4zw]
+
+\idef{¾¾Ê¿}{Íê³Ø}[\ftmaleline,¤è¤ê¤µ¤È]
+%\tokuone{Íê·¼}{Íê³Ø}
+
+\idef{}{¼£µª}[\ftmaleline][4zw]
+\idef{¾¾Ê¿}{µÁÏÂ}
+\idef{ÅÚ²°}{ɧľ}
+\sdef{¼£ÊݤλÒ}{¼£µª,µÁÏÂ,ɧľ}
diff --git a/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-9th.tex b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-9th.tex
new file mode 100644
index 00000000000..11edb126df2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa/tg-9th.tex
@@ -0,0 +1,15 @@
+\idef{}[¶åÂå]{²È½Å}[\ftmaleline,À¸\ymd{1712}][4zw]
+\idef{ÅÄ°Â}{½¡Éð}
+\idef{°ì¶¶}{½¡Õú}[\ftmaleline,¤à¤Í¤¿¤À]
+\sdef{µÈ½¡¤Î»Ò}{²È½Å,ivalii,½¡Éð,ivalii,½¡Õú}
+
+\idef{¾¾Ê¿}{Íê±Ñ}
+\indvdldef{¾¾Ê¿Íêµ×}{Íêµ×¡Ê¾¾Ê¿ ¸å¤ÎÌоµ¡Ë}
+\sdef{Íê³Ø¤Î»Ò}{Íê±Ñ,¾¾Ê¿Íêµ×}
+
+\idef{}{ÀÆæû}
+\idef{¾¾Ê¿}{Íê½ú}
+\idef{}{Àƾ¼}[\ftmaleline][4zw]
+%\idef{¾¾Ê¿}{ÍêÒª}
+\indvdldef{Í꤫¤¿}{Íê\UTF{7b60}¡Ê¾¾Ê¿¡Ë}
+\sdef{¼£µª¤Î»Ò}{ÀÆæû,Íê½ú,Àƾ¼,Í꤫¤¿}
diff --git a/Master/texmf-dist/source/latex/familytree/Makefile b/Master/texmf-dist/source/latex/familytree/Makefile
new file mode 100644
index 00000000000..bc30a5a3da9
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/Makefile
@@ -0,0 +1,51 @@
+
+Dir ?= /tmp
+export Dir
+InstallDir ?= ${Dir}/texmf-dist
+export InstallDir
+
+include cmd.mk
+Lo = '\def\Dir{'${Dir}'}'
+
+########################################
+
+Name = familytree
+export Name
+Tgt = $(addprefix ${Dir}/${Name}., sty pdf)
+Dtx = $(addsuffix .dtx, ${Name} $(addprefix ft-, \
+ lib individual sibling gens marriage))
+
+########################################
+
+all: ${Tgt}
+ ${MAKE} -C samples $@
+ ${MAKE} -C doc-ja $@
+
+clean:
+ ${RM} *~ ${Tgt}
+ ${MAKE} -C figs --no-print-directory $@
+ ${MAKE} -C samples --no-print-directory $@
+ ${MAKE} -C doc-ja --no-print-directory $@
+
+install: all
+ install -m 444 -pD ${Dir}/${Name}.sty \
+ ${InstallDir}/tex/latex/${Name}.sty
+ install -m 444 -pD ${Dir}/${Name}.pdf \
+ ${InstallDir}/source/latex/${Name}/${Name}.pdf
+ ${MAKE} -C samples --no-print-directory $@
+ ${MAKE} -C doc-ja --no-print-directory $@
+# install -m 444 -pD *.dtx *.tex sample/ \
+# ${InstallDir}/source/latex/${Name}/
+
+########################################
+
+sty: ${Dir}/${Name}.sty
+${Dir}/${Name}.sty: ${Name}.ins ${Dtx}
+ $(call Latex, $<)
+ ls -l $@
+
+${Dir}/${Name}.pdf: %.pdf: %.sty
+ ${MAKE} -C figs
+ $(call MakePdf,${Name},dtx)
+
+-include priv.mk
diff --git a/Master/texmf-dist/source/latex/familytree/cmd.mk b/Master/texmf-dist/source/latex/familytree/cmd.mk
new file mode 100644
index 00000000000..9c259d2dc53
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/cmd.mk
@@ -0,0 +1,45 @@
+
+Lo =
+LATEX ?= latex
+define Latex # texsrc
+ tmp=/tmp/$${$$}; \
+ rc=0; \
+ { \
+ ${LATEX} \
+ -halt-on-error -interaction=nonstopmode \
+ -no-mktex tfm -file-line-error \
+ -output-directory ${Dir} \
+ ${Lo}'\input' ${1} > $${tmp} ||\
+ { rc=$${?}; tail -20 $${tmp}; }; \
+ ${RM} $${tmp}; \
+ test $${rc} -eq 0; \
+ }
+endef
+
+TEXINPUTS := ${Dir}:${TEXINPUTS}
+export TEXINPUTS
+DVIPDFMX ?= dvipdfmx -q -f erewhon.map -f newtx.map -f Chivo.map
+PDFCROP ?= pdfcrop --noverbose
+
+define MakePdf
+ $(call Latex, ${1}.${2})
+ $(call Latex, ${1}.${2})
+ cd ${Dir}; \
+ ${DVIPDFMX} -o ${1}.pdf ${1}.dvi
+ ls -l ${Dir}/${1}.pdf
+endef
+
+define MakeFigPdf # tgtname texname
+ $(call Latex, ${2}.tex) && \
+ cd ${Dir} && \
+ ${DVIPDFMX} ${2}.dvi && \
+ ${PDFCROP} ${2}.pdf $@ && \
+ mv ${2}.dvi ${1}.dvi
+endef
+
+define MakePrintTex # src
+ grep -v '^%[^%]' ${1} |\
+ tr '\n' '\r' |\
+ sed -e 's/^\r\r*//' -e 's/\r\r*$$/\r/' |\
+ tr '\r' '\n'
+endef
diff --git a/Master/texmf-dist/source/latex/familytree/familytree.dtx b/Master/texmf-dist/source/latex/familytree/familytree.dtx
new file mode 100644
index 00000000000..1cdc44159e1
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/familytree.dtx
@@ -0,0 +1,260 @@
+% \iffalse
+% Copyright 2022 Jiro Senju
+%
+% This package is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this package. If not, see <http://www.gnu.org/licenses/>.
+%
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>\ProvidesPackage{familytree}%
+%<package>[2022/06/27 v3.1 familytree]
+%
+%<*driver>
+\documentclass[draft]{ltxdoc}
+\let\Ocmd=\cmd
+\renewcommand{\cmd}[1]{%
+ %\hskip-\parindent
+ \parbox{.95\textwidth}{\Ocmd{#1}}%
+}
+%
+\input{fonts}
+%
+\usepackage[dvipdfmx,final]{graphicx}
+\usepackage[final]{listings}
+\lstset{basicstyle=\small\ttfamily,
+ language=TeX,
+ columns=[c]flexible,
+ tabsize=4,
+ %frame=tb,
+ keepspaces=true,
+ %lineskip=-.1em,
+ belowskip=\medskipamount}
+\usepackage{multicol}
+\usepackage{needspace}
+%
+% hyperref should come last
+\usepackage[dvipdfmx,final,pdfusetitle]{hyperref}
+% bookmarksdepth=section
+% pdffitwindow=true
+% pdfpagetransition=Dissolve
+% pdfstartview=FitB
+\hypersetup{
+ hyperfootnotes=false,
+ colorlinks=true,
+ linkcolor=blue,
+ % anchorcolor=black,
+ % citecolor=black,
+ % urlcolor=black,
+ bookmarks=true,
+ bookmarksnumbered=true,
+ setpagesize=false,
+ %pdftitle={},
+ %pdfauthor={},
+ pdfpagelayout=SinglePage,
+ pdfpagemode=UseOutlines,
+ pdfstartview=FitH
+}
+%
+\usepackage{\jobname}
+%
+\makeatletter
+\def\meta@font@select{\slshape}
+\def\fps@table{htbp}
+\let\part=\@gobble
+%
+\newcount\ft@lastsection
+\newcommand{\subsectImpl}[1][\subsection]{%
+ \iftrue% debugging code
+ \@tempcnta=\numexpr\thesection + 1\relax%
+ \ifnum\@tempcnta>\ft@lastsection\else%
+ Jump to \hyperlink{section.\the\@tempcnta}{next section}%
+ \fi%
+ \fi%
+ \needspace{4\baselineskip}%
+ #1{Implementation}%
+}
+\makeatother
+%
+\newcommand{\parag}[1]{%
+ \allowbreak%
+ \paragraph{#1}\nopagebreak\hskip0pt\nopagebreak%
+ %\medskip%
+}
+\newcounter{CS}[section]
+\newcommand{\CS}{%
+ \ifnum\theCS=0%
+ control sequence%
+ \stepcounter{CS}%
+ \else%
+ CS%
+ \fi%
+}
+\newcommand{\srcfig}[2][]{%
+ \lstinputlisting{\Dir/#2print}%
+ \nopagebreak[4]%
+ \hfil\includegraphics[#1]{\Dir/#2.pdf}%
+}
+\newcommand{\NoDescription}{\vspace*{-.9\baselineskip}}
+\newcommand{\IhadtoSplit}{%
+ This is not a good structure since it bogusly splits a long code into
+ a few parts, and may global variables. Comparing to the non-split
+ version, the split one is just a little better.
+}
+\let\tableautorefname=\tablename%
+\renewcommand{\subsectionautorefname}{}
+\newcommand{\refnm}[1]{%
+ \autoref{#1} ``\nameref{#1}''%
+}
+%
+% \EnableCrossrefs
+\DisableCrossrefs
+% \PageIndex
+%\CodelineIndex
+\makeatletter
+\let\theCodelineNo=\reset@font
+\AtEndDocument{%
+ \immediate\write\@auxout{%
+ \string\global\string\ft@lastsection=\thesection%
+ }%
+}
+\makeatother
+%\RecordChanges
+%
+\begin{document}
+\MakeShortVerb{\|}
+\let\PrintIndexO=\PrintIndex
+\let\PrintIndex=\relax
+\DocInput{\jobname.dtx}
+\DocInclude{ft-individual}
+\DocInclude{ft-sibling}
+\DocInclude{ft-gens}
+\DocInclude{ft-marriage}
+\DocInclude{ft-lib}
+%\PrintChanges
+% \PrintIndexO
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{\jobname.sty}
+% \title{{\spaceskip=1ex\textsf{\jobname} package \fileversion}}
+% \author{Jiro Senju\\\texttt{\small jiro1010senju AT gmail DOT com}}
+% \date{\filedate}
+% \maketitle
+%
+% Draws a Family Tree.
+%
+% Defines a box describing an individual, and connects the multiple
+% boxes by lines.
+% The line represents the sibling, the parent-child relation ship, or
+% the marriage.
+%
+% \begin{itemize}
+% \item Excluding the marriage box, you can get a maleline\slash patrilineal
+% tree, or a femaleline\slash matrilineal tree.
+% \item For Japanese, |jlreq.cls| vertical option (|tate|) is supported.
+% \end{itemize}
+% \bigskip
+%
+% \setcounter{tocdepth}{2}
+% \columnseprule=\arrayrulewidth
+% \begin{multicols}{2}
+% \tableofcontents
+% \end{multicols}
+% \bigskip
+%
+% \setcounter{secnumdepth}{0}
+% \section{Introduction}
+%
+% Family Tree is interesting.
+% But also, it can be really complicated, especially including the
+% siblings and marriages.
+%
+% Graphviz (|dot(1)|) is a good tool to draw a family tree, but I want
+% more straightforward understandability.
+% Here I try developing some macros to draw a family tree easily.
+% I am not a TeXnician, but I hope it helps someone who wants to draw
+% and view a large family tree.
+% Tested on TeX Live 2019.
+% Any comments will be appreciated.
+%
+% \subsection{Development}
+%
+% Basically all \CS s have a prefix ``|ft|''.
+% But non-prefix names are also defined by |\let| as an alias\slash
+% synonym, to improve the usability and the visibility.
+% Obviously only when the name is undefined.
+% If \CS{} name is already defined and |familytree| pkg cannot define the alias,
+% |\message| is generated.
+% This document tries using the |ft|-less alias name, but a few are used
+% with the prefixed name.
+% \smallskip
+%
+% There are multiple |dtx| files, but the generated |sty| is only one.
+% |ft-lib.dtx| is described at last of this document, but it comes
+% first in |sty|.
+% \medskip
+%
+% In the beginning, I was going to implement using |\hbox| and |\vbox|
+% or |tabular| environment. I thought they would be enough.
+% After defining the boxes, I would connect them by lines, then I got a
+% trouble.
+% |latex| adjusts the position of the boxes by inserting a glue or
+% something, and their connection points are shifted. I could not find a
+% good universal solution.
+% Can TikZ or something define the absolute coordinates and the lines? I
+% don't know.
+% To connect the lines, I had to choose |picture| environment.
+%
+% The depth of a character was another trouble, or I don't have enough
+% experience and
+% knowledge. To layout the boxes in |picture|, I have to consider the
+% depth of the box.
+% To support the Japanese in vertical mode, the depth is very important. In
+% horizontal mode, the depth is very alike of the English alphabets. But
+% in vertical mode, the depth is a half size of a character.
+% I didn't know that, and it took very long time for me.
+%
+% \subsection{Structure}
+%
+% Defines every element as a box in the tree, and connects them by lines.
+% In defining a box, we also define its connection points which make the
+% box to be connectable later.
+%
+% These are the elements.
+%
+% \begin{enumerate}
+% \item individual box
+% \begin{itemize}
+% \item child mark to represent one is adopted or biological child
+% \item one's title
+% \item one's name
+% \item maleline\slash femaleline for the patrilineal\slash matrilineal tree
+% \item additional information\par
+% birth\slash death year-month-date, nickname, or anything
+% \end{itemize}
+%
+% \item sibling box
+% \begin{itemize}
+% \item a line between the child marks
+% \item interval box to make a space between individuals
+% \end{itemize}
+%
+% \item marriage box
+% \begin{itemize}
+% \item marriage line (double line) to connect the husband and the wife
+% \end{itemize}
+%
+% \item parent-child relationship or generations box
+% \end{enumerate}
+%
+% \setcounter{secnumdepth}{3}
diff --git a/Master/texmf-dist/source/latex/familytree/familytree.ins b/Master/texmf-dist/source/latex/familytree/familytree.ins
new file mode 100644
index 00000000000..452085b5736
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/familytree.ins
@@ -0,0 +1,12 @@
+\input docstrip.tex
+% \keepsilent
+\askforoverwritefalse
+\generate{\file{familytree.sty}{
+ \from{familytree.dtx}{package}
+ \from{ft-lib.dtx}{package}
+ \from{ft-individual.dtx}{package}
+ \from{ft-sibling.dtx}{package}
+ \from{ft-gens.dtx}{package}
+ \from{ft-marriage.dtx}{package}
+}}
+\endbatchfile
diff --git a/Master/texmf-dist/source/latex/familytree/ft-gens.dtx b/Master/texmf-dist/source/latex/familytree/ft-gens.dtx
new file mode 100644
index 00000000000..f179f060ec3
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/ft-gens.dtx
@@ -0,0 +1,365 @@
+% \iffalse
+% Copyright 2022 Jiro Senju
+%
+% This package is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this package. If not, see <http://www.gnu.org/licenses/>.
+% \fi
+%
+% \newcommand{\tOne}{Parent-child Relationship Box or Generations Box}
+% \newcommand{\tTwo}{(\texttt{ft-gens.dtx})}
+% \section[\tOne{} \tTwo]{\tOne\\\tTwo}
+%
+% \DescribeMacro{\pcdef}
+% \cmd{\pcdef
+% \marg{new box name}
+% \marg{parent box name}
+% \marg{child box name}
+% }
+% \medskip
+%
+% Defines a parent-child relationship box.
+% Connects the given \meta{parent box} and \meta{child box} by a line,
+% and creates a new box \meta{new box name}.
+%
+% \meta{parent box} is a box who has only one line from an individual
+% name to one's child. For example, the box created by |\indvdldef| with
+% |\maleline| attribute (and equivalent) is specified.
+% Obviously, \meta{child box} is a box who has a line to one's parent.
+% For example, the box created by |\indvdldef| with |\biological| or
+% |\adopted| is specified as a child mark.
+%
+% |\pcdef| is a simplified version of |\gensdef|, which is discussed next.
+% \bigskip
+%
+% \noindent
+% \DescribeMacro{\gensdef}
+% \cmd{\gensdef
+% \marg{new box name}
+% \marg{parent box name}
+% \marg{list of connection-pair}
+% }
+%
+% \begin{tabbing}
+% \hspace{4em} \=\kill
+% \texttt{connection-pair :=}\\
+% \> \marg{individual box name in the parent box}\\
+% \> \marg{child box name}
+% \end{tabbing}
+% \medskip
+%
+% Defines a two-generations box.
+% Same to |\pcdef|, \meta{child box} is a box who has only one line to
+% the parent, but \meta{parent box} can have multiple lines to one's child.
+% It is \meta{connection-pair} that makes it clear which parent connects
+% to which child box.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Example}
+%
+% \begin{enumerate}
+% \item
+% |\sblngdef| for daughters, |\pcdef|, and then |\sblngdef| for their
+% parent generation.
+% \srcfig{fig3Robert1}
+%
+% \needspace{2\baselineskip}
+% \item
+% two |\sblngdef|, and then |\gensdef|. The result is essentially same.
+% One difference is the space between the siblings which was
+% automatically adjusted in previous example.
+% \srcfig{fig3Robert2}
+% \end{enumerate}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{The order of connecting multiple boxes}
+% \label{sec:Lily1}
+%
+% If we get |\sblngdef| as a tool to align the individual boxes in
+% column, then |\pcdef| and |\gensdef| are the tool to align the boxes
+% in row.
+% When the siblings have their child for each, then there are multiple
+% parent-child relationships, so it is better to call it generations box
+% rather than parent-child box.
+%
+% There are two ways to draw such tree. One is to define parent-child
+% first and then define the siblings of the parent generation. The other
+% is in the reverse order, eg. to define the siblings of the parent
+% generation first and then define the parent-child relationship for each.
+%
+% Let's consider about these two ways.
+%
+% \begin{enumerate}
+% \needspace{2\baselineskip}
+% \item
+% define two parent-child relationships, and then define the siblings.
+%
+% \srcfig{fig3Lily1}
+%
+% \needspace{3\baselineskip}
+% \item
+% define the sisters, and then define the parent-child for each.
+%
+% \srcfig{fig3Lily2}
+% \end{enumerate}
+%
+% As you see, by the 1st method the length of two lines to their child
+% differs and the positions (in horizontal) of the child generation are
+% not equal. That makes the tree uneasy to understand straightforward.
+% It is because that the feature of |\sblngdef| to set the line length
+% to the longest one didn't work.
+% The argument passed to |\sblngdef| were already connected to the child,
+% so if |\sblngdef| extended the line it would be much worse result.
+%
+% On the other hand, by the 2nd method, the argument passed to
+% |\sblngdef| were not connected to the child. So it is harmless if
+% |\sblngdef| extends the line.
+% \smallskip
+%
+% Even if you took the 1st method, there still exists to make the line
+% length equal.
+% Using |\indvdldef| feature to adjust the line length, set the length
+% of Lily's |\femaleline| (|\matrilineal|) to the one of Petunia's.
+% To achieve this, calculate the difference of the name length of these
+% sisters and give an optional argument of |\indvdldef|.
+% The result should be same to above.
+% \medskip
+%
+% \srcfig{fig3Lily3}
+% \medskip
+%
+% You can get the same result if you use |\nameboxcfg| since it has a
+% feature to set the length of a line to child.
+% But it is not a good idea to use |\nameboxcfg| every time when you
+% |\indvdldef|. The value set by |\nameboxcfg| should be applied wider,
+% and it is not supposed to use for a single |\indvdldef|. It is better
+% to append an optional argument to |\indvdldef|.
+% \smallskip
+%
+% There is one more option. It is to set the length of Lily's name to Petunia's.
+% By this method, the space between Lily's name and the line to child
+% becomes wider and the length of lines become equal.
+% \medskip
+%
+% \srcfig{fig3Lily4}
+% \medskip
+%
+% The sequence or the order to define and connect the boxes is important.
+% In connecting the boxes, this package considers the size of the
+% being connected individual boxes. For example, the sibling box
+% considers the height of the
+% individual box and makes the boxes to be never overlapped.
+% But in connecting a child to the already defined sibling box, this
+% feature doesn't work. So the children of the siblings may be
+% overlapped. In this case, you need to insert the interval box between
+% the siblings manually.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsectImpl
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Generations box --- core}
+%
+% \iffalse
+% \parag{Customization}
+%
+% \DescribeMacro{\ftgenscfg}
+% \NoDescription
+% \begin{macrocode}
+% \newcommand{\ftgenscfg}[1]{%
+% }
+% \end{macrocode}
+% \fi
+%
+% \parag{Connection pair}
+%
+% \DescribeMacro{\ft@getpair}
+% Extracts a connection-pair from the given list,
+% defines the connection-point in the parent box (the former of the pair)
+% as |\ft@cpoint|, and defines the child box name (the latter of the
+% pair) as |\ft@kids|.
+% \smallskip
+%
+% \begin{macrocode}
+\def\ft@getpair#1#2#3{% connection-pair parent-box-name
+ \ft@dbgmsg{args #1, #2, #3}%
+ \@ifundefined{#3#1nameCY}{%
+ \@ifundefined{#3#1mrrgCY}{%
+ \xdef\ft@cpoint{#1nameCY}%
+ }{%
+ \xdef\ft@cpoint{#3#1mrrgCY}%
+ }%
+ }{%
+ \xdef\ft@cpoint{#3#1nameCY}%
+ }%
+ \xdef\ft@kids{#2}%
+}
+% \end{macrocode}
+%
+% \parag{Top margin}
+%
+% \DescribeMacro{\def@calc@xtop}
+%
+% \begin{macrocode}
+\newcommand{\ft@calc@xtop}[4]{% name parent cpoint kids
+ % top half of kids
+ \ft@len=\dimexpr\ht\@nameuse{#4} - \@nameuse{#4nameCY}pt\relax\relax%
+ % top half of parent cpoint
+ \@tempskipa=\dimexpr\ht\@nameuse{#2} - \@nameuse{#3}pt\relax\relax%
+ %
+ \ifdim\ft@len<\@tempskipa%
+ \ft@len=0pt%
+ \else%
+ \advance\ft@len -\@tempskipa%
+ \fi%
+ \global#1=\ft@len%
+}
+% \end{macrocode}
+%
+% \parag{Bottom margin}
+%
+% \DescribeMacro{\ft@calc@xbottom}
+%
+% \begin{macrocode}
+\newcommand{\ft@calc@xbottom}[4]{% name parent cpoint kids
+ % bottom half of kids
+ \ft@len=\@nameuse{#4nameCY}pt\relax%
+ % bottom half of parent cpoint
+ \@tempskipa=\@nameuse{#3}pt\relax%
+ %
+ \ifdim\ft@len=\@tempskipa%
+ \ft@len=0pt%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#2}}%
+ \ifdim\ft@depth<\dp\@nameuse{#4}%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#4}}%
+ \fi%
+ \else%
+ \ifdim\ft@len<\@tempskipa%
+ \ft@len=0pt%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#2}}%
+ \else%
+ \advance\ft@len -\@tempskipa%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#4}}%
+ \fi%
+ \fi%
+ \global#1=\ft@len%
+}
+% \end{macrocode}
+%
+% \parag{Calculate the box size}
+%
+% \DescribeMacro{\ft@gens@size}
+%
+% \begin{macrocode}
+\newlength{\ft@xtop}
+\newlength{\ft@xbottom}
+\newcommand{\ft@gens@size}[2]{% parent-box connect-pair-list
+ \@tempswatrue%
+ \ft@width=0pt%
+ \@for\@temptokena:=#2\do{%
+ \expandafter\ft@getpair\@temptokena{#1}%
+ \ft@dbgmsg{\ft@cpoint and \ft@kids}%
+ \if@tempswa%
+ \ft@calc@xtop{\ft@xtop}{#1}{\ft@cpoint}{\ft@kids}%
+ \@tempswafalse%
+ \fi%
+ \setlength{\ft@len}{\wd\@nameuse{\ft@kids}}%
+ \ifdim\ft@width<\ft@len%
+ \global\ft@width=\ft@len%
+ \fi%
+ }%
+ \ft@calc@xbottom{\ft@xbottom}{#1}{\ft@cpoint}{\ft@kids}%
+ \ft@dbgmsg{xtop \the\ft@xtop, xbottom \the\ft@xbottom}%
+ %
+ \ft@x=\dimexpr\wd\@nameuse{#1}% - \ft@cmarkbox@length\relax%
+ \ft@dbgmsg{x \the\ft@x}%
+ \advance\ft@width \ft@x%
+ \ft@dbgmsg{w \the\ft@width}%
+ \ft@height=\dimexpr\ht\@nameuse{#1} + \ft@xtop + \ft@xbottom\relax%
+ \ft@dbgmsg{kids H \the\ht\@nameuse{\ft@kids}}%
+ \ft@dbgmsg{H \strip@pt\ft@height, D \strip@pt\ft@depth}%
+}
+% \end{macrocode}
+%
+% \parag{Layout}
+%
+% \DescribeMacro{\ft@gens@layout}
+%
+% \begin{macrocode}
+\newcommand{\ft@gens@layout}[3]{%
+ % box-name parent-box-name {{parent-name} {child-name}, ...}
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ %
+ \ft@y=\ft@xbottom%
+ \ft@dbgplot{0,\strip@pt\ft@y}%
+ \put(0,\strip@pt\ft@y){\usebox{\@nameuse{#2}}}%
+ \advance\ft@y \@nameuse{#2nameCY}pt%
+ \ft@namexdefstrip{#1nameCY}{\ft@y}%
+ %\ft@namexdefstrip{#1#2nameCY}{\ft@y}%
+ %
+ \@for\@temptokena:=#3\do{%%
+ \expandafter\ft@getpair\@temptokena{#2}%
+ \ft@dbgmsg{\ft@cpoint and \ft@kids}%
+ %
+ \ft@y=\dimexpr\ft@xbottom + \@nameuse{\ft@cpoint}pt\relax%
+ \ft@dbgmsg{parent cpoint \the\ft@y}%
+ \ft@dbgplot{\strip@pt\ft@x,\strip@pt\ft@y}%
+ %
+ \advance\ft@y -\@nameuse{\ft@kids nameCY}pt%
+ \ft@dbgmsg{final child y \the\ft@y}%
+ \put(\strip@pt\ft@x,\strip@pt\ft@y){%
+ \usebox{\@nameuse{\ft@kids}}}%
+ \ft@namexdefstrip{#1\ft@kids Y}{\ft@y}%
+ }%
+ \end{picture}%
+ }%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Generations box --- interface}
+%
+% \DescribeMacro{\ftgensdef}
+%
+% \begin{macrocode}
+\newcommand{\ftgensdef}[3]{%
+ % box-name parent-box-name {{parent-name} {child-name}, ...}
+ %
+ % calculate the size of the new box
+ \ft@gens@size{#2}{#3}%
+ %
+ % draw them all
+ \ft@gens@layout{#1}{#2}{#3}%
+ %
+ \@ifundefined{#2hascmark}{}{%
+ \ft@namexdef{#1hascmark}{\@nameuse{#2hascmark}}%
+ }%
+ \ft@nameboxsz{#1}{\ft@height}{\ft@depth}%
+}
+\ft@alias{gensdef}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Parent-child box --- interface}
+%
+% \DescribeMacro{\ftpcdef}
+%
+% \begin{macrocode}
+\newcommand{\ftpcdef}[3]{% box-name parent-box-name child-box-name
+ \ftgensdef{#1}{#2}{{#2}{#3}}%
+}
+\ft@alias{pcdef}
+% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/familytree/ft-individual.dtx b/Master/texmf-dist/source/latex/familytree/ft-individual.dtx
new file mode 100644
index 00000000000..a8b0e4eacfa
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/ft-individual.dtx
@@ -0,0 +1,760 @@
+% \iffalse
+% Copyright 2022 Jiro Senju
+%
+% This package is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this package. If not, see <http://www.gnu.org/licenses/>.
+% \fi
+%
+% \section{Individual Box (\texttt{ft-individual.dtx})}
+%
+% \DescribeMacro{\indvdldef}
+% \indent
+% \cmd{\indvdldef
+% \oarg{child mark}
+% \marg{new box name}
+% \oarg{title}
+% \marg{individual name}
+% \oarg{additional info}
+% \oarg{maleline xlength}
+% }
+% \medskip
+%
+% Defines a new box named \meta{new box name}, and layouts the
+% given arguments in that box.
+%
+% \begin{enumerate}
+% \item \oarg{child mark}
+% \par
+% The type of a line which is located ahead of the individual name.
+% \par
+% Specify one of |\ftbiological|,
+% |\ftadopted|,
+% |\fttop|,
+% or |\ftblank|.
+% Details are discussed later.
+%
+% \item \marg{new box name}
+% \par
+% The name of a new box.
+% \par
+% This is not a \CS{} (no backslash).
+%
+% \item \oarg{title}
+% \par
+% One's title.
+% \par
+% Put at the shoulder of the individual name with a smaller font
+% (|\relsize{-2}|).
+%
+% \item \marg{individual name}
+% \par
+% One's name.
+%
+% \item \oarg{additional info}
+% \par
+% Additional information.
+% \par
+% Anything can be added such as birth\slash death year-month-date and alias.
+% Put with a little smaller font (|\relsize{-1}|) at next to the individual name.
+% Also the attributes (discussed later),
+% |\ftmaleline| (|\ftfemaleline|, |\ftpatrilineal|, |\ftmatrilineal|),
+% \allowbreak|\fthaschild|,
+% |\ftprivate| are specified here.
+%
+% \item \oarg{maleline xlength}
+% \par
+% When you draw a line from an individual (instead of a marriage box) to
+% a child, the length of the line can be adjusted by this argument.
+% But in the sibling box, the line length will be adjusted automatically
+% regardless this argument.
+% \end{enumerate}
+%
+% Also |\indvdldef| defines some connection points as \CS. The origin is
+% left-bottom of the box and the unit is |pt|.
+%
+% \begin{table}
+% \hfil\begin{tabular}{ll}
+% \meta{box name}|nameX| &
+% the tail of the individual name
+% \\
+%
+% \meta{box name}|nameCX| &
+% the center of the width of individual name
+% \\
+%
+% \meta{box name}|nameCY| &
+% the center of the height of individual name
+% \end{tabular}
+% \end{table}
+%
+% For \oarg{child mark}, you can specify one of these values.
+%
+% \begin{itemize}
+% \item |\biological| or |\ftbiological|
+% \par
+% a single line to represent a biological\slash real child.
+%
+% \item |\adopted| or |\ftadopted|
+% \par
+% a double line to represent an adopted child.
+%
+% \item |\fttop| (or |\top|)
+% \par
+% no line at all.
+%
+% \item |\blank| or |\ftblank|
+% \par
+% put a space whose size is equal to the |\biological| or |\adopted| mark,
+% assuming used for the spouse in a marriage box.
+% \end{itemize}
+% \bigskip
+%
+% For \oarg{additional info}, you can specify any of these attributes.
+%
+% \begin{itemize}
+% \item |\haschild| or |\fthaschild|
+% \par
+% represents a spouse who has a child.
+% draws a line in a marriage box to their child from the center of the
+% double line which represents a marriage.
+%
+% \item |\private| or |\ftprivate|
+% \par
+% represents the marriage is not official.
+% draws a dashed double line.
+%
+% \item |\maleline| or |\ftmaleline|
+% \par
+% draws a line to a child from the individual name instead of the double
+% line in the marriage box.
+% |\ftfemaleline|,
+% |\ftpatrilineal|,
+% |\ftmatrilineal| are all equivalent.
+% \end{itemize}
+% \bigskip
+%
+% The individual box consists of a few smaller boxes.
+%
+% \begin{itemize}
+% \item |\ft@titlebox|
+% \item |\ft@namebox|
+% \par
+% In |\ft@namebox|, there are |\ft@cmarkbox| which represents the
+% \meta{child mark}
+% and |\ft@malelinebox| which represents \meta{maleline}.
+%
+% \item |\ft@optbox|
+% \end{itemize}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Customization}
+%
+% \DescribeMacro{\nameboxcfg}
+% \indent
+% \cmd{\nameboxcfg
+% \marg{space from the child mark}
+% \marg{font}
+% \marg{space to the maleline}
+% \marg{maleline length}
+% }
+% \medskip
+%
+% \DescribeMacro{\cmarkboxcfg}
+% \cmd{\cmarkboxcfg
+% \marg{space between two lines, for adopted}
+% \marg{line length}
+% }
+% \medskip
+%
+% \DescribeMacro{\titleboxcfg}
+% \cmd{\titleboxcfg
+% \marg{indent}
+% \marg{font}
+% \marg{linestretch}
+% \marg{vspace to the individual name}
+% }
+% \medskip
+%
+% \DescribeMacro{\optboxcfg}
+% \cmd{\optboxcfg
+% \marg{vspace from the individual name}
+% \marg{indent}
+% \marg{font}
+% \marg{linestretch}
+% }
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \needspace{12ex}
+% \subsection{Example}
+%
+% \begin{enumerate}
+% \item
+% \srcfig{fig1Robert1}
+%
+% \item
+% \srcfig{fig1Robert2}
+% \end{enumerate}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsectImpl
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Child-mark box}
+%
+% \parag{Customization}
+%
+% \DescribeMacro{\ftcmarkboxcfg}
+% \DescribeMacro{\cmarkboxcfg}
+%
+% \begin{macrocode}
+\newlength{\ft@cmarkbox@adopted@sep}
+\setlength{\ft@cmarkbox@adopted@sep}{4pt}
+\newlength{\ft@cmarkbox@length}
+\setlength{\ft@cmarkbox@length}{1\ft@unit}
+\newcommand{\ftcmarkboxcfg}[2]{% adopted-sep line-length
+ \ifx#1\empty\else%
+ \setlength{\ft@cmarkbox@adopted@sep}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \setlength{\ft@cmarkbox@length}{#2}%
+ \fi%
+}
+\ft@alias{cmarkboxcfg}
+% \end{macrocode}
+%
+% \parag{Define a box}
+%
+% \DescribeMacro{\fttop}
+% \DescribeMacro{\top}
+% \DescribeMacro{\ftbiological}
+% \DescribeMacro{\biological}
+% \DescribeMacro{\ftadopted}
+% \DescribeMacro{\adopted}
+% \DescribeMacro{\ftblank}
+% \DescribeMacro{\blank}
+%
+% \begin{macrocode}
+\chardef\fttop=0
+\chardef\ftbiological=1
+\chardef\ftadopted=2
+\chardef\ftblank=3
+\ft@alias{top}
+\ft@alias{biological}
+\ft@alias{adopted}
+\ft@alias{blank}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@indvdl@nameH}
+% \DescribeMacro{\ft@indvdl@nameD}
+% \DescribeMacro{\ft@indvdl@nameCY}
+% \DescribeMacro{\ft@do@cmarkdef}
+% \DescribeMacro{\ft@cmarkdef}
+%
+% \begin{macrocode}
+\newsavebox{\ft@cmarkbox}
+\newlength{\ft@cmarkW}
+\newlength{\ft@indvdl@nameH}
+\newlength{\ft@indvdl@nameD}
+\newlength{\ft@indvdl@nameCY}
+\newcommand{\ft@do@cmarkdef}[4]{% cmarkbox-name cmark width line-length
+ \ft@savenamebox{#1}{%
+ \edef\@w{\strip@pt#3}%
+ \edef\@h{\strip@pt\ft@indvdl@nameH}%
+ \edef\@l{\strip@pt#4}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ \ifcase#2% fttop
+ \or% ftbiological
+ \put(0,\strip@pt\ft@indvdl@nameCY){\line(1,0){\@l}}%
+ \or% ftadopted
+ \ft@y=\dimexpr\ft@indvdl@nameCY%
+ + .5\ft@cmarkbox@adopted@sep\relax%
+ \put(0,\strip@pt\ft@y){\line(1,0){\@l}}%
+ \advance\ft@y -\ft@cmarkbox@adopted@sep%
+ \put(0,\strip@pt\ft@y){\line(1,0){\@l}}%
+ \or% \ftblank
+ \fi%
+ \end{picture}%
+ }%
+ \ft@nameboxsz{#1}{\ft@indvdl@nameH}{\ft@indvdl@nameD}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\ft@cmarkdef}[4]{%
+ % cmarkbox-name cmark cmark-xlength cmark-space
+ \ft@savenamebox{#1}{}% empty
+ \ifcase#2% fttop
+ \else%
+ \ft@len=\dimexpr\ft@cmarkbox@length + #3\relax\relax%
+ \ifdim\ft@len>0pt%
+ \ft@do@cmarkdef{#1}{#2}{\dimexpr\ft@len + #4\relax}{\ft@len}%
+ \fi%
+ \fi%
+ \ft@dbgbox{\@nameuse{#1}}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \needspace{3\baselineskip}
+% \subsubsection{Additional info box}
+% \nopagebreak
+%
+% \parag{Customization}
+%
+% \DescribeMacro{\ftoptboxcfg}
+% \DescribeMacro{\optboxcfg}
+%
+% \begin{macrocode}
+\newlength{\ft@optbox@vsp}
+\setlength{\ft@optbox@vsp}{.1\baselineskip}
+\newlength{\ft@optbox@indent}
+\setlength{\ft@optbox@indent}{1.1\ft@unit}
+\newcommand{\ft@optbox@font}{\relsize{-1}}%{\footnotesize}
+\newcommand{\ft@optbox@linestretch}{.75}
+\newcommand{\ftoptboxcfg}[4]{% vsp indent font linestretch
+ \ifx#1\empty\else%
+ \setlength{\ft@optbox@vsp}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \setlength{\ft@optbox@indent}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \renewcommand{\ft@optbox@font}{#3}%
+ \fi%
+ \ifx#4\empty\else%
+ \renewcommand{\ft@optbox@linestretch}{#4}%
+ \fi%
+}
+\ft@alias{optboxcfg}
+% \end{macrocode}
+%
+% \parag{Parsing}
+%
+% \DescribeMacro{\ftmaleline}
+% \DescribeMacro{\maleline}
+% \DescribeMacro{\fthaschild}
+% \DescribeMacro{\haschild}
+% \DescribeMacro{\ftprivate}
+% \DescribeMacro{\private}
+%
+% \begin{macrocode}
+\newcommand{\ftmaleline}{ft@attr0}
+\let\ftfemaleline=\ftmaleline
+\let\ftpatrilineal=\ftmaleline
+\let\ftmatrilineal=\ftmaleline
+\newcommand{\fthaschild}{ft@attr1}
+\newcommand{\ftprivate}{ft@attr2}
+\ft@alias{maleline}
+\ft@alias{femaleline}
+\ft@alias{patrilineal}
+\ft@alias{matrilineal}
+\ft@alias{haschild}
+\ft@alias{private}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@optlist}
+%
+% Extracts the attributes from \meta{option-list} (which is
+% \meta{additional info} itself) and sets a global flag whose name is
+% generated using \meta{box-name}.
+% Other than the attributes are appended another list, \meta{list} which
+% will be printed later.
+%
+% \begin{macrocode}
+\newcommand{\ft@optlist}[3]{% list box-name option-list
+ \edef\@male{\ftmaleline}%
+ \edef\@hasch{\fthaschild}%
+ \edef\@priv{\ftprivate}%
+ \@for\@temptokena:=#3\do{%
+ \edef\@opt{\@temptokena}%
+ \ft@dbgmsg{\@opt}%
+ \ifx\@opt\@male%
+ \global\ft@malelinetrue%
+ \ft@namexdef{#2hasmaleline}{\ftmaleline}%
+ \else%
+ \ifx\@opt\@hasch%
+ \ft@namexdef{#2haschild}{\fthaschild}%
+ \else%
+ \ifx\@opt\@priv%
+ \ft@namexdef{#2private}{\ftprivate}%
+ \else%
+ \ft@list@append{#1}{\@opt}%
+ \fi%
+ \fi%
+ \fi%
+ }%
+}
+% \end{macrocode}
+%
+% \parag{Define a box}
+%
+% \DescribeMacro{\ft@opt}
+%
+% \begin{macrocode}
+\newsavebox{\ft@optbox}
+\newcommand{\ft@opt}[1]{% option-list
+ \savebox{\ft@optbox}{%
+ \hspace{\ft@cmarkW}%
+ \hspace{\ft@optbox@indent}%
+ \vbox{%
+ \def\baselinestretch{\ft@optbox@linestretch}%
+ \ft@optbox@font%
+ \vspace{\ft@optbox@vsp}%
+ \@for\@temptokena:=#1\do{%
+ \vss%
+ \hbox{\@temptokena}%
+ \setbox\@tempboxa=\hbox{\@temptokena}%
+ \global\ft@depth=\dp\@tempboxa%
+ }%
+ }%
+ }%
+ \ft@len=\dimexpr\ht\ft@optbox + \dp\ft@optbox - \ft@depth\relax%
+ \ft@boxsz{\ft@optbox}{\ft@len}{\ft@depth}%
+ \ft@dbgbox{\ft@optbox}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Name box}
+%
+% \parag{Customization}
+%
+% \DescribeMacro{\ftnameboxcfg}
+% \DescribeMacro{\nameboxcfg}
+%
+% \begin{macrocode}
+\newlength{\ft@namebox@sp}
+\setlength{\ft@namebox@sp}{.25\ft@unit}
+\newcommand{\ft@namebox@font}{}% empty
+\newlength{\ft@namebox@maleline@sp}
+\setlength{\ft@namebox@maleline@sp}{.25\ft@unit}
+\newlength{\ft@namebox@maleline@length}
+\setlength{\ft@namebox@maleline@length}{1.5\ft@unit}
+\newcommand{\ftnameboxcfg}[4]{% sp font maleline-sp maleline-length
+ \ifx#1\empty\else%
+ \setlength{\ft@namebox@sp}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \renewcommand{\ft@namebox@font}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \setlength{\ft@namebox@maleline@sp}{#3}%
+ \fi%
+ \ifx#4\empty\else%
+ \setlength{\ft@namebox@maleline@length}{#4}%
+ \fi%
+}
+\ft@alias{nameboxcfg}
+% \end{macrocode}
+%
+% \parag{Define a box}
+%
+% \DescribeMacro{\ft@name}
+%
+% Internally layouts |\ft@cmarkbox|, \meta{individual-name}, and
+% |\ft@malelinebox|.
+% It was difficult to set the length of |maleline|, ie. where to begin the
+% line. Which is better for the head of |maleline|, at the box end of the
+% \meta{individual-name} or at the box end including all the
+% \meta{title}, \meta{individual-name} and \meta{additional info}?
+%
+% The latter looks good, especially when the defined individual box is
+% used alone. But it makes hard for other box definitions to calculate the
+% extra line length to align equal.
+% For such calculation, the former is better since it just has to calculate
+% the difference of the length of names.
+% Finally, I decided to start the line at the end of
+% \meta{individual-name}, and the default length is
+% |\ft@namebox@maleline@length|.
+%
+% In other words, it can happen when an individual box is used alone, the
+% \meta{title} or the \meta{additional info} may be longer than |maleline|.
+%
+% \begin{macrocode}
+\newif\ifft@maleline
+\newsavebox{\ft@malelinebox}
+\newsavebox{\ft@namebox}
+\newcommand{\ft@name}[3]{% box-name individual-name maleline-xlength
+ \setbox\@tempboxa=\hbox{\ft@namebox@font#2}%
+ \ft@len=\dimexpr\wd\@tempboxa + \ft@cmarkW%
+ + \ft@namebox@maleline@sp\relax%
+ \ft@namexdefstrip{#1nameX}{\ft@len}%
+ %
+ \ft@len=\dimexpr\wd\@tempboxa/2 + \ft@cmarkW\relax%
+ \ft@namexdefstrip{#1nameCX}{\ft@len}%
+ %
+ \def\@nm{\ft@namebox@font#2}%
+ \ifft@maleline%
+ % why are two 'relax'es necessary?
+ \@tempskipb=\dimexpr\ft@namebox@maleline@length%
+ - \ft@cmarkbox@length + #3\relax\relax%
+ \ifdim\@tempskipb>0pt%
+ \ft@cmarkdef{ft@malelinebox}{\ftbiological}{\@tempskipb}{0pt}%
+ \def\@nm{%
+ {\ft@namebox@font#2}%
+ \hspace{\ft@namebox@maleline@sp}%
+ \usebox{\ft@malelinebox}%
+ }%
+ \fi%
+ \fi%
+ \ft@dbgmsg{H \the\ht\@tempboxa, D \the\dp\@tempboxa}%
+ \ft@dbgmsg{H \the\ht\ft@cmarkbox, D \the\dp\ft@cmarkbox}%
+ \savebox{\ft@namebox}{%
+ \usebox{\ft@cmarkbox}%
+ \@nm%
+ }%
+ \ft@boxsz{\ft@namebox}{\ht\@tempboxa}{\dp\@tempboxa}%
+ \ft@dbgbox{\ft@namebox}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \needspace{2\baselineskip}
+% \subsubsection{Title box}
+%
+% \parag{Customization}
+%
+% \hyphenation{line-stretch}
+% \DescribeMacro{\fttitleboxcfg}
+% \DescribeMacro{\titleboxcfg}
+%
+% \begin{macrocode}
+\newlength{\ft@titlebox@indent}
+\setlength{\ft@titlebox@indent}{-.25\ft@unit}
+\newcommand{\ft@titlebox@font}{\relsize{-2}}%{\scriptsize}
+\newcommand{\ft@titlebox@linestretch}{.25}
+\newlength{\ft@titlebox@vsp}
+\setlength{\ft@titlebox@vsp}{.1\baselineskip}
+\newcommand{\fttitleboxcfg}[4]{% indent font linestretch vsp
+ \ifx#1\empty\else%
+ \setlength{\ft@titlebox@indent}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \renewcommand{\ft@titlebox@font}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \renewcommand{\ft@titlebox@linestretch}{#3}%
+ \fi%
+ \ifx#4\empty\else%
+ \setlength{\ft@titlebox@vsp}{#4}%
+ \fi%
+}
+\ft@alias{titleboxcfg}
+% \end{macrocode}
+%
+% \parag{Define a box}
+%
+% \DescribeMacro{\ft@title}
+%
+% \begin{macrocode}
+\newsavebox{\ft@titlebox}
+\newcommand{\ft@title}[1]{% title
+ \ft@len=\dimexpr\ft@cmarkW + \ft@titlebox@indent\relax%
+ \savebox{\ft@titlebox}{%
+ \vbox{%
+ \def\baselinestretch{\ft@titlebox@linestretch}%
+ \ft@titlebox@font%
+ %
+ \setbox\@tempboxa=\hbox{#1}%
+ \ft@dbgmsg{H \the\ht\@tempboxa, D \the\dp\@tempboxa}%
+ \global\ft@depth=\dp\@tempboxa%
+ \hbox{\hspace{\ft@len}#1}%
+ \vspace{\ft@titlebox@vsp}%
+ \global\advance\ft@depth \ft@titlebox@vsp%
+ }%
+ }%
+ \ft@dbgmsg{H \the\ht\ft@titlebox, D \the\dp\ft@titlebox}%
+ \ft@len=\dimexpr\ht\ft@titlebox + \dp\ft@titlebox - \ft@depth\relax%
+ \ft@boxsz{\ft@titlebox}{\ft@len}{\ft@depth}%
+ \ft@dbgbox{\ft@titlebox}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Combine the boxes --- core}
+%
+% \parag{Generate the boxes}
+%
+% \DescribeMacro{\ft@indvdlbox@gen}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@indvdlbox@gen}[4]{%
+ % box-name title individual-name maleline-xlength
+ \ft@width=0pt%
+ \IfValueT{#2}{%
+ \ft@title{#2}%
+ \ft@width=\wd\ft@titlebox%
+ }%
+ \global\@tempswafalse%
+ \ifx\ft@indvdl@opts\empty\else%
+ \global\@tempswatrue%
+ \ft@opt{\ft@indvdl@opts}%
+ \ifdim\ft@width<\wd\ft@optbox%
+ \ft@width=\wd\ft@optbox%
+ \fi%
+ \fi%
+ \ft@name{#1}{#3}{#4}%
+}
+% \end{macrocode}
+%
+% \parag{Calculate the size of a name box}
+%
+% \DescribeMacro{\ft@indvdlbox@calc}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@indvdlbox@calc}[2]{% box-name title
+ \global\ft@width=0pt%
+ \global\ft@height=0pt%
+ \global\ft@depth=0pt%
+ \def\ft@dpri##1{\ft@dbgmsg{##1 W \the\ft@width, H \the\ft@height,%
+ D \the\ft@depth}}%
+ \ft@dpri{h0}%
+ \IfValueT{#2}{%
+ \global\ft@width=\wd\ft@titlebox%
+ \global\ft@height=\dimexpr\ht\ft@titlebox + \dp\ft@titlebox\relax%
+ \ft@dpri{h1}%
+ }%
+ %
+ \global\advance\ft@height \ht\ft@namebox%
+ %
+ % mark this point of the height, to invert it later
+ \ft@y=\dimexpr\ft@height - \ft@indvdl@nameCY\relax%
+ %
+ \ifdim\ft@width<\wd\ft@namebox%
+ \global\ft@width=\wd\ft@namebox%
+ \fi%
+ \if@tempswa%
+ \global\advance\ft@height \dp\ft@namebox%
+ \else%
+ \global\ft@depth=\dp\ft@namebox%
+ \fi%
+ \ft@dpri{h2}%
+ %
+ \if@tempswa%
+ \ifdim\ft@width<\wd\ft@optbox%
+ \global\ft@width=\wd\ft@optbox%
+ \fi%
+ \global\advance\ft@height \ht\ft@optbox%
+ \global\ft@depth=\dp\ft@optbox%
+ \ft@dpri{h3}%
+ \fi%
+ \ft@dpri{h4}%
+ %
+ % invert the y
+ \ft@len=\dimexpr\ft@height - \ft@y\relax%
+ \ft@namexdefstrip{#1nameCY}{\ft@len}%
+}
+% \end{macrocode}
+%
+% \parag{Layout them by \texttt{picture}}
+%
+% \DescribeMacro{\ft@indvdlbox@layout}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@indvdlbox@layout}[2]{% box-name title
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ \ft@dbgplot{0,\@nameuse{#1nameCY}}%
+ %
+ \IfValueT{#2}{%
+ \advance\ft@height -\dimexpr\ht\ft@titlebox%
+ + \dp\ft@titlebox\relax%
+ \put(0,\strip@pt\ft@height){\usebox{\ft@titlebox}}%
+ }%
+ \advance\ft@height -\ht\ft@namebox%
+ \put(0,\strip@pt\ft@height){\usebox{\ft@namebox}}%
+ \advance\ft@height -\dp\ft@namebox%
+ \if@tempswa%
+ \advance\ft@height -\ht\ft@optbox%
+ \put(0,\strip@pt\ft@height){\usebox{\ft@optbox}}%
+ \fi%
+ \end{picture}%
+ }%
+ % height should hold the original value
+ \ft@nameboxsz{#1}{\ft@height}{\ft@depth}%
+}
+% \end{macrocode}
+%
+% \parag{Main function to combine the boxes}
+%
+% \DescribeMacro{\ft@indvdlbox}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@indvdlbox}[4]{%
+ % box-name title individual-name maleline-xlength
+ \ft@indvdlbox@gen{#1}{#2}{#3}{#4}%
+ \ft@indvdlbox@calc{#1}{#2}%
+ \ft@indvdlbox@layout{#1}{#2}%
+ %
+ \ft@dbgbox[\ft@dbgplot{0,\@nameuse{#1nameCY}}%
+ \ft@dbgplot{\@nameuse{#1nameCX},\strip@pt\ft@height}%
+ \ft@dbgplot{\@nameuse{#1nameX},\strip@pt\ft@height}%
+ ]{\@nameuse{#1}}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Individual box --- interface}
+%
+% \DescribeMacro{\ftindvdldef}
+% \DescribeMacro{\indvdldef}
+%
+% \begin{macrocode}
+% [child-mark] box-name [title] individual-name
+% [option-list...] [maleline-xlength]
+\NewDocumentCommand{\ftindvdldef}{O{\ftbiological}momoO{0pt}}{%
+ \setbox\@tempboxa=\hbox{\ft@namebox@font#4}%
+ \global\ft@indvdl@nameH=\ht\@tempboxa%
+ \global\ft@indvdl@nameD=\dp\@tempboxa%
+ \if@tate%
+ \global\ft@indvdl@nameCY%
+ =\dimexpr(\ft@indvdl@nameH - \ft@indvdl@nameD)/2\relax%
+ \else%
+ \@ifundefined{jlreqsetup}{%
+ % not jlreq
+ \global\ft@indvdl@nameCY=\dimexpr(\ft@indvdl@nameH%
+ - \ft@indvdl@nameD) / 2\relax\relax%
+ }{%
+ % jlreq
+ % magic number! depends on font?
+ \global\ft@indvdl@nameCY=\dimexpr\ft@indvdl@nameH/2 - .66pt\relax%
+ }%
+ \fi%
+ \ft@dbgmsg{H \the\ft@indvdl@nameH, D \the\ft@indvdl@nameD,%
+ CY \the\ft@indvdl@nameCY}%
+ %
+ \ft@cmarkdef{ft@cmarkbox}{#1}{0pt}{\ft@namebox@sp}%
+ \ifcase#1% fttop
+ \ft@namexdef{#2hascmark}{#1}%
+ \or% ftbiological
+ \ft@namexdef{#2hascmark}{#1}%
+ \or% ftadopted
+ \ft@namexdef{#2hascmark}{#1}%
+ \fi%
+ \global\ft@cmarkW=\wd\ft@cmarkbox%
+ %
+ \global\ft@malelinefalse%
+ \xdef\ft@indvdl@opts{}%
+ \IfValueT{#5}{%
+ \ft@optlist{\ft@indvdl@opts}{#2}{#5}%
+ \ft@dbgmsg{opt \ft@indvdl@opts}%
+ }%
+ %
+ \ft@indvdlbox{#2}{#3}{#4}{#6}%
+}
+\ft@alias{indvdldef}
+% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/familytree/ft-lib.dtx b/Master/texmf-dist/source/latex/familytree/ft-lib.dtx
new file mode 100644
index 00000000000..2c54589f36a
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/ft-lib.dtx
@@ -0,0 +1,247 @@
+% \iffalse
+% Copyright 2022 Jiro Senju
+%
+% This package is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this package. If not, see <http://www.gnu.org/licenses/>.
+% \fi
+%
+% \section{Library (\texttt{ft-lib.dtx})}
+%
+% While this is the last section of this document, |ft-lib.dtx| is located
+% top of |sty|.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsectImpl
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \begin{macrocode}
+\RequirePackage{relsize}
+\RequirePackage{xparse}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@unit}
+% Represents a width of a single character.
+%
+% \DescribeMacro{\if@tate}
+% Supports Japanese vertical mode (|jlreq.cls|). Other than Japanese, this
+% dummy |\if@tate| is always false.
+% \medskip
+%
+% \begin{macrocode}
+\global\newlength{\ft@unit}%
+\@ifundefined{if@tate}{%
+ \global\newif\if@tate%
+ \global\ft@unit=1em%
+}{
+ \global\ft@unit=1zw%
+}%
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@alias}
+% Makes an alias with prefix-less (|ft|).
+% I don't know why such many |\expandafter|s are necessary.
+% \medskip
+%
+% \begin{macrocode}
+\newcommand{\ft@alias}[1]{% ft-less-name
+ \@ifundefined{#1}{%
+ \global\expandafter\expandafter\expandafter%
+ \let\expandafter\expandafter\csname#1\endcsname\expandafter%
+ =\csname ft#1\endcsname%
+ }{%
+ \message{skip alias to ft#1}%
+ }%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{utility}
+%
+% \DescribeMacro{\ftymd}
+% \DescribeMacro{\ymd}
+% \cmd{\ftymd
+% \marg{year}
+% \oarg{month}
+% \oarg{date}
+% }
+%
+% Arranges and prints year-month-date. Japanese vertical mode is supported.
+% Assumes to be used in \meta{additional info} of |\indvdldef|.
+% \medskip
+%
+% \begin{macrocode}
+\NewDocumentCommand{\ftymd}{moo}{% year [month] [date]
+ \if@tate%
+ \tatechuyoko{#1}%
+ \IfValueT{#2}{\tatechuyoko{#2}}%
+ \IfValueT{#3}{\tatechuyoko{#3}}%
+ \else%
+ #1%
+ \IfValueT{#2}{\slash#2}%
+ \IfValueT{#3}{\slash#3}%
+ \fi%
+}
+\ft@alias{ymd}
+% \end{macrocode}
+%
+% \noindent
+% \DescribeMacro{\ftundef}
+% \cmd{\ftundef
+% \marg{box name}
+% }
+%
+% Undefines all internal \CS es who has \meta{box name} in its name.
+% For this macro, we don't define the prefix-less alias.
+% \medskip
+%
+% \begin{macrocode}
+\newcommand{\ftundef}[1]{%
+ \@for\@temptokena:=#1\do{%
+ \global\expandafter\let\csname\@temptokena\endcsname=\relax%
+ \global\expandafter\let\csname\@temptokena nameCY\endcsname=\relax%
+ \global\expandafter\let\csname\@temptokena mrrgCY\endcsname=\relax%
+ \global\expandafter\let\csname\@temptokena hasmaleline\endcsname%
+ =\relax%
+ }%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{internal library}
+%
+% \parag{global variable}
+%
+% \begin{macrocode}
+\newif\ifft@box@has@maleline
+\newif\ifft@widest@has@no@maleline
+\newlength{\ft@len}
+\newlength{\ft@width}
+\newlength{\ft@height}
+\newlength{\ft@depth}
+\newlength{\ft@theight}
+\newlength{\ft@x}
+\newlength{\ft@xx}
+\newlength{\ft@y}
+\newlength{\ft@yy}
+% \end{macrocode}
+%
+% \parag{utility function}
+%
+% \DescribeMacro{\ft@namexdef}
+% \DescribeMacro{\ft@namexdefstrip}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@namexdef}[2]{% name value
+ \global\expandafter\edef\csname#1\endcsname{#2}%
+ %\expandafter\xdef\csname#1\endcsname{#2}%
+ \ft@dbgmsg{xdef #1 #2}%
+}
+\newcommand{\ft@namexdefstrip}[2]{% name length
+ \ft@namexdef{#1}{\strip@pt#2}%
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@savenamebox}
+% \DescribeMacro{\ft@newnamebox}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@savenamebox}[2]{% name contents
+ \expandafter\savebox\expandafter{\csname#1\endcsname}{#2}%
+}
+\newcommand{\ft@newnamebox}[2]{% name contents
+ \global\expandafter\newsavebox\expandafter{\csname#1\endcsname}%
+ \ft@savenamebox{#1}{#2}%
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@nameboxsz}
+% \DescribeMacro{\ft@boxsz}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@nameboxsz}[4][]{% [width] name ht-value dp-value
+ \ifx#1\empty\else%
+ \expandafter\wd\csname#2\endcsname=#1%
+ \fi%
+ \expandafter\ht\csname#2\endcsname=#3%
+ \expandafter\dp\csname#2\endcsname=#4%
+ \ft@dbgmsg{#2 box, W \the\wd\@nameuse{#2}, H \the\ht\@nameuse{#2},%
+ D \the\dp\@nameuse{#2}}%
+}
+\newcommand{\ft@boxsz}[3]{% box ht-value dp-value
+ \expandafter\ht#1=#2%
+ \expandafter\dp#1=#3%
+ \ft@dbgmsg{#2 box, W \the\wd#1, H \the\ht#1, D \the\dp#1}%
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@list@append}
+% \NoDescription
+% \begin{macrocode}
+\newcommand{\ft@list@append}[3]{% list element
+ \ifx#1\empty%
+ \xdef#1{#2}%
+ \else%
+ \xdef#1{#1,#2}%
+ \fi%
+}
+\iffalse
+\newcommand{\ft@detokenize}[1]{%
+ {%
+ \escapechar=`\ %
+ \catcode`\ =9%
+ %\string#1%
+ \detokenize{#1}%
+ }%
+}
+\fi
+% \end{macrocode}
+%
+% \parag{debugging}
+%
+% \DescribeMacro{\ifftdbg}
+% \DescribeMacro{\ft@dbgmsg}
+% \DescribeMacro{\ft@dbgframe}
+% \DescribeMacro{\ft@dbgplot}
+% \DescribeMacro{\ft@dbgbox}
+% \NoDescription
+% \begin{macrocode}
+\newif\ifftdbg
+\newcommand{\ft@dbgmsg}[1]{%
+ \ifftdbg%
+ \message{#1}%
+ \fi%
+}
+\newcommand{\ft@dbgframe}[2][0,0]{% [point x,y] width,height
+ \ifftdbg%
+ \put(#1){\framebox(#2){}}%
+ \fi%
+}
+\newcommand{\ft@dbgplot}[2][]{%
+ \ifftdbg%
+ \put(#2){\circle{1}{\tiny#1}}%
+ \fi%
+}%
+\newcommand{\ft@dbgbox}[2][]{% [extra-put] box
+ \ifftdbg%
+ \ft@len=\dimexpr\ht#2 + \dp#2\relax%
+ \begin{picture}(\strip@pt\wd#2,\strip@pt\ht#2)(0,-\strip@pt\dp#2)%
+ \ft@dbgframe[0,-\strip@pt\dp#2]{\strip@pt\wd#2,\strip@pt\ft@len}%
+ %\put(0,0){{\tiny\ft@detokenize{#2}}}%
+ %\put(0,-\strip@pt\dp#2){\usebox{#2}}%
+ \put(0,0){\usebox{#2}}%
+ #1%
+ \end{picture}%
+ \fi%
+}
+% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/familytree/ft-marriage.dtx b/Master/texmf-dist/source/latex/familytree/ft-marriage.dtx
new file mode 100644
index 00000000000..138f8f06f92
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/ft-marriage.dtx
@@ -0,0 +1,374 @@
+% \iffalse
+% Copyright 2022 Jiro Senju
+%
+% This package is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this package. If not, see <http://www.gnu.org/licenses/>.
+% \fi
+%
+% \section{Marriage Box (\texttt{ft-marriage.dtx})}
+%
+% \DescribeMacro{\mrrgdef}
+% \cmd{\mrrgdef
+% \marg{new box name}
+% \marg{spouse list A}
+% \marg{oneself}
+% \marg{spouse list B}
+% \oarg{childline xlength}
+% }
+% \medskip
+%
+% Defines a marriage box with a specified name \meta{new box name}.
+% To support remarrying and the concubines, the spouses are specified by
+% a list. The element of the list is a box name defined by |\indvdldef|.
+% \meta{spouse list A} is placed upper side of \meta{oneself}, and
+% \meta{spouse list B} is lower side.
+% All box names are NOT \CS{} (no backslash).
+% \smallskip
+%
+% Aligns them in the same column, and connects them by a double line if the
+% marriage is official. If the marriage is not official (|\private|
+% attribute), uses a dashed double line.
+% Those double line is placed at the center of the length of the name of
+% \meta{oneself}.
+% \smallskip
+%
+% If a spouse has a child (|\haschild| attribute),
+% then the line to their child is drawn from the center of the
+% double line.
+% \smallskip
+%
+% Like |\sblngdef|, the interval box can be inserted if you want more
+% spaces.
+% \bigskip
+%
+% Like |\indvdldef|, some connection points are defined. Their origin
+% is left-bottom of the box and the unit is |pt|.
+%
+% \begin{itemize}
+% \item \meta{box name}|nameCY|
+%
+% the center of the height of the name of \meta{oneself}
+%
+% \item \meta{box name}\meta{individual box name}|nameCY|
+%
+% the center of the height of the name of who has any child-mark
+%
+% \item \meta{box name}\meta{individual box name}|mrrgCY|
+%
+% the center of the double line when any spouse has |\haschild| attribute
+% \end{itemize}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Customization}
+%
+% \DescribeMacro{\mrrgboxcfg}
+% \cmd{\mrrgboxcfg
+% \marg{space between two lines}
+% \marg{space between name and the line}
+% \marg{line length}
+% }
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \clearpage
+% \subsection{Example}
+%
+% \begin{enumerate}
+% \item
+% \srcfig{fig4Robert}
+%
+% \clearpage
+% \item
+% \srcfig{fig4HenryVIII}
+% \end{enumerate}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Layout and connecting in a same generation}
+%
+% It is not a good idea to put everything in a single family tree.
+%
+% For example, see King Henry VIII and his wives. Catherine of Aragon,
+% his first wife was actually a wife of Henry's brother, Arthur. If we
+% put King's siblings to this tree, how would it be looked? It's just
+% ugly and hard to understand in a glance. Let's think more using an
+% example from \refnm{sec:Lily1} again.
+%
+% How can we represent the Petunia -- Lily sisters tree including their husbands.
+% As a first step, define two marriage boxes, and then define the
+% sibling box.
+% \medskip
+%
+% \srcfig{fig4Lily1}
+% \medskip
+%
+% Why is this tree so ugly? There are three points to consider.
+% \begin{enumerate}
+% \item The position of two double lines differ from each other.
+% \item The length of a line to their child differs too. If we connected
+% the child, the ugliness would be improved.
+% \item James interrupts into between Petunia and Lily. It makes the
+% understandability worse.
+% \end{enumerate}
+%
+% On fixing the first point, the position of the double line, the second
+% point will be fixed automatically.
+% The solution is the one already suggested in \refnm{sec:Lily1}, set
+% the width of Lily box to Petunia's.
+% For the third point, the position of James, how about expanding the
+% space as a first step?
+% \medskip
+%
+% \srcfig{fig4Lily2}
+% \medskip
+%
+% Even spreading the space wider, James is still interrupting those two
+% sisters. Does it look better?
+% If we want more, the last way is to switch the position of James and Lily.
+% \medskip
+%
+% \srcfig{fig4Lily3}
+% \medskip
+%
+% Moreover spreading the blank is a good option.
+% \medskip
+%
+% \srcfig{fig4Lily4}
+% \medskip
+%
+% Is this best looking?
+% The easiness of looking is subject to one's opinion or taste.
+% Personally I feel resistance in the order of husband and wife. But also I
+% admit that as long as the main purpose of this tree is to represent those
+% sisters, this position of James is not bad.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsectImpl
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \parag{Customization}
+%
+% \DescribeMacro{\ftmrrgboxcfg}
+% \DescribeMacro{\mrrgboxcfg}
+%
+% \begin{macrocode}
+\newlength{\ft@mrrgline@sep}
+\setlength{\ft@mrrgline@sep}{4pt}
+\newlength{\ft@mrrgline@sp}
+\setlength{\ft@mrrgline@sp}{.5\ft@unit}
+\newlength{\ft@mrrgline@length}
+\setlength{\ft@mrrgline@length}{1.5\ft@unit}
+\newcommand{\ftmrrgboxcfg}[3]{% sep space length
+ \ifx#1\empty\else%
+ \setlength{\ft@mrrgline@sep}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \setlength{\ft@mrrgline@sp}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \setlength{\ft@mrrgline@length}{#3}%
+ \fi%
+}
+\ft@alias{mrrgboxcfg}
+% \end{macrocode}
+%
+% \parag{Parsing}
+%
+% \begin{macrocode}
+\newcommand{\ft@mrrg@parse}[1]{% spouse-list
+ \global\ft@height=0pt%
+ \global\ft@width=0pt%
+ \global\ft@box@has@malelinefalse%
+ \@for\@temptokena:=#1\do{%
+ \ifx\@temptokena\empty\else%
+ \xdef\ft@spouse{\@temptokena}%
+ \@ifundefined{\@temptokena ival}{%
+ \@ifundefined{\ft@spouse haschild}{}{%
+ \global\ft@box@has@malelinetrue%
+ }%
+ \setlength{\ft@len}{\wd\@nameuse{\ft@spouse}}%
+ \ifdim\ft@width<\ft@len%
+ \global\ft@width=\ft@len%
+ \fi%
+ \ft@dbgmsg{\ft@spouse, W \the\wd\@nameuse{\ft@spouse},%
+ H \the\ht\@nameuse{\ft@spouse},%
+ D \the\dp\@nameuse{\ft@spouse}}%
+ \global\advance\ft@height \dimexpr\ft@mrrgline@length%
+ + 2\ft@mrrgline@sp\relax%
+ \ft@dbgmsg{\ft@spouse, H \the\ft@height}%
+ }{}%
+ \global\advance\ft@height \dimexpr\ht\@nameuse{\ft@spouse}%
+ + \dp\@nameuse{\ft@spouse}\relax%
+ \ft@dbgmsg{\ft@spouse, h H \the\ft@height}%
+ \fi%
+ }%
+ %
+ \ifft@box@has@maleline%
+ \global\advance\ft@width \ft@namebox@maleline@length%
+ \fi%
+ %
+ \global\ft@depth=\dp\@nameuse{\ft@spouse}%
+ \global\advance\ft@height \dimexpr -2\ft@mrrgline@sp%
+ - \ft@mrrgline@length - \ft@depth\relax%
+ \ft@dbgmsg{final H \the\ft@height, D \the\ft@depth}%
+}
+% \end{macrocode}
+%
+% \parag{The double line}
+%
+% \DescribeMacro{\ft@mrrg@line}
+%
+% \begin{macrocode}
+\newlength{\ft@mrrg@chlen}
+\newcommand{\ft@mrrg@line}[5]{% box-name spouse cx sp length
+ \ft@x=#3%
+ \global\advance\ft@height -#4%
+ \@tempskipb=\dimexpr\ft@mrrgline@sep/2\relax%
+ \edef\@y{\strip@pt\ft@height}%
+ \@ifundefined{#2private}{%
+ \ft@len=#5\relax%
+ \edef\@l{\strip@pt\ft@len}%
+ \put(\strip@pt\dimexpr\ft@x - \@tempskipb, \@y){\line(0,-1){\@l}}%
+ \put(\strip@pt\dimexpr\ft@x + \@tempskipb, \@y){\line(0,-1){\@l}}%
+ }{%
+ % this divisor should match the delta_y for multiput
+ \ft@len=#5\relax%
+ \ft@len=\dimexpr\ft@len/2 + .5pt\relax%
+ \@tempcnta=\dimexpr\ft@len/65536\relax%
+ \multiput(\strip@pt\dimexpr\ft@x - \@tempskipb, \@y)%
+ (0,-2){\@tempcnta}{\line(0,-1){.5}}%
+ \multiput(\strip@pt\dimexpr\ft@x + \@tempskipb, \@y)%
+ (0,-2){\@tempcnta}{\line(0,-1){.5}}%
+ }%
+ \@ifundefined{#2haschild}{}{%
+ \ft@len=#5\relax%
+ \ft@y=\dimexpr\ft@height - \ft@len/2\relax%
+ \put(\strip@pt\dimexpr\ft@x + \@tempskipb,\strip@pt\ft@y)%
+ {\line(1,0){\strip@pt\ft@mrrg@chlen}}%
+ \ft@dbgplot{\strip@pt\ft@x,\strip@pt\ft@y}%
+ \ft@namexdefstrip{#1#2mrrgCY}{\ft@y}%
+ }%
+ \ft@len=#5\relax%
+ \@tempskipa=#4\relax%
+ \global\advance\ft@height \dimexpr -\ft@len - \@tempskipa\relax%
+ \ft@dbgmsg{line #2 H \the\ft@height}%
+}
+% \end{macrocode}
+%
+% \parag{Layout the names}
+%
+% \DescribeMacro{\ft@mrrg@name}
+%
+% \begin{macrocode}
+\newcommand{\ft@mrrg@name}[2]{% box-name individual-name
+ \global\advance\ft@height -\ht\@nameuse{#2}%
+ \put(0,\strip@pt\ft@height){\usebox{\@nameuse{#2}}}%
+ \ft@dbgframe[0,\strip@pt\ft@height]%
+ {\strip@pt\wd\@nameuse{#2},\strip@pt\ht\@nameuse{#2}}%
+ %
+ \@ifundefined{#2hasmaleline}{}{%
+ \ft@x=\@nameuse{#2nameX}pt%
+ \ft@y=\dimexpr\ft@height + \@nameuse{#2nameCY}pt\relax%
+ \ft@len=\dimexpr\ft@width - \@nameuse{#2nameX}pt%
+ %- \ft@namebox@maleline@sp%
+ \relax%
+ \put(\strip@pt\ft@x,\strip@pt\ft@y){\line(1,0){\strip@pt\ft@len}}%
+ \ft@namexdefstrip{#1#2nameCY}{\ft@y}%
+ }%
+ %
+ \@ifundefined{#2hascmark}{}{%
+ \ft@len=\dimexpr\ft@height + \@nameuse{#2nameCY}pt\relax%
+ \ft@namexdefstrip{#1#2nameCY}{\ft@len}%
+ \ft@dbgplot{0,\strip@pt\ft@len}%
+ }%
+ \global\advance\ft@height -\dp\@nameuse{#2}%
+ \ft@dbgmsg{name #2 H \the\ft@height}%
+}
+% \end{macrocode}
+%
+% \subsubsection{Layout and connect the individuals --- core}
+%
+% \DescribeMacro{\ft@mrrg@spouse}
+%
+% \begin{macrocode}
+\newlength{\ft@mrrg@ival}
+\newcommand{\ft@mrrg@spouse}[2]{% box-name list
+ \global\ft@mrrg@ival=0pt%
+ \@for\@temptokena:=#2\do{%
+ \@ifundefined{\@temptokena ival}{%
+ \@tempskipa=\dimexpr\ft@mrrgline@length + \ft@mrrg@ival\relax%
+ \if@tempswa%
+ \ft@mrrg@name{#1}{\@temptokena}%
+ \ft@mrrg@line{#1}{\@temptokena}{\ft@xx}{\ft@mrrgline@sp}%
+ {\@tempskipa}%
+ \else%
+ \ft@mrrg@line{#1}{\@temptokena}{\ft@xx}{\ft@mrrgline@sp}%
+ {\@tempskipa}%
+ \ft@mrrg@name{#1}{\@temptokena}%
+ \fi%
+ \global\ft@mrrg@ival=0pt%
+ }{%
+ \global\advance\ft@mrrg@ival%
+ \dimexpr\ht\@nameuse{\@temptokena}%
+ + \dp\@nameuse{\@temptokena}\relax%
+ }%
+ }%
+}
+% \end{macrocode}
+%
+% \subsubsection{Marriage box --- interface}
+%
+% \DescribeMacro{\ftmrrgdef}
+% \DescribeMacro{\mrrgdef}
+%
+% \begin{macrocode}
+\NewDocumentCommand{\ftmrrgdef}{mmmmO{0pt}}{%
+ % box-name spouse-listA oneself spouse-listB [xline]
+ \ft@xx=\@nameuse{#3nameCX}pt\relax%
+ \ft@mrrg@parse{#2,#3,#4}%
+ %
+ \advance\ft@width #5%
+ \global\ft@mrrg@chlen=\dimexpr\ft@width - \ft@xx%
+ - \ft@mrrgline@sep/2\relax%
+ %
+ \ft@theight=\ft@height%
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ %
+ \ifx#2\@nil\else%
+ \@tempswatrue%
+ \ft@mrrg@spouse{#1}{#2}%
+ \fi%
+ %
+ \ft@mrrg@name{#1}{#3}%
+ \@ifundefined{#1#3nameCY}{}{%
+ \ft@len=\@nameuse{#1#3nameCY}pt\relax%
+ \ft@dbgplot{1,\strip@pt\ft@len}%
+ \ft@namexdefstrip{#1nameCY}{\ft@len}%
+ }%
+ \@ifundefined{#3hascmark}{}{%
+ \ft@namexdef{#1hascmark}{\@nameuse{#3hascmark}}%
+ }%
+ %
+ \ifx#4\empty\else%
+ \@tempswafalse%
+ \ft@mrrg@spouse{#1}{#4}%
+ \fi%
+ \end{picture}%
+ }%
+ \ft@nameboxsz{#1}{\ft@theight}{\ft@depth}%
+}
+\ft@alias{mrrgdef}
+% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/familytree/ft-sibling.dtx b/Master/texmf-dist/source/latex/familytree/ft-sibling.dtx
new file mode 100644
index 00000000000..fcb6a3645d7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/familytree/ft-sibling.dtx
@@ -0,0 +1,333 @@
+% \iffalse
+% Copyright 2022 Jiro Senju
+%
+% This package is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% any later version.
+%
+% This package is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this package. If not, see <http://www.gnu.org/licenses/>.
+% \fi
+%
+% \section{Sibling Box (\texttt{ft-sibling.dtx})}
+%
+% \DescribeMacro{\sblngdef}
+% \cmd{\sblngdef
+% \marg{new box name}
+% \marg{name list of individual boxes}
+% }
+% \medskip
+%
+% \marg{name list of individual boxes} is the comma separated box names
+% which are defined by |\indvdldef|.
+% They are aligned and connected by a line.
+% All names are NOT \CS{} (no backslash).
+%
+% If any of the siblings has a |\maleline| attribute, then the length of
+% all lines are set to the longest one.
+% \medskip
+%
+% Like |\indvdldef|, |\sblngdef| defines a few connection points (\CS)
+% to be used later. The origin is left-bottom of the box and the unit is |pt|.
+%
+% \begin{itemize}
+% \item \meta{box name}|nameCY|
+% \par
+% Center of the line which connects all the siblings.
+% \par
+% The line begins at the head of the child-mark of the
+% first element of the given list, and ends at the last element.
+%
+% \item \meta{box name}\meta{individual box name}|nameCY|
+% \par
+% Center of the height for each individual name.
+% \par
+% In other words, shifted \meta{individual box name}|nameCY| which
+% |\indvdldef| defined.
+% \end{itemize}
+% \medskip
+%
+% \noindent
+% \DescribeMacro{\ivaldef}
+% \cmd{\ivaldef
+% \marg{new box name}
+% \marg{length}
+% }
+% \medskip
+%
+% Sometimes an extra space is necessary between the siblings who have
+% many descendants.
+% For such spaces, you can define an interval box by |\ivaldef|. It
+% defines an blank box who has a specified size. There are three
+% pre-defined interval boxes, |\ival|, |\ivali|, and |\ivalii|. They
+% have the size of |0.5em|, |1em|, |2em| for each.
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Customization}
+%
+% \DescribeMacro{\sblngboxcfg}
+% \cmd{\sblngboxcfg
+% \marg{space between the siblings}
+% }
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsection{Example}
+%
+% \begin{enumerate}
+% \item
+% \srcfig{fig2base}
+%
+% \item
+% \srcfig{fig2sis}
+%
+% \item
+% \srcfig{fig2ival}
+% \end{enumerate}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsectImpl
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Interval box}
+%
+% \DescribeMacro{\ftivaldef}
+% \DescribeMacro{\ivaldef}
+%
+% \begin{macrocode}
+\newcommand{\ftivaldef}[2]{% box-name length
+ \ft@newnamebox{#1}{\vbox to #2{\hsize=1pt}}%
+ \ft@len=#2%
+ \ft@namexdefstrip{#1ival}{\ft@len}% just a flag
+ \divide\ft@len 2%
+ \ft@namexdefstrip{#1nameCY}{\ft@len}%
+}
+\ft@alias{ivaldef}
+% \end{macrocode}
+%
+% \parag{Pre-defined interval boxes}
+%
+% \DescribeMacro{\ftival}
+% \DescribeMacro{\ival}
+% \NoDescription
+% \begin{macrocode}
+\ftivaldef{ftival}{.5\ft@unit}
+\ft@alias{ival}
+\ft@alias{ivalnameCY}
+\ft@alias{ivalival}
+% \end{macrocode}
+%
+% \DescribeMacro{\ftivali}
+% \DescribeMacro{\ivali}
+% \NoDescription
+% \begin{macrocode}
+\ftivaldef{ftivali}{1\ft@unit}
+\ft@alias{ivali}
+\ft@alias{ivalinameCY}
+\ft@alias{ivaliival}
+% \end{macrocode}
+%
+% \DescribeMacro{\ftivalii}
+% \DescribeMacro{\ivalii}
+% \NoDescription
+% \begin{macrocode}
+\ftivaldef{ftivalii}{2\ft@unit}
+\ft@alias{ivalii}
+\ft@alias{ivaliinameCY}
+\ft@alias{ivaliiival}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \parag{Customization}
+%
+% \DescribeMacro{\ftsblngboxcfg}
+% \DescribeMacro{\sblngboxcfg}
+%
+% \begin{macrocode}
+\newlength{\ft@sblng@vsp}
+\setlength{\ft@sblng@vsp}{.5\baselineskip}%
+\newcommand{\ftsblngboxcfg}[1]{% space-length
+ \global\ft@sblng@vsp=#1%
+}
+\ft@alias{sblngboxcfg}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Sibling box --- core}
+%
+% If any of the siblings has an attributes |\maleline| or alike, then
+% finds the longest one and sets its length to all others.
+% Between the name and |\maleline|, insert a space
+% |\ft@namebox@maleline@sp|.
+%
+% \begin{macrocode}
+\newcommand{\ft@sblng@maleline}[2]{% sibling y
+ \@ifundefined{#1hasmaleline}{}{%
+ \ft@x=\@nameuse{#1nameX}pt\relax%
+ \ifdim\ft@x<\ft@width%
+ \put(\strip@pt\ft@x,\strip@pt#2){%
+ \line(1,0){\strip@pt\dimexpr\ft@width - \ft@x}%
+ }%
+ \fi%
+ }%
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@sblng@connect}
+%
+% \begin{macrocode}
+\newlength{\ft@c}
+\newcommand{\ft@sblng@connect}[1]{% box-name
+ %
+ % draw a line to connect all the siblings
+ % length = eldest CY - youngest CY
+ % and calculate nameCY of the box
+ % nameCY = length/2 + youngest CY
+ %
+ \ft@y=\@nameuse{#1\ft@lastcmark nameCY}pt%
+ \ft@dbgplot{1,\strip@pt\ft@y}%
+ \ft@yy=\@nameuse{#1\ft@firstcmark nameCY}pt%
+ \ft@dbgplot{1,\strip@pt\ft@yy}%
+ \ft@len=\dimexpr\ft@yy - \ft@y\relax%
+ %
+ \ft@c=\dimexpr\ft@len/2 + \ft@y\relax%
+ \ft@namexdefstrip{#1nameCY}{\ft@c}%
+ \ft@dbgplot{1,\strip@pt\ft@c}%
+ %
+ \ifnum\@nameuse{\ft@lastcmark hascmark}=\ftadopted%
+ \advance\ft@y -\dimexpr\ft@cmarkbox@adopted@sep/2\relax%
+ \advance\ft@len \dimexpr\ft@cmarkbox@adopted@sep/2\relax%
+ \fi%
+ \ifnum\@nameuse{\ft@firstcmark hascmark}=\ftadopted%
+ \advance\ft@len \dimexpr\ft@cmarkbox@adopted@sep/2\relax%
+ \fi%
+ %
+ \ifdim\ft@len<2pt%
+ %\ft@len=\@nameuse{\ft@firstcmark nameCY}pt\relax%
+ \else%
+ \advance\ft@y -\dimexpr\arrayrulewidth/2\relax%
+ \advance\ft@len \arrayrulewidth%
+ \put(0,\strip@pt\ft@y){\line(0,1){\strip@pt\ft@len}}%
+ \fi%
+}
+% \end{macrocode}
+%
+% \DescribeMacro{\ft@sblng@layout}
+%
+% \begin{macrocode}
+\newcommand{\ft@sblng@layout}[2]{% box-name individual-name-list
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ %
+ \@for\@temptokena:=#2\do{%
+ \edef\ft@sblng@name{\@temptokena}%
+ \ft@dbgmsg{H \the\ft@height,%
+ \ft@sblng@name nameCY \@nameuse{\ft@sblng@name nameCY}pt,%
+ \the\ft@y}%
+ %
+ % calculate the nameCY for each
+ \advance\ft@height -\ht\@nameuse{\ft@sblng@name}%
+ \global\ft@y=\dimexpr\@nameuse{\ft@sblng@name nameCY}pt%
+ + \ft@height\relax%
+ \ft@dbgplot{0,\strip@pt\ft@y}%
+ \ft@namexdefstrip{#1\ft@sblng@name nameCY}{\ft@y}%
+ %
+ % align the malelines
+ \ft@sblng@maleline{\ft@sblng@name}{\ft@y}%
+ %
+ % place the individual boxes
+ \put(0,\strip@pt\ft@height){\usebox{\@nameuse{\ft@sblng@name}}}%
+ \advance\ft@height -\dimexpr\dp\@nameuse{\ft@sblng@name}%
+ + \ft@sblng@vsp\relax%
+ }%
+ %
+ % connect them
+ \ifx\ft@firstcmark\relax\else%
+ \ifx\ft@firstcmark\ft@lastcmark\else%
+ \ft@sblng@connect{#1}%
+ \fi%
+ \fi%
+ \end{picture}%
+ }%
+ % height should hold the original value
+ \ft@nameboxsz{#1}{\ft@height}{\ft@depth}%
+}
+% \end{macrocode}
+%
+% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% \subsubsection{Sibling box --- interface}
+%
+% \DescribeMacro{\ftsblngdef}
+% \DescribeMacro{\sblngdef}
+%
+% \begin{macrocode}
+\newcommand{\ftsblngdef}[2]{% box-name comma-separated-individuals
+ %
+ % calculate the size of the box
+ \ft@width=0pt%
+ \ft@height=0pt%
+ \ft@theight=0pt%
+ \ft@box@has@malelinefalse%
+ \@tempswatrue%
+ \let\ft@firstcmark=\relax%
+ \let\ft@lastcmark=\relax%
+ \def\ft@dpri##1{\ft@dbgmsg{##1 W \the\ft@width, H \the\ft@height,%
+ D \the\ft@depth}}%
+ \ft@dpri{h0}%
+ \@for\@temptokena:=#2\do{%
+ \if@tempswa%
+ \xdef\ft@eldest{\@temptokena}%
+ \@tempswafalse%
+ \fi%
+ \xdef\ft@youngest{\@temptokena}%
+ \@ifundefined{ft@firstcmark}{%
+ \@ifundefined{\ft@youngest hascmark}{}{%
+ \global\let\ft@firstcmark=\ft@youngest%
+ }%
+ }{%
+ \@ifundefined{\ft@youngest hascmark}{}{%
+ \global\let\ft@lastcmark=\ft@youngest%
+ }%
+ }%
+ \@ifundefined{\ft@youngest hasmaleline}{}{%
+ \global\ft@box@has@malelinetrue%
+ }%
+ %
+ \setlength{\ft@len}{\wd\@nameuse{\ft@youngest}}%
+ \ifdim\ft@width<\ft@len%
+ \global\ft@width=\ft@len%
+ \@ifundefined{\ft@youngest hasmaleline}{%
+ \global\ft@widest@has@no@malelinetrue%
+ }{%
+ \global\ft@widest@has@no@malelinefalse%
+ }%
+ \fi%
+ \global\advance\ft@theight \dimexpr\ht\@nameuse{\ft@youngest}%
+ + \dp\@nameuse{\ft@youngest} + \ft@sblng@vsp\relax%
+ \ft@dpri{\ft@youngest}%
+ }%
+ \advance\ft@theight -\ft@sblng@vsp%
+ \ft@depth=\dp\@nameuse{\ft@youngest}%
+ \ft@height=\ft@theight%
+ \advance\ft@height -\ft@depth%
+ \ifft@widest@has@no@maleline%
+ \ifft@box@has@maleline%
+ \global\advance\ft@width \dimexpr\ft@namebox@maleline@sp%
+ + \ft@namebox@maleline@length\relax%
+ \fi%
+ \fi%
+ %
+ % layout the all boxes
+ \ft@sblng@layout{#1}{#2}%
+ \ft@dbgbox{\@nameuse{#1}}%
+}
+\ft@alias{sblngdef}
+% \end{macrocode}
diff --git a/Master/texmf-dist/tex/latex/familytree/familytree.sty b/Master/texmf-dist/tex/latex/familytree/familytree.sty
new file mode 100644
index 00000000000..d4922727575
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/familytree/familytree.sty
@@ -0,0 +1,1004 @@
+%%
+%% This is file `familytree.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% familytree.dtx (with options: `package')
+%% ft-lib.dtx (with options: `package')
+%% ft-individual.dtx (with options: `package')
+%% ft-sibling.dtx (with options: `package')
+%% ft-gens.dtx (with options: `package')
+%% ft-marriage.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from familytree.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file familytree.dtx ft-lib.dtx ft-individual.dtx ft-sibling.dtx ft-gens.dtx ft-marriage.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{familytree}%
+[2022/06/27 v3.1 familytree]
+\RequirePackage{relsize}
+\RequirePackage{xparse}
+\global\newlength{\ft@unit}%
+\@ifundefined{if@tate}{%
+ \global\newif\if@tate%
+ \global\ft@unit=1em%
+}{
+ \global\ft@unit=1zw%
+}%
+\newcommand{\ft@alias}[1]{% ft-less-name
+ \@ifundefined{#1}{%
+ \global\expandafter\expandafter\expandafter%
+ \let\expandafter\expandafter\csname#1\endcsname\expandafter%
+ =\csname ft#1\endcsname%
+ }{%
+ \message{skip alias to ft#1}%
+ }%
+}
+\NewDocumentCommand{\ftymd}{moo}{% year [month] [date]
+ \if@tate%
+ \tatechuyoko{#1}%
+ \IfValueT{#2}{\tatechuyoko{#2}}%
+ \IfValueT{#3}{\tatechuyoko{#3}}%
+ \else%
+ #1%
+ \IfValueT{#2}{\slash#2}%
+ \IfValueT{#3}{\slash#3}%
+ \fi%
+}
+\ft@alias{ymd}
+\newcommand{\ftundef}[1]{%
+ \@for\@temptokena:=#1\do{%
+ \global\expandafter\let\csname\@temptokena\endcsname=\relax%
+ \global\expandafter\let\csname\@temptokena nameCY\endcsname=\relax%
+ \global\expandafter\let\csname\@temptokena mrrgCY\endcsname=\relax%
+ \global\expandafter\let\csname\@temptokena hasmaleline\endcsname%
+ =\relax%
+ }%
+}
+\newif\ifft@box@has@maleline
+\newif\ifft@widest@has@no@maleline
+\newlength{\ft@len}
+\newlength{\ft@width}
+\newlength{\ft@height}
+\newlength{\ft@depth}
+\newlength{\ft@theight}
+\newlength{\ft@x}
+\newlength{\ft@xx}
+\newlength{\ft@y}
+\newlength{\ft@yy}
+\newcommand{\ft@namexdef}[2]{% name value
+ \global\expandafter\edef\csname#1\endcsname{#2}%
+ %\expandafter\xdef\csname#1\endcsname{#2}%
+ \ft@dbgmsg{xdef #1 #2}%
+}
+\newcommand{\ft@namexdefstrip}[2]{% name length
+ \ft@namexdef{#1}{\strip@pt#2}%
+}
+\newcommand{\ft@savenamebox}[2]{% name contents
+ \expandafter\savebox\expandafter{\csname#1\endcsname}{#2}%
+}
+\newcommand{\ft@newnamebox}[2]{% name contents
+ \global\expandafter\newsavebox\expandafter{\csname#1\endcsname}%
+ \ft@savenamebox{#1}{#2}%
+}
+\newcommand{\ft@nameboxsz}[4][]{% [width] name ht-value dp-value
+ \ifx#1\empty\else%
+ \expandafter\wd\csname#2\endcsname=#1%
+ \fi%
+ \expandafter\ht\csname#2\endcsname=#3%
+ \expandafter\dp\csname#2\endcsname=#4%
+ \ft@dbgmsg{#2 box, W \the\wd\@nameuse{#2}, H \the\ht\@nameuse{#2},%
+ D \the\dp\@nameuse{#2}}%
+}
+\newcommand{\ft@boxsz}[3]{% box ht-value dp-value
+ \expandafter\ht#1=#2%
+ \expandafter\dp#1=#3%
+ \ft@dbgmsg{#2 box, W \the\wd#1, H \the\ht#1, D \the\dp#1}%
+}
+\newcommand{\ft@list@append}[3]{% list element
+ \ifx#1\empty%
+ \xdef#1{#2}%
+ \else%
+ \xdef#1{#1,#2}%
+ \fi%
+}
+\iffalse
+\newcommand{\ft@detokenize}[1]{%
+ {%
+ \escapechar=`\ %
+ \catcode`\ =9%
+ %\string#1%
+ \detokenize{#1}%
+ }%
+}
+\fi
+\newif\ifftdbg
+\newcommand{\ft@dbgmsg}[1]{%
+ \ifftdbg%
+ \message{#1}%
+ \fi%
+}
+\newcommand{\ft@dbgframe}[2][0,0]{% [point x,y] width,height
+ \ifftdbg%
+ \put(#1){\framebox(#2){}}%
+ \fi%
+}
+\newcommand{\ft@dbgplot}[2][]{%
+ \ifftdbg%
+ \put(#2){\circle{1}{\tiny#1}}%
+ \fi%
+}%
+\newcommand{\ft@dbgbox}[2][]{% [extra-put] box
+ \ifftdbg%
+ \ft@len=\dimexpr\ht#2 + \dp#2\relax%
+ \begin{picture}(\strip@pt\wd#2,\strip@pt\ht#2)(0,-\strip@pt\dp#2)%
+ \ft@dbgframe[0,-\strip@pt\dp#2]{\strip@pt\wd#2,\strip@pt\ft@len}%
+ %\put(0,0){{\tiny\ft@detokenize{#2}}}%
+ %\put(0,-\strip@pt\dp#2){\usebox{#2}}%
+ \put(0,0){\usebox{#2}}%
+ #1%
+ \end{picture}%
+ \fi%
+}
+\newlength{\ft@cmarkbox@adopted@sep}
+\setlength{\ft@cmarkbox@adopted@sep}{4pt}
+\newlength{\ft@cmarkbox@length}
+\setlength{\ft@cmarkbox@length}{1\ft@unit}
+\newcommand{\ftcmarkboxcfg}[2]{% adopted-sep line-length
+ \ifx#1\empty\else%
+ \setlength{\ft@cmarkbox@adopted@sep}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \setlength{\ft@cmarkbox@length}{#2}%
+ \fi%
+}
+\ft@alias{cmarkboxcfg}
+\chardef\fttop=0
+\chardef\ftbiological=1
+\chardef\ftadopted=2
+\chardef\ftblank=3
+\ft@alias{top}
+\ft@alias{biological}
+\ft@alias{adopted}
+\ft@alias{blank}
+\newsavebox{\ft@cmarkbox}
+\newlength{\ft@cmarkW}
+\newlength{\ft@indvdl@nameH}
+\newlength{\ft@indvdl@nameD}
+\newlength{\ft@indvdl@nameCY}
+\newcommand{\ft@do@cmarkdef}[4]{% cmarkbox-name cmark width line-length
+ \ft@savenamebox{#1}{%
+ \edef\@w{\strip@pt#3}%
+ \edef\@h{\strip@pt\ft@indvdl@nameH}%
+ \edef\@l{\strip@pt#4}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ \ifcase#2% fttop
+ \or% ftbiological
+ \put(0,\strip@pt\ft@indvdl@nameCY){\line(1,0){\@l}}%
+ \or% ftadopted
+ \ft@y=\dimexpr\ft@indvdl@nameCY%
+ + .5\ft@cmarkbox@adopted@sep\relax%
+ \put(0,\strip@pt\ft@y){\line(1,0){\@l}}%
+ \advance\ft@y -\ft@cmarkbox@adopted@sep%
+ \put(0,\strip@pt\ft@y){\line(1,0){\@l}}%
+ \or% \ftblank
+ \fi%
+ \end{picture}%
+ }%
+ \ft@nameboxsz{#1}{\ft@indvdl@nameH}{\ft@indvdl@nameD}%
+}
+\newcommand{\ft@cmarkdef}[4]{%
+ % cmarkbox-name cmark cmark-xlength cmark-space
+ \ft@savenamebox{#1}{}% empty
+ \ifcase#2% fttop
+ \else%
+ \ft@len=\dimexpr\ft@cmarkbox@length + #3\relax\relax%
+ \ifdim\ft@len>0pt%
+ \ft@do@cmarkdef{#1}{#2}{\dimexpr\ft@len + #4\relax}{\ft@len}%
+ \fi%
+ \fi%
+ \ft@dbgbox{\@nameuse{#1}}%
+}
+\newlength{\ft@optbox@vsp}
+\setlength{\ft@optbox@vsp}{.1\baselineskip}
+\newlength{\ft@optbox@indent}
+\setlength{\ft@optbox@indent}{1.1\ft@unit}
+\newcommand{\ft@optbox@font}{\relsize{-1}}%{\footnotesize}
+\newcommand{\ft@optbox@linestretch}{.75}
+\newcommand{\ftoptboxcfg}[4]{% vsp indent font linestretch
+ \ifx#1\empty\else%
+ \setlength{\ft@optbox@vsp}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \setlength{\ft@optbox@indent}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \renewcommand{\ft@optbox@font}{#3}%
+ \fi%
+ \ifx#4\empty\else%
+ \renewcommand{\ft@optbox@linestretch}{#4}%
+ \fi%
+}
+\ft@alias{optboxcfg}
+\newcommand{\ftmaleline}{ft@attr0}
+\let\ftfemaleline=\ftmaleline
+\let\ftpatrilineal=\ftmaleline
+\let\ftmatrilineal=\ftmaleline
+\newcommand{\fthaschild}{ft@attr1}
+\newcommand{\ftprivate}{ft@attr2}
+\ft@alias{maleline}
+\ft@alias{femaleline}
+\ft@alias{patrilineal}
+\ft@alias{matrilineal}
+\ft@alias{haschild}
+\ft@alias{private}
+\newcommand{\ft@optlist}[3]{% list box-name option-list
+ \edef\@male{\ftmaleline}%
+ \edef\@hasch{\fthaschild}%
+ \edef\@priv{\ftprivate}%
+ \@for\@temptokena:=#3\do{%
+ \edef\@opt{\@temptokena}%
+ \ft@dbgmsg{\@opt}%
+ \ifx\@opt\@male%
+ \global\ft@malelinetrue%
+ \ft@namexdef{#2hasmaleline}{\ftmaleline}%
+ \else%
+ \ifx\@opt\@hasch%
+ \ft@namexdef{#2haschild}{\fthaschild}%
+ \else%
+ \ifx\@opt\@priv%
+ \ft@namexdef{#2private}{\ftprivate}%
+ \else%
+ \ft@list@append{#1}{\@opt}%
+ \fi%
+ \fi%
+ \fi%
+ }%
+}
+\newsavebox{\ft@optbox}
+\newcommand{\ft@opt}[1]{% option-list
+ \savebox{\ft@optbox}{%
+ \hspace{\ft@cmarkW}%
+ \hspace{\ft@optbox@indent}%
+ \vbox{%
+ \def\baselinestretch{\ft@optbox@linestretch}%
+ \ft@optbox@font%
+ \vspace{\ft@optbox@vsp}%
+ \@for\@temptokena:=#1\do{%
+ \vss%
+ \hbox{\@temptokena}%
+ \setbox\@tempboxa=\hbox{\@temptokena}%
+ \global\ft@depth=\dp\@tempboxa%
+ }%
+ }%
+ }%
+ \ft@len=\dimexpr\ht\ft@optbox + \dp\ft@optbox - \ft@depth\relax%
+ \ft@boxsz{\ft@optbox}{\ft@len}{\ft@depth}%
+ \ft@dbgbox{\ft@optbox}%
+}
+\newlength{\ft@namebox@sp}
+\setlength{\ft@namebox@sp}{.25\ft@unit}
+\newcommand{\ft@namebox@font}{}% empty
+\newlength{\ft@namebox@maleline@sp}
+\setlength{\ft@namebox@maleline@sp}{.25\ft@unit}
+\newlength{\ft@namebox@maleline@length}
+\setlength{\ft@namebox@maleline@length}{1.5\ft@unit}
+\newcommand{\ftnameboxcfg}[4]{% sp font maleline-sp maleline-length
+ \ifx#1\empty\else%
+ \setlength{\ft@namebox@sp}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \renewcommand{\ft@namebox@font}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \setlength{\ft@namebox@maleline@sp}{#3}%
+ \fi%
+ \ifx#4\empty\else%
+ \setlength{\ft@namebox@maleline@length}{#4}%
+ \fi%
+}
+\ft@alias{nameboxcfg}
+\newif\ifft@maleline
+\newsavebox{\ft@malelinebox}
+\newsavebox{\ft@namebox}
+\newcommand{\ft@name}[3]{% box-name individual-name maleline-xlength
+ \setbox\@tempboxa=\hbox{\ft@namebox@font#2}%
+ \ft@len=\dimexpr\wd\@tempboxa + \ft@cmarkW%
+ + \ft@namebox@maleline@sp\relax%
+ \ft@namexdefstrip{#1nameX}{\ft@len}%
+ %
+ \ft@len=\dimexpr\wd\@tempboxa/2 + \ft@cmarkW\relax%
+ \ft@namexdefstrip{#1nameCX}{\ft@len}%
+ %
+ \def\@nm{\ft@namebox@font#2}%
+ \ifft@maleline%
+ % why are two 'relax'es necessary?
+ \@tempskipb=\dimexpr\ft@namebox@maleline@length%
+ - \ft@cmarkbox@length + #3\relax\relax%
+ \ifdim\@tempskipb>0pt%
+ \ft@cmarkdef{ft@malelinebox}{\ftbiological}{\@tempskipb}{0pt}%
+ \def\@nm{%
+ {\ft@namebox@font#2}%
+ \hspace{\ft@namebox@maleline@sp}%
+ \usebox{\ft@malelinebox}%
+ }%
+ \fi%
+ \fi%
+ \ft@dbgmsg{H \the\ht\@tempboxa, D \the\dp\@tempboxa}%
+ \ft@dbgmsg{H \the\ht\ft@cmarkbox, D \the\dp\ft@cmarkbox}%
+ \savebox{\ft@namebox}{%
+ \usebox{\ft@cmarkbox}%
+ \@nm%
+ }%
+ \ft@boxsz{\ft@namebox}{\ht\@tempboxa}{\dp\@tempboxa}%
+ \ft@dbgbox{\ft@namebox}%
+}
+\newlength{\ft@titlebox@indent}
+\setlength{\ft@titlebox@indent}{-.25\ft@unit}
+\newcommand{\ft@titlebox@font}{\relsize{-2}}%{\scriptsize}
+\newcommand{\ft@titlebox@linestretch}{.25}
+\newlength{\ft@titlebox@vsp}
+\setlength{\ft@titlebox@vsp}{.1\baselineskip}
+\newcommand{\fttitleboxcfg}[4]{% indent font linestretch vsp
+ \ifx#1\empty\else%
+ \setlength{\ft@titlebox@indent}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \renewcommand{\ft@titlebox@font}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \renewcommand{\ft@titlebox@linestretch}{#3}%
+ \fi%
+ \ifx#4\empty\else%
+ \setlength{\ft@titlebox@vsp}{#4}%
+ \fi%
+}
+\ft@alias{titleboxcfg}
+\newsavebox{\ft@titlebox}
+\newcommand{\ft@title}[1]{% title
+ \ft@len=\dimexpr\ft@cmarkW + \ft@titlebox@indent\relax%
+ \savebox{\ft@titlebox}{%
+ \vbox{%
+ \def\baselinestretch{\ft@titlebox@linestretch}%
+ \ft@titlebox@font%
+ %
+ \setbox\@tempboxa=\hbox{#1}%
+ \ft@dbgmsg{H \the\ht\@tempboxa, D \the\dp\@tempboxa}%
+ \global\ft@depth=\dp\@tempboxa%
+ \hbox{\hspace{\ft@len}#1}%
+ \vspace{\ft@titlebox@vsp}%
+ \global\advance\ft@depth \ft@titlebox@vsp%
+ }%
+ }%
+ \ft@dbgmsg{H \the\ht\ft@titlebox, D \the\dp\ft@titlebox}%
+ \ft@len=\dimexpr\ht\ft@titlebox + \dp\ft@titlebox - \ft@depth\relax%
+ \ft@boxsz{\ft@titlebox}{\ft@len}{\ft@depth}%
+ \ft@dbgbox{\ft@titlebox}%
+}
+\newcommand{\ft@indvdlbox@gen}[4]{%
+ % box-name title individual-name maleline-xlength
+ \ft@width=0pt%
+ \IfValueT{#2}{%
+ \ft@title{#2}%
+ \ft@width=\wd\ft@titlebox%
+ }%
+ \global\@tempswafalse%
+ \ifx\ft@indvdl@opts\empty\else%
+ \global\@tempswatrue%
+ \ft@opt{\ft@indvdl@opts}%
+ \ifdim\ft@width<\wd\ft@optbox%
+ \ft@width=\wd\ft@optbox%
+ \fi%
+ \fi%
+ \ft@name{#1}{#3}{#4}%
+}
+\newcommand{\ft@indvdlbox@calc}[2]{% box-name title
+ \global\ft@width=0pt%
+ \global\ft@height=0pt%
+ \global\ft@depth=0pt%
+ \def\ft@dpri##1{\ft@dbgmsg{##1 W \the\ft@width, H \the\ft@height,%
+ D \the\ft@depth}}%
+ \ft@dpri{h0}%
+ \IfValueT{#2}{%
+ \global\ft@width=\wd\ft@titlebox%
+ \global\ft@height=\dimexpr\ht\ft@titlebox + \dp\ft@titlebox\relax%
+ \ft@dpri{h1}%
+ }%
+ %
+ \global\advance\ft@height \ht\ft@namebox%
+ %
+ % mark this point of the height, to invert it later
+ \ft@y=\dimexpr\ft@height - \ft@indvdl@nameCY\relax%
+ %
+ \ifdim\ft@width<\wd\ft@namebox%
+ \global\ft@width=\wd\ft@namebox%
+ \fi%
+ \if@tempswa%
+ \global\advance\ft@height \dp\ft@namebox%
+ \else%
+ \global\ft@depth=\dp\ft@namebox%
+ \fi%
+ \ft@dpri{h2}%
+ %
+ \if@tempswa%
+ \ifdim\ft@width<\wd\ft@optbox%
+ \global\ft@width=\wd\ft@optbox%
+ \fi%
+ \global\advance\ft@height \ht\ft@optbox%
+ \global\ft@depth=\dp\ft@optbox%
+ \ft@dpri{h3}%
+ \fi%
+ \ft@dpri{h4}%
+ %
+ % invert the y
+ \ft@len=\dimexpr\ft@height - \ft@y\relax%
+ \ft@namexdefstrip{#1nameCY}{\ft@len}%
+}
+\newcommand{\ft@indvdlbox@layout}[2]{% box-name title
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ \ft@dbgplot{0,\@nameuse{#1nameCY}}%
+ %
+ \IfValueT{#2}{%
+ \advance\ft@height -\dimexpr\ht\ft@titlebox%
+ + \dp\ft@titlebox\relax%
+ \put(0,\strip@pt\ft@height){\usebox{\ft@titlebox}}%
+ }%
+ \advance\ft@height -\ht\ft@namebox%
+ \put(0,\strip@pt\ft@height){\usebox{\ft@namebox}}%
+ \advance\ft@height -\dp\ft@namebox%
+ \if@tempswa%
+ \advance\ft@height -\ht\ft@optbox%
+ \put(0,\strip@pt\ft@height){\usebox{\ft@optbox}}%
+ \fi%
+ \end{picture}%
+ }%
+ % height should hold the original value
+ \ft@nameboxsz{#1}{\ft@height}{\ft@depth}%
+}
+\newcommand{\ft@indvdlbox}[4]{%
+ % box-name title individual-name maleline-xlength
+ \ft@indvdlbox@gen{#1}{#2}{#3}{#4}%
+ \ft@indvdlbox@calc{#1}{#2}%
+ \ft@indvdlbox@layout{#1}{#2}%
+ %
+ \ft@dbgbox[\ft@dbgplot{0,\@nameuse{#1nameCY}}%
+ \ft@dbgplot{\@nameuse{#1nameCX},\strip@pt\ft@height}%
+ \ft@dbgplot{\@nameuse{#1nameX},\strip@pt\ft@height}%
+ ]{\@nameuse{#1}}%
+}
+\NewDocumentCommand{\ftindvdldef}{O{\ftbiological}momoO{0pt}}{%
+ \setbox\@tempboxa=\hbox{\ft@namebox@font#4}%
+ \global\ft@indvdl@nameH=\ht\@tempboxa%
+ \global\ft@indvdl@nameD=\dp\@tempboxa%
+ \if@tate%
+ \global\ft@indvdl@nameCY%
+ =\dimexpr(\ft@indvdl@nameH - \ft@indvdl@nameD)/2\relax%
+ \else%
+ \@ifundefined{jlreqsetup}{%
+ % not jlreq
+ \global\ft@indvdl@nameCY=\dimexpr(\ft@indvdl@nameH%
+ - \ft@indvdl@nameD) / 2\relax\relax%
+ }{%
+ % jlreq
+ % magic number! depends on font?
+ \global\ft@indvdl@nameCY=\dimexpr\ft@indvdl@nameH/2 - .66pt\relax%
+ }%
+ \fi%
+ \ft@dbgmsg{H \the\ft@indvdl@nameH, D \the\ft@indvdl@nameD,%
+ CY \the\ft@indvdl@nameCY}%
+ %
+ \ft@cmarkdef{ft@cmarkbox}{#1}{0pt}{\ft@namebox@sp}%
+ \ifcase#1% fttop
+ \ft@namexdef{#2hascmark}{#1}%
+ \or% ftbiological
+ \ft@namexdef{#2hascmark}{#1}%
+ \or% ftadopted
+ \ft@namexdef{#2hascmark}{#1}%
+ \fi%
+ \global\ft@cmarkW=\wd\ft@cmarkbox%
+ %
+ \global\ft@malelinefalse%
+ \xdef\ft@indvdl@opts{}%
+ \IfValueT{#5}{%
+ \ft@optlist{\ft@indvdl@opts}{#2}{#5}%
+ \ft@dbgmsg{opt \ft@indvdl@opts}%
+ }%
+ %
+ \ft@indvdlbox{#2}{#3}{#4}{#6}%
+}
+\ft@alias{indvdldef}
+\newcommand{\ftivaldef}[2]{% box-name length
+ \ft@newnamebox{#1}{\vbox to #2{\hsize=1pt}}%
+ \ft@len=#2%
+ \ft@namexdefstrip{#1ival}{\ft@len}% just a flag
+ \divide\ft@len 2%
+ \ft@namexdefstrip{#1nameCY}{\ft@len}%
+}
+\ft@alias{ivaldef}
+\ftivaldef{ftival}{.5\ft@unit}
+\ft@alias{ival}
+\ft@alias{ivalnameCY}
+\ft@alias{ivalival}
+\ftivaldef{ftivali}{1\ft@unit}
+\ft@alias{ivali}
+\ft@alias{ivalinameCY}
+\ft@alias{ivaliival}
+\ftivaldef{ftivalii}{2\ft@unit}
+\ft@alias{ivalii}
+\ft@alias{ivaliinameCY}
+\ft@alias{ivaliiival}
+\newlength{\ft@sblng@vsp}
+\setlength{\ft@sblng@vsp}{.5\baselineskip}%
+\newcommand{\ftsblngboxcfg}[1]{% space-length
+ \global\ft@sblng@vsp=#1%
+}
+\ft@alias{sblngboxcfg}
+\newcommand{\ft@sblng@maleline}[2]{% sibling y
+ \@ifundefined{#1hasmaleline}{}{%
+ \ft@x=\@nameuse{#1nameX}pt\relax%
+ \ifdim\ft@x<\ft@width%
+ \put(\strip@pt\ft@x,\strip@pt#2){%
+ \line(1,0){\strip@pt\dimexpr\ft@width - \ft@x}%
+ }%
+ \fi%
+ }%
+}
+\newlength{\ft@c}
+\newcommand{\ft@sblng@connect}[1]{% box-name
+ %
+ % draw a line to connect all the siblings
+ % length = eldest CY - youngest CY
+ % and calculate nameCY of the box
+ % nameCY = length/2 + youngest CY
+ %
+ \ft@y=\@nameuse{#1\ft@lastcmark nameCY}pt%
+ \ft@dbgplot{1,\strip@pt\ft@y}%
+ \ft@yy=\@nameuse{#1\ft@firstcmark nameCY}pt%
+ \ft@dbgplot{1,\strip@pt\ft@yy}%
+ \ft@len=\dimexpr\ft@yy - \ft@y\relax%
+ %
+ \ft@c=\dimexpr\ft@len/2 + \ft@y\relax%
+ \ft@namexdefstrip{#1nameCY}{\ft@c}%
+ \ft@dbgplot{1,\strip@pt\ft@c}%
+ %
+ \ifnum\@nameuse{\ft@lastcmark hascmark}=\ftadopted%
+ \advance\ft@y -\dimexpr\ft@cmarkbox@adopted@sep/2\relax%
+ \advance\ft@len \dimexpr\ft@cmarkbox@adopted@sep/2\relax%
+ \fi%
+ \ifnum\@nameuse{\ft@firstcmark hascmark}=\ftadopted%
+ \advance\ft@len \dimexpr\ft@cmarkbox@adopted@sep/2\relax%
+ \fi%
+ %
+ \ifdim\ft@len<2pt%
+ %\ft@len=\@nameuse{\ft@firstcmark nameCY}pt\relax%
+ \else%
+ \advance\ft@y -\dimexpr\arrayrulewidth/2\relax%
+ \advance\ft@len \arrayrulewidth%
+ \put(0,\strip@pt\ft@y){\line(0,1){\strip@pt\ft@len}}%
+ \fi%
+}
+\newcommand{\ft@sblng@layout}[2]{% box-name individual-name-list
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ %
+ \@for\@temptokena:=#2\do{%
+ \edef\ft@sblng@name{\@temptokena}%
+ \ft@dbgmsg{H \the\ft@height,%
+ \ft@sblng@name nameCY \@nameuse{\ft@sblng@name nameCY}pt,%
+ \the\ft@y}%
+ %
+ % calculate the nameCY for each
+ \advance\ft@height -\ht\@nameuse{\ft@sblng@name}%
+ \global\ft@y=\dimexpr\@nameuse{\ft@sblng@name nameCY}pt%
+ + \ft@height\relax%
+ \ft@dbgplot{0,\strip@pt\ft@y}%
+ \ft@namexdefstrip{#1\ft@sblng@name nameCY}{\ft@y}%
+ %
+ % align the malelines
+ \ft@sblng@maleline{\ft@sblng@name}{\ft@y}%
+ %
+ % place the individual boxes
+ \put(0,\strip@pt\ft@height){\usebox{\@nameuse{\ft@sblng@name}}}%
+ \advance\ft@height -\dimexpr\dp\@nameuse{\ft@sblng@name}%
+ + \ft@sblng@vsp\relax%
+ }%
+ %
+ % connect them
+ \ifx\ft@firstcmark\relax\else%
+ \ifx\ft@firstcmark\ft@lastcmark\else%
+ \ft@sblng@connect{#1}%
+ \fi%
+ \fi%
+ \end{picture}%
+ }%
+ % height should hold the original value
+ \ft@nameboxsz{#1}{\ft@height}{\ft@depth}%
+}
+\newcommand{\ftsblngdef}[2]{% box-name comma-separated-individuals
+ %
+ % calculate the size of the box
+ \ft@width=0pt%
+ \ft@height=0pt%
+ \ft@theight=0pt%
+ \ft@box@has@malelinefalse%
+ \@tempswatrue%
+ \let\ft@firstcmark=\relax%
+ \let\ft@lastcmark=\relax%
+ \def\ft@dpri##1{\ft@dbgmsg{##1 W \the\ft@width, H \the\ft@height,%
+ D \the\ft@depth}}%
+ \ft@dpri{h0}%
+ \@for\@temptokena:=#2\do{%
+ \if@tempswa%
+ \xdef\ft@eldest{\@temptokena}%
+ \@tempswafalse%
+ \fi%
+ \xdef\ft@youngest{\@temptokena}%
+ \@ifundefined{ft@firstcmark}{%
+ \@ifundefined{\ft@youngest hascmark}{}{%
+ \global\let\ft@firstcmark=\ft@youngest%
+ }%
+ }{%
+ \@ifundefined{\ft@youngest hascmark}{}{%
+ \global\let\ft@lastcmark=\ft@youngest%
+ }%
+ }%
+ \@ifundefined{\ft@youngest hasmaleline}{}{%
+ \global\ft@box@has@malelinetrue%
+ }%
+ %
+ \setlength{\ft@len}{\wd\@nameuse{\ft@youngest}}%
+ \ifdim\ft@width<\ft@len%
+ \global\ft@width=\ft@len%
+ \@ifundefined{\ft@youngest hasmaleline}{%
+ \global\ft@widest@has@no@malelinetrue%
+ }{%
+ \global\ft@widest@has@no@malelinefalse%
+ }%
+ \fi%
+ \global\advance\ft@theight \dimexpr\ht\@nameuse{\ft@youngest}%
+ + \dp\@nameuse{\ft@youngest} + \ft@sblng@vsp\relax%
+ \ft@dpri{\ft@youngest}%
+ }%
+ \advance\ft@theight -\ft@sblng@vsp%
+ \ft@depth=\dp\@nameuse{\ft@youngest}%
+ \ft@height=\ft@theight%
+ \advance\ft@height -\ft@depth%
+ \ifft@widest@has@no@maleline%
+ \ifft@box@has@maleline%
+ \global\advance\ft@width \dimexpr\ft@namebox@maleline@sp%
+ + \ft@namebox@maleline@length\relax%
+ \fi%
+ \fi%
+ %
+ % layout the all boxes
+ \ft@sblng@layout{#1}{#2}%
+ \ft@dbgbox{\@nameuse{#1}}%
+}
+\ft@alias{sblngdef}
+\def\ft@getpair#1#2#3{% connection-pair parent-box-name
+ \ft@dbgmsg{args #1, #2, #3}%
+ \@ifundefined{#3#1nameCY}{%
+ \@ifundefined{#3#1mrrgCY}{%
+ \xdef\ft@cpoint{#1nameCY}%
+ }{%
+ \xdef\ft@cpoint{#3#1mrrgCY}%
+ }%
+ }{%
+ \xdef\ft@cpoint{#3#1nameCY}%
+ }%
+ \xdef\ft@kids{#2}%
+}
+\newcommand{\ft@calc@xtop}[4]{% name parent cpoint kids
+ % top half of kids
+ \ft@len=\dimexpr\ht\@nameuse{#4} - \@nameuse{#4nameCY}pt\relax\relax%
+ % top half of parent cpoint
+ \@tempskipa=\dimexpr\ht\@nameuse{#2} - \@nameuse{#3}pt\relax\relax%
+ %
+ \ifdim\ft@len<\@tempskipa%
+ \ft@len=0pt%
+ \else%
+ \advance\ft@len -\@tempskipa%
+ \fi%
+ \global#1=\ft@len%
+}
+\newcommand{\ft@calc@xbottom}[4]{% name parent cpoint kids
+ % bottom half of kids
+ \ft@len=\@nameuse{#4nameCY}pt\relax%
+ % bottom half of parent cpoint
+ \@tempskipa=\@nameuse{#3}pt\relax%
+ %
+ \ifdim\ft@len=\@tempskipa%
+ \ft@len=0pt%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#2}}%
+ \ifdim\ft@depth<\dp\@nameuse{#4}%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#4}}%
+ \fi%
+ \else%
+ \ifdim\ft@len<\@tempskipa%
+ \ft@len=0pt%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#2}}%
+ \else%
+ \advance\ft@len -\@tempskipa%
+ \global\setlength{\ft@depth}{\dp\@nameuse{#4}}%
+ \fi%
+ \fi%
+ \global#1=\ft@len%
+}
+\newlength{\ft@xtop}
+\newlength{\ft@xbottom}
+\newcommand{\ft@gens@size}[2]{% parent-box connect-pair-list
+ \@tempswatrue%
+ \ft@width=0pt%
+ \@for\@temptokena:=#2\do{%
+ \expandafter\ft@getpair\@temptokena{#1}%
+ \ft@dbgmsg{\ft@cpoint and \ft@kids}%
+ \if@tempswa%
+ \ft@calc@xtop{\ft@xtop}{#1}{\ft@cpoint}{\ft@kids}%
+ \@tempswafalse%
+ \fi%
+ \setlength{\ft@len}{\wd\@nameuse{\ft@kids}}%
+ \ifdim\ft@width<\ft@len%
+ \global\ft@width=\ft@len%
+ \fi%
+ }%
+ \ft@calc@xbottom{\ft@xbottom}{#1}{\ft@cpoint}{\ft@kids}%
+ \ft@dbgmsg{xtop \the\ft@xtop, xbottom \the\ft@xbottom}%
+ %
+ \ft@x=\dimexpr\wd\@nameuse{#1}% - \ft@cmarkbox@length\relax%
+ \ft@dbgmsg{x \the\ft@x}%
+ \advance\ft@width \ft@x%
+ \ft@dbgmsg{w \the\ft@width}%
+ \ft@height=\dimexpr\ht\@nameuse{#1} + \ft@xtop + \ft@xbottom\relax%
+ \ft@dbgmsg{kids H \the\ht\@nameuse{\ft@kids}}%
+ \ft@dbgmsg{H \strip@pt\ft@height, D \strip@pt\ft@depth}%
+}
+\newcommand{\ft@gens@layout}[3]{%
+ % box-name parent-box-name {{parent-name} {child-name}, ...}
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ %
+ \ft@y=\ft@xbottom%
+ \ft@dbgplot{0,\strip@pt\ft@y}%
+ \put(0,\strip@pt\ft@y){\usebox{\@nameuse{#2}}}%
+ \advance\ft@y \@nameuse{#2nameCY}pt%
+ \ft@namexdefstrip{#1nameCY}{\ft@y}%
+ %\ft@namexdefstrip{#1#2nameCY}{\ft@y}%
+ %
+ \@for\@temptokena:=#3\do{%%
+ \expandafter\ft@getpair\@temptokena{#2}%
+ \ft@dbgmsg{\ft@cpoint and \ft@kids}%
+ %
+ \ft@y=\dimexpr\ft@xbottom + \@nameuse{\ft@cpoint}pt\relax%
+ \ft@dbgmsg{parent cpoint \the\ft@y}%
+ \ft@dbgplot{\strip@pt\ft@x,\strip@pt\ft@y}%
+ %
+ \advance\ft@y -\@nameuse{\ft@kids nameCY}pt%
+ \ft@dbgmsg{final child y \the\ft@y}%
+ \put(\strip@pt\ft@x,\strip@pt\ft@y){%
+ \usebox{\@nameuse{\ft@kids}}}%
+ \ft@namexdefstrip{#1\ft@kids Y}{\ft@y}%
+ }%
+ \end{picture}%
+ }%
+}
+\newcommand{\ftgensdef}[3]{%
+ % box-name parent-box-name {{parent-name} {child-name}, ...}
+ %
+ % calculate the size of the new box
+ \ft@gens@size{#2}{#3}%
+ %
+ % draw them all
+ \ft@gens@layout{#1}{#2}{#3}%
+ %
+ \@ifundefined{#2hascmark}{}{%
+ \ft@namexdef{#1hascmark}{\@nameuse{#2hascmark}}%
+ }%
+ \ft@nameboxsz{#1}{\ft@height}{\ft@depth}%
+}
+\ft@alias{gensdef}
+\newcommand{\ftpcdef}[3]{% box-name parent-box-name child-box-name
+ \ftgensdef{#1}{#2}{{#2}{#3}}%
+}
+\ft@alias{pcdef}
+\newlength{\ft@mrrgline@sep}
+\setlength{\ft@mrrgline@sep}{4pt}
+\newlength{\ft@mrrgline@sp}
+\setlength{\ft@mrrgline@sp}{.5\ft@unit}
+\newlength{\ft@mrrgline@length}
+\setlength{\ft@mrrgline@length}{1.5\ft@unit}
+\newcommand{\ftmrrgboxcfg}[3]{% sep space length
+ \ifx#1\empty\else%
+ \setlength{\ft@mrrgline@sep}{#1}%
+ \fi%
+ \ifx#2\empty\else%
+ \setlength{\ft@mrrgline@sp}{#2}%
+ \fi%
+ \ifx#3\empty\else%
+ \setlength{\ft@mrrgline@length}{#3}%
+ \fi%
+}
+\ft@alias{mrrgboxcfg}
+\newcommand{\ft@mrrg@parse}[1]{% spouse-list
+ \global\ft@height=0pt%
+ \global\ft@width=0pt%
+ \global\ft@box@has@malelinefalse%
+ \@for\@temptokena:=#1\do{%
+ \ifx\@temptokena\empty\else%
+ \xdef\ft@spouse{\@temptokena}%
+ \@ifundefined{\@temptokena ival}{%
+ \@ifundefined{\ft@spouse haschild}{}{%
+ \global\ft@box@has@malelinetrue%
+ }%
+ \setlength{\ft@len}{\wd\@nameuse{\ft@spouse}}%
+ \ifdim\ft@width<\ft@len%
+ \global\ft@width=\ft@len%
+ \fi%
+ \ft@dbgmsg{\ft@spouse, W \the\wd\@nameuse{\ft@spouse},%
+ H \the\ht\@nameuse{\ft@spouse},%
+ D \the\dp\@nameuse{\ft@spouse}}%
+ \global\advance\ft@height \dimexpr\ft@mrrgline@length%
+ + 2\ft@mrrgline@sp\relax%
+ \ft@dbgmsg{\ft@spouse, H \the\ft@height}%
+ }{}%
+ \global\advance\ft@height \dimexpr\ht\@nameuse{\ft@spouse}%
+ + \dp\@nameuse{\ft@spouse}\relax%
+ \ft@dbgmsg{\ft@spouse, h H \the\ft@height}%
+ \fi%
+ }%
+ %
+ \ifft@box@has@maleline%
+ \global\advance\ft@width \ft@namebox@maleline@length%
+ \fi%
+ %
+ \global\ft@depth=\dp\@nameuse{\ft@spouse}%
+ \global\advance\ft@height \dimexpr -2\ft@mrrgline@sp%
+ - \ft@mrrgline@length - \ft@depth\relax%
+ \ft@dbgmsg{final H \the\ft@height, D \the\ft@depth}%
+}
+\newlength{\ft@mrrg@chlen}
+\newcommand{\ft@mrrg@line}[5]{% box-name spouse cx sp length
+ \ft@x=#3%
+ \global\advance\ft@height -#4%
+ \@tempskipb=\dimexpr\ft@mrrgline@sep/2\relax%
+ \edef\@y{\strip@pt\ft@height}%
+ \@ifundefined{#2private}{%
+ \ft@len=#5\relax%
+ \edef\@l{\strip@pt\ft@len}%
+ \put(\strip@pt\dimexpr\ft@x - \@tempskipb, \@y){\line(0,-1){\@l}}%
+ \put(\strip@pt\dimexpr\ft@x + \@tempskipb, \@y){\line(0,-1){\@l}}%
+ }{%
+ % this divisor should match the delta_y for multiput
+ \ft@len=#5\relax%
+ \ft@len=\dimexpr\ft@len/2 + .5pt\relax%
+ \@tempcnta=\dimexpr\ft@len/65536\relax%
+ \multiput(\strip@pt\dimexpr\ft@x - \@tempskipb, \@y)%
+ (0,-2){\@tempcnta}{\line(0,-1){.5}}%
+ \multiput(\strip@pt\dimexpr\ft@x + \@tempskipb, \@y)%
+ (0,-2){\@tempcnta}{\line(0,-1){.5}}%
+ }%
+ \@ifundefined{#2haschild}{}{%
+ \ft@len=#5\relax%
+ \ft@y=\dimexpr\ft@height - \ft@len/2\relax%
+ \put(\strip@pt\dimexpr\ft@x + \@tempskipb,\strip@pt\ft@y)%
+ {\line(1,0){\strip@pt\ft@mrrg@chlen}}%
+ \ft@dbgplot{\strip@pt\ft@x,\strip@pt\ft@y}%
+ \ft@namexdefstrip{#1#2mrrgCY}{\ft@y}%
+ }%
+ \ft@len=#5\relax%
+ \@tempskipa=#4\relax%
+ \global\advance\ft@height \dimexpr -\ft@len - \@tempskipa\relax%
+ \ft@dbgmsg{line #2 H \the\ft@height}%
+}
+\newcommand{\ft@mrrg@name}[2]{% box-name individual-name
+ \global\advance\ft@height -\ht\@nameuse{#2}%
+ \put(0,\strip@pt\ft@height){\usebox{\@nameuse{#2}}}%
+ \ft@dbgframe[0,\strip@pt\ft@height]%
+ {\strip@pt\wd\@nameuse{#2},\strip@pt\ht\@nameuse{#2}}%
+ %
+ \@ifundefined{#2hasmaleline}{}{%
+ \ft@x=\@nameuse{#2nameX}pt%
+ \ft@y=\dimexpr\ft@height + \@nameuse{#2nameCY}pt\relax%
+ \ft@len=\dimexpr\ft@width - \@nameuse{#2nameX}pt%
+ %- \ft@namebox@maleline@sp%
+ \relax%
+ \put(\strip@pt\ft@x,\strip@pt\ft@y){\line(1,0){\strip@pt\ft@len}}%
+ \ft@namexdefstrip{#1#2nameCY}{\ft@y}%
+ }%
+ %
+ \@ifundefined{#2hascmark}{}{%
+ \ft@len=\dimexpr\ft@height + \@nameuse{#2nameCY}pt\relax%
+ \ft@namexdefstrip{#1#2nameCY}{\ft@len}%
+ \ft@dbgplot{0,\strip@pt\ft@len}%
+ }%
+ \global\advance\ft@height -\dp\@nameuse{#2}%
+ \ft@dbgmsg{name #2 H \the\ft@height}%
+}
+\newlength{\ft@mrrg@ival}
+\newcommand{\ft@mrrg@spouse}[2]{% box-name list
+ \global\ft@mrrg@ival=0pt%
+ \@for\@temptokena:=#2\do{%
+ \@ifundefined{\@temptokena ival}{%
+ \@tempskipa=\dimexpr\ft@mrrgline@length + \ft@mrrg@ival\relax%
+ \if@tempswa%
+ \ft@mrrg@name{#1}{\@temptokena}%
+ \ft@mrrg@line{#1}{\@temptokena}{\ft@xx}{\ft@mrrgline@sp}%
+ {\@tempskipa}%
+ \else%
+ \ft@mrrg@line{#1}{\@temptokena}{\ft@xx}{\ft@mrrgline@sp}%
+ {\@tempskipa}%
+ \ft@mrrg@name{#1}{\@temptokena}%
+ \fi%
+ \global\ft@mrrg@ival=0pt%
+ }{%
+ \global\advance\ft@mrrg@ival%
+ \dimexpr\ht\@nameuse{\@temptokena}%
+ + \dp\@nameuse{\@temptokena}\relax%
+ }%
+ }%
+}
+\NewDocumentCommand{\ftmrrgdef}{mmmmO{0pt}}{%
+ % box-name spouse-listA oneself spouse-listB [xline]
+ \ft@xx=\@nameuse{#3nameCX}pt\relax%
+ \ft@mrrg@parse{#2,#3,#4}%
+ %
+ \advance\ft@width #5%
+ \global\ft@mrrg@chlen=\dimexpr\ft@width - \ft@xx%
+ - \ft@mrrgline@sep/2\relax%
+ %
+ \ft@theight=\ft@height%
+ \ft@newnamebox{#1}{%
+ \edef\@w{\strip@pt\ft@width}%
+ \edef\@h{\strip@pt\ft@height}%
+ \begin{picture}(\@w,\@h)%
+ \ft@dbgframe{\@w,\@h}%
+ %
+ \ifx#2\@nil\else%
+ \@tempswatrue%
+ \ft@mrrg@spouse{#1}{#2}%
+ \fi%
+ %
+ \ft@mrrg@name{#1}{#3}%
+ \@ifundefined{#1#3nameCY}{}{%
+ \ft@len=\@nameuse{#1#3nameCY}pt\relax%
+ \ft@dbgplot{1,\strip@pt\ft@len}%
+ \ft@namexdefstrip{#1nameCY}{\ft@len}%
+ }%
+ \@ifundefined{#3hascmark}{}{%
+ \ft@namexdef{#1hascmark}{\@nameuse{#3hascmark}}%
+ }%
+ %
+ \ifx#4\empty\else%
+ \@tempswafalse%
+ \ft@mrrg@spouse{#1}{#4}%
+ \fi%
+ \end{picture}%
+ }%
+ \ft@nameboxsz{#1}{\ft@theight}{\ft@depth}%
+}
+\ft@alias{mrrgdef}
+\endinput
+%%
+%% End of file `familytree.sty'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 753a1fbbf50..764e839de24 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -309,7 +309,7 @@ my @TLP_working = qw(
expose-expl3-dunkerque-2019 expressg
exsheets exsol extarrows exteps
extpfeil extract extsizes
- facsimile factura facture facture-belge-simple-sans-tva faktor
+ facsimile factura facture facture-belge-simple-sans-tva faktor familytree
fancybox fancyhandout fancyhdr fancyhdr-it fancylabel fancynum fancypar
fancyref fancyslides fancytabs fancytooltips fancyvrb fandol
fascicules fast-diagram fbb fbithesis fbox fbs
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 3e9ae071461..869b55d007f 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -471,6 +471,7 @@ depend exsol
depend extract
depend facsimile
depend factura
+depend familytree
depend fancyhandout
depend fancylabel
depend fancynum
diff --git a/Master/tlpkg/tlpsrc/familytree.tlpsrc b/Master/tlpkg/tlpsrc/familytree.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/familytree.tlpsrc