# How to fix my table, centering of columns

I've been trying to produce a table in which the first two columns has rows merged, the next three columns has columns merged, with three sub-columns, within the same height as the merged rows of cols 1 and 2, with a final column that has rows merged like cols 1 and 2-viz.

I am using pdflatex, the tabularx package, booktabs package and array package. My relevant code is:

\documentclass[12pt]{article}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{booktabs}
\begin{document}
\begin{table}[h]
\caption{Spectral channel characteristics of SEVIRI in terms of central, minimum and maximum wavelength of the channels and the main application areas of each channel.}
\begin{tabularx}{\textwidth}{l l c c c l}
\toprule
\multirow{3}{3.5em}{Channel No.} & \multirow{3}{3.5em}{Spectral Band ($\mu$m)} & \multicolumn{3}{c}{Characteristics of} & \multirow{3}{10em}{Main observational application} \\
{} & {} & \multicolumn{3}{c}{Spectral Band ($\mu$m)} & {} \\
\cmidrule(lr){3-5}
{} & {} & $\lambda_{\mathrm{cen}}$ & $\lambda_{\mathrm{min}}$ & $\lambda_{\mathrm{max}}$ & {}\\
\midrule
1 & VIS0.6 & 0.635 & 0.56 & 0.71 & Surface, clouds, wind fields \\
2 & VIS0.8 & 0.81 & 0.74 & 0.88 & Surface, clouds, wind fields \\
3 & NIR1.6 & 1.64 & 1.50 & 1.78 & Surface, cloud phase \\
4 & IR3.9 & 3.90 & 3.48 & 4.36 & Surface, clouds, wind fields \\
5 & WV6.2 & 6.25 & 5.35 & 7.15 & Water vapor, high level clouds, atmospheric instability \\
6 & WV7.3 & 7.35 & 6.85 & 7.85 & Water vapor, atmospheric instability \\
7 & IR8.7 & 8.70 & 8.30 & 9.1 & Surface, clouds, atmospheric instability \\
8 & IR9.7 & 9.66 & 9.38 & 9.94 & Ozone \\
9 & IR10.8 & 10.80 & 9.80 & 11.80 & Surface, clouds, wind fields, atmospheric instability \\
10 & IR12.0 & 12.00 & 11.00 & 13.00 & Surface, clouds, atmospheric instability \\
11 & IR13.4 & 13.40 & 12.40 & 14.40 & Cirrus cloud height, atmospheric instability \\
12 & HRV & \multicolumn{3}{c}{Broadband (about 0.4--1.1 $\mu$m)} & Surface, clouds \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}


I would like the lambda-containing columns to be evenly distributed. I tried to add sizing to the c c c columns, but then I get the illegal pream-token error when I run:

