\multirow を使用した不連続線

\multirow を使用した不連続線

私は表の編集に苦労していたので、LaTeX で表を生成する Web サイトを使い始めました。しかし、複数行や境界線を使用すると、少し扱いに​​くくなります。列に沿って不連続な線が表示されます。

テストとして、これを使用します:

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

結果は次のとおりです。

テストテーブル

私は MiKTeX 2.9.6210 と Texmaker 4.5 で TexPortable を使用しています。

答え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} 

上記コードの出力

関連情報