我在 LaTeX 中制作了以下表格。
\documentclass{beamer}
\usepackage{multirow}
\usepackage{xcolor,colortbl}
\begin{document}
\begin{frame}
\frametitle{Time}
\begin{table}[]
{\tiny
\centering
\begin{tabular}{||l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\multicolumn{18}{|l|}{Progress} \\ \hline
\multicolumn{9}{|l|}{\multirow{2}{*}{Ta}} & \multicolumn{9}{l|}{Ses} \\ \cline{10-18}
\multicolumn{9}{|l|}{}& H & B & A & H & B & A & H & B & A \\ \hline
\multirow{2}{*}{\begin{tabular}[c]{@{}l@{}} 14\end{tabular}} & \multicolumn{8}{l|}{884} & & & \cellcolor{black!15} & & & & & & \\ \cline{2-18}
& \multicolumn{8}{l|}{L} & & & \cellcolor{black!15} & & & & & & \\ \hline
\multirow{4}{*}{\begin{tabular}[c]{@{}l@{}} 15\end{tabular}} & \multicolumn{8}{l|}{666} & & & & \cellcolor{black!55} & & & & & \\ \cline{2-18}
& \multicolumn{8}{l|}{650} & & & & \cellcolor{black!55} & & & & & \\ \cline{2-18}
& \multicolumn{8}{l|}{0X} & & & & \cellcolor{black!55} & & & & & \\ \cline{2-18}
& \multicolumn{8}{l|}{11} & & & & \cellcolor{black!55} & & & & & \\ \hline
\end{tabular}}
\end{table}
\end{frame}
\end{document}
如下所示,它生成了一个表格,但不是我想要的。我想给单元格着色,同时仍然显示它们之间的水平线。当我给两个连续的单元格着色时,它们看起来就像一个单元格。
编辑:我根据评论添加了序言和缩放的 pdf。
答案1
您看到的问题与命令有关cline
,该命令在第 10 节中有详细说明colortbl
文档:
如果使用这个包,你最好在 \hhline 参数中使用 - 规则类型,而不是 \cline。
因此,按照此指导,我们可以加载hhline
包装和替换
\cline{2-18}
和
\hhline{*{1}{||~}*{17}{|-}}
输出为:
作为参考,您可能还会看到\cellcolor 覆盖表格线和Cellcolor 覆盖部分水平线(\cline)
以下是完整的 MWE:
% arara: pdflatex
% !arara: indent: {overwrite: yes}
\documentclass{beamer}
\usepackage{multirow}
\usepackage{xcolor,colortbl}
\usepackage{hhline}
\begin{document}
\begin{frame}
\frametitle{Time}
\begin{table}[]
{\tiny
\centering
\begin{tabular}{||*{18}{l|}}
\hline
\multicolumn{18}{|l|}{Progress} \\ \hline
\multicolumn{9}{|l|}{\multirow{2}{*}{Ta}} & \multicolumn{9}{l|}{Ses} \\ \cline{10-18}
\multicolumn{9}{|l|}{}& H & B & A & H & B & A & H & B & A \\ \hline
\multirow{2}{*}{\begin{tabular}[c]{@{}l@{}} 14\end{tabular}} & \multicolumn{8}{l|}{884} & & & \cellcolor{black!15} & & & & & & \\ \hhline{*{1}{||~}*{17}{|-}}%\cline{2-18}
& \multicolumn{8}{l|}{L} & & & \cellcolor{black!15} & & & & & & \\ \hline
\multirow{4}{*}{\begin{tabular}[c]{@{}l@{}} 15\end{tabular}} & \multicolumn{8}{l|}{666} & & & & \cellcolor{black!55} & & & & & \\ \hhline{*{1}{||~}*{17}{|-}}%\cline{2-18}
& \multicolumn{8}{l|}{650} & & & & \cellcolor{black!55} & & & & & \\ \hhline{*{1}{||~}*{17}{|-}}%\cline{2-18}
& \multicolumn{8}{l|}{0X} & & & & \cellcolor{black!55} & & & & & \\ \hhline{*{1}{||~}*{17}{|-}}%\cline{2-18}
& \multicolumn{8}{l|}{11} & & & & \cellcolor{black!55} & & & & & \\ \hline
\end{tabular}}
\end{table}
\end{frame}
\end{document}
答案2
{NiceTabular}
您可以使用轻松绘制该表格nicematrix
。
\documentclass{beamer}
\usepackage{xcolor}
\usepackage{nicematrix,tikz}
\begin{document}
\begin{frame}
\frametitle{Time}
\begin{table}[]
\begin{NiceTabular}{ll*{9}{c}}[hvlines,color-inside]
\Block[l]{1-*}{Progress} \\
\Block[l]{2-2}{Ta} & & \Block[l]{1-*}{Ses} \\
& & H & B & A & H & B & A & H & B & A \\
\Block{2-1}{14} & 884 & & & \cellcolor{gray!15} \\
& L & & & \cellcolor{gray!15} \\
\Block{*-1}{15} & 666 & & & & \cellcolor{gray!50} \\
& 650 & & & & \cellcolor{gray!50} \\
& OX & & & & \cellcolor{gray!50} \\
& 11 & & & & \cellcolor{gray!50} \\
% now, for the double vertical rule
\CodeAfter \tikz \draw ([xshift=2pt]4-|1) -- ([xshift=2pt]10-|1) ;
\end{NiceTabular}
\end{table}
\end{frame}
\end{document}