将案例内的行与表格内下一列中的行对齐

将案例内的行与表格内下一列中的行对齐

我正在尝试创建一个包含如下公式的表格

\documentclass{article}
\usepackage{mathtools}

\begin{document}
\begin{center}
\begin{tabular}{ |c|c| }
\hline
cell1 & cell2  \\
\hline
\text{Some text}
\begin{math}
\begin{aligned}
 \begin{dcases}
  \text{Text1} & \boldsymbol{X1} = \boldsymbol{a1}+\boldsymbol{b1}\boldsymbol{Y1} \\
  \text{Text2} & \boldsymbol{X2} = \boldsymbol{a2}+\boldsymbol{b2}\boldsymbol{Y2} \\
  \text{Text3} & \boldsymbol{X3} = \boldsymbol{a3}+\boldsymbol{b3}\boldsymbol{Y3} \\
  \text{Text4} & \boldsymbol{X4} = \boldsymbol{a4}+\boldsymbol{b4}\boldsymbol{Y4}
 \end{dcases}
\end{aligned}
\end{math}
 & 
$\begin{array}{ll}
\text{Text5} & \boldsymbol{X5} = \boldsymbol{a5}+\boldsymbol{b5}\boldsymbol{Y5} \\
\text{Text4} & \boldsymbol{X6}=
\begin{aligned}
 \begin{dcases}
  \boldsymbol{a61}+\boldsymbol{b61}\boldsymbol{Y61} \\
  \boldsymbol{a62}+\boldsymbol{b62}\boldsymbol{Y62}
 \end{dcases}
\end{aligned} \\
\text{Text6}  & \boldsymbol{X7} = \boldsymbol{a7}+\boldsymbol{b7}\boldsymbol{Y7} \\
\text{Text7}  & \boldsymbol{X8} = 
\begin{aligned}
 \begin{dcases}
  \boldsymbol{a81}+\boldsymbol{b81}\boldsymbol{Y81}  \\
  \boldsymbol{a82}+\boldsymbol{b82}\boldsymbol{Y82} 
 \end{dcases}
\end{aligned}
\end{array}$ \\
\hline 
\end{tabular}
\end{center}
\end{document}

这是输出 输出

显然,这个表格看起来很丑。我需要对齐括号内的行,以便每一行都与下一列中的另一行相对应;text1 与 text5 等等: 期望输出

我是 Latex 的新手,有人能帮我对齐这些文本以美化一下表格吗?也许有更好的包可以用于自动化这个操作?谢谢!

答案1

这是一个{NiceTabular}使用 的解决方案nicematrix

\documentclass{article}
\usepackage{mathtools}
\usepackage{nicematrix}

\begin{document}

\begin{center}
\begin{NiceTabular}{|ccc|cl|}[cell-space-limits=6pt]
\Hline
\Block{1-3}{cell1} & & & \Block{1-2}{cell2}  \\
\Hline
\RowStyle[cell-space-top-limit=5mm]{}
\Block{4-1}{Some text}
& Text1 & $\boldsymbol{X1} = \boldsymbol{a1}+\boldsymbol{b1}\boldsymbol{Y1}$ 
& Text5 & $\boldsymbol{X5} = \boldsymbol{a5}+\boldsymbol{b5}\boldsymbol{Y5}$ \\
& Text2 & $\boldsymbol{X2} = \boldsymbol{a2}+\boldsymbol{b2}\boldsymbol{Y2}$ 
& Text4 & $\boldsymbol{X6}=
           \begin{aligned}
            \begin{dcases}
             \boldsymbol{a61}+\boldsymbol{b61}\boldsymbol{Y61} \\
             \boldsymbol{a62}+\boldsymbol{b62}\boldsymbol{Y62}
            \end{dcases}
           \end{aligned}$ \\
