Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Tabellenzeilen über Seitenumbruch hinweg

2 views
Skip to first unread message

Magnus Rosenbaum

unread,
Dec 14, 2006, 3:50:57 PM12/14/06
to
Hallo Leute,

ich habe eine lange Tabelle, in der in einzelnen Zellen zum Teil recht
lange Texte stehen. Diese Zellen werden dadurch sehr hoch, teilweise mehr
als eine halbe Seite.

Mein Problem ist nun, dass LaTeX immer nur zwischen den einzelnen
Tabellenzeilen einen Seitenumbruch macht. Dadurch ist unten auf einigen
Seiten dann sehr viel Platz frei.

Ich habe bis jetzt keine Möglichkeit gefunden, eine Zelle über einen
Seitenumbruch hinweg gehen zu lassen. Ist das irgendwie möglich?

Danke, Magnus

--
Carl Magnus Rosenbaum M.A.
Administration - Programmierung - Weiterbildung http://cmr.cx/
Tel: +49 89 70066626 Fax: +49 89 70066686 Mobil: +49 163 7006662
PGP Fingerprint: DEBC 3C99 EF1D 74F0 D4C7 EFF5 C268 3690 0EA1 7641

Ulrike Fischer

unread,
Dec 15, 2006, 4:49:28 AM12/15/06
to
Magnus Rosenbaum <use...@cmr.cx> schrieb:

> Hallo Leute,
>
> ich habe eine lange Tabelle, in der in einzelnen Zellen zum Teil recht
> lange Texte stehen. Diese Zellen werden dadurch sehr hoch, teilweise mehr
> als eine halbe Seite.
>
> Mein Problem ist nun, dass LaTeX immer nur zwischen den einzelnen
> Tabellenzeilen einen Seitenumbruch macht. Dadurch ist unten auf einigen
> Seiten dann sehr viel Platz frei.
>
> Ich habe bis jetzt keine Möglichkeit gefunden, eine Zelle über einen
> Seitenumbruch hinweg gehen zu lassen. Ist das irgendwie möglich?

Nein. Überlege dir, ob du nicht statt Tabellen z.B. eine Liste benutzen
kannst.

--
Ulrike Fischer
e-mail: zusätzlich meinen Vornamen vor dem @ einfügen.
e-mail: add my first name between the news and the @.

Magnus Rosenbaum

unread,
Dec 16, 2006, 7:09:43 AM12/16/06
to
Ulrike Fischer wrote:
> Nein. Überlege dir, ob du nicht statt Tabellen z.B. eine Liste benutzen
> kannst.

Ich hab jetzt einen Trick ausprobiert: Bei einer langen Tabellenzelle
beende ich die Tabelle vorher und fange danach wieder eine neue an:


\documentclass[10pt,a4paper]{dinbrief}
\usepackage{ngerman}
\usepackage{ucs}
\usepackage[utf8x]{inputenc}
\usepackage{verbatim}
\usepackage{marvosym}
\usepackage{graphicx}
\usepackage{xtab}
\usepackage{ragged2e}
\usepackage[right]{eurosym}
\makeatletter
\makeatother
\clubpenalty=10000
\widowpenalty=10000

\begin{document}

\setlength{\parskip}{0ex}
\setlength{\tabcolsep}{1mm}
\renewcommand{\arraystretch}{1.15}
\tablefirsthead{
& \makebox[2.2cm][r]{Nettopreis}\\
\hline}
\tablehead{
& \makebox[2.2cm][r]{}\\}

\begin{xtabular*}{16.5cm}{p{13.95cm}rl}
\RaggedRight {\large\textbf{Lorem ipsum dolor sit amet}} &
\EUR{6.406,60}\\[-0.2ex]
\RaggedRight Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Cras eu lacus. Integer varius urna. Duis est est, tristique ut, ultricies
id, placerat sed, eros. Proin non diam condimentum magna vestibulum
rhoncus. In eget nunc quis felis consectetuer feugiat. \\[-0.2ex]
\end{xtabular*}\\[-0.2em]

