Tikz

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Tikz

Re: Tikz

von ProtonLaser » Mo 30. Jan 2023, 16:16

Vielen Dank!

Hat funktioniert und mir sehr geholfen!

Nochmals DANKE!!

Re: Tikz

von esdd » So 29. Jan 2023, 01:13

Dann musst du halt das letzte Verbindungsstück separat zeichnen und die letzten Knoten und Beschriftungen von Hand platzieren.
\documentclass[captions=tableheading]{scrreprt}
\usepackage[top=25mm , bottom=25mm , left=25mm , right=25mm , bindingoffset=5mm]{geometry}

\usepackage[ngerman]{babel}
%\usepackage[utf8]{inputenc}% wird nicht mehr benötigt
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{backgrounds}

\newlength\bildhoehe
\setlength\bildhoehe{2cm}% Höhe der Bildchen
\newcommand\bildbreite{2cm}% Breite der Bildchen
\newcommand\schrift{\footnotesize}% Einstellung für Bildbeschriftungen
\newcommand\zeilenabstand{.75\tabcolsep}

\newcommand\grafik[2]{%
  \begin{minipage}{\bildbreite}
    \centering\raisebox{.5\tabcolsep}{%
      \parbox{\linewidth}{\hspace*{0pt}\raggedright\schrift#1}}\newline%
    \includegraphics[width=\linewidth,height=\bildhoehe]{#2}%
  \end{minipage}%
}

\newcommand\LV{\rule{0pt}{0.5\bildhoehe}}% Stütze, liefert nötige Höhe für Endpunkte

\tikzset{vp/.style={circle,fill,inner sep=3pt}}
\newcommand\verbindungslinie[3]{
  \foreach [remember=\p as \lastp (initially #2)] \p in {#3}
    \draw[#1]([yshift=.5\bildhoehe]\lastp.south)node[vp]{}--([yshift=.5\bildhoehe]\p.south)node[vp]{};
}
\newcommand\verbindungsendlinie[5][]{%
  \draw[#2]([yshift=.5\bildhoehe]#3.south)node[vp]{}--([yshift=.5\bildhoehe,#1]#4.south)node[vp,font=\bfseries,label={#5}]{};
}

\usepackage{mwe}% für example-image
\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
    \begin{tikzpicture}[
        very thick,
        nodes={inner sep=\tabcolsep}
      ]
      \matrix[
          matrix of nodes,
          inner sep=0pt,
          nodes={anchor=south},
          row sep=\zeilenabstand,
          column 1/.style={text width={2\tabcolsep+1em},align=right,yshift=0.5\bildhoehe},
          column 2/.style={text width=2.5cm,yshift=0.5\bildhoehe}
        ](m){
          1&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 1}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          2&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 2}}
            &\grafik{längerer Text}{example-image}
            &\grafik{Beispielbild}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\[\tabcolsep]% wegen der Linie
          \ldots&{}
            &\grafik{Text}{example-image}
            &\grafik{Bild mit sehr langem Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          n&\smash{\parbox[t]{\linewidth}{Teil-\\funktion n}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          &&\LV&\LV&\LV&\LV\\% nur nötig, wenn es Endpunkte unterhalb der Bildchen gibt
        };
% Kopfzeile
      \node(ul)[anchor=south west] 
        at ([yshift={\zeilenabstand+\aboverulesep+\belowrulesep}]m.north west)
        {Teilfunktion};
      \node(or)[anchor=south east] at (ul.north-|m-1-2.east){\begin{tabular}{@{}l@{}}Lösungs-\\varianten\end{tabular}};
      \foreach[count=\i from 3] \c in {1,2,\ldots,m}
        \node[anchor=base] at (or.base-|m-1-\i){\c};
      \draw[line width=\lightrulewidth]([yshift=\aboverulesep]or.north-|ul.west)--([yshift=-\aboverulesep]or.east|-ul.south) 
        ([yshift=-\aboverulesep]ul.south-|m.west)
          --([yshift=-\aboverulesep]ul.south-|m.east)coordinate(kzr)
          ([yshift=-\aboverulesep]or.south east|-ul.south)--([yshift={-\aboverulesep-\zeilenabstand}]or.south east|-m.south)
        ;
      \draw[line width=\heavyrulewidth]([yshift=\belowrulesep]or.north-|m.west) coordinate(kzl)
          --([yshift=\belowrulesep]or.north-|m.east)% obere Begrezung
        ([yshift={-\aboverulesep-\zeilenabstand}]m.south west)
          --([yshift={-\aboverulesep-\zeilenabstand}]m.south east)coordinate(fzr)% untere Begrenzung
        (kzl)--(kzl|-fzr)% linke Begrenzung
        (kzl-|fzr)--(fzr)% rechte Begrenzung
        ;
% Kopfzeilenhintergrund
      \begin{scope}[on background layer]
        \fill[green](kzl) rectangle (kzr);
      \end{scope}
% Verbindungslinien
      \verbindungslinie{red}{m-1-3}{m-2-4,m-3-3,m-4-5}%,m-5-5}
      \verbindungsendlinie[xshift=10pt]{red}{m-4-5}{m-5-4}{[anchor=135]below:LV1}
      \verbindungslinie{blue}{m-1-5}{m-2-3,m-3-3,m-4-3}%,m-5-3}
      \verbindungsendlinie[xshift=-10pt]{blue}{m-4-3}{m-5-4}{[anchor=45]below:LV2}% letzte Verbindung
      \verbindungslinie{green}{m-1-6}{m-2-6,m-3-4,m-4-6}%,m-5-6}
      \verbindungsendlinie{green}{m-4-6}{m-5-6}{below:LV3}
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{}
        (m-2-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-2-3.south)--([yshift=-\tabcolsep]m.east|-m-2-3.south);
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

Re: Tikz

von ProtonLaser » Mo 23. Jan 2023, 08:25

Guten Tag ,
auch hier möchte ich mich erneut für Ihre Hilfe bedanken!
Es hat mir viel gebracht und Zeit gespart- DANKE dafür!

Ich hätte noch eine weiter Frage und zwar möchte ich die verschiedenen Lösungslinien, die alle in der sechsten Reihe Ende so platzieren, das sie sich nicht überlappen.
Es liegen zB. LV1 über LV2 die Lösungen haben unterschiedliche Farben jedoch kann man leider nicht genau erkennen um welche Lösungen es sich handelt.

Wie bekomme ich es hin, das die "LV" die in der gleichen Zeile und Spalte enden so platziere, das diese nebeneinander erkennbar stehen?


vielen Dank im voraus für eine Hilfe!

VG

Re: Tikz

von esdd » Do 5. Jan 2023, 22:15

Dann musst du den Teil
% Verbindungslinien
      \verbindungslinie{red}{m-1-3}{m-2-4,m-3-3,m-4-5,m-5-5}
      \verbindungslinie{blue}{m-1-5}{m-2-3,m-3-3,m-4-3,m-5-3}
      \verbindungslinie{green}{m-1-6}{m-2-6,m-3-4,m-4-6,m-5-6}
      \foreach \f/\p/\t in {red/m-5-5/LV1,blue/m-5-3/LV2,green/m-5-6/LV3}
        \node[\f,below,font=\bfseries]at(\p){\t};
entsprechend Deinen Wünschen anpassen.

Beispiel:
\documentclass[captions=tableheading]{scrreprt}
\usepackage[top=25mm , bottom=25mm , left=25mm , right=25mm , bindingoffset=5mm]{geometry}

\usepackage[ngerman]{babel}
%\usepackage[utf8]{inputenc}% wird nicht mehr benötigt
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{backgrounds}

\newlength\bildhoehe
\setlength\bildhoehe{2cm}% Höhe der Bildchen
\newcommand\bildbreite{2cm}% Breite der Bildchen
\newcommand\schrift{\footnotesize}% Einstellung für Bildbeschriftungen
\newcommand\zeilenabstand{.75\tabcolsep}

\newcommand\grafik[2]{%
  \begin{minipage}{\bildbreite}
    \centering\raisebox{.5\tabcolsep}{%
      \parbox{\linewidth}{\hspace*{0pt}\raggedright\schrift#1}}\newline%
    \includegraphics[width=\linewidth,height=\bildhoehe]{#2}%
  \end{minipage}%
}

\newcommand\LV{\rule{0pt}{0.5\bildhoehe}}% Stütze, liefert nötige Höhe für Endpunkte

\tikzset{vp/.style={circle,fill,inner sep=3pt}}
\newcommand\verbindungslinie[3]{
  \foreach [remember=\p as \lastp (initially #2)] \p in {#3}
    \draw[#1]([yshift=.5\bildhoehe]\lastp.south)node[vp]{}--([yshift=.5\bildhoehe]\p.south)node[vp]{};
}

\usepackage{mwe}% für example-image
\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
    \begin{tikzpicture}[
        very thick,
        nodes={inner sep=\tabcolsep}
      ]
      \matrix[
          matrix of nodes,
          inner sep=0pt,
          nodes={anchor=south},
          row sep=\zeilenabstand,
          column 1/.style={text width={2\tabcolsep+1em},align=right,yshift=0.5\bildhoehe},
          column 2/.style={text width=2.5cm,yshift=0.5\bildhoehe}
        ](m){
          1&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 1}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          2&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 2}}
            &\grafik{längerer Text}{example-image}
            &\grafik{Beispielbild}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\[\tabcolsep]% wegen der Linie
          \ldots&{}
            &\grafik{Text}{example-image}
            &\grafik{Bild mit sehr langem Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          n&\smash{\parbox[t]{\linewidth}{Teil-\\funktion n}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          &&\LV&\LV&\LV&\LV\\% nur nötig, wenn es Endpunkte unterhalb der Bildchen gibt
        };
% Kopfzeile
      \node(ul)[anchor=south west] 
        at ([yshift={\zeilenabstand+\aboverulesep+\belowrulesep}]m.north west)
        {Teilfunktion};
      \node(or)[anchor=south east] at (ul.north-|m-1-2.east){\begin{tabular}{@{}l@{}}Lösungs-\\varianten\end{tabular}};
      \foreach[count=\i from 3] \c in {1,2,\ldots,m}
        \node[anchor=base] at (or.base-|m-1-\i){\c};
      \draw[line width=\lightrulewidth]([yshift=\aboverulesep]or.north-|ul.west)--([yshift=-\aboverulesep]or.east|-ul.south) 
        ([yshift=-\aboverulesep]ul.south-|m.west)
          --([yshift=-\aboverulesep]ul.south-|m.east)coordinate(kzr)
          ([yshift=-\aboverulesep]or.south east|-ul.south)--([yshift={-\aboverulesep-\zeilenabstand}]or.south east|-m.south)
        ;
      \draw[line width=\heavyrulewidth]([yshift=\belowrulesep]or.north-|m.west) coordinate(kzl)
          --([yshift=\belowrulesep]or.north-|m.east)% obere Begrezung
        ([yshift={-\aboverulesep-\zeilenabstand}]m.south west)
          --([yshift={-\aboverulesep-\zeilenabstand}]m.south east)coordinate(fzr)% untere Begrenzung
        (kzl)--(kzl|-fzr)% linke Begrenzung
        (kzl-|fzr)--(fzr)% rechte Begrenzung
        ;
% Kopfzeilenhintergrund
      \begin{scope}[on background layer]
        \fill[green](kzl) rectangle (kzr);
      \end{scope}
% Verbindungslinien
      \verbindungslinie{red}{m-1-3}{m-2-4,m-3-3,m-4-5,m-5-5}
      \verbindungslinie{blue}{m-1-5}{m-2-3,m-3-3,m-4-3,m-5-3}
      \verbindungslinie{green}{m-1-6}{m-2-6,m-3-4,m-4-6,m-5-6}
      \foreach \f/\p/\t in {red/m-5-5/LV1,green/m-5-6/LV3}% <- geändert
        \node[\f,below,font=\bfseries]at(\p){\t};
      \node[blue,right,font=\bfseries]at([yshift=.5\bildhoehe]m-5-3.south){LV2};% <- hinzugefügt
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{}
        (m-2-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-2-3.south)--([yshift=-\tabcolsep]m.east|-m-2-3.south);
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

Re: Tikz

von ProtonLaser » Do 5. Jan 2023, 12:02

Ich hätte noch eine weiter Frage:

In der letzten Zeile (n) des Morphologischen Kastens ende die bunten Linien.
Ich habe nun folgendes Problem:
Wie kann ich die "Lösungsvarianten - LV" so neben den Punkten positionieren, sodass wenn ich mehrere Lösungsvarianten habe, die an einem Punkte Ende nicht übereinander gelegt werden?
Ich würde es gerne erreichen, das ich das "LV" neben, drüber oder unter dem Endpunkt der Linie positionieren kann.

Ich hoffe meine Anliegen wird deutlich bzw. ist verständlich erklärt.

Danke im Voraus für Hilfe!

Re: Tikz

von ProtonLaser » Di 3. Jan 2023, 07:33

Vielen, vielen lieben Dank für deine Hilfe!

Re: Tikz

von esdd » Fr 23. Dez 2022, 02:40

Die Größe der Bildchen wird in den Zeilen 12 (\bildhöhe) und 13 (\bildbreite) festgelegt.

Die linke und rechte Begrenzungslinie habe ich dir in folgendem Beispiel eingefügt:
\documentclass[captions=tableheading]{scrreprt}
\usepackage[top=25mm , bottom=25mm , left=25mm , right=25mm , bindingoffset=5mm]{geometry}

\usepackage[ngerman]{babel}
%\usepackage[utf8]{inputenc}% wird nicht mehr benötigt
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{backgrounds}

\newlength\bildhoehe
\setlength\bildhoehe{2cm}% Höhe der Bildchen
\newcommand\bildbreite{2cm}% Breite der Bildchen
\newcommand\schrift{\footnotesize}% Einstellung für Bildbeschriftungen
\newcommand\zeilenabstand{.75\tabcolsep}

\newcommand\grafik[2]{%
  \begin{minipage}{\bildbreite}
    \centering\raisebox{.5\tabcolsep}{%
      \parbox{\linewidth}{\hspace*{0pt}\raggedright\schrift#1}}\newline%
    \includegraphics[width=\linewidth,height=\bildhoehe]{#2}%
  \end{minipage}%
}

\newcommand\LV{\rule{0pt}{0.5\bildhoehe}}% Stütze, liefert nötige Höhe für Endpunkte

\tikzset{vp/.style={circle,fill,inner sep=3pt}}
\newcommand\verbindungslinie[3]{
  \foreach [remember=\p as \lastp (initially #2)] \p in {#3}
    \draw[#1]([yshift=.5\bildhoehe]\lastp.south)node[vp]{}--([yshift=.5\bildhoehe]\p.south)node[vp]{};
}

\usepackage{mwe}% für example-image
\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
    \begin{tikzpicture}[
        very thick,
        nodes={inner sep=\tabcolsep}
      ]
      \matrix[
          matrix of nodes,
          inner sep=0pt,
          nodes={anchor=south},
          row sep=\zeilenabstand,
          column 1/.style={text width={2\tabcolsep+1em},align=right,yshift=0.5\bildhoehe},
          column 2/.style={text width=2.5cm,yshift=0.5\bildhoehe}
        ](m){
          1&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 1}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          2&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 2}}
            &\grafik{längerer Text}{example-image}
            &\grafik{Beispielbild}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\[\tabcolsep]% wegen der Linie
          \ldots&{}
            &\grafik{Text}{example-image}
            &\grafik{Bild mit sehr langem Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          n&\smash{\parbox[t]{\linewidth}{Teil-\\funktion n}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          &&\LV&\LV&\LV&\LV\\% nur nötig, wenn es Endpunkte unterhalb der Bildchen gibt
        };
% Kopfzeile
      \node(ul)[anchor=south west] 
        at ([yshift={\zeilenabstand+\aboverulesep+\belowrulesep}]m.north west)
        {Teilfunktion};
      \node(or)[anchor=south east] at (ul.north-|m-1-2.east){\begin{tabular}{@{}l@{}}Lösungs-\\varianten\end{tabular}};
      \foreach[count=\i from 3] \c in {1,2,\ldots,m}
        \node[anchor=base] at (or.base-|m-1-\i){\c};
      \draw[line width=\lightrulewidth]([yshift=\aboverulesep]or.north-|ul.west)--([yshift=-\aboverulesep]or.east|-ul.south) 
        ([yshift=-\aboverulesep]ul.south-|m.west)
          --([yshift=-\aboverulesep]ul.south-|m.east)coordinate(kzr)
          ([yshift=-\aboverulesep]or.south east|-ul.south)--([yshift={-\aboverulesep-\zeilenabstand}]or.south east|-m.south)
        ;
      \draw[line width=\heavyrulewidth]([yshift=\belowrulesep]or.north-|m.west) coordinate(kzl)
          --([yshift=\belowrulesep]or.north-|m.east)% obere Begrezung
        ([yshift={-\aboverulesep-\zeilenabstand}]m.south west)
          --([yshift={-\aboverulesep-\zeilenabstand}]m.south east)coordinate(fzr)% untere Begrenzung
        (kzl)--(kzl|-fzr)% linke Begrenzung
        (kzl-|fzr)--(fzr)% rechte Begrenzung
        ;
% Kopfzeilenhintergrund
      \begin{scope}[on background layer]
        \fill[green](kzl) rectangle (kzr);
      \end{scope}
% Verbindungslinien
      \verbindungslinie{red}{m-1-3}{m-2-4,m-3-3,m-4-5,m-5-5}
      \verbindungslinie{blue}{m-1-5}{m-2-3,m-3-3,m-4-3,m-5-3}
      \verbindungslinie{green}{m-1-6}{m-2-6,m-3-4,m-4-6,m-5-6}
      \foreach \f/\p/\t in {red/m-5-5/LV1,blue/m-5-3/LV2,green/m-5-6/LV3}
        \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{}
        (m-2-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-2-3.south)--([yshift=-\tabcolsep]m.east|-m-2-3.south);
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

Re: Tikz

von ProtonLaser » Mo 19. Dez 2022, 08:55

Vielen, vielen lieben Dank für deine Antwort!
Du kannst dir gar nicht vorstellen wie sehr mir das geholfen hat.

Ich hätte noch zwei weiter Fragen.

Wie kann ich die Kästchen der Fotos größer machen ?

Und wie bekomme ich einen "Rahmen" um das ganze , sodass ein Kasten entsteht also quasi zwei senkrechte Linien rechts und links?

Danke im Voraus!

Und nochmals vielen Dank für deine Hilfe!

Re: Tikz

von esdd » Mi 14. Dez 2022, 22:05

\documentclass[captions=tableheading]{scrreprt}
\usepackage[top=25mm , bottom=25mm , left=25mm , right=25mm , bindingoffset=5mm]{geometry}

\usepackage[ngerman]{babel}
%\usepackage[utf8]{inputenc}% wird nicht mehr benötigt
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{matrix}
\usetikzlibrary{backgrounds}

\newlength\bildhoehe
\setlength\bildhoehe{2cm}
\newcommand\bildbreite{2cm}
\newcommand\schrift{\footnotesize}% Einstellung für Bildbeschriftungen
\newcommand\zeilenabstand{.75\tabcolsep}

\newcommand\grafik[2]{%
  \begin{minipage}{\bildbreite}
    \centering\raisebox{.5\tabcolsep}{%
      \parbox{\linewidth}{\hspace*{0pt}\raggedright\schrift#1}}\newline%
    \includegraphics[width=\linewidth,height=\bildhoehe]{#2}%
  \end{minipage}%
}

\newcommand\LV{\rule{0pt}{0.5\bildhoehe}}% Stütze, liefert nötige Höhe für Endpunkte

\tikzset{vp/.style={circle,fill,inner sep=3pt}}
\newcommand\verbindungslinie[3]{
  \foreach [remember=\p as \lastp (initially #2)] \p in {#3}
    \draw[#1]([yshift=.5\bildhoehe]\lastp.south)node[vp]{}--([yshift=.5\bildhoehe]\p.south)node[vp]{};
}

\usepackage{mwe}% für example-image
\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
    \begin{tikzpicture}[
        very thick,
        nodes={inner sep=\tabcolsep}
      ]
      \matrix[
          matrix of nodes,
          inner sep=0pt,
          nodes={anchor=south},
          row sep=\zeilenabstand,
          column 1/.style={text width={2\tabcolsep+1em},align=right,yshift=0.5\bildhoehe},
          column 2/.style={text width=2.5cm,yshift=0.5\bildhoehe}
        ](m){
          1&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 1}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          2&\smash{\parbox[t]{\linewidth}{Teil-\\funktion 2}}
            &\grafik{längerer Text}{example-image}
            &\grafik{Beispielbild}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\[\tabcolsep]% wegen der Linie
          \ldots&{}
            &\grafik{Text}{example-image}
            &\grafik{Bild mit sehr langem Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          n&\smash{\parbox[t]{\linewidth}{Teil-\\funktion n}}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          &&\LV&\LV&\LV&\LV\\
        };
% Kopfzeile
      \node(ul)[anchor=south west] 
        at ([yshift={\zeilenabstand+\aboverulesep+\belowrulesep}]m.north west)
        {Teilfunktion};
      \node(or)[anchor=south east] at (ul.north-|m-1-2.east){\begin{tabular}{@{}l@{}}Lösungs-\\varianten\end{tabular}};
      \foreach[count=\i from 3] \c in {1,2,\ldots,m}
        \node[anchor=base] at (or.base-|m-1-\i){\c};
      \draw[line width=\lightrulewidth]([yshift=\aboverulesep]or.north-|ul.west)--([yshift=-\aboverulesep]or.east|-ul.south) 
        ([yshift=-\aboverulesep]ul.south-|m.west)
          --([yshift=-\aboverulesep]ul.south-|m.east)coordinate(kzr)
          ([yshift=-\aboverulesep]or.south east|-ul.south)--([yshift={-\aboverulesep-\zeilenabstand}]or.south east|-m.south)
        ;
      \draw[line width=\heavyrulewidth]([yshift=\belowrulesep]or.north-|m.west) coordinate(kzl)
          --([yshift=\belowrulesep]or.north-|m.east)
        ([yshift={-\aboverulesep-\zeilenabstand}]m.south west)
          --([yshift={-\aboverulesep-\zeilenabstand}]m.south east);
% Kopfzeilenhintergrund
      \begin{scope}[on background layer]
        \fill[green](kzl) rectangle (kzr);
      \end{scope}
% Verbindungslinien
      \verbindungslinie{red}{m-1-3}{m-2-4,m-3-3,m-4-5,m-5-5}
      \verbindungslinie{blue}{m-1-5}{m-2-3,m-3-3,m-4-3,m-5-3}
      \verbindungslinie{green}{m-1-6}{m-2-6,m-3-4,m-4-6,m-5-6}
      \foreach \f/\p/\t in {red/m-5-5/LV1,blue/m-5-3/LV2,green/m-5-6/LV3}
        \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{}
        (m-2-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-2-3.south)--([yshift=-\tabcolsep]m.east|-m-2-3.south);
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}
Welche Hintergründe weiß und grau sein sollen, habe ich nicht verstanden.

PS: Das Original stammt ursprünglich von TeXwelt Wie kann ich mit TikZ die Lösungsvarianten im morphologischen Kasten in Gruppen zusammenfassen?
oder
Wie kann ich mit TikZ die Lösungsvarianten im morphologischen Kasten zeichnen?

Tikz

von ProtonLaser » Mo 12. Dez 2022, 16:51

Guten Tag,
wie ihr sehen könnt bin ich neu hier. Mit LateX aber mehr als ein Newbie.

Ich hätte folgende Frage an euch hier in der Runde:
Ich erstelle gerade eine Thesis, in der ein Morphologischer Kasten vorkommen soll, diesen habe ich online gefunden.
Grundsätzlich ist er für mein Vorhaben gut, dennoch habe ich ein zwei Änderungen die ich leider trotz langen Versuche nicht umgesetzt bekomme.
Ersten würde ich gerne, dass zwischen den beiden Linien oben der ganze Bereich grün hinterlegt wird.

Zweitens möchte ich das die diagonale Linie die nach "Lösungsvarianten" aufhört senkrecht nach unten geht und so eine Linie als Abgrenzung bildet.

Wenn es darüber hinaus noch möglich wäre, die Teilfunktionen 1, Teilfunktion 2 usw. die untereinander stehen umbrechen zu lassen, sodass mehr Platz für Bilder entsteht wäre das fantastisch!

Und als letztes, gibt es eine Möglichkeit, die Hintergründe der einzelnen Punkte so zu gestallten, das sie abwechselnd weiß und dann grau sind?

Für eure Hilfe wäre ich sehr, sehr Dankbar und hoffe das ich in Zukunft auch unterstützend hier im Forum helfen kann!
Vielen Dank im Voraus! :)
Hier der Link zum Original Code:viewtopic.php?t=24743
\documentclass[captions=tableheading]{scrreprt}
\usepackage[top=25mm , bottom=25mm , left=25mm , right=25mm , bindingoffset=5mm]{geometry}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{tikz}
\usetikzlibrary{matrix}

\newlength\bildhoehe
\setlength\bildhoehe{2cm}
\newcommand\bildbreite{2cm}
\newcommand\schrift{\footnotesize}% Einstellung für Bildbeschriftungen
\newcommand\zeilenabstand{.75\tabcolsep}

\newcommand\grafik[2]{%
  \begin{minipage}{\bildbreite}
    \centering\raisebox{.5\tabcolsep}{%
      \parbox{\linewidth}{\hspace*{0pt}\raggedright\schrift#1}}\newline%
    \includegraphics[width=\linewidth,height=\bildhoehe]{#2}%
  \end{minipage}%
}

\newcommand\LV{\rule{0pt}{0.5\bildhoehe}}% Stütze, liefert nötige Höhe für Endpunkte

\tikzset{vp/.style={circle,fill,inner sep=3pt}}
\newcommand\verbindungslinie[3]{
  \foreach [remember=\p as \lastp (initially #2)] \p in {#3}
    \draw[#1]([yshift=.5\bildhoehe]\lastp.south)node[vp]{}--([yshift=.5\bildhoehe]\p.south)node[vp]{};
}

\usepackage{mwe}% für example-image
\begin{document}
\begin{center}
  \begin{minipage}{\linewidth}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
    \begin{tikzpicture}[
        very thick,
        nodes={inner sep=\tabcolsep}
      ]
      \matrix[
          matrix of nodes,
          inner sep=0pt,
          nodes={anchor=south},
          row sep=\zeilenabstand,
          column 1/.style={text width={2\tabcolsep+1em},align=right,yshift=0.5\bildhoehe},
          column 2/.style={minimum width=4.5cm,yshift=0.5\bildhoehe}
        ](m){
          1&Teilfunktion 1
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          2&Teilfunktion 2
            &\grafik{längerer Text}{example-image}
            &\grafik{Beispielbild}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\[\tabcolsep]% wegen der Linie
          \ldots&{}
            &\grafik{Text}{example-image}
            &\grafik{Bild mit sehr langem Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          n&Teilfunktion n
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          &&\LV&\LV&\LV&\LV\\
        };
% Kopfzeile
      \node(ul)[anchor=south west] 
        at ([yshift={\zeilenabstand+\aboverulesep+\belowrulesep}]m.north west)
        {Teilfunktion};
      \node(or)[anchor=south east] at (ul.north-|m-1-2.east){Lösungsvarianten};
      \foreach[count=\i from 3] \c in {1,2,\ldots,m}
        \node[anchor=base] at (or.base-|m-1-\i){\c};
% Tabellenlinien
      \draw[line width=\lightrulewidth](or.north-|ul.west)--(or.east|-ul.south)
        ([yshift=-\aboverulesep]ul.south-|m.west)
          --([yshift=-\aboverulesep]ul.south-|m.east);
      \draw[line width=\heavyrulewidth]([yshift=\belowrulesep]or.north-|m.west)
          --([yshift=\belowrulesep]or.north-|m.east)
        ([yshift={-\aboverulesep-\zeilenabstand}]m.south west)
          --([yshift={-\aboverulesep-\zeilenabstand}]m.south east);
% Verbindungslinien
      \verbindungslinie{red}{m-1-3}{m-2-4,m-3-3,m-4-5,m-5-5}
      \verbindungslinie{blue}{m-1-5}{m-2-3,m-3-3,m-4-3,m-5-3}
      \verbindungslinie{green}{m-1-6}{m-2-6,m-3-4,m-4-6,m-5-6}
      \foreach \f/\p/\t in {red/m-5-5/LV1,blue/m-5-3/LV2,green/m-5-6/LV3}
        \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{}
        (m-2-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-2-3.south)--([yshift=-\tabcolsep]m.east|-m-2-3.south);
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

Nach oben