спасибо всем. Все горизонтальные и вертикальные линии появляются, но когда вы раскрашиваете строку или ячейку, 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}