Ich habe in meinem morphologischen Kasten die Bilder alle beschriftet. Jedoch kommt es ja vor das der Begriff ziemlich lang ist. Demnach wird ja auch logischerweise die Tabelle breiter.

Was ich jetzt jedoch erreichen möchte ist, dass dies nicht passiert. Ich würde lieber gerne die Schrift verkleinern und eventuell hin und wieder mal einen Zeilenbruch dafür haben. Die Spalten der einzelnen Lösungsvarianten könnten sich auch nach der Breite der Bilder richten.

Könnt ihr mir da vielleicht weiter helfen?

Öffne in Overleaf
\documentclass[DIV=21,12pt,captions=tableheading]{scrreprt}

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

    \newcommand\zeilenabstand{\normalbaselineskip}

    \newcommand\grafik[2]{%
      \begin{minipage}{2cm}
        \centering\smash{\raisebox{\tabcolsep}{#1}}%
        \includegraphics[width=\linewidth,height=2cm]{#2}%
      \end{minipage}%
    }

    \tikzset{vp/.style={circle,fill,inner sep=3pt}}
    \newcommand\verbindungslinie[3]{
      \foreach [remember=\p as \lastp (initially #2)] \p in {#3}
        \draw[#1](\lastp.center)node[vp]{}--(\p.center)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,
              row sep=\zeilenabstand,
              column 2/.style={minimum width=5cm},
            ](m){
              1&Teilfunktion 1
                &\grafik{Text}{example-image}
                &\grafik{Text}{example-image}
                &\grafik{Text}{example-image}
                &\grafik{Text}{example-image}\\
              2&Teilfunktion 2
                &\grafik{Text}{example-image}
                &\grafik{Text}{example-image}
                &\grafik{Text}{example-image}
                &\grafik{Text}{example-image}\\
              \ldots&{}
                &\grafik{Text}{example-image}
                &\grafik{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}\\
              &&{}&{}&{}&{}\\
            };
    % 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};
        \end{tikzpicture}
      \end{minipage}
    \end{center}
    \end{document}

alt text

gefragt 07 Jan '15, 10:55

Giovario's gravatar image

Giovario
34011220
Akzeptiert: 88%

bearbeitet 19 Jul, 05:10

Clemens's gravatar image

Clemens
19.9k113360


Wenn die Beschriftung nur so breit wie das Bild sein soll, dann kannst Du sie in eine \parbox der entsprechenden Breite setzen. In der kann man dann auch eine Einstellung für die Schrift vornehmen. Wenn die Beschriftung auch mehrere Zeilen enthalten kann, dann kann man sie nicht mehr einfach in den ausreichend großen Zwischenraum zwischen den Bildern einfügen, sondern muss ihre Höhe explizit berücksichtigen. Dazu werden mit nodes={anchor=south} die Nodes an ihrem south Anker ausgerichtet. Dann werden auch nicht mehr die center Anker der Nodes verbunden, sondern die Punkte, die eine halbe Bildhöhe über dem south Anker liegen. In der letzten Zeile müssen die Nodes für die Endpunkte der Verbindungen dann eine entsprechende Höhe bekommen. Dafür wird an den Stellen eine Stütze über den neu definierten Befehl \LV eingefügt.

Ö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&\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}

alt text

Permanenter link

beantwortet 08 Jan '15, 04:53

esdd's gravatar image

esdd
15.5k53753

bearbeitet 17 Jul, 17:22

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×532
×35
×14

Frage gestellt: 07 Jan '15, 10:55

Frage wurde angeschaut: 3,508 Mal

Zuletzt aktualisiert: 19 Jul, 05:10