goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Morphologischer Kasten mit TikZ

 

ocir
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 61
Anmeldedatum: 22.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.07.2017, 19:43     Titel: Morphologischer Kasten mit TikZ
  Antworten mit Zitat      
Hallo

Ich habe hier eine Vorlage für einen morphologischen Kasten gefunden, der ziemlich meinen Vorstellungen entspricht.

Code • Öffne in Overleaf
\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={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\\
        };
% 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]m.west|-m-2-3.south)--([yshift=-\tabcolsep]m.east|-m-2-3.south);
    \end{tikzpicture}
  \end{minipage}
\end{center}
\end{document}
 


Wenn ich meine Bilder einfügen möchte, mach ich das ja mit \includegraphics
Wie kann ich dann einen Text über das Bild setzen, so wie in diesem Beispiel?
Private Nachricht senden Benutzer-Profile anzeigen

Beinschuss
Forum-Meister
Forum-Meister

Beiträge: 707
Anmeldedatum: 02.10.12
Wohnort: NRW
Version: MiKTeX, Windows 10, TeXstudio
     Beitrag Verfasst am: 13.07.2017, 22:16     Titel:
  Antworten mit Zitat      
Über jedem einzelnen Bild steht doch schon "Text" (oder "längerer Text" oder "Beispieltext"). Das kannst Du doch einfach mit dem, was Du schreiben willst, ersetzen. Ansonsten bitte ich Dich, Dein Anliegen präziser zu formulieren.
Private Nachricht senden Benutzer-Profile anzeigen

ocir
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 61
Anmeldedatum: 22.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2017, 15:34     Titel:
  Antworten mit Zitat      
Hat sich bereits erledigt. Smile

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? Smile


Weiterhin sollen an einer bestimmten Stelle die 4 Spalten (1, 2, \dots, 4) zu einer zusammengefasst warden, siehe Bild.
Wie mancht man sowas?

spalten_zusammen.PNG
 Beschreibung:

Download
 Dateiname:  spalten_zusammen.PNG
 Dateigröße:  22.09 KB
 Heruntergeladen:  18 mal
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2133
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 14.07.2017, 22:50     Titel:
  Antworten mit Zitat      
ocir hat Folgendes 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 Folgendes 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.

Code • Öffne in Overleaf
\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}
Private Nachricht senden Benutzer-Profile anzeigen

ocir
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 61
Anmeldedatum: 22.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.07.2017, 14:49     Titel:
  Antworten mit Zitat      
Danke für die Antwort Smile

Das mit der Textbreite hat geklappt. Smile

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? Smile
Private Nachricht senden Benutzer-Profile anzeigen

ocir
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 61
Anmeldedatum: 22.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.07.2017, 17:02     Titel:
  Antworten mit Zitat      
Ich füge mal meinen aktuellen Stand hier ein:

Code • Öffne in Overleaf

\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:

Code • Öffne in Overleaf

\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.
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2133
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 17.07.2017, 23:09     Titel:
  Antworten mit Zitat      
Die beiden geänderten Zeilen habe ich mit %<- geändert markiert:

Code • Öffne in Overleaf
\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}
Private Nachricht senden Benutzer-Profile anzeigen

ocir
Forum-Fortgeschrittener
Forum-Fortgeschrittener

Beiträge: 61
Anmeldedatum: 22.06.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.07.2017, 19:14     Titel:
  Antworten mit Zitat      
Dankeschön Smile
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de