h/v centrado en tabular

h/v centrado en tabular

Estoy tratando de colocar mis celdas en un entorno tabular centrado horizontal y verticalmente. MWE se encuentra al final.

Probé diferentes orientaciones: que hace lo que se supone que debe hacer, así como m{4cm}variaciones complejas como {\centering}m{4cm}}o {\centering\arraybackslash}m{4cm}}, aunque debo ser honesto al no saber qué se supone que debe cambiar exactamente el parámetro arraybackslash; simplemente lo copié de otra publicación de StackExchange. .

Todos los textos, incluidos los escritos verticalmente, deben estar centrados horizontal y verticalmente. La parte principal de la tabla serán imágenes con un título cada una, siendo las imágenes cuadradas. Si alguien puede decirme cómo alinear las celdas, supongo que debería funcionar también para las celdas, incluidas las imágenes, ¿verdad?

Editar:Actualicé el código y tomé una captura de pantalla del resultado. \parboxse utiliza como marcador de posición para crear una celda superior. El 1,5queda centrado, eso es cierto. Sin embargo, las otras partes del texto parecen estar un poco arriba, tal vez debido a la coma que va debajo de la línea de base (¿es esa la palabra correcta?). ¿Alguna forma de reducir la escritura general uno o dos puntos? ¿Y alguna forma de hacer que las células estén un poquito más altas? en la celda "foobar foobar", la escritura raya las líneas en la parte superior e inferior. Además, el texto verticalizado está descentrado. ¿Tendría que trabajar con minipáginas para centrarlo?

ingrese la descripción de la imagen aquí

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

Respuesta1

Podrías crear un nuevo tipo de columna como

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

y luego usarC{<your width>} como definición de columna, configurándolo <your width>como desee. De esta manera tendrás tus columnas centradas vertical y horizontalmente.

También sugiero eliminar las líneas verticales, evitar las celdas rotadas y usar 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}

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

información relacionada