Para ajustar figuras con muchos paneles, etc., o también diapositivas del proyector, a veces sería útil ver rápidamente los contornos de minipáginas, gráficos, etc. Esto se puede lograr envolviendo manualmente los objetos respectivos en \fbox{}
o -- en el proyector. -- \frame{}
comandos. Sin embargo, eso es tedioso.
Me imagino que la solución más sencilla seríaredefinir minipágina, incluir gráficos, subfiguras, etc. en el encabezado de modo que se coloquen en un\fbox{}
y, por lo tanto, queden enmarcados en todo el documento.. Estas redefiniciones podrían simplemente descomentarse siempre que se deseen fotogramas. Por supuesto, todas las opciones, etc., deberían seguir siendo compatibles. ¿Cómo se puede lograr esto?
A continuación se muestra un ejemplo con dos figuras, primero la original, luego con fboxes manuales. El objetivo es que con los comandos redefinidos, la primera figura se parezca a la segunda.
\documentclass{article}
\usepackage[showframe]{geometry}
\usepackage{graphicx}
\usepackage{subcaption}
% Remove padding from fbox
\setlength{\fboxsep}{0pt}
\newlength{\h}
\begin{document}
\setlength{\h}{0.5\linewidth}
\begin{figure}\centering
%
\begin{subfigure}[t]{0.02\linewidth}
\rotatebox{90}{\begin{minipage}{\h}\centering\textbf{first row}\end{minipage}}\\
\rotatebox{90}{\begin{minipage}{\h}\centering\textbf{first row}\end{minipage}}
\end{subfigure}
%
\begin{subfigure}[t]{0.45\linewidth}\centering
\includegraphics[width=2in]{example-image}\\
\includegraphics[width=2in]{example-image}
\caption*{\textbf{first column}}
\end{subfigure}
\hfill
%
\begin{subfigure}[t]{0.45\linewidth}\centering
\includegraphics[width=2in]{example-image}\\
\includegraphics[width=2in]{example-image}
\caption*{\textbf{second column}}
\end{subfigure}
%
\caption{\ldots}
\end{figure}
\begin{figure}\centering
%
\fbox{
\begin{subfigure}[t]{0.02\linewidth}
\rotatebox{90}{\fbox{\begin{minipage}{\h}\centering\textbf{first row}\end{minipage}}}\\
\rotatebox{90}{\fbox{\begin{minipage}{\h}\centering\textbf{second row}\end{minipage}}}
\end{subfigure}
}
%
\fbox{
\begin{subfigure}[t]{0.45\linewidth}\centering
\fbox{\includegraphics[height=\h]{example-image}}\\
\fbox{\includegraphics[height=\h]{example-image}}
\caption*{\textbf{first column}}
\end{subfigure}
}
\hfill
%
\fbox{
\begin{subfigure}[t]{0.45\linewidth}\centering
\fbox{\includegraphics[height=\h]{example-image}}\\
\fbox{\includegraphics[height=\h]{example-image}}
\caption*{\textbf{second column}}
\end{subfigure}
}
%
\caption{\ldots}
\end{figure}
\end{document}
Editar:
La solución \includegraphics
es la siguiente (gracias @Skillmon por señalarmelo):
\let\includegraphicsbak\includegraphics
\renewcommand*{\includegraphics}[2][]{\fbox{\includegraphicsbak[#1]{#2}}}
¿Cómo se puede lograr lo mismo con los bloques de comando (minipágina, subfigura)?
Respuesta1
Una solución que debería funcionar para minipage
. El \begin{minipage}...\end{minipage}
es (aproximadamente) equivalente a
\begingroup
\minipage
...
\endminipage
\endgroup
por lo que debes guardar ambos \minipage
y \endminipage
with \let
de la misma manera que para \includegraphics
. Para crear un entorno que establezca el minipage
marco, debes colocarlo en una caja. Para ello el lrbox
entorno pone el contenido en una caja y elimina un nivel de agrupación. A continuación, primero uso el valor predeterminado minipage
y luego lo redefino (normalmente las definiciones deberían estar antes \begin{document}
). También debería funcionar con el argumento opcional.
\documentclass{article}
\usepackage{lipsum}
\begin{document}
\begin{minipage}[]{0.8\linewidth}
\lipsum[1]
\end{minipage}
\let\minipagebak\minipage
\let\endminipagebak\endminipage
\newsavebox\TestBox
\renewenvironment{minipage}[2][]
{\begin{lrbox}{\TestBox}\begin{minipagebak}[#1]{#2}}
{\end{minipagebak}\end{lrbox}\fbox{\usebox{\TestBox}}}
\begin{minipage}[t]{0.8\linewidth}
\lipsum[1]
\end{minipage}
\end{document}