Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I am wondering if there is an environment for creating a table in LaTeX that will not only break at \hline, but instead can break in the middle of a cell.

I have to write very long reports in one table cell that will certainly span more than one page:

As an example:

%        File: Minimal.tex
%     Created: Tue Feb 15 07:00 PM 2011 G
% Last Change: Tue Feb 15 07:00 PM 2011 G
%
\documentclass[a4paper]{article}

\usepackage{longtable}

\begin{document}
\begin{longtable}{c | p{10 cm}}
Header 1 & Header 2 \\
           \hline
           Little text & 
           Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nulla augue, ultricies vestibulum auctor vitae, scelerisque sit amet tellus. Etiam adipiscing elementum pellentesque. Pellentesque ac nulla libero, quis venenatis augue. Donec ut egestas nisi. Sed non ligula at purus molestie blandit quis quis eros. Phasellus venenatis ante quis ligula molestie semper ornare est sollicitudin. Ut lacus ipsum, dictum vitae malesuada eget, luctus sed tortor. Curabitur a augue ipsum. Quisque accumsan odio et ipsum euismod volutpat. Praesent porta nunc adipiscing justo convallis nec tempor augue auctor. Nam magna nibh, gravida ut placerat nec, posuere et sem. Sed tincidunt, justo vel euismod pretium, enim tortor fermentum augue, iaculis bibendum nunc mi vel quam. Donec nec gravida ligula. Vivamus dictum libero eget elit scelerisque sit amet accumsan mi mollis.

           Phasellus eros magna, posuere facilisis sollicitudin dignissim, tincidunt ac eros. Vestibulum non vestibulum elit. Donec dictum vulputate nisl sed iaculis. Suspendisse ut ipsum arcu, ac molestie odio. Vivamus dapibus convallis arcu non ultricies. Sed id aliquet mi. Mauris vel nisi orci. Aenean pulvinar nulla et est rhoncus vestibulum. Morbi interdum, leo vel semper commodo, lectus velit blandit ipsum, quis euismod ante metus at nisl. Donec interdum scelerisque elit, auctor vestibulum elit mattis ultrices.

           Nam a velit dolor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce et augue vel augue pulvinar rhoncus laoreet quis dolor. Cras id dolor enim, non bibendum nisi. In ac nisl velit, ut lobortis dui. Etiam dapibus, lectus nec consectetur aliquam, sapien diam sagittis lorem, nec pellentesque ante ante vel libero. Fusce dapibus eros non metus condimentum placerat. Nam sem mi, sollicitudin eu molestie non, scelerisque ut velit. Morbi ultrices quam et tortor tempor quis interdum mauris ornare. Maecenas sit amet arcu massa, ut adipiscing leo. Ut fermentum elit vel ante bibendum et semper augue ullamcorper. Sed ac sapien felis.

           Aenean suscipit, quam nec condimentum ullamcorper, ante metus rhoncus nisl, sit amet vulputate est leo ac lectus. Cras pulvinar eleifend enim. Fusce sapien est, tristique a aliquam auctor, tempus vel turpis. Praesent dapibus vehicula rutrum. Sed ac felis felis. Proin vitae dui ac ligula hendrerit feugiat id malesuada felis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus vel ante nibh. Donec ut metus sed ipsum luctus posuere et sed mauris. Suspendisse posuere libero nec tortor elementum tincidunt. Duis rhoncus mollis sodales. Mauris sit amet quam eget enim pulvinar facilisis. Duis porttitor eros quis lorem molestie egestas. Nam sagittis erat vitae metus consequat ornare. Suspendisse et nisl ligula. Aenean sed tellus dolor, eu lacinia ipsum.

           Aenean suscipit, quam nec condimentum ullamcorper, ante metus rhoncus nisl, sit amet vulputate est leo ac lectus. Cras pulvinar eleifend enim. Fusce sapien est, tristique a aliquam auctor, tempus vel turpis. Praesent dapibus vehicula rutrum. Sed ac felis felis. Proin vitae dui ac ligula hendrerit feugiat id malesuada felis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus vel ante nibh. Donec ut metus sed ipsum luctus posuere et sed mauris. Suspendisse posuere libero nec tortor elementum tincidunt. Duis rhoncus mollis sodales. Mauris sit amet quam eget enim pulvinar facilisis. Duis porttitor eros quis lorem molestie egestas. Nam sagittis erat vitae metus consequat ornare. Suspendisse et nisl ligula. Aenean sed tellus dolor, eu lacinia ipsum.
           \\

           And &
           So on
