У меня есть несколько таблиц, расположенных следующим образом:
\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
и mybraceright
, для удобного закрепления горизонтального материала. Они обе производят горизонтальный материал (вы можете использовать их в середине абзаца) как раз нужного размера.
Одно из примечательных свойств моего решения по сравнению с решением Дэвида заключается в том, что оно создает горизонтальный материал, который плотно обволакивает окружение tabular
или то, что вы решите использовать вместо него (вам не нужно угадывать длину 0.45\textwidth
). Если вы уменьшите ширину этих элементов, вы увидите, что мои скобки останутся на настраиваемом расстоянии \myhsep
от заключенного в скобки содержимого, чего не происходит в решении Дэвида (у вас будет больший зазор между скобками и содержимым, потому что minipage
внутри, слева и справа от табличного материала, будет больше пустого пространства).
Сложная часть работы с требованиями, которые я установил, — найти подходящую ширину для центрирования двух tabular
окружений и двух подписей, которые идут вместе. Для этого я использую пакет eqparbox
. Этот пакет полагается на правильное использование тегов (для каждого тега он находит максимальную ширину и позволяет использовать ее как обычную длину — это чрезвычайно удобно, отличный пакет!). Следите за тегами в источнике, они идут по три (одиндля того minipage
, что плотно охватываетдва tabular
среды и связанные с ними подписи). Этот процесс требует компиляции документа как минимум дважды.
Без 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}
Обертывание скрепляющего материала внутри столов
Это близко к предыдущему примеру, единственное отличие в том, что мы позволяем двум большим фрагментам (каждый из которых содержит четыре tabular
среды) плавать. Таким образом, мы используем table
среду и можем использовать \caption
вместо \captionof
. В этом случае пакет не нужен caption
. Это похоже на то, что сделал Дэвид, за исключением синтаксиса ввода ( mybraceleft
и mybraceright
здесь) и горизонтального интервала вокруг скобок: мои скобки остаются на постоянном, настраиваемом расстоянии от материала скобок ( \myhsep
).
Как уже упоминалось, для 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}