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
Problem
- Ich habe eine Tabelle, in der ich
tabularx
und verwendemultirow
. - Wenn ich den roten Text im MWE einfüge, dann erhalte ich eine Verschiebung in einer der
X
Spalten. - Ich verstehe nicht, was passiert.
Aktualisieren
Nach dem Chat in den Kommentaren denke ich, dass dies möglicherweise die bessere Frage ist:
multirow
Kann ich ein „ und“multicolumn
mit automatischem Zeilenumbruch verwenden, ohne die Breite explizit angeben zu müssen (hier 120mm)?
"Echter" Tisch
Dies ist der „echte“ Tisch.
Antwort1
Sie möchten eine Y-Spalte für Ihren Spanning-Eintrag verwenden
\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}