Zellenbreite und mehr ...

Tabellen und Grafiken erstellen und anordnen


Diggi2023
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Di 11. Apr 2023, 10:38

Zellenbreite und mehr ...

Beitrag von Diggi2023 »

Hallo zusammen,

Hier meine Problembeschreibung (unten der Code):
Ich hab in der ersten Zeile zwei Verbundene Zellen.
Die erste verbundene Zellgröße (aus 2 Einzelzellen) soll zusammen 7 cm haben, die nächste 9 cm bestehend aus 5 Einzelzellen.

Zweite Zeile, sind keine Zellen verbunden.
Die ersten zwei sollen je eine Länge von 3,5 cm und die anderen 5 Zellen eine Breite von 1,8cm haben.

Zeile Drei und Co einfacher Text

Meiner Meinung:
  • Ich bin davon ausgegangen, wenn ich @{} einsetze, dass das dann mit der Zeilenbreite klappt, aber wo ist da mein Fehler?
    Zeile 1 ist von der Breite kleiner als Zeile 2
Text in Zelle ausrichten:
  • Wie klappt es, dass der Text in der ersten Zeile in der ersten Verbundenen Zelle Vertikal Zentriert ausgerichtet wird?
Zellenfärbung:
  • Wenn man die Färbung der ersten zwei Zeilen anders/richtiger macht, bitte um hilfe.
Weitere Fragen:
  • Kann ich irgendwie hinterher erfahren, wie Breit meine Tabelle geworden ist?
    Mathematisch bzw. nach mein Verständnis sollte die Tabelle 7+9=16cm Breit sein?
  • Wie geht das schöner geschrieben, dass die erste Zeile immer fett geschrieben wird?
Genug, hier mein Code und danke für die Hilfe:
\documentclass{article}
\usepackage{multirow}
\usepackage[table,xcdraw]{xcolor}
\usepackage{tabularx}
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{document}
	

	\noindent
	\begin{tabular}{*{2}{@{}c}|*{5}{@{}c}}
	%\hline
	\rowcolor[HTML]{CBCEFB} 
	\multicolumn{2}{@{}C{7cm}@{}|}{%
		\cellcolor[HTML]{CBCEFB}\textbf{%
			AA-AAAA AAAAAA}} % 1 Zeilig
	&
	\multicolumn{5}{@{}C{9cm}}{%
		\cellcolor[HTML]{CBCEFB}\textbf{%
			AAAAAAAAAAAAA AAA-AAAAAAAAAAA AAAAAA AAAA AAAAAA AA AAA}} \\ % 2 Zeilig
	
	\rowcolor[HTML]{CBCEFB} 
	\multicolumn{1}{@{}c}{\cellcolor[HTML]{CBCEFB}\textbf{AAAAAA AAAA}}
	&
	\multicolumn{1}{@{}C{3.5cm}|@{}}{\cellcolor[HTML]{CBCEFB}\textbf{BBBBBBBBBBB BBBBBBB}} 
	&
	\multicolumn{1}{@{}C{1.8cm}}{\cellcolor[HTML]{CBCEFB}\textbf{CCCCC}}
	&
	\multicolumn{1}{@{}C{1.8cm}}{\cellcolor[HTML]{CBCEFB}\textbf{DDDDD}}
	&
	\multicolumn{1}{@{}C{1.8cm}}{\cellcolor[HTML]{CBCEFB}\textbf{EEEEEE}}
	&
	\multicolumn{1}{@{}C{1.8cm}}{\cellcolor[HTML]{CBCEFB}\textbf{FFFFFFFFFFF}}
	& 
	\multicolumn{1}{@{}C{1.8cm}}{\cellcolor[HTML]{CBCEFB}\textbf{GGGG  GGGGG GGGGG}} \\
			
	A & B & C & D & E & F & G\\
	A & B & C & D & E & F & G\\
\end{tabular}

\end{document}

rais
Forum-Guru
Forum-Guru
Beiträge: 411
Registriert: Di 21. Sep 2010, 00:37

Re: Zellenbreite und mehr ...

Beitrag von rais »

Vermutlich müsstest Du bei den ganzen \multicolumn{1}-Befehlen auch nach der Spaltendeklaration @{} einsetzen, das hab ich aber nicht näher untersucht. Wenn Du eh die Abstände loswerden willst, ist es IMHO einfacher, \tabcolsep auf Null zu setzen.

