¿Cómo hacer una tabla con celdas rotadas de varias filas?

¿Cómo hacer una tabla con celdas rotadas de varias filas?

Estoy intentando hacer la tabla con celdas de varias filas giradas y centradas automáticamente. Algo como en la imagen, pero con las celdas ajustadas automáticamente a su contenido:

ingrese la descripción de la imagen aquí

Intenté aplicarsolucionesproporcionado por @AboAmmar y @Seong, pero estos no garantizan el centrado vertical dentro del número especificado de filas.esta respuestaNo está claro, porque \multirowel comando del makecellpaquete acepta un valor no entero del número de filas (?).AquíSe le proporciona algo de código, pero el problema es que esto involucra un valor fijo (en el \raiseboxargumento) que es adecuado solo para el contenido de una celda específica.La pregunta más parecidaqueda sin respuesta.

De hecho, necesito alguna función que debería nombrarse \multirowrothead, como una combinación de \multirowtheadlas \rotheadfunciones del makecellpaquete. Mi código:

\documentclass[table]{standalone}
\usepackage{siunitx}
\usepackage{makecell}
\usepackage{xcolor}
\usepackage{multirow}
\usepackage{hhline}
\renewcommand{\theadfont}{\normalsize\bfseries}
\renewcommand{\arraystretch}{1.3}

\begin{document}
    \begin{tabular}{
        |l|
        S[table-format=2.1]|
        S[table-format=1.2]|
        S[table-format=2.1]|
        S[table-format=1.2]|
        S[table-format=2.1]|
        S[table-format=1.2]|
    }
        \hline
        % https://tex.stackexchange.com/questions/246889/how-to-color-column-heads-determined-width-makecell
        \rowcolor{gray}
        \multicolumn{3}{|c|}{\colorbox{gray}{\thead{First title in heading}}} &
        \multicolumn{2}{c|}{\colorbox{gray}{\thead{Second title\\in heading}}} & &\\
        \hhline{>{\arrayrulecolor{black}}|-----|>{\arrayrulecolor{gray}}-%
            >{\arrayrulecolor{black}}|>{\arrayrulecolor{gray}}->{\arrayrulecolor{black}}|%
        }
        \rowcolor{gray}
        & & & & \colorbox{gray}{\thead{data\\description}} &
        {\multirowthead{-2}{Data\\description}} &\\
        \hhline{%
            >{\arrayrulecolor{black}}|>{\arrayrulecolor{gray}}-%
            >{\arrayrulecolor{black}}|>{\arrayrulecolor{gray}}-%
            >{\arrayrulecolor{black}}|>{\arrayrulecolor{gray}}-%
            >{\arrayrulecolor{black}}|>{\arrayrulecolor{gray}}-%
            >{\arrayrulecolor{black}}|-|-|%
            >{\arrayrulecolor{gray}}->{\arrayrulecolor{black}}|%
        }
        \rowcolor{gray}
        \colorbox{gray}{\multirowthead{-2}{side-heading\\description}} &
        \colorbox{gray}{\multirowthead{-2}{data\\description}} &
        \colorbox{gray}{\multirowthead{-2}{data\\description}} &
        \colorbox{gray}{\multirowthead{-2}{data\\description}} &
        \colorbox{gray}{\thead{A}} & \colorbox{gray}{\thead{B}} &
        \colorbox{gray}{\multirowthead{-3}{Data description}}\\
        \hline
        Description 1 & 63.5 & 4.87 & 63.5 & 4.87 & 63.5 & 4.87\\
        \hline
        Description 2 & 88.4 & 5.13 & 88.4 & 5.13 & 88.4 & 5.13\\
        \hline
    \end{tabular}
\end{document}

Respuesta1

No puede tener la cantidad ben verde en su imagen más pequeña porque la altura (total) de las filas 2 y 3 está limitada por el contenido de las celdas de la columna 5.

Esto es lo que puedes hacer {NiceTabular}con nicematrix.

\documentclass{article}
\usepackage{siunitx}
\renewcommand{\arraystretch}{1.3}

\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}[ hvlines , code-before = \rowcolor{gray!30}{1-3} ]   
    {
        c
        S[table-format=2.1]
        S[table-format=1.2]
        S[table-format=2.1]
        S[table-format=1.2]
        S[table-format=2.1]
        S[table-format=1.2]
    }%
{\Block{1-3}{First title in heading}} & & & 
  \Block{1-2}{Second title\\in heading} & &
{\Block{2-1}<\rotate>{Data\\description}} &  
{\Block{3-1}<\rotate>{Data description}} \\
  {\Block{2-1}<\rotate>{side-heading\\description}}
& {\Block{2-1}<\rotate>{data\\description}}
& {\Block{2-1}<\rotate>{data\\description}}
& {\Block{2-1}<\rotate>{data\\description}}
& \Block{}<\rotate>{data\\description\hspace*{0.5em}} \\
& & & & {A} & {B} \\
Description 1 & 63.5 & 4.87 & 63.5 & 4.87 & 63.5 & 4.87\\
Description 2 & 88.4 & 5.13 & 88.4 & 5.13 & 88.4 & 5.13\\
\end{NiceTabular}
\end{document} 
  • En {NiceTabular}, combinas celdas tanto vertical como horizontalmente con el comando incorporado \Block.

  • Con la tecla hvlinesdibujas todas las reglas excepto en los bloques (que es lo que se espera aquí).

  • El comando incorporado \rotatese utiliza para rotar el contenido de celdas y bloques.

  • Puede colorear celdas, filas y columnas con comandos en la clave code-before(sin embargo, también es posible usar una sintaxis similar a la sintaxis de colortbl). Por lo general, el resultado es bueno en todos los visores de PDF en todos los niveles de zoom.

  • Sin embargo, necesitas varias compilaciones.

Salida del código anterior

información relacionada