\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}
Есть содержимое выше subsec1 и ниже subsec2. В выходном pdf subsec1 находится во второй половине листа. Поэтому для fig1 недостаточно места. Это заставляет subsec2 заполнять пространство после subsec1 и вталкивает мой fig1 после subsec2. Это делает fig1 и fig2 один за другим. Но мне нужен subsec2 между этими двумя fig.
Что мне следует изменить?
решение1
Добавьте \usepackage{float}
в преамбулу, а затем измените переменную where [h!]
на [H]
, это сохранит цифру именно там, где вы ее указали.
решение2
Честно говоря, если вы используете float
пакет с H
опцией, это все равно, что дать ребенку мяч, а потом сказать ему: «Не играй в футбол!».
Более того, в вашем примере вы использовали center
среду внутри figure
среды, что не есть хорошо, поскольку приводит к добавлению дополнительного вертикального пространства.
Если вы не хотите, чтобы ваша фигура плыла, просто не используйте окружение figure
. Достаточно того, center
что с capt-of
пакетом для подписи:
\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}
Я также добавил, \listoffigures
чтобы показать, что нет никаких проблем в том, чтобы не использовать figure
окружение: