Что бы я использовал

Что бы я использовал

Как объединить две ячейки в одну ячейку таблицы?

Например, я хотел бы объединить ячейку для «456» следующим образом.

ожидаемая таблица

\documentclass[journal]{IEEEtran}
\begin{document}

\begin{table}[h]
\captionof{table}{Test Table}
\label{tab:table_x} 
\noindent\begin{tabularx}{\columnwidth} { |
  c |
  c |
  >{\raggedright\arraybackslash}X |
}
  \hline
  \textbf{A} & \textbf{B} & \textbf{C}  \\
  \hline
  abc  & def & ghi \\
  \hline
  123  & 456 & mno \\
  \hline
   jkl  & 456 & 789 \\
  \hline
  xxx  & yyy & zzz \\
  \hline
\end{tabularx}
\end{table}

\end{document}

Текущая таблица:

текущая таблица

решение1

Если вы хотите сделать это в tabularxи со всеми этими линиями (они мне не нравятся, они делают таблицу загроможденной, неаккуратной и неразборчивой), я бы посоветовал использовать пакеты hhline(дают лучший интервал, чем \cline) и multirow. Я также использовал arrayи , \extrarowheightчтобы получить лучший интервал для горизонтальных линий (они слишком близко расположены в LaTeX по умолчанию).

\documentclass[journal]{IEEEtran}

\usepackage{tabularx}
\usepackage{hhline}
\usepackage{multirow}
\usepackage{array}
\setlength\extrarowheight{1pt}

\begin{document}
\begin{table}[h]
\caption{Test Table\label{tab:table_x}}
\noindent\begin{tabularx}{\columnwidth} { |
  c |
  c |
  >{\raggedright\arraybackslash}X |
}
  \hline
  \textbf{A} & \textbf{B} & \textbf{C}  \\
  \hline
  abc  & def & ghi \\
  \hline
  123  &     & mno \\
  \hhline{|-|~|-|}
  jkl  & \multirow{-2}{*}[-.5\arrayrulewidth]{456} & 789 \\
  \hline
  xxx  & yyy & zzz \\
  \hline
\end{tabularx}
\end{table}
\end{document}

введите описание изображения здесь

Чтобы получить именно такую ​​таблицу, как показано на изображении (более или менее, это не совсем тот же интервал), используйте не tabularxобычный tabular:

\documentclass[journal]{IEEEtran}

\usepackage{hhline}
\usepackage{multirow}
\usepackage{array}
\setlength\extrarowheight{1pt}

\begin{document}
\begin{table}[h]
\centering
\caption{Test Table\label{tab:table_x}}
\begin{tabular}{ | c | c | c | }
  \hline
  \textbf{A} & \textbf{B} & \textbf{C}  \\
  \hline
  abc  & def & ghi \\
  \hline
  123  &     & mno \\
  \hhline{|-|~|-|}
  jkl  & \multirow{-2}{*}[-.5\arrayrulewidth]{456} & 789 \\
  \hline
  xxx  & yyy & zzz \\
  \hline
\end{tabular}
\end{table}
\end{document}

введите описание изображения здесь


Что бы я использовал

Вместо вертикальных линий (и линий после каждой строки) я бы использовал правила booktabs. Если мне нужно «объединить» ячейки, я бы поместил их в первый столбец (если применимо) и просто добавил бы \addlinespaceпосле каждого блока. Значимые данные (например, числовые) я бы не опускал и не объединял ячейки, а повторял:

\documentclass[journal]{IEEEtran}

\usepackage{tabularx}
\usepackage{booktabs}

\begin{document}
\begin{table}[h]
\centering
\caption{Test Table\label{tab:table_x}}
\begin{tabularx}{\columnwidth} { c c >{\raggedright\arraybackslash}X }
  \toprule
  \textbf{A} & \textbf{B} & \textbf{C}  \\
  \midrule
  abc  & def & ghi \\
       & 456 & mno \\
  \addlinespace
  jkl  & 456 & 789 \\
  \addlinespace
  xxx  & yyy & zzz \\
  \bottomrule
\end{tabularx}
\end{table}
\end{document}

введите описание изображения здесь

решение2

Ваш код не очень воспроизводим, так как в нем есть некоторые ошибки (отсутствует один пакет). Посмотрите на мое приближение:

\documentclass[journal]{IEEEtran}
\usepackage{multirow} % <-- added package
\usepackage{tabularx}
\begin{document}

\begin{table}[h]
\caption{Test Table}
\label{tab:table_x} 
\noindent\begin{tabularx}{\columnwidth} { |
  c |
  c |
  >{\raggedright\arraybackslash}X |
}
  \hline
  \textbf{A} & \textbf{B} & \textbf{C}  \\
  \hline
  abc  & def & ghi \\
  \hline
  123  & \multirow{2}{*}{456} & mno \\ % <-- merged cell
  \cline{1-1}\cline{3-3} % <-- added rule
  jkl  & & 789 \\ % <-- merged cell
  \hline
  xxx  & yyy & zzz \\
  \hline
\end{tabularx}
\end{table}

\end{document}

введите описание изображения здесь

решение3

Это можно сделать очень легко, используя новый пакет tabularray.

\documentclass[journal]{IEEEtran}
\usepackage{tabularray}

\begin{document}

\begin{table}[h]
  \caption{Test Table}
  \label{tab:table_x}
  \centering
  \begin{tblr}{
      colspec = {QQQ},
      hlines,
      vlines,
      columns={c},
      rows={m},
      cell{3}{2} = {r=2,c=1}{c},
      row{1}={font=\bfseries},
    }
    A   & B   & C   \\
    abc & def & ghi \\
    123 & 456 & mno \\
    jkl & 456 & 789 \\
    xxx & yyy & zzz \\
  \end{tblr}

\end{table}


\end{document}

введите описание изображения здесь

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