Marco (fbox) alrededor de todas las minipáginas/includegraphics/

Marco (fbox) alrededor de todas las minipáginas/includegraphics/

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 \includegraphicses 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 \minipagey \endminipagewith \letde la misma manera que para \includegraphics. Para crear un entorno que establezca el minipagemarco, debes colocarlo en una caja. Para ello el lrboxentorno pone el contenido en una caja y elimina un nivel de agrupación. A continuación, primero uso el valor predeterminado minipagey 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}

ingrese la descripción de la imagen aquí

información relacionada