表の行の一部を色で塗りつぶす

表の行の一部を色で塗りつぶす

などを使用してさまざまな線の太さを取得したいので、 をtabular*使用して表を生成しようとしています。ただし、以下の試みでは、表のセクションに色を付けようとすると、次のように色にスペースができてしまいます。midrulebottomrule

ここに画像の説明を入力してください

私はこれらを見てきました関連ソリューションしかし、まだ希望する結果が得られていないため、ここで使用できるより簡単な解決策があるかどうかを知りたいと思いました。

これが私のコードです:

\documentclass{article}
\usepackage{float}
\usepackage{xcolor,colortbl,tabularx}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}

\begin{table}[H]
\centering
  \caption{Not too good looking table here.\label{tab:table1}}
  \footnotesize
% Table generated by Excel2LaTeX from sheet 'Sheet2'
    \begin{tabularx}{\textwidth}{c @{\extracolsep{\fill}} c|ccc}
    %\begin{tabular*}{cc|cc}
    %\toprule
    \hline
    \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
   Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
   %\midrule
    \hline
    FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
    FLTR0 & 80    & 80    & FLTR0 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
    FLTR6 & 6     & 44    & FLTR4 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
    FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
    \hline
    %\bottomrule
    \end{tabularx}%
    %\end{tabular*}
\end{table}

\end{document}

セルを隙間なく塗りつぶし、同時に などを使用するにはどうすればよいでしょうtoprulemidrule?

答え1

  • @{\extracolsep{\fill}}色付けできない列の間に余分なスペースを挿入するの使用は\rowcolor{...}tabularx有望な方法ですが、使用すべきではありません。@{\extracolsep{\fill}}
  • 使用時にはtabularx少なくとも1つの列がタイプである必要がありますX
  • すべての列の幅を同じにできる場合、使用するテーブルのコードは次のようtabularxになります。
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}

\begin{document}

\begin{table}[ht]
\centering
  \caption{Not too good looking table here.\label{tab:table1}}
  \footnotesize
    \begin{tabularx}{\textwidth}{CC|CC}
\hline
\multicolumn{2}{c|}{\textbf{Test1}} 
                    & \multicolumn{2}{c}{\textbf{Test2}}    \\
Test11  & Test12    & Test13    & Test14                    \\
    \hline
FLTR2   & 2         & 40        & FLTR0                     \\
FLTR0   & 80        & 80        & FLTR0                     \\
\rowcolor{red!30} 
\textcolor{purple}{FLTR0} 
        & \textcolor{purple}{160} 
                    &  \textcolor{purple}{204} 
                                & \textcolor{purple}{FLTR4} \\
FLTR6   & 6         & 44        & FLTR4                     \\
\rowcolor{red!30}
\textcolor{purple}{FLTR16} 
        & \textcolor{purple}{16} 
                    & \textcolor{purple}{43¸} 
                                & \textcolor{purple}{FLTR3} \\
FLTR4   & 44        & 6         & FLTR6                     \\
    \hline
    \end{tabularx}%
\end{table}

\end{document}

ここに画像の説明を入力してください

私の意見では、この表には列の内容の間に空きスペースが多すぎます。表の幅を狭くすれば、もっと見やすくなります。

