텍스트 너비에 맞게 큰 그림 옆에 두 장의 그림

텍스트 너비에 맞게 큰 그림 옆에 두 장의 그림

다른 큰 사진 옆에 두 장의 사진이 있고 모든 사진의 크기가 다릅니다(아래 예와 같이).

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

모든 사진이 가로 세로 비율을 유지하고 오른쪽 사진의 높이가 동일해야 합니다. 또한 3장의 사진 모두 너비가 와 같아야 합니다 \textwidth.

subfigure및 을 시도해 보았지만 \resizebox왼쪽 그림의 높이에 따라 올바른 높이를 설정할 수 없습니다. 모든 크기를 수동으로 맞추는 것은 너무 지루한 일입니다. 쉽게 할 수 있는 방법이 있습니까?

편집: 내 문제에 대한 추가 정보는 다음과 같습니다. 내 현재 코드는 다음과 같습니다. 사진이 맞을 때까지 크기를 조정했습니다(시험 종료 오류). 매우 지루한 과정입니다.

사진에는 ​​(a), (b), (c)라는 개별 캡션이 있고 전체 사진에는 또 다른 캡션이 있습니다.

오른쪽 사진은 왼쪽 사진보다 크지 않고, 3장의 사진 모두 선폭을 넘지 않도록 크기를 관리하면 좋을 것 같습니다.

