Rahmen (fbox) um alle Miniseiten/Includegraphics/

Rahmen (fbox) um alle Miniseiten/Includegraphics/

Zur Feinabstimmung von Abbildungen mit vielen Panels etc. oder auch Beamer-Slides wäre es manchmal praktisch, schnell die Umrisse von Minipages, Grafiken etc. zu sehen. Dies kann erreicht werden, indem man die entsprechenden Objekte manuell in \fbox{}oder – in Beamer – \frame{}Befehle einbindet. Das ist allerdings mühsam.

Ich denke, die einfachste Lösung wäre,Minipage, Includegraphics, Subfigure usw. in der Kopfzeile so neu definieren, dass sie in einem platziert werden \fbox{}und somit im gesamten Dokument gerahmt sind. Diese Neudefinitionen könnten dann einfach auskommentiert werden, wenn Frames gewünscht werden. Natürlich sollten alle Optionen usw. weiterhin unterstützt werden. Wie kann dies erreicht werden?

Nachfolgend ein Beispiel mit zwei Abbildungen, zunächst die Originale, dann die manuellen Fboxen. Ziel ist, dass mit neu definierten Befehlen die erste Abbildung so aussieht wie die zweite.

\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}

Bearbeiten:

Die Lösung dafür \includegraphicsist wie folgt (danke @Skillmon für den Hinweisdazu):

\let\includegraphicsbak\includegraphics
\renewcommand*{\includegraphics}[2][]{\fbox{\includegraphicsbak[#1]{#2}}}

Wie kann dasselbe für Befehlsblöcke (Miniseite, Unterfigur) erreicht werden?

Antwort1

Eine Lösung, die für funktionieren sollte minipage. Das \begin{minipage}...\end{minipage}ist (ungefähr) gleichwertig mit

\begingroup
\minipage
...
\endminipage
\endgroup

Sie müssen also sowohl \minipageals \endminipageauch mit \letauf die gleiche Weise speichern wie für \includegraphics. Um eine Umgebung zu erstellen, die minipagein einem Rahmen festlegt, müssen Sie es in eine Box setzen. Dazu lrboxsetzt die Umgebung den Inhalt in eine Box und entfernt eine Gruppierungsebene. Im Folgenden verwende ich zuerst den Standard minipageund definiere ihn dann neu (normalerweise sollten die Definitionen vor stehen \begin{document}). Es sollte auch mit dem optionalen Argument funktionieren.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen