T-F-S / genealogytree

pedigree and genealogy tree diagrams
LaTeX Project Public License v1.3c
47 stars 7 forks source link

Overlapping family lines even without childless families #37

Open torfsen opened 3 years ago

torfsen commented 3 years ago

The following is an extract from a larger tree of mine:

\documentclass{article}
\usepackage[a0paper]{geometry}
\usepackage{lmodern}
\usepackage[all]{genealogytree}

\begin{document}
    \begin{genealogypicture}[
        template=database pole,
        insert phantom for childless families,
    ]
        sandclock{
            parent{
                parent{
                    parent{
                        g{name={A01}}
                        c{name={A02}}
                        c{name={A03}}
                        c{name={A04}}
                        c{name={A05}}
                        c{name={A06}}
                        c{name={A07}}
                        c{name={A08}}
                        c{name={A09}}
                        c{name={A10}}
                        c{name={A11}}
                    }
                    p{name={B01}}
                    g{name={D01}}
                }
                parent{
                    p{name={C01}}
                    p{name={C02}}
                    g{name={E01}}
                }
                g{name={G01}}
                c{name={G02}}
                c{name={G03}}
                c{name={G04}}
                c{name={G05}}
                c{name={G06}}
            }
            parent{
                p{name={F01}}
                p{name={F02}}
                g{name={H01}}
                c{name={H02}}
                c{name={H03}}
                c{name={H04}}
                c{name={H05}}
                c{name={H06}}
            }
            c{name={I01}}
        }
    \end{genealogypicture}
\end{document}

For me, this renders as follows: image

The lines for the G and H families overlap. If I comment out A02 (for example) then it renders as expected: image

I'm aware of #34, but my example doesn't have any childless families. I've added insert phantom for childless families nevertheless, but as expected it doesn't solve the issue.

Here's the log file with all the version information:

This is pdfTeX, Version 3.14159265-2.6-1.40.20 (TeX Live 2019/Debian) (preloaded format=pdflatex 2020.9.13)  21 NOV 2020 16:12
entering extended mode
 restricted \write18 enabled.
 %&-line parsing enabled.