\begin{RaggedRight}
\begingroup
\leftskip=1mm
\rightskip=2.5cm
\par
Nunc malesuada. Donec massa mauris, aliquet nec, gravida nec, laoreet id,
arcu. Suspendisse adipiscing, dui id consequat pharetra, elit nisl
suscipit augue, quis pharetra tortor tellus quis sapien. Donec pharetra
feugiat nibh. Praesent lacus est, mattis rhoncus, suscipit et, viverra
nec, augue. Integer congue lorem in ante gravida cursus. Aenean mattis
sollicitudin lectus. Vestibulum ante ipsum primis in faucibus orci luctus
et ultrices posuere cubilia Curae; Nullam consectetuer. Phasellus tempor
ultrices nisl. Suspendisse vel neque. Vestibulum congue venenatis justo.
Sed eu dui. Nullam neque nulla, ultricies in, sollicitudin sed, vestibulum
ut, sem. Curabitur urna erat, vehicula non, sodales nec, molestie sed,
magna. Duis accumsan aliquam urna. Nulla leo. Pellentesque sem arcu,
imperdiet vitae, vehicula eu, facilisis non, odio. Vivamus pharetra,
tortor vitae vulputate tincidunt, augue nulla iaculis lacus, a egestas
nulla mauris sit amet magna. Integer eget elit. Nulla facilisi. Praesent
ut pede et dui ullamcorper congue. Curabitur massa libero, tristique sed,
aliquet ac, tempor iaculis, mi. Mauris eleifend elementum eros. Curabitur
risus felis, interdum nec, elementum non, pulvinar eget, enim. Praesent
quam. Aliquam magna nisl, luctus et, auctor lacinia, suscipit vitae,
sapien. Phasellus adipiscing velit eget nulla. Phasellus eget nisl.
Aliquam vitae tortor ut nisl congue sollicitudin. Suspendisse tempor
sodales ipsum. Quisque ipsum ipsum, suscipit ac, molestie quis, tristique
malesuada, nisi. Nullam molestie tellus venenatis tortor. Aenean lobortis.
Nulla ac odio vitae enim semper tincidunt. Maecenas a quam quis augue
ultricies vulputate. Nunc vulputate. Nulla justo eros, dictum a, tristique
sit amet, scelerisque vel, dui. Nam pede. Aliquam sed dolor in ipsum
rhoncus tristique. Ut eget sem. Suspendisse sollicitudin. Duis
consectetuer scelerisque nisl. Fusce sed libero id est porttitor semper.
Cras at pede vel orci faucibus mollis. Ut quam. Nam placerat. Quisque sit
amet eros id arcu fermentum iaculis. Cras ultrices scelerisque ligula.
Curabitur porttitor justo sed diam. Duis faucibus neque nec elit. Ut quis
dolor ut augue ullamcorper faucibus. Mauris eu mi. Sed bibendum, erat in
ultrices ultrices, tellus sapien malesuada dolor, quis congue tellus leo
sed purus. Morbi libero urna, luctus ut, gravida rhoncus, semper at,
risus. Cras aliquet porta turpis. Proin luctus diam eu pede. Vivamus
laoreet nisi nec arcu. Curabitur cursus, mi sed commodo dapibus, lorem
nunc elementum sem, ut interdum elit dolor eget sapien. Praesent et neque.
Etiam id dui. Suspendisse vulputate. Fusce porttitor laoreet justo. Nam
sapien nisi, varius et, egestas a, dignissim at, lorem. Phasellus nisl
arcu, fringilla a, fermentum eu, eleifend vel, lectus. Sed tincidunt
sapien nec turpis. Morbi nonummy, elit eget lacinia laoreet, dui sem
viverra nulla, quis faucibus quam nisi eu diam. Quisque sit amet augue. Ut
ut diam et augue faucibus iaculis. Pellentesque habitant morbi tristique
senectus et netus et malesuada fames ac turpis egestas. Ut ipsum. Integer
eget mi. Integer et pede. Quisque nonummy enim id arcu.\newline
Integer porttitor ipsum accumsan purus. Duis in lectus et lacus pretium
hendrerit. Nulla at ante. Etiam vel lorem. Fusce vel lectus. Sed vitae
lacus sed magna fermentum dictum. Nullam arcu. Vivamus nec eros. Integer
quis augue. Ut felis mauris, posuere sit amet, ornare ac, posuere ac, mi.
Suspendisse egestas. Etiam a dui a lorem porttitor eleifend. Fusce vitae
sapien vitae quam consectetuer interdum. Pellentesque in tortor. Duis
vestibulum pretium leo. In hac habitasse platea dictumst. Suspendisse
ipsum. Sed urna. Morbi leo augue, consequat non, pretium sit amet,
facilisis non, purus. Fusce tempor faucibus nisl. Mauris velit ipsum,
vulputate quis, dapibus varius, ullamcorper nec, mi. Ut auctor, felis
vitae cursus molestie, nunc lacus volutpat pede, eu volutpat augue dui ut
ante. Sed adipiscing leo at dolor. Phasellus id arcu in leo suscipit
fermentum. Sed vehicula varius dolor. Integer quis elit non sapien
scelerisque malesuada. Vestibulum ante ipsum primis in faucibus orci
luctus et ultrices posuere cubilia Curae; Vestibulum id eros vitae justo
vehicula commodo. Donec blandit, lorem at tempus fermentum, ante lectus
mattis pede, vel sagittis massa urna vel diam. Aenean consectetuer
condimentum augue. Mauris sit amet lacus. Suspendisse consectetuer. Ut
leo. Nam vehicula orci vel libero sollicitudin venenatis. Nullam turpis
sapien, convallis quis, egestas vitae, dignissim quis, ligula. Vestibulum
ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia
Curae; Sed vel diam id erat rhoncus pretium. Mauris eget enim. Duis id
nulla eu lacus molestie tristique. In sagittis risus euismod nulla
molestie aliquam. Donec convallis, nibh non mattis vulputate, tortor urna
consequat eros, non commodo felis eros sed neque. Vivamus non quam.
Suspendisse potenti. In quis felis vel mauris eleifend ornare. Nullam
velit. Aenean eget est. Maecenas suscipit posuere felis. Nullam arcu eros,
pellentesque a, laoreet eu, dapibus a, enim. Sed eu odio. Vivamus et
ligula feugiat lorem tristique sagittis. Aliquam ante orci, congue ac,
lobortis eu, accumsan sed, eros. Cum sociis natoque penatibus et magnis
dis parturient montes, nascetur ridiculus mus. Mauris tempus vestibulum
quam. Nam ac nibh non quam faucibus interdum. Ut a orci quis nisi eleifend
ornare. Cras lectus. Integer pretium risus et purus. Ut ligula leo,
accumsan et, auctor ac, consequat in, tortor.\newline
\par
\endgroup
\end{RaggedRight}

