Sé que he visto este problema de composición antes, pero no puedo encontrar una solución. El látex puede resultar bastante contradictorio. Todo lo que intento hacer es crear una macro de tipo encabezado \panel{} que funcione dentro de una tabla ligeramente modificada. el panel debe aumentar el espacio del tabular anterior y reducirlo al siguiente tabular.
He simplificado un ejemplo para mostrar el problema. ¿Cómo se define una macro \panel que hace lo que se espera de ella?
\documentclass{article}
\usepackage{color}
\usepackage{booktabs}
\newsavebox{\selvesteboxtwo}
\newenvironment{colboxfigtbl}
{
\begin{lrbox}{\selvesteboxtwo}%
\begin{minipage}{\dimexpr\columnwidth-2\fboxsep-4em\relax}}
{
\end{minipage}\end{lrbox}%
\begin{center}%
\fcolorbox{blue}{yellow}{\usebox{\selvesteboxtwo}}%%real life do more
\end{center}
}
\newenvironment{newtable}[1][]{%
\begin{table}%
\begin{center}%
\begin{colboxfigtbl}
}{%
\end{colboxfigtbl}%
\end{center}%
\end{table}
}
\newcommand{\panel}[2]{%
\par\bigskip%
\begin{center} \textbf{Panel #1:} #2 \end{center}%
\par\vspace*{-1.5\baselineskip}%
}
\begin{document}
\begin{newtable}
\panel{A}{This is a bad panel}
\begin{center}\begin{tabular}{l r} \toprule A & B \\ \bottomrule \end{tabular} \end{center}
\panel{B}{This is a better panel}
\begin{center}\begin{tabular}{l r} \toprule A & B \\ \bottomrule \end{tabular} \end{center}
\panel{C}{This is a better panel}
\begin{center}\begin{tabular}{l r} \toprule A & B \\ \bottomrule \end{tabular} \end{center}
\end{newtable}
\end{document}
Respuesta1
Con frecuencia, anidar entornos juntos puede ser complicado, porque los entornos tienden a agregar espacio encima y debajo de su contenido. Además de eso, algunos entornos intentan ser inteligentes y restar espacio extra que ha insertado un entorno anidado. En un caso como el suyo, la respuesta es sencilla: en el \newtable
entorno, que ya invoca el table
entorno, reemplace el \begin{center}...\end{center}
entorno anidado con \centering...
, que es una forma macro que logra el mismo efecto, sin un entorno.
\documentclass{article}
\usepackage{color}
\usepackage{booktabs}
\newsavebox{\selvesteboxtwo}
\newenvironment{colboxfigtbl}
{
\begin{lrbox}{\selvesteboxtwo}%
\begin{minipage}{\dimexpr\columnwidth-2\fboxsep-4em\relax}}
{
\end{minipage}\end{lrbox}%
\begin{center}%
\fcolorbox{blue}{yellow}{\usebox{\selvesteboxtwo}}%%real life do more
\end{center}
}
\newenvironment{newtable}[1][]{%
\begin{table}%
\centering%\begin{center}%
\begin{colboxfigtbl}
}{%
\end{colboxfigtbl}%
% \end{center}%
\end{table}
}
\newcommand{\panel}[2]{%
\par\bigskip%
\begin{center} \textbf{Panel #1:} #2 \end{center}%
\par\vspace*{-1.5\baselineskip}%
}
\begin{document}
\begin{newtable}
\panel{A}{This is a bad panel}
\begin{center}\begin{tabular}{l r} \toprule A & B \\ \bottomrule \end{tabular} \end{center}
\panel{B}{This is a better panel}
\begin{center}\begin{tabular}{l r} \toprule A & B \\ \bottomrule \end{tabular} \end{center}
\panel{C}{This is a better panel}
\begin{center}\begin{tabular}{l r} \toprule A & B \\ \bottomrule \end{tabular} \end{center}
\end{newtable}
\end{document}