谢谢大家。所有水平线和垂直线都出现了,但是当你给某一行或单元格上色时,top horizontal line disappears
。这是这项工作的代码:
\documentclass[a4paper,11pt,twoside]{book}
\usepackage{array,multirow}
\usepackage[table]{xcolor}
\setlength{\tabcolsep}{10pt}
\setlength{\extrarowheight}{2mm}
\setlength{\arrayrulewidth}{0.2mm}
\begin{document}
\begin{tabular}{|l|*{5}{c|}}
\hline \multirow{2}{*}{Name}& \multicolumn{4}{c|}{\cellcolor{black!10} Subjects}&
\multirow{2}{*}{Total}\\
\cline{2-5} &Math & Phy & Chem & English & \\
\hline
\rowcolor{red!50}[0.98\tabcolsep] Robin & 80 & 68 & 60 & 57 & 265\\
\hline Julie & 72 & 62 & 66 & 63 & 263\\
\hline Robert & 75 & 70 & 71 & 69 & 285\\
\hline
\end{tabular}
\end{document}
这是输出 pdf 的图像。
答案1
在某些 PDF 阅读器(例如 Adobe Reader)中,水平线会在某些缩放级别消失。
该软件包中nicematrix
有专门设计来避免该问题的工具。
\documentclass[a4paper,11pt,twoside]{book}
\usepackage{xcolor}
\usepackage{nicematrix}
\setlength{\tabcolsep}{10pt}
\setlength{\extrarowheight}{2mm}
\setlength{\arrayrulewidth}{0.2mm}
\begin{document}
\begin{NiceTabular}{l*{5}{c}}[color-inside,hvlines]
\Block{2-1}{Name}& \Block[fill=black!10]{1-4}{Subjects} &&&&
\Block{2-1}{Total}\\
&Math & Phy & Chem & English & \\
\rowcolor{red!50} Robin & 80 & 68 & 60 & 57 & 265\\
Julie & 72 & 62 & 66 & 63 & 263\\
Robert & 75 & 70 & 71 & 69 & 285\\
\end{NiceTabular}
\end{document}
您需要进行多次编译(因为nicematrix
在后台使用了 PGF/TikZ 节点)。
答案2
\documentclass[a4paper,11pt,twoside]{book}
\usepackage{array,multirow}
\usepackage[table]{xcolor}
\setlength{\tabcolsep}{10pt}
\setlength{\extrarowheight}{2mm}
\setlength{\arrayrulewidth}{0.2mm}
\begin{document}
\begin{tabular}{|l|*{5}{c|}}
\hline
\multirow{2}{*}{Name} & \multicolumn{4}{c|}{\cellcolor{black!10} Subjects} & \multirow{2}{*}{Total} \\
\cline{2-5}
& Math & Phy & Chem & English & \\
\hline
\rowcolor{red!50}[0.98\tabcolsep]
Robin & 80 & 68 & 60 & 57 & 265 \\
\hline
Julie & 72 & 62 & 66 & 63 & 263 \\
\hline
Robert & 75 & 70 & 71 & 69 & 285 \\
\hline
\end{tabular}
\end{document}