我遇到了一个小问题,急需帮助。基本上,我想将一个midrule
(或任何其他类型的规则)跨越两个垂直对齐的并排表格。如下面的 MWE 所示,我可以将规则放在环境midrule
之外tabularx
并获得我想要的结果。但是,这样做会产生错误misplaced \noalign
。
\documentclass[12pt]{article}
\usepackage{array,tabularx}
\usepackage{booktabs}
\begin{document}
\begin{table}[h]
\centering
\midrule\midrule
\begin{tabularx}{.49\textwidth}[t]{Xr}
header 1 & header 2\\ \midrule
row 1 & row 1\\
\end{tabularx}%
\hfill
\begin{tabularx}{.49\textwidth}[t]{Xr}
header 1 & header 2\\ \midrule
row 1 & row 1\\
row 2 & row 2\\
\end{tabularx}
\midrule\midrule
\end{table}
\end{document}
如能得到关于如何正确解决这个问题的任何建议,我们将不胜感激!
谢谢。
答案1
使用 booktabs 中的 \midrule,您必须将 tabularx 环境放入表格环境中:
\documentclass[12pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[showframe, noheadfoot, nomarginpar, textwidth = 15cm, textheight = 23cm] {geometry}
\usepackage{array,tabularx}
\usepackage{booktabs}
\newlength{\tabsep}
\setlength{\tabsep}{\dimexpr \textwidth -0.49\textwidth-0.49\textwidth \relax}
\pagestyle{empty}
\begin{document}
\mbox{}
\begin{table}[h]
\centering
\begin{tabular}{@{}c @{\hspace{\tabsep}}c@{}}%
\midrule\midrule
\begin{tabularx}{.49\textwidth}[t]{Xr}
header 1 & header 2\\ \midrule
row 1 & row 1\\
\end{tabularx}%
&
\begin{tabularx}{.49\textwidth}[t]{Xr}
header 1 & header 2\\ \midrule
row 1 & row 1\\
row 2 & row 2\\
\end{tabularx}\\
\midrule\midrule
\end{tabular}
\end{table}
\end{document}