使用hhline包隐藏一个单元格边框

使用hhline包隐藏一个单元格边框

我在这里得到了这个美丽的答案 表格的双单元格边框(针对整个列)使用线包装,并希望在布局方面取得更大的进步。

@StefanH 的当前代码是:

\documentclass[12pt]{article}
\usepackage{hhline}
\begin{document}
\begin{tabular}{|c||c|c|c|}  
  \hhline{-||---}
  & headline1 & headline2 & headline3 \\ 
  \hhline{=::===}
  row1 & a & b & c \\ 
  \hhline{-||---}
  row2 & d & e & f \\ 
  \hhline{-||---}
  row3 & g & h & i \\ 
  \hhline{-||---}
\end{tabular} 
\end{document}

但我想要更进一步,让左上角的单元格隐藏/没有边框,所以它应该看起来应该像这样: 在此处输入图片描述

我使用以下代码来管理它:

\documentclass[12pt]{article}
\usepackage{hhline}
\begin{document}
\begin{tabular}{|c||c|c|c|} 
  \hhline{~|---}
 \multicolumn{1}{c|}{} & headline1 & headline2 & headline3 \\ 
  \hhline{-::===}
  row1 & a & b & c \\ 
  \hhline{-||---}
  row2 & d & e & f \\ 
  \hhline{-||---}
  row3 & g & h & i \\ 
  \hhline{-||---}
\end{tabular} 
\end{document}

但是,如果你能看到,有一个小点(边框剩下的),我也想隐藏它:

在此处输入图片描述

有什么办法可以摆脱它吗?

答案1

我不会说哪种tabular看起来最好,但我会尽力帮助您掩盖难看的点。我通过在row1和后续&分隔符之间添加线条来实现这一点。它必须添加在那里,因为是第二行代码将在第一行中放置该点。我所做的是放置一个零宽度,\smashed\rule来掩盖该点。我这样做是red!5为了让您可以看到它的影响。将该颜色更改为white,您就可以开始了。14pt可能需要根据单元格内容的宽度进行调整。

\documentclass[12pt]{article}
\usepackage{hhline,xcolor}
\begin{document}
\begin{tabular}{|c||c|c|c|} 
  \hhline{~|---}
 \multicolumn{1}{c|}{} & headline1 & headline2 & headline3 \\ 
  \hhline{-::===}
  row1 
% THE FOLLOWING LINE WAS ADDED, CHANGE red!5 TO white, ALTER 14pt TO SUIT DATA
  \unskip\textcolor{red!5}{\makebox[0pt]{\smash{\rule[12pt]{14pt}{3pt}}}}
%
   & a & b & c \\ 
  \hhline{-||---}
  row2 & d & e & f \\ 
  \hhline{-||---}
  row3 & g & h & i \\ 
  \hhline{-||---}
\end{tabular} 
\end{document}

在此处输入图片描述

另一种方法是保留tabular原来的,然后\stackinset\rule完整的 上放置tabular,从左上角开始:

\documentclass[12pt]{article}
\usepackage{hhline,xcolor,stackengine}
\begin{document}
\stackinset{l}{}{t}{}{\textcolor{red!5}{\rule{37pt}{16pt}}}{%
\begin{tabular}{|c||c|c|c|} 
  \hhline{~|---}
 \multicolumn{1}{c|}{} & headline1 & headline2 & headline3 \\ 
  \hhline{-::===}
  row1 
   & a & b & c \\ 
  \hhline{-||---}
  row2 & d & e & f \\ 
  \hhline{-||---}
  row3 & g & h & i \\ 
  \hhline{-||---}
\end{tabular}%
}
\end{document}

在此处输入图片描述

只要第一行保持一行,就可以设置一个宏来提供帮助。在这种情况下,\coverup{<widest col1 entry>}{<original tabular>}可以调用。

