Linha descontínua usando \multirow

Linha descontínua usando \multirow

Estou tendo dificuldades com edição de tabelas, então comecei a usar um site para gerar tabelas em LaTeX. No entanto, sempre que uso multilinhas e bordas, as coisas ficam um pouco complicadas. Recebo uma linha descontínua ao longo da minha coluna.

Como teste, estou usando isso:

\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 é o resultado:

mesa de teste

Estou usando TexPortable com MiKTeX 2.9.6210 e Texmaker 4.5.

Responder1

Isso está relacionado ao preenchimento em torno das linhas horizontais booktabs(os comprimentos \aboverulesepe \belowrulesep). Regras verticais não devem ser utilizadas booktabsem geral (este princípio sofre exceções). Uma solução alternativa consiste em defini-los como 0 e substituí-los por comprimentos mais ou menos equivalentes adicionados na parte superior e inferior das células com as ferramentas 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} 

insira a descrição da imagem aqui

Responder2

Se você deseja linhas verticais compatíveis com as regras horizontais de booktabs, você deve {NiceTabular}usar 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} 

Saída do código acima

informação relacionada