Seite 1 von 1

Tabelle neben Bild, es mag nicht so wie ich

Verfasst: Di 5. Nov 2013, 14:52
von BlackDevil
Noch mal Hallo Zusammen,

Der letzte Post heute, denke ich :D

Ich versuche eine Tabelle neben ein Bild zu packen. Gelesen hab ich viel (wirklich) und probiert habe ich mindestens genauso viel, aber es funktioniert einfach nicht.

Ich habe eine Tabelle, welche ich mit PGFPlotsTables erzeuge. Daneben ein Bild. Beide sind unterschiedlich groß und haben ein Caption. Die beiden Caption sollen ebeneinander stehen, das Bild vertikal zentriert sein.
  TTTTTT
  TTTTTT
  TTTTTT        BBB
  TTTTTT        BBB
  TTTTTT        BBB
  TTTTTT
  TTTTTT
  Caption     Caption
Mein Code sieht derzeit so aus:
\documentclass[listof=totocnumbered,
				bibliography=totoc,
				twoside,12pt,
				headsepline,
				footsepline,
				cleardoublepage=current,
				chapterprefix,headings=normal]{scrbook}
\usepackage{pgf}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{pgfplotstable}

\begin{document}


\begin{figure}[ht] 
\centering
   \begin{minipage}[b]{0.45\textwidth}
	   \centering
	   \pgfplotstabletypeset[
		every even row/.style={
		before row={\rowcolor[gray]{0.9}}},
		every head row/.style={
		before row=\toprule,after row=\midrule},
		every last row/.style={
		after row=\bottomrule},
		]{./chapter/ch4/rawdata.data}
		\captionof{table}[Raw Data for KDD Example]{Raw Data, Output in TPD\footnotemark, Efficiency in \%}
		\label{tab:rawdata}
	\end{minipage}\hfill
	\begin{minipage}[b]{0.45\textwidth}
		\centering
		\begin{tikzpicture}
			\begin{axis}[
			xlabel=Output $\lbrack TPD \rbrack$,
			ylabel=Efficiency $\lbrack \% \rbrack$,
			xmin=0,
			ymin=94]
				\addplot[only marks] table[x index=1,y index=2] {./chapter/ch4/rawdata.data};
			\end{axis}
		\end{tikzpicture}
         \captionof{figure}{Scatterplot of the raw Data} 
      \label{fig:rawdata} 
   \end{minipage}
\end{figure}\footnotetext{Tonnage Per Day}


\end{document}
So ist beides unten ausgerichtet, allerdings ist das Bild nicht vertikal zentriert. Ich habe es mit einer raisebox{}{} veruscht, ich habe die beiden weiteren Optionen [Höhe][vert. Zentrierung] der Minipages versucht was in totalem Chaos geendet ist... ich bin ratlos...

Vielleicht hat jemand eine Idee.

Grüße und Danke noch mal



Edit:
Wenn mich nicht alles täuscht, wird es mit dem folgenden Konstrukt zentriert:
\begin{figure}[ht] 
\centering
\fbox{
   \begin{minipage}[b][13cm]{0.45\textwidth}
	   \centering
	   \pgfplotstabletypeset[
		every even row/.style={
		before row={\rowcolor[gray]{0.9}}},
		every head row/.style={
		before row=\toprule,after row=\midrule},
		every last row/.style={
		after row=\bottomrule},
		]{./chapter/ch4/rawdata.data}
		\captionof{table}[Raw Data for KDD Example]{Raw Data, Output in TPD\footnotemark, Efficiency in \%}
		\label{tab:rawdata}
	\end{minipage}}
	\hfill
	\fbox{
	\begin{minipage}[b][13cm]{0.45\textwidth}
		%\centering
		\fbox{
		\begin{minipage}[t][11cm][c]{.45\textwidth}
		\begin{tikzpicture}
			\begin{axis}[
			xlabel=Output $\lbrack TPD \rbrack$,
			ylabel=Efficiency $\lbrack \% \rbrack$,
			xmin=0,
			ymin=94]s
				\addplot[only marks] table[x index=1,y index=2] {./chapter/ch4/rawdata.data};
			\end{axis}
		\end{tikzpicture}\end{minipage}}
         \captionof{figure}{Scatterplot of the raw Data} 
      \label{fig:rawdata} 
   \end{minipage}}
\end{figure}\footnotetext{Tonnage Per Day}
Die Idee war es das Bild in der zweiten Minipage eigenständig verschieben zu können - also habe ich es wieder in eine Minipage gepackt. Diese sind zwar alle kleiner als das Bild, aber dafür ist es zentriert. Die fboxen sind nur drin damit ich die Minipages sehe, also für Debug-Zwecke.

Gibt es eine Möglichkeit die Höhe der Minipages variabel zu gestalten so das es passt? Ich habe bestimmt 5 anläufe gebraucht bis ich die richtigen Höhen hatte. Die innerste Minipage ist nun so hoch wie die Tabelle und somit ist das Bild zentriert ...


Edit: Was jetzt noch nicht geht ist die Referenzierung. Trotz \label(tab:rawdatatab} und \label{fig:rawdatafig} bekomme ich einmal Figure 1.1 (statt table 1.1) und einmal Figure 1.3 (was stimmt). Wieso ist die Tabelle keine Tabelle?

Verfasst: Di 5. Nov 2013, 16:20
von esdd
Bitte erstelle lauffähige Beispiele, die alle nötigen Infos enthalten. Unter anderem hast du hier keine Daten angegeben.

Du könntest zum einen zwei minipages untereinander setzen:
\documentclass[12pt]{scrbook} 
\usepackage[table]{xcolor}
\usepackage{pgfplots}
\usepackage{pgfplotstable} 
\pgfplotsset{compat=1.9}

