Seite 1 von 2
Textausrichtung am oberen Rand in Tabellen mit Grafik
Verfasst: Do 7. Nov 2013, 12:38
von Patrick1990
Hallo, ich habe folgendes Problem.
Eine 3-spaltige Tabelle mit einer Grafik in der ersten Spalte, die zweite und dritte Spalte mit Text. Der Text beginnt vertikal aber erst ab der Mitte. Ich möchte den Text aber wie gewohnt an den oberen Rand bekommen. Wie geht das?
Hier mein Minimalbeispiel:
in der Präambel:
-------------------
% neuer Befehl: \includegraphicstotab[..]{..}
% Verwendung analog wie \includegraphics
\newlength{\myx} % Variable zum Speichern der Bildbreite
\newlength{\myy} % Variable zum Speichern der Bildhöhe
\newcommand\includegraphicstotab[2][\relax]{%
% Abspeichern der Bildabmessungen
\settowidth{\myx}{\includegraphics[{#1}]{#2}}%
\settoheight{\myy}{\includegraphics[{#1}]{#2}}%
% das eigentliche Einfügen
\parbox[c][1.1\myy][c]{\myx}{%
\includegraphics[{#1}]{#2}}%
}% Ende neuer Befehl
im Dokument:
-------------------
\begin{tabular}{|c|p{4cm}|p{4cm}|}
\hline
\Large{Abbildung}
&
\Large{Kritikpunkt}
&
\Large{Begründung}
\\
\hline
\hline
\includegraphicstotab[width=4.5cm]{kritik_1.png}
& Zugänglichkeit bei der Montage / Demontage
& Schraubenköpfe zeigen in Richtung des Führungswagens, daher können beide Schrauben nicht komplett entfernt werden und die obere Schraube kann weiterhin nur sehr schlecht erreicht werden
\\
\hline
\end{tabular}
Verfasst: Do 7. Nov 2013, 15:11
von Johannes_B
Bitte erstelle ein richtiges Minimalbeispiel, du solltest eigentlich wissen wieso/weshalb/warum.
Verfasst: Do 7. Nov 2013, 15:17
von Patrick1990
Oh sorry, hab ich nicht mehr dran gedacht. Reiche es heut Abend nach. Komme grad nicht an den pc.
Verfasst: Do 7. Nov 2013, 17:52
von Besserwisser
Bei der Gelegenheit solltest Du auch gleich die
wichtigen Hinweise und Vorabhilfen für dieses Unterforum durchlesen. Dort findest Du nicht nur den Hinweis, dass ein
VM (mit Anleitung zur Erstellung nicht nur für Anfänger) wichtig ist, Du findest dort auch einige Hinweise zur vertikalen Ausrichtung von Grafiken.
Verfasst: Fr 8. Nov 2013, 00:09
von Patrick1990
So, hier nun das Minimalbeispiel:
\documentclass[11pt,fleqn,draft]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
% neuer Befehl: \includegraphicstotab[..]{..}
% Verwendung analog wie \includegraphics
\newlength{\myx} % Variable zum Speichern der Bildbreite
\newlength{\myy} % Variable zum Speichern der Bildhöhe
\newcommand\includegraphicstotab[2][\relax]{%
% Abspeichern der Bildabmessungen
\settowidth{\myx}{\includegraphics[{#1}]{#2}}%
\settoheight{\myy}{\includegraphics[{#1}]{#2}}%
% das eigentliche Einfügen
\parbox[c][1.1\myy][c]{\myx}{%
\includegraphics[{#1}]{#2}}%
}% Ende neuer Befehl
\begin{document}
\begin{tabular}{|c|p{4cm}|p{4cm}|}
\hline
\Large{Abbildung}
&
\Large{Kritikpunkt}
&
\Large{Begründung}
\\
\hline
\hline
\includegraphicstotab[width=4.5cm]{kritik_1.png}
& text
& und noch etwas text
\\
\hline
\end{tabular}
\end{document}
Habe schon einiges probiert, jedoch komme ich nicht auf das richtige Ergebnis.
Verfasst: Fr 8. Nov 2013, 07:23
von Besserwisser
Hast Du Dir die Beispiele zur vertikalen Ausrichtung von Grafiken auf den von mir verlinkten wichtigen Hinweisen und Vorabhilfen überhaupt angesehen? Ehrlich gesagt, macht Dein Beispiel nicht den Eindruck.
Verfasst: Fr 8. Nov 2013, 08:06
von Patrick1990
Ja, habe ich. Ich habe es sogar versucht so wie dort im Beospiel den Text oben auszurichten mit
\parbox[tt]{.5\textwidth}{\raggedright Bild oben ausgerichtet,\\ Text oben ausgerichtet}
Leider ohne Erfolg.
Verfasst: Fr 8. Nov 2013, 08:26
von Patrick1990
Ich habe nun nocheinmal etwas probiert:
\documentclass[11pt,fleqn,draft]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
% neuer Befehl: \includegraphicstotab[..]{..}
% Verwendung analog wie \includegraphics
\newlength{\myx} % Variable zum Speichern der Bildbreite
\newlength{\myy} % Variable zum Speichern der Bildhöhe
\newcommand\includegraphicstotab[2][\relax]{%
% Abspeichern der Bildabmessungen
\settowidth{\myx}{\includegraphics[{#1}]{#2}}%
\settoheight{\myy}{\includegraphics[{#1}]{#2}}%
% das eigentliche Einfügen
\parbox[c][1.1\myy][c]{\myx}{%
\includegraphics[{#1}]{#2}}%
}% Ende neuer Befehl
\begin{document}
\begin{tabular}{|c|p{4cm}|p{4cm}|}
\hline
\Large{Abbildung}
&
\Large{Kritikpunkt}
&
\Large{Begründung}
\\
\hline
\hline
\raisebox{\dimexpr\ht\strutbox-\totalheight\relax}{\includegraphics[width=4cm]{kritik_1.png}}%
&
\parbox[tt]{.5\textwidth}{\raggedright Bild oben ausgerichtet,\\ Text oben ausgerichtet}
& und noch etwas text
\\
\hline
\end{tabular}
\end{document}
Alles zu meiner Zufriedenheit, ABER das Bild überdeckt die Linien der Tabelle. Um dies zu verhindern hatte ich ja den dafür definierten Befehl
verwendet.
Wenn ich diesen aber verwende, so wird nun das Bild nicht an der oberen vertikalen Linie angezeigt.
Verfasst: Fr 8. Nov 2013, 09:00
von Besserwisser
\raisebox hat auch noch zwei optionale Argumente, um die resultierende Höhe und Tiefe anzugeben. Wenn ich Dein Beispiel zu einem
VM (mit Anleitung zur Erstellung nicht nur für Anfänger) ändere und verkürze, zeigt sich das Problem allerdings nicht:
\documentclass[11pt,fleqn,draft]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[demo]{graphicx}% demo siehe VM-Anleitung
\usepackage{xcolor}% Farbe, damit man Bild und Linien unterscheiden kann.
\begin{document}
\begin{tabular}{|c|p{4cm}|p{4cm}|}
\hline
\Large{Abbildung}
&
\Large{Kritikpunkt}
&
\Large{Begründung}
\\
\hline
\hline
\raisebox{\dimexpr\ht\strutbox-\totalheight\relax}{\color{red}\includegraphics[width=4cm]{kritik_1.png}}%
&
\raggedright Bild oben ausgerichtet,\\ Text oben ausgerichtet
& und noch etwas text
\\
\hline
\end{tabular}
\end{document}
Daher nehme ich fast an, dass Deine Abbildungen keine korrekte BoundingBox haben. Wie Du siehst, braucht man in dem Beispiel auch keine zusätzliche \parbox. Die \parbox-Anweisungen in den Beispielen der Vorabhilfen dienen ja hauptsächlich dazu, mehrzeiligen Text neben eine Abbildungen zu bekommen. Die p-Spalten sind aber ohnehin bereits (oben ausgerichtete) \parbox-en.
Übrigens: Die ganzen vertikalen Linien und Rahmen um die Tabellenzellen sind typographisch gesehen meist störend (vor allem die vertikalen Linien) und optisch hässlich. Außerdem ist \Large keine Anweisung mit einem Argument. Siehe dazu beispielsweise:
Was ist an \Huge{Text}, \Large{Text}, \footnotesize{Text} etc. falsch?
Dort findest Du auch den Grund, warum die Linien an den Tabellenüberschriften kleben. Das kannst Du beispielsweise mit
statt
beheben.
BTW: Wenn Du glaubst, dass Du eine Rückfrage beantwortet hast, solltest Du übrigens den Status auch wieder ändern, beispielsweise zu offen, damit man weiß, dass es sich wieder lohnen könnte, einen Blick in die Diskussion zu werfen.
Disclaimer: Dieser Beitrag enthält Links, die als integraler Bestandteil der Antwort zu betrachten und daher unbedingt zu beachten sind! Antworten zu weiteren Fragen werden die verlinkten Seiten als Wissen voraussetzen!
Verfasst: Fr 8. Nov 2013, 09:12
von Patrick1990
Vielen Dank für die umfangreiche Antwort, ich werde es mir am Wochenende alles einmal durchlesen. Ein Problem bleibt nach wie vor:
Screenshot:
http://s14.directupload.net/images/131108/hrk6gq3h.png
Die untere meiner zwei abgrenzenden Linien wird "überdeckt". Ist es möglich das Bild erst darunter einzufügen?
Ich habe auch schon davon gehört, dass vertikale Linien den "Lesefluss" stören, jedoch ist es in der Uni so gewünscht. Wir sollen es zwar nicht in TeX erstellen, aber ich ziehe es halt anderen Programmen vor.