Para ajustar figuras com muitos painéis, etc., ou também slides de projetor, às vezes seria útil ver rapidamente os contornos de minipáginas, gráficos, \fbox{}
etc. -- \frame{}
comandos. No entanto, isso é tedioso.
Imagino que a solução mais simples seriaredefinir minipágina, incluir gráficos, subfigura, etc. no cabeçalho de forma que sejam colocados em um \fbox{}
e, portanto, enquadrados em todo o documento. Essas redefinições poderiam simplesmente ser descomentadas sempre que os quadros fossem desejados. Claro, todas as opções etc. ainda devem ser suportadas. Como isso pode ser alcançado?
A seguir está um exemplo com duas figuras, primeiro a original, depois com fboxes manuais. O objetivo é que, com comandos redefinidos, a primeira figura se pareça com a 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:
A solução \includegraphics
é a seguinte (obrigado @Skillmon por me apontarpara isso):
\let\includegraphicsbak\includegraphics
\renewcommand*{\includegraphics}[2][]{\fbox{\includegraphicsbak[#1]{#2}}}
Como o mesmo pode ser alcançado para blocos de comando (minipágina, subfigura)?
Responder1
Uma solução que deve funcionar para minipage
. O \begin{minipage}...\end{minipage}
é (aproximadamente) equivalente a
\begingroup
\minipage
...
\endminipage
\endgroup
então você precisa salvar ambos \minipage
e \endminipage
with \let
da mesma maneira que for \includegraphics
. Para fazer um ambiente que emoldure minipage
você precisa colocá-lo em uma caixa. Para isso o lrbox
ambiente coloca o conteúdo em uma caixa e retira um nível de agrupamento. Abaixo eu primeiro utilizo o padrão minipage
e depois o redefino (normalmente as definições devem ser anteriores \begin{document}
). Também deve funcionar com o 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}