表格中的 h/v 居中

表格中的 h/v 居中

我试图让我的单元格在表格环境中水平和垂直居中。MWE 位于末尾。

我尝试了不同的方向:哪个可以完成它应该做的事情,以及m{4cm}{\centering}m{4cm}}或这样的复杂变化{\centering\arraybackslash}m{4cm}},尽管我必须诚实地说我不知道​​ arraybackslash 参数到底应该改变什么——我只是从另一个 stackexchange 帖子中复制了那个。

所有文本(包括垂直书写的文本)都应水平和垂直居中。表格的主要部分将是带有标题的图片,图片为正方形。如果有人能告诉我如何对齐单元格,我想这对包含图片的单元格也应该有效,对吗?

编辑:更新了代码并截取了结果的屏幕截图。\parbox用作占位符以制作更高的单元格。保持1,5居中,这是真的。但是,其他文本部分似乎有点偏离顶部,可能是因为逗号低于基线(这是正确的词吗?)?有什么方法可以将整体书写降低一两个点?有什么方法可以让单元格稍微高一点?在“foobar foobar”单元格中,书写划伤了顶部和底部的线条。此外,垂直文本偏离中心。我必须使用 minipages 才能使其居中吗?

在此处输入图片描述

\documentclass{scrreprt}
\usepackage{array}
\usepackage{multirow}
\usepackage{rotating}
\begin{document}

\begin{table}
    \centering
    \begin{tabular}{|c|c|c|c|c|c|c|}
    \hline
    \multicolumn{2}{|c|}{} & \multicolumn{5}{c|}{foo}\\
    \cline{3-7}
    \multicolumn{2}{|c|}{}  & 1,0 & 2,0 & 3,0 & 4,0 & 5,0\\
    \hline
    \multirow{5}{*}{\rotatebox{90}{bar}} & 1,0 & & & & & \\
    \cline{2-7}
     & 1,5 & \parbox{2cm}{foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar } & & & & \\
    \cline{2-7}
     & 2,0 & & & & & \\
    \cline{2-7}
     & 2,5 & & & & & \\
    \cline{2-7}
     & 3,0 & & & & & \\
    \hline
    \end{tabular}
\end{table}

\end{document}

答案1

您可以创建新的列类型,例如

\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

然后用作C{<your width>}列定义,<your width>根据需要进行设置。这样,您的列就会垂直和水平居中。

我还建议删除垂直线,避免旋转单元格并使用booktabs

\documentclass{scrreprt}
\usepackage{array}
\usepackage{multirow}
\usepackage{rotating}
\usepackage{booktabs}
\newcolumntype{C}[1]{>{\centering\arraybackslash}m{#1}}

\begin{document}
    \chapter{A chapter}
    Table \ref{tab:yours} is your table, but I suggest to you to redesign your
    table like \ref{tab:mine}.
    \begin{table}
        \centering\setlength\extrarowheight{2pt}
        \caption{Your table\label{tab:yours}}
        \begin{tabular}{|*2{C{.5cm}|}*5{C{2cm}|}}
            \hline
            \multicolumn{2}{|c|}{} & \multicolumn{5}{c|}{foo}\\
            \cline{3-7}
            \multicolumn{2}{|c|}{} & 1,0 & 2,0 & 3,0 & 4,0 & 5,0\\
            \hline
            & 1,0 & & & & & \\
            \cline{2-7}
            \multirow{4}{*}{\rotatebox[origin=c]{90}{bar}} & 1,5 & foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar & & & & \\
            \cline{2-7}
            & 2,0 & & & & & \\
            \cline{2-7}
            & 2,5 & & & & & \\
            \cline{2-7}
            & 3,0 & & & & & \\
            \hline
        \end{tabular}
    \end{table}
    \begin{table}
        \centering\setlength\extrarowheight{2pt}
        \caption{My suggestion\label{tab:mine}}
        \begin{tabular}{C{.7cm}*5{C{2cm}}}
            \toprule
            & \multicolumn{5}{c}{foo}\\
            \cmidrule(l){2-6}
            bar & 1,0 & 2,0 & 3,0 & 4,0 & 5,0\\
            \midrule
            1,0 & & & & & \\
            \midrule
            1,5 & foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar & & & & \\
            \midrule
            2,0 & & & & & \\
            \midrule
            2,5 & & & & & \\
            \midrule
            3,0 & & & & & \\
            \toprule
        \end{tabular}
    \end{table}
\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容