PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen am Seitenanfang



gast22
24-03-2005, 15:40
Hallo!
Und wieder machen mir meine Tabellen Ärger....
Ich habe eine ganze Reihe von Tabellen erstellt, die jetzt auch schön aussehen, und mit \include in mein Hauptdokument eingebunden. das klappt auch alles. Einige Tabellen sind allerdings kürzer als die anderen, so dass sie nicht die ganze Seite überdecken. Diese sollen nun aber auch alle am Seitenanfang erscheinen, sind bei mir aber zentriert, also oben und unten gleicher Abstand. Wie kriege ich es denn hin, dass auch die kürzeren Tabellen gleich am Seitenanfang erscheinen?
Vielen Dank im Voraus.

blubb
24-03-2005, 16:09
Nur im sicher zu gehen:
Du redest von Tabellen = tabular, nicht von Tafeln= table?

Minimalbeispiel würde die Beantwortung der Frage erleichtern.
Blubb

gast22
24-03-2005, 16:15
Hallo!
Ja, es sind tabular-Tabellen. Hier mal eine davon inkl. Präambel, falls es daran liegt:

\documentclass [a4paper,12pt, oneside, headsepline, pointlessnumbers, bibtotoc,bigheadings]{scrbook}
\usepackage{amsmath,amssymb,amsfonts,latexsym,apac ite,booktabs,calc,graphicx}
\usepackage{ngerman}%neue dt. Rechtschreibe -> Trennungen
\usepackage{mathpazo}
\usepackage[latin1]{inputenc}
\usepackage{array,rotating,longtable,lscape}%f{\"u}r Tabellen im Querformat
\usepackage{tabularx}
\typearea[8mm]{10}

\hfuzz2pt % Don't bother to report over-full boxes if over-edge is < 2pt

\setlength{\parindent}{0ex}

\def\tablenotes{\vskip2pt\footnotesize} %Definition von Table-Notes
\let\endtablenotes\relax

\widowpenalty=10000 \clubpenalty=10000


\setcounter{topnumber}{5} %Anzahl von Gleitobjekten auf einer Seite
\pagestyle{headings} %Kopfzeile
\setcounter{tocdepth}{2} %Tiefe der Nummerierung, die ins Inhaltsverzeichnis gehen
\setcounter{secnumdepth}{2} %Tiefe der Nummerierung der {\"U}berschriften

\let\raggedsection\relax %erlaubt Trennungen in {\"U}berschrift
\renewcommand{\descfont}{\rmfamily}
\renewcommand{\sectfont}{\bfseries}

%f\"{u}r BIB:
\renewcommand{\BBAB}{und}
\renewcommand{\BCBT}{}
\renewcommand{\BCBL}{}
\renewcommand{\bibname}{Literaturverzeichnis}
\setlength{\bibitemsep}{1ex plus 0.25ex minus 0.25ex}

% setzt auf deutsche Abs{\"a}tze um
\setlength{\parskip}{1ex plus 0.25ex minus 0.25ex}
\parindent 0pt

\setlength{\parskip}{1.5ex plus 0.5ex minus 0.5ex} %festlegen des Abstandes bei Abs{\"a}tzen in Abh{\"a}ngigkeit der Schriftgr{\"o}{\ss}e
%und Vermeidung von einzelnen Zeilen


\renewcommand{\arraystretch}{1}
\renewcommand{\topfraction}{0.99}
\renewcommand{\bottomfraction}{0.99}

\newcommand{\s}{\makebox[-12pt][c]{*}} % 5%-Niveau
\newcommand{\st}{\makebox[-6pt][c]{*} } % 1%-Niveau

\begin{document}

\begin{table}[htb]
\caption{Parametersch{\"a}tzungen, Design 1 (4 Attribute, 2 Objekte)}%\vspace{3mm}
\label{tab pv des1}
\begin{center}
\begin{tabular*}{\textwidth}{lrlrlrl}\toprule

Auspr{\"a}gungen & \phantom{Rb Std er.}Beta & & \phantom{Rb Std er.}Std err.
& & \phantom{Rb Std er.}t-Test & \phantom{\s}\\ %& Rb. Std err. & & Rb. t-Test & \\

\midrule
Bbalk0 & -1.25 & & 0.26 & & -4.78 & \\%0.29 & & -4.37 &\\
Bbalk1 & 0.17 & & 0.26 & & 0.67 &\s \\ %&0.27 & & 0.64 &\s \\
Bbalk2 & -0.48 & & 0.36 & & -1.33 &\s \\ %&0.38 & & -1.27 &\s \\
Bbalk3 & 0.48 & & 0.30 & & 1.59 &\s \\ %&0.30 & & 1.62 &\s \\
Bgr15 &-3.99 & & 0.39 & & -0.10 & \\ %&0.39 & & -0.10 & \\
Bgr20 &-2.01 & & 0.31 & & -6.39 & \\ %&0.31 & & -6.53 & \\
Bgr25 &-1.35 & & 0.30 & & -4.48 & \\ %&0.26 & & -5.14 & \\
Bgr30 &-0.95 & & 0.25 & & -3.76 & \\ %&0.25 & & -3.84 & \\
Buni05 & 2.95 & & 0.34 & & 8.61 & \\ %&0.36 & & 8.21 & \\
Buni10 & 2.14 & & 0.36 & & 5.92 & \\ %&0.35 & & 6.02 & \\
Buni15 & 1.68 & & 0.28 & & 6.04 & \\ %&0.29 & & 5.83 & \\
Buni20 & 0.81 & & 0.24 & & 3.45 & \\ %&0.24 & & 3.36 & \\
Bzen05 & 2.51 & & 0.33 & & 7.52 & \\ %&0.30 & & 8.33 & \\
Bzen10 & 1.79 & & 0.28 & & 6.27 & \\ %&0.30 & & 5.99 & \\
Bzen15 & 1.29 & & 0.28 & & 4.55 & \\ %&0.29 & & 4.43 & \\
Bzen20 & 0.45 & & 0.29 & & 1.54 &\s \\ %&0.33 & & 1.37 &\s \\

\bottomrule
\end{tabular*}
\end{center}
\setlength{\belowcaptionskip}{0ex}
\begin{tablenotes}
\textit{Anmerkungen.} 600 Beobachtungen, * = n.\,s.,
Null Loglikelihood: -415.89, Modell Loglikelihood: -200.92,
Loglikelihood--Quotienten--Test: 429.94, Rho--Quadrat: 0.52, Adj.
Rho--Quadrat: 0.48.
\end{tablenotes}
\end{table}

\end{document}

edico
24-03-2005, 17:07
... setze im Zweifelsfall \begin{table}[!htbp]
edico

gast22
24-03-2005, 17:45
Ich habe es mal ausprobiert mit [!htbp], das ging auch alles. Allerdings habe ich was Interessantes rausgefunden: Wenn ich gleich zu Anfang im Dokument eine von den großen, seitenfüllenden Tabellen gesetzt habe, schert sich Latex um keinen Parameter mehr, weder um [!htbp], noch um \newpage...

So, und noch was rausgefunden: Ich habe mal eine der langen Tabellen zwischen verschiedenen kurzen platziert: Es liegt an der langen Tabelle. Denn davor klappt es mit dem Seitenanfang, danach nicht mehr. Wenn ich die lange Tabelle kürzer mache, klappt auch alles. Sie ist also offensichtlich zu lang, oder? Optisch ist das kaum erkennbar, es kann sich also nur um 1-2 Zeilen handeln. Ich habe auch schon Diverses ausprobiert, z.B. \enlargethispage, \newpage, \pagebreak... Hat aber alles keine Auswirkungen. Nach der längeren Tabelle kümmert sich Latex um keine Angaben mehr, was die Platzierung betrifft.

blubb
24-03-2005, 18:28
Um auf mein Posting zurückzukommen:

Entscheidend it nicht das du tabular nimmst, sondern table verwendest (=Tafel).

Vielleicht hilft dir http://texcatalogue.sarovar.org/entries/gleitobjekte.html weiter.

bischi
24-03-2005, 23:48
\clearpage

MfG Bischi

edico
25-03-2005, 00:04
... ein float ist eben ein float - wie der Name sagt - alles schön fliessend; da hast du zunächst - und so soll's doch auch sein - keinen Einfluss auf den global festgesetzten Algorithmus von (La)TeX. Es ist nicht «normal», dass im Buchdruck seitenweise Tabellen ohne Fliesstext aufgelistet werden, als dass sie ausschliesslich eine erläuternde Funktion besitzen und nicht im Mittelpunkt stehen. Wenn nun doch mehrere Tabellen hintereinander gelistet werden, werden sie gemäss der Algorithmus gesetzt: «... Tafel ist damit _nicht_ integraler Bestandteil des Textes, sondern ein dem Text noch zusätzlich zugeordneter Bestandteil des Dokuments. Daher sollten diese den Text nicht unterbrechen ...» Von einer Seite muss neben den Tabellen, die `h'ere, `t'op und `b'ottom plaziert werden, noch mindestens 15% Text erscheinen. Diesen Wert sollte man nicht zu klein wählen, um nicht nur Seiten zu erzeugen, bei denen man den Text suchen muss.

Bei der Grösse deiner geposteten Tabelle ist es dann bei den Dimensionen deines Layouts - umsomehr unter Berücksichtigung deiner auch noch darüber hinaus eingeschränkten \typearea[8mm]{10} - angezeigt, diese Tabellen auf eine einzige Seite zu platzieren. Lediglich eine weitere Tabelle mit 2 Zeilen könnte bei gleicher caption Platz auf derselben Seite finden ... und es wäre nicht gerade übersichtlich, wie ich meine. Es wäre somit auch nicht im Sinne des Algorithmus anzunehmen, es könnten mehrere Tabellen dieser geposteten Art auf ein und derselben Seite «untergebracht» werden - so etwas macht TeX eben nicht, weil es künstlerisch und nicht nach Sparsamkeitseffekten arbeitet. Wer das nicht will, sollte nicht «floaten».

Dennoch: Ich gestehe ein, dass es immer wieder auch sinnhafte Gestaltungen geben kann (meistens aber nur eine Blase im Gehirn des unbedarften Produzenten), die Zentrierung einer table aufzuheben.
Und das könntest du nun mit dem macro so machen:, dass alle Tabellen (tables) an den Seitenoberrand gesetzt werden:

\makeatletter
\setlength{\@fptop}{0pt}
\makeatother
...
\begin{table}%[!htb] % die Optionen können nun wegfallen-AFAIK
...
\end{table}

Vielleicht hilft dir das ein wenig weiter.
edico

gast22
25-03-2005, 00:47
Ok, vielen Dank für die Tipps. Werde alles ausprobieren und dann rückmelden, ob es geklappt hat. @blubb: Ich hab doch eigentlich schon eine table-Umgebung, oder? @edico: Es soll so aussehen, dass jede einzelne Tabelle ihre eigene Seite bekommt und auf dieser dann jeweils oben erscheint, soweit ich weiß. Ist wohl nur für den Anhang der zugehörigen Doktorarbeit...
Also, nochmal vielen Dank! In ein paar Tagen weiß ich, ob es funktioniert...
Grüße,
Ninchen

TiggerM
25-03-2005, 18:31
Meine Erfahrungen mit floats (also auch table) haben folgendes ergeben:

Passen floats nicht mehr auf eine Seite werden sie "aufgespart" bis sie irgendwo passen.
Findet LaTeX keinen Platz erscheinen sie unter Umständen nie!

Um das zu umgehen sollte man am besten auch das "p" mit in die Positionierungsoption schreiben:
z.B. \begin{table}[htbp]
dann ist es LaTeX erlaubt eine eigene Seite nur für floats anzulegen.

Will man erzwingen dass alle aufgeschobenen floats an einer Stelle angefügt werden hilft ein (oder mehrere im ganzen Dokument verteilt)

\clearpage (hatte bischi ja schon erwähnt)
oder ein
\cleardoublepage

Wenn alles nicht hilft und diese eine Tabelle wirklich zu lang ist kannst du das Packet longtable verwenden, damit kann man Tabellen über mehrere Seiten ausdehnen...

TiggerM

edico
27-03-2005, 09:25
... die Spezifiaktion hiess: Tabelle an den Seitenanfang.
Das kann clearpage nicht! tabular wird defaultseitig immer vertikal zentriert gesetzt. Mit clearpage erreiche ich gleichwohl, dass die vorherigen Einstellungen zurückgesetzt, somit die Tabelle auf eine neue Seite gesetzt wird. Also ist clearpage indiziert, wenn selbst die kleinste Tabelle auf eine einzelne Seite gesetzt werden soll. Das wird kein vernünftiger Buchdrucker, aber ein krankes Hirn veranlassen ...
edico

gast22
30-03-2005, 16:24
So, mit \newpage, [!htbp] und \clearpage sieht alles so aus, wie ich es haben wollte. Vielen Dank für die zahlreichen Tipps!