\midrule de la última nota al pie en la tabla larga no abarca todas las columnas

\midrule de la última nota al pie en la tabla larga no abarca todas las columnas

Estoy incluyendo una tabla larga con LTXtable y la última regla no abarca todas las columnas. En cambio, tiene aproximadamente un 60% de ancho y centros.

Recibo la siguiente advertencia:

Package longtable Warning: Column widths have changed(longtable)
Package longtable Warning: Table widths have changed. Rerun LaTeX.

Si vuelvo a ejecutar la compilación (estoy usando Sublime Text y LatexTools), la advertencia aparece nuevamente.

MWE:

principal.tex

\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{ltxtable}
\usepackage{booktabs}

% Column Type for Table
\newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}%

\begin{document}
\chapter{First Chapter}
\LTXtable{\textwidth}{Tables/table.tex}
\end{document}

tabla.tex

\renewcommand{\arraystretch}{1.5}
\fontsize{10}{11}
\begin{longtable}{L{0.33}L{0.33}L{0.33}}
\caption[Spielermotivationen nach Yee]{Spielermotivationen nach Yee\footnotemark}\label{tab:yeeMotivation}\\
\midrule
\endfirsthead

\caption[]{fortgesetzt} \\
\midrule
\endhead

\midrule 
\multicolumn{3}{r}{{Fortgesetzt auf nächster Seite}} \\ 
\endfoot

\midrule
\multicolumn{3}{r}{{Ende der Tabelle}} \\ 
\endlastfoot

\textbf{Achievement} & \textbf{Social} & \textbf{Immersion} \\
Advancement\linebreak\footnotesize Progress, Power, Accumulation, Status & Socializing\linebreak\footnotesize Casual chat, helping others, making friends & Discovery\linebreak\footnotesize Exploration, Lore, Finding hidden things \\

\end{longtable}
\normalsize

MWE: la regla intermedia no se extiende a todo el ancho

¿Cómo soluciono el \midrule al final de la tabla?

Respuesta1

Con respecto a la advertencia sobre \multicolumns en el manual de ltxtable, creo que deberías deshacerte de esas entradas que abarcan más de una columna. Al menos, cambiar eso ayudó mucho.

También me tomé la libertad de cambiar algunas otras cosas (en su mayoría relevantes tipográficas).

  1. No debe disminuir el tamaño de fuente en su tabla, de lo contrario tenderá a hacerla ilegible.
  2. Si usa comandos como \fontsize{10pt}{11pt}, debe usarlos \selectfontpara activar los cambios.
  3. No estoy seguro de qué Lhará su tipo de columna recién definido. Especialmente la parte \hsize=#1\hsize. Aún más, cuando lo entregas 0.33como contenido de #1. Habría sospechado que #1debe ser una dimensión totalmente calificada (es decir, debe tener una dimensión como pt). Lo reemplacé con una declaración de columna un poco más simple.
  4. Su tabla debe tener solo un \captioncomando. Usarlo en las partes posteriores de la mesa es algo peligroso.
  5. Puede utilizarlo @{}para deshacerse de los márgenes blancos innecesarios a izquierda y derecha de la tabla. Los inserté en tu encabezado, si no te importa. En caso de que no le importe, tenga cuidado de repetir esas declaraciones en \multicolumns, que aparecen en la primera o última columna. Si lo olvida @{}, \multicolumndemolerá el aspecto limpio del cabezal de la mesa.
  6. Para ahorrar escritura, reemplacé las L{0.33}declaraciones repetidas por *{3}{L}.
  7. Después de haber cambiado el tamaño de fuente a 10 pt, no puede restaurar el valor predeterminado escribiendo \normalsize, como \normalsizeya lo configuró el comando anterior en 10pt@11pt. En caso de que quisiera restaurar el tamaño de fuente normal debido a su \footnotesizecomando -en la tabla: esto tampoco tiene ningún efecto, ya que \footnotesizese capturó dentro de la tabla y, por lo tanto, no tiene efecto en el exterior de la tabla.

Una sugerencia más: si planea tener más de esas tres columnas, haciéndolas cada vez más pequeñas, debería pensar en cargar el paquete ragged2ey reemplazar la \raggedrightdeclaración de columna con \RaggedRight. El último comando podrá, no sólo ajustar líneas entre palabras, sino también entre palabras utilizando las separaciones de palabras correctas. Esto dará columnas mejor llenadas.

Aquí está mi MWE corregido (usando el filecontentsentorno, para unir ambos archivos en un solo archivo:

\documentclass{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{longtable}
\usepackage{ltxtable}
\usepackage{array}
\usepackage{booktabs}

% Column Type for Table
% \newcolumntype{L}[1]{>{\hsize=#1\hsize\raggedright\arraybackslash}X}%
\newcolumntype{L}{>{\raggedright\arraybackslash}X}%

%% New:
%% Extra file within this file.
\begin{filecontents}{table.tex}
\renewcommand{\arraystretch}{1.5}
%\fontsize{10}{11}\selectfont %% <--- you need to use \selctfont in
                             %% order to make your font selection work
\begin{longtable}{@{} *{3}{L} @{}} %% <--- save typing
\caption[Spielermotivationen nach Yee]{Spielermotivationen nach
  Yee\footnotemark}
\label{tab:yeeMotivation}\\

\toprule  % <--- use the correct rulers
\endfirsthead

% \caption[]{fortgesetzt} \\ <--- your table should have only one caption!
\midrule
\multicolumn{1}{@{} l}{Fortsetzung \dots}\\
\endhead

\midrule
&& \multicolumn{1}{r @{}}{Fortsetzung auf nächster Seite} \\
\endfoot

\midrule
&& \multicolumn{1}{r @{}}{Ende der Tabelle} \\
\bottomrule % <--- correct ruler
\endlastfoot

\textbf{Achievement} & \textbf{Social} & \textbf{Immersion} \\
Advancement\newline
  Progress, Power, Accumulation, Status
& Socializing\newline
  Casual chat, helping others, making friends
& Discovery\newline
  Exploration, Lore, Finding hidden things \\

\end{longtable}
% \normalsize % <--- you don't need this, as \footnotesize was
% enclosed in the table.  Switching back to 10 or 12 pt fontsize as
% default font size, will not be sufficient to restore the original
% value!
\end{filecontents}


\begin{document}
\chapter{First Chapter}
\LTXtable{\textwidth}{table.tex}
\end{document}

Y el resultado (para probar mis palabras):

ingrese la descripción de la imagen aquí

Respuesta2

Si modifica \hsizeuna Xcolumna, debe asegurarse de que el ancho total de las columnas X no cambie. entonces, si, como aquí, tienes 3, Xentonces si divides dos de ellas por la mitad ( L{0.5}), entonces necesitas duplicar la tercera ( L{2}) para que el ancho total de las 3 columnas sea .5+.5+2=3 veces el ancho de una X estándar.

Tiene L{.33}L{.33}L{.33}3 Xcolumnas pero con un ancho total de menos de 1 X estándar. Eso confundirá completamente tabularxy, como se ve aquí, hará que no converja a ningún valor sensible. Debe usarlo L{1}si desea que todas las columnas tengan el mismo ancho (como ya mostró Jan en su respuesta).

información relacionada