在 \multirow 中使用 tikzcd

在 \multirow 中使用 tikzcd

之前,我问过如何让为嵌套在 中的环境&工作。我在 的手册中得到了答案---我只需要使用。tikzcdtabulartikz-cdampersand replacement=\&

现在,又出现了另一个问题(在相同的背景下):

代码:

\begin{tabular}{rc}
    First: & $1$\\
    \hline
    Second: & \multirow{2}{*}{
        \begin{tikzcd}[ampersand replacement=\&]
            A\ar[r] \& B\ar[d]\\
            \& C
        \end{tikzcd}
    }\\
    \hline
    Third: & \\
    \hline
    Fourth: & $4$
\end{tabular}

生成

在此处输入图片描述

这显然不是我们想要的。

tikzcd为什么会发生这种情况?的输出对象的垂直高度是否减小了?

如何解决这个问题?


观察:

只有在内部才会表现怪异\multirow。即代码:

\begin{tabular}{rc}
    First: & $1$\\
    \hline
    Second: & \begin{tikzcd}[ampersand replacement=\&]
        A\ar[r] \& B\ar[d]\\
        \& C
    \end{tikzcd}\\
    \hline
    Third: & \\
    \hline
    Fourth: & $4$
\end{tabular}

正如预期的那样,

在此处输入图片描述

但我想要第二列的第二行和第三行合并图表位于合并单元格的中心。


期望结果:

在此处输入图片描述

答案1

像这样?

\documentclass{article}
\usepackage{tikz-cd, multirow}
\usepackage{makecell}

\begin{document}

\begin{tabular}{rc}
    First: & $1$\\
    \hline
    \makecell[cr]{Second:\\Third:} & \makecell{%
        \begin{tikzcd}[ampersand replacement=\&]
            A\ar[r] \& B\ar[d]\\
            \& C
        \end{tikzcd}}\\
      \hline
    Fourth: & $4$
\end{tabular}

\end{document}

在此处输入图片描述

答案2

您获得更精确的对齐没有 multirow

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz-cd}

\begin{document}

\begin{tabular}{rc}
  First: & $1$\\
  \hline
  \begin{tabular}{@{}r@{}} Second: \\ Third: \end{tabular} &
  \begin{tabular}{@{}c@{}}
    \begin{tikzcd}
    A\ar[r] & B\ar[d]\\
            & C
    \end{tikzcd}
    \end{tabular}
  \\
  \hline
  Fourth: & $4$
\end{tabular}

\end{document}

你看出其中的窍门了吗?嵌套tabular

在此处输入图片描述

答案3

使用tabularray包装并在tikzcd图像中使用 & 符号替换\&

\documentclass{article}
\usepackage{tabularray}
\usepackage{tikz-cd}

\begin{document}

    \begin{tblr}{colspec={rc},
                 vspan=even
                 }
First:  &    1              \\  \hline
Second: & \SetCell[r=2]{c}  % <--- tabularray syntax for multi row cell 
            \begin{tikzcd}[ampersand replacement=\&]
            A \rar  \& B \dar   \\
                    \& C
            \end{tikzcd}    \\
Third:  &                   \\  \hline
Fourth: &   4 
    \end{tblr}

\end{document}

在此处输入图片描述

附录: 从您编辑的问题可以看出,您不需要multirow单元格,而是需要单元格中与带有图像的单元格相邻的单元格中的文本,其中包含两行文本。这可以通过使用 轻松实现tabularray

\documentclass{article}
\usepackage{tabularray}
\usepackage{tikz-cd}

\begin{document}
    \begin{tblr}{colspec={Q[r,m]Q[c,m]}}
First:  &    1              \\  \hline
{Second:\\ Third:}
        &   \begin{tikzcd}[ampersand replacement=\&]
            A \rar  \& B \dar   \\
                    \& C
            \end{tikzcd}    \\  \hline
Fourth: &   4
    \end{tblr}
\end{document}

在此处输入图片描述

相关内容