PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabelle über mehrere Seiten im Querformat



burny
08-11-2007, 15:51
Wie geht das?

Bin jetzt nämlich draufgekommen dass longtable und supertabular offensichtlich den Seitenumbruch nicht hinkriegen sobald sie in eine table oder sidewaystable umgebung eingebettet sind (die Tabelle wird einfach auf 1 Seite gesetzt, und passt natürlich nicht drauf).

Mit der landscape Umgebung hab ich es jetzt geschafft dass longtable die Tabelle umbricht, aber ich verliere die Möglichkeit eine caption und ein label zu setzten.

Hier nochmal zum mitdenken:


% Funktioniert, hätte ich aber gern gedreht
\begin{longtable}[c]{|p{3.5cm}||*{4}{p{3.5cm}|}}
...
\end{longtable}


% Setzt die Tabelle auf eine Seite, ohne Rücksicht auf verluste
\begin{sidewaystable}
\label{table:authoring_example}
\caption{Simulation authoring example}
\begin{longtable}[c]{|p{3.5cm}||*{4}{p{3.5cm}|}}
...
\end{longtable}
\end{sidewaystable}


% Funktioniert, mir fehlen aber caption und label
\begin{landscape}
%\label{table:authoring_example}
%\caption{Simulation authoring example}
\begin{longtable}[c]{|p{3.5cm}||*{4}{p{3.5cm}|}}
...
\end{longtable}
\end{landscape}


Hoffe ihr könnt mir helfen!

sommerfee
08-11-2007, 17:02
Mit der landscape Umgebung hab ich es jetzt geschafft dass longtable die Tabelle umbricht, aber ich verliere die Möglichkeit eine caption und ein label zu setzten.

Wieso das?



% Funktioniert, mit caption und label
\begin{landscape}
\begin{longtable}[c]{|p{3.5cm}||*{4}{p{3.5cm}|}}
\caption{Simulation authoring example}\\
\label{table:authoring_example}
...
\end{longtable}
\end{landscape}


Wirf doch 'mal ein Blick in die longtable-Dokumentation.

Gruß,
Axel

burny
08-11-2007, 21:26
Danke für den Hinweis. Das war natürlich das erste was ich probiert hab, hab aber einen Haufen Fehler bekommen... im Minimalbsp unten ist die Syntax ersichtlich.

So muss es sein:

\documentclass[a4paper,DIVcalc]{scrbook}
% \usepackage{ngerman}
\usepackage[breaklinks=true]{hyperref}
\usepackage[T1]{fontenc}
\usepackage{lscape}
\usepackage{longtable}

\begin{document}
\begin{landscape}
\begin{longtable}[c]{|p{3.5cm}||*{4}{p{3.5cm}|}}
\caption{caption tabel on 1st page \label{table:authoring_example}}\\
\hline
Element / Time & $t\sb{1}$ & $t\sb{2}$ & $t\sb{3}$ & $t\sb{4}$ \\
\hline
\endfirsthead
\caption{caption on all other pages (continuing from page \pageref{table:authoring_example})}\\
\hline
Element / Time & $t\sb{1}$ & $t\sb{2}$ & $t\sb{3}$ & $t\sb{4}$ \\
\hline
\endhead

% put the content here

\end{longtable}
\end{landscape}

This is a text that references \autoref{table:authoring_example}, which is formatted in landscape and bla bla bla \ldots

\end{document}

sommerfee
09-11-2007, 08:29
Danke für den Hinweis. Das war natürlich das erste was ich probiert hab, hab aber einen Haufen Fehler bekommen... im Minimalbsp unten ist die Syntax ersichtlich.

Dein Beispiel wird bei mir (MikTeX 2.6, up-to-date) ohne Fehler übersetzt. Welche Fehler bekommst du?

Gruß,
Axel

edico
09-11-2007, 09:00
Ich kann auch keine grundsätzlichen Probleme erkennen, empfehle allerdings pdflscape anstatt lscape (soweit Du mit pdflatex setzt):

\documentclass[a4paper,DIVcalc]{scrbook}
\usepackage{calc,booktabs}
%\usepackage{lscape}
\usepackage{pdflscape}
\usepackage{longtable}
\usepackage[breaklinks=true]{hyperref}

\def\tbl{%
test1231 &262 &ABeCe &abc &123\tabularnewline
test1232 &2437 &DEeFe &def &456\tabularnewline
test1233 &350 &GHaIi &ghi &789\tabularnewline
test1234 &37 &JKaLe &jkl &765\tabularnewline
test1235 &470 &MNeOo &mno &432\tabularnewline
}

