我正在尝试创建一个同时具有标题中提到的所有三个特征的表格。我尝试了每个列使用tabular
单独的、使用和自定义列定义\color
tabu
\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}