\begin{figure}[H]
\centering
\begin{subfigure}[p]{.45\textwidth}
    \includegraphics[height=\textheight]{MMC.eps}
    \caption{MMC Schaltbild, \cite{Eremia.2016}} \label{fig:ch2_MMC
\end{subfigure}
\qquad
\begin{subfigure}[p]{.45\textwidth}
    \centering
    \includegraphics[height=0.39\textheight]{Halfbridge.eps}
    \caption{Halfbridge, \cite{Shah.17.07.201621.07.2016}} \label{fig:ch2_Halfbridge}

    \vspace{2ex}

    \includegraphics[height=0.39\textheight]{Fullbridge.eps}
    \caption{Fullbridge, \cite{Shah.17.07.201621.07.2016}} \label{fig:ch2_Fullfbridge}
\end{subfigure}
\caption{MMC and Submodule}\end{figure}

답변1

다음으로 표시하면

  • 그리고왼쪽 그림의 너비와 높이,
  • 그리고오른쪽 상단에 있는 그림의 너비와 높이,
  • 이자형그리고에프오른쪽 하단에 있는 그림의 너비와 높이,
  • V오른쪽 사진 사이의 간격,
  • 원하는 전체 너비(보다 약간 작음 \textwidth),

우리는 다음과 같이 나타낼 수 있습니다엑스,와이그리고세 개의 그림(왼쪽, 오른쪽 위, 오른쪽 아래)에 필요한 배율 인수. 그런 다음 선형 시스템을 해결하면 다음이 발생합니다.

엑스= (2​fw+에브)/(BE+ 2​아프)
와이= (썅년-afv)/(bde+ 2​adf)
= (bw-평균)/(BE+ 2​아프)

명백한 한계는 두 번째 및 세 번째 스케일링 계수가 양수라는 것입니다.

구현은 다음과 같습니다.

\documentclass{article}
\usepackage{graphicx,xfp}

\begin{document}

\begin{figure}

\sbox0{\includegraphics{example-image-a}}
\sbox2{\includegraphics{example-image-1x1}}
\sbox4{\includegraphics{example-image-b}}

\edef\Da{\fpeval{\wd0}}\edef\Db{\fpeval{\ht0}}
\edef\Dc{\fpeval{\wd2}}\edef\Dd{\fpeval{\ht2}}
\edef\De{\fpeval{\wd4}}\edef\Df{\fpeval{\ht4}}

\edef\Dv{\fpeval{8ex}}
\edef\Dw{\fpeval{\textwidth-3em}}

\edef\Dx{\fpeval{(2*\Df*\Dw + \De*\Dv)/(\Db*\De + 2*\Da*\Df)}}
\edef\Dy{\fpeval{(\Db*\Df*\Dw - \Da*\Df*\Dv)/(\Db*\Dd*\De + 2*\Da*\Dd*\Df)}}
\edef\Dz{\fpeval{(\Db*\Dw - \Da*\Dv)/(\Db*\De + 2*\Da*\Df)}}

\sbox{0}{%
  \begin{minipage}[b]{\fpeval{\Da*\Dx}pt}
  \vspace{0pt}
  \scalebox{\Dx}{\box0}
  \caption{First pic}
  \end{minipage}%
}\usebox{0}\hfill
\begin{minipage}[b][\ht0][s]{\fpeval{\Dw-\Da*\Dx}pt}
\centering
\vspace{0pt}
\scalebox{\Dy}{\box2}
\caption{Second pic}

\vfill

\scalebox{\Dz}{\box4}
\caption{Third pic}
\end{minipage}

\end{figure}

\end{document}

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

하위 그림을 원할 경우 minipage로 대체하십시오 subfigure.

\documentclass{article}
\usepackage{graphicx,xfp,subcaption}

\begin{document}

\begin{figure}

\sbox0{\includegraphics{example-image-a}}
\sbox2{\includegraphics{example-image-1x1}}
\sbox4{\includegraphics{example-image-b}}

\edef\Da{\fpeval{\wd0}}\edef\Db{\fpeval{\ht0}}
\edef\Dc{\fpeval{\wd2}}\edef\Dd{\fpeval{\ht2}}
\edef\De{\fpeval{\wd4}}\edef\Df{\fpeval{\ht4}}

\edef\Dv{\fpeval{8ex}}
\edef\Dw{\fpeval{\textwidth-3em}}

\edef\Dx{\fpeval{(2*\Df*\Dw + \De*\Dv)/(\Db*\De + 2*\Da*\Df)}}
\edef\Dy{\fpeval{(\Db*\Df*\Dw - \Da*\Df*\Dv)/(\Db*\Dd*\De + 2*\Da*\Dd*\Df)}}
\edef\Dz{\fpeval{(\Db*\Dw - \Da*\Dv)/(\Db*\De + 2*\Da*\Df)}}

\sbox{0}{%
  \begin{subfigure}[b]{\fpeval{\Da*\Dx}pt}
  \vspace{0pt}
  \scalebox{\Dx}{\box0}
  \caption{First pic}
  \end{subfigure}%
}\usebox{0}\hfill
\begin{subfigure}[b][\ht0][s]{\fpeval{\Dw-\Da*\Dx}pt}
\centering
\vspace{0pt}
\scalebox{\Dy}{\box2}
\caption{Second pic}

\vfill

\scalebox{\Dz}{\box4}
\caption{Third pic}
\end{subfigure}

\caption{Global caption}

\end{figure}

\end{document}

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

답변2

@egreg 솔루션--https://tex.stackexchange.com/a/87976/197451

일부 미니페이지 환경을 사용하여 \sbox가장 큰 상자의 높이를 측정할 수 있습니다.

나는 subfig쓸모없는 subfigure. 또한 subcaption선택 사항이 될 수 있으며 를 사용해야 합니다 hyperref.

옵션 demographicx단지 모의 사진을 생성하는 것입니다. 나는 그 예를 보여주기 위해 그들에게 높이를 주었다.

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

\documentclass{article}
\usepackage{subfig}
\documentclass{article}
\usepackage{subfig}
\usepackage[demo]{graphicx}

\newsavebox{\measurebox}

\begin{document}

\begin{figure}
\centering
\sbox{\measurebox}{%
  \begin{minipage}[b]{.33\textwidth}
  \subfloat
    []
    {\label{fig:figA}\includegraphics[width=\textwidth,height=5cm]{figA}}
  \end{minipage}}
\usebox{\measurebox}\qquad
\begin{minipage}[b][\ht\measurebox][s]{.33\textwidth}
\centering
\subfloat
  []
  {\label{fig:figB}\includegraphics[width=\textwidth,height=2cm]{figB}}

\vfill

\subfloat
  []
  {\label{fig:figC}\includegraphics[width=\textwidth,height=2cm]{figC}}
\end{minipage}
\caption{my caption. (a) is .... (b) is .... (c) is ....}
\label{fig:Test}
\end{figure}
\end{document}

관련 정보