
テーブルを希望どおりの位置に保つのが少し難しいと感じています。MWE も作成できません。ただし、ドキュメントはアップロードされていますここ。
基本的には、
本文(~\ref{})は70ページにあり、実際の表は84ページにあります。
本文(~\ref{})は71ページにあり、実際の表は85ページにあります。
本文(~\ref{})は72ページにあり、実際の表は86ページにあります。
どこ
\begin{table}[!hp]
すべてのテーブルの先頭に使用されています。
いずれの場合も、テキストは\subsection{}
s 形式です。表はセクション全体の最後に配置されているようです。
私が期待しているのは、テーブルがページ上のテキストと近くなることですnext
。しかし、単純なこと!hp
はまったく機能しません。
答え1
一般的なアドバイスは(主にウィルの回答にあります)以前の質問
ただし、(何らかの理由で) テキスト ページのフロートを避け、h と p のみを許可するという特定の要件があります。
これにより、配置が難しくなります。フロートが「ここ」に収まらない場合 (通常は、そのポイントがページ上で低すぎてフロートが収まらない場合)、LaTeX はフロート ページを作成するためにフロートを保留します。非常に空っぽのページを避けるために、少なくとも\floatpagefraction
1 ページになるまで待機します ( を使用する場合、この割合は無視されません!
)。 のデフォルトでは、article
これは 0.5 であるため、少なくともページの半分は埋める必要があります。
つまり、最初の図の高さがページの半分よりわずかに小さい 2 つの図がある場合、その位置はページの下半分になるため、約半数のケースでそれらの図は「ここ」に収まりません。最初のフロートはページが短すぎるためフロート ページを作成できませんが、2 番目のフロートの方が大きい場合、または 2 番目のフロートの方が小さい場合でも、2 つの図とその間の隙間のためのスペースがない場合、2 つの図はフロート ページに収まりません\floatsep
。つまり、 の設定では配置できないフロートが非常に簡単に作成され、すべての図が順序どおりに保持されるため、1 つの図が配置できなくなると、すべてが配置できなくなります。その後、それらはドキュメントまたはセクションの最後で[hp]
でフラッシュされるまで保持されます。\clearpage
したがって、オプションを使用する場合は、任意のフロートのシーケンスを配置できるように十分に低く[hp]
設定する必要があります。\floatpagefraction
最も簡単なのは、これを非常に低く設定することです。たとえば、0.01 です。こうすると、フロートは 1 ページを超えてフロートすることはなくなり、常にすぐに送信されます。ただし、フロートは保持されないため、LaTeX は次のフロートが収まるかどうかを待つことはなく、フロート ページにはページごとに 1 つのフロートしか含まれません。
答え2
浮遊しているオブジェクトをその位置に近づけておく方法はいくつかあります。
フロート オブジェクトがどのように機能するかについては、次の優れた回答を参照してください。
https://tex.stackexchange.com/a/39020/59716
オプションの配置命令を使用しても、[!hp]
あまりメリットはありません。LaTeX が float オブジェクトを配置するためのいくつかの選択肢、つまりb
と がなくなりt
、!
と が追加されますh
。
オプションを指定しない場合の標準の配置は ですがbtp
、 float パッケージを使用してこのデフォルトを変更できます。
\usepackage{float} \floatplacement{table}{htbp}
をデフォルトとして追加しますh
。
役立つもう 1 つのパッケージは です。これは、現在のすべてのフロートをその前に強制的に配置するためのplaceins
コマンド を提供します。\FloatBarrier
次のようにロードすると:
\usepackage[section, below]{placeins}
フロートは、そのセクションに属していないページで実行されることはありません。