Я испытывал трудности с редактированием таблиц, поэтому я начал использовать веб-сайт для генерации таблиц в LaTeX. Однако, всякий раз, когда я использую многострочные и границы, все становится немного сложнее. Я получаю прерывистую линию вдоль моего столбца.
В качестве теста я использую это:
\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}
Вот результат:
Я использую TexPortable с MiKTeX 2.9.6210 и Texmaker 4.5.
решение1
Это связано с отступом вокруг горизонтальных линий в booktabs
(длинах \aboverulesep
и \belowrulesep
). Вертикальные правила не следует использовать booktabs
в общем случае (этот принцип имеет исключения). Обходной путь состоит в том, чтобы установить их на 0 и заменить их более или менее эквивалентными длинами, добавленными вверху и внизу ячеек с помощью инструментов из 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}
решение2
Если вам нужны вертикальные линии, совместимые с горизонтальными правилами booktabs
, вам следует {NiceTabular}
использовать 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}