모든 미니페이지/includegraphics/ 주변의 프레임(fbox)

모든 미니페이지/includegraphics/ 주변의 프레임(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

따라서 for 와 같은 방식으로 \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}

여기에 이미지 설명을 입력하세요

관련 정보