테이블과 \h라인이 너무 짧거나 넓습니다.

테이블과 \h라인이 너무 짧거나 넓습니다.

여기 내가 하려는 일의 MWE가 있습니다.

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage{color,colortbl}
\begin{document}
\begin{table}[htb]
\centering
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
\bottomrule
\end{tabularx}
\begin{tabularx}{\textwidth}{l r r r r r r r r r r r r r r}
\toprule
A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 & A13 & A14 & A15 \\
\midrule
\rowcolor{blue} 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\[0pt]
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}

첫 번째 테이블은 너무 길고 \toprule이상해 \bottomrule보입니다. 이에 대해 몇 가지 질문이 있습니다.

크기를 tabularx콘텐츠 너비로 설정하려면 어떻게 해야 합니까?

마지막 열을 오른쪽으로 정렬하려면 어떻게 해야 합니까(모든 열이 테이블 위에 걸쳐있도록)?

\rowcolor전체 테이블에 걸쳐 표시되도록 어떻게 설정할 수 있나요 ?

예제의 두 번째 테이블은 너무 넓습니다. 더 좋아 보이게 만드는 비법을 알고 있나요?

답변1

tabularx첫 번째 테이블에는 테이블 전체를 만들려고 textwidth하지만 너비를 조정할 수 있는 열이 없기 때문에 긴 규칙이 있습니다 . 두 번째 테이블과 동일하지만 이 경우 테이블 내용이 textwidth. X자동 너비 조정을 허용하려면 -column 지정자를 사용해야 합니다 . 교체해 보세요

\begin{tabularx}{\textwidth}{l r r r r r r r r r r r}

~와 함께

\begin{tabularx}{\textwidth}{l *{11}X}

-column 은 X왼쪽 정렬되고 너비가 같습니다. 마지막 열을 오른쪽 정렬하려면 -column을 사용 하거나 다음과 같이 r새 열 유형을 정의하면 됩니다.R다음,

\newcolumntype{R}{>{\raggedleft\arraybackslash}X}

그런 다음 \begin{tabularx}{\textwidth}{l *{10}X r}또는 를 사용하여 \begin{tabularx}{\textwidth}{l *{10}X R}마지막 열을 오른쪽 정렬로 만듭니다.

rowcolors동일한 색상의 모든 행을 허용하려면 패키지 의 명령을 사용할 수 있습니다 xcolor. 이 rowcolors명령을 사용하면 홀수 행에 대한 첫 번째 색상 지정자를 사용하여 홀수 행과 짝수 행에 대해 교대로 색상을 지정할 수 있습니다. rowcolor특정 행의 색상을 변경하는 데 계속 사용할 수 있습니다 .

열 유형 및 색상이 수정된 예입니다.

\documentclass[a4paper]{article}
\usepackage{tabularx,booktabs}
\usepackage[table]{xcolor}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htb]
    \centering
    \rowcolors{1}{gray}{gray}
    \begin{tabularx}{\textwidth}{L *{10}C R}
    \toprule
        A1 & A2 & A3 & A4 & A5 & A6 & A7 & A8 & A9 & A10 & A11 & A12 \\
    \midrule
        1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\[0pt]
        1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\
    \bottomrule
    \end{tabularx}
\end{table}
\end{document}

모든 X-column의 너비는 동일합니다. 에서는 너비를 조정하는 것이 까다로울 수 있습니다 tabularx. 대신 사용해보십시오tabulary또는tabu패키지.

관련 정보