Tamanho e posicionamento da subfigura de tamanho original diferente

Tamanho e posicionamento da subfigura de tamanho original diferente

Tenho uma figura que possui três subfiguras semelhantes e uma de tamanho diferente (mostrando a legenda das outras três). Estou tendo problemas para fazer com que o tamanho e a colocação no documento pareçam bons.

Este é o meu código atual:

\begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_LS_os.pdf}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_IP_p.pdf}
\caption{}
\end{subfigure}%
\\
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_LS_p.pdf}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=5cm 1mm 5cm 5.2cm, clip=true]{./Data_Figures/Coeff_evo_legend.pdf}
\end{subfigure}%
\end{figure}

Todas as figuras foram cortadas o máximo que pude. Isto dá o seguinte resultado, onde a legenda é muito grande:

insira a descrição da imagem aqui

Mas então tento, por exemplo, mudar o último número para

\includegraphics[width=0.5\textwidth...]{...}

o espaçamento está desativado:

insira a descrição da imagem aqui

Nada mais que tentei funcionou também. Alguma ideia?

Responder1

Com o uso de \sbox{...}você pode medir o tamanho das imagens à esquerda e depois acomodar sua imagem com legenda até sua altura:

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

\begin{document}
    \begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-a}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-b}
\caption{}
\end{subfigure}

\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-c}
\caption{}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\sbox0{\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-c}}%
\includegraphics[height=\ht0,keepaspectratio]{example-image}
\end{subfigure}%
    \end{figure}
\end{document}

O que dá (com o uso example-imagedo graphicxpacote):

insira a descrição da imagem aqui

Com suas imagens reais estimadas a partir da imagem em questão, a largura da imagem com legenda é mais estreita do que a de outra imagem, portanto, conseqüentemente, ela não se projetará fora da largura do texto.

Se a proporção da imagem não for essencial, você poderá limitar sua largura a uma fração da largura disponível, por exemplo:

\includegraphics[width=0.8\textwidth, height=\ht0]{example-image}

Neste caso a imagem fica:

insira a descrição da imagem aqui

Observação:para posicionamento de imagens na segunda linha, o parâmetro de posicionamento subfigureé alterado de [b]para [t]. Seria bom fazer isso também para as subfiguras na primeira linha da imagem.

Termo aditivo:Outra possibilidade de ajustar a imagem à legenda é usar o seguinte código para a última subimagem:

\begin{subfigure}[t]{0.5\textwidth}
\sbox0{\includegraphics[width=0.9\textwidth,%
                        trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}%
\centering
\framebox{\includegraphics[trim=52mm -3.5ex 52mm 53mm,clip,height=\ht0]{./Data_Figures/Coeff_evo_legend}}
\end{subfigure}%

Considerando esta parte do código e após o corte apropriado de suas imagens originais, especial contendo legenda, meu MWE fornece:

insira a descrição da imagem aqui

São adicionados quadros ao redor das imagens para que seja melhor observar o corte das imagens. É claro que, em uso real, esses quadros tiveram de ser omitidos.

Note-se que a medição da altura da imagem considera a altura total da imagem (com espaço em branco ao seu redor). Considere esta altura que a imagem da legenda fica muito alta, então é necessário adicionar um espaço em branco abaixo dela que simula o texto abaixo do gráfico (rótulos de escala, rótulo de eixo) na imagem à esquerda. Eu estimo que essa altura equivalente é 3exa que adiciono aos valores de corte.

O código completo com quadros ao redor da imagem é:

    \documentclass{article}
    \usepackage{subcaption}
    \usepackage{calc}
    \usepackage{graphicx}

\begin{document}
    \begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
                           trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_os}}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
                           trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_IP_p}}
\caption{}
\end{subfigure}

\bigskip
\begin{subfigure}[t]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
                           trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}
\caption{}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\sbox0{\includegraphics[width=0.9\textwidth,%
                        trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}%
\centering
\includegraphics[trim=52mm -3.5ex 52mm 53mm,clip,height=\ht0]{./Data_Figures/Coeff_evo_legend}
\end{subfigure}
    \end{figure}
\end{document}

Pelo código você pode observar que o principal problema era o corte incorreto da imagem com a legenda (você deixou o espaço em branco superior).

Responder2

A razão para a legenda ser deslocada dessa forma é porque a [b]opção do subfigureambiente diz para alinhar o conteúdo na parte inferior; daí porque a parte inferior da legenda está no mesmo nível que a parte inferior do arquivo (c).

Se você quiser alinhar os centros de cada subfigura, use [c]e se quiser alinhar o topo de cada subfigura, use [t]:

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

\begin{document}
    \begin{figure}
    \begin{subfigure}[c]{0.5\textwidth}
    \centering
    \includegraphics[width=\textwidth]{1.png}
    \caption{Foo}
    \end{subfigure}
    \begin{subfigure}[c]{0.5\textwidth}
    \centering
    \includegraphics[width=\textwidth]{2.png}
    \caption{Bar}
    \end{subfigure}
    \end{figure}
\end{document}

alinhado ao centro

informação relacionada