Leeren Platz zwischen Spalten erzeugen

Tabellen und Grafiken erstellen und anordnen


Malte
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Mo 30. Mär 2015, 23:10

Leeren Platz zwischen Spalten erzeugen

Beitrag 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
Danke und Gruß
Malte

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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

Malte
Forum-Anfänger
Forum-Anfänger
Beiträge: 23
Registriert: Mo 30. Mär 2015, 23:10

Beitrag 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}
 
Danke und Gruß
Malte

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag 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}

Antworten