Text in Tabelle neben Bild oben ausrichten

Tabellen und Grafiken erstellen und anordnen


WolfLuca
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Di 22. Jan 2019, 12:21

Text in Tabelle neben Bild oben ausrichten

Beitrag von WolfLuca »

Hallo zusammen,

ich habe ein Problem und habe auch noch nicht wirklich eine Lösung dazu gefunden. Wie oben beschrieben habe ich eine Tabelle, in der in der ersten Spalte jeweils ein Bild ist. in den nächsten Spalten möchte ich beschreibung und Kennwerte eintragen. die sollen aber von oben nach unten ausgerichtet sein. Zusätzlich möchte ich in einem Tabellenfenster mehrere Sachen untereinander schreiben, wodurch ich den Absatz in dem Tabellenfenster mit \\ bzw. \newline versucht habe, was jedoch nicht zu dem erwünschten Ergebniss geführt hat. Ich schaffe es, die erste Zeile nach oben zu packen, aber die folgenden dann nicht mehr.

Anbei befindet sich ein Minimalbeispiel, was ungefähr verdeutlicht was mein Problem ist.
\documentclass[12pt]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage{setspace}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{subfigure}
\usepackage{tabulary}
\usepackage[demo]{graphicx}
\usepackage{booktabs}
\usepackage[
style=authoryear,
backend=bibtex,
isbn=false,
giveninits,                      
uniquename=init,              %(authoryear style normal: uniquename=full)
maxcitenames=2,                  
maxbibnames=9,
dashed=false,                  
hyperref=auto]{biblatex} 

\begin{document}

\begin{table}[h]
\centering
\caption{\textbf{Gewicht der A-,B-, und C-Brackets}}
\label{tab:gewbrac}

\begin{tabulary}{\textwidth}{c|c|c|c}
\midrule
 & Beschreibung & Anzahl & Gewicht $kg$\\
\midrule
 \begin{minipage}[t]{100pt}
    \vspace{0pt}\includegraphics[width=\textwidth]{example-image}
  \end{minipage} 
 & Befestigungsschraube \\ Unterlegscheibe\\ Befestigungsplatte \\
 Pin & 1 & 0.0038 \\
\midrule
\begin{minipage}[t]{100pt}
    \vspace{0pt}\includegraphics[width=\textwidth]{img2}
  \end{minipage}  & Befestigungsschraube \\ Unterlegscheibe\\ Befestigungsplatte \\
 Pin & 123 &100  \\
\midrule
\begin{minipage}[t]{100pt}
    \vspace{0pt}\includegraphics[width=\textwidth]{img2}
  \end{minipage}  & Befestigungsschraube \\ Unterlegscheibe\\ Befestigungsplatte \\
 Pin & 123 & 100 \\
\midrule
\begin{minipage}[t]{100pt}
    \vspace{0pt}\includegraphics[width=\textwidth]{img2}
  \end{minipage}  & Befestigungsschraube \\ Unterlegscheibe\\ Befestigungsplatte \\
 Pin & 123 & 100 \\

\end{tabulary}
\end{table}


\end{document}

