在下表中,我在第一个单元格中包含了文本,在第二个单元格中包含了 tikz 图像(一个正方形)。虽然我已将第一个单元格配置为垂直居中对齐,但实际上并非如此。如果我没有在第二个单元格中包含 tikz 图片,或者我只有文本,那么第一个单元格将完全居中对齐。请注意,tikz 图像要小得多,可以舒适地放入更大的单元格中。还请注意,第二个单元格的内容都没有正确垂直对齐。在 tabularray 表中包含 tikz 图片或仅包含图像是否存在问题?是否存在不兼容性,或者是否存在设置或命令,最好但不一定,在 tabularray 包内修复它?我试过了\raisebox命令但有时有效,有时无效。
MWE: 带有 tikz 图片
\documentclass[12pt]{article}
\usepackage{calc}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage{tabularray}
\usepackage{tikz}
\begin{document}
\begin{tblr}{colspec={Q[5cm,c]X[c]},rows={4cm,m},vlines,hlines}
This is a $2\times2$ square & \tikz\draw (0,0) rectangle (2,2); \\
\end{tblr}
\end{document}
输出1:
MWE:没有 tikz 图片
\documentclass[12pt]{article}
\usepackage{calc}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage{tabularray}
\usepackage{tikz}
\begin{document}
\begin{tblr}{colspec={Q[5cm,c]X[c]},rows={4cm,m},vlines,hlines}
This is a $2\times2$ square & just text in place of tikz square \\
\end{tblr}
\end{document}
输出2:
答案1
每当第二列中的某一行具有不寻常的高度时就会发生这种情况,并且tikzpicture
通常符合条件,请参见下面的第一个例子。
您可以将基线移至图片中心(第二个示例),或者稍微少移一点,使用https://tex.stackexchange.com/a/618057/4427(第三个例子)。
\documentclass{article}
\usepackage{tabularray}
\usepackage{tikz}
\AtBeginDocument{\sbox0{$x$}}% to be sure the math fonts are computed
\tikzset{baseshift/.style={yshift=-\the\dimexpr\fontdimen22\textfont2}}
\begin{document}
\begin{center}
\begin{tblr}{colspec={Q[5cm,c]X[c]},rows={4cm,m},vlines,hlines}
This is a $2\times2$ square &
\rule{1pt}{50pt}just text in place of tikz square: see?
\end{tblr}
\end{center}
\begin{center}
\begin{tblr}{colspec={Q[5cm,c]X[c]},rows={4cm,m},vlines,hlines}
This is a $2\times2$ square &
\begin{tikzpicture}[baseline=(current bounding box.center)]
\draw (0,0) rectangle (2,2);
\end{tikzpicture}
\end{tblr}
\end{center}
\begin{center}
\begin{tblr}{colspec={Q[5cm,c]X[c]},rows={4cm,m},vlines,hlines}
This is a $2\times2$ square &
\begin{tikzpicture}[baseline={([baseshift]current bounding box.center)}]
\draw (0,0) rectangle (2,2);
\end{tikzpicture}
\end{tblr}
\end{center}
\end{document}