
Я пытаюсь создать ячейку с объединенными столбцами, но она не создает ячейку с правильной шириной. Когда я использую 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
s - лучше использовать
[!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}