我正在用 制作一个相关矩阵booktabs
。但是,toprule
当同时使用 时, 和类似命令不会超出第一列\usepackage{xltabular}
。我尝试删除该xltabular
包,这确实解决了问题,但我无法在项目中放弃这个包。我该如何解决这个问题?
附言:我正在使用 Overleaf,因此 Miktex 中的软件包不是最新的,这不是什么问题。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage{xltabular}
\begin{document}
\begin{table}[ht]
\centering
\caption{Correlation matrix}
\label{tab:mwe_table}
\begin{tabular}{lrrrrrrr}
\toprule
& A & B & C & D & E & F & G \\
\midrule
A & & 0.14 & 0.07 & 0.15 & -0.23 & 0.36 & 0.20 \\
B & 0.14 & & 0.07 & 0.71 & -0.45 & 0.69 & -0.09 \\
C & 0.07 & 0.07 & & 0.11 & 0.19 & 0.02 & -0.09 \\
D & 0.15 & 0.71 & 0.11 & & -0.02 & 0.64 & 0.18 \\
E & -0.23 & -0.45 & 0.19 & -0.02 & & -0.40 & 0.13 \\
F & 0.36 & 0.69 & 0.02 & 0.64 & -0.40 & & -0.02 \\
G & 0.20 & -0.09 & -0.09 & 0.18 & 0.13 & -0.02 & \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
答案1
导入后在序言中添加以下内容booktabs
可修复xltabular
该问题:
\makeatletter
\def\@BTrule[#1]{%
\ifx\longtable\undefined
\let\@BTswitch\@BTnormal
\else\ifx\hline\LT@hline
\nobreak
\let\@BTswitch\@BLTrule
\else
\let\@BTswitch\@BTnormal
\fi\fi
\global\@thisrulewidth=#1\relax
\ifnum\@thisruleclass=\tw@\vskip\@aboverulesep\else
\ifnum\@lastruleclass=\z@\vskip\@aboverulesep\else
\ifnum\@lastruleclass=\@ne\vskip\doublerulesep\fi\fi\fi
\@BTswitch}
\makeatother