![colortbl rowcolor 位于 @{decl} 上方](https://linux22.com/image/252885/colortbl%20rowcolor%20%E4%BD%8D%E4%BA%8E%20%40%7Bdecl%7D%20%E4%B8%8A%E6%96%B9.png)
我有一些包含许多$\pm$
值的表格,我使用@{decl}
命令来实现良好的对齐。但是,我想添加一些行颜色。尝试使用 colortbl 时,我发现单元格/行颜色位于我的顶部$\pm$
。我尝试使用悬垂部分,但颜色不在后面$\pm$
。
MWE 如下。
\documentclass{article}
\usepackage{color}
\usepackage{colortbl}
\begin{document}
\begin{tabular}{l@{$\pm$}r}
\multicolumn{2}{c}{value} \\
\hline
1 & 2 \\
\rowcolor{white}[0pt] 2&3 \\
\rowcolor{yellow}[0pt] 3&4\\
\end{tabular}
\begin{tabular}{l@{$\pm$}r}
\multicolumn{2}{c}{value} \\
\hline
1 & 2 \\
\rowcolor{white} 2&3 \\
\rowcolor{yellow} 3&4\\
\end{tabular}
\end{document}
有没有什么好/简单的方法来做这个 LaTeX?我确信有些复杂,但我认为这将是一个相对简单的用例。如果这可能很重要,我正在用 Beamer 制作海报。
答案1
您可以使用dcolumn
包轻松获得对齐(周围有正确的间距\pm
)和颜色:
\documentclass{article}
\usepackage{dcolumn}
\usepackage[table]{xcolor}
\newcolumntype{L}{D{,}{{}\pm{}}{1,1}}
\begin{document}
\noindent\begin{tabular}{L}
\multicolumn{1}{c}{value} \\
\hline
1,2 \\
\rowcolor{blue!30} 2,3 \\
\rowcolor{yellow!60} 3,4 \\
\end{tabular}
\noindent\begin{tabular}{L}
\multicolumn{1}{c}{value} \\
\hline
1,2 \\
\rowcolor{blue!30}[0pt] 2,3 \\
\rowcolor{yellow!60}[0pt] 3,4 \\
\end{tabular}
\end{document}
答案2
彩色面板布置在每个单元格内容之前,因此您需要使单元格在@{}
扩展之前在下面它和之后的那个@{}
不要延伸回它上面。
不幸的是我认为这意味着:
\documentclass{article}
\usepackage{color}
\usepackage{colortbl}
\begin{document}
\begin{tabular}{l@{$\pm$}r}
\multicolumn{2}{c}{value} \\
\hline
1 & 2 \\
\rowcolor{white}[0pt] 2&3 \\
%\rowcolor{yellow}[0pt]
\multicolumn{1}{>{\columncolor{yellow}[0pt][20pt]}l@{$\pm$}}{3}&
\multicolumn{1}{>{\columncolor{yellow}[0pt]}l}{4}\\
\end{tabular}
\end{document}
答案3
通过,您{NiceTabular}
可以nicematrix
直接得到预期的结果。
\documentclass{article}
\usepackage{nicematrix,color}
\begin{document}
\begin{NiceTabular}{l@{$\pm$}l}[colortbl-like]
\multicolumn{2}{c}{\clap{value}} \\
\hline
1 & 2 \\
\rowcolor{white} 2 & 3 \\
\rowcolor{yellow} 3 & 4\\
5 & 6
\end{NiceTabular}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。