& Text3 & $\boldsymbol{X3} = \boldsymbol{a3}+\boldsymbol{b3}\boldsymbol{Y3}$ 
& Text6 & $\boldsymbol{X7} = \boldsymbol{a7}+\boldsymbol{b7}\boldsymbol{Y7}$ \\
\RowStyle[cell-space-bottom-limit=5mm]{}
& Text4 & $\boldsymbol{X4} = \boldsymbol{a4}+\boldsymbol{b4}\boldsymbol{Y4}$ 
& Text7 & $\boldsymbol{X8} = 
           \begin{aligned}
            \begin{dcases}
             \boldsymbol{a81}+\boldsymbol{b81}\boldsymbol{Y81}  \\
             \boldsymbol{a82}+\boldsymbol{b82}\boldsymbol{Y82} 
            \end{dcases}
           \end{aligned}$ \\
\Hline
\CodeAfter
  \SubMatrix{\lbrace}{2-2}{5-2}{.}[extra-height = -5mm]
\end{NiceTabular}
\end{center}

\end{document}

垂直空间的调整(正如 OP 在评论中所要求的)有点棘手:命令\RowStyle[cell-space-top-limit=5mm]{}和创建垂直空间以及命令的\RowStyle[cell-space-bottom-limit=5mm]{}键调整括号的大小。[extra-height = -5mm]\SubMatrix

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

答案2

首先,如果您想让事物保持一致,您可能需要将所有内容放在一起,这样,制作一个大表,其中每行包含两组表达式。

大花括号有点棘手。我想有一个比我更好的解决方案,例如使用 eg nicematrix,我认为有人可能会提出那个解决方案,但目前下面的方法也有效。

\raisebox将包含“一些文本”和括号的框的垂直尺寸减小到零。这样,当其内容降低到实现中间对齐的程度时,不会有任何内容被“推”下。如果您更改内容,则需要计算出新的数字。

\xmathstrut是一个方便的宏,可以增加额外的垂直空间。如果没有它,最后一个规则dcases就会太靠近底部规则

在此处输入图片描述

\documentclass{article}
\usepackage{array}
\usepackage{booktabs}
\usepackage{mathtools}

\begin{document}
\begin{table}[tbh]
  \centering
  \renewcommand*{\arraystretch}{1.5}
  \begin{tabular}{r@{\;}c@{} r@{\;}>{\(}l<{\)} @{\qquad} r@{\;}>{\(}l<{\)}}
    \toprule
    & \multicolumn{3}{c}{cell1} & \multicolumn{2}{c}{cell2} \\
    \midrule
    \raisebox{-2.9\normalbaselineskip}[0pt][0pt]{Some text}
                              & \raisebox{-2.9\normalbaselineskip}[0pt][0pt]{
                               \(\left\{
                               \rule[-3.75\normalbaselineskip]{0pt}{7.5\normalbaselineskip}
                               \right.\)}
    & Text1
    & \boldsymbol{X1} = \boldsymbol{a1}+\boldsymbol{b1}\boldsymbol{Y1}
    & Text5
    & \boldsymbol{X5} = \boldsymbol{a5}+\boldsymbol{b5}\boldsymbol{Y5} \\
    &
    & Text2
    & \boldsymbol{X2} = \boldsymbol{a2}+\boldsymbol{b2}\boldsymbol{Y2}
    & Text4 & \boldsymbol{X6} = \begin{dcases}
                                  \boldsymbol{a61}+\boldsymbol{b61}\boldsymbol{Y61} \\
                                  \boldsymbol{a62}+\boldsymbol{b62}\boldsymbol{Y62}
                                \end{dcases} \\
    &
    & Text3 & \boldsymbol{X3} = \boldsymbol{a3}+\boldsymbol{b3}\boldsymbol{Y3}
    & Text6 & \boldsymbol{X7} = \boldsymbol{a7}+\boldsymbol{b7}\boldsymbol{Y7} \\
    &
    & Text4 & \boldsymbol{X4} = \boldsymbol{a4}+\boldsymbol{b4}\boldsymbol{Y4}
    & Text7 & \boldsymbol{X8} = \begin{dcases}
                                  \boldsymbol{a81}+\boldsymbol{b81}\boldsymbol{Y81}  \\
                                  \boldsymbol{a82}+\boldsymbol{b82}\boldsymbol{Y82} 
                                \end{dcases}\xmathstrut[1.25]{0} \\
    \bottomrule
  \end{tabular}
  \caption{Table}\label{tab:table}
\end{table}
\end{document}

相关内容