Morphologischer Kasten mit 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: Morphologischer Kasten mit TikZ

von ocir » Do 31. Aug 2017, 22:07

Genau, exakt so sollte es werden :)

Besten Dank :)

von esdd » Do 31. Aug 2017, 21:22

Mir ist jetzt nicht klar, was Du suchst. Vielleicht:
\documentclass[
BCOR=5mm,           
DIV=10,             
fontsize=12pt,      
oneside,            
parskip,            
bibliography=totoc, 
listof=totoc,      
fleqn                     
]{scrbook} 
\usepackage[utf8]{inputenc}
\usepackage{booktabs} 
\usepackage{tikz} 
\usetikzlibrary{matrix} 

\newlength\bildhoehe
\setlength\bildhoehe{1.5cm}
\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[b]{\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}    

\begin{document}
\begin{minipage}{\linewidth}
    \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.4\bildhoehe},
          column 2/.style={text width=4.0cm,yshift=0.4\bildhoehe},
          row 2/.style={nodes={anchor=base}}% <- ergänzt
        ](m){
          1&erste Teilfunktion
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Abdrück\-schraube}{example-image}% <- geändert
            &\grafik{Keil}{example-image}
            &\grafik{Fühler\-lehrenband}{example-image}\\% <- geändert
          |[yshift=-.4\bildhoehe]|2&|[yshift=-.4\bildhoehe]|zweite Teilfunktion% <- geändert
             &formschlüssig% <- geändert
             &kraftschlüssig% <- geändert
             &reibschlüssig% <- geändert
             &\\
          3&dritte Teilfunktion
            &\grafik{Hier steht Text}{example-image}
            &\grafik{Hier steht Text}{example-image}
            &\grafik{}{example-image}
            &\grafik{}{example-image}\\[\tabcolsep]% wegen der Linie
          4&vierte Teilfunktion
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Gelenkteller}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{}{example-image}\\[\dimexpr\tabcolsep+\normalbaselineskip\relax] 
          5&fünfte Teilfunktion
            &\grafik{Direkt mit Rohr}{example-image}
            &\grafik{Teil eingeschweißt}{example-image}
            &\grafik{rückseitig verschraubt}{example-image}
            &\grafik{Nutenstein}{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 {A,B,C,D}
        \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-3,m-3-3,m-4-4,m-5-4,m-6-4}
      \verbindungslinie{blue}{m-1-3}{m-2-3,m-3-3,m-4-3,m-5-6,m-6-6}
      \verbindungslinie{green}{m-1-5}{m-2-5,m-3-4,m-4-5,m-5-5,m-6-5}
      \verbindungslinie{orange}{m-1-4}{m-2-3,m-3-3,m-4-4,m-5-3,m-6-3}
      \foreach \f/\p/\t in {red/m-6-4/erprobt,blue/m-6-6/kostengünstig,green/m-6-5/innovativ,orange/m-6-3/zuverlässig}
      \node[\f,below,font=\bfseries]at(\p){\t};
%-----------------------------------------------------------------------------------------
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Hier steht Text}
        (m-3-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-3-3.south)--([yshift=-\tabcolsep]m.east|-m-3-3.south);
      \path(m-4-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Hier auch}
        (m-5-1.south west);
        \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m-4-3.south west)--([yshift=-\tabcolsep]m.east|-m-4-3.south)node[pos=.5,below]{Hier steht Text};
    \end{tikzpicture}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
  \end{minipage}
  \end{document}

von ocir » Do 31. Aug 2017, 19:45

