\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 が交互に表示されます。ただし、これら 2 つの fig の間には subsec2 が必要です。
何を変えれば良いでしょうか?
答え1
\usepackage{float}
をプリアンブルに追加し、where 変数[h!]
を に変更すると[H]
、指定した場所に図が正確に保持されます。
答え2
本当のことを言うと、オプションfloat
付きのパッケージを使用するとH
、子供にボールを与えて「サッカーをしてはいけない」と言うようなものです。
さらに、mwe では、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}