
Ich versuche, meinen Text der Elemente in der Itemize-Umgebung in den Tikz-Knoten auszurichten. Ich habe auch versucht, den topsep
Parameter zu verwenden, aber es hat nicht so funktioniert, wie ich dachte. Der Text sollte in jedem Textfeld oben in den Textfeldern stehen, damit sich alle Elemente auf derselben Grundlinie befinden. Vielleicht gibt es eine gute Lösung, um ihn oben, in der Mitte oder unten im Tikz-Knoten auszurichten.
Hier ist der Code
\documentclass[tikz, class=scrreprt, fontsize=10pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage[lf, p, sflf, sfp]{libertine}
\usepackage{enumitem}
\usetikzlibrary{shapes, arrows.meta, positioning, calc, decorations.pathreplacing, calligraphy, intersections, backgrounds}
\tikzset{every picture/.style={/utils/exec={\sffamily\normalsize}}}
\definecolor{orange}{RGB}{252,141,89} % orange
\definecolor{yellow}{RGB}{253,204,138} % gelb
\definecolor{light}{RGB}{254,240,217} % hellgelb
\tikzstyle{framebox} = [rectangle, minimum width = 20cm, minimum height = 1cm, draw = black, fill = orange]
\tikzstyle{renderbox} = [rectangle, minimum width = 4cm, minimum height = 2cm, draw = black]
\tikzstyle{textbox} = [rectangle, minimum width = 4cm, minimum height = 2cm, draw = black, fill = light, text width = 3.8cm]
\tikzstyle{titlebox} = [rectangle, minimum height = 1cm]
\tikzstyle{subtitlebox} = [rectangle, minimum width = 4cm, minimum height = 0.5cm, draw = black, fill = yellow]
\setlist[itemize]{itemsep = -0.3em, topsep = 0em, wide = 0.1em, labelwidth = 0em, label = \small{$\bullet$}}
\begin{document}
\begin{tikzpicture}[node distance = 0cm and 3cm, outer sep = 0, inner sep = 0cm, rounded corners = 1pt, line width = 1pt, align = center]
\node [framebox, minimum width = 14cm, minimum height = 5cm] (subjektivbox) {};
\node [titlebox, below = 0cm of subjektivbox.north, minimum width = 14cm] (subjektivtitel) {\raisebox{-9pt}{\textbf{subjektive Messverfahren}}};
\node [renderbox, below right = 0cm and 0.5cm of subjektivtitel.south west] (renderbox1) {};
\node [renderbox, below = 0cm of subjektivtitel.south] (renderbox2) {};
\node [renderbox, below left = 0cm and 0.5cm of subjektivtitel.south east] (renderbox3) {};
\node [subtitlebox, below = 0cm of renderbox1.north] (merkmal) {\textbf{merkmalsorientiert}};
\node [subtitlebox, below = 0cm of renderbox2.north] (ereignis) {\raisebox{-9pt}{\textbf{ereignisorientiert}}};
\node [subtitlebox, below = 0cm of renderbox3.north] (problem) {\raisebox{-9pt}{\textbf{problemorientiert}}};
\node [textbox, below = 0cm of merkmal] () {
\begin{itemize}
\item Kundenbefragungen
\item Multiattribut
\item Dekompositionell
\end{itemize}};
\node [textbox, below = 0cm of ereignis] () {
\begin{itemize}
\item Sequenzielle Ereignisse
\item Critical Incidents
\end{itemize}};
\node [textbox, below = 0cm of problem] () {
\begin{itemize}
\item Problem Detecting
\item Frequenz-Relevanz
\end{itemize}};
\end{tikzpicture}
\end{document}
Antwort1
Sie können damit arbeiten, text depth
um den Text oben auszurichten. Ich habe text depth=1.9cm
den textbox
Stil hinzugefügt.
\documentclass[tikz, class=scrreprt, fontsize=10pt]{standalone}
\usepackage[T1]{fontenc}
\usepackage[lf, p, sflf, sfp]{libertine}
\usepackage{enumitem}
\usetikzlibrary{shapes, arrows.meta, positioning, calc, decorations.pathreplacing, calligraphy, intersections, backgrounds}
\tikzset{every picture/.style={/utils/exec={\sffamily\normalsize}}}
\definecolor{orange}{RGB}{252,141,89} % orange
\definecolor{yellow}{RGB}{253,204,138} % gelb
\definecolor{light}{RGB}{254,240,217} % hellgelb
\tikzstyle{framebox} = [rectangle, minimum width = 20cm, minimum height = 1cm, draw = black, fill = orange]
\tikzstyle{renderbox} = [rectangle, minimum width = 4cm, minimum height = 2cm, draw = black]
\tikzstyle{textbox} = [rectangle, minimum width = 4cm, minimum height = 2cm, draw = black, fill = light, text width = 3.8cm,text depth=1.9cm]
\tikzstyle{titlebox} = [rectangle, minimum height = 1cm]
\tikzstyle{subtitlebox} = [rectangle, minimum width = 4cm, minimum height = 0.5cm, draw = black, fill = yellow]
\setlist[itemize]{itemsep = -0.3em, topsep = 0em, wide = 0.1em, labelwidth = 0em, label = \small{$\bullet$}}
\begin{document}
\begin{tikzpicture}[node distance = 0cm and 3cm, outer sep = 0, inner sep = 0cm, rounded corners = 1pt, line width = 1pt, align = center]
\node [framebox, minimum width = 14cm, minimum height = 5cm] (subjektivbox) {};
\node [titlebox, below = 0cm of subjektivbox.north, minimum width = 14cm] (subjektivtitel) {\raisebox{-9pt}{\textbf{subjektive Messverfahren}}};
\node [renderbox, below right = 0cm and 0.5cm of subjektivtitel.south west] (renderbox1) {};
\node [renderbox, below = 0cm of subjektivtitel.south] (renderbox2) {};
\node [renderbox, below left = 0cm and 0.5cm of subjektivtitel.south east] (renderbox3) {};
\node [subtitlebox, below = 0cm of renderbox1.north] (merkmal) {\textbf{merkmalsorientiert}};
\node [subtitlebox, below = 0cm of renderbox2.north] (ereignis) {\raisebox{-9pt}{\textbf{ereignisorientiert}}};
\node [subtitlebox, below = 0cm of renderbox3.north] (problem) {\raisebox{-9pt}{\textbf{problemorientiert}}};
\node [textbox, below = 0cm of merkmal] () {
\begin{itemize}
\item Kundenbefragungen
\item Multiattribut
\item Dekompositionell
\end{itemize}};
\node [textbox, below = 0cm of ereignis] () {
\begin{itemize}
\item Sequenzielle Ereignisse
\item Critical Incidents
\end{itemize}};
\node [textbox, below = 0cm of problem] () {
\begin{itemize}
\item Problem Detecting
\item Frequenz-Relevanz
\end{itemize}};
\end{tikzpicture}
\end{document}
Antwort2
Wenn es Ihnen nur darum geht, wie man eine Boxbox zeichnet, tcolorbox
bietet das Paket einfachen und kürzeren Code als pure tikz
, der auch in Folgendem verwendet werden kann tikzpicture
:
\documentclass[border=3.141592, class=scrreprt]{standalone}
\usepackage[T1]{fontenc}
\usepackage[lf, p, sflf, sfp]{libertine}
\usepackage{enumitem}
\usepackage{etoolbox}
\AtBeginEnvironment{tcolorbox}{%
\setlist[itemize]{nosep,
leftmargin=*,
label=\textbullet,
before=\begin{minipage}[t]{\linewidth}, % <---
after=\end{minipage}} % <---
}
\usepackage[most]{tcolorbox}
\tcbuselibrary{raster}
\newtcolorbox{OuterBox}{colback=orange!80, colframe=black,
sharp corners,
halign=center,
}
\begin{document}
\begin{OuterBox}
\textbf{Subjektive Messverfahren}\par\medskip%
\begin{tcbitemize}[%
raster columns=3,
raster equal height,
before=, after=\hfill,
left=0pt,right=0mm,top=1mm,bottom=1mm,
sharp corners,
colframe=black, colback=yellow!30, colbacktitle=orange!40,
coltitle=black, fonttitle=\bfseries, center title,
after title=\vphantom{bg},
halign=left]
\tcbitem[title=merkmalsorientiert]
\begin{itemize}
\item Kundenbefragungen
\item Multiattribut
\item Dekompositionell
\end{itemize}
%
\tcbitem[title=ereignisorientiert]
\begin{itemize}
\item Sequenzielle Ereignisse
\item Critical Incidents
\end{itemize}
%
\tcbitem[title=problemorientiert]
\begin{itemize}
\item Problem Detecting
\item Frequenz-Relevanz
\end{itemize}
\end{tcbitemize}
\end{OuterBox}
\end{document}
Hinweis: Kann wie folgt tcolorbox
in den Knoten eingefügt werden :tikz
\node [inner sep=0pt] at (<coordinate>)
{\begin{OuterBox}
% box code as above
\end{OuterBox}
};
Bei Bedarf können Sie auch allen Boxen Namen geben. Dazu müssen Sie nur bei OuterBox definitions enhanced, remember as=#1
, und bei tcbitemize
extended , overlay und ändern \tcbitem[title<0...]
in \tcbitem[title=..., remeber as=<name>]
.