![在 booktabs 表中设置垂直线的问题](https://linux22.com/image/387021/%E5%9C%A8%20booktabs%20%E8%A1%A8%E4%B8%AD%E8%AE%BE%E7%BD%AE%E5%9E%82%E7%9B%B4%E7%BA%BF%E7%9A%84%E9%97%AE%E9%A2%98.png)
正如指出的那样这里使用很重要
\多列{3}{|l|}{}
在下面的一行中multicolumn
。
尽管如此,我仍然在努力解决同样的问题(不连接的垂直线),并且找不到解决方案:
这是我目前取得的进展。任何想法都很好。
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{makecell}
{\renewcommand{\arraystretch}{2}%
\begin{table}
\centering
\begin{tabular}{@{}ll|cc@{}} \toprule
\multicolumn{2}{c|}{\multirow{2}{*}{}} & \multicolumn{2}{c}{Text} \\
\cmidrule(r){3-4}
\multicolumn{2}{c|}{} & A & B\\ \midrule
\multicolumn{1}{c|}{\multirow{2}{*}{\thead{Text1 and \\ Text2}}} & C & \thead{1\\and 1}& 2 \\
\multicolumn{1}{c|}{} & D & 3 & \thead{4\\ and 4} \\
\bottomrule
\end{tabular}
\end{table}} \quad
答案1
Booktabs
在其规则上方和下方设置垂直填充。您可以将此填充设置为 0,并享受其他功能。无论如何,设置\arraystretch
为2
,您真的需要它吗?如有必要,您可以用\setcellgapes
中的命令替换它makecell
。我借此机会使用以下命令稍微简化了表格的代码\multirowthead
:
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{makecell}
\begin{document}
\begin{table}
\renewcommand{\arraystretch}{2}%
\centering
\aboverulesep = 0pt
\belowrulesep = 0pt
\begin{tabular}{@{}ll|cc@{}} \toprule
\multicolumn{2}{c|}{\multirow{2}{*}{}} & \multicolumn{2}{c}{Text} \\
\cmidrule(r){3-4}
\multicolumn{2}{c|}{} & A & B\\ \midrule
\multicolumn{1}{c|}{\multirowthead{2}[-1ex]{Text1 and \\ Text2}} & C & \thead{1\\and 1}& 2 \\
\multicolumn{1}{c|}{} & D & 3 & \thead{4\\ and 4} \\
\bottomrule
\end{tabular}
\end{table} \quad
\end{document}
答案2
正如文档中提到的那样booktabs
(以及上面的评论中提到的),我尝试不使用垂直线,并且不得不承认它现在看起来更好:
\documentclass{article}
\usepackage{booktabs}
\usepackage{multirow}
\usepackage{makecell}
\begin{document}
{\renewcommand{\arraystretch}{2}%
\begin{table}
\centering
\begin{tabular}{@{}ccc@{}}
\toprule
& \multicolumn{2}{c}{Text} \\
\cmidrule(r){2-3}
\thead{Text1 and \\ Text2} & A & B\\
\midrule
C & \thead{1\\and 1}& 2 \\
D & 3 & \thead{4\\ and 4} \\
\bottomrule
\end{tabular}
\end{table}} \quad
\end{document}