这是我在这里的第一个问题。我希望我能解释得足够清楚。
我正在创建一个表格,其列中包含的内容量不均匀,并且我希望包含较少行材料的列与包含较多行材料的列垂直居中。
一个简单的例子(可以使用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}