diff options
author | Karl Berry <karl@freefriends.org> | 2022-06-27 20:22:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-06-27 20:22:56 +0000 |
commit | f53463f85287ae39aca758fb293f1de82dcb0580 (patch) | |
tree | e66ca756398c58f6a9e25d97fc5e29c1cf27b5bf | |
parent | eec9dfedd34242b8479e29a4d91ea627a2e90770 (diff) |
familytree (27jun22)
git-svn-id: svn://tug.org/texlive/trunk@63739 c570f23f-e606-0410-a88d-b1316a301751
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 Binary files differnew file mode 100644 index 00000000000..83fa88daac7 --- /dev/null +++ b/Master/texmf-dist/doc/latex/familytree/familytree-ja.pdf diff --git a/Master/texmf-dist/doc/latex/familytree/familytree.pdf b/Master/texmf-dist/doc/latex/familytree/familytree.pdf Binary files differnew file mode 100644 index 00000000000..f9f413e737b --- /dev/null +++ b/Master/texmf-dist/doc/latex/familytree/familytree.pdf 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 Binary files differnew file mode 100644 index 00000000000..60cac91c672 --- /dev/null +++ b/Master/texmf-dist/doc/latex/familytree/samples/Asai.pdf 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 Binary files differnew file mode 100644 index 00000000000..4b068ec33cf --- /dev/null +++ b/Master/texmf-dist/doc/latex/familytree/samples/Crawley.pdf 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 Binary files differnew file mode 100644 index 00000000000..78b07ad2669 --- /dev/null +++ b/Master/texmf-dist/doc/latex/familytree/samples/Tokugawa.pdf 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 |