表: 2 つの隣り合った表にまたがるルール

表: 2 つの隣り合った表にまたがるルール

ちょっとした問題があり、どうしても助けが必要です。基本的に、midrule2 つの垂直に並んだテーブルに (または他の種類のルール) をまたがせたいのです。以下の 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}

その結果:

関連情報