\begin{document}
\chapter{Test}
\section{Testing longtable}

Testing a longtable in landscape layout ...

\begin{landscape}
\small
%\begin{longtable}[c]{|p{3.5cm}||*{4}{p{3.5cm}|}}
\begin{longtable}[c]{|p{.2\linewidth-2\tabcolsep}||
*{4}{p{.2\linewidth-2\tabcolsep}|}}
\caption{Caption on 1st page \label{table:authoring_example}}\\
\hline
Element / Time & $t\sb{1}$ & $t\sb{2}$ & $t\sb{3}$ & $t\sb{4}$ \\
\hline
\endfirsthead
\multicolumn{5}{l}{Fortsetzung von vorheriger Seite \ldots}\\
%\caption{Caption (continuing from page \pageref{table:authoring_example})}\\
\caption{Caption}\\% ^^^^^^^ warum?
\hline
Element / Time & $t\sb{1}$ & $t\sb{2}$ & $t\sb{3}$ & $t\sb{4}$ \\
\hline
\endhead
\hline
\multicolumn{5}{r}{\ldots weiter auf n\"achster Seite}%
\endfoot
\hline
\endlastfoot

\tbl\tbl\tbl\tbl\tbl\tbl\tbl\tbl\tbl\tbl\tbl\tbl\t bl\tbl\tbl
\end{longtable}
\end{landscape}


\section{RefTest}
This is a text that references \autoref{table:authoring_example}, which is formatted in landscape and bla bla bla \ldots

\end{document}

Das leidige Thema vertikale Striche und Doppelstriche (Ich halte sie für absolut überflüssig.) sei nur erwähnt.

edico

P.S die Spaltenmasze der Tabelle angepasst an die Seitenbreite; calc ist zu laden AFAIK waren die Spalten vorab überbreit! Änderungen (da jetzt booktabs mitgeladen) aller Doppelslashes nach tabularnewline und andere angemessene Modifikationen überlasse ich Dir, s. Manual)

burny
09-11-2007, 10:55
Dein Beispiel wird bei mir (MikTeX 2.6, up-to-date) ohne Fehler übersetzt. Welche Fehler bekommst du?
Uups - hab mich offensichtlich nicht klar ausgedrückt. Wollte hier ein funktionierendes Bsp angeben, für alle die das gleiche Problem haben.
(Die Fehler waren aufgrund von \label, den ich auf der gleichen Ebene wie \caption hatte, aber IN der caption platziert sein muss)



P.S die Spaltenmasze der Tabelle angepasst an die Seitenbreite; calc ist zu laden AFAIK waren die Spalten vorab überbreit! Änderungen (da jetzt booktabs mitgeladen) aller Doppelslashes nach tabularnewline und andere angemessene Modifikationen überlasse ich Dir, s. Manual)
Sorry, ich versteh nicht was du mir sagen willst (außer dass du keine vertikalen Linien magst).

edico
09-11-2007, 14:11
ich versteh nicht was du mir sagen willst

Oooh ... so wie es da steht:

[1] Deine Tabelle passt nicht auf die Deine Seite: die Spaltenbreiten sind nicht auf das Layout ausgerichtet und gehen ueber die Breite hinaus.
[2] Dazu habe ich Dir die Alternative mit linewidth abzueglich der colsep aufgezeigt. Um das zu koennen, muss man calc laden.
[3] Du benutzt zum Trennen der Zeilen Doppelbackslashes. In dem Zeilenmacro habe ich alternativ \tabularnewline benutzt. Wenn Du das nutzten wolltest, muesstest Du es bitte selbst tun. Dazu hatte ich das package booktabs geladen. Und alles kannst Du (u.a. Vorteile) im Manual viel besser erklaert bekommen.

[4] Neben dem Hinweis auf die aus meinem Verstaendnis auch und gerade fuer die Uebersicht Deiner Tabelle ueberfluessigen vertikalen Linien habe ich empfohlen statt lscape pdflscape zu nutzen. Warum: s. (Minimal-)Beispiel.
[5] Dass bei Dir pageref funktioniert, wundert mich. Bei mir steht immer der Bezug zur Seite 2, was allerdings auch korrekt ist. Ist die Tabelle (wie in meinem Bespiel) laenger als 2 Seiten, stimmt dieser Bezug aber nicht mehr: deswegen hatte ich das 'warum' gepflanzt.

Ich hoffe, dass ich mich nun verstaendlicher ausgrdrueckt habe.

edico