많은 패널 등이 있는 그림이나 비머 슬라이드를 미세 조정하려면 미니페이지, 그래픽 등의 윤곽선을 빠르게 확인하는 것이 때때로 유용할 수 있습니다. 이는 각 개체를 \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
따라서 for 와 같은 방식으로 \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}