複数行の回転したセルを含むテーブルを作成するにはどうすればよいですか?

複数行の回転したセルを含むテーブルを作成するにはどうすればよいですか?

自動的に中央揃えされ、回転する複数行のセルを含むテーブルを作成しようとしています。図のようなものですが、セルはコンテンツに合わせて自動的に調整されます。

ここに画像の説明を入力してください

応募してみましたソリューション@AboAmmar と @Seong によって提供されていますが、指定された行数内での垂直方向の中央揃えは保証されません。この答え\multirowパッケージ内のコマンドがmakecell行数の非整数値を受け入れるため、不明瞭です(?)。ここいくつかのコードが与えられていますが、問題は、これが\raisebox特定のセルの内容にのみ適切な固定値(引数内)を使用することです。最も類似した質問答えはありません。

実際、パッケージの関数と関数の\multirowrothead組み合わせとして - という名前を付ける必要がある関数が必要です。私のコード:\multirowthead\rotheadmakecell

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

答え1

b行 2 と 3 の (合計) 高さは列 5 のセルの内容によって制限されるため、画像上の緑色の数量を小さくすることはできません。

{NiceTabular}のでできることは次のとおりです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} 
  • では{NiceTabular}、組み込みコマンド を使用して、セルを垂直方向と水平方向の両方で結合します\Block

  • キーを使用するとhvlines、ブロック内で除外されているすべてのルールを描画します (これがここで期待されるものです)。

  • 組み込みコマンドは、\rotateセルとブロックの内容を回転するために使用されます。

  • キー内のコマンドを使用して、セル、行、列に色を付けることができますcode-before(ただし、 の構文に似た構文を使用することもできますcolortbl)。通常、出力はすべての PDF ビューアですべてのズーム レベルで良好です。

  • ただし、複数のコンパイルが必要になります。

上記コードの出力

関連情報