\subsection{Subsec1}
First content
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.25\textwidth]{fig1.png}
\caption{W}
\label{fig: W}
\end{center}
\end{figure}
\subsection{subsec2}
Second content
\begin{figure}[h!]
\begin{center}
\includegraphics[width=0.25\textwidth]{fig2.png}
\caption{D}
\label{fig: D}
\end{center}
\end{figure}
Existem conteúdos acima da subsec1 e abaixo da subsec2. no pdf de saída, o subsec1 está na segunda metade de uma planilha. Portanto, não há espaço suficiente para o fig1. Isso faz com que o subsec2 preencha o espaço após o subsec1 e empurra minha fig1 após o subsec2. Isso faz com que fig1 e fig2 sejam um após o outro. Mas preciso do subsec2 entre esses dois figos.
O que devo mudar?
Responder1
Adicione \usepackage{float}
ao seu preâmbulo e, em seguida, altere sua variável where [h!]
para [H]
, isso manterá a figura exatamente onde você a especificou.
Responder2
Para falar a verdade, se você usar float
pacote com H
opção é como dar uma bola para uma criança e depois dizer “não jogue futebol!”.
Além disso, no seu mwe você utilizou um center
ambiente dentro de figure
outro, o que não é bom, pois resulta em um espaço vertical extra adicionado.
Se você não quer que sua figura flutue, simplesmente não use um figure
ambiente. Basta aquele center
com capt-of
pacote para a legenda:
\documentclass{book}
\usepackage{graphicx}
\usepackage{capt-of}
\begin{document}
\subsection{Subsec1}
First content
\begin{center}
\includegraphics[width=0.25\textwidth]{example-image-a}
\captionof{figure}{W}
\label{fig: W}
\end{center}
\subsection{subsec2}
Second content
\begin{center}
\includegraphics[width=0.25\textwidth]{example-image-b}
\captionof{figure}{D}
\label{fig: D}
\end{center}
\listoffigures
\end{document}
Também adicionei \listoffigures
apenas para mostrar que não há problemas em não usar figure
o ambiente: