PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seltsames Umbruchverhalten in gefärbten tabularx Zellen



crea
09-01-2007, 14:19
Hallo,

ich habe folgendes Problem bei eingefärbten Zellen einer tabularx Umgebung:

ab der zweiten Zelle (die ich mittels multicolumn umdefiniert habe, um die Farben zu ändern) fügt mir LaTeX einen automatischen Zeilenumbruch vor dem ersten Wort ein, das ist jedoch nicht gewünscht...

Anbei ein Minibeispiel, das sich so verhält:



\documentclass[12pt]{scrbook}

\usepackage{german}
\usepackage[latin1]{inputenc}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{colortbl}

\begin{document}

\begin{tabularx}{0.95\textwidth}{|r|X|}
\hline
\multicolumn{1}{>{\color{white}\columncolor[gray]{.2}}r}{\textbf{Problem}}
& \multicolumn{1}{>{\color{white}\columncolor[gray]{.2}}X}{\textbf{Spezialproblem mit Umbruch}} \\
\hline
\textit{Beschreibung} &
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam vel est. Curabitur consequat. Proin sodales convallis diam. Nulla placerat commodo neque. Pellentesque lorem dolor, porta at, facilisis ac, pulvinar sed, lorem. Proin eu elit at arcu pulvinar blandit. Nullam accumsan, ipsum at feugiat congue, dui turpis malesuada mauris, eu laoreet mauris turpis dictum pede. Nullam non neque. Mauris vehicula erat eget diam molestie tempus. Sed ullamcorper bibendum elit. Etiam lacinia. Quisque a ante. Maecenas adipiscing vestibulum sem. Phasellus leo. Ut malesuada, risus quis commodo adipiscing, orci lacus feugiat nisl, non auctor libero nunc sed est. Phasellus eu purus. Proin libero urna, faucibus in, mollis quis, eleifend non, nisi. Sed commodo vulputate elit.\\
\hline
\end{tabularx}

\end{document}


Gibts eine Möglichkeit, dies zu verhindern?

lg,
Michael

sofa-surfer
09-01-2007, 14:46
Hallo,

zunächst mal: Die \multicolumn-Anweisungen brauchst du doch gar nicht? Es gibt auch den Befehl \rowcolor (und auch noch \cellcolor).
Nichtsdestotrotz bleibt dein Problem erhalten. Scheinbar vertragen sich die X-Spalten nicht mit dem \color-Befehl (?) Warum weiß ich aber auch nicht. Abhilfe schafft aber der \textcolor-Befehl:


\documentclass[12pt]{scrbook}

\usepackage{german}
\usepackage[latin1]{inputenc}
\usepackage{textcomp}
\usepackage{tabularx}
\usepackage{colortbl}

\usepackage{blindtext} % macht die Sache etwas kürzer

\begin{document}

\begin{tabularx}{0.95\textwidth}{|r|X|} \hline
\rowcolor[gray]{.2}
\bfseries\textcolor{white}{Problem}
&
\bfseries\textcolor{white}{Spezialproblem mit Umbruch} \\ \hline
\textit{Beschreibung} & \blindtext \\ \hline
\end{tabularx}

\end{document}

Matthias

crea
09-01-2007, 15:45
Hallo Matthias,

besten Dank für die Antwort. Die \multicolumn Anweisungen kamen aus einer ähnlich gearteten Tabelle in der ich normalerweise "r" Spalten habe, die Spaltenüberschriften aber im "X" Format haben wollte.

Umformatierung mittels \multicolumn scheint auch die \rowcolor zu beeinflussen, darum war die Anweisung \columncolor pro \multicolumn drin.

Jedenfalls hab ich die Verwendung der \color Direktive durch \textcolor ersetzt und nun funktioniert es!

lg,
Michael

crea
09-01-2007, 15:52
Noch eine Frage,

gibts die Möglichkeit, den Text einer Zelle vertikal unten auszurichten?

Bsp.:



+------------+-------------+
| | Hier sind 2 |
| Text unten | Zeilen |
+------------+-------------+

sofa-surfer
09-01-2007, 16:01
Hallo,

mit dem multirow-Paket zum Beispiel:


\documentclass{article}
\usepackage{multirow}

\begin{document}


\begin{tabular}{ll} \hline
& \multirow{2}{.5\textwidth}{Etwas Geschwafel, damit die Zeile voll wird und wir zwei davon haben.} \\
bla & \\\hline
weiter & gehts \\\hline
\end{tabular}

\end{document}

Matthias

crea
09-01-2007, 16:29
An \multirow hab ich auch schon gedacht, aber es handelt sich bei der mehrzeiligen Zelle um eine tabularx X Spalte, die automagisch umbricht; ergo wäre \multirow fehl am Platz (abgesehen davon dass die Breite der Spalte durch die tabularx Umgebung schon optimal ist und ich sie nicht explizit angeben möchte).

sofa-surfer
09-01-2007, 18:20
Hallo,

hier eine Lösung für dein kleines Beispiel von oben.


\documentclass{article}
\usepackage{tabularx,blindtext}


\renewcommand{\tabularxcolumn}[1]{b{#1}}

\begin{document}


\begin{tabularx}{\textwidth}{cX} \hline

bla & \blindtext\\\hline
\end{tabularx}

\end{document}

Wie das dann allerdings für deine bestimmt komplexere Tabelle aussieht, weiß ich nicht. Evtl. wäre dann vielleicht zu überlegen, doch keine tabularx zu nutzen. Aber schau erst mal ...

Matthias

crea
09-01-2007, 18:50
Hallo Matthias,

als quick'n'dirty Lösung passts eigentlich ausgezeichnet, wenn ich nach der entsprechenden Tabelle wieder auf p{#1} umstelle, sonst sind natürlich nachher sämtliche Zellen aller Tabellen entsprechend aligned.

Besten Dank!