**debug.tex
(./debug.tex
LaTeX2e <2020-02-02> patch level 2
L3 programming layer <2020-02-14>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
\c@part=\count167
\c@section=\count168
\c@subsection=\count169
\c@subsubsection=\count170
\c@paragraph=\count171
\c@subparagraph=\count172
\c@figure=\count173
\c@table=\count174
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen134
)
(/usr/share/texlive/texmf-dist/tex/latex/geometry/geometry.sty
Package: geometry 2020/01/02 v5.9 Page Geometry

(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks14
)
(/usr/share/texlive/texmf-dist/tex/generic/iftex/ifvtex.sty
Package: ifvtex 2019/10/25 v1.7 ifvtex legacy package. Use iftex instead.

(/usr/share/texlive/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2019/11/07 v1.0c TeX engine tests
))
\Gm@cnth=\count175
\Gm@cntv=\count176
\c@Gm@tempcnt=\count177
\Gm@bindingoffset=\dimen135
\Gm@wd@mp=\dimen136
\Gm@odd@mp=\dimen137
\Gm@even@mp=\dimen138
\Gm@layoutwidth=\dimen139
\Gm@layoutheight=\dimen140
\Gm@layouthoffset=\dimen141
\Gm@layoutvoffset=\dimen142
\Gm@dimlist=\toks15
)
(/usr/share/texmf/tex/latex/lm/lmodern.sty
Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts
LaTeX Font Info:    Overwriting symbol font `operators' in version `normal'
(Font)                  OT1/cmr/m/n --> OT1/lmr/m/n on input line 22.
LaTeX Font Info:    Overwriting symbol font `letters' in version `normal'
(Font)                  OML/cmm/m/it --> OML/lmm/m/it on input line 23.
LaTeX Font Info:    Overwriting symbol font `symbols' in version `normal'
(Font)                  OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24.
LaTeX Font Info:    Overwriting symbol font `largesymbols' in version `normal'
(Font)                  OMX/cmex/m/n --> OMX/lmex/m/n on input line 25.
LaTeX Font Info:    Overwriting symbol font `operators' in version `bold'
(Font)                  OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26.
LaTeX Font Info:    Overwriting symbol font `letters' in version `bold'
(Font)                  OML/cmm/b/it --> OML/lmm/b/it on input line 27.
LaTeX Font Info:    Overwriting symbol font `symbols' in version `bold'
(Font)                  OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28.
LaTeX Font Info:    Overwriting symbol font `largesymbols' in version `bold'
(Font)                  OMX/cmex/m/n --> OMX/lmex/m/n on input line 29.
LaTeX Font Info:    Overwriting math alphabet `\mathbf' in version `normal'
(Font)                  OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31.
LaTeX Font Info:    Overwriting math alphabet `\mathsf' in version `normal'
(Font)                  OT1/cmss/m/n --> OT1/lmss/m/n on input line 32.
LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `normal'
(Font)                  OT1/cmr/m/it --> OT1/lmr/m/it on input line 33.
LaTeX Font Info:    Overwriting math alphabet `\mathtt' in version `normal'
(Font)                  OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34.
LaTeX Font Info:    Overwriting math alphabet `\mathbf' in version `bold'
(Font)                  OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35.
LaTeX Font Info:    Overwriting math alphabet `\mathsf' in version `bold'
(Font)                  OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36.
LaTeX Font Info:    Overwriting math alphabet `\mathit' in version `bold'
(Font)                  OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37.
LaTeX Font Info:    Overwriting math alphabet `\mathtt' in version `bold'
(Font)                  OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38.
)
(/home/torf/files/texmf/genealogytree/genealogytree.sty
Package: genealogytree 2020/07/28 version 2.01 genealogy trees

(/usr/share/texlive/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2020-02-14 L3 programming layer (loader) 

(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdfmode.def
File: l3backend-pdfmode.def 2020-02-03 L3 backend support: PDF mode
\l__kernel_color_stack_int=\count178
\l__pdf_internal_box=\box45
))

LaTeX Warning: You have requested, on input line 24, version
               `2020/02/25' of package expl3,
               but only version
               `2020-02-14 L3 programming layer (loader) '
               is available.

(/usr/share/texlive/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
Package: xparse 2020-02-14 L3 Experimental document command parser
\l__xparse_current_arg_int=\count179
\g__xparse_grabber_int=\count180
\l__xparse_m_args_int=\count181
\l__xparse_v_nesting_int=\count182
)
(/home/torf/files/texmf/tcolorbox/tcolorbox.sty
Package: tcolorbox 2020/07/31 version 4.31 text color boxes

(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
\pgfutil@everybye=\toks16
\pgfutil@tempdima=\dimen143
\pgfutil@tempdimb=\dimen144

(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-common-lists.t
ex)) (/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
\pgfutil@abb=\box46
(/usr/share/texlive/texmf-dist/tex/latex/ms/everyshi.sty
Package: everyshi 2001/05/15 v3.00 EveryShipout Package (MS)
))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/pgf.revision.tex)
Package: pgfrcs 2020/01/08 v3.1.5b (3.1.5b)
))
Package: pgf 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)

(/usr/share/texlive/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)

(/usr/share/texlive/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: pdftex.def on input line 105.

(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2018/01/08 v1.0l Graphics/color driver for pdftex
))
\Gin@req@height=\dimen145
\Gin@req@width=\dimen146
)
(/usr/share/texlive/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
Package: pgfsys 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
\pgfkeys@pathtoks=\toks17
\pgfkeys@temptoks=\toks18

(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeysfiltered.code.t
ex
\pgfkeys@tmptoks=\toks19
))
\pgf@x=\dimen147
\pgf@y=\dimen148
\pgf@xa=\dimen149
\pgf@ya=\dimen150
\pgf@xb=\dimen151
\pgf@yb=\dimen152
\pgf@xc=\dimen153
\pgf@yc=\dimen154
\pgf@xd=\dimen155
\pgf@yd=\dimen156
\w@pgf@writea=\write3
\r@pgf@reada=\read2
\c@pgf@counta=\count183
\c@pgf@countb=\count184
\c@pgf@countc=\count185
\c@pgf@countd=\count186
\t@pgf@toka=\toks20
\t@pgf@tokb=\toks21
\t@pgf@tokc=\toks22
\pgf@sys@id@count=\count187
 (/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
File: pgf.cfg 2020/01/08 v3.1.5b (3.1.5b)
)
Driver file for pgf: pgfsys-pdftex.def

