![表格 xcolor @{,} \rowcolor 破碎的文字](https://linux22.com/image/326855/%E8%A1%A8%E6%A0%BC%20xcolor%20%40%7B%2C%7D%20%5Crowcolor%20%E7%A0%B4%E7%A2%8E%E7%9A%84%E6%96%87%E5%AD%97.png)
我正在使用如下格式的表格:
\documentclass[a4paper,10pt]{report}
\usepackage[table]{xcolor}
\begin{document}
\begin{tabular}{|c|r@{,}l|c|c|c|c|}
\hline
$B_N$ & \multicolumn{2}{c|}{$C_N$} & $i$ & $j$ & $k$ & $l$ \\
\hline \rowcolor{gray!35}
$B_1$ & 5 & 128 & 0 & 1 & 0 & 0 \\
\hline \rowcolor{gray!35}
$B_2$ & 0 & 281 & 0 & 1 & 0 & 1 \\
\hline
$B_{11}$ & 0 & $008 \cdot e$ & 2 & -1 & -1 & 0 \\
\end{tabular}
\end{document}
正如您在此处看到的:
5 和 0 被减半。我发现了类似的问题(\rowcolor 截断表格中的单元格)但我无法使用此答案修复我的错误。我该如何解决这个问题?
谢谢
答案1
colortbl
很抱歉不能怪作者,xcolor
这里的界面很垃圾,不过你可以这样做:
\documentclass[a4paper,10pt]{report}
\usepackage[table]{xcolor}
\begin{document}
\begin{tabular}{|c|r@{,}l|c|c|c|c|}
\hline
$B_N$ & \multicolumn{2}{c|}{$C_N$} & $i$ & $j$ & $k$ & $l$ \\
\hline \rowcolor{gray!35}
$B_1$ &
\multicolumn{1}{>{\columncolor{gray!35}[\tabcolsep][6pt]}r@{,}}{5}&
\multicolumn{1}{@{}>{\columncolor{gray!35}[0pt][\tabcolsep]}l|}{128}&
0 & 1 & 0 & 0 \\
\hline \rowcolor{gray!35}
$B_2$ &
\multicolumn{1}{>{\columncolor{gray!35}[\tabcolsep][6pt]}l@{,}}{0} &
\multicolumn{1}{@{}>{\columncolor{gray!35}[0pt][\tabcolsep]}l|}{281}&
0 & 1 & 0 & 1 \\
\hline
$B_{11}$ & 0 & $008 \cdot e$ & 2 & -1 & -1 & 0 \\
\hline
\end{tabular}
\end{document}
答案2
一个实用的替代方法:要以小数点后两位为单位写出十进制数,可以使用两个包:
dcolumn
siumitx
使用这两种方法,您可以简单地合并r
和l
将列合为一,并将数字写为普通十进制数。由于我更熟悉siunitx
...
\documentclass[a4paper,10pt]{report}
\usepackage[table]{xcolor}
\usepackage[output-decimal-marker={,}]{siunitx}
\begin{document}
\begin{tabular}{|c|S[table-format=1.3]|c|c|c|c|}
\hline
$B_N$ & {$C_N$} & $i$ & $j$ & $k$ & $l$ \\
\rowcolor{gray!35}\hline
$B_1$ & 5,128 & 0 & 1 & 0 & 0 \\
\rowcolor{gray!35}\hline
$B_2$ & 0,281 & 0 & 1 & 0 & 1 \\
\hline
\end{tabular}
\end{document}
表格的外观与 David Carlisle 的回答相同:
升级:看来,上述解决方案更适合新表,对于现有的以下colortbl
限制(故障)的逃脱可以是简单的解决方案:
\documentclass[a4paper,10pt]{report}
\usepackage[table]{xcolor}
\begin{document}
\begin{tabular}{|c|r<{,\kern-\tabcolsep}>{\kern-\tabcolsep}l|c|c|c|c|}
\hline
$B_N$ & \multicolumn{2}{c|}{$C_N$} & $i$ & $j$ & $k$ & $l$ \\
\hline \rowcolor{gray!35}
$B_1$ & 5 & 128 & 0 & 1 & 0 & 0 \\
\hline \rowcolor{gray!35}
$B_2$ & 0 & 281 & 0 & 1 & 0 & 1 \\
\hline
$B_{11}$ & 0 & $008 \cdot e$ & 2 & -1 & -1 & 0 \\
\hline
\end{tabular}
\end{document}
答案3
如果它是一个更像表格的数组,则使用数学模式:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{icomma,rccol}
\begin{document}
$\begin{array}{|c|R{1}{3}|c|c|c|c|}\hline
B_N & \multicolumn{1}{c|}{C_N} & i & j & k & l \\
\rowcolor{gray!35}\hline
B_1 & 5,128 & 0 & 1 & 0 & 0 \\
\rowcolor{gray!35}\hline
B_2 & 0,281 & 0 & 1 & 0 & 1 \\\hline
\end{array}$
\end{document}
答案4
环境{NiceTabular}
提供nicematrix
与类似的工具,colortbl
但使用 PGF/Tikz 进行绘图。
使用该环境,您可以直接获得您想要的东西(但由于使用 PGF/Tikz 节点,因此您需要多次编译nicematrix
)。
\documentclass[a4paper,10pt]{report}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\begin{NiceTabular}{|c|r@{,}l|c|c|c|c|}[color-inside]
\hline
$B_N$ & \multicolumn{2}{c}{$C_N$} & $i$ & $j$ & $k$ & $l$ \\
\hline \rowcolor{gray!35}
$B_1$ & 5 & 128 & 0 & 1 & 0 & 0 \\
\hline \rowcolor{gray!35}
$B_2$ & 0 & 281 & 0 & 1 & 0 & 1 \\
\hline
$B_{11}$ & 0 & $008 \cdot e$ & 2 & -1 & -1 & 0 \\
\hline
\end{NiceTabular}
\end{document}