之前,我问过如何让为嵌套在 中的环境&
工作。我在 的手册中得到了答案---我只需要使用。tikzcd
tabular
tikz-cd
ampersand 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}