Mein jetziges Ergebnis habe ich auch aus einem Beitrag aus dem Forum (Den ich leider momentan nicht mehr finde). Ich habe auch schon mehrere Beiträge dazu geunden, jedoch hat bis jetzt noch nicht genau das funktioniert, was ich gerne hätte. :(

Hat da jemand einen Rat oder ist meine ganze herangehensweise falsch?

Gast

Off-Topic: Bitte subfigure nicht mehr verwenden!

Beitrag von Gast »

Das wurde Dir hier schon einmal erklärt und eigentlich wolltest Du dann auf veraltete Pakete verzichten …

Alternativen werden unter dem Link ebenfalls genannt.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Eine recht einfache Lösung mittels multirow. Ergänzend habe ich noch das ein oder andere verbessert, bspw. durch Verwendung von siunitx und caption
\documentclass[12pt]{scrreprt} 

\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 
\usepackage{lmodern} 
\usepackage{multirow} 
\usepackage[demo]{graphicx} 
\usepackage{booktabs} 
\usepackage[locale=DE]{siunitx}%für Größen/Einheiten
\usepackage{caption}
\captionsetup{textfont=bf}%innerhalb von caption sollte man nicht mit Schriftänderungen rumhantieren, da sich dies auch bspw. auf das Tabellenverzeichnis überträgt

\begin{document} 

\begin{table}%[h] 
\centering 
\caption{Gewicht der A-,B-, und C-Brackets} 
\label{tab:gewbrac} 

\begin{tabular}{p{100pt}cS[table-format=2.0]S[table-format=2.4]}%S-Spalte ermöglicht Ausrichtung am Komma 
\midrule 
 & Beschreibung & {Anzahl} & {Gewicht (\si{\kg})}\\ 
\midrule 
 \multirow{4}{100pt}{\includegraphics[width=\linewidth,height=50pt]{example-image}} & Befestigungsschraube & 8 & .1234 \\
 & Unterlegscheibe & 16 & .0123\\
 & Befestigungsplatte & 2 & 12.5670\\ 
 & Pin & 1 & 0.0038 \\ 
\midrule 
\end{tabular} 
\end{table} 
\end{document} 
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Gast

Beitrag von Gast »

Eigentlich hast Du mit Verwendung von tabulary schon den Grundstein gelegt, um mehrere Zeilen in eine Tabellenzelle zu setzen. Allerdings muss man dafür dann auch die von tabulary definierten Spaltentypen für die entsprechende Tabellenzelle verwenden. Außerdem empfehle ich für Zahlenspalten siunitx. Übrigens setzt man Einheiten niemals als $kg$. Das wäre nämlich das Produkt aus k und g. Einheiten am besten ebenfalls mit siunitx:
\documentclass[12pt,
  caption=tableheadings,% Tabellenüberschriften formatieren
]{scrreprt}
\usepackage[ngerman]{babel}
%\usepackage{setspace}% Wenn es ohnehin nicht verwendet wird, kann man es auch weglassen
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tabulary}
\usepackage{graphicx}% option demo braucht es nicht, wenn man example-image verwendet
\usepackage{booktabs}
\usepackage[locale=DE]{siunitx}% Sprache passend zu ngerman oben bei babel

\setkomafont{caption}{\bfseries}% Bitte nicht \textbf in jedes \caption
                                % einfügen!

\begin{document}

\begin{table}[htp]% alleine Option h ist Unfug und funktioniert ohnehin nicht
\centering
\caption{Gewicht der A-,B-, und C-Brackets}% siehe oben
\label{tab:gewbrac}
\begin{tabulary}{\textwidth}{c|C|S[table-figures-integer=3,table-figures-decimal=0,table-number-alignment=center]|S}
  \midrule
  & Beschreibung & Anzahl & {Gewicht \si{kg}}\\
  \midrule
  \raisebox{\dimexpr\ht\strutbox-\totalheight}{%
    \includegraphics[width=100pt]{example-image}%
  }
  & Befestigungsschraube\par
  Unterlegscheibe\par Befestigungsplatt\par Pin
  & 1 & 0.0038 \\
  \midrule
  \raisebox{\dimexpr\ht\strutbox-\totalheight}{%
    \includegraphics[width=100pt]{example-image-a}%
  }
  & Befestigungsschraube\par Unterlegscheibe\par Befestigungsplatte\par Pin
  & 123 &100 \\
  \bottomrule
\end{tabulary}
\end{table}

\end{document}
Zum hier verwendeten \raisebox für die vertikale Ausrichtung der Abbildungen siehe die wichtigen Hinweise.

Gast

Beitrag von Gast »

markusv hat geschrieben:Ergänzend habe ich noch das ein oder andere verbessert, bspw. durch Verwendung von … caption
Das geht bei scrreprt auch mit Mitteln der Klasse ganz ohne caption.

WolfLuca
Forum-Anfänger
Forum-Anfänger
Beiträge: 28
Registriert: Di 22. Jan 2019, 12:21

Beitrag von WolfLuca »

