Text in der Itemize-Umgebung in einem Tikz-Knoten anpassen

Text in der Itemize-Umgebung in einem Tikz-Knoten anpassen

Ich versuche, meinen Text der Elemente in der Itemize-Umgebung in den Tikz-Knoten auszurichten. Ich habe auch versucht, den topsepParameter 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 depthum den Text oben auszurichten. Ich habe text depth=1.9cmden textboxStil hinzugefügt.

Bildbeschreibung hier eingeben

\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, tcolorboxbietet 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}

Bildbeschreibung hier eingeben

Hinweis: Kann wie folgt tcolorboxin 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 tcbitemizeextended , overlay und ändern \tcbitem[title<0...]in \tcbitem[title=..., remeber as=<name>].

verwandte Informationen