
Tenho um problema ao exibir corretamente a seguinte tabela:
\documentclass[12pt]{report}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{float,lscape}
\usepackage{longtable}
\usepackage{tabularx}
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 \futurelet
\reserved@a\@xhline}
\makeatother
\usepackage{multirow}
\usepackage{bigstrut}
\begin{table}[htbp]
\centering
\caption{Yearly membership growth for different time periods}
\scriptsize
\begin{tabulary}{\textwidth}{LLLLLLLLLLLLLLLLL}
\hlinewd{1.25pt}
\textbf{a. Time period 1886 - 1892:} & \textbf{} & \textbf{} & & & & & & & & & & & & & & \bigstrut\\
\cline{1-8} \multicolumn{1}{C}{86} & \multicolumn{1}{C}{87} & \multicolumn{1}{C}{88} & \multicolumn{1}{C}{89} & \multicolumn{1}{C}{90} & \multicolumn{1}{C}{91} & \multicolumn{1}{C}{92} & \multicolumn{1}{C}{AVG} & & & & & & & & & \bigstrut\\
\cline{1-8} \multicolumn{1}{C}{485} & \multicolumn{1}{C}{229} & \multicolumn{1}{C}{372} & \multicolumn{1}{C}{401} & \multicolumn{1}{C}{488} & \multicolumn{1}{C}{261} & \multicolumn{1}{C}{444} & \multicolumn{1}{C}{383} & & & & & & & & & \bigstrut\\
\cline{1-8} & & & & & & & & & & & & & & & & \bigstrut[t]\\
\textbf{b. Time period 1911 - 1926:} & \textbf{} & \textbf{} & & & & & & & & & & & & & & \bigstrut[b]\\
\hline
\multicolumn{1}{C}{11} & \multicolumn{1}{C}{12} & \multicolumn{1}{C}{13} & \multicolumn{1}{C}{14} & \multicolumn{1}{C}{15} & \multicolumn{1}{C}{16} & \multicolumn{1}{C}{17} & \multicolumn{1}{C}{18} & \multicolumn{1}{C}{19} & \multicolumn{1}{C}{20} & \multicolumn{1}{C}{21} & \multicolumn{1}{C}{22} & \multicolumn{1}{C}{23} & \multicolumn{1}{C}{24} & \multicolumn{1}{C}{25} & \multicolumn{1}{C}{26} & \multicolumn{1}{C}{AVG} \bigstrut\\
\hline
\multicolumn{1}{C}{338} & \multicolumn{1}{C}{929} & \multicolumn{1}{C}{528} & \multicolumn{1}{C}{1'426} & \multicolumn{1}{C}{-301} & \multicolumn{1}{C}{117} & \multicolumn{1}{C}{375} & \multicolumn{1}{C}{293} & \multicolumn{1}{C}{652} & \multicolumn{1}{C}{2'671} & \multicolumn{1}{C}{1'370} & \multicolumn{1}{C}{544} & \multicolumn{1}{C}{786} & \multicolumn{1}{C}{479} & \multicolumn{1}{C}{440} & \multicolumn{1}{C}{800} & \multicolumn{1}{C}{715} \bigstrut\\
\hlinewd{1.25pt}
\end{tabulary}%
\label{tab:addlabel}%
\end{table}%
O resultado fica como na imagem a seguir:
Embora o posicionamento da mesa seja bom, não entendo por que o látex, depois de começar com o primeiro conjunto de números, coloca o resto à direita. Os números à direita (87, 88, 89, ....) também devem estar alinhados à esquerda. Como posso gerenciar isso para esta tabela?
Muito obrigado pela sua ajuda, como sempre!
Responder1
Você deve usar tabular
e \multicolumn{17}{l}{...}
para as entradas que abrangem colunas:
\documentclass[12pt]{report}
\usepackage{booktabs}
\usepackage{caption}
\begin{document}
\begin{table}[htbp]
\centering
\caption{Yearly membership growth for different time periods}
\label{tab:addlabel}
\scriptsize
\addtolength{\tabcolsep}{-1.8pt}
\begin{tabular}{*{17}{c}}
\toprule
\multicolumn{17}{l}{\textbf{a. Time period 1886--1892}} \\
\cmidrule[\lightrulewidth]{1-8}
86 & 87 & 88 & 89 & 90 & 91 & 92 & AVG & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
485 & 229 & 372 & 401 & 488 & 261 & 444 & 383 & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
\multicolumn{17}{l}{\textbf{b. Time period 1911--1926}} \\
\midrule
11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 & AVG \\
\midrule
338 & 929 & 528 & 1426 & $-301$ & 117 & 375 & 293 & 652 & 2671 & 1370 & 544 & 786 &
479 & 440 & 800 & 715 \\
\bottomrule
\end{tabular}
\end{table}
\begin{table}[htbp]
\centering
\caption{Yearly membership growth for different time periods}
\label{tab:addlabel-double}
\footnotesize
\addtolength{\tabcolsep}{-3.1pt}
\begin{tabular}{*{17}{c}}
\toprule
\multicolumn{17}{l}{\textbf{a. Time period 1886--1892}} \\
\cmidrule[\lightrulewidth]{1-8}
86 & 87 & 88 & 89 & 90 & 91 & 92 & AVG & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
485 & 229 & 372 & 401 & 488 & 261 & 444 & 383 & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
\multicolumn{17}{l}{\textbf{b. Time period 1911--1926}} \\
\midrule
11 & 12 & 13 & 14 & 15 & 16 & 17 & 18 & 19 & 20 & 21 & 22 & 23 & 24 & 25 & 26 & AVG \\
\midrule
338 & 929 & 528 & 1426 & $-301$ & 117 & 375 & 293 & 652 & 2671 & 1370 & 544 & 786 &
479 & 440 & 800 & 715 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Não há necessidade \bigstrut
ou código complicado para regras mais pesadas.
Forneci duas versões da tabela, a segunda usa \footnotesize
.
Como calculei a -3.1pt
correção?
Executei o documento sem \addtolength
e obtive, para o segundo caso, um overfull de 104,69522pt. Como 104.69522/34 é aproximadamente 3.079, arredondei.
Da mesma forma para a primeira versão.
Se você quiser algum espaço vertical acima do segundo título, use\addlinespace
...
485 & 229 & 372 & 401 & 488 & 261 & 444 & 383 & & & & & & & & & \\
\cmidrule[\lightrulewidth]{1-8}
\addlinespace[\medskipamount]
\multicolumn{17}{l}{\textbf{b. Time period 1911--1926}} \\
\midrule
...
Responder2
as últimas colunas estão todas alinhadas à esquerda, mas a primeira coluna é muito larga devido a
\textbf{a. Time period 1886 - 1892:}
o que força a largura da coluna. talvez você pretendesse usar \multicolumn
de forma que abrangesse todas as colunas em vez de forçar a largura da primeira coluna?
tabulary
(e tabularx
) não são adequados para esse tipo de tabela, eles funcionam alterando oquebra de linhalargura especificada em cada coluna. Como suas colunas consistem principalmente em dados numéricos, a quebra de linha não é relevante e seria melhor usar um padrão tabular
.