I had a problem with my genealogy tree (can be found here). Someone suggested to me in the comments to use forest package. I tried to convert it however I don't know if it is possible to apply the same style.
My forest tree:
My original tree:
So, what i am trying to achieve is to make my forest looks like my genealogy tree. Also, i would like to keep the levels like what i did with the forest in order to fit more data easily.
My code:
\documentclass{article}
\usepackage[]{forest}
%\usetikzlibrary{shadows,arrows.meta}
\usepackage{pdflscape}
\usepackage{genealogytree}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\forestset{
skip one/.style={
replace by={
[,
shape=coordinate,
l*=.25,
append
]
},
},
}
\begin{landscape}
\resizebox{\linewidth}{!}{
\begin{forest}
for tree={
parent anchor=south,
child anchor=north,
draw,
thick,
font=\small\sffamily,
align=center,
delay={
where content={}{
shape=coordinate,
}{},
},
},
before packing={
for tree={
if={isodd(n_children())}{
for children={
if={equal(n,int((1+n_children("!u"))/2))}{
calign with current,
}{},
},
}{},
edge path={
\noexpand\path [draw, thick, \forestoption{edge}] (!u.parent anchor) -- ++(0,-5pt) |- ($(.child anchor) + (0,5pt)$) -- (.child anchor)\forestoption{edge label};
},
},
},
[CERT Services,
[Reactive,
[Incident handling , skip one, l*=3
[incident analysis],
[incident response on-site],
[incident response support],
[incident response coordination ],
]
[Vulnerability Handling,
[Vulnerability analysis],
[Vulnerability response ],
[Vulnerability response coordination],
]
[Artifact Handling, , skip one, l*=5
[Artifact analysis],
[Artifact response],
[Artifact response coordination],
]
]
% [Proactive, skip one, l*=15
% [Announcements],
% [Technology Watch],
% [Security Audits or Assessments],
% [Configuration and Maintenance ],
% [Development of Security Tools],
% [Intrusion Detection Services],
% [Security-Related Information Dissemination]
% ]
% [Quality Management
% [Risk Analysis],
% [Business Continuity and Disaster Recovery Planning],
% [Security Consulting],
% [Awareness Building],
% [Education/Training],
% [Product Evaluation or Certification],
% ]
]
\end{forest}
}
\end{landscape}
\begin{landscape}
\begin{figure}[b]
\noindent\resizebox{\linewidth}{!}{
\begin{genealogypicture}[
processing=database,
database format=full,
info separators={\tcbline}{\tcbline}{}{},
category/.style={box={colback=red!20}}, % category
service/.style={box={colback=green!20}}, % a Service
realization/.style={box={colback=blue!20 }}, %Realization Technique
empty/.style={box={colback=white}}, %Realization Technique
edges={foreground={line width=1pt,black,->,},background={line width=2pt,white},}, %swing,
box={fit basedim=9pt,boxsep=2pt,segmentation style=solid,halign=center,valign=center,before upper=\parskip2pt,\gtrDBsex,{colback=gray!20}},%CATEGORY
% node={ turn=right},
after tree={
\node [draw,black,fill=red!20,text height=1em] (a) at (current bounding box.north east) {Category};
\node [draw,black,fill=green!20,left=2mm of a] (b) {Service};
\node [draw,black,fill=blue!20,left=2mm of b] (c) { Technique};
}
]
child{
g{name={\textbf{CERT \\ Services}}}
child{
g[category]{name={\textbf{React Services}}, comment= {This is performed in the software}}
child{
g[category]{name={\textbf{Linux Kernel Features}}, comment= {A feature in Linux kernel used to provide security}}
child {
g[service]{name={\textbf{Incident Analysis}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{Incident Response On-site}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{Incident Response Support}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{incident response coordination}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
}
child{
g[category]{name={\textbf{Vulnerability Handling}}, comment= {service explanation}}
child {
g[service]{name={\textbf{Vulnerability Analysis}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{Vulnerability Response}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{vulnerability Response Coordination}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
}
child{
g[category]{name={\textbf{Artifact Handling}}, comment= {Configuration automation}}
child {
g[service]{name={\textbf{Artifact Analysis}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{Artifact Response}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
child {
g[service]{name={\textbf{Artifact Response Coordination}}, comment= {service explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
}
}
}
% child{
% g[category]{name={\textbf{Proactive Services}}, comment= {This is performed in the hardware}}
% child {
% g[empty]{name={\textbf{x}}}
% child{
% g[empty]{name={\textbf{x}}}
% child {
% g[empty]{name={\textbf{x}}}
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% child {
% g[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% c[realization]{name={\textbf{xxx}}, comment= {realization explanation}}
% }
% }
% }
% }
% }
% child{
% g[category]{name={\textbf{Security Quality Management Services}}, comment= {This is performed in the hardware}}
% c[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[service]{name={\textbf{xxx}}, comment= {service explanation}}
% c[service]{name={\textbf{xxx}}, comment= {service explanation}}
%
%
% }
}
\end{genealogypicture}
}
\end{figure}
\end{landscape}
\end{document}
Finally, I have commented someparts of both the genealogy tree and the forest because the result will be so big and will not fit. If there is a way to fit it in one page i would really appreciate it.
thank you,
geometry
will help. Moving to a country which uses A4 will help width-wise, but make things worse height-wise.