From cb51070cdcdf938cfd89b52c020439e7c8749633 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 21 Feb 2017 00:30:51 +0000 Subject: gtrlib-largetrees (19feb17) git-svn-id: svn://tug.org/texlive/trunk@43279 c570f23f-e606-0410-a88d-b1316a301751 --- .../gtrlib-largetrees/gtrlib.largetrees.code.tex | 147 +++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/gtrlib-largetrees/gtrlib.largetrees.code.tex (limited to 'Master/texmf-dist/tex/latex/gtrlib-largetrees/gtrlib.largetrees.code.tex') diff --git a/Master/texmf-dist/tex/latex/gtrlib-largetrees/gtrlib.largetrees.code.tex b/Master/texmf-dist/tex/latex/gtrlib-largetrees/gtrlib.largetrees.code.tex new file mode 100644 index 00000000000..37355177598 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gtrlib-largetrees/gtrlib.largetrees.code.tex @@ -0,0 +1,147 @@ +%% +%% This is file `gtrlib.largetrees.code.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% gtrlib.largetrees.dtx (with options: `gtrlib') +%% +%% Copyright (C) 2015-2017 by Richard Gay +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.2 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.2 or later is part of all distributions of LaTeX version +%% 1999/12/01 or later. +%% +\RequirePackage{etoolbox} +\gtr@db@new@store{spouse} +\gtr@db@new@event@store{spousebirth} +\gtr@db@new@event@store{spousedeath} +\def\gtrifspousedefined#1#2{\ifdefvoid{\gtrDBspouse}{#2}{#1}} +\newcommand\gtrPrintSpouse{\gtrDBspouse} +\newcommand\gtrPrintSpouseDetails{% + \gtrPrintSpouse + \begin{gtrprintlist}{\unskip\ (}{\unskip,\ }{\unskip)}{\unskip}% + \gtrifeventdefined{spousebirth}% + {\gtrlistseparator\gtrPrintEventPrefix{birth}\,% + \gtrPrintDate{spousebirth}}% + {}% + \gtrifeventdefined{spousedeath}% + {\gtrlistseparator\gtrPrintEventPrefix{death}\,% + \gtrPrintDate{spousedeath}}% + {}% + \end{gtrprintlist}} +\gtrset{% + database/children/.code n args={2}{% + \numdef\gtrDBchildren{#1+#2}% + \def\gtrDBdaughters{#1}% + \def\gtrDBsons{#2}},% + database/children-/.store in=\gtrDBchildren, + database/children+/.store in=\gtrDBchildren, +} +\def\gtrifchildrendefined#1#2{\ifdefvoid{\gtrDBchildren}{#2}{#1}} +\def\gtrPrintChildren{% + \gtrTranslatedChildren: + \ifdefvoid{\gtrDBdaughters}% + {\gtrDBchildren}% + {\gtrDBdaughters\kern0.5pt\gtrsymFemale~% + \gtrDBsons\kern0.5pt\gtrsymMale}} +\gtrset{% + sparse display/.style={node processor=\gtrltSparseNodeProcessor}, + sparse node size from/.code args={#1 to #2}{% + \dimdef\gtr@@kv@@gtrlt@sparsenode@minsize{#1}% + \dimdef\gtr@@kv@@gtrlt@sparsenode@maxsize{#2}}, + sparse max fields/.code={% + \gdef\gtrlt@sparse@maxfields{#1}},% + sparse inner from level/.code={\def\gtrlt@sparseinner@level{#1}}, + sparse leaf from level/.code={\def\gtrlt@sparseleaf@level{#1}}, + sparse inner never/.code={\undef\gtrlt@sparseinner@level}, +} +\gtr@proc@register@level@local{\gtrlt@sparsenode@minsize} +\gtr@proc@register@level@local{\gtrlt@sparsenode@maxsize} +\newcommand\gtrltSparseNodeProcessor{% + \gtrltIfSparseEnabled{\gtrltIfSparse{% + \let\gtrNodeMinWidth=\gtrlt@sparsenode@minsize% + \let\gtrNodeMaxWidth=\gtrlt@sparsenode@maxsize% + \gtrkeysappto\gtrNodeBoxOptions{% + rotate=90,gtrNodeDimensionsLandscape,% + }% + }{}}{}% + \csuse{gtr@boxcontent@fit}} +\newcommand\gtrltIfSparseEnabled{% + \gtrifleaf + {\ifdef\gtrlt@sparseleaf@level% + {\ifnumgreater{1+\gtrnodelevel}{\gtrlt@sparseleaf@level}}% + {\@firstoftwo}}% + {\ifdef\gtrlt@sparseinner@level% + {\ifnumgreater{1+\gtrnodelevel}{\gtrlt@sparseinner@level}}% + {\@secondoftwo}}} +\newcount\gtrltFieldCount +\newcommand\gtrltIfSparse{% + \gtrltFieldCount=0\relax + \gtrltCountDatabaseFields + \advance\gtrltFieldCount by-1\relax% + \ifnumless{\the\gtrltFieldCount}{\gtrlt@sparse@maxfields}} +\newcommand\gtrltDeclareFieldCount[2]{% + \gtrset{database format/#1/.append code={% + \def\gtrltCountDatabaseFields{#2}}}} +\newcommand\gtrltFieldCountByConditionals[1]{% + \def\do##1{% + ##1{\advance\gtrltFieldCount by1\relax}{}}% + \gtrltFieldCount=0\relax + \docsvlist{#1}} +\gtrDeclareDatabaseFormat{person marriage children profession}{}{% + \gtrPrintName% + \begin{gtreventlist}% + \gtr@list@event@birth% + \gtr@list@event@death% + \end{gtreventlist}% + \gtrifcommentdefined{\gtrPrintComment}{}% + \gtr@ifmarriagedefined{\tcbline + \begin{gtreventlist} + \gtr@list@event@marriage + \gtrifspousedefined{ + \gtrTranslatedWith\ \gtrPrintSpouseDetails}{}% + \gtrifchildrendefined{, \gtrPrintChildren}{}% + \end{gtreventlist}}{% + \gtrifchildrendefined{\tcbline\gtrPrintChildren}{}}% + \gtrifprofessiondefined{\tcbline\gtrPrintProfession}{}% +} +\gtrltDeclareFieldCount{person marriage children profession}{% + \gtrltFieldCountByConditionals{% + \gtrifeventdefined{birth}, + \gtrifeventdefined{death}, + \gtrifeventdefined{marriage}, + \gtrifcommentdefined, + \gtrifspousedefined, + \gtrifchildrendefined, + \gtrifprofessiondefined, + }} +\newcommand\gtrlt@texttranslation@add[1]{% + \begingroup\edef\x{\endgroup\noexpand\gtrset{% + textlang/#1/.store in=\expandonce{% + \csname gtrTranslated#1\endcsname}}}\x} +\gtrlt@texttranslation@add{Children} +\gtrlt@texttranslation@add{With} +\AtBeginDocument{ + \gtrset{language@/english/.append code={% + \gtrset{textlang/.cd, + Children=children, + With=with, + } + }} + \gtrset{language@/german/.append code={% + \gtrset{textlang/.cd, + Children=Kinder, + With=mit, + } + }} + \gtrset{language=\gtrlanguagename}} +\endinput +%% +%% End of file `gtrlib.largetrees.code.tex'. -- cgit v1.2.3