\documentclass[12pt]{article}
\usepackage{hhline,xcolor,stackengine}
\newcommand\coverup[2]{%
  \stackinset{l}{\fboxrule}{t}{2\fboxrule}{\fboxsep=0pt\colorbox{red!5}{%
    \kern2\tabcolsep \phantom{#1}\strut}}{\ignorespaces#2\unskip}}
\begin{document}
\coverup{row1}{
\begin{tabular}{|c||c|c|c|} 
  \hhline{~|---}
 \multicolumn{1}{c|}{} & headline1 & headline2 & headline3 \\ 
  \hhline{-::===}
  row1 
   & a & b & c \\ 
  \hhline{-||---}
  row2 & d & e & f \\ 
  \hhline{-||---}
  row3 & g & h & i \\ 
  \hhline{-||---}
\end{tabular}
}
\end{document}

答案2

请刹车,看看少即是多。在设计表格时考虑到这一点,您可以获得:

在此处输入图片描述

上面的表格真的比你的表格更难读吗?

\documentclass[12pt]{article} 
\usepackage{booktabs} 

\begin{document} 
\begin{tabular}{*{4}{l}} 
    \toprule 
        & headline1 & headline2 & headline3 \\ 
    \midrule 
row 1   & aaaaaaaa  & bbbbbbbb  & ccccccc   \\ 
row 2   & dddddddd  & eeeeeeee  & ffffffff  \\ 
row 3   & gggggggg  & hhhhhhhh  & iiiiiiii  \\
row 4   & jjjjjjjj  & kkkkkkkk  & llllllll  \\
row 5   & mmmmmmmm  & nnnnnnnn  & oooooooo  \\
    \addlinespace
row 1   & aaaaaaaa  & bbbbbbbb  & ccccccc   \\
row 2   & dddddddd  & eeeeeeee  & ffffffff  \\
row 3   & gggggggg  & hhhhhhhh  & iiiiiiii  \\
row 4   & jjjjjjjj  & kkkkkkkk  & llllllll  \\
row 5   & mmmmmmmm  & nnnnnnnn  & oooooooo  \\
    \addlinespace
row 1   & aaaaaaaa  & bbbbbbbb  & ccccccc   \\
row 2   & dddddddd  & eeeeeeee  & ffffffff  \\
row 3   & gggggggg  & hhhhhhhh  & iiiiiiii  \\
row 4   & jjjjjjjj  & kkkkkkkk  & llllllll  \\
row 5   & mmmmmmmm  & nnnnnnnn  & oooooooo  \\
    \bottomrule 
\end{tabular} 
\end{document}

答案3

这里还有另外两种可能性,更具装饰性:

\documentclass[12pt]{article}
\usepackage[table, svgnames]{xcolor}
\usepackage{hhline, booktabs}

\begin{document}

\begin{tabular}{| >{\columncolor{Gainsboro!50!Lavender}}l||c|c|c|}
\hhline{~|---|}
\rowcolor{Gainsboro!50!Lavender} \multicolumn{1}{c!{}|}{\cellcolor{PapayaWhip}} & \multicolumn{1}{c}{headline1} & headline2 & headline3 \\
  \hhline{->{\arrayrulecolor{white}}t :>{\arrayrulecolor{black}}:>{\arrayrulecolor{black}}===:}
   row1 & a & b & c \\
  \hhline{-||---|}
  row2 & d & e & f \\
  \hhline{-||---|}
  row3 & g & h & i \\
  \hhline{-||---|}
\end{tabular}
\vspace{1cm}

\setlength\extrarowheight{2pt}
\setlength{\arrayrulewidth}{0.6pt}
\arrayrulecolor{Gainsboro!50!Lavender}
\begin{tabular}{>{\columncolor{Gainsboro!50!Lavender}}l|!{\color{RoyalBlue}\vrule width 0.6pt}c|c|c!{\color{RoyalBlue}\vrule width 0.6pt}}
\rowcolor{Gainsboro!50!Lavender} \multicolumn{1}{c!{\hspace{\dimexpr\doublerulesep + \arrayrulewidth}}}{\cellcolor{PapayaWhip}} & \multicolumn{1}{!{\hspace{-\arrayrulewidth}}c}{headline1} & \multicolumn{1}{c}{headline2} &\multicolumn{1}{c}{ headline3} \\\addlinespace[0.5ex]
\hhline{-|>{\arrayrulecolor{RoyalBlue}}|---|}
row1 & a & b & c \\
\hhline{>{\arrayrulecolor{Gainsboro!50!Lavender}}-|>{\arrayrulecolor{RoyalBlue}}|---|}
  row2 & d & e & f \\
\hhline{>{\arrayrulecolor{Gainsboro!50!Lavender}}-|>{\arrayrulecolor{RoyalBlue}}|---|}
 row3 & g & h & i \\
\hhline{>{\arrayrulecolor{Gainsboro!50!Lavender}}-|>{\arrayrulecolor{RoyalBlue}}|---|}
\end{tabular}

\end{document} 

在此处输入图片描述

相关内容