\tablefirsthead{
& \makebox[2.2cm][r]{}\\[-1.1em]}
\begin{xtabular*}{16.5cm}{p{13.95cm}rl}
\RaggedRight Cum sociis natoque penatibus et magnis & \EUR{408,74}\\
\RaggedRight Integer pretium & \EUR{0,00}\\
\RaggedRight Maecenas suscipit posuere felis & \EUR{479,34}\\
\hline
\multicolumn{1}{r}{\textbf{Gesamtpreis}:} & \textbf{\EUR{7.294,68}} \\
\hline
\end{xtabular*}

\end{document}


Ein Nachteil der Methode ist, dass man \tablehead{} und \tabletail{} nicht
mehr für den Tabellenkopf und -fuß auf jeder Seite einsetzen kann, weil ja
nicht sichergestellt ist, dass wir uns dort auch gerade in einer Tabelle
befinden.

Die Abstände beim Umschalten zwischen Tabelle und normalem Absatz und
umgekehrt habe ich noch nicht so ganz im Griff. Die muss ich immer noch
per Hand anpassen. Oder gibt es eine Methode wie ich sicherstellen kann,
dass der Abstand unabhängig von der Schriftart immer passt?

cu, Magnus

Magnus Rosenbaum

unread,
Dec 17, 2006, 10:52:01 AM12/17/06
to
Der dirty hack aus meinem letzten Posting hat außerdem noch den Nachteil,
dass unten auf den Seiten sehr viel Platz frei gelassen wird. Soweit ich
gelesen habe, kann man das auch nicht ändern.

