表/表形式の行全体を色付けする

表/表形式の行全体を色付けする

「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 つの行に対して\cellcolor2 つのディレクティブを発行し、これらの 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}

ただし、複数のコンパイルが必要になります。

上記コードの出力

関連情報