
我正在嘗試建立一個具有合併列的儲存格,但它沒有產生具有正確寬度的儲存格。當我使用c
orl
或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
定義列類型C
- 刪除
\fontsize{10pt}{12.0pt}\selectfont
並使用\small
或\footnotesize
- 先刪除
\cellcolor[HTML]{FFFFFF}
,預設是白色 - 刪除不必要的
\multicolumn
s - 最好使用
[!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}