Wirklich niemand? :(

Leider muss die Arbeit morgen in den Druck. Es ist zwar nur ein Schönheitsfehler, aber es wäre schon schön, wenn man den noch ausbessern kann.

von ocir » Do 31. Aug 2017, 10:04

Hallo

Ich würde hier gerne noch eine Optimierung durchführen. In der zweiten Zeile sollen keine Bilder sein, sondern nur Text stehen. Ich habe daher ein weißes Bild eingefügt. So wie es jetzt ist, ist es aber etwas verwirrend und man könnte denken, dass der Text zur ersten Zeile gehört.
Ich möchte also, dass "formschlüssig usw" etwas tiefer steht. Die weißen Bilder (alle vier Bilder in Zeile 2 sind weiß) sollen alle eine kleinere Bildhöhe haben, aber nur in dieser Zeile.
\documentclass[
BCOR=5mm,           
DIV=10,             
fontsize=12pt,      
oneside,            
parskip,            
bibliography=totoc, 
listof=totoc,      
fleqn                     
]{scrbook} 

\usepackage{booktabs} 
\usepackage{tikz} 
\usetikzlibrary{matrix} 

\newlength\bildhoehe
\setlength\bildhoehe{1.5cm}
\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[b]{\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}    

\begin{document}
\begin{minipage}{\linewidth}
    \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.4\bildhoehe},
          column 2/.style={text width=4.0cm,yshift=0.4\bildhoehe}
        ](m){
          1&erste Teilfunktion
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Abdrückschraube}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{Fühlerlehrenband}{example-image}\\
          2&zweite Teilfunktion
          	&\grafik{formschlüssig}{example-image}
            &\grafik{kraftschlüssig}{example-image}
            &\grafik{reibschlüssig}{example-image}
            &\grafik{}{example-image}\\
          3&dritte Teilfunktion
            &\grafik{Hier steht Text}{example-image}
            &\grafik{Hier steht Text}{example-image}
            &\grafik{}{example-image}
            &\grafik{}{example-image}\\[\tabcolsep]% wegen der Linie
          4&vierte Teilfunktion
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Gelenkteller}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{}{example-image}\\[\dimexpr\tabcolsep+\normalbaselineskip\relax] 
          5&fünfte Teilfunktion
            &\grafik{Direkt mit Rohr}{example-image}
            &\grafik{Teil eingeschweißt}{example-image}
            &\grafik{rückseitig verschraubt}{example-image}
            &\grafik{Nutenstein}{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 {A,B,C,D}
        \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-3,m-3-3,m-4-4,m-5-4,m-6-4}
      \verbindungslinie{blue}{m-1-3}{m-2-3,m-3-3,m-4-3,m-5-6,m-6-6}
      \verbindungslinie{green}{m-1-5}{m-2-5,m-3-4,m-4-5,m-5-5,m-6-5}
      \verbindungslinie{orange}{m-1-4}{m-2-3,m-3-3,m-4-4,m-5-3,m-6-3}
      \foreach \f/\p/\t in {red/m-6-4/erprobt,blue/m-6-6/kostengünstig,green/m-6-5/innovativ,orange/m-6-3/zuverlässig}
      \node[\f,below,font=\bfseries]at(\p){\t};
%-----------------------------------------------------------------------------------------
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Hier steht Text}
        (m-3-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-3-3.south)--([yshift=-\tabcolsep]m.east|-m-3-3.south);
      \path(m-4-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Hier auch}
        (m-5-1.south west);
        \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m-4-3.south west)--([yshift=-\tabcolsep]m.east|-m-4-3.south)node[pos=.5,below]{Hier steht Text};
    \end{tikzpicture}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
  \end{minipage}\end{document}

von ocir » Fr 28. Jul 2017, 14:34

Hallo :)

Das Bild hatte ich im Anhang vorgesehen. Mein Professor hat nun den aktuellen Stand Probe gelesen und möchte, dass das Bild im Hauptteil erscheint.
Da ich das Bild ja anscheinend nicht mit Seitenumbruch gestalten kann, wollte ich es in der "Mitte" abschneiden. Das erste Bild soll also nach Zeile 3 "Teilfunktion 3" beendet sein.
Mein Code sieht so aus:
\documentclass[
BCOR=5mm,           
DIV=10,             
fontsize=12pt,      
oneside,            
parskip,            
bibliography=totoc, 
listof=totoc,      
fleqn                     
]{scrbook} 

