Неправильная ширина ячейки в таблице при объединении столбцов

Неправильная ширина ячейки в таблице при объединении столбцов

Я пытаюсь создать ячейку с объединенными столбцами, но она не создает ячейку с правильной шириной. Когда я использую 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}, по умолчанию белый
  • удалить ненужные \multicolumns
  • лучше использовать [!htbp]вместо [H]и позволить LaTeX выбрать рекомендуемое место для вашей таблицы
  • вы также можете попробовать tabularxиспользовать automatic hsizeвместо pcolumntype

Вот очищенная версия вашей таблицы:

\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}

Связанный контент