table環境がないと

table環境がないと

次のように配置されたテーブルがいくつかあります。 ここに画像の説明を入力してください

\documentclass{article}

\begin{document}
\begin{table}
\begin{minipage}[c][1\totalheight][t]{0.45\textwidth}%
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}
\par\end{center}
\caption{Table \#1}

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}%
\par\end{center}
\caption{Table \#2}
\end{minipage}\hfill{}%
\begin{minipage}[c][1\totalheight][t]{0.45\textwidth}%

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}
\par\end{center}
\caption{Table \#3}

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}%
\par\end{center}
\caption{Table \#4}
\end{minipage}
\end{table}

\end{document}

そして、次のように中括弧を複数のテーブルにまたがるようにしようとしています。


ここに画像の説明を入力してください


または:


ここに画像の説明を入力してください


または:


ここに画像の説明を入力してください


例を挙げてみましょうページの余白を使用する方法を試してみました。通常のテキストにはうまく機能しますが、表などのオブジェクトには適していないようです。

\newcommand\BrText[2]{%
  \par\smallskip
   \noindent\makebox[\textwidth][r]{$\text{#1}\left\{
    \begin{minipage}{\textwidth}
    #2
    \end{minipage}
  \right.\nulldelimiterspace=0pt$}\par\smallskip
}    

私は他のいくつかの方法で問題を解決しようとしましたが、その時点では機能しないコードをそのままにしておくことは考えませんでした。とにかく、それが可能であるとどこかで読んだことを覚えていますが、どこで読んだのかはわかりません。これを行う方法についてのアイデアがあれば、ぜひ教えてください。

答え1

ここに画像の説明を入力してください

\documentclass{article}

\begin{document}
\begin{table}
$\left\{
\begin{minipage}[c]{0.45\textwidth}%
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}
\end{center}
\caption{Table \#1}

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}%
\end{center}
\caption{Table \#2}
\end{minipage}
\begin{minipage}[c]{0.45\textwidth}%

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}
\end{center}
\caption{Table \#3}

\begin{center}
\begin{tabular}{|c|c|c|c|c|c|c|c|}
\hline 
a & b & c & d & e & f & g & h\\ 
\hline 
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
\hline 
a & b & c & d & e & f & g & h\\
\hline 
\end{tabular}%
\end{center}
\caption{Table \#4}
\end{minipage}
\right\}$
\end{table}

\end{document}

答え2

mybraceleft水平方向の資料を便利に補強するために、との2 つの環境を用意していますmybraceright。どちらも、必要なサイズだけの水平方向の資料 (段落の途中で使用できます) を生成します。

David のソリューションと比較して、私のソリューションの注目すべき特性の 1 つは、tabular環境、またはそれらの代わりに使用する任意のものをしっかりと囲む水平の素材を生成することです (長0.45\textwidthさを推測する必要はありません)。これらの要素の幅を狭めると、私の中括弧が中括弧で囲まれたコンテンツからカスタマイズ可能な距離に留まっていることがわかりますが\myhsep、David のソリューションではそうではありません (minipage表形式の素材の左側と右側の内側に空白が増えるため、中括弧とコンテンツの間の隙間が大きくなります)。

私が設定した要件での作業で難しいのは、2 つのtabular環境と 2 つのキャプションを中央に配置するための適切な幅を見つけることです。このために、eqparboxパッケージを使用します。このパッケージは、タグの適切な使用に依存しています (各タグの最大幅を検出し、通常の長さとして使用できるようにします。これは非常に便利で、優れたパッケージです)。ソースのタグに注意してください。タグは 3 ずつあります (1つしっかりminipageと囲む tabular環境とそれに関連するキャプション)。このプロセスでは、ドキュメントを少なくとも 2 回コンパイルする必要があります。

table環境がないと

このソリューションでは、table環境は使用されない、したがって何もフロートしません。これは主にボックス化作業です。パッケージ\captionofからのは、caption標準的なテーブルキャプションの慣例的な外観を生成するために使用されます。

\documentclass{article}
\usepackage[hscale=0.65]{geometry} % enlarge margins a little bit for the example
\usepackage{eqparbox}
\usepackage{caption}

\makeatletter

\newsavebox{\mybox}
\newlength{\myhsep} % Horizontal separation between brace and contents
\setlength{\myhsep}{0.7em}

\newenvironment{mybraceleft}{%
  \begin{lrbox}{\mybox}
  }{%
  \end{lrbox}%
  $\m@th \left\{ \kern\myhsep \vcenter{\hbox{\usebox{\mybox}}} \right.$%
  \kern-\nulldelimiterspace
  \ignorespacesafterend
}

\newenvironment{mybraceright}{%
  \begin{lrbox}{\mybox}
  }{%
  \end{lrbox}%
  \leavevmode
  \kern-\nulldelimiterspace
  $\m@th \left. \vcenter{\hbox{\usebox{\mybox}}} \kern\myhsep \right\}$%
  \ignorespacesafterend
}

\makeatother

\begin{document}

\noindent
\begin{mybraceleft}
  \begin{minipage}{\eqboxwidth{tag1}}
    \centering
    \begin{eqminipage}[c]{tag1}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#1}
    \bigskip

    \begin{eqminipage}[c]{tag1}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#2}
  \end{minipage}
\end{mybraceleft}% spaces would be ignored here anyway because of the
                 % \ignorespacesafterend we used
\hfill
\begin{mybraceleft}
  \begin{minipage}{\eqboxwidth{tag2}}
    \centering
    \begin{eqminipage}[c]{tag2}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#3}
    \bigskip

    \begin{eqminipage}[c]{tag2}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#4}
  \end{minipage}
\end{mybraceleft}

\vspace{2cm}
\noindent
\begin{mybraceleft}
  \begin{minipage}{\eqboxwidth{tag3}}
    \centering
    \begin{eqminipage}[c]{tag3}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#5}
    \bigskip

    \begin{eqminipage}[c]{tag3}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#6}
  \end{minipage}
\end{mybraceleft}% spaces would be ignored here anyway because of the
                 % \ignorespacesafterend we used
\hfill
\begin{mybraceright}
  \begin{minipage}{\eqboxwidth{tag4}}
    \centering
    \begin{eqminipage}[c]{tag4}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#7}
    \bigskip

    \begin{eqminipage}[c]{tag4}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \captionof{table}{Table \#8}
  \end{minipage}
\end{mybraceright}

\end{document}

スクリーンショット

テーブル内部に補強材を巻き付ける

これは前の例に近いですが、唯一の違いは、2 つの大きなチャンク (それぞれ 4 つのtabular環境を含む) を浮動させることです。したがって、環境 を使用し、の代わりにtableを使用できます。この場合、パッケージは必要ありません。これは、入力構文 (ここではと) と中括弧の周りの水平方向の間隔を除いて、David が行ったことと似ています。私の中括弧は、中括弧で囲まれた素材から一定のカスタマイズ可能な距離に留まります ( )。\caption\captionofcaptionmybraceleftmybraceright\myhsep

すでに述べたように、これを機能させるには 2 回のコンパイル実行が必要ですeqparbox

\documentclass{article}
\usepackage[hscale=0.65]{geometry} % enlarge margins a little bit for the example
\usepackage{eqparbox}

\makeatletter

\newsavebox{\mybox}
\newlength{\myhsep} % Horizontal separation between brace and contents
\setlength{\myhsep}{0.7em}

\newenvironment{mybraceleft}{%
  \begin{lrbox}{\mybox}
  }{%
  \end{lrbox}%
  $\m@th \left\{ \kern\myhsep \vcenter{\hbox{\usebox{\mybox}}} \right.$%
  \kern-\nulldelimiterspace
  \ignorespacesafterend
}

\newenvironment{mybraceright}{%
  \begin{lrbox}{\mybox}
  }{%
  \end{lrbox}%
  \leavevmode
  \kern-\nulldelimiterspace
  $\m@th \left. \vcenter{\hbox{\usebox{\mybox}}} \kern\myhsep \right\}$%
  \ignorespacesafterend
}

\makeatother

\begin{document}

\begin{table}
\centering
\begin{mybraceleft}
  \begin{minipage}{\eqboxwidth{tag1}}
    \centering
    \begin{eqminipage}[c]{tag1}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#1}
    \bigskip

    \begin{eqminipage}[c]{tag1}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#2}
  \end{minipage}
\end{mybraceleft}% spaces would be ignored here anyway because of the
                 % \ignorespacesafterend we used
\hfill
\begin{mybraceleft}
  \begin{minipage}{\eqboxwidth{tag2}}
    \centering
    \begin{eqminipage}[c]{tag2}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#3}
    \bigskip

    \begin{eqminipage}[c]{tag2}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#4}
  \end{minipage}
\end{mybraceleft}
\end{table}

\begin{table}
\centering
\begin{mybraceleft}
  \begin{minipage}{\eqboxwidth{tag3}}
    \centering
    \begin{eqminipage}[c]{tag3}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#5}
    \bigskip

    \begin{eqminipage}[c]{tag3}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#6}
  \end{minipage}
\end{mybraceleft}% spaces would be ignored here anyway because of the
                 % \ignorespacesafterend we used
\hfill
\begin{mybraceright}
  \begin{minipage}{\eqboxwidth{tag4}}
    \centering
    \begin{eqminipage}[c]{tag4}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#7}
    \bigskip

    \begin{eqminipage}[c]{tag4}
    \begin{tabular}{@{}|c|c|c|c|c|c|c|c|@{}}
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
      1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
      \hline
      a & b & c & d & e & f & g & h\\
      \hline
    \end{tabular}
    \end{eqminipage}%
    \caption{Table \#8}
  \end{minipage}
\end{mybraceright}
\end{table}

\end{document}

スクリーンショット

関連情報