表格行和列的间距(不是填充!)?

表格行和列的间距(不是填充!)?

我需要行与行之间的空间并删除列之间的白线。我找到的所有答案都只引用了数组拉伸和\tabcolsep,我使用并喜欢它们,但是,这些只会更改单元格填充,而不会更改间距。

我的餐桌

到处都是小白线。我需要删除列之间的白线,并让行之间的白线变宽。

(而且因为我已经在这里了。我怎样才能将单元格中的内容垂直居中?似乎第 1 行有点奇怪,而其他行都是垂直居中的?

\begin{table}[h]
\centering
\caption{My caption}
\vspace{10pt}
\label{my-label}

\def\arraystretch{2}
\setlength\tabcolsep{20pt}

\begin{tabular}{ L{5cm} c c }

 & \color{THIblue} {\bf something} 
 & \color{THIblue} {\bf anotherThing} \\

\rowcolor{THIlight}
Feature 1
 & \checkmark
 & \checkmark \\

\rowcolor{THIlight}
Feature 2
 & \checkmark
 & \checkmark \\

\rowcolor{THIlight}
Feature 3
 & \checkmark
 & \checkmark \\

\rowcolor{THIlight}
Feature 4
 &
 & \checkmark \\

\rowcolor{THIlight}
Feature 5
 & 
 & \checkmark \\

\rowcolor{THIlight}
Feature 6
 & 
 & \checkmark \\

\end{tabular}

\end{table}

编辑:我这样定义我的 L 表列:

\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

因为我想要一个具有特定大小的左对齐单元格。我需要添加什么才能使其垂直居中?

答案1

在此处输入图片描述

这是我所做的:

  • 为了使文本在单元格内垂直居中,我cellspace像 Bernard 一样使用了包,因为它最简单。您可以使用任何其他方法,例如\newcolumntype\raisebox(参见这个问题例如),但这很容易而且准确
  • 为了使水平线更粗,我使用了\setlength\arrayrulewidth{1.5pt},除了使用\arrayrulecolor{white}使其变为白色而不是默认的黑色之外
  • css我从页面代码中选择了颜色,并在HTMLby\definecolor{THIblue}{HTML}{C3CFF4}RGBby中定义颜色后,用它来为行和文本着色\definecolor{THIblue}{RGB}{195,207,244}

最后,这是完整的代码

\documentclass[12pt,a4paper]{article}
\usepackage{amssymb,array,cellspace}
\usepackage[table]{xcolor}
\setlength\cellspacetoplimit{10pt}
\setlength\cellspacebottomlimit{10pt}
\definecolor{THIblue}{HTML}{C3CFF4} %{RGB}{195,207,244}
\definecolor{blueHD}{HTML}{000B6C}  %{RGB}{0,11,108}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\arrayrulecolor{white}
\setlength\arrayrulewidth{1.5pt}

\begin{document}
\begin{table}[h] \sffamily
\centering
\caption{My caption}
\vspace{10pt}
\label{my-label}
\setlength\tabcolsep{20pt}
\rowcolors{2}{THIblue}{THIblue}
\begin{tabular}{L{5cm} Sc Sc}
   &\color{blueHD}\textbf{Something}&\color{blueHD}\textbf{Another thing}\\ 
   \textbf{Feature 1} & \checkmark & \checkmark \\ \hline
   \textbf{Feature 2} & \checkmark & \checkmark \\ \hline
   \textbf{Feature 3} & \checkmark & \checkmark \\ \hline 
   \textbf{Feature 4} &            & \checkmark \\ \hline
   \textbf{Feature 5} &            & \checkmark \\ \hline
   \textbf{Feature 6} &            & \checkmark \\ \hline
\end{tabular}
\end{table}
\end{document}

编辑:

\newcolumntype如果单元格内容超过一行,使用会更有利。为此,我们定义\newcolumntype{B}{>{\begin{minipage}{5cm}\raggedright\vspace{10pt}}c<{\vspace{10pt}\end{minipage}}}而不是cellspace。值5cm10pt应根据需要进行调整。但请注意不要将第一列中的单元格留空。使用\phantom{Word}来获得正确的单元格高度计算。

在此处输入图片描述

\documentclass[12pt,a4paper]{article}
\usepackage{amssymb,array}
\usepackage[table]{xcolor}
\definecolor{THIblue}{HTML}{C3CFF4} %{RGB}{195,207,244}
\definecolor{blueHD}{HTML}{000B6C}  %{RGB}{0,11,108}

\newcolumntype{B}{>{\begin{minipage}{5cm}\raggedright\vspace{10pt}}c<{\vspace{10pt}\end{minipage}}}
\arrayrulecolor{white}
\setlength\arrayrulewidth{1.5pt}

\begin{document}
\begin{table}[h]\sffamily
\centering
\caption{My caption}
\vspace{10pt}
\label{my-label}
\setlength\tabcolsep{20pt}
\rowcolors{2}{THIblue}{THIblue}
\begin{tabular}{Bcc}\hline
   \phantom{F}&\color{blueHD}\textbf{Something}&\color{blueHD}\textbf{Another thing}\\ \hline
   \textbf{Feature 1 Feature 1 Feature 1 Feature 1 Feature 1 Feature 1 Feature 1 Feature 1} 
    & \checkmark & \checkmark \\ \hline
   \textbf{Feature 2} & \checkmark & \checkmark \\ \hline
   \textbf{Feature 3} & \checkmark & \checkmark \\ \hline 
   \textbf{Feature 4} &            & \checkmark \\ \hline
   \textbf{Feature 5} &            & \checkmark \\ \hline
   \textbf{Feature 6} &            & \checkmark \\ \hline
\end{tabular}
\end{table}
\end{document}

答案2

这里有一个解决方案:我使用\columncolor而不是\rowcolor因为我可以为可选参数指定一个值overhang,这可以摆脱列之间的细垂直白线。

\arraystretch最后,我用包替换了改变的值cellspace,这允许在行时垂直填充,对称地位于单元格的顶部和底部。

\documentclass{article}
\usepackage{amssymb, amsfonts}
\usepackage[x11names, table]{xcolor}
\usepackage{array, tabularx, caption, boldline}
\captionsetup{font=sf}
\usepackage{cellspace}
\setlength\cellspacetoplimit{6pt}
\setlength\cellspacebottomlimit{6pt}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}}
\colorlet{THIlight}{LightSteelBlue3!60!}
\colorlet{THIblue}{SteelBlue4}
\usepackage{etoolbox}
\patchcmd{\hlineB}{\hrule}{\color{THIblue}\hrule}{}{}

