表格、单元格颜色和水平线

表格、单元格颜色和水平线

我不明白为什么在这个简单的例子中我的线条没有显示出来或者看起来很奇怪

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{hhline}

\begin{document}

 \begin{center}
 \begin{tabular}{|cc|p{1in}|cc|p{1in}|cc|} \hhline{--~--~--}
 \multicolumn{2}{|c|}{\cellcolor{green!50!white}U.S.} &&\multicolumn{2}{|c|} 
 {\cellcolor{green!50!white}France}&&\multicolumn{2}{|c|} 
 {\cellcolor{green!50!white}Japan} \\ \hhline{--~--~--}
 \multicolumn{2}{|c|}{$8$} &&\multicolumn{2}{|c|}{$41\frac{1} 
 {3}$}&&\multicolumn{2}{|c|}{$260$} \\ %\hhline{--~--~--}
 \multicolumn{2}{|c|}{$9$} &&\multicolumn{2}{|c|}{$42\frac{2} 
 {3}$}&&\multicolumn{2}{|c|}{$270$} \\ \hhline{--~--~--}
 \end{tabular}
 \end{center}

 \end{document}

在此处输入图片描述

答案1

  • 目前尚不清楚为什么您使用定义列来定义每个子表,然后在其中定义列multicolumn{2}{c}{...}。 只使用一个就足够了...
  • 为了更好地显示表格彩色部分的垂直线,您可以增加线的粗细。例如增加到 0.5pt。
  • 用于去除垂直线上的孔,用于去除水平线上的孔\hhline{|-|~|-|~|-|}
  • 可以使用以下cellspace包来增加单元格内容周围的垂直空间:
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{cellspace, hhline}
\setlength\cellspacetoplimit{2pt}
\setlength\cellspacebottomlimit{2pt}

\begin{document}
    \begin{center}
\setlength\arrayrulewidth{0.5pt}
\begin{tabular}{|Sc|p{1in}|Sc|p{1in}|Sc|}
    \hhline{|-|~|-|~|-|}
\cellcolor{green!50!white}{U.S.} 
    &&  \cellcolor{green!50!white}{France}  
        &&  \cellcolor{green!50!white}{Japan}   \\ 
    \hhline{|-|~|-|~|-|}
$8$ &&  $41\frac{1}{3}$ &&  $260$               \\ %\hhline{-~-~-}
$9$ &&  $42\frac{2}{3}$ &&  $270$               \\ 
    \hhline{|-|~|-|~|-|}
\end{tabular}
    \end{center}
\end{document}

在此处输入图片描述

答案2

您的线条是可见的,但这取决于您使用的 PDF 查看器。有些查看器会将元素对齐到网格,这可能会导致某些组件被其他内容覆盖。在为表格添加颜色时,通常会出现这种情况。

在此处输入图片描述

\documentclass{article}

\usepackage[table]{xcolor}
\usepackage{hhline}

\begin{document}

\begin{center}
  \renewcommand{\arraystretch}{1.2}%
  \begin{tabular}{ | c | p{1in} | c | p{1in} | c | }
    \hhline{-~-~-}
    \cellcolor{green!50!white}U.S. && \cellcolor{green!50!white}France && \cellcolor{green!50!white}Japan \\
    \hhline{-~-~-}
    $8$ && $41\frac{1}{3}$ && $260$ \\
    $9$ && $42\frac{2}{3}$ && $270$ \\
    \hhline{-~-~-}
  \end{tabular}
\end{center}

\end{document}

如您所见,您的设置中不需要两列,因为一列就足够了。

答案3

考虑到上述评论和@Mico 的回答——https://tex.stackexchange.com/a/50355/197451--由于分数接触水平线,因此增加了支撑

在此处输入图片描述

\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{hhline}

\begin{document}
\newcommand\T{\rule{0pt}{2.6ex}}       % Top strut
\newcommand\B{\rule[-1.2ex]{0pt}{0pt}} % Bottom strut
 \begin{center}
 \begin{tabular}{|cc|p{1in}|cc|p{1in}|cc|} \hhline{--~--~--}
 \multicolumn{2}{|c|}
 {\cellcolor{green!50!white}U.S.} 
                                &&\multicolumn{2}{|c|} 
                                  {\cellcolor{green!50!white}France}
                                  \T\B
                                                                        &&\multicolumn{2}{|c|} 
                                                                          {\cellcolor{green!50!white}Japan} \\ \hhline{*{8}{-}}
\multicolumn{2}{|c|}
 {\cellcolor{blue!20!white}$8$} 
                                &&\multicolumn{2}{|c|}
                                  {\cellcolor{blue!20!white}$41
                                  \frac{1}{3}$} \T\B
                                                                        &&\multicolumn{2}{|c|} 
                                                                          {\cellcolor{blue!20!white}$260$} \\ 
                                                                          \hhline{*{8}{-}}
\multicolumn{2}{|c|}
 {\cellcolor{red!10!white}$9$} 
                                &&\multicolumn{2}{|c|}
                                  {\cellcolor{red!10!white}$42
                                  \frac{2}{3}$} \T\B
                                                                        &&\multicolumn{2}{|c|} 
                                                                          {\cellcolor{red!10!white}$270$} \\ 
                                                                          \hhline{*{8}{-}}                                                                          
 \end{tabular}
 \end{center}

答案4

{NiceTabular}的环境nicematrix已经创建,以解决该问题。有了这个环境,线路将不是在某些 PDF 查看器中,在某些缩放级别下,它们似乎会消失(并且当您使用colortbl或 键时,您将看不到在某些 PDF 查看器table(如 SumatraPDF)中有时会看到的细白线xcolor)。

\documentclass{article}

\usepackage{nicematrix}

\begin{document}

\begin{center}
  \renewcommand{\arraystretch}{1.2}%
  \begin{NiceTabular}{|c|}[colortbl-like] \hline
    \cellcolor{green!50!white}U.S. \\ \hline
    $8$ \\
    $9$ \\ \hline
  \end{NiceTabular}
  \hspace{1in}
  \begin{NiceTabular}{|c|}[colortbl-like] \hline
    \cellcolor{green!50!white}France \\ \hline
    $41\frac{1}{3}$ \\
    $42\frac{2}{3}$ \\ \hline
  \end{NiceTabular}
  \hspace{1in}
  \begin{NiceTabular}{|c|}[colortbl-like] \hline
    \cellcolor{green!50!white}Japan \\ \hline
    $260$ \\
    $270$ \\ \hline
  \end{NiceTabular}
\end{center}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容