我正在尝试在 LaTeX 中使用多行,并且想增加线制动器 (hline) 之间的距离。
工作示例如下:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{amsmath}
\begin{document}
\begin{table}[]
\begin{tabular}{|c|c|c|}
\hline
\textbf{Types} & \multicolumn{1}{l|}{\textbf{Size}} & \multicolumn{1}{r|}{\textbf{Matrix}} \\ \hline
\multirow{2}{*}{A} & \multirow{2}{*}{2+2} & \multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}A\\ B\end{tabular}} \\
& & \\ \hline
\multirow{3}{*}{B} & \multirow{3}{*}{3+3} & \multirow{3}{*}{$\begin{bmatrix}
1,1,2\\
3,3,2\\
1,1,8
\end{bmatrix}\times 3$}\\ [0.5ex]
& & \\
& & \\ \hline
\multirow{3}{*}{C} & \multirow{3}{*}{3+3} & \multirow{3}{*}{$\begin{bmatrix}
1,2,4\\
3,3,2\\
1,4,8
\end{bmatrix}\times 2$}\\ [0.5ex]
& & \\
& & \\ \hline
\multirow{3}{*}{Result} & \multirow{3}{*}{2+2} & A \\ \cline{3-3}
& & B \\ \cline{3-3}
& & C \\ \hline
\end{tabular}
\end{table}
\end{document}
答案1
您可以使用 的可选 ⟨vmove⟩ 参数\multirow
。通过将其设为负数,它会将\multirow
向下移动。这还要求\\[0.5pt]
必须增加此行的下一行。
编辑:添加了另外两个解决方案
第二种解决方案使用makecell
包及其命令来生成额外的垂直空间。请注意,此解决方案中已消除了\makecell*
所有。\multirows
第三个解决方案使用tblr
来自tabularray
包的环境。此环境会自动为条目提供一些额外的垂直空间。请注意,tabularray
对于单元格占据多于一行的表格,这通常是一个更好的解决方案,而这\multirow
通常不是最佳解决方案。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{multirow}
\usepackage{amsmath}
\usepackage{makecell}
\usepackage{tabularray}
\begin{document}
% Using multirow
\begin{table}
\begin{tabular}{|c|c|c|}
\hline
\textbf{Types} & \multicolumn{1}{l|}{\textbf{Size}} & \multicolumn{1}{r|}{\textbf{Matrix}} \\ \hline
\multirow{2}{*}{A} & \multirow{2}{*}{2+2} & \multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}A\\ B\end{tabular}} \\
& & \\ \hline
\multirow{3}{*}{B} & \multirow{3}{*}{3+3} & \multirow{3}{*}[-2pt]{$\begin{bmatrix}
1,1,2\\
3,3,2\\
1,1,8
\end{bmatrix}\times 3$}\\ [1ex]
& & \\
& & \\ \hline
\multirow{3}{*}{C} & \multirow{3}{*}{3+3} & \multirow{3}{*}[-2pt]{$\begin{bmatrix}
1,2,4\\
3,3,2\\
1,4,8
\end{bmatrix}\times 2$}\\ [1ex]
& & \\
& & \\ \hline
\multirow{3}{*}{Result} & \multirow{3}{*}{2+2} & A \\ \cline{3-3}
& & B \\ \cline{3-3}
& & C \\ \hline
\end{tabular}
\end{table}
% Using makecell
\begin{table}
\begin{tabular}{|c|c|c|}
\hline
\textbf{Types} & \multicolumn{1}{l|}{\textbf{Size}} & \multicolumn{1}{r|}{\textbf{Matrix}} \\ \hline
A & 2+2 & \makecell{A\\ B} \\
\hline
B & 3+3 & \makecell*{$\begin{bmatrix}
1,1,2\\
3,3,2\\
1,1,8
\end{bmatrix}\times 3$}\\ \hline
C & 3+3 & \makecell*{$\begin{bmatrix}
1,2,4\\
3,3,2\\
1,4,8
\end{bmatrix}\times 2$}\\
\hline
& & A \\ \cline{3-3}
Result & 2+2 & B \\ \cline{3-3}
& & C \\ \hline
\end{tabular}
\end{table}
% Using tblr
\begin{table}
\begin{tblr}{colspec={|c|c|c|},
row{1}={font=\bfseries},
}
\hline
Types & \SetCell{l}Size & \SetCell{r}Matrix \\ \hline
{A} & {2+2} & {\begin{tabular}[c]{@{}c@{}}A\\ B\end{tabular}} \\
\hline
{B} & {3+3} & {$\begin{bmatrix}
1,1,2\\
3,3,2\\
1,1,8
\end{bmatrix}\times 3$}\\ \hline
{C} & {3+3} & {$\begin{bmatrix}
1,2,4\\
3,3,2\\
1,4,8
\end{bmatrix}\times 2$}\\% [1ex]
\hline
\SetCell[r=3]{c}{Result} & \SetCell[r=3]{c}{2+2} & A \\ \cline{3-3}
& & B \\ \cline{3-3}
& & C \\ \hline
\end{tblr}
\end{table}
\end{document}
答案2
无需解决方案multirow
我$
在第二列定义之前和之后添加了内容,以便该列中的所有表达式都以数学模式呈现。
booktabs
定义了一些额外的有用规则,特别是\specialrule
,它允许调整额外的垂直间距。不幸的是,booktabs
不适用于垂直线。
这是针对您的餐桌的不同建议
\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{amsmath}
\begin{document}
\begin{table}[tbh]
\begin{tabular}{c >{$}c<{$} c}
\toprule
\textbf{Types} & \multicolumn{1}{l}{\textbf{Size}} & \multicolumn{1}{r}{\textbf{Matrix}} \\
\midrule
A & 2+2 & \begin{tabular}{@{}c@{}}
A \\
B
\end{tabular} \\
\specialrule{\cmidrulewidth}{\aboverulesep}{3pt}
B & 3+3 & $\begin{bmatrix}
1,1,2\\
3,3,2\\
1,1,8
\end{bmatrix} \times 3$ \\
\specialrule{\cmidrulewidth}{3pt}{3pt}
C & 3+3 & $\begin{bmatrix}
1,2,4\\
3,3,2\\
1,4,8
\end{bmatrix} \times 2$ \\
\specialrule{\cmidrulewidth}{3pt}{\belowrulesep}
Result & 2+2 & A \\
\cmidrule{3-3}
& & B \\
\cmidrule{3-3}
& & C \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案3
使用该tabularray
包后,代码(非常)简单且简短:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{amsmath}
\begin{document}
\begin{table}[ht]
\begin{tblr}{hlines, vlines,
colspec = {Q[c,m] *{2}{Q[c, mode=math]}},
row{1} = {font=\bfseries, mode=text},
row{2-Z}= {rowsep=5pt}
}
Types & Size & Matrix \\
A & 2+2 & \begin{matrix}
A\\ B
\end{matrix}\\
B & 3+3 & \begin{bmatrix}
1,1,2\\
3,3,2\\
1,1,8
\end{bmatrix}\times 3 \\
C & 3+3 & \begin{bmatrix}
1,2,4\\
3,3,2\\
1,4,8
\end{bmatrix}\times 2 \\
\SetCell[r=3]{c} Result
&\SetCell[r=3]{c} 2+2
& A \\
& & B \\
& & C \\
\end{tblr}
\end{table}
\end{document}