Anonymous hat geschrieben:Eigentlich hast Du mit Verwendung von tabulary schon den Grundstein gelegt, um mehrere Zeilen in eine Tabellenzelle zu setzen. Allerdings muss man dafür dann auch die von tabulary definierten Spaltentypen für die entsprechende Tabellenzelle verwenden. Außerdem empfehle ich für Zahlenspalten siunitx. Übrigens setzt man Einheiten niemals als $kg$. Das wäre nämlich das Produkt aus k und g. Einheiten am besten ebenfalls mit siunitx:
\documentclass[12pt,
  caption=tableheadings,% Tabellenüberschriften formatieren
]{scrreprt}
\usepackage[ngerman]{babel}
%\usepackage{setspace}% Wenn es ohnehin nicht verwendet wird, kann man es auch weglassen
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tabulary}
\usepackage{graphicx}% option demo braucht es nicht, wenn man example-image verwendet
\usepackage{booktabs}
\usepackage[locale=DE]{siunitx}% Sprache passend zu ngerman oben bei babel

\setkomafont{caption}{\bfseries}% Bitte nicht \textbf in jedes \caption
                                % einfügen!

\begin{document}

\begin{table}[htp]% alleine Option h ist Unfug und funktioniert ohnehin nicht
\centering
\caption{Gewicht der A-,B-, und C-Brackets}% siehe oben
\label{tab:gewbrac}
\begin{tabulary}{\textwidth}{c|C|S[table-figures-integer=3,table-figures-decimal=0,table-number-alignment=center]|S}
  \midrule
  & Beschreibung & Anzahl & {Gewicht \si{kg}}\\
  \midrule
  \raisebox{\dimexpr\ht\strutbox-\totalheight}{%
    \includegraphics[width=100pt]{example-image}%
  }
  & Befestigungsschraube\par
  Unterlegscheibe\par Befestigungsplatt\par Pin
  & 1 & 0.0038 \\
  \midrule
  \raisebox{\dimexpr\ht\strutbox-\totalheight}{%
    \includegraphics[width=100pt]{example-image-a}%
  }
  & Befestigungsschraube\par Unterlegscheibe\par Befestigungsplatte\par Pin
  & 123 &100 \\
  \bottomrule
\end{tabulary}
\end{table}

\end{document}
Zum hier verwendeten \raisebox für die vertikale Ausrichtung der Abbildungen siehe die wichtigen Hinweise.
Super, vielen dank! Genau das was ich gesucht habe!

In Zukunft werde ich zuerst in der Umgebungsbeschreibung des jeweiligen Command gucken bevor ich hier rein poste.. :?

-- Außerdem ist die Frage aus dem anderen Post meiner Meinung nach eine ganz andere mit einem ganz anderen Lösungsansatz. :roll:

An alle die mir eine Antwort gegeben haben, die ich gebrauchen konnte, vielen Dank!

Gast

Beitrag von Gast »

WolfLuca hat geschrieben:-- Außerdem ist die Frage aus dem anderen Post meiner Meinung nach eine ganz andere mit einem ganz anderen Lösungsansatz. :roll:
Es ging bei dem Einwand um die Verwendung von subfigure. Du solltest das schon beachten. Das Paket ist veraltet und macht teilweise Probleme, die mit den genannten Alternativen nicht auftreten.

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Hinweise zum Beispiel des Gastes:

Die Option der Dokumentklasse ist laut Anleitung in der Mehrzahl anzugeben und der zugewiesene Wert in der Einzahl:
%caption=tableheadings
captions=tableheading
Das Einheitenzeichen für Kilogramm darf so angegeben werden und führt in diesem Fall zu der gleichen Ausgabe, die der Befehl für das Einheitenzeichen erzeugt.

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Bartman hat geschrieben:Das Einheitenzeichen für Kilogramm darf so angegeben werden und führt in diesem Fall zu der gleichen Ausgabe, die der Befehl für das Einheitenzeichen erzeugt.
Nein. Einheiten sind immer aufrecht zu setzen. kg sind zwei Variablen, kg die Einheit Kilogramm. Die Ausgabe im mathematischen Modus mittels $kg$ ist kursiv, somit falsch.
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen:
Help-LaTeX@web.de

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2456
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Ein Missverständnis: Ich bezog mich auf die Abwesenheit des Backslash im Argument des \si-Befehls im Beispiel des Gastes. Gemäß der Anleitung des Pakets ist das zulässig, wenn keine Formatierung gewünscht wird.

Antworten