표/표 형식의 전체 행 색칠하기

표/표 형식의 전체 행 색칠하기

저는 해당 단어 자체를 제외하고 "Trail 1" 및 "Trail 3" 행 전체에 색상을 지정하고 싶습니다(즉, 숫자만 표시되지만 색상은 \midrule에서 다음까지 실행됩니다). 이렇게 하면 사이에 있는 작은 공백도 제거되는데, 제거 방법을 잘 모르겠습니다. 어떻게 해야 합니까?

또한 색상을 나타내기 위해 여기에 범례를 추가할 수 있습니까? Pgfplots가 이 작업을 수행한다는 것을 알고 있지만 tikzpicture와 tabular의 차이로 인해 이를 통합하는 방법을 모르겠습니다(틀렸다면 수정해 주세요. 저는 이 커뮤니티에 처음입니다).

실행 가능한 코드는 다음과 같습니다.

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[sexy]{evan}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\newcommand{\mycc}{\cellcolor{lightgray}}

\begin{document}

\begin{center}
\begin{tabular}{SSSSSSS} \toprule
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
    \text{Trail 1}  & \mycc 1.48  & \mycc 2.76 & \mycc 4.02  & \mycc 5.22 & \mycc 6.43 & \mycc 7.76 \\ \midrule
    \text{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
    \text{Trail 3}  & \mycc 1.53  & \mycc 2.94 & \mycc 4.53  & \mycc 5.96 & \mycc 7.36 & \mycc 8.83 \\ \midrule
    \text{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\ \bottomrule 
\end{tabular}    
\end{center}

\end{document}

무엇을 해야할지 잘 모르겠습니다. 도움을 주시면 대단히 감사하겠습니다! 그리고 왜 데이터 값이 정렬되지 않는지 잘 모르겠는데, 그 부분도 고쳐주시면 좋을 것 같아요!

편집: 코드의 출처에 대한 일부 소스는 다음과 같습니다.

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

테이블링 링크

컬러링 링크

답변1

기본적으로책꽂이행 색상이 서로 잘 어울리지 않습니다. 프리앰블에 다음을 추가하여 이 문제를 해결할 수 있습니다.

\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt

전설의 경우 나는 당신이 원하는 것을 환경 tabular안의 환경 에 던질 것입니다 minipage. 그러면 다음과 같은 것을 얻을 수 있습니다:

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

아마도 자신의 취향에 맞게 이 "범례"를 조정해야 할 것입니다.

이는 OP가 묻지 않는 행의 전체 수직 크기를 채우지 않는 행 색상 문제를 해결합니다.하지만 기둥 사이의 희미한 선은 고쳐지지 않습니다, OP가 실제로 요구하는 내용입니다. 이 희미한 간격은 버그입니다. 이 문제를 해결하는 가장 쉬운 방법은 @{}각 열 지정자 뒤에 추가하는 것입니다. 이는 기본적으로 열 사이에 "아무것도 추가하지 않지만 아무것도 하지 않는 대신 실제로 작은 양의 공간을 제거하고 결과적으로 얇고 희미한 흰색 선을 제거합니다. 열 사이.

새로운 수정 사항을 사용하면 출력은 다음과 같습니다.

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

특히 기둥 사이의 희미한 선이 이제 사라졌습니다.

마지막으로 행 색상 측면에서 이는 MWE에 대한 실제 코드를 단순화한 결과일 수 있지만 \mycc색상을 지정하려는 각 셀에 추가하는 것보다 행 색상을 설정한 다음 다음을 수행하는 것이 더 효율적입니다. \cellcolor첫 번째 셀의 배경색을 변경하는 데 사용합니다 . 실제로 다음과 같은 매크로를 사용하면

\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}

색상이 지정된 행당 하나의 명령만 사용하면 됩니다.

업데이트된 코드는 다음과 같습니다.

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
%\usepackage[sexy]{evan}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[table]{xcolor}
\newcommand{\mycc}{\cellcolor{lightgray}}
\newcommand\colorrow{\rowcolor{lightgray}\cellcolor{white}}

\addtolength{\extrarowheight}{\belowrulesep}
\aboverulesep=0pt
\belowrulesep=0pt

\begin{document}

\begin{center}
  \begin{tabular}{*6{S@{}}S} \toprule
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
    \colorrow
    \text{Trail 1}  &  1.48  &  2.76 &  4.02  &  5.22 &  6.43 &  7.76 \\ \midrule
    \text{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
    \colorrow
    \text{Trail 3}  &  1.53  &  2.94 &  4.53  &  5.96 &  7.36 &  8.83 \\ \midrule
    \text{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\ \bottomrule
\end{tabular}

\smallskip

\hfil
\begin{minipage}{0.3\textwidth}
  \textbf{Legend}\\
  \begin{tabular}{ll}
     \mycc This colour & stuff
  \end{tabular}
\end{minipage}
\end{center}

\end{document}

답변2

에 의해 그려졌든 \hline에 의해 그려졌든 수평선을 사용하여 \midrule,그리고색상이 있는(또는 음영 처리된) 셀 행은 매우 쉽게 역효과를 낼 수 있는 두 가지 시각적 은유의 혼합을 나타냅니다. 하지 마세요. 지시문 을 삭제(또는 주석 처리)하면 \midrule테이블의 가독성이 즉시 향상됩니다. 수평 규칙 주변의 성가신 공백을 제거하는 방법을 걱정하는 데 시간을 낭비할 필요가 없습니다.

별도의 설명: 2*6=12 별도의 지시문을 발행하는 대신 두 행에 대해 \cellcolor2개의 지시문을 발행 하고 이 두 행의 첫 번째 셀에 대해 2개의 지시문을 발행하여 해당 셀에 대한 지시문의 효과를 무시합니다 .\rowcolor{lightgray}\cellcolor{white}\rowcolor

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

\documentclass[11pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[sexy]{evan} 
\usepackage{booktabs,siunitx}
\usepackage[table]{xcolor}

\begin{document}
\begin{center}
\renewcommand\arraystretch{1.25} % for a more open "look"
\begin{tabular}{@{} l *{6}{S[table-format=1.2]} } 
\toprule
    & {2m} & {4m} & {6m} & {8m} & {10m} & {12m} \\ %\midrule
    \rowcolor{lightgray}%
    \cellcolor{white}%
    Trail 1  & 1.48 & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ %\midrule
    Trail 2  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ %\midrule
    \rowcolor{lightgray}%
    \cellcolor{white}%
    Trail 3  & 1.53 & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ %\midrule
    Trail 4  & 1.80 & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ 
\bottomrule 
\end{tabular}    
\end{center}
\end{document}

답변3

TiKz 행렬을 사용한 솔루션 - 범례는 끝 부분의 빈 행에 새겨져 있습니다.

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

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}

\tikzset{ 
    table/.style={
        matrix of nodes,
        nodes={
            rectangle,
            draw=none,
            align=center
        },
        minimum height=1.5em,
        every even row/.style={
            nodes={fill=black!30}
        },
        column 1/.style={
            nodes={text width=4em,font=\bfseries}
        },
    }
}

\begin{tikzpicture}
\matrix (first) [table,text width=4em]
{
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\
|[fill=white]|{Trail 1}  & 1.48  &  2.76 & 4.02  &  5.22 &  6.43 &  7.76 \\ 
{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\
|[fill=white]|{Trail 3}  &  1.53  & 2.94 &  4.53  &  5.96 &  7.36 & 8.83 \\
{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\
&|[fill=white]|{}&&&&&\\
&&|[fill=black!30]|Legend&{defintion}&&&\\
};
\end{tikzpicture}
\end{document}

nicematrix편집 우수한 패키지를 갖춘 솔루션

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{rrrrrrr}[code-before = \rowcolors{1}{white}{blue!15} \columncolor{white}{1}] 
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\
    \text{Trail 1}  & 1.48  &  2.76 & 4.02  &  5.22 &  6.43 &  7.76 \\
    \text{Trail 2}  & 1.53 & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ 
    \text{Trail 3}  &  1.53  & 2.94 &  4.53  &  5.96 &  7.36 & 8.83 \\ 
    \text{Trail 4}  & 1.80  & 3.46 & 4.94  & 6.49 & 8.20  & 9.85 \\ 
\end{NiceTabular}   
\end{document}

그리고 그 결과

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

범례는 여섯 번째 행에 배치할 수 있습니다.

답변4

와 호환되는 색상 행을 원하는 경우 환경 을 booktabs사용할 수 있습니다 .{NiceTabular}nicematrix

\documentclass[11pt]{scrartcl}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{nicematrix}

\begin{document}

\begin{center}
\begin{NiceTabular}{SSSSSSS}[colortbl-like] \toprule
    {$m$} & {$2$m} & {$4$m} & {$6$m} & {$8$m} & {$10$m} & {$12$m} \\ \midrule
    \text{Trail 1}  & \rowcolor{lightgray}1.48  & 2.76 & 4.02 & 5.22 & 6.43 & 7.76 \\ \midrule
    \text{Trail 2}  &                     1.53  & 3.21 & 4.76 & 6.32 & 7.81 & 9.47 \\ \midrule
    \text{Trail 3}  & \rowcolor{lightgray}1.53  & 2.94 & 4.53 & 5.96 & 7.36 & 8.83 \\ \midrule
    \text{Trail 4}  &                           & 3.46 & 4.94 & 6.49 & 8.20 & 9.85 \\ \bottomrule 
\end{NiceTabular}    
\end{center}

\end{document}

그러나 여러 가지 편집이 필요합니다.

위 코드의 출력

관련 정보