\begin{document}

\begin{table}[h]
  \caption{My caption}\label{my-label}
  \sffamily\setlength\arrayrulewidth{0.8pt}\arrayrulecolor{THIblue}
  \setlength\tabcolsep{20pt}
  \begin{tabular}{>{\columncolor{THIlight}[20pt][21pt]}L{5cm}>{\columncolor{THIlight}[21pt]}Sc >{\columncolor{THIlight}[21pt][20pt]}Sc }
    & \color{THIblue} {\bfseries something}
    & \color{THIblue} {\bfseries anotherThing} \\
    \hlineB{2}
    Feature 1 & \checkmark & \checkmark \\\arrayrulecolor{white}
    \hline
    Feature 2 & \checkmark & \checkmark \\
    \hline
    Feature 3 & \checkmark & \checkmark \\
    \hline
    Feature 4 & & \checkmark \\
    \hline
    Feature 5 & & \checkmark \\
    \hline
    Feature 6 & & \checkmark \\
  \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

答案3

在此处输入图片描述

上图是生成的宽度:

\documentclass[border=2mm]{standalone}
    \usepackage{mathtools,amssymb}
    \usepackage[dvipsnames,svgnames,table]{xcolor}
    \usepackage{array,booktabs}

\begin{document}
%    \centering
%    \def\arraystretch{2}
%    \setlength\tabcolsep{20pt}
\renewcommand{\arraystretch}{1.3}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\%
                       \arraybackslash\hspace{0pt}}m{#1}}
\arrayrulecolor{white}
\begin{tabular}{ L{5cm} |>{$}c<{$}|>{$}c<{$} }
            & \color{cyan}\textbf{something}
            & \color{cyan}\textbf{anotherthing} \\ 
\rowcolor{cyan!50}
Feature 1   &   \checkmark
            &   \checkmark \\   \addlinespace[0.8pt]
\rowcolor{cyan!50}
Feature 2   &   \checkmark
            &   \checkmark \\   \addlinespace[0.8pt]

\rowcolor{cyan!50}
Feature 3   &   \checkmark
            &   \checkmark \\   \addlinespace[0.8pt]

\rowcolor{cyan!50}
Feature 4   &
            &   \checkmark \\   \addlinespace[0.8pt]
\rowcolor{cyan!50}
Feature 5   &
            &   \checkmark \\   \addlinespace[0.8pt]
\rowcolor{cyan!50}
Feature 6   &
            &   \checkmark \\
    \end{tabular}
\end{document}

由于您没有提供最小工作示例 (MWE),因此我构建了自己的示例,其中我选择了预定义的颜色。我用 获得水平线addlinespace[0.8pt],用 标准方式获得垂直线,但我用 定义\arrayrulecolor{white}它们是白色的。这是您想要的吗?

我不关心表格环境和标题。对于标题,我们使用caption包。它将在标题和表格之间提供适当的间距。

相关内容