
¿Cómo puedo fusionar dos celdas en una sola celda de una tabla?
Por ejemplo, me gustaría fusionar la celda "456" de la siguiente manera.
\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}
Tabla actual:
Respuesta1
Si desea hacer esto tabularx
con todas esas reglas (no me gustan, hacen que una tabla se vea desordenada, no ordenada ni legible), le sugiero que use los paquetes hhline
(ofrece un mejor espaciado que \cline
) y multirow
. También utilicé array
y \extrarowheight
para obtener un mejor espaciado entre las reglas horizontales (están demasiado cerca en LaTeX predeterminado).
\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}
Para obtener exactamente la tabla que muestra en su imagen (más o menos, no es exactamente el mismo espaciado) no use tabularx
más que un normal 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}
Lo que usaría
En lugar de reglas verticales (y reglas después de cada línea), usaría las booktabs
reglas. Si necesito "fusionar" celdas, las pondría en la primera columna (si corresponde) y simplemente las agregaría \addlinespace
después de cada bloque. Datos significativos (como datos numéricos) No omitiría ni fusionaría celdas, pero repetiría:
\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}
Respuesta2
Su código no es realmente reproducible, ya que tiene algunos errores (falta un paquete). Eche un vistazo a mi aproximación:
\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}
Respuesta3
Puedes hacerlo muy fácilmente usando el nuevo paquete 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}