Tengo un problema al mostrar correctamente la siguiente tabla:
\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}%
El resultado se parece a la siguiente imagen:
Si bien la posición de la tabla está bien, no entiendo por qué el látex, después de comenzar con el primer conjunto de números, pone el resto a la derecha. Los números de la derecha (87, 88, 89, ....) también deben estar alineados a la izquierda. ¿Cómo puedo gestionar esto para esta tabla?
¡Muchas gracias por tu ayuda, como siempre!
Respuesta1
Debe utilizar tabular
y \multicolumn{17}{l}{...}
para las entradas que abarcan columnas:
\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}
No es necesario \bigstrut
ningún código complicado para reglas más estrictas.
Proporcioné dos versiones de la tabla, la segunda usa \footnotesize
.
¿Cómo calculé la -3.1pt
solución?
Ejecuté el documento sin \addtolength
y obtuve, para el segundo caso, un exceso de 104,69522 pt. Como 104,69522/34 es aproximadamente 3,079, redondeé hacia arriba.
Lo mismo ocurre con la primera versión.
Si desea algo de espacio vertical encima del segundo título, utilice\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
...
Respuesta2
las últimas columnas están todas alineadas a la izquierda, pero la primera columna es muy ancha debido a
\textbf{a. Time period 1886 - 1892:}
lo que fuerza el ancho de la columna. ¿Quizás tenía la intención de usarlo \multicolumn
para que abarcara todas las columnas en lugar de forzar que la primera columna fuera ancha?
tabulary
(y tabularx
) no son adecuados para este tipo de mesa, funcionan cambiando elsalto de líneaancho especificado en cada columna. Dado que sus columnas consisten principalmente en datos numéricos, el salto de línea no es relevante y sería mejor utilizar un estándar tabular
.