使用 tabular 和 makecell 简单地垂直对齐 minipage 和 tikz 图片

使用 tabular 和 makecell 简单地垂直对齐 minipage 和 tikz 图片

为什么 minipage 的 top 参数不会影响 minipage 的 tikz 内容,而它会影响简单文本?这是我的代码:

\documentclass{article}
\usepackage{makecell}
\usepackage{tikz}

\begin{document}


\begin{tabular}{c|c}
\hline
\makecell[t]{
\begin{minipage}{.4\linewidth}
\begin{tikzpicture}
\begin{scope}
\draw [thin,black,step=.5] (-.5,-.5) grid (.5,.5);
\end{scope}
\end{tikzpicture}
\end{minipage}}
&
\makecell[t]{
\begin{minipage}{.4\linewidth}
\begin{tikzpicture}
\begin{scope}
\draw [thin,black, step=.5] (-1,-1) grid (1,1);
\end{scope}
\end{tikzpicture}
\end{minipage}} \\
\hline
\end{tabular}

\bigskip
\bigskip

\begin{tabular}{c|c}
\hline
\makecell[t]{
Bla}
&
\makecell[t]{Bla bla \\ Bla bla} \\
\hline
\end{tabular}


\end{document}

输出如下:

代码输出

在这个框架内,什么是简单的解决方案,那么使用 tabular 和 makecell 呢?(当然,如果不可能的话)谢谢!

答案1

目前尚不清楚您想要获得什么......但是,在第一个表中,您嵌套了tikzpicture哪个默认基线位于图像的底部和minipages,哪个默认基线位于其高度的中间,然后将它们封装到makecel应该与它们的顶部对齐的 s 中。

在第二个表中,只有makecels 与它们的顶部对齐。

为了在第一个表和第二个表中获得相同的结果,您需要baseline为表行中的所有元素定义相同的位置:

\documentclass{article}
\usepackage{makecell}
\usepackage{tikz}

\begin{document}
\begin{tabular}{c|c}
\hline
\makecell[t]{
\begin{minipage}[t]{.4\linewidth}
\begin{tikzpicture}[baseline=(current bounding box.north)]
\draw [thin,black,step=.5] (-.5,-.5) grid (.5,.5);
\end{tikzpicture}
\end{minipage}
}
&
\makecell[t]{
\begin{minipage}[t]{.4\linewidth}
\begin{tikzpicture}[baseline=(current bounding box.north)]
\draw [thin,black, step=.5] (-1,-1) grid (1,1);
\end{tikzpicture}
\end{minipage}
}
\\
\hline
\end{tabular}

\bigskip
\bigskip

\begin{tabular}{c|c}
\hline
\makecell[t]{
Bla
}
&
\makecell[t]{
Bla bla \\ Bla bla
} \\
\hline
\end{tabular}
\end{document}

在此处输入图片描述

\makecell如果您在第一个表中删除表格单元格,则会获得与单元格内容垂直位置相同的结果\minipage

\documentclass{article}
\usepackage{makecell}
\usepackage{tikz}

\begin{document}
\begin{tabular}{c|c}
\hline
\begin{tikzpicture}[baseline=(current bounding box.north)]
\draw [thin,black,step=.5] (-.5,-.5) grid (.5,.5);
\end{tikzpicture}
&
 \begin{tikzpicture}[baseline=(current bounding box.north)]
\draw [thin,black, step=.5] (-1,-1) grid (1,1);
\end{tikzpicture}
\\
\hline
\end{tabular}

\bigskip
\bigskip

\begin{tabular}{c|c}
\hline
\makecell[t]{
Bla
}
&
\makecell[t]{
Bla bla \\ Bla bla
} \\
\hline
\end{tabular}
\end{document}

在此处输入图片描述

相关内容