\usepackage{booktabs}

\usepackage{filecontents}
\begin{filecontents}{rawdata.data}
Output   Efficiency 
 4.1391   98.2273 
 2.8161   96.7087 
 3.4206   94.4587 
 7.3207  100.9902 
 1.0889   98.6273 
 1.9256   95.6042 
 3.7164   94.6458 
 6.8843   95.6869 
 2.4929  100.3180 
 7.5466   95.5214 
 7.7886   97.3567 
 3.6268  100.3646 
 7.8940   95.3565 
 1.8546   97.1359 
 6.3267   98.3246 
 5.0555   98.1595 
 5.3481   98.6611 
 4.4293   95.8738 
 2.5432   96.9671 
 2.0089   99.5953 
\end{filecontents}

\begin{document} 

\listoffigures
\listoftables

\chapter{Test}
\begin{figure}[ht] 
  \centering 
  \begin{minipage}{0.38\linewidth}
    \centering
    \pgfplotstabletypeset[ 
     every even row/.style={ 
     before row={\rowcolor[gray]{0.9}}}, 
     every head row/.style={ 
     before row=\toprule,after row=\midrule}, 
     every last row/.style={ 
     after row=\bottomrule}, 
     ]{rawdata.data}
  \end{minipage}
  \hfill
  \begin{minipage}{0.58\linewidth}
    \centering
    \begin{tikzpicture} 
      \begin{axis}[ 
        xlabel=Output $\lbrack TPD \rbrack$, 
        ylabel=Efficiency $\lbrack \% \rbrack$, 
        xmin=0,ymin=94] 
        \addplot[only marks] table[x index=0,y index=1] {rawdata.data}; 
      \end{axis} 
   \end{tikzpicture}
  \end{minipage}\\
  \begin{minipage}[t]{0.38\linewidth}%
    \captionof{table}[Raw Data for KDD Example]{Raw Data, Output in TPD\footnotemark, Efficiency in \%} 
    \label{tab:rawdata}\end{minipage}\hfill
  \begin{minipage}[t]{0.58\linewidth}%
    \captionof{figure}{Scatterplot of the raw Data} 
    \label{fig:rawdata}
  \end{minipage}
\end{figure} \footnotetext{Tonnage Per Day}

\end{document} 
oder alles in eine Tabelle packen:
...
\newsavebox{\Tabelle}

\begin{document}

\listoffigures
\listoftables

\chapter{Test}


\sbox{\Tabelle}{%
      \pgfplotstabletypeset[ 
       every even row/.style={ 
       before row={\rowcolor[gray]{0.9}}}, 
       every head row/.style={ 
       before row=\toprule,after row=\midrule}, 
       every last row/.style={ 
       after row=\bottomrule}, 
       ]{rawdata.data}}
      
\begin{table}[ht] 
  \centering 
  \begin{tabular}{@{}p{0.38\linewidth}m{0.58\linewidth}@{}}
    \centering\usebox\Tabelle
    &
    \centering
    \begin{tikzpicture} 
      \begin{axis}[ 
          xlabel=Output $\lbrack TPD \rbrack$, 
          ylabel=Efficiency $\lbrack \% \rbrack$, 
          xmin=0,ymin=94] 
        \addplot[only marks] table[x index=0,y index=1] {rawdata.data}; 
      \end{axis} 
    \end{tikzpicture}
  \tabularnewline
    \captionof{table}[Raw Data for KDD Example]{Raw Data, Output in TPD\footnotemark, Efficiency in \%} 
    \label{tab:rawdata}
    &
    \multicolumn{1}{p{0.58\linewidth}}{\captionof{figure}{Scatterplot of the raw Data} 
    \label{fig:rawdata}} 
  \end{tabular}
\end{table} \footnotetext{Tonnage Per Day}

\end{document} 
In beiden Fällen werden bei mir die Tabelle und die Abbildung korrekt beschriftet und auch ins richtige Verzeichnis eingetragen.

Vielleicht gibt es noch einfachere Wege, das gewünschte zu erreichen.

Gruß
Elke

Verfasst: Di 5. Nov 2013, 18:18
von BlackDevil
Danke. An das File hatte ich nicht gedacht, sorry.

Beide Ergebnisse liefern bei mir nur ?? . Wenn ich das Caption aus der Figure umgebung raushole funktionierts (oh wunder). Dann passt aber nicht mehr zusammen was zusammen gehört ...


Edit: Faszinierend ... ich hab das Figure aus meinem Code rausgenommen und es geht. Weiß nur nicht ob das die Regel ist, aber es geht :roll:

Verfasst: Di 5. Nov 2013, 21:59
von esdd
Verwendest du noch irgendwelche anderen Pakete, die Einfluss auf die captions haben? Ich bekomme mit dem Code jedenfalls keine ??.

Verfasst: Di 5. Nov 2013, 22:13
von BlackDevil
hyperref, caption, scrpage hab ich noch drin. Ich könnte es mal ohne Caption versuchen :roll: Ging aber nun auch so. Die Frage ist: was ist die beste und am wenigsten fehleranfällige Version?

Edit: Caption auskommentiert, die Version mit den minipages getestet, nachwievor ??

Verfasst: Mi 6. Nov 2013, 08:05
von Johannes_B
Hast du jetzt Elkes Beispiel als ganzes kopiert und kompiliert, oder direkt versucht das auf dein Problem in deinem Dokument anzupassen?

Wo erscheinen die »??«, hast du daran gedacht, das Dokument mehrfach zu übersetzen?
Füge ich blind die Pakete caption und hyperref hinzu, passt immer noch alles.

Wie ist nun eigentlich dein Stand? Für uns ist und bleibt das am besten mit Minimalbeispielen nachvollziehbar. Dazu benötigst du nicht mal Daten.