
私がやろうとしていることの MWE は次のとおりです。
\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage{color,colortbl}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
\bottomrule
\end{tabularx}
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 & A13 & A14 & A15 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
最初の表は長すぎて\toprule
見た目\bottomrule
が変です。これについていくつか質問があります。
tabularx
コンテンツの幅に合わせてサイズを設定するにはどうすればよいですか?
最後の列を右揃え(すべての列がテーブル全体に広がるように)するにはどうすればよいでしょうか?
\rowcolor
テーブル全体にまたがるように設定するにはどうすればよいですか?
例の 2 番目の表は幅が広すぎます。見栄えを良くするためのコツをご存知ですか?
答え1
最初のテーブルには長い罫線があります。これはtabularx
、テーブルを - 幅にしようとしているtextwidth
のに、幅を調整できる列がないためです。2 番目のテーブルも同様ですが、この場合はテーブルの内容が を超えていますtextwidth
。自動幅調整を可能にするには、-column 指定子を使用する必要がありますX
。次のものを置き換えてみてください。
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}
と
\begin{tabularx}{\textwidth}{l *{11}X}
X
-columnは左揃えで幅が等しいことに注意してください。最後の列を右揃えにするには、 r
-columnを使用するか、新しい列タイプをR
次のように定義します。続く、
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
次に、\begin{tabularx}{\textwidth}{l *{10}X r}
または を使用して\begin{tabularx}{\textwidth}{l *{10}X R}
最後の列を右揃えにします。
すべての行を同じ色にするには、パッケージrowcolors
の コマンドを使用します。このコマンドを使用すると、最初の色指定子を奇数行に使用して、奇数行と偶数行の色を交互に設定できます。特定の行の色を変更するためにも、 を使用できます。xcolor
rowcolors
rowcolor
列タイプと色を変更した例。
\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage[table]{xcolor}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htb]
\centering
\rowcolors{1}{gray}{gray}
\begin{tabularx}{\textwidth}{L *{10}C R}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
\midrule
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
すべてのX
列の幅は同じであることに注意してください。 では幅の調整が難しい場合がありますtabularx
。代わりに、tabulary
またはtabu
パッケージ。