
我正在嘗試使用tabular*
生成表格,因為我還想使用 等midrule
來bottomrule
獲得不同的線條粗細。然而,在我下面的嘗試中,當我也嘗試對表格的各個部分進行著色時,我在顏色中得到了空格,如下所示:
我看過這些相關解決方案但想知道是否有一個更簡單的解決方案可以在這裡使用,因為我仍然沒有得到我想要的結果。
這是我的程式碼:
\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}
toprule
如何讓顏色填滿單元格而沒有任何間隙,同時使用midrule
等?
答案1
- 使用
@{\extracolsep{\fill}}
在列之間插入額外的空格,這些空格不能被著色\rowcolor{...}
所以,使用 的方法tabularx
是有前途的方法,但在其中你不應該使用@{\extracolsep{\fill}}
- 使用時
tabularx
要求至少輸入一列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
和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 columns
類似的列tabularx
\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
透過用 key替換 {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 列。