4

I have such table:

\begin{tabularx}{\textwidth}{ |p{0.5cm}|X|p{1cm}|p{0.8cm}|p{1.1cm}|p{0.9cm}|p{0.9cm}|p{1.2cm}|p{0.9cm}|p{0.9cm}|p{1.5cm}| }                                                                                                                  
    \hline                                                                                                                                                                                                                                   
    No. & Compound & Storage place & Shelf & Number & Calc mol & Cacl wt & Calc amount & Real mol & Real wt & Real amount \\                                                                                                                 
    \hline                                                                                                                                                                                                                                   
    1 & lasdsdasdasdasdasddasdllasfsdjfsd & Lab1 & 2 & 355235 & 85.000 & 92.006 & 1.33620 & 85.000 & 92.006 & 1.33620 g \\                                                                                                                   
    \hline                                                                                                                                                                                                                                   
\end{tabularx}

How to wrap long word in second column? I would like to have table where text never ever overflow.

What I have now is:

enter image description here

What I would like to have:

enter image description here

Note: I'm using xelatex as compiler, I dont know if it makes difference.

4
  • 3
    First your table is too wide to fit in. Second, you may use \hspace{0pt} lasdsdasdasdasdasddasdllasfsdjfsd so that the long word is hyphenated. TeX doesn't hyphenate the first word. When you add \hspace{0pt}, you trick TeX to treat the long word as not the first word.
    – user11232
    Aug 28, 2014 at 9:53
  • @HarishKumar - I doubt that there are any hyphenation rules that provide sensible guidance regarding the hyphenation of the remarkable string "lasdsdasdasdasdasddasdllasfsdjfsd"...
    – Mico
    Aug 28, 2014 at 9:58
  • 1
    @Mico TeX hypheantes "lasdsdasdasdasdasddasdllasfsdjfsd" but, no rules followed ;-)
    – user11232
    Aug 28, 2014 at 10:01
  • @HarishKumar - great, works as intended. Please post your answer so I can accept it.
    – marxin
    Aug 28, 2014 at 10:14

1 Answer 1

7

Converting the comment into answer.

TeX doesn't hyphenate the first word. You can add \hspace{0pt}, and trick TeX to treat the long word as not the first word. Using \hspace{0pt} lasdsdasdasdasdasddasdllasfsdjfsd should do the job in the present case.

You may prefer to put it in the column definition itself like >{\hspace{0pt}}X thereby avoiding its specification in (each) cell.

2
  • 1
    >{\hspace{0pt}}X for the second column should avoid the need of specifying it explicitly in the cell.
    – egreg
    Aug 28, 2014 at 10:57
  • Is there a solution when using something like \begin{tabular}{l||r|r||r|r||r||r|r}, i.e.: no fixed widths?
    – U. Windl
    Nov 20, 2019 at 0:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .