Rahmen wird nicht richtig angezeigt Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


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

Rahmen wird nicht richtig angezeigt

Beitrag von Diggi2023 »

Ich hab das Problem:
  • In einer Tabelle will ich Zelle A1 und Zelle A2 verbinden
  • In der neuen Zelle will ich ein Text und darunter eine Aufzählung haben
  • Das alles braucht jetzt ein Rahmen
Und wenn man es sich anschaut, geht die letzte Linie durch den ganzen Text.
Was mach ich falsch, wie müsste der Code aussehen?
\documentclass{article}
\usepackage{array}
\usepackage{makecell}
\usepackage{multirow}

\begin{document}
	\begin{tabular}{|c|c|}
		\hline
		\multirow{2}{*}{\parbox{4cm}{Gemeinsame Zellen
				\begin{itemize}
					\item Erster Punkt
					\item Zweiter Punkt
					\item Dritter Punkt
		\end{itemize}}} & 
		Text in der zweiten Zeile \\
		\cline{2-2}
		& Weiterer Text \\
		\hline
	\end{tabular}
\end{document}

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

Re: Rahmen wird nicht richtig angezeigt

Beitrag von Diggi2023 »

Ich verstehe zwar nicht die Ausführung, aber es geht
Quelle: https://tex.stackexchange.com/questions/320686/itemize-within-a-multirow
\documentclass{report}
\usepackage{makecell,multirow}
\usepackage{caption}
\usepackage{calc}
\usepackage{enumitem}
\newcommand{\tablistcommand}{% <-- zum entfernen des Vertikalen Zwischenraum
	%     vor und nach itemize
	\leavevmode\par\vspace{-\baselineskip}
}
\newcolumntype{P}[1]{p{#1-2\tabcolsep-\arrayrulewidth}}

\begin{document}
	\begin{table}[h]
		\setcellgapes{3pt}
		\makegapedcells
		\centering
		\begin{tabular}{c|P{0.6\textwidth}}
			ABC
			& DEF  \\ \hline
			
			first col 
			& 
			HALLO\newline
			\begin{itemize}[noitemsep,topsep=0pt,left=0pt,before = \tablistcommand,after  = 
			\tablistcommand]
				\item first item
				\item second item
			\end{itemize}                               \\
		\end{tabular}
	\end{table}
\end{document}

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2534
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Re: Rahmen wird nicht richtig angezeigt

Beitrag von Stefan Kottwitz »

Prima, danke für die Info!

Stefan

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

Re: Rahmen wird nicht richtig angezeigt

Beitrag von Diggi2023 »

Moment, ich merke gerade, dies ist die Lösung für eine Zelle, ob dies auch für verbundene Zellen funktioniert.... :roll: muss ich noch testen.... war doch etwas zu schnell unterwegs....

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

Re: Rahmen wird nicht richtig angezeigt

Beitrag von Diggi2023 »

Bei näherer Betrachtung habe ich festgestellt, dass das Problem gar nicht was mit Aufzählung bei mir zutun hat.
\multirow erzeugt den Fehler, da er nicht die richtige Box-Größe generiert.

Mein Worst Case sieht in etwa so aus:
Zelle A1:A2 wird mit multirow verbunden
Zelle B1 und B2 haben nur einen kleinen eintrag.
Der Text "Text unter der Tabelle" ist nicht unter der Tabelle.
Die nächste Tabelle wird "richtig" unter dem Text eingefügt.

Mein Problem zeigt die dritte Tabelle, wo ich um die multirow eine fbox erzeugt habe und dies nicht in der richtigen Größe von LaTeX umgesetzt wird. Hat da einer eine Idee?
\documentclass{article}
\usepackage{array}
\usepackage{makecell}
\usepackage{multirow}

\begin{document}
	\begin{tabular}{|c|c|}
		\hline
		\multirow{2}{*}{\parbox{4cm}{%
				Erste Zeile\\
				Zweite Zeile\\
				Dritte Zeile\\
				Vierte Zeile\\
				Fünfte Zeile}} & 
		kurzer Text\\
		\cline{2-2}
		& weiterer Text \\
		\hline
	\end{tabular}
	
	Text unter der Tabelle
	
	\begin{tabular}{|c|c|}
		\hline
			\multirow{2}{80mm}{%
				Erste Zeile,
				Zweite Zeile,
				Dritte Zeile,
				Vierte Zeile,
				Fünfte Zeile}
			& 
		Text in der zweiten Zeile \\
		\cline{2-2}
		& Weiterer Text \\
		\hline
	\end{tabular}
	
	\vspace{2cm}
	Hier die Tabelle mit fbox-multirow
	
	\begin{tabular}{|c|c|}
		\hline
		\fbox{
			\multirow{2}{80mm}{%
				Erste Zeile,
				Zweite Zeile,
				Dritte Zeile,
				Vierte Zeile,
				Fünfte Zeile}
			} & 
		Text in der zweiten Zeile \\
		\cline{2-2}
		& Weiterer Text \\
		\hline
	\end{tabular}
\end{document}

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

Re: Rahmen wird nicht richtig angezeigt

Beitrag von Diggi2023 »

Die Lösung habe ich hier gefunden im Kap "6.2 Over Sized Spanning Rows" https://www.cl.uni-heidelberg.de/courses/ss19/wissschreib/material/tableTricks.pdf

Ich mag die Lösung nicht so, da man Manuell eingreifen muss, aber schlussendlich hat es geklappt,


In der Präambel muss der folgende Code rein:
\usepackage{bigstrut}
\newlength{\rowA}
\setlength{\rowA}{9ex} % modify as needed
\newcommand{\strutA}{% no space before strut
\rule[-0.45\rowA]{0pt}{\rowA}% put text approx mid strut
}

In der Tabelle, der Fett gedruckte Teil nicht vergessen:
\multirow{2}{*}[1ex]{\parbox{4cm}{%
Und in einer Zelle von einer Zeile muss
\strutA
stehen

Ach ja und wenn in einer Zelle der Text zu lang wir, dass dieser automatisch einen Zeilenumbruch auslösst, würde ich die Zelle mit
\parbox{4cm}{Das ist mein langer Text}
einfügen. Sonst kommt zwischen dem Text noch durch die \strutA der Vertikaler Leerraum.

So und hier der ganze Code:
\documentclass{article}
\usepackage{array}
\usepackage{makecell}
\usepackage{multirow}

\usepackage{bigstrut}
\newlength{\rowA}
\setlength{\rowA}{9ex} % modify as needed
\newcommand{\strutA}{% no space before strut
	\rule[-0.45\rowA]{0pt}{\rowA}% put text approx mid strut
	}
	
	
\begin{document}
	\begin{tabular}{|c|c|}
		\hline
		\multirow{2}{*}[1ex]{\parbox{4cm}{%
				Erste Zeile\\
				Zweite Zeile\\
				Dritte Zeile\\
				Vierte Zeile\\
				Fünfte Zeile}} & 
		kurzer Text\strutA\\
		\cline{2-2}
		& weiterer Text\strutA\\
		\hline
	\end{tabular}
	
	Text unter der Tabelle
	
	\begin{tabular}{|c|c|}
		\hline
			\multirow{2}{80mm}{%
				Erste Zeile,
				Zweite Zeile,
				Dritte Zeile,
				Vierte Zeile,
				Fünfte Zeile}
			& 
		Text in der zweiten Zeile \\
		\cline{2-2}
		& Weiterer Text \\
		\hline
	\end{tabular}
	
	
\end{document}

Antworten