Ununterbrochene Linie mit \multirow

Ununterbrochene Linie mit \multirow

Ich hatte Probleme mit der Tabellenbearbeitung und begann, eine Website zum Generieren von Tabellen in LaTeX zu verwenden. Wenn ich jedoch mehrere Zeilen und Rahmen verwende, wird es etwas knifflig. Ich erhalte eine unterbrochene Linie entlang meiner Spalte.

Als Test verwende ich Folgendes:

\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}

Dies ist das Ergebnis:

Testtabelle

Ich verwende TexPortable mit MiKTeX 2.9.6210 und Texmaker 4.5.

Antwort1

Dies hängt mit der Polsterung um horizontale Linien in booktabs(den Längen \aboverulesepund \belowrulesep) zusammen. Vertikale Linien sollten im Allgemeinen nicht mit verwendet werden booktabs(dieses Prinzip hat Ausnahmen). Eine Problemumgehung besteht darin, sie auf 0 zu setzen und sie durch mehr oder weniger gleichwertige Längen zu ersetzen, die oben und unten in den Zellen mit den Werkzeugen von hinzugefügt werden 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} 

Bildbeschreibung hier eingeben

Antwort2

Wenn Sie vertikale Linien wünschen, die mit den horizontalen Regeln von kompatibel sind booktabs, sollten Sie {NiceTabular}von verwenden 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} 

Ausgabe des obigen Codes

verwandte Informationen