我需要行与行之间的空间并删除列之间的白线。我找到的所有答案都只引用了数组拉伸和\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
我从页面代码中选择了颜色,并在HTML
by\definecolor{THIblue}{HTML}{C3CFF4}
或RGB
by中定义颜色后,用它来为行和文本着色\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
。值5cm
和10pt
应根据需要进行调整。但请注意不要将第一列中的单元格留空。使用\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
包。它将在标题和表格之间提供适当的间距。