\midrule da última nota de rodapé na tabela longa não abrange todas as colunas

\midrule da última nota de rodapé na tabela longa não abrange todas as colunas

Estou incluindo uma tabela longa com LTXtable e a última regra não abrange todas as colunas. Em vez disso, tem cerca de 60% de largura e centros.

Recebo o seguinte aviso:

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

Se eu executar novamente a compilação (estou usando Sublime Text e LatexTools), o aviso aparecerá novamente.

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}

tabela.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 - midrule não abrangendo toda a largura

Como faço para corrigir o \midrule no final da tabela?

Responder1

Em relação ao aviso sobre \multicolumns no manual ltxtable, acho que você deveria se livrar dessas entradas, que abrangem mais de uma coluna. Pelo menos, mudar isso ajudou muito.

Também tomei a liberdade de mudar algumas outras coisas (principalmente relevantes tipográficas).

  1. Você não deve diminuir o tamanho da fonte da sua tabela, caso contrário você tende a torná-la ilegível.
  2. Se você usar comandos como \fontsize{10pt}{11pt}, deverá usá-los \selectfontpara ativar as alterações.
  3. Não tenho certeza do que seu recém-definido L-columntype deve fazer. Principalmente a parte \hsize=#1\hsize. Ainda mais, conforme você entrega 0.33o conteúdo de #1. Eu teria suspeitado que #1deveria ser uma dimensão totalmente qualificada (ou seja, deve ter uma dimensão como pt). Substituí-o por uma declaração de coluna um pouco mais simples.
  4. Sua tabela deve ter apenas um \captioncomando. Usá-lo nas partes subsequentes da tabela é um tanto perigoso.
  5. Você pode usar @{}para se livrar das margens brancas desnecessárias à esquerda e à direita da tabela. Eu os inseri no seu cabeçalho, se você não se importa. Caso você não se importe, tenha o cuidado de repetir as declarações em \multicolumns, que aparecem na primeira ou na última coluna. Se você esquecer @{}isso, \multicolumnvai demolir a aparência limpa da cabeceira da mesa.
  6. Para economizar digitação, substituí as L{0.33}declarações repetidas por *{3}{L}.
  7. Depois de alterar o tamanho da fonte para 10 pt, você não pode restaurar o valor padrão digitando \normalsize, pois \normalsizejá foi definido como 10pt@11pt pelo comando acima. Caso você queira restaurar o tamanho da fonte normal devido ao seu \footnotesizecomando -na tabela: isso também não tem efeito, pois \footnotesizefoi capturado dentro da tabela e, portanto, não tem efeito no exterior da tabela.

Mais uma dica: se você planeja ter mais do que essas três colunas, tornando-as cada vez menores, você deve pensar em carregar o pacote ragged2ee substituir o \raggedrightda declaração da coluna por \RaggedRight. O último comando será capaz não apenas de quebrar linhas entre palavras, mas também entre palavras usando as hifenizações corretas. Isso fornecerá colunas melhor preenchidas.

Aqui está meu MWE corrigido (usando o filecontents-environment, para colar os dois arquivos em um arquivo:

\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}

E o resultado (para provar minhas palavras):

insira a descrição da imagem aqui

Responder2

Se você alterar \hsizeuma Xcoluna, precisará garantir que a largura total das colunas X permaneça inalterada. então se, como aqui, você tem 3, Xentão se você dividir dois deles pela metade ( L{0.5}), então você precisa dobrar o terceiro ( L{2}) para que a largura total das 3 colunas seja 0,5+0,5+2=3 vezes a largura de um X padrão.

Você tem L{.33}L{.33}L{.33}3 Xcolunas, mas com uma largura total menor que 1 X padrão. Isso confundirá completamente tabularxe, como visto aqui, fará com que não convirja para quaisquer valores sensatos. Você deve usar L{1}se quiser que todas as colunas tenham a mesma largura (como Jan já mostrou em sua resposta).

informação relacionada