
Ich möchte eine Tabelle erstellen, die wie die Abbildung unten aussieht:
Der folgende Code stellt meinen bisher besten Versuch dar (die Wörter in der Tabelle bedeuten nicht wirklich etwas):
\resizebox{9cm}{!} {
\begin{tabular}{l*{2}{c}r}
Model & Linear Regression && MLE \\
\hline
fakedata50 & -1.037 & &4 \\
fakedata100 & -1.038 && 3 \\
fakedata500 & -0.7859 && 2 \\
fakedata5000 &-0.7742 && 2 \\
fakedata10000 &-0.7665&&o \\
fakedata100000 &-0.7206&&j \\
fakedata1000000 &-0.6939&&j \\
\end{tabular} }
Ich möchte meine Tabelle jedoch zentrieren, aber der Befehl \centering
funktioniert nicht.
Außerdem wurde beim Versuch, mein Diagramm durch Ändern des Werts in zu vergrößern \resizebox
, auch die Schriftgröße vergrößert, was unerwünscht ist. Gibt es eine Möglichkeit, die Schriftgröße proportional zur Vergrößerung meiner Tabelle zu erhöhen?
Und schließlich: Wie kann ich einen Titel für meine Tabelle setzen?
Antwort1
Beim Erstellen von Tabellenbooktabs
Paket ist Ihr bester Freund; in Ihrem speziellen Fall würde ich auch dassiunitx
Paket zur Unterstützung der Dezimalausrichtung (natürlich kann das Paket neben der Spaltenausrichtung noch viel mehr).
Der S
Spaltentyp nimmt ein optionales Argument an - dies ermöglicht es Ihnen, jede einzelne Spalte zu optimieren; ich habe es verwendet, table-format=1.4
um zu beschreiben, dass diese Spalte 1
eine Nummer hatVordie Dezimalstelle und 4
die Zahlen dahinter. Sie werden feststellen, dass ich den Spaltenkopf einschließen musste, {Linear Regression}
um ihn aus dem Mathematikmodus und der Dezimalausrichtungsroutine zu „entkommen“.
Hier ist der vollständige Code zum Spielen.
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{lS[table-format=1.4]r}
\toprule
Model & {Linear Regression} & MLE \\
\midrule
fakedata50 & -1.037 & 4 \\
fakedata100 & -1.038 & 3 \\
fakedata500 & -0.7859 & 2 \\
fakedata5000 & -0.7742 & 2 \\
fakedata10000 & -0.7665 & o \\
fakedata100000 & -0.7206 & j \\
fakedata1000000 & -0.6939 & j \\
\bottomrule
\end{tabular}
\end{document}
Wenn Sie einen „Titel“ für Ihr erstellen möchten table
, sollten Sie den Befehl verwenden caption
. Sie müssen Ihre tabular
Umgebung entweder in eine table
Umgebung einfügen oder andernfalls den captionof
Befehl aus dem caption
Paket verwenden.
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\begin{document}
\begin{table}[!ht]
\centering
\caption{Your caption goes here}
\begin{tabular}{lS[table-format=1.4]r}
\toprule
Model & {Linear Regression} & MLE \\
\midrule
fakedata50 & -1.037 & 4 \\
fakedata100 & -1.038 & 3 \\
fakedata500 & -0.7859 & 2 \\
fakedata5000 & -0.7742 & 2 \\
fakedata10000 & -0.7665 & o \\
fakedata100000 & -0.7206 & j \\
fakedata1000000 & -0.6939 & j \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Antwort2
Sogar die Standardumgebung tabular
bietet Ihnen Tools zum Anpassen der Größe Ihrer Tabelle. Vor allem tabcolsep
passt die Länge die Polsterung an der Seite jeder Spalte an. In meinem Beispiel musste ich sie verkleinern, damit die Tabelle in die Standardumgebung passt \textwidth
, aber in Ihrem Fall könnten Sie den Wert erhöhen. Ebenso habe ich die Schriftgröße auf geändert \small
, aber das muss man nicht tun, es sei denn, der Platz ist ein Problem oder die Konsistenz in einem Dokument wird gewahrt.
Für vertikalen Abstand verwende ich , \renewcommand\arraystretch{}
um den Abstand zwischen Tabellenzeilen zu vergrößern. In einer Umgebung \centering
funktioniert es einwandfrei. Wenn Sie es außerhalb einer Umgebung verwenden, verwenden Sie {\centering my table stuff \par}
. Die Klammern begrenzen den Umfang der Zentrierung auf die eingeschlossenen Elemente. Und das \par
wird benötigt, um das zu aktivieren \centering
.
\documentclass{article}
\usepackage{lipsum}
\usepackage{stackengine}
\def\twostack#1#2{\addstackgap{\stackanchor[0pt]{\strut#1}{\strut#2}}}
\begin{document}
\lipsum[1]
\begin{table}[ht]
\centering
\renewcommand\arraystretch{2}
\tabcolsep 3pt
\caption{Chi-square analysis for data set Total Site 1}
\medskip\small
\begin{tabular}{ccccccc}
\hline
\hline
\textbf{Model} & \textbf{Parameters} & \textbf{Estimates} &
\textbf{\twostack{Chi-square}{statistic}} &
\textbf{P-value} & \textbf{Outcome} & \\
\hline
Geometric Series & $k$ & 0.129202 & 17019.3 & $<$0.001 & Reject\\
\twostack{Broken Stick}{(binned)} & - & - & 1430.72 & $<$0.001 & Reject\\
\twostack{Broken Stick}{(rank abundance)} & - & - & 120085 & $<$0.001 & Reject\\
Logseries & \twostack{$\alpha$}{$x$} & &&&...\\
\hline
\hline
\end{tabular}
\end{table}
\lipsum[2]
\end{document}
Antwort3
Ich habe versucht, den Anfang der vom OP als Beispiel angegebenen Tabelle neu zu gestalten, da sie komplexer ist. Ich habe die Pakete booktabs
, caption
, makecell
und numprint
für die Spalte verwendet, für die die Ausrichtung am Dezimalpunkt sinnvoll ist. Beachten Sie, dass immer dann, wenn in einer solchen Spalte (vom Typ n{…}{…}
) eine Zelle nicht numerisches Material enthält, dieses in Klammern eingeschlossen werden muss.
\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[showframe, nomarginpar, noheadfoot]{geometry}
\usepackage{fourier}
\usepackage{heuristica}
\usepackage{array}
\usepackage{booktabs}
\usepackage{caption}
\captionsetup{labelfont = sc, labelsep = period, justification = centering }
\usepackage{makecell}
\renewcommand\theadfont{\bfseries}
\usepackage[autolanguage, np]{numprint}
\usepackage{stackengine}
\usepackage[english]{babel}
\begin{document}
\begin{table}[!h]
\centering
\caption{Chi-square analysis for data set\enspace Total Site 1}
\begin{tabular}{c >{$}c<{$} n{2}{7}c >{$}n{1}{5}<{$} c}
\toprule\midrule
\thead{Model} & \thead{\textbf{Parameters}} & {\thead{Estimates}} & \thead{Chi-square \\ statistics} & \thead{\textbf{P-value}} & \thead{Outcome} \\
\midrule
\addlinespace
Geometric Series & k & 0.129202 & 17019.3 & < 0.001 & Reject \\
\makecell*{Broken Stick \\ (binned)} & - & {\makecell{--}} & 1430.72 & < 0.001 & Reject \\
\makecell{Broken Stick \\ (rank abundance)} & - & {\makecell{--}} & 120085 & < 0.001 & Reject \\
\multirowcell{2}{Logseries} & α &7.287017 & \multirowcell{2}{20.44702} & {\multirowcell{2}{0.11667}} & Cannot \\%
& x & 0.9999327 & & & reject \\[3pt]
\multirowcell{2}{Lognormal} & M & 6.67146 & \multirowcell{2}{30.8349} & {\multirowcell{2}{< 0.001}} & \multirowcell{2}{Reject} \\
& V & 16.0206 \\
\midrule\bottomrule
\end{tabular}
\end{table}
\end{document}