
Gostaria de construir uma tabela parecida com a imagem abaixo:
O código abaixo representa minha melhor tentativa até agora (as palavras na tabela não significam 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} }
Porém, gostaria de centralizar minha mesa, mas o comando \centering
não está funcionando.
Além disso, quando tentei ampliar meu gráfico alterando o valor em \resizebox
, o tamanho da fonte também aumentou, o que é indesejável. Existe uma maneira de aumentar o tamanho da fonte proporcionalmente ao quanto eu amplio minha tabela?
Por último, como posso escrever um título para minha tabela?
Responder1
Ao construir tabelas, obooktabs
o pacote é seu melhor amigo; no seu caso particular, eu também recomendaria osiunitx
pacote para ajudar no alinhamento decimal (é claro, o pacote pode fazer muito mais além do alinhamento de colunas).
O S
tipo de coluna recebe um argumento opcional - isso permite ajustar cada coluna individual; Eu costumava table-format=1.4
detalhar que esta coluna tem 1
númeroanteso decimal e 4
os números depois dele. Você notará que tive que incluir o cabeçalho da coluna {Linear Regression}
para 'escapar' dele do modo matemático e da rotina de alinhamento decimal.
Aqui está o código completo para você brincar.
% 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}
Se você deseja criar um 'título' para o seu arquivo table
, você deve usar o caption
comando; você terá que colocar seu tabular
ambiente dentro de um table
ambiente ou usar o captionof
comando do caption
pacote.
% 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}
Responder2
Até o tabular
ambiente padrão fornece ferramentas para ajustar o tamanho da sua mesa. Mais notavelmente, o comprimento tabcolsep
ajusta o preenchimento na lateral de cada coluna. No meu exemplo, precisei reduzi-lo para que a tabela se enquadrasse no padrão \textwidth
, mas no seu caso, você poderia aumentar o valor dela. Da mesma forma, alterei o tamanho da fonte para \small
, mas não é necessário fazer isso, a menos que o espaço seja um problema ou para manter a consistência em todo o documento.
Para espaço vertical, uso \renewcommand\arraystretch{}
para esticar o espaço entre as linhas da tabela. Uma vez em um ambiente, \centering
funciona perfeitamente. Ao usá-lo fora de um ambiente, use {\centering my table stuff \par}
. Os aparelhos limitarão a extensão da centralização apenas às coisas abraçadas. E o \par
é necessário para ativar o \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}
Responder3
Tentei refazer o início da tabela dada como exemplo pelo OP, por ser mais complexa. Usei os booktabs
pacotes caption
, makecell
e numprint
para a coluna para a qual o alinhamento no ponto decimal faz sentido. Observe que sempre que em tal coluna (do tipo n{…}{…}
), uma célula contém material não numérico, ela deve ser colocada entre colchetes.
\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}