열을 병합하는 동안 테이블의 셀 너비가 잘못되었습니다.

열을 병합하는 동안 테이블의 셀 너비가 잘못되었습니다.

병합된 열이 있는 셀을 만들려고 하는데 올바른 너비의 셀이 생성되지 않습니다. cor l또는 정렬 매개변수로 사용하면 r셀의 텍스트가 셀 너비보다 작으면 완벽하게 작동하지만 텍스트가 몇 단어보다 많으면 오른쪽 여백이 오버플로됩니다. 이 문제를 해결하기 위해 p{with}정렬 매개변수로 사용하고 있지만 어떤 이유로 셀 너비가 더 작은 셀을 생성하고 있습니다.

아래 예에서는 0.84*4+0.97와 일치 4.33하지만 예상한 결과가 생성되지 않습니다.

\begin{table}[H]
\begin{tabular}{p{0.97in}p{0.84in}p{0.84in}p{0.84in}p{0.84in}}
\multicolumn{1}{p{0.97in}}{\cellcolor[HTML]{FFFFFF}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-1}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-2}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-3}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-4}} \\

\multicolumn{1}{p{0.97in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont row-1}} & 
\multicolumn{1}{p{0.84in}}{\Centering YES} & 
\multicolumn{1}{p{0.84in}}{\Centering NO} & 
\multicolumn{1}{p{0.84in}}{\Centering YES} & 
\multicolumn{1}{p{0.84in}}{\Centering YES} \\

\multicolumn{5}{p{4.33in}}{\Centering \cellcolor[HTML]{CCCCCC}{\textbf{ Some random long text, Some random long text, Some random long text,}}} \\
\end{tabular}
\end{table}

산출

답변1

5개의 사용 가능한 너비의 합개인열은 실제로 입니다 0.84in*4+0.97in=4.33in.

\tabcolsep그러나 각 셀의 왼쪽과 오른쪽에는 공백 패딩( )이 있으므로 사용 가능한 너비는콤비네이션5개 셀 중 은 입니다 4.33in+8\tabcolsep.

이 사실을 활용하려면 다음을 변경하세요.

\multicolumn{5}{p{4.33in}}{...}

에게

\multicolumn{5}{p{\dimexpr4.33in+8\tabcolsep\relax}}{...}

값은 \tabcolsep일반적으로 문서 클래스에 의해 설정됩니다. "표준" LaTeX 문서 클래스 -- article, reportbook-- 가 6pt값으로 사용됩니다.

답변2

@Mico의 답변에서 주요 문제가 해결되었으며 다른 문제를 해결하고 싶습니다. 테이블에는 소음이 많고 불필요하게 반복되는 명령이 있습니다. LaTeX에서는 자주 사용하는 작업을 수행하기 위해 자신만의 바로가기 매크로를 정의할 수 있습니다. 시도해 볼 수 있는 변경 사항 목록은 다음과 같습니다.

  • \CC{..}예를 들어 색상이 지정된 셀에 대한 새 매크로를 정의합니다.
  • 대신 열 유형을 제거 \centering하고 정의하십시오.C
  • 제거 \fontsize{10pt}{12.0pt}\selectfont하고 사용 \small하거나\footnotesize
  • 먼저 제거하고 \cellcolor[HTML]{FFFFFF}기본값은 흰색입니다.
  • 불필요한 \multicolumn것을 제거하다
  • [!htbp]대신 [H]LaTeX가 테이블의 권장 위치를 ​​결정하도록 하는 것이 더 좋습니다.
  • 열 유형 대신 tabularx자동을 시도해 볼 수도 있습니다.hsizep

테이블의 정리된 버전은 다음과 같습니다.

\documentclass[12pt,a4paper]{article}
%\usepackage{colortbl,xcolor} % OR
\usepackage[table]{xcolor}    % see Mico's comment below
\begin{document}

\newcommand{\CC}[1]{\cellcolor[HTML]{CCCCCC}{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{table}
\begin{tabular}{C{0.97in}C{0.84in}C{0.84in}C{0.84in}C{0.84in}}
                  & \CC{\small col-head-1} & \CC{\small col-head-2} & \CC{\small col-head-3} & \CC{\small col-head-4} \\
\CC{\small row-1} & YES                    & NO                     & YES                    & YES                    \\
\multicolumn{5}{C{\dimexpr4.33in+8\tabcolsep\relax}}{\CC{\textbf{Some random long text, Some random long text, Some random long text,}}} 
\end{tabular}
\end{table}

\end{document}

관련 정보