LaTeXで2つの図を同じページにとどまらせるにはどうすればよいですか?


84

1ページに図として表示したい画像が2つあります。それぞれが利用可能なスペースの半分弱を消費するため、そのページに他のものを置くスペースはあまりありませんが、両方の図に十分なスペースがあることはわかっています。[ht]と[hb]、両方[h]と両方[ht]で図を配置しようとしましたが、それでも同じページにこれら2つの画像を取得できず、代わりに少なくともいくつかの段落を配置しました。

これらの2つの図を同じページにとどまらせるにはどうすればよいですか?


TeX.SXでも最近同様の質問がありましたが、コマンドを使用した回答\afterpageが最良の回答だと思います。
私は

回答:


140

1つのフィギュア環境内に2つのフィギュアを配置できます。例えば:

\begin{figure}[p]
\centering
\includegraphics{fig1}
\caption{Caption 1}
\includegraphics{fig2}
\caption{Caption 2}
\end{figure}

キャプションごとに個別の図番号が生成されます。


2
それは覚えておくべき良い答えです:)。考えたことはありませんが、きれいに見えます:)。
bastijn 2009年

5
もう1つの可能性は、サブフィギュアパッケージと、のようなフィギュア環境内のコマンド\subfloat[Caption]{\includegraphics{file}}です。
ルパートナッシュ

10
ただし、2つの異なる図に個別にラベルを付けることはできないようです
Mulone 2012年

1
これが最良のように思われるため、「正解」フラグを変更しました。
Kusti 2012

2
@ Mulone-環境の\label中に入れればできるようです\caption
クリス

20

同じトピックに関する画像が必要な場合は、subfigureパッケージと構造を使用できます。

\begin{figure}
 \subfigure[first image]{\includegraphics{image}\label{first}}
 \subfigure[second image]{\includegraphics{image}\label{second}}
 \caption{main caption}\label{main_label}
\end{figure}

たとえば、2つの異なる画像を並べて表示したい場合は、次のものを使用できます。

\begin{figure}
 \begin{minipage}{.5\textwidth}
  \includegraphics{image}
  \caption{first}
 \end{minipage}
 \begin{minipage}{.5\textwidth}
  \includegraphics{image}
  \caption{second}
 \end{minipage}
\end{figure}

列の画像の場合、ソースには[1] [2] [3] [4]が含まれますが、次のようになります。

[1] [3]

[2] [4]。


1
ここでJerredRusselが言及した構造を使用することもできます:stackoverflow.com/questions/1673942/latex-table-positioning ポイントはfloatパッケージを使用しています。
クローリー

15

図とテキストを混ぜようとしたときにこの問題が発生しました。私のために働いたのは、「!」のない「H」オプションでした。オプション。 \begin{figure}[H]
「H」は、図をコード内の正確な場所に配置しようとします。これには、含める必要があります \usepackage{float}

オプションはここで説明されています


1
はい、floatパッケージは間違いなくここで正解です。私はよくそれを使って嘆きます!シンボルは、コンパイラが画像を配置する場所を自分で決定するだけなので、\begin{figure}[h!]TeXで書き直すこともでき\pleaseます。今回はあなたを無視するのではなく、ただウィンクします。floatパッケージには、それはあなたが確かにやりたいようになります。
ely 2012

6

両方を同じページに配置する必要があり、両方が基本的にページ全体を占める場合は、LaTeXに両方を独自のページに配置するように指示することをお勧めします。

\begin{figure}[p]

1ページに2つの図を表示し、その上下に数行のテキストを表示することは、適切な活版印刷の原則(たとえば、醜い)に反する可能性があります。


ちなみに、機能する理由[!h]は、テキストのあるページのフロートに割り当てるスペースの通常の制限をオーバーライドするようにLaTeXに指示しているためです。上で暗示されているように、制限があるのには理由があります。多少緩めることができると言っているのではありません。そのためのFAQを参照してください


1
より正確に[p]は、floatのみを含むページにそれらを配置するようにコンパイラーに指示するだけです。そのため、サイズに応じて、2つの図のページが別々になる場合とそうでない場合があります。
fotNelton 2013年


1

最初に[h!]を試してください。それ以外の場合は、醜い方法で行うことができます。

LateXは、それ自体の配置を管理するため、このような制約のある画像を配置するのは少し難しいです。その場所でフィギュアが欲しい場合に私が通常行うことは、次のようなことです|:

text in front of image here

 \newpage 
 \figure1 
 \figure2

text after images here

私はそれがそれをする正しい方法ではないかもしれないことを知っています、しかしそれは魅力のように働きます:)。

//編集

ページの上部に小さなテキストが必要な場合も同じことができますが、/ clearpageを使用するだけです。もちろん、それらを少し小さくスケーリングして、もう発生しないようにすることもできます。見えない空白はあなたが思っているより少し大きいかもしれません、私は常に同じページに表示されるまで画像を縮小しようとします、ただ1%のオーバーラップがないことを確認するためにこれをすべて必要としないだけです。


ありがとう、[h!]はうまくいきました!この場合、「醜い方法」は、私がそれを必要としなかったとしても知っておくとよいことのように思われるので、私はあなたの答えを支持しました。
Kusti
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.