
Me gustaría construir una tabla como la de la siguiente imagen:
El siguiente código representa mi mejor intento hasta ahora (las palabras en la tabla realmente no significan nada):
\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} }
Sin embargo, me gustaría centrar mi mesa pero el comando \centering
no funciona.
Además, cuando intenté ampliar mi gráfico cambiando el valor en \resizebox
, el tamaño de fuente también aumentó, lo cual no es deseable. ¿Hay alguna forma de aumentar el tamaño de fuente proporcionalmente a cuánto agrando mi tabla?
Por último, ¿cómo puedo componer un título para mi tabla?
Respuesta1
Al construir tablas, elbooktabs
el paquete es tu mejor amigo; En tu caso particular, también te recomendaría elsiunitx
paquete para ayudar con la alineación decimal (por supuesto, el paquete puede hacer mucho más además de la alineación de columnas).
El S
tipo de columna toma un argumento opcional; esto le permite modificar cada columna individual; He acostumbrado table-format=1.4
a detallar que esta columna tiene 1
númeroantesel decimal y 4
los números posteriores. Notarás que tuve que encerrar el encabezado de la columna {Linear Regression}
para "escapar" del modo matemático y de la rutina de alineación decimal.
Aquí tienes el código completo para que juegues.
% 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}
Si desea crear un 'título' para su archivo table
, entonces debe usar el caption
comando; Tendrá que poner su tabular
entorno dentro de un table
entorno o utilizar el captionof
comando del caption
paquete.
% 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}
Respuesta2
Incluso el entorno estándar tabular
le proporciona herramientas para ajustar el tamaño de su mesa. En particular, la longitud tabcolsep
ajusta el acolchado en el costado de cada columna. En mi ejemplo, necesitaba reducirlo para que la tabla encajara en el estándar \textwidth
, pero en tu caso, podrías aumentar su valor. Del mismo modo, cambié el tamaño de fuente a \small
, pero no es necesario hacerlo, a menos que el espacio sea un problema o para mantener la coherencia en todo el documento.
Para el espacio vertical, suelo \renewcommand\arraystretch{}
estirar el espacio entre las filas de la mesa. Una vez en un entorno, \centering
funciona bien. Cuando lo utilice fuera de un entorno, utilice {\centering my table stuff \par}
. Los tirantes limitarán el alcance del centrado solo a las cosas abrazadas. Y \par
es necesario para activar el \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}
Respuesta3
Intenté rehacer el comienzo de la tabla dada como ejemplo por el OP, ya que es más compleja. Utilicé los booktabs
paquetes caption
, makecell
y numprint
para la columna para la que tiene sentido la alineación en el punto decimal. Tenga en cuenta que siempre que en una columna de este tipo (de tipo n{…}{…}
), una celda contenga material no numérico, debe estar entre corchetes.
\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}