\end{longtable}

\end{document}

This table will be too big to fit onto one page, but will not break in any package I tested (longtable, LTXtable, xtab).

Is there any any environment that does support in-cell page breaks?

Thanks in advance for any help.

share|improve this question
2  
No, AFAIK there are no tabular/table environments which make a page break inside a cell. If you need something like that, then a table is the wrong thing. Try to fake your two column table using e.g. two column mode or marginpars, maybe in combination with an environment from the framed package if you really want an vertical line or similar things. –  Martin Scharrer Feb 15 '11 at 19:27
    
Sounds like a pretty neat way - I might try that if I experience too many problems with the tables. For now Herbert's solution is good enough for what I need. –  Gjallar Feb 15 '11 at 20:53
add comment

3 Answers 3

up vote 3 down vote accepted

ConTeXt can do this. But if you need it only in some cases, you can do it by hand. Replace the forth line with

           Aenean suscipit, quam nec condimentum ullamcorper, ante metus rhoncus nisl, sit amet vulputate 
          est leo ac lectus. Cras pulvinar eleifend enim. Fusce sapien est, tristique a aliquam auctor, 
          tempus vel turpis. Praesent dapibus vehicula rutrum. Sed ac felis fe-
  \parfillskip=0pt \\ &  
          lis. Proin vitae dui ac ligula hendrerit feugiat id malesuada felis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus vel ante nibh. Donec ut metus sed ipsum luctus posuere et sed mauris. Suspendisse posuere libero nec tortor elementum tincidunt. Duis rhoncus mollis sodales. Mauris sit amet quam eget enim pulvinar facilisis. Duis porttitor eros quis lorem molestie egestas. Nam sagittis erat vitae metus consequat ornare. Suspendisse et nisl ligula. Aenean sed tellus dolor, eu lacinia ipsum.

and you'll get a pagebreak with left and right aligned text. You'll find the places where a break makes sense if you set it first without the break. The reason why I saw, that breaking between fe- and lis maybe a good choice in this case.

share|improve this answer
add comment

My own solution is very similar to Gjallar's, but adds outside borders to the table, similar to Microsoft Word tables.

\documentclass{report}

\usepackage{parcolumns}
\usepackage{mdframed}

