diff options
-rw-r--r-- | Master/texmf-dist/doc/latex/genealogytree/CHANGES | 22 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/genealogytree/README | 47 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/genealogytree/genealogytree.doc.sources.zip | bin | 0 -> 6944 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/genealogytree/genealogytree.pdf | bin | 0 -> 405381 bytes | |||
-rw-r--r-- | Master/texmf-dist/tex/latex/genealogytree/genealogytree.sty | 101 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/genealogytree/gtrcore.debug.code.tex | 134 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/genealogytree/gtrcore.options.code.tex | 84 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/genealogytree/gtrcore.parser.code.tex | 520 | ||||
-rwxr-xr-x | Master/tlpkg/bin/tlpkg-ctan-check | 2 | ||||
-rwxr-xr-x | Master/tlpkg/libexec/ctan2tds | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/collection-pictures.tlpsrc | 1 | ||||
-rw-r--r-- | Master/tlpkg/tlpsrc/genealogytree.tlpsrc | 0 |
12 files changed, 911 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/genealogytree/CHANGES b/Master/texmf-dist/doc/latex/genealogytree/CHANGES new file mode 100644 index 00000000000..8c9a29c8379 --- /dev/null +++ b/Master/texmf-dist/doc/latex/genealogytree/CHANGES @@ -0,0 +1,22 @@ +%% The LaTeX package genealogytree - version 0.10 (2015/01/12) +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2013-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% + +(2013-2014): pre publication development + +version 0.10 (2015/01/12): initial public release (alpha version) diff --git a/Master/texmf-dist/doc/latex/genealogytree/README b/Master/texmf-dist/doc/latex/genealogytree/README new file mode 100644 index 00000000000..b208c47985b --- /dev/null +++ b/Master/texmf-dist/doc/latex/genealogytree/README @@ -0,0 +1,47 @@ +%% The LaTeX package genealogytree - version 0.10 (2015/01/12) +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2013-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% + +Pedigree and genealogical tree diagrams are proven tools to visualize genetic +and relational connections between individuals. The naming for mathematical tree +structures with parent nodes and child nodes is traded from historical family +diagrams. However, even the smallest family entity consisting of two parents and +several children is no mathematical tree but a more general graph. The +genealogytree packages provides a set of tools to typeset such genealogical +trees or, more precisely, to typeset a set of special graphs for the description +of family-like structures. The package uses an autolayout algorithm which can be +customized to e.g. prioritize certain paths. + +Contents of the package +======================= + 'README' this file + 'CHANGES' log of changes (history) + 'genealogytree.sty' LaTeX package file (style file) + '*.code.tex' LaTeX package file (library of genealogytree) + 'genealogytree.pdf' Documentation for genealogytree + 'genealogytree.doc.sources.zip' Source code of the documentation + +Installation +============ +Copy the contents of the 'genealogytree.tds.zip' from CTAN to your local TeX +file tree. + +Alternatively, put the files to their respective locations within the TeX installation: + 'genealogytree.sty' -> /tex/latex/genealogytree + '*.code.tex' -> /tex/latex/genealogytree + all other files -> /doc/latex/genealogytree diff --git a/Master/texmf-dist/doc/latex/genealogytree/genealogytree.doc.sources.zip b/Master/texmf-dist/doc/latex/genealogytree/genealogytree.doc.sources.zip Binary files differnew file mode 100644 index 00000000000..edb0fbe5a1d --- /dev/null +++ b/Master/texmf-dist/doc/latex/genealogytree/genealogytree.doc.sources.zip diff --git a/Master/texmf-dist/doc/latex/genealogytree/genealogytree.pdf b/Master/texmf-dist/doc/latex/genealogytree/genealogytree.pdf Binary files differnew file mode 100644 index 00000000000..e4e72e55bd2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/genealogytree/genealogytree.pdf diff --git a/Master/texmf-dist/tex/latex/genealogytree/genealogytree.sty b/Master/texmf-dist/tex/latex/genealogytree/genealogytree.sty new file mode 100644 index 00000000000..b75d6c54c62 --- /dev/null +++ b/Master/texmf-dist/tex/latex/genealogytree/genealogytree.sty @@ -0,0 +1,101 @@ +%% The LaTeX package genealogytree - version 0.10 (2015/01/12) +%% genealogytree.sty: genealogy trees (graphs) +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2013-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{genealogytree}[2015/01/12 version 0.10 genealogy trees] +\def\gtr@version{0.10} + +\RequirePackage{pgf}[2008/01/15] +\RequirePackage{etoolbox}[2011/01/03] + +\def\gtr@warning#1{\PackageWarning{genealogytree}{#1}} +\def\gtr@error#1{\PackageError{genealogytree}{#1}} + +\pgfkeys{/handlers/.gstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\gdef#1{##1}}} +\pgfkeys{/handlers/.xstore in/.code=\pgfkeysalso{\pgfkeyscurrentpath/.code=\xdef#1{##1}}} +\pgfkeys{/gtr/.is family} +\def\gtrset{\pgfqkeys{/gtr}} + +\def\gtr@optionlist{} + +\def\gtr@set@library@version#1{% + \def\gtr@library@version{#1}% + \typeout{Library (genealogytree): '\gtr@library@inload' version '\gtr@library@version'} + \gtr@check@library@version% +} + +\def\gtr@check@library@version{% + \ifx\gtr@library@version\gtr@version\else% + \PackageError{genealogytree}{genealogytree version '\gtr@version' loads library '\gtr@library@inload' with version '\gtr@library@version'} + \fi% +} + +\def\gtruselibrary#1{\gtrset{library/.cd,#1}} +\@onlypreamble\gtruselibrary + +\providecommand{\gtrpkgprefix}{} + +\def\gtr@input@library@in#1{% + \input\gtrpkgprefix#1\relax% +} + +\let\gtr@input@library=\gtr@input@library@in% + +\def\gtr@input@library@ex#1{% + \let\gtr@input@library=\gtr@input@library@in% + \edef\gtr@at@catcode{\the\catcode`@}% + \catcode`\@11\relax% + \gtr@input@library@in{#1}% + \catcode`\@\gtr@at@catcode\relax% + \let\gtr@input@library=\gtr@input@library@ex% +} + +\def\gtr@load@library#1#2{% + \pgfkeysifdefined{/gtr/libload/#1}{}{% + \pgfkeyssetvalue{/gtr/libload/#1}{}% + \def\gtr@library@inload{#2}% + \def\gtr@library@version{-}% + \gtr@input@library{#2}% + \gtr@check@library@version}% +} + +\def\gtr@add@library#1#2{% + \gtrset{library/#1/.code={\gtr@load@library{#1}{#2}}}% + \DeclareOption{#1}{\appto\gtr@optionlist{,#1}}% +} +\def\gtr@add@library@style#1#2{% + \gtrset{library/#1/.style={#2}}% + \DeclareOption{#1}{\appto\gtr@optionlist{,#1}}% +} + +\gtr@add@library{core.parser}{gtrcore.parser.code.tex} +\gtr@add@library{core.options}{gtrcore.options.code.tex} +\gtr@add@library{core.debug}{gtrcore.debug.code.tex} + +\ProcessOptions* + +\gtruselibrary{% + core.parser,% + core.options,% + core.debug,% +} + +\edef\gtr@temp{\noexpand\gtruselibrary{\gtr@optionlist}} +\gtr@temp +\let\gtr@input@library=\gtr@input@library@ex% diff --git a/Master/texmf-dist/tex/latex/genealogytree/gtrcore.debug.code.tex b/Master/texmf-dist/tex/latex/genealogytree/gtrcore.debug.code.tex new file mode 100644 index 00000000000..47f7807ef82 --- /dev/null +++ b/Master/texmf-dist/tex/latex/genealogytree/gtrcore.debug.code.tex @@ -0,0 +1,134 @@ +%% The LaTeX package genealogytree - version 0.10 (2015/01/12) +%% gtrcore.debug.code.tex: Debugger +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2014-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\gtr@set@library@version{0.10} + +\definecolorseries{gtr@debug}{rgb}{grad}[rgb]{.95,.85,.55}{3,11,17} +\resetcolorseries[16]{gtr@debug} + +\def\gtr@debug@colorletfamily#1{% + \pgfmathsetmacro\gtr@temp@col{int(Mod(\csuse{gtr@fam@\gtr@currentfamily @debugnum},16)+1)}% + \colorlet{#1}{gtr@debug!![\gtr@temp@col]}% +} + +\def\gtr@debug@setleveldistance#1{% + \pgfmathsetmacro#1{-(\gtrkv@debug@markerleft-\gtrkv@debug@markerright)*e^(-abs(\number\gtr@c@level)/4)-\gtrkv@debug@markerright}% +} + +\tcbset{% + gtr@debug@box/.style={enhanced,beforeafter skip=0pt,flushleft upper, + boxrule=0.25mm,leftrule=5mm,colframe=gtr@debug@color, + arc=5mm,boxsep=0pt,top=1mm,bottom=1mm}, + debug marker left/.store in=\gtrkv@debug@markerleft, + debug marker right/.store in=\gtrkv@debug@markerright, + debug marker left=1.3cm, + debug marker right=0.3cm, +} + +\def\gtr@debug@person@content#1#2#3#4{% + \gtr@debug@colorletfamily{gtr@debug@color}% + \begin{tcolorbox}[gtr@debug@box,sharp corners=west, + interior style={top color=gtr@debug@color!30!white,bottom color=gray!10!white}, + overlay={\node[fill=gtr@debug@color!10!white,draw=black] at ([xshift=2.5mm]frame.west) {\small #1};}] + #2: Individual~\gtr@currentperson~(\number\gtr@c@pid), + Family~\gtr@currentfamily~(\csuse{gtr@fam@\gtr@currentfamily @debugnum}), + Level~\number\gtr@c@level% + \ifblank{#3}{}{\par Options: {\ttfamily\detokenize{#3}}}% + \par Content: {\ttfamily\detokenize{#4}}% + \end{tcolorbox}% +} + +\def\gtr@debug@family@begin#1#2{% + \gtr@debug@colorletfamily{gtr@debug@color}% + \begin{tcolorbox}[gtr@debug@box,rightrule=5mm,sharp corners, + colback=gtr@debug@color!30!white, + overlay={% + \gtr@debug@setleveldistance{\gtr@temp}% + \path[draw=gtr@debug@color,very thick,->] (frame.west) -- ++(\gtr@temp pt,0) -- ++(0,-0.5); + }]% + Start: #1 Family~{\csuse{gtr@fam@\gtr@currentfamily @debugnum}} (\gtr@currentfamily), Level~\number\gtr@c@level + \ifblank{#2}{}{\par Options: {\ttfamily\detokenize{#2}}}% + \end{tcolorbox}% +} + +\def\gtr@debug@family@end#1{% + \gtr@debug@colorletfamily{gtr@debug@color}% + \begin{tcolorbox}[gtr@debug@box,rightrule=5mm,sharp corners, + colback=gtr@debug@color!30!white, + overlay={% + \gtr@debug@setleveldistance{\gtr@temp}% + \path[draw=gtr@debug@color,very thick,->] (frame.west) -- ++(\gtr@temp pt,0) -- ++(0,0.5); + }]% + End: #1 Family~{\csuse{gtr@fam@\gtr@currentfamily @debugnum}} (\gtr@currentfamily), Level~\number\gtr@c@level + \end{tcolorbox}% +} + +\newcommand{\gtrparserdebug}[2][]{% + \begingroup% + \parskip0pt% + % + \appto\gtr@next@family{\csedef{gtr@fam@\gtr@currentfamily @debugnum}{\number\gtr@c@family}}% + % + \let\gtr@org@@parse@err=\gtr@parse@err% + \let\gtr@org@@parse@error=\gtr@parse@error% + \let\gtr@org@@parse@error@token=\gtr@parse@error@token% + \def\gtr@parse@err{% + \fbox{\textbf{Parser error}}% + \gtr@org@@parse@err}% + \long\def\gtr@parse@error##1{% + \fbox{\textbf{Parser: undefined ##1}}% + \gtr@org@@parse@error{##1}}% + \long\def\gtr@parse@error@token{% + \fbox{\textbf{Parser: unfeasible token '\@gtr@token'}}% + \gtr@org@@parse@error@token}% + % + \def\gtr@proc@@parent@begin##1{\gtr@debug@family@begin{Parent}{##1}}% + \def\gtr@proc@@child@begin##1{\gtr@debug@family@begin{Child}{##1}}% + \def\gtr@proc@@union@begin##1{\gtr@debug@family@begin{Union}{##1}}% + \def\gtr@proc@@sandclock@begin##1{\gtr@debug@family@begin{Sandclock}{##1}}% + % + \def\gtr@proc@@parent@end{\gtr@debug@family@end{Parent}}% + \def\gtr@proc@@child@end{\gtr@debug@family@end{Child}}% + \def\gtr@proc@@union@end{\gtr@debug@family@end{Union}}% + \def\gtr@proc@@sandclock@end{\gtr@debug@family@end{Sandclock}}% + % + \long\def\gtr@proc@@parent@g@content##1##2{\gtr@debug@person@content{g}{Child}{##1}{##2}}% + \long\def\gtr@proc@@child@g@content##1##2{\gtr@debug@person@content{g}{Parent}{##1}{##2}}% + \long\def\gtr@proc@@p@content##1##2{\gtr@debug@person@content{p}{Parent}{##1}{##2}}% + \long\def\gtr@proc@@c@content##1##2{\gtr@debug@person@content{c}{Child}{##1}{##2}}% + % + \def\gtr@positioning{}% + % + \colorlet{gtr@debug@color}{black!75!white}% + \begin{tcolorbox}[gtr@debug@box,before skip=\medskipamount, + sharp corners,toprule=1mm,rightrule=5mm] + Genealogytree Parser Debugger + \ifblank{#1}{}{\par Graph Options: {\ttfamily\detokenize{#1}}}% + \end{tcolorbox}% + \gtr@parsegraph[#1]{#2}% + \begin{tcolorbox}[ + gtr@debug@box,after skip=\medskipamount,sharp corners,colframe=black!75!white, + bottomrule=1mm,rightrule=5mm] + End of Genealogytree Parser Debugger + \end{tcolorbox}% + \endgroup% +} + +\newcommand{\gtrparserdebuginput}[2][]{% + \gtrparserdebug[#1]{input{#2}}} diff --git a/Master/texmf-dist/tex/latex/genealogytree/gtrcore.options.code.tex b/Master/texmf-dist/tex/latex/genealogytree/gtrcore.options.code.tex new file mode 100644 index 00000000000..5045d286944 --- /dev/null +++ b/Master/texmf-dist/tex/latex/genealogytree/gtrcore.options.code.tex @@ -0,0 +1,84 @@ +%% The LaTeX package genealogytree - version 0.10 (2015/01/12) +%% gtrcore.options.code.tex: Options +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2013-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\gtr@set@library@version{0.10} + +%%%%%%%%%%%%%%%%%%%%%%% +%% Key Management +%%%%%%%%%%%%%%%%%%%%%%% + +\newif\ifgtr@timeflow@vertical + +\def\gtr@init@timeflow@down{% + \gtr@timeflow@verticaltrue% + \let\gtrkv@node@minwidth=\gtrkv@node@minsize% + \let\gtrkv@node@maxwidth=\gtrkv@node@maxsize% + \let\gtrkv@node@minheigth=\gtrkv@level@size% + \let\gtrkv@node@maxheigth=\gtrkv@level@size% +} + +\let\gtr@init@timeflow@up=\gtr@init@timeflow@down + +\def\gtr@init@timeflow@left{% + \gtr@timeflow@verticalfalse% + \let\gtrkv@node@minwidth=\gtrkv@level@size% + \let\gtrkv@node@maxwidth=\gtrkv@level@size% + \let\gtrkv@node@minheigth=\gtrkv@node@minsize% + \let\gtrkv@node@maxheigth=\gtrkv@node@maxsize% +} + +\let\gtr@init@timeflow@right=\gtr@init@timeflow@left + + +\gtrset{% + child distance in parent graph/.store in=\gtrkv@dist@sibling@par,% + child distance in child graph/.store in=\gtrkv@dist@sibling@chi,% + parent distance in parent graph/.store in=\gtrkv@dist@parent@par,% + parent distance in child graph/.store in=\gtrkv@dist@parent@chi,% + further distance/.store in=\gtrkv@dist@further,% + % + child distance/.style={child distance in parent graph=#1,child distance in child graph=#1},% + parent distance/.style={parent distance in parent graph=#1,parent distance in child graph=#1},% + % + level/.style=, +} + +\gtrset{% + timeflow/.store in=\gtrkv@timeflow, + level distance/.store in=\gtrkv@level@distance, + level size/.store in=\gtrkv@level@size, + node sizes/.code args={#1~#2}{\def\gtrkv@node@minsize{#1}\def\gtrkv@node@maxsize{#2}}, + node size/.style={node sizes=#1~#1},% + proband level/.store in=\gtrkv@proband@level, + tree offset/.store in=\gtrkv@tree@offset, +} + +\gtrset{% + timeflow=down, + level distance=5mm, + level size=3.5cm, + node size=2.5cm, + proband level=0, + tree offset=0pt, + child distance in parent graph=1mm,% + child distance in child graph=2mm,% + parent distance in parent graph=2mm,% + parent distance in child graph=1mm,% + further distance=3mm,% +} diff --git a/Master/texmf-dist/tex/latex/genealogytree/gtrcore.parser.code.tex b/Master/texmf-dist/tex/latex/genealogytree/gtrcore.parser.code.tex new file mode 100644 index 00000000000..36f83a328a0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/genealogytree/gtrcore.parser.code.tex @@ -0,0 +1,520 @@ +%% The LaTeX package genealogytree - version 0.10 (2015/01/12) +%% gtrcore.parser.code.tex: Parser +%% +%% ------------------------------------------------------------------------------------------- +%% Copyright (c) 2013-2015 by Prof. Dr. Dr. Thomas F. Sturm <thomas dot sturm at unibw dot de> +%% ------------------------------------------------------------------------------------------- +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `author-maintained'. +%% +%% This work consists of all files listed in README +%% +\gtr@set@library@version{0.10} + +%% (local) stack implementation +\def\gtrnewstack#1{% + \csedef{gtr@stack@#1@size}{0}% +} + +\def\gtrstacksize#1{% + \csname gtr@stack@#1@size\endcsname% +} + +\def\gtrstackpush#1#2{% + \count@\gtrstacksize{#1}% + \advance\count@ 1\relax% + \csedef{gtr@stack@#1@size}{\number\count@}% + \csedef{gtr@stack@#1@\romannumeral\count@}{#2}% +} + +\def\gtrstackpopto#1#2{% + \count@\gtrstacksize{#1}% + \edef#2{\csname gtr@stack@#1@\romannumeral\count@\endcsname}% + \advance\count@ -1\relax% + \csedef{gtr@stack@#1@size}{\number\count@}% +} + +\def\gtrstackpop#1{% + \count@\gtrstacksize{#1}% + \csname gtr@stack@#1@\romannumeral\count@\endcsname% + \advance\count@ -1\relax% + \csedef{gtr@stack@#1@size}{\number\count@}% +} + +\def\gtrstackpeekto#1#2{% + \count@\gtrstacksize{#1}% + \edef#2{\csname gtr@stack@#1@\romannumeral\count@\endcsname}% +} + +\def\gtrstackpeek#1{% + \count@\gtrstacksize{#1}% + \csname gtr@stack@#1@\romannumeral\count@\endcsname% +} + +\def\gtrmakestack#1{% + \gtrnewstack{#1}% + \csdef{#1size}{\gtrstacksize{#1}}% + \csdef{#1push}{\gtrstackpush{#1}}% + \csdef{#1popto}{\gtrstackpopto{#1}}% + \csdef{#1pop}{\gtrstackpop{#1}}% + \csdef{#1peekto}{\gtrstackpeekto{#1}}% + \csdef{#1peek}{\gtrstackpeek{#1}}% +} + + +%%%%%%%%%%%%%%%%%%%%%%% +%% Main Parser +%%%%%%%%%%%%%%%%%%%%%%% + +\newcount\gtr@c@level% +\newcount\gtr@c@family% +\newcount\gtr@c@pid% + +\gtrmakestack{gtr@famstack@}% +\gtrmakestack{gtr@levelstack@}% + +\gtr@c@family\z@\relax%---- reset ? +\gtr@c@pid\z@\relax%%---- reset ? + +\def\gtr@level@argument@reset{% + \dimdef\gtr@rv@level@distance{\gtrkv@level@distance}% + \dimdef\gtr@rv@level@size{\gtrkv@level@size}% + \dimdef\gtr@rv@node@minsize{\gtrkv@node@minsize}% + \dimdef\gtr@rv@node@maxsize{\gtrkv@node@maxsize}% + \dimdef\gtr@rv@dist@sibling@par{\gtrkv@dist@sibling@par}% + \dimdef\gtr@rv@dist@sibling@chi{\gtrkv@dist@sibling@chi}% + \dimdef\gtr@rv@dist@parent@par{\gtrkv@dist@parent@par}% + \dimdef\gtr@rv@dist@parent@chi{\gtrkv@dist@parent@chi}% + \dimdef\gtr@rv@dist@further{\gtrkv@dist@further}% + \let\gtr@rv@tcboptions\gtrkv@tcboptions% +} + + +\def\gtr@level@argument@set{% + \let\gtrkv@level@distance\gtr@rv@level@distance% + \let\gtrkv@level@size\gtr@rv@level@size% + \let\gtrkv@node@minsize\gtr@rv@node@minsize% + \let\gtrkv@node@maxsize\gtr@rv@node@maxsize% + \let\gtrkv@dist@sibling@par\gtr@rv@dist@sibling@par% + \let\gtrkv@dist@sibling@chi\gtr@rv@dist@sibling@chi% + \let\gtrkv@dist@parent@par\gtr@rv@dist@parent@par% + \let\gtrkv@dist@parent@chi\gtr@rv@dist@parent@chi% + \let\gtrkv@dist@further\gtr@rv@dist@further% + \let\gtrkv@tcboptions\gtr@rv@tcboptions% + % + \gtrset{level=\number\gtr@c@level}% + \pgfkeysifdefined{/gtr/level \number\gtr@c@level/.@cmd}{% + \gtrset{level \number\gtr@c@level}% + }{% + }% + \gtr@init@leveldimens% +} + +\newcommand{\gtr@parsegraph}[2][]{% + \gtrset{#1}% + % + \let\gtr@timeflow=\gtrkv@timeflow% + \letcs\gtr@init@leveldimens{gtr@init@timeflow@\gtr@timeflow}% + \letcs\gtr@set@level@position{gtr@set@level@position@\gtr@timeflow}% + \letcs\gtr@set@position@family{gtr@set@position@family@\gtr@timeflow}% + % + \edef\gtr@level@reference{0pt}% + \gtr@level@argument@reset% + \gtr@set@level{\gtrkv@proband@level}% + \let\gtr@currentfamily=\@undefined% + \numdef\gtr@num@fam@first{\gtr@c@family+1}% + \numdef\gtr@num@per@first{\gtr@c@pid+1}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@graph}#2x% + \numdef\gtr@num@fam@last{\gtr@c@family}% + \numdef\gtr@num@per@last{\gtr@c@pid}% + \edef\gtr@temp{\romannumeral\number\gtr@num@fam@first}% + \csdimdef{gtr@fam@\gtr@temp @offset}{\gtrkv@tree@offset}% + \gtr@positioning% +} + +\def\gtr@parse@graphwithhandle#1{% + \let\gtr@handle@continue=#1% + \gtr@parse@graph% +} + +\def\gtr@parse@graph{% + \afterassignment\gtr@handle@graph\let\@gtr@token=% +} + +\def\gtr@handle@graph{% + \let\@next=\gtr@parse@error@token% + \ifx\@gtr@token x% + \let\@next=\gtr@parse@x% + \else% + \expandafter\ifx\space\@gtr@token% + \let\@next\gtr@parse@graph% + \else% + \ifx\@gtr@token i% + \let\@next\gtr@parse@input@% + \else% + \gtr@handle@continue% + \fi% + \fi% + \fi% + \@next% +} + +\def\gtr@handle@continue@graph{% + \ifx\@gtr@token p% + \let\gtr@handle@continue\gtr@handle@continue@parent% + \let\@next=\gtr@parse@graph@parent@% + \else% + \ifx\@gtr@token c% + \let\gtr@handle@continue\gtr@handle@continue@child% + \let\@next=\gtr@parse@graph@child@% + \else% + \ifx\@gtr@token s% + \let\gtr@handle@continue\gtr@handle@continue@sandclock% + \let\@next=\gtr@parse@graph@sandclock@% + \fi% + \fi% + \fi% +} + + +\def\gtr@parse@graph@parent@ arent{\@ifnextchar[{\gtr@parent@@parent}{\gtr@parent@@parent[]}} + +\def\gtr@parse@graph@child@ hild{% + \gtr@up@level% + \dimdef\gtr@level@reference{\gtr@level@reference+\gtrkv@level@size+\gtrkv@level@distance}% + \@ifnextchar[{\gtr@child@@child}{\gtr@child@@child[]}} + +\def\gtr@parse@graph@sandclock@ andclock{\@ifnextchar[{\gtr@sandclock@@}{\gtr@sandclock@@[]}} + +\def\gtr@parse@input@ nput#1{\expandafter\expandafter\expandafter \gtr@parse@graph \csname @@input\endcsname #1 } + +\def\gtr@parse@x{} + +\def\gtr@parse@err{% + \gtr@error{Parser error}% +} + +\def\gtr@parse@error@token{% + \show\@gtr@token + \gtr@error{Parser: unfeasible token}% +} + +\long\def\gtr@parse@error#1{% + \gtr@error{Parser: undefined #1}% +} + + +%%%%%%%%%%%%%%%%%%%%%%% +%% Parent Parser +%%%%%%%%%%%%%%%%%%%%%%% + +\def\gtr@handle@continue@parent{% + \ifx\@gtr@token g% + \let\@next=\gtr@pparse@g% + \else% + \ifx\@gtr@token p% + \let\@next=\gtr@pparse@p% + \else + \ifx\@gtr@token c% + \let\@next=\gtr@pparse@c% + \fi% + \fi% + \fi% +} + +\def\gtr@pparse@c{\@ifnextchar[{\gtr@parent@@c}{\gtr@parent@@c[]}} +\long\def\gtr@parent@@c[#1]#2{% + \gtr@trav@@c[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@parent}% +} + +\def\gtr@pparse@p{% + \@ifnextchar a{\gtr@pparse@parent@}{\gtr@pparse@p@}} +\def\gtr@pparse@parent@ arent{\@ifnextchar[{\gtr@parent@@parent}{\gtr@parent@@parent[]}} +\long\def\gtr@parent@@parent[#1]#2{% + \gtr@trav@@parent[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@parent}% +} +\def\gtr@pparse@p@{\@ifnextchar[{\gtr@parent@@p}{\gtr@parent@@p[]}} +\long\def\gtr@parent@@p[#1]#2{% + \gtr@trav@@p[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@parent}% +} + +\def\gtr@pparse@g{\@ifnextchar[{\gtr@parent@@g}{\gtr@parent@@g[]}} +\long\def\gtr@parent@@g[#1]#2{% + \gtr@trav@@parent@g[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@parent}% +} + + +%%%%%%%%%%%%%%%%%%%%%%% +%% Child Parser +%%%%%%%%%%%%%%%%%%%%%%% + +\def\gtr@handle@continue@child{% + \ifx\@gtr@token g% + \let\@next=\gtr@cparse@g% + \else% + \ifx\@gtr@token p% + \let\@next=\gtr@cparse@p% + \else + \ifx\@gtr@token c% + \let\@next=\gtr@cparse@c% + \else + \ifx\@gtr@token u% + \let\@next=\gtr@cparse@u% + \fi + \fi% + \fi% + \fi% +} + + +\def\gtr@cparse@p{\@ifnextchar[{\gtr@child@@p}{\gtr@child@@p[]}} +\long\def\gtr@child@@p[#1]#2{% + \gtr@trav@@p[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@child}% +} + +\def\gtr@cparse@c{% + \@ifnextchar h{\gtr@cparse@child@}{\gtr@cparse@c@}} +\def\gtr@cparse@child@ hild{\@ifnextchar[{\gtr@child@@child}{\gtr@child@@child[]}} +\long\def\gtr@child@@child[#1]#2{% + \gtr@trav@@child[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@child}% +} +\def\gtr@cparse@c@{\@ifnextchar[{\gtr@child@@c}{\gtr@child@@c[]}} +\long\def\gtr@child@@c[#1]#2{% + \gtr@trav@@c[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@child}% +} + +\def\gtr@cparse@u nion{\@ifnextchar[{\gtr@child@@union}{\gtr@child@@union[]}} +\long\def\gtr@child@@union[#1]#2{% + \gtr@trav@@union[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@child}% +} + +\def\gtr@cparse@g{\@ifnextchar[{\gtr@child@@g}{\gtr@child@@g[]}} +\long\def\gtr@child@@g[#1]#2{% + \gtr@trav@@child@g[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@child}% +} + + +%%%%%%%%%%%%%%%%%%%%%%% +%% Union Parser +%%%%%%%%%%%%%%%%%%%%%%% + +\def\gtr@handle@continue@union{% + \ifx\@gtr@token c% + \let\@next=\gtr@uparse@c% + \else% + \ifx\@gtr@token p% + \let\@next=\gtr@uparse@p% + \fi% + \fi% +} + +\def\gtr@uparse@c{% + \@ifnextchar h{\gtr@uparse@child@}{\gtr@uparse@c@}} +\def\gtr@uparse@child@ hild{\@ifnextchar[{\gtr@union@@child}{\gtr@union@@child[]}} +\long\def\gtr@union@@child[#1]#2{% + \let\gtr@handle@continue\gtr@handle@continue@child% + \gtr@trav@@child[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@union}% +} +\def\gtr@uparse@c@{\@ifnextchar[{\gtr@union@@c}{\gtr@union@@c[]}} +\long\def\gtr@union@@c[#1]#2{% + \gtr@trav@@c[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@union}% +} + +\def\gtr@uparse@p{\@ifnextchar[{\gtr@union@@p}{\gtr@union@@p[]}} +\long\def\gtr@union@@p[#1]#2{% + \gtr@trav@@p[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@union}% +} + + +%%%%%%%%%%%%%%%%%%%%%%% +%% Sandclock Parser +%%%%%%%%%%%%%%%%%%%%%%% + +\def\gtr@handle@continue@sandclock{% + \ifx\@gtr@token c% + \let\@next=\gtr@sparse@c% + \else% + \ifx\@gtr@token p% + \let\@next=\gtr@sparse@p% + \fi% + \fi% +} + + +\long\def\gtr@sandclock@@[#1]#2{% + \gtr@trav@@sandclock[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@graph}% +} + +\def\gtr@sparse@c{% + \@ifnextchar h{\gtr@sparse@child@}{\gtr@sparse@c@}} +\def\gtr@sparse@child@ hild{\@ifnextchar[{\gtr@sandclock@@child}{\gtr@sandclock@@child[]}} +\long\def\gtr@sandclock@@child[#1]#2{% + \gtr@trav@@child[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@sandclock}% +} +\def\gtr@sparse@c@{\@ifnextchar[{\gtr@sandclock@@c}{\gtr@sandclock@@c[]}} +\long\def\gtr@sandclock@@c[#1]#2{% + \gtr@trav@@c[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@sandclock}% +} + +\def\gtr@sparse@p{% + \@ifnextchar a{\gtr@sparse@parent@}{\gtr@sparse@p@}} +\def\gtr@sparse@parent@ arent{\@ifnextchar[{\gtr@sandclock@@parent}{\gtr@sandclock@@parent[]}} +\long\def\gtr@sandclock@@parent[#1]#2{% + \gtr@trav@@parent[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@sandclock}% +} +\def\gtr@sparse@p@{\@ifnextchar[{\gtr@sandclock@@p}{\gtr@sandclock@@p[]}} +\long\def\gtr@sandclock@@p[#1]#2{% + \gtr@trav@@p[#1]{#2}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@sandclock}% +} + + +%%%%%%%%%%%%%%%%%%%%%%% +%% Traversing +%%%%%%%%%%%%%%%%%%%%%%% + +\def\gtr@next@family{% + \ifdef{\gtr@currentfamily}{\gtr@famstack@push{\gtr@currentfamily}}{}% + \advance\gtr@c@family 1\relax% + \edef\gtr@currentfamily{\romannumeral\gtr@c@family}% +} + +\def\gtr@previous@family{% + \ifnum\gtr@famstack@size>0% + \gtr@famstack@popto{\gtr@currentfamily}% + \else% + \let\gtr@currentfamily=\@undefined% + \fi% +} + +\def\gtr@next@person{% + \advance\gtr@c@pid 1\relax% + \edef\gtr@currentperson{\romannumeral\gtr@c@pid}% +} + +\def\gtr@set@level#1{% + \gtr@c@level#1\relax% + \edef\gtr@currentlevel{\romannumeral\numexpr 1000+\gtr@c@level\relax}% + \gtr@level@argument@set% +} + +\def\gtr@up@level{% + \advance\gtr@c@level 1\relax% + \edef\gtr@currentlevel{\romannumeral\numexpr 1000+\gtr@c@level\relax}% + \gtr@level@argument@set% +} + +\def\gtr@up@level@push{% + \gtr@levelstack@push{\gtr@level@reference}% + \gtr@up@level% + \dimdef\gtr@level@reference{\gtr@level@reference+\gtrkv@level@size+\gtrkv@level@distance}% +} + +\def\gtr@up@level@pop{% + \gtr@up@level% + \gtr@levelstack@popto{\gtr@level@reference}% +} + +\def\gtr@down@level{% + \advance\gtr@c@level -1\relax% + \edef\gtr@currentlevel{\romannumeral\numexpr 1000+\gtr@c@level\relax}% + \gtr@level@argument@set% +} + +\def\gtr@down@level@push{% + \gtr@levelstack@push{\gtr@level@reference}% + \dimdef\gtr@level@reference{\gtr@level@reference-\gtrkv@level@size-\gtrkv@level@distance}% + \gtr@down@level% +} + +\def\gtr@down@level@pop{% + \gtr@down@level% + \gtr@levelstack@popto{\gtr@level@reference}% +} + +\long\def\gtr@trav@@parent[#1]#2{% + \gtr@up@level@push% + \gtr@next@family% + \gtr@proc@@parent@begin{#1}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@parent}#2x% + \gtr@proc@@parent@end% + \gtr@previous@family% + \gtr@down@level@pop% +} + +\long\def\gtr@trav@@child[#1]#2{% + \gtr@down@level@push% + \gtr@next@family% + \gtr@proc@@child@begin{#1}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@child}#2x% + \gtr@proc@@child@end% + \gtr@previous@family% + \gtr@up@level@pop% +} + +\long\def\gtr@trav@@sandclock[#1]#2{% + \gtr@up@level@push% + \gtr@next@family% + \gtr@proc@@sandclock@begin{#1}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@sandclock}#2x% + \gtr@proc@@sandclock@end% + \gtr@previous@family% + \gtr@down@level@pop% +} + +\long\def\gtr@trav@@union[#1]#2{% + \gtr@next@family% + \gtr@proc@@union@begin{#1}% + \gtr@parse@graphwithhandle{\gtr@handle@continue@union}#2x% + \gtr@proc@@union@end% + \gtr@previous@family% +} + +\long\def\gtr@trav@@parent@g[#1]#2{% + \gtr@down@level@push% + \gtr@next@person% + \gtr@proc@@parent@g@content{#1}{#2}% + \gtr@up@level@pop% +} + +\long\def\gtr@trav@@child@g[#1]#2{% + \gtr@next@person% + \gtr@proc@@child@g@content{#1}{#2}% +} + +\long\def\gtr@trav@@p[#1]#2{% + \gtr@next@person% + \gtr@proc@@p@content{#1}{#2}% +} + +\long\def\gtr@trav@@c[#1]#2{% + \gtr@down@level@push% + \gtr@next@person% + \gtr@proc@@c@content{#1}{#2}% + \gtr@up@level@pop% +} + diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index 411923eaa1b..9c012babe5b 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -228,7 +228,7 @@ my @TLP_working = qw( fullblck fullminipage fullwidth functan fundus-calligra fundus-cyr fundus-sueterlin fwlw g-brief gaceta galois gamebook garrigues gastex gatech-thesis gates gauss - gb4e gcard gchords gcite geschichtsfrkl genealogy gene-logic + gb4e gcard gchords gcite geschichtsfrkl genealogy genealogytree gene-logic genmisc genmpage gentium-tug gentle geometry geometry-de german germbib germkorr getfiledate getmap getoptk gfsartemisia gfsbaskerville gfsbodoni gfscomplutum gfsdidot gfsneohellenic diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds index 5eaafac2310..efe0001d2f6 100755 --- a/Master/tlpkg/libexec/ctan2tds +++ b/Master/tlpkg/libexec/ctan2tds @@ -1467,6 +1467,7 @@ $standardtex='\.(.bx|cfg|sty|clo|ldf|cls|def|fd|fontspec|cmap|4ht)$'; 'frame', 'frame\.tex|' . $standardtex, 'frankenstein','\.(sto|stq)|' . $standardtex, 'gates', '\.lua|gates.tex|' . $standardtex, # both t-gates and gates + 'genealogytree','code\.tex|' . $standardtex, 'genmisc', '\.sty|\.tex', 'geometry', '\.sty|\.clo|\.ldf|\.cls|\.def|\.fd$', # not cfg 'geometry-de', 'NULL', # all doc diff --git a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc index c555998620a..5662a381b55 100644 --- a/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-pictures.tlpsrc @@ -41,6 +41,7 @@ depend fast-diagram depend fig4latex depend flowchart depend forest +depend genealogytree depend getmap depend gincltex depend gnuplottex diff --git a/Master/tlpkg/tlpsrc/genealogytree.tlpsrc b/Master/tlpkg/tlpsrc/genealogytree.tlpsrc new file mode 100644 index 00000000000..e69de29bb2d --- /dev/null +++ b/Master/tlpkg/tlpsrc/genealogytree.tlpsrc |