\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[b]{\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=4.0cm,yshift=0.5\bildhoehe}
        ](m){
          1&Teilfunktion 1
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Abdrückschraube}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{Fühlerlehrenband}{example-image}\\
          2&Teilfunktion 2
            &\grafik{Verschraubt}{example-image}
            &\grafik{Verstiftet}{example-image}
            &\grafik{Geometrie}{example-image}
            &\grafik{}{example-image}\\
          3&Teilfunktion 3
            &\grafik{Mit Grundrahmen verschraubt}{example-image}
            &\grafik{Von Gerät entkoppelt}{example-image}
            &\grafik{}{example-image}
            &\grafik{}{example-image}\\[\tabcolsep]% wegen der Linie
          &&\LV&\LV&\LV&\LV\\% <- geändert
        };
% 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 {A,B,C,D}
        \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-3,m-3-3}
      \verbindungslinie{blue}{m-1-3}{m-2-3,m-3-3}
      \verbindungslinie{green}{m-1-5}{m-2-5,m-3-4}
      \verbindungslinie{orange}{m-1-4}{m-2-3,m-3-3}
      \foreach \f/\p/\t in {red/m-3-3,blue/m-3-3,green/m-3-4,orange/m-3-3}
      \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Reitstock anbinden}
        (m-3-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-3-3.south)--([yshift=-\tabcolsep]m.east|-m-3-3.south);
    \end{tikzpicture}
    \captionof{table}{Morphologischer Kasten}\label{morphKasten} 
  \end{minipage}
\end{center}
\end{document}
Leider erhalte ich nur Fehlermeldungen. Kann mir bitte jemand zeigen, wie man das Bild in zwei separate Bilder zerlegt?

von ocir » Di 18. Jul 2017, 19:14

Dankeschön :)

von esdd » Mo 17. Jul 2017, 23:09

Die beiden geänderten Zeilen habe ich mit %<- geändert markiert:
\documentclass[
BCOR=5mm,           
DIV=10,             
fontsize=12pt,      
oneside,            
parskip,            
bibliography=totoc, 
listof=totoc,      
fleqn                     
]{scrbook} 

\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[b]{\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=4.0cm,yshift=0.5\bildhoehe}
        ](m){
          1&Teilfunktion 1
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Abdrückschraube}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{Fühlerlehrenband}{example-image}\\
          2&Teilfunktion 2
            &\grafik{Verschraubt}{example-image}
            &\grafik{Verstiftet}{example-image}
            &\grafik{Geometrie}{example-image}
            &\grafik{}{example-image}\\
          3&Teilfunktion 3
            &\grafik{Mit Grundrahmen verschraubt}{example-image}
            &\grafik{Von Gerät entkoppelt}{example-image}
            &\grafik{}{example-image}
            &\grafik{}{example-image}\\[\tabcolsep]% wegen der Linie
          4&Teilfunktion 4
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Gelenkteller}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{}{example-image}\\[\dimexpr\tabcolsep+\normalbaselineskip\relax] 
          5&Teilfunktion 5
            &\grafik{Direkt mit Rohr}{example-image}
            &\grafik{Teil eingeschweißt}{example-image}
            &\grafik{rückseitig verschraubt}{example-image}
            &\grafik{Nutenstein}{example-image}\\
          &&\LV&\LV&\LV&\LV\\% <- geändert
        };
% 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 {A,B,C,D}
        \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-3,m-3-3,m-4-4,m-5-4,m-6-4}
      \verbindungslinie{blue}{m-1-3}{m-2-3,m-3-3,m-4-3,m-5-6,m-6-6}
      \verbindungslinie{green}{m-1-5}{m-2-5,m-3-4,m-4-5,m-5-5,m-6-5}
      \foreach \f/\p/\t in {red/m-6-4/erprobt,blue/m-6-6/kostengünstig,green/m-6-5/innovativ}
      \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Beschriftung 1}
        (m-3-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-3-3.south)--([yshift=-\tabcolsep]m.east|-m-3-3.south);
      \path(m-4-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Beschriftung 2}
        (m-5-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m-4-3.south west)--([yshift=-\tabcolsep]m.east|-m-4-3.south)node[pos=.5,below]{Beschriftung unterhalb};% <- geändert
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

von ocir » Mo 17. Jul 2017, 17:02

