我想在\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
。如果某一行(例如标题行)夹在两个\hline
s 之间,则插入\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[]
为各个hline
s 添加空间:
\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]
我认为默认设置效果很好。但是由于您要求添加空间的解决方案hline
,tabls
因此这可能不是您问题的正确答案。
正如所描述的这个问题,tabls
也必须在array
-package之前加载,然后可能会失去其功能。