web-dev-qa-db-ja.com

LaTeXテーブルの配置

段落の後に4つの表と2番目の段落が続くLaTeXドキュメントがあります。 4つのテーブルを2つの段落の間に表示したい read から、テーブル環境の開始後に[h]オプションを使用する必要があることを意味します(例:\begin{table}[h])。

これを使用すると、最初の2つのテーブルは期待どおり段落1の後に表示されますが、段落2が表示され、最後の2つのテーブルが次のページに表示されます。テーブルを正しい場所に表示するにはどうすればよいですか?

[h!]を使用するなど、位置を修正するためにさまざまなことを試してみましたが、これは効果がないようです。テーブルの後に\clearpageを使用すると、2番目の段落の前にテーブルが表示されるという望ましい効果がありますが、最後の2つのテーブルは独自のページに空白がたくさん残されます。段落は表の直後から始まります。

Paragraph 1...

\begin{table}[h]
    table1...
\end{table}

\begin{table}[h]
   table2...
\end{table}[h]
...

Paragraph 2...
82
Jared Russell

さらにいくつかのグーグルを行った後、LaTeXがテーブルを再配置するのを防ぐことができるfloatパッケージに出会いました。

前文で:

\usepackage{float}
\restylefloat{table}

次に、テーブルごとにH配置オプション(例:\begin{table}[H])を使用して、再配置されないようにします。

152
Jared Russell

これは私のために働いた:

最初のusepackage定義には次のものが含まれます。

\usepackage{placeins}

そして、追加の前後に:

\FloatBarrier
\begin{table}[h]
    \begin{tabular}{llll}
      .... 
    \end{tabular}
\end{table}
\FloatBarrier

これにより、テキスト内の目的の場所に正確にテーブルが配置されます。

18
Don Giulio

テキストと表とテキストが単一のページに収まらない場合はどうなりますか?この方法で組版を強制しようとすると、ページの実行が短すぎる可能性が非常に高くなります。つまり、テーブルはデフォルトでページを分割できないため、次のページにプッシュされ、前のページにギャップを残します。これは出版された本では決して見られないことに気付くでしょう。

フローティング動作は良いことです!ドキュメントが完成するまで、すべての表と図のデフォルト設定として[htbp]を使用することをお勧めします。その場合にのみ、正確な配置を微調整することを検討してください。

追伸 FAQ ;を読んでください。ここでの他のほとんどの答えは、そこに与えられたアドバイスの部分的な組み合わせです。

7
Will Robertson

Wikibooks からの簡単なソリューションを次に示します。

Placeinsパッケージには、コマンド\ FloatBarrierが用意されています。このコマンドを使用して、フロートがその上を移動しないようにすることができます。

すべてのテーブルの前後に\FloatBarrierを配置しました。

5
Jason Bertels

2つのテーブルを隣り合わせにしたい場合は、次を使用できます:(floatパッケージをロードした状態)

\begin{table}[H]
 \begin{minipage}{.5\textwidth}
  %first table
 \end{minipage}
 \begin{minipage}{.5\textwidth}
  %second table
 \end{minipage}
\end{table}

それぞれにキャプションと番号があります。別のオプションはsubfigureパッケージです。

3
Crowley

テーブルの配置

利用可能なパラメーター

テーブルは、次のパラメーターを使用して簡単に配置できます。

  • hフロートhereを配置します。つまり、ソーステキスト内のほぼ同じ位置に配置します(ただし、正確な場所には配置しません)
  • tページのtopの位置。
  • bページのbottomの位置。
  • p float専用の特別なpageページを配置します。
  • ! LaTeXが「適切な」フロート位置を決定するために使用する内部パラメーターをオーバーライドします。
  • H LATEXコードの正確にlocationにフロートを配置します。 floatパッケージが必要です。これはh!と多少同等です。

正確な位置決めのためにH(またはh!)を使用する場合は、プリアンブルでfloatパッケージが正しく設定されていることを確認してください。

\usepackage{float}
\restylefloat{table}

テーブルを同じページ、正確な場所、または少なくともページの上部(ラテックスエンジンに最適な場所)に配置する場合は、hおよびtパラメーターを使用します。このような:

\begin{table}[ht]
    table content ...
\end{table}

ソース: Overleaf.com

3
winklerrr

これをプリアンブルに追加し、必要に応じて値を調整することができます。

 %------------begin Float Adjustment
%two column float page must be 90% full
\renewcommand\dblfloatpagefraction{.90}
%two column top float can cover up to 80% of page
\renewcommand\dbltopfraction{.80}
%float page must be 90% full
\renewcommand\floatpagefraction{.90}
%top float can cover up to 80% of page
\renewcommand\topfraction{.80}
%bottom float can cover up to 80% of page
\renewcommand\bottomfraction{.80}
%at least 10% of a normal page must contain text
\renewcommand\textfraction{.1}
%separation between floats and text
\setlength\dbltextfloatsep{9pt plus 5pt minus 3pt }
%separation between two column floats and text
\setlength\textfloatsep{4pt plus 2pt minus 1.5pt}

特に、\ floatpagefractionに関心があるかもしれません。

3
Mica