
Я пытаюсь использовать 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
Заменив {tabular*} на {NiceTabular*} nicematrix
с ключом 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.