Vertikal zentrieren kannst Du, wenn Du statt p{} m{}-Spalten nimmst.

Nach \rowcolor braucht es keine \cellcolor, es sei denn, Du möchtest die Farbe einer einzelnen Zelle wieder ändern.

Die Breite der Tabelle kannst Du ausgeben lassen, indem Du die Tabelle erst in eine Box packst...

Zumindest für die \multicolumn-Befehle könntest Du Dir einen eigenen Befehl basten, der den Text entsprechend fett setzt (siehe \mcbf als Beispiel unten).

Wenn man dann auch noch die Breiten in der Deklaration zur tabular-Umgebung angibt, braucht es die ganzen \multicolumn{1}-Befehle nicht mehr:
\documentclass{article}
%\usepackage{multirow} wird hier nicht verwendet
\usepackage[table,xcdraw]{xcolor}
%\usepackage{tabularx} wird hier nicht verwendet
\usepackage{array}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}%<-- m statt p, siehe `texdoc array'
\newcommand\mcbf[3]{% multicolumn mit textbf kombiniert:
  \multicolumn{#1}{#2}{\textbf{#3}}%
}
\newsavebox\mybox
\newlength\savedtabcolsep

\begin{document}
    \setlength\savedtabcolsep{\tabcolsep}%
	\setlength\tabcolsep{0pt}% statt all der @{} in den Spaltendeklarationen
	\setlength\arrayrulewidth{1pt}% nur zur Demo, siehe auch Abschnitt ``Handling of rules'' in `texdoc array'
  \sbox\mybox{% erstmal die Tabelle in eine Box packen
	\begin{tabular}{*{2}{C{3.5cm}}|*{5}{C{1.8cm}}}
	%\hline
	\rowcolor[HTML]{CBCEFB} 
	\mcbf{2}{C{7cm}|}{%
			AA-AAAA AAAAAA} % 1 Zeilig
	&
	\mcbf{5}{C{9cm}}{%
			AAAAAAAAAAAAA AAA-AAAAAAAAAAA AAAAAA AAAA AAAAAA AA AAA} \\ % 2 Zeilig
	
	\rowcolor[HTML]{FBCECB} 
	\textbf{AAAAAA AAAA}
	&
	\textbf{BBBBBBBBBBB BBBBBBB} 
	&
	\textbf{CCCCC}
	&
	\cellcolor[HTML]{CBCEFB}\textbf{DDDDD}
	&
	\textbf{EEEEEE}
	&
	\textbf{FFFFFFFFFFF}
	& 
	\textbf{GGGG  GGGGG GGGGG} \\
			
	A & B & C & D & E & F & G\\
	A & B & C & D & E & F & G\\
    \end{tabular}% <-- hier würde sich sonst ein Leerzeichen einschleichen
  }% \sbox
\the\wd\mybox, \the\arrayrulewidth %Breite der Tabelle und Breite der vertikalen Linie

\noindent\usebox\mybox %Tabelle ausgeben

\bigskip
\setlength\tabcolsep{\savedtabcolsep}% \tabcolsep wieder herstellen
% Nur zur Demo, wo mit welcher Länge zu rechnen ist:
\begin{tabular}{C{1cm}|C{2cm}}
a & b\\
\hline
\end{tabular}

{\color{red}\rule{\tabcolsep}{1pc}}%
{\color{blue}\rule{1cm}{1pt}}%
{\color{red}\rule{\tabcolsep}{1pc}}%
\rule{\arrayrulewidth}{1pc}%
{\color{red}\rule{\tabcolsep}{1pc}}%
{\color{blue}\rule{2cm}{1pt}}%
{\color{red}\rule{\tabcolsep}{1pc}}%
\end{document}
VG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

Diggi2023
Forum-Anfänger
Forum-Anfänger
Beiträge: 33
Registriert: Di 11. Apr 2023, 10:38

Re: Zellenbreite und mehr ...

Beitrag von Diggi2023 »

\tabcolsep und alles weitere muss ich noch genauer nachlesen

Danke für den m Tipp

Wegen \rowcolor braucht ich keine \cellcolor? Wenn ich aber \multicolumn{2}{l|}{ benutze, funkioniert es nicht ohne cellcolor.

Stimmt wegen \mcbf - könnte ich es mal ausprobieren

Was die Breite angeht muss ich noch ein paar Versuche starten.

Für deine Kommentare möchte ich mich sehr bedanken.

Antworten