多行间距

多行间距

我正在尝试在 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}

在此处输入图片描述

相关内容