È una regola generale che quando usi \raggedright, \centering o \raggedleft nell’ultima colonna di una tabella devi usare \tabularnewline invece che \\ per terminare le righe oppure scrivere >{\arraybackslash} prima dello specificatore nel preambolo di tabella.
Naturalmente colortbl e booktabs sono leggermente incompatibili, te ne sarai già accorto.
La situazione peggiora, allora. Comunque, visto che la tabella me la costruisco io, rinuncio tranquillamente a quel \raggedright. Tuttavia, anche così non va bene:
`\documentclass{article}
\usepackage{booktabs,colortbl,xcolor,array}
\begin{document}
\newcolumntype{U}{\columncolor[gray]{0.8}}
\begin{tabular}{ccccU}
\toprule
a & b & c & d & f \\
\midrule
a & b & c & d & f \\
\midrule
a & b & c & d & f \\
\bottomrule
\end{tabular}
\end{document}`
Anche togliendo booktabs, l’errore
`Illegal pream-token ([): `c' used.
`rimane.😥 😥 😥
Perché non leggi le spiegazioni? Quel \newcolumntype è illegale. Bastava togliere \raggedright dalla definizione che ti avevo dato. Lo specificatore U, secondo la mia versione, prende un argomento, cioè l’allineamento richiesto nella colonna:
`\newcolumntype{U}[1]{>{\columncolor[gray]{0.8}}#1}`
Puoi scrivere U{l}, U{r}, U{c} oppure anche U{p{10cm}}.
Inutile piangere e strillare, prima si deve leggere. 🙂 La documentazione di array è molto chiara. I miei messaggi anche. 8) 😉
Ciao
Enrico