編集:tabularrayおよびパッケージ を使用して、1 列目と 2 列目の一部のセルのみを色付けした、幅の狭いテーブルの例ではsiunitx、MWE は次のようになります。

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx, varwidth}
\NewTableCommand\SCC[2]{\SetCell{bg=#1, fg=#2}}

\begin{document}

    \begin{table}[ht]
    \centering
\caption{Not too good looking table here.}
\label{tab:table1}
    \begin{tblr}{colspec={Q[l] Q[c, si={table-format=3.0}] |
                          Q[c, si={table-format=3.0}] Q[l] },
                 row{1} = {font=\bfseries, guard},
                 row{2} = {guard}
                 }
    \toprule
\SetCell[c=2]{c}    Test 1
        &           & \SetCell[c=2]{c}    Test 2    
                                &                   \\
Test11  & Test12    & Test13    & Test14            \\
    \midrule
FLTR2   &   2       & 40        & FLTR0             \\
FLTR0   &   80      & 80        & FLTR0             \\
\SetRow{bg=red!20, fg=purple} 
FLTR0   &   160     &   204     &   FLTR4           \\     
FLTR6   &   6       &   44      &   FLTR4           \\
\SCC{red!20}{purple}
FLTR16  & \SCC{red!20}{purple}
            16      &   43      &   FLTR3           \\
FLTR4   &   44      &   6       & FLTR6             \\
    \bottomrule
    \end{tblr}%
\end{table}

\end{document}

ここに画像の説明を入力してください

答え2

これが役に立つかもしれません。質問は大歓迎です

ムウェ

\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}
    
    \begin{NiceTabular}{c @{\extracolsep{\fill}} c|ccc}[colortbl-like]
        \toprule
    \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
        Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
        \midrule
        FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
        FLTR0 & 80    & 80    & FLTR0 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
        FLTR6 & 6     & 44    & FLTR4 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
        FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
        \bottomrule
    \end{NiceTabular}
    
\end{document}

ここに画像の説明を入力してください

テーブルを全体に拡張するには、同様の列text widthを提供しますX columnstabularx

\documentclass{article}
\usepackage{nicematrix}
\usepackage{booktabs}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}
    
    \begin{NiceTabular}{c X[c]|c X[c]}[colortbl-like]
        \toprule
        \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
        Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
        \midrule
        FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
        FLTR0 & 80    & 80    & FLTR0 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
        FLTR6 & 6     & 44    & FLTR4 \\
        \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
        FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
        \bottomrule
    \end{NiceTabular}
    
\end{document}

ここに画像の説明を入力してください

答え3

nicematrixキー を持つの {tabular*} を {NiceTabular*} に置き換えるとcolortbl-like、次のようになります。

\documentclass{article}
\usepackage{float}
\usepackage{xcolor}
\usepackage{nicematrix}
\usepackage{bigstrut}
\definecolor{LightGray}{gray}{0.9}

\begin{document}

\begin{table}[H]
\centering
  \caption{Not too good looking table here.\label{tab:table1}}
  \footnotesize
% Table generated by Excel2LaTeX from sheet 'Sheet2'
    \begin{NiceTabular*}{\textwidth}{c @{\extracolsep{\fill}} c|ccc}[colortbl-like]
    %\begin{tabular*}{cc|cc}
    %\toprule
    \hline
    \multicolumn{2}{c|}{\textbf{Test1}} & \multicolumn{2}{c}{\textbf{Test2}} \bigstrut[t]\\
   Test11 & Test12 & Test13 & Test14 \bigstrut[b]\\
   %\midrule
    \hline
    FLTR2 & 2     & 40    & FLTR0 \bigstrut[t]\\
    FLTR0 & 80    & 80    & FLTR0 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR0} & \textcolor[rgb]{ .612,  0,  .024}{160} & \textcolor[rgb]{ .612,  0,  .024}{204} & \textcolor[rgb]{ .612,  0,  .024}{FLTR4} \\
    FLTR6 & 6     & 44    & FLTR4 \\
    \rowcolor[rgb]{ 1,  .78,  .808} \textcolor[rgb]{ .612,  0,  .024}{FLTR16} & \textcolor[rgb]{ .612,  0,  .024}{16} & \cellcolor[rgb]{ 1,  1,  1}43 & \cellcolor[rgb]{ 1,  1,  1}FLTR3 \\
    FLTR4 & 44    & 6     & FLTR6 \bigstrut[b]\\
    \hline
    %\bottomrule
    \end{NiceTabular*}%
    %\end{tabular*}
\end{table}

\end{document}

上記コードの出力

表の序文では 5 列と記載されていますが、実際に使用されているのは 4 列だけであることに注意してください。

関連情報