Ich habe mir nun überlegt, es wäre vielleicht doch besser es ohne Tabelle
zu machen. Eine "Tabellenzeile" könnte so aussehen:

\hfill
\parbox[t]{2.5cm}{
\EUR{6.406,60}
}\\[-\baselineskip]
\rightskip3cm
\begin{RaggedRight}
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text
\end{RaggedRight}

Das \rightskip lässt richtig einen rechten Rand, aber leider bleiben die
\EUR{6.406,60} nicht rechts davon stehen, sondern rücken mit nach links.
Kann man das so ändern, dass das \rightskip nur auf den Text-Teil wirkt?
Oder gibt es eine andere Methode, nur dem Text einen rechten Rand zu geben?

Ulrike Fischer

unread,
Dec 18, 2006, 4:12:14 AM12/18/06
to
Magnus Rosenbaum <use...@cmr.cx> schrieb:

> Der dirty hack aus meinem letzten Posting hat außerdem noch den
> Nachteil, dass unten auf den Seiten sehr viel Platz frei gelassen
> wird. Soweit ich gelesen habe, kann man das auch nicht ändern.
>
> Ich habe mir nun überlegt, es wäre vielleicht doch besser es ohne
> Tabelle zu machen. Eine "Tabellenzeile" könnte so aussehen:
>
> \hfill
> \parbox[t]{2.5cm}{
> \EUR{6.406,60}
> }\\[-\baselineskip]
> \rightskip3cm
> \begin{RaggedRight}
> Text Text Text Text Text Text Text Text Text Text Text Text Text Text
> Text Text Text Text Text Text Text Text Text Text Text Text Text Text
> Text Text Text Text Text Text Text Text Text Text Text Text Text Text
> Text Text Text Text Text Text Text Text Text Text Text Text Text Text
> \end{RaggedRight}
>
> Das \rightskip lässt richtig einen rechten Rand, aber leider bleiben
> die \EUR{6.406,60} nicht rechts davon stehen, sondern rücken mit nach
> links. Kann man das so ändern, dass das \rightskip nur auf den
> Text-Teil wirkt? Oder gibt es eine andere Methode, nur dem Text einen
> rechten Rand zu geben?


\begin{raggedright}
\rightskip3cm\relax
\makebox[0pt][l]{%
\hspace*{\textwidth}\hspace{-2,5cm}\parbox[t]{2.5cm}{{6.406,60}}}%


Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text

\par
\end{raggedright}

Magnus Rosenbaum

unread,
Dec 18, 2006, 8:19:11 AM12/18/06
to
Sehr schön, vielen Dank!

Hier für die Nachwelt meine ganze Tabelle:


\hfill
\parbox[t]{2.5cm}{\raggedleft Preis}
\\[-0.7\baselineskip]
\rule{16.5cm}{0.1pt}

\rightskip2.4cm

\begin{RaggedRight}
\makebox[0pt][l]{\hspace*{\textwidth}\hspace{-2.4cm}\parbox[t]{2.4cm}{\raggedleft\EUR{11.600,00}}}Text


Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text
Text Text Text Text
\end{RaggedRight}

\begin{samepage}
\hfill \\[-1.6\baselineskip]
\rule{16.5cm}{0.1pt}
\\[-1.3\baselineskip]
\rightskip0cm

\hfill
\textbf{\textbf{Gesamtpreis}:}
\parbox[t]{2.5cm}{\raggedleft\textbf{\EUR{11.600,00}}}
\\[-0.7\baselineskip]
\rule{16.5cm}{0.1pt}

\end{samepage}

0 new messages