更新

更新

通常,我能弄清楚如何布局的最佳方法是利用我从 HTML 中学到的思维方式,即表格中的表格。我如何修改影响外部表的参数而不影响内部表?

例如,假设我想执行下面的 MWE。

\documentclass{article}
\usepackage[left=0.50in, right=0.50in, top=0.50in, bottom=0.5in]{geometry}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tabularx}

\begin{document}

\begin{tabularx}{\textwidth}{lXX}
    Short Title &
    Longer sentence giving a description of the thing to the right. &
    \({
    \begin{bmatrix}
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a
    \end{bmatrix}
    \begin{bmatrix}
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b
    \end{bmatrix}
    =
    \begin{bmatrix}
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c
    \end{bmatrix}
    }\) \\
    Another line &
    That is like the one above. &
    \({
    \begin{bmatrix}
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a
    \end{bmatrix}
    \begin{bmatrix}
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b
    \end{bmatrix}
    =
    \begin{bmatrix}
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c
    \end{bmatrix}
    }\)
\end{tabularx}

\end{document}

在此处输入图片描述

显然,我希望外部表格的行和列之间有更多空间,而不影响内部表格(有时是tabular而不是bmatrix)。有时我想调整所有内部表格而不影响外部表格。

有没有一种简洁的方法可以做到这一点,而不用在整个过程中使用命令?例如,是否有一种 CSS 样式方法,我可以在其中定义一个表类,然后指定外部表属于某个与常规表不同的类?


更新

这是另一个例子。使用下面 egreg 的答案,我必须输入 2(r-1) 个实例\addlinespace,它会中断垂直线。

\documentclass[12pt]{article}
\usepackage[landscape]{geometry}
\usepackage{amsmath}
\usepackage{booktabs}

\begin{document}


\begin{alignat*}{4}
    &
    \left[
    \begin{array}{c|c}
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\ \hline
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\ \hline
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
    \end{array}
    \right]
    &&
    \renewcommand\arraystretch{1.2}
    \left[
    \begin{array}{c|c}
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\ \hline
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\ \hline
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
    \end{array}
    \right]
    &&
    \renewcommand\arraystretch{1}
    \left[
    \begin{array}{c|c}
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\ \addlinespace \hline \addlinespace
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\ \addlinespace \hline \addlinespace
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
    \end{array}
    \right]
    &&
    \left[
    \begin{array}{c|c}
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            a & b
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\[12pt] \hline
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            c & d
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
        \\[12pt] \hline \\[12pt]
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            w \\ y
        \end{bmatrix}
        &
        \begin{bmatrix}
            e & f
        \end{bmatrix}
        \begin{bmatrix}
            x \\ z
        \end{bmatrix}
    \end{array}
    \right]
    \\
    &\text{No changes.}&
    &
    \begin{array}{l}
        \text{\textbackslash arraystretch} \\ \text{changes everything}
    \end{array}
    &
    &\text{Using \textbackslash addlinespace.}&
    &\begin{array}{l}
            \text{Nope.} \\ \text{and O.M.G.!!}
    \end{array}
\end{alignat*}

\end{document}

在此处输入图片描述

我只是想做类似的事情(伪代码):

define OuterRowAndColSpacing

\begin{OuterArrayOrTable}[OuterRowAndColSpacing]
    \begin{InnerMatrix}
        ...
    \end{InnerMatrix}
    ...
\end{OuterArrayOrTable}

并使一切正常运行。

(今天就是这样的一天:你收到了一份 Word 文档,你会接受它,你会喜欢它!)

答案1

明确设置列间距:

\documentclass{article}
\usepackage[left=0.50in, right=0.50in, top=0.50in, bottom=0.5in]{geometry}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tabularx,booktabs}

\begin{document}

\noindent
\begin{tabularx}{\textwidth}{
  @{}% no left padding
  l
  @{\hspace{2cm}}% more padding (exaggerated)
  X
  @{\qquad}% more padding
  X
  @{}% no right padding
}
    Short Title &
    Longer sentence giving a description of the thing to the right. &
    \(
    \begin{bmatrix}
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a
    \end{bmatrix}
    \begin{bmatrix}
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b
    \end{bmatrix}
    =
    \begin{bmatrix}
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c
    \end{bmatrix}
    \) \\
\addlinespace
    Another line &
    That is like the one above. &
    \(
    \begin{bmatrix}
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a \\
        a & a & a & a
    \end{bmatrix}
    \begin{bmatrix}
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b \\
        b & b & b & b
    \end{bmatrix}
    =
    \begin{bmatrix}
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c \\
        c & c & c & c
    \end{bmatrix}
    \)
\end{tabularx}

\end{document}

我使用\addlinespacebooktabs更好地区分行。

在此处输入图片描述

相关内容