PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probmlem mit wrapfigure in Tabelle



NMR
23-07-2014, 15:53
Hallo,

ich lese hier schon eine Weile mit und habe bisher immer eine Lösung für meine Latexprobleme gefunden oder bin irgendwann selbst darauf gekommen. Allerdings habe ich nun zum Ersten mal ein Problem, mit dem ich nicht weiter komme (Bzw. die einzige Lösung, die mir einfällt ist nicht ganz so elegant, wie ich gern hätte...) und würde deswegen um eure Hilfe und Ideen bitten.

Ich möchte in einer Tabelle ein Bild einfügen, dass über mehrere Zeilen geht. Dieses habe ich nun mit wrapfigure eingebunden, das funktioniert auch, ABER dabei entsteht eine Leerzeile, die mich stört. Eine Verschiebung um negative Längen mit \vspace hab ich schon versucht, genauso picins. Hat beides nicht geholfen.

Hier mal das Minimalbeispiel (ich hoffe das ist ok so), das Bild habe ich durch \rule ersetzt.


\documentclass[12pt,a4paper,parskip=half]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\usepackage{longtable}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\usepackage{wrapfig}


\begin{document}
\begin{longtable}[H]{R{4.5cm}L{11.5cm}}
\hline

Text & \begin{wrapfigure}{r}{6.5cm}
\rule{6cm}{1cm}
\end{wrapfigure} \\
Text: & Text \\
Text: & Text \\
\hline
Text: & Text \\

\hline
\end{longtable}
\end{document}

Danke schonmalfür eure Mithilfe!

FelixT
23-07-2014, 18:37
Vielleicht nimm statt wrapfigure lieber \multicolumn?

Felix

NMR
24-07-2014, 09:15
Hallo,

danke schon mal.
Das hatte ich auch schon überlegt, aber damit erreiche ich auch nicht genau das Ergebnis, das ich gern hätte. (Das ist meine nicht so elegante Notfalllösung ;-) )

Edit: Ah, dank deines Beitrags kam mir gerade ein anderer Einfall. Nämlich das Paket \usepackage{multirow}.

Also tausend Dank. Jetzt sieht es aus wie gewünscht. Ist zwar etwas umständlich, aber geht. Falls jemand trotzdem weiß, wie man das ursprüngliche Problem beheben kann, würde mich das trotzdem interessieren.

klops
24-07-2014, 10:08
Dein ursprüngliches Problem hast Du AFAIK gar nicht erwähnt. Ich vermute mal, es geht darum, dass Du die Abbildung nicht auf die Grundlinie setzen willst, sondern dass sie mit der Oberkante zur Oberkante der anderen Zellen ausgerichtet werden soll, also hauptsächlich unter der Grundlinie liegen soll. Dafür gibt es verschiedene Möglichkeiten, beispielsweise mit \raisebox oder \vskip:
\documentclass[12pt,a4paper,parskip=half]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\usepackage{longtable}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\usepackage{wrapfig}


\begin{document}
\begin{longtable}[H]{R{4.5cm}L{11.5cm}}% Option H ist hier falsch!
\hline

Text & \vskip-\ht\strutbox % diese Anweisung bestimmt die oberste Grundlinie
\rule{6cm}{1cm}
\\
Text: & Text \\
Text: & Text \\
\hline
Text: & Text \\

\hline
\end{longtable}
\end{document}

BTW: Option H ist für longtable falsch! Die Umgebung kennt nur r, l und c als Option. Siehe dazu die Anleitung zum Paket.

NMR
24-07-2014, 10:31
Oh, danke für den Hinweis mit der Option. Habe ich wahrscheinlich vergessen zu ändern als aus der normalen Tabelle eine longtable wurde.

Die Ausrichtung unter der Grundlinie ist kein zwingendes Kriterium sieht aber natürlich besser aus, da hast du recht.

Dein Code erzeugt nicht ganz das was ich erreichen wollte. Ich hab es jetzt so gelöst:



\documentclass[12pt,a4paper,parskip=half]{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}

\usepackage{tabularx}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{longtable}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{multirow}


\begin{document}
\begin{longtable}{R{4.5cm}L{5cm}C{6.5cm}}
\hline
Text & & \\
Text: & Text & \multirow{2}{*}{\rule{6cm}{1cm}} \\
Text: & Text & \\
\hline
& Text& \\
\hline
\end{longtable}
\end{document}

FelixT
24-07-2014, 13:55
Nämlich das Paket \usepackage{multirow}.

Ja, genau, \multirow (aus dem Paket) hatte ich gemeint, als ich versehentlich \multicolumn sagte.

Felix

NMR
25-07-2014, 11:00
@Felix: Ah, alles klar. Dann nochmal danke. Damit funltioniert es perfekt.