(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
File: pgfsys-pdftex.def 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.de
f
File: pgfsys-common-pdf.def 2020/01/08 v3.1.5b (3.1.5b)
)))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.
tex
File: pgfsyssoftpath.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfsyssoftpath@smallbuffer@items=\count188
\pgfsyssoftpath@bigbuffer@items=\count189
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.
tex
File: pgfsysprotocol.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)) (/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2016/05/11 v2.12 LaTeX color extensions (UK)

(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package xcolor Info: Driver file: pdftex.def on input line 225.
Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1348.
Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1352.
Package xcolor Info: Model `RGB' extended on input line 1364.
Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1366.
Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1367.
Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1368.
Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1369.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1370.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1371.
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
Package: pgfcore 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
\pgfmath@dimen=\dimen157
\pgfmath@count=\count190
\pgfmath@box=\box47
\pgfmath@toks=\toks23
\pgfmath@stack@operand=\toks24
\pgfmath@stack@operation=\toks25
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code
.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonomet
ric.code.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.cod
e.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison
.code.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.
tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code
.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.
tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerari
thmetics.code.tex)))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
\c@pgfmathroundto@lastzeros=\count191
))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfint.code.tex)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.te
x
File: pgfcorepoints.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgf@picminx=\dimen158
\pgf@picmaxx=\dimen159
\pgf@picminy=\dimen160
\pgf@picmaxy=\dimen161
\pgf@pathminx=\dimen162
\pgf@pathmaxx=\dimen163
\pgf@pathminy=\dimen164
\pgf@pathmaxy=\dimen165
\pgf@xx=\dimen166
\pgf@xy=\dimen167
\pgf@yx=\dimen168
\pgf@yy=\dimen169
\pgf@zx=\dimen170
\pgf@zy=\dimen171
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.
code.tex
File: pgfcorepathconstruct.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgf@path@lastx=\dimen172
\pgf@path@lasty=\dimen173
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code
.tex
File: pgfcorepathusage.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgf@shorten@end@additional=\dimen174
\pgf@shorten@start@additional=\dimen175
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.te
x
File: pgfcorescopes.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfpic=\box48
\pgf@hbox=\box49
\pgf@layerbox@main=\box50
\pgf@picture@serial@count=\count192
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.c
ode.tex
File: pgfcoregraphicstate.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgflinewidth=\dimen176
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformation
s.code.tex
File: pgfcoretransformations.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgf@pt@x=\dimen177
\pgf@pt@y=\dimen178
\pgf@pt@temp=\dimen179
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
File: pgfcorequick.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.t
ex
File: pgfcoreobjects.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing
.code.tex
File: pgfcorepathprocessing.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.te
x
File: pgfcorearrows.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfarrowsep=\dimen180
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
File: pgfcoreshade.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgf@max=\dimen181
\pgf@sys@shading@range@num=\count193
\pgf@shadingcount=\count194
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
File: pgfcoreimage.code.tex 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.
tex
File: pgfcoreexternal.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfexternal@startupbox=\box51
))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.te
x
File: pgfcorelayers.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.c
ode.tex
File: pgfcoretransparency.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.
tex
File: pgfcorepatterns.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
File: pgfcorerdf.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
File: pgfmoduleshapes.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfnodeparttextbox=\box52
) (/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
File: pgfmoduleplot.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65
.sty
Package: pgfcomp-version-0-65 2020/01/08 v3.1.5b (3.1.5b)
\pgf@nodesepstart=\dimen182
\pgf@nodesepend=\dimen183
)
(/usr/share/texlive/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18
.sty
Package: pgfcomp-version-1-18 2020/01/08 v3.1.5b (3.1.5b)
)) (/usr/share/texlive/texmf-dist/tex/latex/tools/verbatim.sty
Package: verbatim 2019/11/10 v1.5r LaTeX2e package for verbatim enhancements
\every@verbatim=\toks26
\verbatim@line=\toks27
\verbatim@in@stream=\read3
)
(/usr/share/texlive/texmf-dist/tex/latex/environ/environ.sty
Package: environ 2014/05/04 v0.3 A new way to define environments

(/usr/share/texlive/texmf-dist/tex/latex/trimspaces/trimspaces.sty
Package: trimspaces 2009/09/17 v1.1 Trim spaces around a token list
)
\@envbody=\toks28
)
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count195
)
\tcb@titlebox=\box53
\tcb@upperbox=\box54
\tcb@lowerbox=\box55
\tcb@phantombox=\box56
\c@tcbbreakpart=\count196
\c@tcblayer=\count197
\c@tcolorbox@number=\count198
\tcb@temp=\box57
\tcb@temp=\box58
\tcb@temp=\box59
\tcb@temp=\box60
\tcb@out=\write4
\tcb@record@out=\write5
)
(/home/torf/files/texmf/tcolorbox/tcbskins.code.tex
Library (tcolorbox): 'tcbskins.code.tex' version '4.31'
(/usr/share/texlive/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex))
(/usr/share/texlive/texmf-dist/tex/latex/pgf/math/pgfmath.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
Package: pgffor 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex)
\pgffor@iter=\dimen184
\pgffor@skip=\dimen185
\pgffor@stack=\toks29
\pgffor@toks=\toks30
))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
Package: tikz 2020/01/08 v3.1.5b (3.1.5b)

(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers
.code.tex
File: pgflibraryplothandlers.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgf@plot@mark@count=\count199
\pgfplotmarksize=\dimen186
)
\tikz@lastx=\dimen187
\tikz@lasty=\dimen188
\tikz@lastxsaved=\dimen189
\tikz@lastysaved=\dimen190
\tikz@lastmovetox=\dimen191
\tikz@lastmovetoy=\dimen192
\tikzleveldistance=\dimen193
\tikzsiblingdistance=\dimen194
\tikz@figbox=\box61
\tikz@figbox@bg=\box62
\tikz@tempbox=\box63
\tikz@tempbox@bg=\box64
\tikztreelevel=\count266
\tikznumberofchildren=\count267
\tikznumberofcurrentchild=\count268
\tikz@fig@count=\count269

(/usr/share/texlive/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
File: pgfmodulematrix.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfmatrixcurrentrow=\count270
\pgfmatrixcurrentcolumn=\count271
\pgf@matrix@numberofcolumns=\count272
)
\tikz@expandcount=\count273

(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik
zlibrarytopaths.code.tex
File: tikzlibrarytopaths.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)))
\tcb@waterbox=\box65

(/home/torf/files/texmf/tcolorbox/tcbskinsjigsaw.code.tex
Library (tcolorbox): 'tcbskinsjigsaw.code.tex' version '4.31'
)) (/home/torf/files/texmf/tcolorbox/tcbfitting.code.tex
Library (tcolorbox): 'tcbfitting.code.tex' version '4.31'
\tcbfitdim=\dimen195
\tcb@lowerfitdim=\dimen196
\tcb@upperfitdim=\dimen197
\tcb@cur@hbadness=\count274
) (/home/torf/files/texmf/tcolorbox/tcbexternal.code.tex
Library (tcolorbox): 'tcbexternal.code.tex' version '4.31'
(/home/torf/files/texmf/tcolorbox/tcbprocessing.code.tex
Library (tcolorbox): 'tcbprocessing.code.tex' version '4.31'
(/usr/share/texlive/texmf-dist/tex/latex/pdftexcmds/pdftexcmds.sty
Package: pdftexcmds 2019/11/24 v0.31 Utility functions of pdfTeX for LuaTeX (HO
)

(/usr/share/texlive/texmf-dist/tex/generic/infwarerr/infwarerr.sty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
)
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
Package: ltxcmds 2019/12/15 v1.24 LaTeX kernel commands for general use (HO)
)
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
)
(/usr/share/texlive/texmf-dist/tex/latex/tools/shellesc.sty
Package: shellesc 2019/11/08 v1.0c unified shell escape interface for LaTeX
Package shellesc Info: Restricted shell escape enabled on input line 77.
)))
(/usr/share/texlive/texmf-dist/tex/generic/pgf/libraries/pgflibraryarrows.meta.
code.tex
File: pgflibraryarrows.meta.code.tex 2020/01/08 v3.1.5b (3.1.5b)
\pgfarrowinset=\dimen198
\pgfarrowlength=\dimen199
\pgfarrowwidth=\dimen256
\pgfarrowlinewidth=\dimen257
)
(/usr/share/texlive/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tik
zlibraryfit.code.tex
File: tikzlibraryfit.code.tex 2020/01/08 v3.1.5b (3.1.5b)
)
(/home/torf/files/texmf/genealogytree/gtrcore.parser.code.tex
Library (genealogytree): 'gtrcore.parser.code.tex' version '2.01'
\gtr@c@level=\count275
\gtr@c@family=\count276
\gtr@c@pid=\count277
) (/home/torf/files/texmf/genealogytree/gtrcore.processing.code.tex
Library (genealogytree): 'gtrcore.processing.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrcore.contour.code.tex
Library (genealogytree): 'gtrcore.contour.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrcore.node.code.tex
Library (genealogytree): 'gtrcore.node.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrcore.drawing.code.tex
Library (genealogytree): 'gtrcore.drawing.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrcore.options.code.tex
Library (genealogytree): 'gtrcore.options.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrcore.symbols.code.tex
Library (genealogytree): 'gtrcore.symbols.code.tex' version '2.01'
\gtr@sym@Born@box=\box66
\gtr@sym@Baptized@box=\box67
\gtr@sym@Engaged@box=\box68
\gtr@sym@Married@box=\box69
\gtr@sym@Divorced@box=\box70
\gtr@sym@Partnership@box=\box71
\gtr@sym@Floruit@box=\box72
\gtr@sym@Died@box=\box73
\gtr@sym@Killed@box=\box74
\gtr@sym@Buried@box=\box75
\gtr@sym@Funeralurn@box=\box76
\gtr@sym@Female@box=\box77
\gtr@sym@Male@box=\box78
\gtr@sym@Neuter@box=\box79
) (/home/torf/files/texmf/genealogytree/gtrlang.english.code.tex
Library (genealogytree): 'gtrlang.english.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrlib.debug.code.tex
Library (genealogytree): 'gtrlib.debug.code.tex' version '2.01'
(/usr/share/texlive/texmf-dist/tex/latex/tools/array.sty
Package: array 2019/08/31 v2.4l Tabular extension package (FMi)
\col@sep=\dimen258
\ar@mcellbox=\box80
\extrarowheight=\dimen259
\NC@list=\toks31
\extratabsurround=\skip49
\backup@length=\skip50
\ar@cellbox=\box81
)
(/usr/share/texlive/texmf-dist/tex/latex/tools/tabularx.sty
Package: tabularx 2020/01/15 v2.11c `tabularx' package (DPC)
\TX@col@width=\dimen260
\TX@old@table=\dimen261
\TX@old@col=\dimen262
\TX@target=\dimen263
\TX@delta=\dimen264
\TX@cols=\count278
\TX@ftn=\toks32
)
(/home/torf/files/texmf/tcolorbox/tcbbreakable.code.tex
Library (tcolorbox): 'tcbbreakable.code.tex' version '4.31'
\tcb@testbox=\box82
\tcb@totalupperbox=\box83
\tcb@totallowerbox=\box84
)) (/home/torf/files/texmf/genealogytree/gtrlib.templates.code.tex
Library (genealogytree): 'gtrlib.templates.code.tex' version '2.01'
) (/home/torf/files/texmf/genealogytree/gtrlib.fanchart.code.tex
Library (genealogytree): 'gtrlib.fanchart.code.tex' version '2.01'
)) (./debug.aux)
\openout1 = `debug.aux'.

LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 6.
LaTeX Font Info:    ... okay on input line 6.
LaTeX Font Info:    Trying to load font information for OT1+lmr on input line 6
.
 (/usr/share/texmf/tex/latex/lm/ot1lmr.fd
File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern
)
*geometry* driver: auto-detecting
*geometry* detected driver: pdftex
*geometry* verbose mode - [ preamble ] result:
* driver: pdftex
* paper: a0paper
* layout: <same size as paper>
* layoutoffset:(h,v)=(0.0pt,0.0pt)
* modes: 
* h-part:(L,W,R)=(358.93517pt, 1675.00642pt, 358.93518pt)
* v-part:(T,H,B)=(405.96805pt, 2368.11253pt, 608.95209pt)
* \paperwidth=2392.87677pt
* \paperheight=3383.03267pt
* \textwidth=1675.00642pt
* \textheight=2368.11253pt
* \oddsidemargin=286.66518pt
* \evensidemargin=286.66518pt
* \topmargin=296.69806pt
* \headheight=12.0pt
* \headsep=25.0pt
* \topskip=10.0pt
* \footskip=30.0pt
* \marginparwidth=65.0pt
* \marginparsep=11.0pt
* \columnsep=10.0pt
* \skip\footins=9.0pt plus 4.0pt minus 2.0pt
* \hoffset=0.0pt
* \voffset=0.0pt
* \mag=1000
* \@twocolumnfalse
* \@twosidefalse
* \@mparswitchfalse
* \@reversemarginfalse
* (1in=72.27pt=25.4mm, 1cm=28.453pt)

ABD: EveryShipout initializing macros
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count279
\scratchdimen=\dimen265
\scratchbox=\box85
\nofMPsegments=\count280
\nofMParguments=\count281
\everyMPshowfont=\toks33
\MPscratchCnt=\count282
\MPscratchDim=\dimen266
\MPnumerator=\count283
\makeMPintoPDFobject=\count284
\everyMPtoPDFconversion=\toks34
) (/usr/share/texlive/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85.

(/usr/share/texlive/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
\gtr@pbox=\box86
LaTeX Font Info:    Trying to load font information for OT1+lmss on input line 
54.

(/usr/share/texmf/tex/latex/lm/ot1lmss.fd
File: ot1lmss.fd 2009/10/30 v1.6 Font defs for Latin Modern
)
\gtr@pbox=\box87
\gtr@pbox=\box88
\gtr@pbox=\box89
\gtr@pbox=\box90
\gtr@pbox=\box91
\gtr@pbox=\box92
\gtr@pbox=\box93
\gtr@pbox=\box94
\gtr@pbox=\box95
\gtr@pbox=\box96
\gtr@pbox=\box97
\gtr@pbox=\box98
\gtr@pbox=\box99
\gtr@pbox=\box100
\gtr@pbox=\box101
\gtr@pbox=\box102
\gtr@pbox=\box103
\gtr@pbox=\box104
\gtr@pbox=\box105
\gtr@pbox=\box106
\gtr@pbox=\box107
\gtr@pbox=\box108
\gtr@pbox=\box109
\gtr@pbox=\box110
\gtr@pbox=\box111
\gtr@pbox=\box112
\gtr@pbox=\box113
\gtr@pbox=\box114
\gtr@pbox=\box115
\gtr@pbox=\box116
 [1

{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./debug.aux) ) 
Here is how much of TeX's memory you used:
 20014 strings out of 483183
 449287 string characters out of 5966292
 957078 words of memory out of 5000000
 34730 multiletter control sequences out of 15000+600000
 547243 words of font info for 40 fonts, out of 8000000 for 9000
 14 hyphenation exceptions out of 8191
 70i,9n,119p,847b,1940s stack positions out of 5000i,500n,10000p,200000b,80000s
{/usr/share
/texmf/fonts/enc/dvips/lm/lm-rm.enc}</usr/share/texmf/fonts/type1/public/lm/lmr
10.pfb></usr/share/texmf/fonts/type1/public/lm/lmssbx10.pfb>
Output written on debug.pdf (1 page, 45402 bytes).
PDF statistics:
 20 PDF objects out of 1000 (max. 8388607)
 14 compressed objects within 1 object stream
 0 named destinations out of 1000 (max. 500000)
 13 words of extra memory for PDF output out of 10000 (max. 10000000)

mikkelee commented 3 years ago

The simplest solution is probably manually adjusting the layout by inserting a distance, for example on F01 or H01: g[distance=3cm]{name={F01}}:

Skærmbillede 2020-11-22 kl  11 59 29

Another option is to rearrange the tree by moving the C/E/B families to the beginning, but that may be undesirable if you prefer to have father/mother always left/right:

\documentclass{article}
\usepackage[a0paper]{geometry}
\usepackage{lmodern}
\usepackage[all]{genealogytree}

\begin{document}
    \begin{genealogypicture}[
        template=database pole,
        insert phantom for childless families,
    ]
        sandclock{
            parent{
                parent{
                    p{name={C01}}
                    p{name={C02}}
                    g{name={E01}}
                }
                parent{
                    p{name={B01}}
                    parent{
                        g{name={A01}}
                        c{name={A02}}
                        c{name={A03}}
                        c{name={A04}}
                        c{name={A05}}
                        c{name={A06}}
                        c{name={A07}}
                        c{name={A08}}
                        c{name={A09}}
                        c{name={A10}}
                        c{name={A11}}
                    }
                    g{name={D01}}
                }
                g{name={G01}}
                c{name={G02}}
                c{name={G03}}
                c{name={G04}}
                c{name={G05}}
                c{name={G06}}
            }
            parent{
                p{name={F01}}
                p{name={F02}}
                g{name={H01}}
                c{name={H02}}
                c{name={H03}}
                c{name={H04}}
                c{name={H05}}
                c{name={H06}}
            }
            c{name={I01}}
        }
    \end{genealogypicture}
\end{document}
Skærmbillede 2020-11-22 kl  12 00 40
torfsen commented 3 years ago

Thanks for your input, @mikkelee! I'll see whether I can use one of your suggested workarounds in my personal use case.

Nevertheless, I still think this is a bug in genealogytree because IMO nothing prevents the G and H families to be moved to the right to avoid the overlap.

T-F-S commented 3 years ago

Technically, it is not a bug, because the autolayout algorithm produces the correct output, i.e. placing the nodes compact without overlapping. Family lines (edges) are not considered by the algorithm. Here, this gives an unwanted line overlapping.

The following code shows that the placement is correct:

\documentclass{article}
\usepackage[a0paper]{geometry}
\usepackage{lmodern}
\usepackage[all]{genealogytree}

\begin{document}
    \begin{tikzpicture}
    \genealogytree[
        template=database pole,
        show family,
        %insert phantom for childless families,
    ]
    {
        sandclock{
            parent{
                parent{
                    parent{
                        g{name={A01}}
                        c{name={A02}}
                        c{name={A03}}
                        c{name={A04}}
                        c{name={A05}}
                        c{name={A06}}
                        c{name={A07}}
                        c{name={A08}}
                        c{name={A09}}
                        c{name={A10}}
                        c{name={A11}}
                    }
                    p{name={B01}}
                    g{name={D01}}
                }
                parent{
                    p{name={C01}}
                    p{name={C02}}
                    g{name={E01}}
                }
                g{name={G01}}
                c{name={G02}}
                c{name={G03}}
                c{name={G04}}
                c{name={G05}}
                c{name={G06}}
            }
            parent{
                p{name={F01}}
                p{name={F02}}
                g{name={H01}}
                c{name={H02}}
                c{name={H03}}
                c{name={H04}}
                c{name={H05}}
                c{name={H06}}
            }
            c{name={I01}}
        }
    }
    \gtrdebugdrawcontour{family number=2}{draw=blue,line width=2pt}
    \gtrdebugdrawcontour{family number=6}{draw=red,line width=2pt}
    \end{tikzpicture}
\end{document}

test_108_output_1

There is no automated way to prevent such kind of edge overlappings, because the autolayout does not consider edges at all. insert phantom for childless families does not help here. As @mikkelee wrote, you could adapt distances manually. Another option would be to adapt the edges shift or edges up etc. (also manually). This keeps the nodes as they are, but avoid line overlapping:

\documentclass{article}
\usepackage[a0paper]{geometry}
\usepackage{lmodern}
\usepackage[all]{genealogytree}

\begin{document}
    \begin{tikzpicture}
    \genealogytree[
        template=database pole,
        %show family,
        %parent distance in parent graph=10mm,
        %insert phantom for childless families,
    ]
    {
        sandclock{
            parent[edges up by=1 of 4]{%  <------------------------------------- 
                parent{
                    parent{
                        g{name={A01}}
                        c{name={A02}}
                        c{name={A03}}
                        c{name={A04}}
                        c{name={A05}}
                        c{name={A06}}
                        c{name={A07}}
                        c{name={A08}}
                        c{name={A09}}
                        c{name={A10}}
                        c{name={A11}}
                    }
                    p{name={B01}}
                    g{name={D01}}
                }
                parent{
                    p{name={C01}}
                    p{name={C02}}
                    g{name={E01}}
                }
                g{name={G01}}
                c{name={G02}}
                c{name={G03}}
                c{name={G04}}
                c{name={G05}}
                c{name={G06}}
            }
            parent[edges down by=1 of 4]{%  <------------------------------------- 
                p{name={F01}}
                p{name={F02}}
                g{name={H01}}
                c{name={H02}}
                c{name={H03}}
                c{name={H04}}
                c{name={H05}}
                c{name={H06}}
            }
            c{name={I01}}
        }
    }
    %\gtrdebugdrawcontour{family number=2}{draw=blue,line width=2pt}
    %\gtrdebugdrawcontour{family number=6}{draw=red,line width=2pt}
    \end{tikzpicture}
\end{document}

test_108_output_2

torfsen commented 3 years ago

Thanks for the clarification, @T-F-S. As a software developer I do understand that one may not consider this issue a bug in the layout algorithm (because, as you said, "the autolayout does not consider edges at all"). However, as a user I do not care about the details of the algorithm or its implementation -- I care about the results. And from this point of view I still do consider this issue a bug, because the result I get is not what I would have expected.

I appreciate your remarks regarding potential workarounds, but as I auto-generate the input for genealogytree most of them will not be applicable to my personal use case.

If taking edges into account in the core algorithm is too difficult, then perhaps the edges up / edges down could be auto-computed once the layout is complete? "Simply" alternating them between high and low in the same level should probably work.

T-F-S commented 3 years ago

The user view is clear to me. I am a user of genealogytree myself and would also like to see an automated way for avoiding the overlapping. Unfortunately, alternating the high and low edge setting on a level is a non-trivial operation (not in principle, but for the current implementation).

I have a vague idea of an alteration for the autolayout algorithm to disallow slipping nodes of other families under the area defined by the parents (here E01 and D01). Currently, I have no time to investigate further in this direction. But, if I would do such a change in the future, possibly many existing layouts would change...

This issue should remain to be open as a reminder for the future.

mikkelee commented 3 years ago

As for machine-generated trees, you can assign ids to the individual nodes. These can then be referred to and manipulated when the tree is displayed. This is especially practical if the tree is in a separate file, which means it can be regenerated while the extra options are untouched.

In my genealogytree-mkgraph script, I add the gedcom XREF value to all individuals and families, so I can refer to them with eg. options for node etc.

Here's an example where the graph is loaded from another file and is then manipulated in the .tex document:

\documentclass{article}
\usepackage[a0paper]{geometry}
\usepackage{lmodern}
\usepackage[all]{genealogytree}

% simulating an external file:
\usepackage{filecontents}
\begin{filecontents}{\jobname.database.graph}
sandclock{
    parent{
        parent{
            parent{
                g{name={A01}}
                c{name={A02}}
                c{name={A03}}
                c{name={A04}}
                c{name={A05}}
                c{name={A06}}
                c{name={A07}}
                c{name={A08}}
                c{name={A09}}
                c{name={A10}}
                c{name={A11}}
            }
            p{name={B01}}
            g{name={D01}}
        }
        parent{
            p{name={C01}}
            p{name={C02}}
            g{name={E01}}
        }
        g{name={G01}}
        c{name={G02}}
        c{name={G03}}
        c{name={G04}}
        c{name={G05}}
        c{name={G06}}
    }
    parent{
        p[id=F01]{name={F01}}       % <- note the id
        p{name={F02}}
        g{name={H01}}
        c{name={H02}}
        c{name={H03}}
        c{name={H04}}
        c{name={H05}}
        c{name={H06}}
    }
    c{name={I01}}
}
\end{filecontents}

% and loading the file:
\begin{document}
    \begin{tikzpicture}
        \genealogytreeinput[
            template=database pole,
            insert phantom for childless families,
            options for node={F01}{distance=3cm},       % <- here we add the distance to the F01 node
        ]{\jobname.database.graph}
    \end{tikzpicture}
\end{document}
torfsen commented 3 years ago

@mikkelee: Thanks for the pointer to options for node, that will certainly come in handy!

@T-F-S: Sounds good. Thanks for your work on this package!