在 \hline 和仅由 \multicolumn 组成的行之间添加垂直空间(不使用 \midrule)

在 \hline 和仅由 \multicolumn 组成的行之间添加垂直空间(不使用 \midrule)

我想在\hline和仅由 组成的行之间添加垂直空间\multicolumn。我不想使用\midrule

答案在这个问题不工作的情况下\multicolumn

在此处输入图片描述

以下是 MWE:

\documentclass{article}

\begin{document}
\begin{tabular}{ll}
\hline
\multicolumn{2}{c}{Method A}\\
\hline
1) & $\begin{array}{c}a\leftarrow A^Tb \\ c\leftarrow A^Td_Z \end{array}$\\
\hline
\multicolumn{2}{c}{Method B}\\
\hline
2) & $\begin{array}{c}a\leftarrow A^Tb \\ c\leftarrow A^Td_Z \end{array}$\\
\hline
\end{tabular}
\end{document}

答案1

cellspace包允许您在单元格的顶部和底部定义独立的最小间距。然后,您所要做的就是在要应用这些最小间距的列前加上字母S。这与包S中的限定符相冲突siunitx,后者用前缀替换它C。它适用于常见的列类型(l、r、c、p、m、X)——您可以添加列类型——但不适用于 S。有关更多详细信息,请参阅文档。

\documentclass{article}

\usepackage{cellspace}
\setlength\cellspacetoplimit{3pt}
\setlength\cellspacebottomlimit{3pt}

\begin{document}

\begin{tabular}{l Sl}
\hline
\multicolumn{2}{Sc}{Method A}\\
\hline
1) & $\begin{array}{c}a ← A^Tb \\ c ← A^Td_Z \end{array}$\\
\hline
\multicolumn{2}{Sc}{Method B}\\
\hline
2) & $\begin{array}{c}a ← A^Tb \\ c ← A^Td_Z \end{array}$\\
\hline
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

我建议你插入“支柱”,即具有高度和/或深度但没有宽度(因此不可见)的元素。(顺便说一句,这个想法不是我原创的。它至少可以追溯到 Claudio Beccari 在TeX 和 TUG 新闻1993年。

您将\Tstrut("顶部支柱") 放在 后面的行上,\hline\Bstrut("底部支柱") 放在 前面的行上\hline。如果某一行(例如标题行)夹在两个\hlines 之间,则插入\TBstrut("顶部和底部支柱") 以获得更好的间距。

请注意,下面示例中定义的支柱分别比\strut或更高、更深\mathstrut

如果您的表达式涉及分数,请确保\Tstrut在分子中放置 a 和/或\Bstrut在分母中放置 a (根据需要)。

在此处输入图片描述

\documentclass{article}
%% define a few struts
%% (from code by Claudio Beccari in TeX and TUG News, Vol. 2, 1993)
\newcommand\Tstrut{\rule{0pt}{2.9ex}}         % "top" strut
\newcommand\Bstrut{\rule[-1.2ex]{0pt}{0pt}}   % "bottom" strut
\newcommand\TBstrut{\Tstrut\Bstrut}           % "top and bottom" strut

\begin{document}
\begin{tabular}{c}
\hline
The strut method \TBstrut\\
\hline
$a\leftarrow A^{T}b \Tstrut$ \\ 
$c\leftarrow A^T\!d_{Z} \Bstrut$\\
\hline
\end{tabular}
\end{document}

答案3

1. 书签

也许更好的解决方案是加载booktabs并使用命令\addlinespace[]为各个hlines 添加空间:

\documentclass{article}
\usepackage{booktabs}

\begin{document}
\begin{tabular}{ll}
\hline
\multicolumn{2}{c}{Method A}\\
\hline\addlinespace[2pt]  %%----> fine tune spacing
1) & $\begin{array}{c}a\leftarrow A^Tb \\ c\leftarrow A^Td_Z \end{array}$\\
\hline\addlinespace[2pt]  %%----> fine tune spacing
\multicolumn{2}{c}{Method B}\\
\hline\addlinespace[2pt]   %%----> fine tune spacing
2) & $\begin{array}{c}a\leftarrow A^Tb \\ c\leftarrow A^Td_Z \end{array}$\\
\hline
\end{tabular}
\end{document}

2. 表格

您也可以使用该包tabls,只需使用

 \usepackage{tabls}

在你的序言中。

\documentclass{article}
\usepackage{tabls}
\setlength\tablinesep{0pt}   %
\setlength\arraylinesep{0pt} % this setting mimic LaTeX but add space to the `\hline`
\setlength\extrarulesep{1pt} %

\begin{document}
\begin{tabular}{ll}
\hline
\multicolumn{2}{c}{Method A}\\
\hline
1) & $\begin{array}{c}a\leftarrow A^Tb \\ c\leftarrow A^Td_Z \end{array}$\\
\hline
\multicolumn{2}{c}{Method B}\\
\hline
2) & $\begin{array}{c}a\leftarrow A^Tb \\ c\leftarrow A^Td_Z \end{array}$\\
\hline
\end{tabular}
\end{document}

您可以通过以下命令进一步微调间距:

\setlength\tablinesep{5pt} 
\setlength\arraylinesep{5pt} 
\setlength\extrarulesep{5pt}
\hline[extra]

我认为默认设置效果很好。但是由于您要求添加空间的解决方案hlinetabls因此这可能不是您问题的正确答案。

正如所描述的这个问题tabls也必须在array-package之前加载,然后可能会失去其功能。

相关内容