PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellen, ich verstehs nicht



jonathan
04-06-2010, 00:07
Hey,

ich schon wieder. Ich schlage mich jetzt seit sehr langer Zeit mit der Einbindung von Tabellen rum, komme aber auf keinen grünen Zweig.

Hier meine Testtabelle:

\begin{table}{h}
\begin{tabular}{|l|r|}
\hline
Masse der Form $[kg]$ & 9,415 \\
\hline
Masse der Form inkl. Frischmörtel $[kg]$ & 10,935 \\
\hline
Masse des Frischmörtels $[kg]$ & 1,520 \\
\hline
Volumen des Frischmörtels $[dm^3]$ & 0,768 \\
\hline \hline
Frischmörtelrohdichte $[\frac{kg}{dm^3}]$ & 1,9729 \\
\hline
\end{tabular}
\captionbelow{test}
\label{tab:labeltest}
\end{table}


Dazu meine Fragen:

- wann verwende ich
\begin{table}{h}
\begin{tabular}{|l|r|}
...
und wann nur
\begin{tabular}{|l|r|} (ohne \begin{table}

- warum wird die Tabelle immer am oberen Seitenrand angezeigt, wenn ich \begin{table} verwende und am "richtigen" Platz, wenn ich dies weglasse?

- im scrguide stehen die möglichen Optionen für caption - wie setze ich diese denn?

Vielen, vielen Dank Euch allen!!!!

bobmalaria
04-06-2010, 00:27
Hi,

\begin{table}..\end{table} ist eine gleitumgebung die den tabellenzähler beeinflusst wenn eine caption darin auftaucht. aber es ist egal was darin steht. eine gleitunmgebung darf im text verschoben werden um die lesbarkeit des textes zu erhöhen.

einfacher: in einer umzugskiste auf der "küchenutensilien" steht, müssen diese nicht zwingend drin sein weil jemand vielleicht klamotten reingepackt hat. man kann die kiste auch beliebig herumschieben.

es geht also folgendes



\begin{table}
Irgend ein Inhalt
\caption{Caption irgend eines inhalts}
\end{table}

jetzt wird einfach dieser text "Irgend ein Inhalt" ausgegeben und DARUNTER steht die caption. zur position der caption gleich mehr.

die tabular umgebung muss also in die table umgebung und ist die umgebung die die eigentliche tabelle erstellt.


\begin{table}[!htb]%immer mehr als eine option angeben
\centering %zentrieren
\begin{tabular}{lr}%blos keine vertikalen linien in tabellen verwenden
bla & blubb \\
\hline
gaa & buu
\end{tabular}
\caption{}
\end{table}


möchte ich jetzt das eine tabelle unverrückbar, festgemauert, an einer bestimmten stelle im text steht, dann lasse ich die gleitungebung table weg.


\begin{tabular}{lr}%blos keine vertikalen linien in tabellen verwenden
bla & blubb \\
\hline
gaa & buu
\end{tabular}

füge ich aber jetzt da eine caption dazu, bekomme ich die meldung

\caption outside of float oder so ähnlich. float=gleitungebung, folglich gibt es keine caption ohne table-umgebung (oder ohne figure-umgebung)

da das viele nicht toll fanden wurde der befehl \captionof erfunden. damit geht folgendes



\begin{minipage}{1\textwidth}%damit tabelle + caption zusammen bleiben
\begin{tabular}{lr}%blos keine vertikalen linien in tabellen verwenden
bla & blubb \\
\hline
gaa & buu
\end{tabular}
\captionof{table}{inhalt der caption}
\end{minipage}


damit bekommt man eine tabelle mit nummerierung, aber die tabelle kann nicht gleiten sondern ist an einer stelle fixiert.

nun zur caption. in bildern steht sie immer unter dem bild, aber bei tabellen kann es ja vorkommen das diese länger als eine seite sind. deshalb ist es besser eine überschrift zu haben. setzt man aber jetzt


\begin{table}[!htb]%immer mehr als eine option angeben
\centering %zentrieren
\caption{meine caption}
\begin{tabular}{lr}%blos keine vertikalen linien in tabellen verwenden
bla & blubb \\
\hline
gaa & buu
\end{tabular}
\end{table}


dann merkt man das die überschrift sehr nahe an der tabelle klebt. deshalb setzt man dann die option



\documentclass[captions=tableheading]{scrreprt}


und der abstand ist richtig eingestellt.

zusammengefasst. man braucht keine table-umgebung für tabellen, aber es ist ratsam sie zu verwenden da man durch gleitumgebungen ein schöneres schriftbild erhält. sollte man doch mal aus bestimmten gründen keine gleitungebung haben wollen, so kann man mit dem \captionof befehl doch noch eine tabellen-überschrift bekommen. der abstand tabellenkörper<->überschrift kann per option korrigiert werden damit die tabelle nicht so nahe "dranklebt"

gruss

PS: meine freundin Narumol würde bei einheiten in [] sagen: "da muss ik abbrekken". es ist nicht richtig [kg] zu schreiben auch wenn man es oft so sieht. concentrationen kann man meinetwegen in klammern schreiben [H2O]. :)

