Seite 1 von 1

Leeren Platz zwischen Spalten erzeugen

Verfasst: Fr 8. Mai 2015, 15:08
von Malte
Hey,

ich habe in einer Tabelle multirow-Felder mit einer Farbe hintelegt. Diese liegen auf einer Zeile. Ich möchte zwischen den beiden multirow-Feldern einen kleinen weißen Zwischenplatz erzeugen. Ich könnte dafür auch eine leere Spalte einfügen, allerdings ist meine Tabelle so groß, dass ich das umgehen möchte.

Hier ein Beispiel:
\documentclass{article}
\usepackage{mathptmx}
\usepackage[ngerman]{babel}
\usepackage{helvet}
\usepackage{courier}
\usepackage{booktabs}
\usepackage{type1cm}
\usepackage{t1enc}
\usepackage{subeqnarray} 
\usepackage{makeidx}       
\usepackage{graphicx}  
\usepackage{float}                          
\usepackage{multicol}        
\usepackage[bottom]{footmisc}
\usepackage[T1]{fontenc}
\usepackage{array} 
\usepackage{lscape} 
\usepackage{ragged2e} 
\usepackage{relsize}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{colortbl}

\begin{document}
		\begin{tabular}{*{5}{>{\centering\arraybackslash}m{2cm}}} \toprule
		1&Text&Text&Text\\ 
		2&\cellcolor{green}&\cellcolor{green}&Text\\
		3&\cellcolor{green}\multirow{-2}{2cm}{\centering Text}&\cellcolor{green}\multirow{-2}{2cm}{\centering Text}&Text\\
	  	4&Text&Text&Text\\ \bottomrule
		\end{tabular}
\end{document}
Zwischen Spalte 2 und Spalte 3 soll ein Zwischenraum sein, sodass die grünen Felder nicht "zusammenhängen".

Gruß
Malte

Verfasst: Fr 8. Mai 2015, 17:31
von esdd
Hier ist ein Vorschlag, bei dem alle Zellen einen weißen Hintergrund mit einem Überhang von nur .75 \tabcolsep erhalten. Dieser Überhang wird von \cellcolor übernommen, weshalb zwischen den beiden grünen Flächen ein Abstand von (2-2*.75)=.5 \tabcolsep ist. Die Breite der Tabelle ändert sich dabei nicht.
\documentclass{article} 
\usepackage{booktabs} 
\usepackage{array} 
\usepackage{multirow}
\usepackage[table]{xcolor} 

\begin{document} 
\begin{tabular}{*{4}{>{\centering\arraybackslash}m{2cm}}} \toprule 
  1&Text&Text&Text\\ 
  2&\cellcolor{green}&\cellcolor{green}&Text\\ 
  3&\cellcolor{green}\multirow{-2}{2cm}{\centering Text}
    &\cellcolor{green}\multirow{-2}{2cm}{\centering Text}&Text\\ 
   4&Text&Text&Text\\
  \bottomrule 
\end{tabular} 

\begin{tabular}{*{4}{
    >{\centering\arraybackslash\columncolor{white}[.75\tabcolsep]}m{2cm}
  }}
  \toprule 
  1&Text&Text&Text\\ 
  2&\cellcolor{green}&\cellcolor{green}&Text\\ 
  3&\cellcolor{green}\multirow{-2}{2cm}{\centering Text}
    &\cellcolor{green}\multirow{-2}{2cm}{\centering Text}&Text\\ 
  4&Text&Text&Text\\
  \bottomrule 
\end{tabular}
\end{document}
Gruß
Elke

Verfasst: Fr 8. Mai 2015, 17:51
von Malte
Super, das hat schon einmal geholfen! Allerdings hab ich jetzt nur noch das Problem, dass ich zwischen zwei multirow-Feldern horizontal noch einen Freiraum benötige. D.h. zwischen den Feldern Text1 und Text3 und Text2 und Text4:
\documentclass{article} 
\usepackage{booktabs} 
\usepackage{array} 
\usepackage{multirow}
\usepackage[table]{xcolor} 

\begin{document} 

\begin{tabular}{*{4}{
    >{\centering\arraybackslash\columncolor{white}[.75\tabcolsep]}m{2cm}
  }}
  \toprule 
  1&Text&Text&Text\\ 
  2&\cellcolor{green}&\cellcolor{green}&Text\\ 
  3&\cellcolor{green}\multirow{-2}{2cm}{\centering Text1}
    &\cellcolor{green}\multirow{-2}{2cm}{\centering Text2}&Text\\
    4&\cellcolor{green}\multirow{-2}{2cm}{\centering Text3}
    &\cellcolor{green}\multirow{-2}{2cm}{\centering Text4}&Text\\ 
  5&Text&Text&Text\\
  \bottomrule 
\end{tabular}
\end{document}
 

Verfasst: Fr 8. Mai 2015, 22:42
von esdd
Vielleicht kannst Du multirow irgendwie vermeiden?
\documentclass{article} 
\usepackage{booktabs} 
\usepackage{tabularx}% lädt auch array
%\usepackage{multirow}
\usepackage[table]{xcolor} 

\begin{document} 
\begin{tabular}{*{4}{
    >{\centering\arraybackslash\columncolor{white}[0pt]}m{2cm}
  }}
  \toprule 
  1&Text&Text&Text\\ 
  2\linebreak3\linebreak4
  &\cellcolor{green}
    \begin{tabularx}{\linewidth}{@{}>{\centering\arraybackslash}X@{}}
      Text1\\
      \arrayrulecolor{white}\midrule[.25\tabcolsep]
      Text3
    \end{tabularx}
  &\cellcolor{green}
    \begin{tabularx}{\linewidth}{@{}>{\centering\arraybackslash}X@{}}
      Text2\\
      \arrayrulecolor{white}\midrule[.25\tabcolsep]
      Text4
    \end{tabularx}
  &Text\linebreak Text\linebreak Text\\ 
  5&Text&Text&Text\\
  \bottomrule 
\end{tabular}
\end{document}