列を結合する際の表のセル幅が間違っている

列を結合する際の表のセル幅が間違っている

結合された列を持つセルを作成しようとしていますが、正しい幅のセルが生成されません。cまたはlr配置パラメータとして使用すると、セル内のテキストがセル幅より小さい場合は完全に機能しますが、テキストが数語を超える場合は右余白がオーバーフローします。 この問題を解決するために、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

5つの使用可能な幅の合計個人列は確かにそうです0.84in*4+0.97in=4.33in

\tabcolsepただし、各セルの左右には( )の空白スペースがあるため、組み合わせ5 つのセルのうち です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不要なものを削除する
  • [!htbp]の代わりに使用し[H]、LaTeXにテーブルの推奨位置を決定させる方が良いでしょう。
  • columntypeの代わりにtabularxautomaticを試すこともできますhsizep

テーブルのクリーンアップされたバージョンは次のとおりです。

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

関連情報