我怎样才能为 \multirow 内的长文本块实现适当的垂直间距?

我怎样才能为 \multirow 内的长文本块实现适当的垂直间距?

我正在尝试使用以下形式的表格:

\begin{tabular}[]{l D{.}{.}{-1}}
  \multirow{2}{1in}{Here is a ton of text that is not going
  to fit in one single line in this 1 inch column.}         & 20.132  \\
  \vspace{5em}                                              & (9.218) \\
                                                            &         \\
  Next thing                                                & 1.311   \\
                                                            & (0.182)
\end{tabular}

我在这里使用多行来实现使数字与长标签顶部对齐的目标,并且两个数字单元格之间没有线分隔。

本质上它应该是这样的:

Here is a ton of           20.132
text that is not           (9.218)
going to fit in one
single line in this
1 inch column.

Next thing                  1.311
                           (0.182)

上面的代码可以工作,但请注意我必须包含\vspace{5em}。如果没有这个,大量的文本会溢出其分配的 vbox 到下一个内容。问题是目视检查输出并添加 em 并不理想,特别是因为我需要自动生成许多需要这种换行/对齐的表格。我使用的是 dcolumn,所以我不确定我能否对数字列进行很大更改。

因此,最后,我正在寻找有关如何正确为内部文本块提供空间的建议\multirow,而无需手动创建一些 vspace。感谢您提供的任何信息。

答案1

D规范强制将列设置为固定宽度。因此,可以将数字列中的元素包含在它们自己的 中tabular。此外,尽管\multirow{<#>}{<width>}{<stuff>}根据参数设置了其深度,但实际深度(以行为单位)并非通过在宽度为 的列中<#>进行排版来获得,正如您所指出的那样。其深度由 设定。<stuff><width>不是包含\multirow在行中<#>。此限制需要强制/手动间距,这对干净的代码来说不是一个好兆头。而不是使用multirow包裹,嵌套提供了一个合适的解决方案:

\documentclass{article}
\usepackage{dcolumn}% http://ctan.org/pkg/dcolumn

\begin{document}

\begin{tabular}{p{1in} l}
  Here is a ton of text 
  that is not going
  to fit in one single line 
  in this 1 inch column.    & \begin{tabular}[t]{D{.}{.}{-1}}
                                20.132 \\
                                (9.218)
                              \end{tabular} \\ \\
  Next thing. Here is a 
  ton of text that is not
  going to fit in one 
  single line in this
  1 inch column.            & \begin{tabular}[t]{D{.}{.}{-1}}
                                 111.311 \\
                                (0.182)
                              \end{tabular}
\end{tabular}

\end{document}

带有 dcolumn 的嵌套表格

请注意,数字(右侧)列tabular设置为在顶部对齐[t],以与第一列的第一行对齐。

答案2

\documentclass{article}   
\usepackage{dcolumn}   
\def\DTab#1{\multicolumn{1}{@{}c@{}}{\tabular[t]{D{.}{.}{-1}}#1\endtabular}}
\begin{document}

\begin{tabular}{ p{1in} D{.}{.}{-1}}
  Here is a ton of text that is not going
  to fit in one single line in this 1 inch column.          & \DTab{20.132\\(9.218)}\\
                                                            &         \\
  Next thing                                                & 1.311   \\
                                                            & (0.182)
\end{tabular}

\end{document} 

在此处输入图片描述

答案3

我没有使用multirow,但我认为输出是你想要的:

\documentclass{article}
\begin{document}
\begin{tabular}[]{p{4.5cm}p{1cm}}
Here is a ton of text that is not going
to fit in one single line in this 1 inch column.    & 20.132   (9.218) \\\\                                           
Next thing                                          & 1.311   (0.182)
\end{tabular}
\end{document}

告诉p{4.5cm}p{1cm}您第一列应该4.5cm宽,第二列也会1cm宽。通过使第二列仅1cm宽,数字最终会按您想要的方式堆叠。

相关内容