![对齐(居中)表格中的标题行](https://linux22.com/image/262615/%E5%AF%B9%E9%BD%90%EF%BC%88%E5%B1%85%E4%B8%AD%EF%BC%89%E8%A1%A8%E6%A0%BC%E4%B8%AD%E7%9A%84%E6%A0%87%E9%A2%98%E8%A1%8C.png)
我使用@{\hskip 50pt}
来分隔表格中的列。出现的问题是我在 之后添加了这个额外的空格multicolumn
。这也会移动标题行,使其不再居中。有没有什么简单的方法可以使标题名称重新居中MC
?我想过在它后面添加一些额外的空格来移动它,但也许有更好的方法。但是,我不想使用 X 列或不同的表格环境来实现这一点。我花了 5 天时间才将所有内容添加到表格中,并按照我想要的方式正确对齐和拉伸它们。显然,这只是一个非常简单的例子,并不包含我表格中的所有其他内容,但我认为问题仍然很清楚,我确信它只取决于multicolumn
和额外的空间问题:
\documentclass[10pt,DIV=12,a4paper,numbers=noenddot]{scrreprt}
\usepackage{tabu}
\usepackage{multicol}
\usepackage{multirow}
\begin{document}
\begin{table}
\begin{tabu}{rr@{\hskip 50pt}rr@{\hskip 50pt}r}
\multicolumn{2}{c}{MC} & bla\\
asdasdsad & asdasdada & adasdddddddd \\
asdasdsad & asdasdada & adasdddddddd \\
asdasdsad & asdasdada & adasdddddddd \\
\end{tabu}
\end{table}
\end{document}
答案1
当你做\multicolumn{<number>}{<spec>}{<text>}
替代时<spec>
,整个块的tabular
柱子规格和柱间材料属于前柱子。
例外:第一列之前的材料属于第一列。
因此,如果不是默认值,则必须重新指定列间材质;如果您有规则而不是,则情况会完全一样@{...}
。
所以你必须这样做
\begin{tabu}{rr@{\hspace{50pt}}rr@{\hspace{50pt}}r}
\multicolumn{2}{c@{\hspace{50pt}}}{MC} & bla\\
asdasdsad & asdasdada & adasdddddddd \\
asdasdsad & asdasdada & adasdddddddd \\
asdasdsad & asdasdada & adasdddddddd \\
\end{tabu}
结果就会如你所愿。
注意\hspace{...}
\hskip...
没有办法自动完成,因为列间材料几乎可以是任何东西。或者,如果有办法,那肯定很复杂,因为它必须处理 的许多内部问题tabular
(以及tabu
,正如您使用的那样)。
答案2
这将使您的 MC 标头居中。
\multicolumn{2}{c@{\hskip 50pt}}{MC} & bla\\
如果你的额外空间是统一的,那么你可以定义一个新的列类型,比如说C
,以方便使用:
\newcolumntype{C}{c@{\hskip 50pt}}
% ...
\multicolumn{2}{C}{MC} & bla\\