
병합된 열이 있는 셀을 만들려고 하는데 올바른 너비의 셀이 생성되지 않습니다. c
or 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
, report
및 book
-- 가 6pt
값으로 사용됩니다.
답변2
@Mico의 답변에서 주요 문제가 해결되었으며 다른 문제를 해결하고 싶습니다. 테이블에는 소음이 많고 불필요하게 반복되는 명령이 있습니다. LaTeX에서는 자주 사용하는 작업을 수행하기 위해 자신만의 바로가기 매크로를 정의할 수 있습니다. 시도해 볼 수 있는 변경 사항 목록은 다음과 같습니다.
\CC{..}
예를 들어 색상이 지정된 셀에 대한 새 매크로를 정의합니다.- 대신 열 유형을 제거
\centering
하고 정의하십시오.C
- 제거
\fontsize{10pt}{12.0pt}\selectfont
하고 사용\small
하거나\footnotesize
- 먼저 제거하고
\cellcolor[HTML]{FFFFFF}
기본값은 흰색입니다. - 불필요한
\multicolumn
것을 제거하다 [!htbp]
대신[H]
LaTeX가 테이블의 권장 위치를 결정하도록 하는 것이 더 좋습니다.- 열 유형 대신
tabularx
자동을 시도해 볼 수도 있습니다.hsize
p
테이블의 정리된 버전은 다음과 같습니다.
\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}