所有小頁面/包括圖形/周圍的框架(fbox)

所有小頁面/包括圖形/周圍的框架(fbox)

要使用許多面板等或投影機幻燈片微調圖形,有時會派上用場,快速查看小型頁面、圖形等的\fbox{}輪廓\frame{}。然而,這很乏味。

我想最簡單的解決方案是重新定義標題中的小頁、包含圖形、子圖等,以便將它們放置在\fbox{}整個文件中。然後,只要需要幀,就可以簡單地取消註釋這些重新定義。當然,所有選項等仍應受到支援。如何才能實現這個目標?

以下是一個包含兩個圖形的範例,首先是原始圖形,然後是手動 fbox。目標是透過重新定義的命令,第一個圖形看起來像第二個圖形。

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

編輯:

解答\includegraphics如下(感謝@Skillmon指點我到它):

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

對於指令區塊(小型頁面、子圖)如何達到相同的效果?

答案1

一個應該適用於minipage. \begin{minipage}...\end{minipage}(大致)相當於

\begingroup
\minipage
...
\endminipage
\endgroup

因此您需要以與 相同的方式保存\minipage\endminipagewith 。要創建一個將其設置在框架中的環境,您需要將其放入盒子中。為此,環境將內容放入一個盒子中並刪除一級分組。下面我先使用預設的,然後重新定義它(通常定義應該在之前)。它還應該與可選參數一起使用。\let\includegraphicsminipagelrboxminipage\begin{document}

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

在此輸入影像描述

相關內容