输入

输入

我正在尝试创建一个同时具有标题中提到的所有三个特征的表格。我尝试了每个列使用tabular单独的、使用和自定义列定义\colortabu\rowfont这里这里最后一种方法是唯一不会导致输出中出现双倍行高的方法,但同时会导致右侧的框线不完整。

有没有一种方法可以同时为表格提供完整的框架和适当的行高?

输入

\usepackage{color}
\usepackage{colortbl}

\definecolor{colorh}{rgb}{0.5,0.5,0.5}   

\begin{document}
\begin{tabular}{ |p{2cm}|p{2cm}|p{2cm}|p{2cm}| } 
\hline
\rowcolor{colorh} {\color{white}a} & {\color{white}b} & {\color{white}b} & {\color{white}d} \\
\rowcolor{colorh} e & f & g & h \\                              
\hline
\end{tabular} 
\end{document}

输出

在此处输入图片描述

答案1

如果使用列类型,问题就会消失m{2cm}。如果您想使用p{2cm},解决方法是使用\textcolor{white}{cell contents}indtead of \color{white} cell contents

\documentclass{article}
\usepackage[table, x11names]{xcolor}
\usepackage{hhline}
\definecolor{colorh}{rgb}{0.5,0.5,0.5}

\setlength\arrayrulewidth{0.25mm}
\newcolumntype{L}{>{\arraybackslash}p{2cm}}%

\begin{document}

\begin{tabular}{|L|L|L|L|}
  \hline
  \rowcolor{colorh}
  \textcolor{white}{a} & \textcolor{white}{b} & \textcolor{white}{c} & \textcolor{white}{d} \\
  \rowcolor{colorh}
  e & f & g & h \\
  \hline
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

使用,您{NiceTabular}可以nicematrix直接获得预期的输出。

\documentclass{article}
\usepackage{nicematrix}

\definecolor{colorh}{rgb}{0.5,0.5,0.5}   

\begin{document}

\begin{NiceTabular}{|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}[colortbl-like]
\hline
\RowStyle[color=white]{}
\rowcolor{colorh}a & b & b & d \\
\rowcolor{colorh} e & f & g & h \\                              
\hline
\end{NiceTabular} 

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

我已经使用了键colortbl-like,以便能够使用命令来用colortbl\rowcolor)的语法为行着色。

但是,也可以在数组本身之前(在中\CodeBefore)用指令为数组着色。

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\begin{NiceTabular}{|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
\CodeBefore
    \arraycolor[rgb]{0.5,0.5,0.5}   
\Body
    \hline
    \RowStyle[color=white]{}
    a & b & b & d \\
    e & f & g & h \\ 
    \hline
\end{NiceTabular} 

\end{document}

输出是一样的。

答案3

我想这更像是一种权宜之计,而不是解决方案,但是最后的上述方法实际上使得最右边的线可见,如果指定两次,就像这样|L|L|L|L||

输入

\documentclass{article}
\usepackage{color}
\usepackage{colortbl}

\definecolor{colorh}{rgb}{0.5,0.5,0.5}

\setlength\arrayrulewidth{0.25mm}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{2cm}}

\begin{document}
\begin{tabular}{ |L|L|L|L|| }
\rowcolor{colorh} {\color{white}a} & {\color{white}b} & {\color{white}b} & {\color{white}d} \\
a & b & c & d \\
\rowcolor{colorh} e & f & g & h \\
\end{tabular} 
\end{document}

输出

在此处输入图片描述

答案4

稍微修改了您提到的 MWE,我无法重现您的表格图像。而且您在答案中发现的结果是错误的。请尝试以下操作:

\documentclass[border=3mm]{standalone}

\usepackage[table]{xcolor}
\definecolor{colorh}{rgb}{0.5,0.5,0.5}

\begin{document}
\begin{tabular}{|p{2cm}|p{2cm}|p{2cm}|p{2cm}|}
    \hline
\rowcolor{colorh} 
\textcolor{white}{a} 
    & \textcolor{white}{b} 
        & \textcolor{white}{c} 
            & \textcolor{white}{d}      \\
    e & f & g & h \\
\rowcolor{colorh}
    e & f & g & h \\
    \hline
\end{tabular}
\end{document}   

在此处输入图片描述

相关内容