Ich füge mal meinen aktuellen Stand hier ein:
\documentclass[
BCOR=5mm,           
DIV=10,             
fontsize=12pt,      
oneside,            
parskip,            
bibliography=totoc, 
listof=totoc,      
fleqn							
]{scrbook} 

\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[b]{\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=4.0cm,yshift=0.5\bildhoehe}
        ](m){
          1&Teilfunktion 1
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Abdrückschraube}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{Fühlerlehrenband}{example-image}\\
          2&Teilfunktion 2
          	&\grafik{Verschraubt}{example-image}
            &\grafik{Verstiftet}{example-image}
            &\grafik{Geometrie}{example-image}
            &\grafik{}{example-image}\\
          3&Teilfunktion 3
            &\grafik{Mit Grundrahmen verschraubt}{example-image}
            &\grafik{Von Gerät entkoppelt}{example-image}
            &\grafik{}{example-image}
            &\grafik{}{example-image}\\[\tabcolsep]% wegen der Linie
          4&Teilfunktion 4
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Gelenkteller}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{}{example-image}\\[\dimexpr\tabcolsep+\normalbaselineskip\relax] 
          5&Teilfunktion 5
            &\grafik{Direkt mit Rohr}{example-image}
            &\grafik{Teil eingeschweißt}{example-image}
            &\grafik{rückseitig verschraubt}{example-image}
            &\grafik{Nutenstein}{example-image}\\
          &&\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 {A,B,C,D}
        \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-3,m-3-3,m-4-4,m-5-4,m-6-4}
      \verbindungslinie{blue}{m-1-3}{m-2-3,m-3-3,m-4-3,m-5-6,m-6-6}
      \verbindungslinie{green}{m-1-5}{m-2-5,m-3-4,m-4-5,m-5-5,m-6-5}
      \foreach \f/\p/\t in {red/m-6-4/erprobt,blue/m-6-6/kostengünstig,green/m-6-5/innovativ}
      \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Beschriftung 1}
        (m-3-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-3-3.south)--([yshift=-\tabcolsep]m.east|-m-3-3.south);
      \path(m-4-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Beschriftung 2}
        (m-5-1.south west);
        \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-4-3.south)--([yshift=-\tabcolsep]m.east|-m-4-3.south)node[pos=.7,below]{Beschriftung unterhalb};
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

Leider erhalte ich eine Fehlermeldung. Lasse ich die rote Linie bspw. bei m-6-3 enden, läuft alles ohne Probleme, siehe hier:
\documentclass[
BCOR=5mm,           
DIV=10,             
fontsize=12pt,      
oneside,            
parskip,            
bibliography=totoc, 
listof=totoc,      
fleqn							
]{scrbook} 

\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[b]{\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=4.0cm,yshift=0.5\bildhoehe}
        ](m){
          1&Teilfunktion 1
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Abdrückschraube}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{Fühlerlehrenband}{example-image}\\
          2&Teilfunktion 2
          	&\grafik{Verschraubt}{example-image}
            &\grafik{Verstiftet}{example-image}
            &\grafik{Geometrie}{example-image}
            &\grafik{}{example-image}\\
          3&Teilfunktion 3
            &\grafik{Mit Grundrahmen verschraubt}{example-image}
            &\grafik{Von Gerät entkoppelt}{example-image}
            &\grafik{}{example-image}
            &\grafik{}{example-image}\\[\tabcolsep]% wegen der Linie
          4&Teilfunktion 4
            &\grafik{Kegelpfanne u. Kugelscheibe}{example-image}
            &\grafik{Gelenkteller}{example-image}
            &\grafik{Keil}{example-image}
            &\grafik{}{example-image}\\[\dimexpr\tabcolsep+\normalbaselineskip\relax] 
          5&Teilfunktion 5
            &\grafik{Direkt mit Rohr}{example-image}
            &\grafik{Teil eingeschweißt}{example-image}
            &\grafik{rückseitig verschraubt}{example-image}
            &\grafik{Nutenstein}{example-image}\\
          &&\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 {A,B,C,D}
        \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-3,m-3-3,m-4-4,m-5-4,m-6-3}
      \verbindungslinie{blue}{m-1-3}{m-2-3,m-3-3,m-4-3,m-5-6,m-6-6}
      \verbindungslinie{green}{m-1-5}{m-2-5,m-3-4,m-4-5,m-5-5,m-6-5}
      \foreach \f/\p/\t in {red/m-6-3/erprobt,blue/m-6-6/kostengünstig,green/m-6-5/innovativ}
      \node[\f,below,font=\bfseries]at(\p){\t};
