newfloat を使用して環境を作成したフロートの位置を強制するにはどうすればよいですか?

newfloat を使用して環境を作成したフロートの位置を強制するにはどうすればよいですか?

正しいページに表示されない頑固なフロートがあります (実際には、それには理由がありません。フロートは 1 ページ全体を占め、何らかの理由で章の終わりの後に表示されますが、フロートは 1 ページ全体を占めるため、要求した場所に正確に挿入できます)。

残念ながら、これは私自身の新しい float 環境であるため、パッケージ float で H を使用することはできません。

私が試したことは次のとおりです(エラーが発生しました):

\documentclass{book}

\usepackage{float}
\usepackage{newfloat}



\DeclareFloatingEnvironment[
    fileext=loa,
    listname=List of A,
    name=FloatA,
    placement=tbhp,
    within=chapter,
]{floata}


\begin{document}

\begin{floata}[Ht]
\caption[float a]{float a example}
\end{floata}


\end{document}

答え1

Hを使用する場合は、単独で使用する必要があります。 の意味は、H環境をフロートにしないことであるため、フロート オプションと組み合わせて使用​​​​することは意味がありません。 を使用しない場合は、省略すると、 LaTex がフロート ページを使用しないように強制されるため、必要になることHに注意してください。これは、通常、大きなフロートに必要なことです。LaTex にフロートを配置するための正当な位置を指定しないと、通常は章の最後でフラッシュされるまで保留されます。pp\clearpage

\documentclass{book}

\usepackage{float}
\usepackage{newfloat}



\DeclareFloatingEnvironment[
    fileext=loa,
    listname=List of A,
    name=FloatA,
    placement=tbhp,
    within=chapter,
]{floata}


\begin{document}

\begin{floata}[H]
\caption[float a]{float a example}
\end{floata}


\end{document}

関連情報