\newenvironment{mytable}[1]
   {\begin{mdframed}[splittopskip=0pt,frametitle={},frametitlerule=true,frametitlebelowskip=0pt,frametitleaboveskip=0pt,roundcorner=0pt,skipabove=0pt,leftline=true,rightline=true,innertopmargin=-4pt,innerleftmargin=0pt,innerrightmargin=0pt,middlelinewidth=0pt,innerbottommargin=0pt,everyline=true,splitbottomskip=0pt]
    \hspace{0pt}
    \begin{parcolumns}[rulebetween,sloppy]{#1}}
   {\end{parcolumns}
    \end{mdframed}}
\begin{document}
\begin{mytable}{2}
\colchunk{Some text}\colchunk{Some more text}\colplacechunks
\hrule
\colchunk{Yet more text}\colchunk{Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me lius quod ii legunt saepius. Claritas est etiam processus dynamicus, qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, quam nunc putamus parum claram, anteposuerit litterarum formas humanitatis per seacula quarta decima et quinta decima. Eodem modo typi, qui nunc nobis videntur parum clari, fiant sollemnes in futurum.}\colplacechunks
\end{mytable}
\end{document}

(See also Custom table with mdframed and parcolumns: LaTeX Error: Something's wrong--perhaps a missing \item)

share|improve this answer
1  
A screenshot would improve this answer. –  Christian Hupfer Jul 17 at 8:42
add comment

Ok, after Martin proposed the solution to use multiple columns I started to redo my document and ended up using the "parcolumns" package.

So if anyone is interested in that solution I will just post the minimal example here again:

%        File: Minimal.tex
%     Created: Tue Feb 15 07:00 PM 2011 G
% Last Change: Tue Feb 15 07:00 PM 2011 G
%
\documentclass[a4paper]{article}

\usepackage{parcolumns}

\begin{document}
\begin{parcolumns}[colwidths={1=2.5cm}, rulebetween]{2}
\colchunk{Header 1}
\colchunk{Header 2}
\colplacechunks{}
\hrule

\colchunk{Little text}
\colchunk{ 
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nulla augue, ultricies vestibulum auctor vitae, scelerisque sit amet tellus. Etiam adipiscing elementum pellentesque. Pellentesque ac nulla libero, quis venenatis augue. Donec ut egestas nisi. Sed non ligula at purus molestie blandit quis quis eros. Phasellus venenatis ante quis ligula molestie semper ornare est sollicitudin. Ut lacus ipsum, dictum vitae malesuada eget, luctus sed tortor. Curabitur a augue ipsum. Quisque accumsan odio et ipsum euismod volutpat. Praesent porta nunc adipiscing justo convallis nec tempor augue auctor. Nam magna nibh, gravida ut placerat nec, posuere et sem. Sed tincidunt, justo vel euismod pretium, enim tortor fermentum augue, iaculis bibendum nunc mi vel quam. Donec nec gravida ligula. Vivamus dictum libero eget elit scelerisque sit amet accumsan mi mollis.

        Phasellus eros magna, posuere facilisis sollicitudin dignissim, tincidunt ac eros. Vestibulum non vestibulum elit. Donec dictum vulputate nisl sed iaculis. Suspendisse ut ipsum arcu, ac molestie odio. Vivamus dapibus convallis arcu non ultricies. Sed id aliquet mi. Mauris vel nisi orci. Aenean pulvinar nulla et est rhoncus vestibulum. Morbi interdum, leo vel semper commodo, lectus velit blandit ipsum, quis euismod ante metus at nisl. Donec interdum scelerisque elit, auctor vestibulum elit mattis ultrices.

        Nam a velit dolor. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce et augue vel augue pulvinar rhoncus laoreet quis dolor. Cras id dolor enim, non bibendum nisi. In ac nisl velit, ut lobortis dui. Etiam dapibus, lectus nec consectetur aliquam, sapien diam sagittis lorem, nec pellentesque ante ante vel libero. Fusce dapibus eros non metus condimentum placerat. Nam sem mi, sollicitudin eu molestie non, scelerisque ut velit. Morbi ultrices quam et tortor tempor quis interdum mauris ornare. Maecenas sit amet arcu massa, ut adipiscing leo. Ut fermentum elit vel ante bibendum et semper augue ullamcorper. Sed ac sapien felis.

        Aenean suscipit, quam nec condimentum ullamcorper, ante metus rhoncus nisl, sit amet vulputate est leo ac lectus. Cras pulvinar eleifend enim. Fusce sapien est, tristique a aliquam auctor, tempus vel turpis. Praesent dapibus vehicula rutrum. Sed ac felis felis. Proin vitae dui ac ligula hendrerit feugiat id malesuada felis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus vel ante nibh. Donec ut metus sed ipsum luctus posuere et sed mauris. Suspendisse posuere libero nec tortor elementum tincidunt. Duis rhoncus mollis sodales. Mauris sit amet quam eget enim pulvinar facilisis. Duis porttitor eros quis lorem molestie egestas. Nam sagittis erat vitae metus consequat ornare. Suspendisse et nisl ligula. Aenean sed tellus dolor, eu lacinia ipsum.

        Aenean suscipit, quam nec condimentum ullamcorper, ante metus rhoncus nisl, sit amet vulputate est leo ac lectus. Cras pulvinar eleifend enim. Fusce sapien est, tristique a aliquam auctor, tempus vel turpis. Praesent dapibus vehicula rutrum. Sed ac felis felis. Proin vitae dui ac ligula hendrerit feugiat id malesuada felis. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Phasellus vel ante nibh. Donec ut metus sed ipsum luctus posuere et sed mauris. Suspendisse posuere libero nec tortor elementum tincidunt. Duis rhoncus mollis sodales. Mauris sit amet quam eget enim pulvinar facilisis. Duis porttitor eros quis lorem molestie egestas. Nam sagittis erat vitae metus consequat ornare. Suspendisse et nisl ligula. Aenean sed tellus dolor, eu lacinia ipsum.
}
\colplacechunks{}
\hrule
\colchunk{And} 
\colchunk{So on}
\colplacechunks{}
\end{parcolumns}
\end{document}

I hope it is not against the rules / bad style to post this as an answer to my own question.

share|improve this answer
    
No, quite the opposite. It's good to see what helped you in the end. You can even go ahead and accept your own answer! –  Hendrik Vogt Feb 16 '11 at 18:56
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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