要使用許多面板等或投影機幻燈片微調圖形,有時會派上用場,快速查看小型頁面、圖形等的\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
和\endminipage
with 。要創建一個將其設置在框架中的環境,您需要將其放入盒子中。為此,環境將內容放入一個盒子中並刪除一級分組。下面我先使用預設的,然後重新定義它(通常定義應該在之前)。它還應該與可選參數一起使用。\let
\includegraphics
minipage
lrbox
minipage
\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}