여러 행 및 여러 열을 사용한 테이블 색상 지정

여러 행 및 여러 열을 사용한 테이블 색상 지정

multirows및 으로 구성된 테이블에서 배경색을 얻으려고합니다 multicolums. 색상이 없어도 테이블이 잘 작동합니다. 그러나 내가 색칠하고 싶은 것은 다양한 양의 행에 걸쳐 확장됩니다. 4개의 행을 동일한 색상으로 색칠해 보았습니다. 하나의 셀은 4개 행에 걸쳐 있고 다른 하나의 셀은 2개 행에 걸쳐 펼쳐져 있습니다.

하지만 두 번째 색칠을 하면 여러 줄의 텍스트 위에 색상이 적용됩니다. 색상이 없는 테이블

텍스트가 있는 테이블

보시다시피 의 두 번째 줄은 rowcolor'Grade'의 윗부분을 제거하고 cell 1, 세 번째 행의 color는 'Grade'의 아랫부분과 Thickness의 아랫부분을 제거한 것을 알 수 있습니다. 솔루션 아이디어가 있나요?

내 텍스트:

\begin{table}[ht]
\begin{tabular}{|c|c|lll|}
\hline
\rowcolor{blue!20} 
\multirow{4}{*}{Grades}&Yield&\multicolumn{3}{c|}{Impact bending test}\\
\rowcolor{blue!20}
                      &Strength&\multirow{2}{*}{Thickness}&Test& Impact\\
\rowcolor{blue!20}
                             &$\mathbf{R_e[N/mm^2]}$&                                &{\bf temperature}     & {\bf work}\\
\rowcolor{blue!20}
                             &\bf{transv.min.}      &\bf{ transv.}                   &$\mathbf{[\grader]}$  & {\bf [J]} \\\hline
\multirow{ 1}{*}{{\bf DH36}}   &     & {\bf 5.5 – 7.0} & {\bf         -40} & {\bf       24} \\

\hline
\end{tabular}
\end{table}

답변1

사용된 명령의 서문과 의미에 대한 추측을 기반으로 합니다.

여기에 이미지 설명을 입력하세요

\documentclass{article}
\usepackage{siunitx}
\usepackage{makecell,multirow}
\usepackage[table]{xcolor}

\begin{document}
    \begin{table}[htb]
\sisetup{detect-weight=true}
\renewcommand\arraystretch{1.3}
\begin{tabular}{|*{2}{>{\bfseries}c|}
                 *{3}{>{\bfseries}c}|}
    \hline
\rowcolor{blue!20}
                &   &   \multicolumn{3}{c|}{\textbf{Impact bending test}}    \\
\rowcolor{blue!20}
\multirow{-2}*{Grades}  
        &   \multirow{-3}*[-1ex]{\makecell{Yield\\  Strength\\ 
                                            {$\mathbf{R_e[\si{N\per\milli\meter^2}]}$} \\transv. min.}}
                    &   \makecell{Thickness\\  transv.}    
                        &   \makecell{Test\\ temperature\\ \si{\celsius}}
                            &   \makecell{Impact\\ work\\ \si{J} }          \\
    \hline
DH36   &       & 5.5 – 7.0 & -40   & 24    \\
    \hline
\end{tabular}
    \end{table}
\end{document}

편집하다: 매크로 에는 아래쪽 위치, 위쪽 위치, 왼쪽 정렬 셀 내용 및 오른쪽 정렬에 대한 makecell옵션이 있습니다 . 옵션 없이 사용하면 셀 내용이 수직 및 수평 중앙에 배치됩니다.btlr

위의 MWE에서 테이블의 두 번째 행을 다음으로 바꾸십시오.

\multirow{-3}*{Grades}
        &   \multirow{-3}*[3pt]{\makecell{Yield\\  Strength\\
                                            {$\mathbf{R_e[\si{N\per\milli\meter^2}]}$} \\transv. min.}}
                    &   \makecell[b]{Thickness\\  transv.}
                        &   \makecell[b]{Test\\ temperature\\ \si{\celsius}}
                            &   \makecell[b]{Impact\\ work\\ \si{J} }          \\

테이블보다 다음과 같습니다.

여기에 이미지 설명을 입력하세요

답변2

{NiceTabular}of 를 사용하여 해당 테이블을 수행하는 방법은 다음과 같습니다 nicematrix. 어떤 PDF 뷰어를 사용하든 얇은 흰색 선이 표시되지 않습니다.

\documentclass{article}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{table}[htb]
\sisetup{detect-weight=true}
\renewcommand\arraystretch{1.3}
\begin{NiceTabular}{|c|c|ccc|}[cell-space-top-limit=3pt]
\Hline
\RowStyle[nb-rows=2,rowcolor=blue!20]{\bfseries}
\Block{2-1}{Grades} 
   & \Block{2-1}{Yield\\ Strength\\ $\mathbf{R_e[\unit{N\per\milli\meter^2}]}$ \\transv. min.}  
     & \Block{1-3}{Impact bending test}  \\
   &   
     & \Block{}{Thickness\\  transv.}    
       & \Block{}{Test\\ temperature\\ \unit{\celsius}}
          & \Block{}{Impact\\ work\\ \unit{J}}   \\
\Hline
DH36  &  & $5.5$ -- $7.0$ & $-40$ & $24$    \\
\Hline
\end{NiceTabular}
\end{table}

\end{document}

여러 컴파일이 필요합니다( nicematrix내부적으로 PGF/Tikz 노드를 사용하기 때문에).

위 코드의 출력

관련 정보