% vertikale Beschriftung und Tabellenzwischenlinie
      \path(m-1-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Beschriftung 1}
        (m-3-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-3-3.south)--([yshift=-\tabcolsep]m.east|-m-3-3.south);
      \path(m-4-1.north west)--
         node[xshift=\zeilenabstand,rotate=90]{Beschriftung 2}
        (m-5-1.south west);
        \draw[line width=\lightrulewidth]([yshift=-\tabcolsep]m.west|-m-4-3.south)--([yshift=-\tabcolsep]m.east|-m-4-3.south)node[pos=.7,below]{Beschriftung unterhalb};
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}
Woran liegt das?

Kann mir bitte jemand bei der horizontalen Linie zwischen Zeile 4 und 5 helfen? Die soll nur von Spalte 3 bis 6 gehen.

von ocir » So 16. Jul 2017, 14:49

Danke für die Antwort :)

Das mit der Textbreite hat geklappt. :)

Die Linie soll zwischen zwei Teilfunktionen sein, also bspw. zwischen 1 und 2. Und sie soll nicht durchgängig sein, sondern nur von Spalte 3 bis ganz nach hinten.
Weiterhin habe ich mich umentschieden.. der Text soll anschließend unterhalb der Linie stehen.

Kannst du mir helfen? :)

von esdd » Fr 14. Jul 2017, 22:50

ocir hat geschrieben: Habe allerdings noch ein anderes Problem. Dort wo jeweils "Teilfunktion 1", "Teilfunktion 2" usw. steht, steht bei mir nun bspw. "Eigengewicht abstützen". Dieser Text ist aber zu lang und er wird nicht automatisch umgebrochen. Dadurch verschiebt es mir den Kasten bzw. also das TikZ-Bild über den Seitenrand hinaus. Wie kann man das beheben? :)
Ersetze für die 2.Spalte minimum width=4.5cm durch beispielsweise text width=4.5cm. Eventuell musst Du dann den Inhalt dieser Zelle etwas nach unten schieben. Beispielsweise (wenn es um die 2.Zeile geht):
ocir hat geschrieben: Weiterhin sollen an einer bestimmten Stelle die 4 Spalten (1, 2, \dots, 4) zu einer zusammengefasst warden, siehe Bild.
Wie mancht man sowas?
Du kannst den an der Stelle für die Linie eingefügten Platz entsprechend vergrößern und die Linie um den gleichen Betrag nach unten schieben und oberhalb einen Node mit dem Text einfügen.
\documentclass[DIV=21,12pt,captions=tableheading]{scrreprt}

\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[b]{\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=4.5cm,yshift=0.5\bildhoehe},
          row 2 column 2/.style={nodes={yshift=-.5\baselineskip}}% <- Text nach unten verschoben
        ](m){
          1&Teilfunktion 1
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\
          2&Lange Teilfunktion 2 mit Zeilenumbruch
            &\grafik{längerer Text}{example-image}
            &\grafik{Beispielbild}{example-image}
            &\grafik{Text}{example-image}
            &\grafik{Text}{example-image}\\[\dimexpr\tabcolsep+\normalbaselineskip\relax]% 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\\
        };
% 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]{Beschriftung}
        (m-2-1.south west);
      \draw[line width=\lightrulewidth]([yshift=-\tabcolsep-\normalbaselineskip]m.west|-m-2-3.south)--([yshift=-\tabcolsep-\normalbaselineskip]m.east|-m-2-3.south)
      node[pos=.7,above]{Weiterer Text};
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}

Nach oben