Valores no alineados cuando se usa tabular

Valores no alineados cuando se usa tabular

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:

Mesa

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 tabulary \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 \bigstrutningún código complicado para reglas más estrictas.

Proporcioné dos versiones de la tabla, la segunda usa \footnotesize.

¿Cómo calculé la -3.1ptsolución?

Ejecuté el documento sin \addtolengthy 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.

ingrese la descripción de la imagen aquí

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

...

ingrese la descripción de la imagen aquí

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 \multicolumnpara 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.

información relacionada