合併列時表格中的儲存格寬度錯誤

合併列時表格中的儲存格寬度錯誤

我正在嘗試建立一個具有合併列的儲存格,但它沒有產生具有正確寬度的儲存格。當我使用corlr作為對齊參數時,如果單元格中的文字小於單元格寬度,則它可以完美工作,但如果文字超過幾個單詞,它會溢出右邊距。為了解決這個問題,我使用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 文檔類別 -- articlereportbook-- 用作6pt值。

答案2

主要問題已經在@Mico的回答中解決了,我想解決其他問題。表中有很多噪音和不必要的重複命令。在 LaTeX 中,您可以定義自己的捷徑巨集來執行任何經常使用的操作,以下是您可以嘗試的變更清單:

  • \CC{..}例如,為彩色儲存格定義一個新宏
  • 刪除並\centering定義列類型C
  • 刪除\fontsize{10pt}{12.0pt}\selectfont並使用\small\footnotesize
  • 先刪除\cellcolor[HTML]{FFFFFF},預設是白色
  • 刪除不必要的\multicolumns
  • 最好使用[!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}

相關內容