tabularx und multirow: Seltsames Verhalten

tabularx und multirow: Seltsames Verhalten

MWE

\documentclass[12pt]{article}

\usepackage[
    a4paper,
    left = 5mm,
    right = 5mm,
    landscape,
    %showframe,
    ]
    {geometry}

\usepackage{tabularx}
\usepackage{multirow}

% Thicker table lines for screenshot
\setlength{\arrayrulewidth}{1.5pt}
\setlength{\parindent}{0pt}

\usepackage[table]{xcolor}
\definecolor{myTableColor}{gray}{0.80}

% Nice sf font for screenshot
\usepackage[sfdefault]{cabin}

% https://tex.stackexchange.com/questions/163061
% https://tex.stackexchange.com/questions/89166
\newcolumntype{Y}{>{\centering\arraybackslash}X} 

\begin{document}

\section*{Red Text Causes Strange Column}

\begin{tabularx}{\textwidth}{lc|l|Y|Y|Y|Y}
& & & \multicolumn{3}{c}{\multirow{2}{*}{\parbox{130mm}{\centering Text}}} & \\ 
% New Row
& & & \multicolumn{3}{l}{} & \\ 
% New Row
Text & Text & & & & & \\ \hline
% New Row
\rowcolor{myTableColor}
Text & Text & & & & \textcolor{red}{Problem Column} & \\ \hline
% New Row
Text Text Text Text \textcolor{red}{Text} & Text & Text Text Text Text Text \textcolor{red}{Text} & & & & \\ \hline
% New Row
Text & Text & & & & & \\ \hline
\end{tabularx}

\section*{Red Text Removed}

\begin{tabularx}{\textwidth}{lc|l|Y|Y|Y|Y}
& & & \multicolumn{3}{c}{\multirow{2}{*}{\parbox{130mm}{\centering Text}}} & \\ 
% New Row
& & & \multicolumn{3}{l}{} & \\ 
% New Row
Text & Text & & & & & \\ \hline
% New Row
\rowcolor{myTableColor}
Text & Text & & & & \textcolor{blue}{No Problem Column} & \\ \hline
% New Row
Text Text Text Text & Text & Text Text Text Text Text & & & & \\ \hline
% New Row
Text & Text & & & & & \\ \hline
\end{tabularx}

\end{document}

MWE-Ausgabe

Bildbeschreibung hier eingeben

Problem

  • Ich habe eine Tabelle, in der ich tabularxund verwende multirow.
  • Wenn ich den roten Text im MWE einfüge, dann erhalte ich eine Verschiebung in einer der XSpalten.
  • Ich verstehe nicht, was passiert.

Aktualisieren

Nach dem Chat in den Kommentaren denke ich, dass dies möglicherweise die bessere Frage ist:

multirowKann ich ein „ und“ multicolumnmit automatischem Zeilenumbruch verwenden, ohne die Breite explizit angeben zu müssen (hier 120mm)?

"Echter" Tisch

Dies ist der „echte“ Tisch.

Bildbeschreibung hier eingeben

Antwort1

Sie möchten eine Y-Spalte für Ihren Spanning-Eintrag verwenden

Bildbeschreibung hier eingeben

\documentclass[12pt]{article}

\usepackage[
    a4paper,
    left = 5mm,
    right = 5mm,
    landscape,
    %showframe,
    ]
    {geometry}


\usepackage{tabularx}
\usepackage{multirow}

% Thicker table lines for screenshot
\setlength{\arrayrulewidth}{1.5pt}
\setlength{\parindent}{0pt}

\usepackage[table]{xcolor}
\definecolor{myTableColor}{gray}{0.80}

% Nice sf font for screenshot
\usepackage[sfdefault]{cabin}

% https://tex.stackexchange.com/questions/163061
% https://tex.stackexchange.com/questions/89166
\newcolumntype{Y}{>{\centering\arraybackslash}X} 

\begin{document}

\section*{Red Text Causes Strange Column}

\begin{tabularx}{\textwidth}{lc|l|Y|Y|Y|Y}
& & & 
\multicolumn{3}{>{\hsize=\dimexpr3\hsize+4\tabcolsep+2\arrayrulewidth\relax}Y}
{\multirow{2}{=}{\centering Text 
text text text text text text text text text text
text text text text text text text text text text
text text text text text text text text text text
}} & \\ 
% New Row
& & & \multicolumn{3}{l}{} & \\ 
% New Row
Text & Text & & & & & \\ \hline
% New Row
\rowcolor{myTableColor}
Text & Text & & & & \textcolor{red}{Problem Column} & \\ \hline
% New Row
Text Text Text Text \textcolor{red}{Text} & Text & Text Text Text Text Text \textcolor{red}{Text} & & & & \\ \hline
% New Row
Text & Text & & & & & \\ \hline
\end{tabularx}

\section*{Red Text Removed}

\begin{tabularx}{\textwidth}{lc|l|Y|Y|Y|Y}
& & & \multicolumn{3}{c}{\multirow{2}{*}{\parbox{130mm}{\centering Text}}} & \\ 
% New Row
& & & \multicolumn{3}{l}{} & \\ 
% New Row
Text & Text & & & & & \\ \hline
% New Row
\rowcolor{myTableColor}
Text & Text & & & & \textcolor{blue}{No Problem Column} & \\ \hline
% New Row
Text Text Text Text & Text & Text Text Text Text Text & & & & \\ \hline
% New Row
Text & Text & & & & & \\ \hline
\end{tabularx}

\end{document}

verwandte Informationen