Línea discontinua usando \multirow

Línea discontinua usando \multirow

He tenido problemas con la edición de tablas, así que comencé a usar un sitio web para generar tablas en LaTeX. Sin embargo, cada vez que uso varias filas y bordes, las cosas se ponen un poco complicadas. Obtengo una línea discontinua a lo largo de mi columna.

Como prueba, estoy usando esto:

\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{@{}c|cc@{}}
Test               & a & b \\ \midrule
\multirow{2}{*}{x} & 1 & 2 \\ \cmidrule(l){2-3} 
               & 3 & 4
\end{tabular}
\end{table}

Este es el resultado:

mesa de prueba

Estoy usando TexPortable con MiKTeX 2.9.6210 y Texmaker 4.5.

Respuesta1

Esto está relacionado con el relleno alrededor de las líneas horizontales en booktabs(las longitudes \aboverulesepy \belowrulesep). No se deben utilizar reglas verticales booktabsen general (este principio sufre excepciones). Una solución alternativa consiste en establecerlos en 0 y reemplazarlos con longitudes más o menos equivalentes agregadas en la parte superior e inferior de las celdas con las herramientas de makecell.

\documentclass{article}
\usepackage{booktabs, multirow, array, makecell, caption}

\begin{document}

\begin{table}[!htb]
\centering
\setlength\aboverulesep{0pt}\setlength\belowrulesep{0pt}
\setcellgapes{3pt}\makegapedcells
\caption{My caption}
\label{my-label}
\begin{tabular}{@{}c|cc@{}}
Test & a & b \\ \midrule
\multirow{2}{*}{x} & 1 & 2 \\ \addlinespace[-0.03em]\cmidrule(l){2-3}
               & 3 & 4
\end{tabular}
\end{table}

\end{document} 

ingrese la descripción de la imagen aquí

Respuesta2

Si desea que las líneas verticales sean compatibles con las reglas horizontales de booktabs, debe utilizar {NiceTabular}of nicematrix.

\documentclass{article}
\usepackage{booktabs, caption, nicematrix}

\begin{document}

\begin{table}[!htb]
\centering
\caption{My caption}
\label{my-label}
\begin{NiceTabular}{@{}c|cc@{}}[cell-space-limits=3pt]
Test & a & b \\ \midrule
\Block{2-1}{x} & 1 & 2 \\ \cmidrule(l){2-3}
               & 3 & 4
\end{NiceTabular}
\end{table}

\end{document} 

Salida del código anterior

información relacionada