15

I have a table (tabular) with some fixed width columns, and I'd like to prevent a hyphen being inserted (preferring a line break to be inserted prematurely).

The sample table's content is below.

\begin{tabular}{p{4cm}p{4cm}}
Want to avoid hyphenation & also want to avoid hyphenation here \\
\end{tabular}

How can I do this? I'd also like to tell latex not to allow each column to exceed its specified width (so I don't want a solution that means assigning hyphenation the same badness rating as an overfull hbox).

  • Setting \hyphenpenalty10000 causes the hyphenation to go away for me and I get no overfull hboxes. – TH. Sep 8 '10 at 10:48
17

Setting the text ragged right will do this for you. Something like

\usepackage{array}
...
\begin{tabular}{>{\raggedright}p{4cm}>{\raggedright\arraybackslash}p{4cm}}
Want to avoid hyphenation & also want to avoid hyphenation here \\
\end{tabular}
  • 1
    Better use \RaggedRight from ragged2e, no? – Konrad Rudolph Sep 8 '10 at 11:37
  • 2
    The point was to not have hyphenation. \RaggedRight's whole purpose is to allow hyphenation. – TH. Sep 8 '10 at 14:08
  • 2
    Oh, that just means I was lazy with my example. Should be fixed now. – Will Robertson Sep 9 '10 at 6:51
  • 1
    Thanks -- I have no idea what \arraybackslash is for but that fixes the problem. – bryn Sep 9 '10 at 8:20
  • 1
    Strangely, it's not documented in array.dtx, but it is documented in tabularx: "LATEX’s \raggedright macro redefines \\ in a way which conflicts with its use in a tabular or array environments. For this reason this package introduces the command \arraybackslash, this may be used after a \raggedright, \raggedleft or \centering declaration." – Will Robertson Sep 9 '10 at 8:50

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.