我正在尝试创建一个具有合并列的单元格,但它无法生成具有正确宽度的单元格。当我使用c
或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
五个可用宽度的总和个人列确实是0.84in*4+0.97in=4.33in
。
\tabcolsep
但是,由于每个单元格的左侧和右侧都有空白填充(数量为),因此组合五个细胞中的 是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
定义 columntypeC
- 移除
\fontsize{10pt}{12.0pt}\selectfont
并使用\small
或\footnotesize
- 先移除
\cellcolor[HTML]{FFFFFF}
,默认为白色 - 删除不必要
\multicolumn
的 - 最好使用
[!htbp]
而不是[H]
让 LaTeX 决定表格的推荐位置 - 您也可以尝试
tabularx
使用 automatichsize
而不是p
columntype
这是您的表格的清理版本:
\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}