Duas fotos ao lado de uma grande, para caber na largura do texto

Duas fotos ao lado de uma grande, para caber na largura do texto

Quero duas fotos ao lado de outra grande e cada foto tem um tamanho diferente (como no exemplo abaixo).

insira a descrição da imagem aqui

Quero que todas as imagens mantenham sua proporção e que as imagens à direita tenham a mesma altura. Além disso, todas as 3 imagens devem ser tão largas quanto a \textwidth.

Eu tentei subfiguree \resizebox, mas não consegui definir as alturas certas dependendo da altura da imagem esquerda. Tentar ajustar manualmente todos os tamanhos é muito tedioso. Existe uma maneira fácil de fazer isso?

Editar: Aqui estão mais informações para o meu problema. Meu código atual se parece com isso. Acabei de ajustar os tamanhos das fotos até que caibam (erro no final do teste). Um processo muito tedioso.

As fotos possuem legenda individual com (a), (b) e (c) e toda a foto possui outra legenda.

Seria bom gerenciar o tamanho das imagens certas para que elas não fossem maiores que a esquerda e que todas as 3 imagens não excedessem a largura de linha.

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

Responder1

Se denotarmos por

  • aeba largura e a altura da imagem à esquerda,
  • ceda largura e a altura da imagem no canto superior direito,
  • eefa largura e a altura da imagem no canto inferior direito,
  • va lacuna entre a imagem à direita,
  • ca largura total desejada (um pouco menos que \textwidth),

podemos denotar porx,simezos fatores de escala necessários para as três imagens (esquerda, canto superior direito e canto inferior direito). Então resolvendo o sistema linear produz

x= (2boa noite+tudo)/(ser+ 2​af)
sim= (amigo-afv)/(bde+ 2​adf)
z= (cara-av)/(ser+ 2​af)

A limitação óbvia é que o segundo e o terceiro fatores de escala são positivos.

Aqui está uma implementação.

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

insira a descrição da imagem aqui

Se você quiser subfiguras, substitua minipagepor 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}

insira a descrição da imagem aqui

Responder2

uma solução @egreg--https://tex.stackexchange.com/a/87976/197451

Você pode usar algum ambiente de minipágina e \sboxmedir a altura da caixa maior.

Observe que usei subfige não o obsoleto subfigure. Também subcaptionpode ser uma escolha e deveria se você usar hyperref.

A demoopção graphicxé apenas produzir algumas imagens simuladas; Dei-lhes uma altura para mostrar o exemplo.

insira a descrição da imagem aqui

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

informação relacionada