
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
Como faço para corrigir o \midrule no final da tabela?
Responder1
Em relação ao aviso sobre \multicolumn
s 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).
- Você não deve diminuir o tamanho da fonte da sua tabela, caso contrário você tende a torná-la ilegível.
- Se você usar comandos como
\fontsize{10pt}{11pt}
, deverá usá-los\selectfont
para ativar as alterações. - Não tenho certeza do que seu recém-definido
L
-columntype deve fazer. Principalmente a parte\hsize=#1\hsize
. Ainda mais, conforme você entrega0.33
o conteúdo de#1
. Eu teria suspeitado que#1
deveria ser uma dimensão totalmente qualificada (ou seja, deve ter uma dimensão comopt
). Substituí-o por uma declaração de coluna um pouco mais simples. - Sua tabela deve ter apenas um
\caption
comando. Usá-lo nas partes subsequentes da tabela é um tanto perigoso. - 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\multicolumn
s, que aparecem na primeira ou na última coluna. Se você esquecer@{}
isso,\multicolumn
vai demolir a aparência limpa da cabeceira da mesa. - Para economizar digitação, substituí as
L{0.33}
declarações repetidas por*{3}{L}
. - Depois de alterar o tamanho da fonte para 10 pt, você não pode restaurar o valor padrão digitando
\normalsize
, pois\normalsize
já foi definido como 10pt@11pt pelo comando acima. Caso você queira restaurar o tamanho da fonte normal devido ao seu\footnotesize
comando -na tabela: isso também não tem efeito, pois\footnotesize
foi 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 ragged2e
e substituir o \raggedright
da 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):
Responder2
Se você alterar \hsize
uma X
coluna, precisará garantir que a largura total das colunas X permaneça inalterada. então se, como aqui, você tem 3, X
entã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 X
colunas, mas com uma largura total menor que 1 X padrão. Isso confundirá completamente tabularx
e, 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).