[1{c:/texlive/2018/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
! Package array Error:  Illegal pream-token (2em): c' used.

See the array package documentation for explanation.
Type  H <return>  for immediate help.
...

l.104 \end{tabularx}


Any ideas?

• Why are you using tabularx with no X columns? That goes against the idea to having tabularx in the first place. Plus you should probably learn to use siunitx for better unit handling. – daleif Mar 6 '19 at 14:28
• BTW: I get no errors from your MWE using a full up to date TeXLive 2018. – daleif Mar 6 '19 at 14:29

Here's my proposal:

\documentclass[12pt]{article}
\usepackage{tabularx}
\usepackage{booktabs}

\sisetup{range-phrase = --}

\NewDocumentCommand{\splitcell}{mo}{%
\IfNoValueTF{#2}{%
\begin{tabular}[t]{@{}c@{}}#1\end{tabular}%
}{%
\vphantom{\begin{tabular}[t]{@{}c@{}}#1\end{tabular}}%
\smash{\begin{tabular}[t]{@{}c@{}}#1\\#2\end{tabular}}%
}%
}

\begin{document}

\begin{table}[htp]

\caption{Spectral channel characteristics of SEVIRI in terms
of central, minimum and maximum wavelength of the channels
and the main application areas of each channel.}

\medskip

\begin{tabularx}{\textwidth}{
@{}
S[table-format=2.0]
c
S[table-format=2.3]
S[table-format=2.2]
S[table-format=2.2]
>{\raggedright\arraybackslash}X
@{}
}
\toprule

{\splitcell{Channel \\ No.}} &
\splitcell{Spectral \\ Band}[\si{\micro\meter}] &
\multicolumn{3}{c}{
\splitcell{Characteristics of \\ Spectral Band (\si{\micro\meter})}%
} &
Main observational application \\
\cmidrule(lr){3-5}
{} & {} & {$\lambda_{\mathrm{cen}}$} &
{$\lambda_{\mathrm{min}}$} &
{$\lambda_{\mathrm{max}}$} & \\
\midrule
1 & VIS0.6 & 0.635 & 0.56 & 0.71 & Surface, clouds, wind fields \\
2 & VIS0.8 & 0.81 & 0.74 & 0.88 & Surface, clouds, wind fields \\
3 & NIR1.6 & 1.64 & 1.50 & 1.78 & Surface, cloud phase \\
4 & IR3.9 & 3.90 & 3.48 & 4.36 & Surface, clouds, wind fields \\
5 & WV6.2 & 6.25 & 5.35 & 7.15 & Water vapor, high level clouds, atmospheric instability \\
6 & WV7.3 & 7.35 & 6.85 & 7.85 & Water vapor, atmospheric instability \\
7 & IR8.7 & 8.70 & 8.30 & 9.1 & Surface, clouds, atmospheric instability \\
8 & IR9.7 & 9.66 & 9.38 & 9.94 & Ozone \\
9 & IR10.8 & 10.80 & 9.80 & 11.80 & Surface, clouds, wind fields, atmospheric instability \\
10 & IR12.0 & 12.00 & 11.00 & 13.00 & Surface, clouds, atmospheric instability \\
11 & IR13.4 & 13.40 & 12.40 & 14.40 & Cirrus cloud height, atmospheric instability \\
12 & HRV & \multicolumn{3}{c}{%
Surface, clouds \\
\bottomrule
\end{tabularx}

\end{table}

\end{document}


I'd probably start with. That long line in no 12, will never look any good, so best to rewrite it.

\documentclass[12pt]{article}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage[tableposition=top]{caption}
\usepackage{siunitx}
\begin{document}
\begin{table}[h]
\caption{Spectral channel characteristics of SEVIRI in terms of
central, minimum and maximum wavelength of the channels and the
main application areas of each channel.}
\begin{tabularx}{\textwidth}{
l
l
S[table-format=2.3]
S[table-format=2.2]
S[table-format=2.2]
>{\raggedright\arraybackslash}X
}
\toprule
\multirow{3}{3.5em}{Channel No.}
&
\multirow{3}{3.5em}{\centering Spectral Band  (\si{\micro\meter})}
&
\multicolumn{3}{c}{Characteristics of}
&
\multirow{3}{10em}{Main observational application}
\\
{} & {} & \multicolumn{3}{c}{Spectral Band (\si{\micro\meter})} & {}
\\
\cmidrule(lr){3-5}
{} & {} & {$\lambda_{\mathrm{cen}}$} & {$\lambda_{\mathrm{min}}$} &
{$\lambda_{\mathrm{max}}$} & {}
\\
\midrule
1 & VIS0.6 & 0.635 & 0.56 & 0.71 & Surface, clouds, wind fields
\\
2 & VIS0.8 & 0.81 & 0.74 & 0.88 & Surface, clouds, wind fields
\\
3 & NIR1.6 & 1.64 & 1.50 & 1.78 & Surface, cloud phase
\\
4 & IR3.9 & 3.90 & 3.48 & 4.36 & Surface, clouds, wind fields
\\
5 & WV6.2 & 6.25 & 5.35 & 7.15 & Water vapor, high level clouds,
atmospheric instability
\\
6 & WV7.3 & 7.35 & 6.85 & 7.85 & Water vapor, atmospheric instability
\\
7 & IR8.7 & 8.70 & 8.30 & 9.1 & Surface, clouds, atmospheric
instability
\\
8 & IR9.7 & 9.66 & 9.38 & 9.94 & Ozone
\\
9 & IR10.8 & 10.80 & 9.80 & 11.80 & Surface, clouds, wind fields,
atmospheric instability
\\
10 & IR12.0 & 12.00 & 11.00 & 13.00 & Surface, clouds, atmospheric
instability
\\
11 & IR13.4 & 13.40 & 12.40 & 14.40 & Cirrus cloud height, atmospheric instability \\
12 & HRV & \multicolumn{3}{c}{Broadband*} & Surface, clouds \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}


a small variation of @daleif answer with considering coloring of rows from your answer. i also took a liberty and change column names:

\documentclass[12pt]{article}
\usepackage[table]{xcolor}
\usepackage{booktabs, multirow, tabularx}
\usepackage[skip=1ex]{caption}
\usepackage[range-phrase = --]{siunitx}

%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}

\begin{document}
\begin{table}[h]
\caption{Spectral channel characteristics of SEVIRI in terms of central, minimum and maximum wavelength of the channels and the main application areas of each channel.}
\label{tab:channels}
\renewcommand\arraystretch{1.2}
\setlength\tabcolsep{4pt}
\rowcolors{3}{white}{gray!15}
\begin{tabularx}{\textwidth}{
p{2em}
p{3em}
S[table-format=2.3]
*{2}{S[table-format=1.3]}
>{\raggedright\arraybackslash}X
}
\toprule
&
& \multicolumn{3}{c}{\mrc{Spectral band\\ characteristics (\si{\micro\meter})}}
& \\
\cmidrule(lr){3-5}
\multirow[b]{-3.3}{=}{Ch. No.}
& \multirow[b]{-3.3}{=}{Band name}
& {$\lambda_{\mathrm{cen}}$}
& {$\lambda_{\min}$}
& {$\lambda_{\max}$}
&  \multirow[b]{-3}{\linewidth}{Main observational application}  \\
\hline
1  & VIS0.6 &  0.635 &  0.56 &  0.71 & Surface, clouds, wind fields \\
2  & VIS0.8 &  0.81  &  0.74 &  0.88 & Surface, clouds, wind fields \\
3  & NIR1.6 &  1.64  &  1.50 &  1.78 & Surface, cloud phase \\
4  & IR3.9  &  3.90  &  3.48 &  4.36 & Surface, clouds, wind fields \\
5  & WV6.2  &  6.25  &  5.35 &  7.15 & Water vapor, high level clouds, atmospheric instability \\
6  & WV7.3  &  7.35  &  6.85 &  7.85 & Water vapor, atmospheric instability \\
7  & IR8.7  &  8.70  &  8.30 &  9.1  & Surface, clouds, atmospheric instability \\
8  & IR9.7  &  9.66  &  9.38 &  9.94 & Ozone \\
9  & IR10.8 & 10.80  &  9.80 & 11.80 & Surface, clouds, wind fields, atmospheric instability \\
10 & IR12.0 & 12.00  & 11.00 & 13.00 & Surface, clouds, atmospheric instability \\
11 & IR13.4 & 13.40  & 12.40 & 14.40 & Cirrus cloud height, atmospheric instability \\
& Surface, clouds \\
\bottomrule
\end{tabularx}


Thanks for all the responses! So, I've been playing with tabularx and saw someone define a type of column in the preamble in a previous posting:

\newcolumntype{Y}{>{\centering\arraybackslash}X}


So now, when I specify the middle three columns as Y and tweaking my column size a bit (also, l, c, and r don't accept sizing, that's why I was getting the error, I switched to p, m and b of the array package):

\begin{tabularx}{\textwidth}{p{3.5em} p{3.5em} Y Y Y p{10em}}


I get very close to what I was looking for:

(Sorry about the dark rows, I am also playing with rowcolor`s).

Thanks again for the input!

• Thanks for the tip about the SI units too, I will keep them in mind for the future. – Adrian Mar 6 '19 at 15:00
• You said "saw someone ...". I think you should add his/her user-name here (for the credit). – user156344 Mar 6 '19 at 15:03
• Ah yes, sure, that would be Mico. Thanks Mico! – Adrian Mar 6 '19 at 15:05
• @Adrian - Thanks for the shout-out. :-) – Mico Mar 6 '19 at 15:48
• So, just to update, I also did some raggedright modification of the last p column to get rid of the spaces due to justification. The relevant command is \begin{tabularx}{\textwidth}{p{3.5em} p{3.5em} Y Y Y >{\raggedright\arraybackslash}p{10em}}, as proposed by Saravanan. – Adrian Mar 6 '19 at 15:54