jonathan
04-06-2010, 00:38
Wow, vielen Dank für diese umfangreiche Antwort! Hat mir super weitergeholfen und alles beantwortet! Thanks.

Warum eigentlich keine vertikalen Linien? Hab ich schon öfters gelesen. Auch nicht zwischen den Spalten?

jonathan
04-06-2010, 00:41
Noch eine Rückfrage:
wofür wird \label benötigt?

bobmalaria
04-06-2010, 00:44
hi,

man sagt das vertikale linien die lesbarkeit nicht erhöhen wenn die augen von links nach rechts über den text gleiten. da stören vertikale linien eigentlich nur.

wie man schicke tabellen machen kann wird z.b. im tabsatz dokument[1,2] beschrieben. dazu sollte man auf jeden fall das booktabs paket laden um von befehlen wie \toprule \bottomrule \midrule usw. gebrauch zu machen.

noch ein kurzer nachtrag zu dem post vorher. bei table solltest du mehr als eine plaztierungsoption angeben, dann landet sie irR auch da oder in der nahen umgebung wo man sie haben möchte

[1] http://www.ctan.org/tex-archive/help/Catalogue/entries/tabsatz.html
[2] http://www.google.co.uk/url?sa=t&source=web&ct=res&cd=5&ved=0CCUQFjAE&url=http%3A%2F%2Fwww.torsten-schuetze.de%2Ftex%2Ftabsatz-2004.pdf&rct=j&q=tabsatz&ei=KTAITJTVLomM0gSprsRj&usg=AFQjCNH0icGfPUrD9heEx39-Fd-qf3w8lw

Syralist
04-06-2010, 09:24
Noch eine Rückfrage:
wofür wird \label benötigt?

Mit \label setzt man eine Marke auf die mit \ref (oder verwandten Befehlen wie \fref) verwiesen werden kann.
Ein Beispiel:

\documentclass[
paper=a4,
twoside=false,
fontsize=11pt,
parskip=false,
]{scrartcl}
\usepackage{selinput}
\SelectInputMappings{adieresis={ä}, germandbls={ß},Euro={€}}
\usepackage[T1]{fontenc}
\usepackage[ngerman,]{babel}
\usepackage{microtype}
\usepackage{lmodern}
\usepackage[german]{fancyref}
\usepackage{blindtext}

\begin{document}
Hier ist ein Text. \blindtext
\begin{table}[htb]
\centering
\caption{eine tabelle}
\label{tab:tabelle1}
\begin{tabular}{ll}
spalte & spalte\\
text & text
\end{tabular}
\end{table}
\clearpage
und hier verweise ich auf die Tabelle: In \fref{tab:tabelle1} sieht man\dots
\end{document}

Dabei verwende ich das Paket fancyref um schönere Verweise zu bekommen: "Tabelle 1 auf der vorherigen Seite"

lockstep
04-06-2010, 09:47
sollte man doch mal aus bestimmten gründen keine gleitungebung haben wollen, so kann man mit dem \captionof befehl doch noch eine tabellen-überschrift bekommen.

Ergänzung: \captionof wird von den Paketen capt-of (definiert genau diesen einen Befehl) und caption (umfangreiches Paket zur Formatierung von Abbildungs- und Tabellenbeschriftungen) bereitgestellt und ist seit kurzem auch in KOMA-Script-Klassen enthalten.

Das paket floatrow steuert das Layout von Gleitobjekten - z.B. kann mit einem einzigen Befehl die horizontale Ausrichtung sämtlicher Abbildungen und Tabellen geändert werden. \centering ist mit floatrow übrigens voreingestellt.

lockstep