我正在尝试使用以下形式的表格:
\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}
请注意,数字(右侧)列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
宽,数字最终会按您想要的方式堆叠。