ラテックスで複数列の表を描く

ラテックスで複数列の表を描く

ieeetran ラテックスで複数列のテーブルを描画する際に問題があります。

私が描きたいのはこれです: ここに画像の説明を入力してください

しかし、私はそれを管理することができませんでした。OBR 行と AR 行を追加する際に問題が発生しています。いくつかのコードを試しましたが、どれも機能しませんでした。最後に試したのは次のコードです。

\begin{table}[!h]
\centering

    \caption{caption}     
    \label{tab:table}

    \begin{small}
    \begin{tabular}{|l|l|l|l|}
    \hline
    & \multicolumn{6} {c|} {\bfseries Dataset} & {\bfseries  A} &{\bfseries B}  & {\bfseries C}\\
    \cline{2-7}
    {\bfseries } & {\bfseries OBR} &{\bfseries AR}  & {\bfseries OBR} &{\bfseries AR} & {\bfseries OBR} &{\bfseries AR}\\
    \hline
    D1        & 2.1\%   &   2.1\%   2.1\%  & 2.1\%  &   2.1\%   2.1\%   \\
    \hline
    D2         & 11.6\% &11.6\% & 11.6\%  & 2.1\%   &   2.1\%   2.1\%\\
    \hline
    D3          & 5.5\%     &   5.5\%   & 5.5\%   & 2.1\%   &   2.1\%   2.1\%  \\
    \hline
    \end{tabular}
    \end{small} 
\end{table}

この表を描くのに協力していただける方はいらっしゃいますか? 大変ありがたく思います。

答え1

いくつかの最初のコメント:

  • あなたが使用しているのはmultirowパッケージを使用して、複数の列を印刷しようとします (言及されていませんが、自然な選択のようです)。

  • 私は、siunitx表内の小数点の位置を揃えるパッケージです。

  • booktabs\topruleパッケージのドキュメントには、LaTeX で見栄えの良い表を作成するための優れたアドバイスが記載されています。以下ではこれを使用しましたが、 、\midrule\bottomruleを に置き換えることで依存関係を削除できます\hline

現在の例がコンパイルされない理由は次のとおりです。

  • にはtabular列が足りません。オプション を渡しましたが{|l|l|l|l|}、これは各列の間に縦線がある左揃えの 4 つの列です。元のテーブルは最も幅が広い場合、7 つの列があり、それらすべてを考慮する必要があります。したがって、これを のように変更する必要があります{|l|l|l|l|l|l|l|}

    を使用する場合はsiunitx、 を使用します{lSSSSSS}。 は、データの小数点の位置を揃えるSオプションですsiunitx。このパッケージを使用しない/使用できない場合は、自由に元に戻してください。

  • multicolumn{6} {c|}データセット見出しを6列に入力すると、さらに3列が残りますBそしてつまり、この行には全体で 9 つの列があり、これは必要以上に多いことになります。

    代わりに、次のようなものが望ましいです:

    \multirow{2}{*}{Dataset} &
      \multicolumn{2}{c}{A} &
      \multicolumn{2}{c}{B} &
      \multicolumn{2}{c|}{C} \\
    

    c|最後に垂直線が得られるように、最後の列を作成する必要があります。

  • 2 行目では、最初のセル (前の行の **Dataset* によって入力されます) をスキップし、残りの部分を通常どおり入力します。

    & O.B.R & A.R & O.B.R & A.R & O.B.R & A.R \\
    

    を使用する場合はsiunitx、ピリオドが小数点として読み取られないように、これらを中括弧で囲む必要があります。そうしないと、これらの数字を揃えることができないため、エラーが発生します。

    & {O.B.R} & {A.R} & {O.B.R} & {A.R} & {O.B.R} & {A.R} \\
    

これらの提案を念頭に置いてコードを変更すると、次のようになります。

\documentclass{article}

\usepackage{multirow}

\begin{document}

\begin{table}
  \begin{tabular}{|l|l|l|l|l|l|l|}
    \hline
    \multirow{2}{*}{Dataset} &
      \multicolumn{2}{c}{A} &
      \multicolumn{2}{c}{B} &
      \multicolumn{2}{c|}{C} \\
    & O.B.R & A.R & O.B.R & A.R & O.B.R & A.R \\
    \hline
    D1 & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% \\
    \hline
    D2 & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% \\
    \hline
    D3 & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% \\
    \hline
  \end{tabular}
\end{table}

\end{document}

結果は次のようになります:

ここに画像の説明を入力してください

siunitx以下は、およびを含む例ですbooktabs(読みやすくするために、ヘッダーに % 記号も入れています)。

\documentclass{article}

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{siunitx}

\begin{document}

\begin{table}
  \begin{tabular}{lSSSSSS}
    \toprule
    \multirow{2}{*}{Dataset} &
      \multicolumn{2}{c}{A (\%)} &
      \multicolumn{2}{c}{B (\%)} &
      \multicolumn{2}{c}{C (\%)} \\
      & {O.B.R} & {A.R} & {O.B.R} & {A.R} & {O.B.R} & {A.R} \\
      \midrule
    D1 & 2.1 & 2.1 & 2.1 & 2.1 & 2.1 & 2.1 \\
    D2 & 11.6 & 11.6 & 11.6 & 11.6 & 11.6 & 11.6 \\
    D3 & 5.5 & 5.5 & 5.5 & 5.5 & 5.5 & 5.5 \\
    \bottomrule
  \end{tabular}
\end{table}

\end{document}

これは次のようにコンパイルされます

ここに画像の説明を入力してください

答え2

 \begin{tabular}{|l|l|l|l|l|l|l|}
    \hline 
   \multicolumn{1}{|c|}{Std} &
      \multicolumn{2}{c|}{1.5} &
      \multicolumn{2}{c|}{2} &
      \multicolumn{2}{c|}{3} \\ 
      \hline
    d& Mean & Std & Mean & Std & Mean & Std \\
    \hline
    D1 & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% & 2.1\% \\
    \hline
    D2 & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% & 11.6\% \\
    \hline
    D3 & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% & 5.5\% \\
    \hline
  \end{tabular}

関連情報