「Trail 1」と「Trail 3」の行全体を、それらの単語自体を除いて色付けしたいと思います (つまり、数字だけですが、色付けは \midrule から次の行まで行われます)。これにより、その間にある小さな空白も削除されますが、削除方法がわかりません。どうすればいいでしょうか?
また、これに凡例を追加して色を示すことは可能ですか? Pgfplots がこれを行うことは知っていますが、tikzpicture と tabular の違いにより、それを組み込む方法がわかりません (間違っていたら訂正してください。私はこのコミュニティの初心者です)。
実行可能なコードは次のとおりです。
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[sexy]{evan}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\newcommand{\mycc}{\cellcolor{lightgray}}
\begin{document}
\begin{center}
\begin{tabular}{SSSSSSS} \toprule
{$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
\text{Trail 1} & \mycc 1.48 & \mycc 2.76 & \mycc 4.02 & \mycc 5.22 & \mycc 6.43 & \mycc 7.76 \\ \midrule
\text{Trail 2} & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
\text{Trail 3} & \mycc 1.53 & \mycc 2.94 & \mycc 4.53 & \mycc 5.96 & \mycc 7.36 & \mycc 8.83 \\ \midrule
\text{Trail 4} & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ \bottomrule
\end{tabular}
\end{center}
\end{document}
何をすればいいのかわからないので、どなたか助けていただけるとありがたいです。また、データ値が揃っていない理由もわからないので、それも修正できれば嬉しいです。
編集: コードの出典の一部を以下に示します。
答え1
デフォルトではブックタブ行の色はうまく調和しません。 この問題を回避するには、プリアンブルに次のコードを追加します。
\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt
凡例については、環境tabular
内の環境に必要なものを投げ込むだけでminipage
、次のようなことが実現できます。
おそらく、この「凡例」を自分の好みに合わせて調整する必要があるでしょう。
これにより、行の色が行の垂直サイズ全体を埋めないという問題が修正されますが、これはOPが尋ねていない問題です。しかし、列の間のかすかな線は修正されない、これが OP が実際に尋ねていることです。このかすかな隙間はバグだと思います。これを修正する最も簡単な方法は、@{}
各列指定子の後に追加することです。これは基本的に列の間に「何も」追加しないことになりますが、何もしないのではなく、実際には少量のスペースが削除され、結果として列間の薄い白い線が削除されます。
新しい修正により、出力は次のようになります。
特に、柱の間のかすかな線は消えてしまいました。
最後に、行の色付けについては、これはMWEの実際のコードを簡略化した結果かもしれませんが、\mycc
色付けしたい各セルに追加するよりも、行の色を設定してから最初\cellcolor
のセルの背景色だけを変更する方が効率的です。実際、次のようなマクロを使用すると、
\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}
色付きの行ごとに 1 つのコマンドを実行するだけで、これを実行できます。
更新されたコードは次のとおりです。
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
%\usepackage[sexy]{evan}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\newcommand{\mycc}{\cellcolor{lightgray}}
\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}
\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt
\begin{document}
\begin{center}
\begin{tabular}{*6{S@{}}S} \toprule
{$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
\colorrow
\text{Trail 1} & 1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ \midrule
\text{Trail 2} & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
\colorrow
\text{Trail 3} & 1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ \midrule
\text{Trail 4} & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ \bottomrule
\end{tabular}
\smallskip
\hfil
\begin{minipage}{0.3\textwidth}
\textbf{Legend}\\
\begin{tabular}{ll}
\mycc This colour & stuff
\end{tabular}
\end{minipage}
\end{center}
\end{document}
答え2
水平線を使用する場合、それが によって描かれる場合でも\hline
によって描かれる場合でも\midrule
、そして色付き (または網掛け) のセルの行は、2 つの視覚的メタファーが混在しており、簡単に裏目に出ることがあります。このようなことはしないでください。指示を削除 (またはコメント アウト) すると\midrule
、表の可読性がすぐに向上します。また、水平線を囲む厄介な空白をどうやって取り除くかについて悩む必要もありません。
別のコメント: 2*6=12 個の個別のディレクティブを発行する代わりに、 2 つの行に対して\cellcolor
2 つのディレクティブを発行し、これらの 2 つの行の最初のセルに対して 2 つのディレクティブを発行して、これらのセルに対するディレクティブの効果を上書きします。\rowcolor{lightgray}
\cellcolor{white}
\rowcolor
\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[sexy]{evan}
\usepackage{booktabs,siunitx}
\usepackage[table]{xcolor}
\begin{document}
\begin{center}
\renewcommand\arraystretch{1.25} % for a more open "look"
\begin{tabular}{@{} l *{6}{S[table-format=1.2]} }
\toprule
& {2m} & {4m} & {6m} & {8m} & {10m} & {12m} \\ %\midrule
\rowcolor{lightgray}%
\cellcolor{white}%
Trail 1 & 1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ %\midrule
Trail 2 & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ %\midrule
\rowcolor{lightgray}%
\cellcolor{white}%
Trail 3 & 1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ %\midrule
Trail 4 & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\
\bottomrule
\end{tabular}
\end{center}
\end{document}
答え3
TiKzマトリックスを使用したソリューション - 凡例は末尾の空白行に刻まれます
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\tikzset{
table/.style={
matrix of nodes,
nodes={
rectangle,
draw=none,
align=center
},
minimum height=1.5em,
every even row/.style={
nodes={fill=black!30}
},
column 1/.style={
nodes={text width=4em,font=\bfseries}
},
}
}
\begin{tikzpicture}
\matrix (first) [table,text width=4em]
{
{$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\
|[fill=white]|{Trail 1} & 1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\
{Trail 2} & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\
|[fill=white]|{Trail 3} & 1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\
{Trail 4} & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\
&|[fill=white]|{}&&&&&\\
&&|[fill=black!30]|Legend&{defintion}&&&\\
};
\end{tikzpicture}
\end{document}
nicematrix
編集 優れたパッケージによるソリューション
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{rrrrrrr}[code-before = \rowcolors{1}{white}{blue!15} \columncolor{white}{1}]
{$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\
\text{Trail 1} & 1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\
\text{Trail 2} & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\
\text{Trail 3} & 1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\
\text{Trail 4} & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\
\end{NiceTabular}
\end{document}
そしてその結果
凡例は6行目に配置できます
答え4
と互換性のある色付きの行が必要な場合は、のbooktabs
環境を使用できます。{NiceTabular}
nicematrix
\documentclass[11pt]{scrartcl}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\begin{center}
\begin{NiceTabular}{SSSSSSS}[colortbl-like] \toprule
{$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
\text{Trail 1} & \rowcolor{lightgray}1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ \midrule
\text{Trail 2} & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
\text{Trail 3} & \rowcolor{lightgray}1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ \midrule
\text{Trail 4} & & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ \bottomrule
\end{NiceTabular}
\end{center}
\end{document}
ただし、複数のコンパイルが必要になります。