Wenn ich versuche, das Hochzeitsdatum zu einem der grundlegenden Beispiele im Benutzerhandbuch hinzuzufügen, erhalte ich eine horizontale Linie, die das Foto überlappt:
Hier mein Code:
\documentclass{article}
\usepackage{genealogytree}
\usepackage{tcolorbox}
\begin{document}
\begin{genealogypicture}[
processing=database,
database format=medium marriage below,
node size=2.4cm,
level size=3.5cm,
level distance=6mm,
%...
list separators hang,
name font=\bfseries,
surn code={\textcolor{red!50!black}{#1}},
place text={\newline}{},
date format=d/mon/yyyy,
%...
tcbset={male/.style={colframe=blue,colback=blue!5},
female/.style={colframe=red,colback=red!5}},
box={fit basedim=7pt,boxsep=2pt,segmentation style=solid,
halign=left,before upper=\parskip1pt,
\gtrDBsex,drop fuzzy shadow,
if image defined={add to width=25mm,right=25mm,
underlay={\begin{tcbclipinterior}\path[fill overzoom DBimage]
([xshift=-24mm]interior.south east) rectangle (interior.north east);
\end{tcbclipinterior}},
}{},
},
]
sandclock
{
child{
g[id=GauxCarl1777]{
male,
name={Johann \pref{Carl Friedrich} \surn{Gau\ss{}}},
birth={1777-04-30}{Braunschweig (Niedersachsen)},
marriage={1800-01-01}{}, %<== my modification to the guide's example
death={1855-02-23}{G\"ottingen (Niedersachsen)},
profession={Mathematiker, Astronom, Geod\"at und Physiker},
image={Carl_Friedrich_Gauss.jpg},
}
p[id=GauxCarl1777]{
female,
name={Johann \pref{Carl Friedrich} \surn{Gau\ss{}}},
birth={1777-04-30}{Braunschweig (Niedersachsen)},
marriage={1800-01-01}{}, %<== my modification to the guide's example
death={1855-02-23}{G\"ottingen (Niedersachsen)},
profession={Mathematiker, Astronom, Geod\"at und Physiker},
image={Carl_Friedrich_Gauss.jpg},
}
}
}
\end{genealogypicture}
\end{document}
Weiß jemand, wie man das verhindern kann?
Antwort1
Hierfür gibt es verschiedene Lösungsmöglichkeiten. Die einfachste ist der Wechsel zu einem Datenbankformat, das keine Linie zeichnet, wie z.B. medium
. In diesem Fall wird die Heirat zwischen Geburt und Sterbedatum abgedruckt.
MWE:
\documentclass{article}
\usepackage{genealogytree}
\usepackage{tcolorbox}
\begin{document}
\begin{genealogypicture}[
processing=database,
database format=medium,
box={fit basedim=7pt,boxsep=2pt,segmentation style=solid,
halign=left,before upper=\parskip1pt,
\gtrDBsex,drop fuzzy shadow,
if image defined={add to width=25mm,right=25mm,
underlay={\begin{tcbclipinterior}\path[fill overzoom image=\gtrDBimage]
([xshift=-24mm]interior.south east) rectangle (interior.north east);
\end{tcbclipinterior}},
}{},
},
]
sandclock{
child{
g[id=GauxCarl1777]{
male,name={Johann \pref{Carl Friedrich} \surn{Gau\ss{}}},
birth={1777-04-30}{Braunschweig (Niedersachsen)},
marriage={1800-01-01}{},
death={1855-02-23}{G\"ottingen (Niedersachsen)},
profession={Mathematiker, Astronom, Geod\"at und Physiker},
image={Carl_Friedrich_Gauss.jpg},
}
}
child{
g[id=GauxCarl1777]{
female,name={Johann \pref{Carl Friedrich} \surn{Gau\ss{}}},
birth={1777-04-30}{Braunschweig (Niedersachsen)},
marriage={1800-01-01}{},
death={1855-02-23}{G\"ottingen (Niedersachsen)},
profession={Mathematiker, Astronom, Geod\"at und Physiker},
}
}
}
\end{genealogypicture}
\end{document}
Ergebnis:
Eine zweite Möglichkeit besteht darin, die Definition von zu ändern, medium marriage below
um die Zeile zu entfernen. Die Definitionen sind in der Datei aufgeführt gtrcore.node.code.tex
und können neu definiert werden, indem Sie nach dem Laden geänderten Code zu Ihrem eigenen Dokument hinzufügen genealogytree
.
MWE:
\documentclass{article}
\usepackage{genealogytree}
\usepackage{tcolorbox}
\makeatletter
\gtrDeclareDatabaseFormat{medium marriage below}{}{%
\gtrPrintName%
\begin{gtreventlist}%
\gtr@list@event@birth%
\gtr@list@event@floruit%
\gtr@list@event@death%
\end{gtreventlist}%
\gtr@print@infolist%
\gtr@ifmarriagedefined{%
\begin{gtreventlist}\gtr@list@event@marriage\end{gtreventlist}}{}%
% was: \gtr@ifmarriagedefined{\tcbline\begin{gtreventlist}\gtr@list@event@marriage\end{gtreventlist}}{}%
}
\makeatother
\begin{document}
\begin{genealogypicture}[
processing=database,
database format=medium marriage below,
box={fit basedim=7pt,boxsep=2pt,segmentation style=solid,
halign=left,before upper=\parskip1pt,
\gtrDBsex,drop fuzzy shadow,
if image defined={add to width=25mm,right=25mm,
underlay={\begin{tcbclipinterior}\path[fill overzoom image=\gtrDBimage]
([xshift=-24mm]interior.south east) rectangle (interior.north east);
\end{tcbclipinterior}},
}{},
},
]
sandclock{
child{
g[id=GauxCarl1777]{
male,name={Johann \pref{Carl Friedrich} \surn{Gau\ss{}}},
birth={1777-04-30}{Braunschweig (Niedersachsen)},
marriage={1800-01-01}{},
death={1855-02-23}{G\"ottingen (Niedersachsen)},
profession={Mathematiker, Astronom, Geod\"at und Physiker},
image={Carl_Friedrich_Gauss.jpg},
}
}
child{
g[id=GauxCarl1777]{
female,name={Johann \pref{Carl Friedrich} \surn{Gau\ss{}}},
birth={1777-04-30}{Braunschweig (Niedersachsen)},
marriage={1800-01-01}{},
death={1855-02-23}{G\"ottingen (Niedersachsen)},
profession={Mathematiker, Astronom, Geod\"at und Physiker},
}
}
}
\end{genealogypicture}
\end{document}
Ergebnis:
Um diese Lösung etwas zu erweitern, können Sie testen, ob ein Bild vorhanden ist, und die Zeile nur für Knoten ohne Bild drucken und andernfalls beispielsweise etwas vertikalen Abstand lassen.
MWE, nur der relevante Teil der Neudefinition wird angezeigt:
\gtr@ifmarriagedefined{%
\ifdefvoid{\gtrDBimage}{\tcbline}{\vspace{2mm}}%
\begin{gtreventlist}\gtr@list@event@marriage\end{gtreventlist}}{}%
Ergebnis:
Oder fügen Sie \tcbline
in beiden Fällen Folgendes hinzu, beides verkürzt die Linie um 24 mm, falls ein Bild vorhanden ist:
\gtr@ifmarriagedefined{%
\ifdefvoid{\gtrDBimage}{\tcbline}{%
\tcbline@ {\kvtcb@leftupper +\@totalleftmargin +24mm}}%
\begin{gtreventlist}\gtr@list@event@marriage\end{gtreventlist}}{}%
Ergebnis: