
私は LTXtable で長いテーブルを含めていますが、最後のルールはすべての列にまたがっていません。代わりに、幅が約 60% で中央に配置されています。
次の警告が表示されます:
Package longtable Warning: Column widths have changed(longtable)
Package longtable Warning: Table widths have changed. Rerun LaTeX.
ビルドを再実行すると (Sublime Text と LatexTools を使用しています)、警告が再び表示されます。
MWE:
メイン.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}
テーブル.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
表の末尾の \midrule を修正するにはどうすればよいですか?
答え1
ltxtable マニュアルの sに関する警告に関しては\multicolumn
、複数の列にまたがるエントリを削除する必要があると思います。少なくとも、それを変更すると、大いに役立ちます。
私はまた、他のいくつかのこと(主にタイポグラフィに関連するもの)を変更する自由も得ました。
- 表のフォント サイズを小さくしないでください。小さくすると、読みにくくなる傾向があります。
- のようなコマンドを使用する場合は、変更を有効にするために を
\fontsize{10pt}{11pt}
使用する必要があります。\selectfont
- 新しく定義された -columntype が何をするのかよくわかりません
L
。特に の部分です。さらに、のコンテンツとして\hsize=#1\hsize
渡すと、 は完全修飾ディメンションである必要があると思われます(つまり、 のようなディメンションを持っている必要があります)。これを、少し単純な列宣言に置き換えました。0.33
#1
#1
pt
- テーブルには
\caption
- コマンドが 1 つだけ必要です。テーブルの後続部分で - コマンドを使用するのは、多少危険です。 - テーブルの左右の不要な余白を取り除くには、 を使用できます
@{}
。よろしければ、ヘッダーに挿入しておきます。よろしければ、\multicolumn
最初の列または最後の列に指定する でこれらの宣言を繰り返すように注意してください。 を忘れると@{}
、\multicolumn
テーブル ヘッダーのすっきりした外観が台無しになります。 L{0.33}
入力を節約するために、繰り返しの-宣言を に置き換えました*{3}{L}
。- フォント サイズを 10 pt に変更した後は、上記のコマンドですでに 10pt@11pt に設定されている
\normalsize
ため、と入力しても既定値を復元することはできません\normalsize
。テーブル内の - コマンドにより通常のフォント サイズを復元したい場合、\footnotesize
これも効果がありません。\footnotesize
テーブル内にキャプチャされているため、テーブルの外部には効果がありません。
もう 1 つのヒント: 3 列より多く、列をどんどん小さくしていく予定の場合は、パッケージをロードしてragged2e
、\raggedright
列宣言の を に置き換えることを検討してください\RaggedRight
。後者のコマンドは、単語間の行を折り返すだけでなく、正しいハイフンを使用して単語間を折り返すこともできます。これにより、列がより適切に埋められます。
以下は、修正した MWE です (-environment を使用してfilecontents
、両方のファイルを 1 つのファイルに結合します)。
\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}
そして結果は(私の言葉を証明するために):
答え2
\hsize
列を変更する場合はX
、X 列の合計幅が変更されていないことを確認する必要があります。したがって、ここでのように 3 列ある場合、X
そのうち 2 列を半分にすると ( L{0.5}
)、3 列目を 2 倍にする必要があります ( L{2}
)。これにより、3 列の合計幅は標準の X の幅の 0.5+0.5+2=3 倍になります。
L{.33}L{.33}L{.33}
列は3 つありますX
が、合計幅は 1 標準 X 未満です。これでは完全に混乱しtabularx
、ここで見られるように、適切な値に収束できなくなります。L{1}
すべての列を同じ幅にしたい場合は、 を使用する必要があります (Jan が既に回答で示しているように)。