Textausrichtung am oberen Rand in Tabellen mit Grafik

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Textausrichtung am oberen Rand in Tabellen mit Grafik

von Patrick1990 » Fr 8. Nov 2013, 09:41

Vielen, vielen Dank.

Ich persönlich finde die vertikalen Linien auch unschön, werde es mal ansprechen.

Danke.

von Besserwisser » Fr 8. Nov 2013, 09:34

Das ist lediglich ein Darstellungefehler im Viewer. Dreh mal die Vergrößerungsstufe hoch.

Ansonsten sei noch einmal auf die beiden optionalen Argumente von \raisebox für die resultierende Höhe und die Tiefe hingewiesen. Du kannst dort jede beliebige resultierende Höhe oder Tiefe angeben, auch eine die größer ist als sie den Tatsachen entspricht. Wenn Du beispielsweise beim ersten optionalen Argument \normalbaselineskip und bei zweiten \totalheight angibst, also:
\raisebox{\dimexpr\ht\strutbox-\totalheight\relax}[\normalbaselineskip][\totalheight]{\color{red}\includegraphics[width=4cm]{kritik_1.png}}
dann hast Du einen deutlichen Rand über und unter dem Bild.

Besser ist allerdings, wenn Du die vertikalen Linien endlich entsorgst und die horizontalen Linien mit booktabs machst. Dann gibt es das Problem gar nicht erst und das ganze sieht auch vernünftig aus und ist vernünftig lesbar:
\documentclass[11pt,fleqn,draft]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[demo]{graphicx}
\usepackage{xcolor}
\usepackage{array}
\usepackage{ragged2e}
\usepackage{booktabs}
\newcommand*{\tablehead}[1]{\textbf{#1}}

\begin{document}

\begin{tabular}{l>{\RaggedRight}p{4cm}>{\RaggedRight}p{4cm}}
\toprule
\tablehead{Abbildung} & \tablehead{Kritikpunkt} & \tablehead{Begründung} \\
\midrule
\raisebox{\dimexpr\ht\strutbox-\totalheight\relax}{\color{red}\includegraphics[width=4cm]{kritik_1.png}}%  
& Bild oben ausgerichtet, Text oben ausgerichtet & und noch etwas text \\
\bottomrule
\end{tabular}
\end{document}
Ich verstehe wirklich nicht, warum Leute immer diesen hässlichen Klötchengrafiken nachrennen, statt schöne, lesbare Tabellen zu machen:
Bild

BTW: Zentrierte Spaltenköpfe gibt es jetzt einfach mit:
\newcommand*{\tablehead}[1]{\multicolumn1c{\textbf{#1}}}
und wenn man fett wieder los werden will (was ich durchaus empfehlen würde) kann man das an derselben Stelle ebenfalls zentral ändern.

von Patrick1990 » Fr 8. Nov 2013, 09:12

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.

von Besserwisser » Fr 8. Nov 2013, 09:00

\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
\Large\strut Abbildung
statt
\Large{Abbildung}
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!

von Patrick1990 » Fr 8. Nov 2013, 08:26

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
\includegraphicstotab
verwendet.

Wenn ich diesen aber verwende, so wird nun das Bild nicht an der oberen vertikalen Linie angezeigt.

von Patrick1990 » Fr 8. Nov 2013, 08:06

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.

von Besserwisser » Fr 8. Nov 2013, 07:23

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.

von Patrick1990 » Fr 8. Nov 2013, 00:09

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.

von Besserwisser » Do 7. Nov 2013, 17:52

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.

von Patrick1990 » Do 7. Nov 2013, 15:17

Oh sorry, hab ich nicht mehr dran gedacht. Reiche es heut Abend nach. Komme grad nicht an den pc.

Nach oben