h/v центрирование в табличном виде

h/v центрирование в табличном виде

Я пытаюсь выровнять ячейки в табличной среде по горизонтали и вертикали. MWE находится в конце.

Я пробовал разные ориентации: ту, которая делает то, что должна, а также m{4cm}сложные вариации, такие как {\centering}m{4cm}}или {\centering\arraybackslash}m{4cm}}, хотя, честно говоря, я не знаю, что именно должен менять параметр arraybackslash — я просто скопировал его из другого сообщения на stackexchange.

Все тексты, включая вертикально написанные, должны быть горизонтально и вертикально отцентрированы. Основная часть таблицы будет состоять из картинок с подписью к каждой, картинки будут квадратными. Если кто-нибудь может мне подсказать, как выровнять ячейки, я думаю, это должно сработать и для ячеек, содержащих картинки, не так ли?

Редактировать:Обновил код и сделал снимок экрана результата. \parboxиспользуется как заполнитель, чтобы сделать ячейку выше. Остается 1,5по центру, это правда. Однако другие части текста, похоже, немного смещены вверх, может быть, из-за запятой, опущенной ниже базовой линии (это правильное слово для этого?)? Есть ли способ опустить общий текст на пункт или два? И есть ли способ сделать ячейки немного выше? в ячейке "foobar foobar" текст царапает строки сверху и снизу. Кроме того, вертикальный текст смещен по центру. Мне придется работать с мини-страницами, чтобы сделать его центрированным?

введите описание изображения здесь

\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}

введите описание изображения здесь

введите описание изображения здесь

Связанный контент