在内容量不均匀的列之间垂直居中多行

在内容量不均匀的列之间垂直居中多行

这是我在这里的第一个问题。我希望我能解释得足够清楚。

我正在创建一个表格,其列中包含的内容量不均匀,并且我希望包含较少行材料的列与包含较多行材料的列垂直居中。

一个简单的例子(可以使用multirow包轻松解决)看起来像这样:

    A    |    B    
___________________
         | Blah
 Hey sup | Blah    
         | Blah

但是如果我在 A 列中有两行内容,我希望它们的整体形状仍然垂直居中于 B 列,这意味着 A 列的各个行不会与 B 列中的任何对应行对齐,而是会浮动在两者之间的某个位置。

换句话说,如果每行都是 20 个垂直单位高,我希望 A 列中的两行文本(40 个垂直单位)在其上方和下方包含 10 个单位的填充,以便相对于 B 列的三行(60 个单位)更居中定位。

解决方案可以是手动的和粗糙的。它不必自动计算列之间的差异。我正在编写的程序将处理这个问题。但如果有一个真正优雅的答案就更好了。

提前致谢。

**编辑:

这是一个愚蠢的问题。如果较小行中的项目堆叠到顶部,如下所示:

    A    |    B    
___________________
 Hey sup | Blah
 Hey man | Blah    
         | Blah

然后multirow绝对会按应有的方式处理它。我的问题源于 A 列的格式不正确。现在它工作正常:

多行

抱歉,我的第一个问题太愚蠢了!

答案1

您可以尝试嵌套表格,这样内容较少的列就可以作为包含多行的单独小表格输入。每个单独的表格可能包含三行,而 B 列中只有一个单元格。使用 m 类型的列(来自包array)将强制表格单元格垂直居中。

\documentclass[12pt,a4paper]{article}
\usepackage{array,booktabs}
\begin{document}

\begin{tabular}{cm{.6\linewidth}} \toprule
A   &   B  \\ \midrule
\begin{tabular}{@{}c@{}}
First row \\ \midrule
Second row
\end{tabular}
&
Some content for column B which is longer than the content of two rows of column A ... Some content for column B which is longer than the content of two rows of column A ... Some content for column B which is longer than the content of two rows of column A ... \\ \midrule
\begin{tabular}{@{}c@{}}
First row \\ \midrule
Second row
\end{tabular}
&
Some content for column B which is longer than the content of two rows of column A ... Some content for column B which is longer than the content of two rows of column A ... Some content for column B which is longer than the content of two rows of column A ... \\ \bottomrule
\end{tabular}

\end{document}

在此处输入图片描述

相关内容