表格:设置单元格颜色时边框消失

表格:设置单元格颜色时边框消失

我引用了以下代码https://www.tablesgenerator.com/并设置单元格颜色。但我发现生成的表格中的单元格边框消失了。

在此处输入图片描述 在此处输入图片描述

代码:

% Please add the following required packages to your document preamble:
% \usepackage{multirow}
% \usepackage[table,xcdraw]{xcolor}
% If you use beamer only pass "xcolor=table" option, i.e. \documentclass[xcolor=table]{beamer}
\begin{table}[]
\begin{tabular}{|ccc|c|c|c|}
\hline
\rowcolor[HTML]{C0C0C0} 
\multicolumn{3}{|c|}{\cellcolor[HTML]{C0C0C0}Package}                                                             & \cellcolor[HTML]{C0C0C0}                       & \cellcolor[HTML]{C0C0C0}                                   & \cellcolor[HTML]{C0C0C0}                                  \\ \cline{1-3}
\rowcolor[HTML]{C0C0C0} 
\multicolumn{1}{|c|}{\cellcolor[HTML]{C0C0C0}QFP100} & \multicolumn{1}{c|}{\cellcolor[HTML]{C0C0C0}QFP64} & QFP48 & \multirow{-2}{*}{\cellcolor[HTML]{C0C0C0}Name} & \multirow{-2}{*}{\cellcolor[HTML]{C0C0C0}Digital Function} & \multirow{-2}{*}{\cellcolor[HTML]{C0C0C0}Analog Function} \\ \hline
\multicolumn{1}{|c|}{1}                              & \multicolumn{1}{c|}{1}                             & 1     & A                                              & A                                                          & -                                                         \\ \hline
\multicolumn{1}{|c|}{2}                              & \multicolumn{1}{c|}{2}                             & 2     & B                                              & B                                                          & -                                                         \\ \hline
\end{tabular}
\end{table}

我尝试\cline{1-3}用替换hhline{---},但结果也有问题 在此处输入图片描述

另一个问题是,当放大到 80% 时,不再显示更多边框 在此处输入图片描述

如果没有设置单元格颜色,则上面的方法没有问题 在此处输入图片描述

谢谢

答案1

欢迎来到 TeX.SE!!

我不知道您的表格生成器(或者任何其他生成器),但我认为您的表格很容易用tabularray包来制作。代码将简短、简单且非常清晰(IMHO)。

像这样:

\documentclass{article}
\usepackage{lipsum}     % dummy text
\usepackage{tabularray} % clean tables
\usepackage{xcolor}     % colors

\definecolor{mygray}{HTML}{C0C0C0}

\begin{document}
\lipsum[1]
\begin{table}[ht]\centering
\begin{tblr}
{% format:
   colspec={cccccc},    % centered columns
   hlines,vlines,       % horizontal and vertical lines
   cell{1}{1}={c=3}{},  % enlarege cell{1}{1} to 3 columns
   cell{1}{4-6}={r=2}{},% enlarge cells {1}{4}, {1}{5} and {1}{6} to 2 rows
   row{1,2}={bg=mygray},% fisrt 2 rows with gray background
   cells={font=\sffamily}
}% content:
Package &       &       & Name & Digital Function & Analog Function\\
QFP100  & QFP64 & QFP48 &      &                  &\\
1       & 1     & 1     & A    & A                & -\\
2       & 2     & 2     & B    & B                & -
\end{tblr}
\end{table}

\lipsum[2]
\end{document}

在此处输入图片描述

更新:longtblr与评论所建议的例子相同。

\documentclass{article}
\usepackage{lipsum}     % dummy text
\usepackage{tabularray} % clean tables
\usepackage{xcolor}     % colors

\definecolor{mygray}{HTML}{C0C0C0}

\begin{document}
\lipsum[1-4]
\begin{longtblr}
[% longtable format:
  caption=Some title.,
]
{% format:
   colspec={cccccc},
   hlines,vlines,       % horizontal and vertical lines
   cell{1}{1}={c=3}{},  % enlarege cell{1}{1} to 3 columns
   cell{1}{4-6}={r=2}{},% enlarge cells {1}{4}, {1}{5} and {1}{6} to 2 rows
   row{1,2}={bg=mygray},% fisrt 2 rows with gray backgraound
   cells={font=\sffamily},
   rowhead=2,
}% content:
Package &       &       & Name & Digital Function & Analog Function\\
QFP100  & QFP64 & QFP48 &      &                  &\\
1       & 1     & 1     & A    & A                & -\\
1       & 1     & 1     & A    & A                & -\\
1       & 1     & 1     & A    & A                & -\\
1       & 1     & 1     & A    & A                & -\\
1       & 1     & 1     & A    & A                & -\\
1       & 1     & 1     & A    & A                & -\\
2       & 2     & 2     & B    & B                & -
\end{longtblr}

\lipsum[2]
\end{document}

答案2

欢迎来到 TeX.SX!代码可以大大简化(这并不奇怪,因为表生成器以其生成的代码过于复杂而闻名):

  • 将列定义从 更改为|ccc|c|c|c||c|c|c|c|c|c|可以删除 的所有实例\multicolumn{1}{...}{...}
  • 如果使用\rowcolor,则无需另外添加,\cellcolor除非单个单元格应该有其他颜色,但这里并非如此。
  • 最后,您可以使用\hhline,但需要稍微调整一下间距。因此,更改\\ \cline{1-3}\\[-.4pt] \hhline{---~~~}应该可以解决问题。

完整 MWE:

\documentclass{article}
\usepackage{colortbl, xcolor, multirow, hhline}

\begin{document}

\begin{tabular}{|c|c|c|c|c|c|} \hline
\rowcolor[HTML]{C0C0C0} 
    \multicolumn{3}{|c|}{Package} & & & \\[-.4pt] \hhline{---~~~}
\rowcolor[HTML]{C0C0C0} 
    QFP100 & QFP64 & QFP48 & \multirow{-2}{*}{Name} & \multirow{-2}{*}{Digital Function} & \multirow{-2}{*}{Analog Function} \\ \hline
1 & 1 & 1 & A & A & - \\ \hline
2 & 2 & 2 & B & B & - \\ \hline
\end{tabular}

\end{document}

在此处输入图片描述

相关内容