22

My main goal is to disable text justification in tables and just have left-aligned text. I've loaded the array package and defined a custom \newcolumntype like so:

\usepackage{array}
\newcolumntype{x}[1]{>{\raggedright}p{#1}}

When using this in the tabular environment, everything works fine until the last column, when it throws this error:

./temp.tex:96: Misplaced \noalign.
\midrule ->\noalign 
                     {\ifnum 0=`}\fi \@aboverulesep =\aboverulesep \global \@...
l.96     \midrule

?

Using \begin{tabular}{@{} x{28mm} x{20mm} x{20mm} p{25mm} @{}} works fine (but throws an underfull \hbox warning) but using \begin{tabular}{@{} x{28mm} x{20mm} x{20mm} x{25mm} @{}} throws the error above.

Why am I not allowed to use my custom column type on the last column? It seems as if I'm missing something obvious to a trivial solution.

With \begin{tabular}{@{} x{28mm} x{20mm} x{20mm} p{25mm} @{}}:

table with underfull \hbox

25

It's a known issue. When you say \raggedright, the command \\ is redefined. This causes no harm until you want to terminate a table row: LaTeX finds the \\ as defined by \raggedright which doesn't mean the same thing as normally in tabular. Write

\newcolumntype{x}[1]{>{\raggedright\arraybackslash}p{#1}}

and use \newline if you want to terminate a line in one of the cells. Or use your definition and terminate table rows with \tabularnewline.

11

In addition to the answer by egreg - the command \RaggedRight from ragged2e package does not have this issue. This works:

\usepackage{array},
\usepackage[originalparameters]{ragged2e}  % The option prevents hyphentation rather than making it rare 
\newcolumntype{x}[1]{>{\RaggedRight}p{#1}}
1

The simplest solution: add an empty column. Depending on how you've built your table, you can either make it minimal width (with p{size}, for instance) or just let LaTeX figure it out. I used both in a recent paper and it fixed this problem. The only down side is that one of the tables uses \hline and vertical rules, and there's an 'overhang' on the right side of the table. I said, deal with it, life's short.

  • 1
    Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format. – Symbol 1 Aug 7 '15 at 0:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.