it-swarm.com.ru

Как заставить две фигуры оставаться на одной странице в LaTeX?

У меня есть два изображения, которые я хочу отобразить на странице в виде цифр. Каждый из них съедает чуть меньше половины доступного пространства, поэтому на этой странице мало места для других вещей, но я знаю, что для обеих фигур достаточно места. Я попытался поместить цифры с помощью [ht] и [hb], обоих [h] и обоих [ht], но все же я не могу получить эти два изображения на одной странице, а вместо этого по крайней мере несколько абзацев между ними.

Как заставить эти две фигуры остаться на одной странице?

78
Kusti

Вы можете поместить две фигуры в одну фигуру. Например:

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

Каждая подпись будет генерировать отдельный номер рисунка.

124
Rob Hyndman

Если вы хотите иметь изображения на одну и ту же тему, вы можете использовать пакет 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}

Если вы хотите иметь, например, два разных изображения рядом друг с другом, вы можете использовать:

\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].

20
Crowley

У меня была эта проблема при попытке смешать цифры и текст. Для меня сработал вариант "Н" без "!" вариант. \begin{figure}[H]
"H" пытается заставить цифру быть точно в том месте, где вы поместили ее в код. Для этого необходимо включить \usepackage{float}

Варианты объяснены здесь

13
Schroeder

Если вы хотите, чтобы они оба были на одной странице, и они будут занимать в основном всю страницу, то лучше всего попросить LaTeX разместить их обоих на отдельной странице!

\begin{figure}[p]

Вероятно, было бы против здравых типографских принципов (например, некрасиво) иметь две фигуры на странице с несколькими строчками текста над или под ними.


Кстати, причина того, что [!h] работает, заключается в том, что он говорит LaTeX переопределить свои обычные ограничения на то, сколько места должно быть выделено для плавающих объектов на странице с текстом. Как подразумевается выше, есть причина, по которой ограничения существуют. Это не значит, что их можно ослабить; смотрите FAQ о том, как это сделать.

5
Will Robertson

Попробуйте добавить !, например, [h!].

2
Bastien Léonard

попробуйте сначала [ч!], но в противном случае вы можете сделать это безобразно.

LateX немного сложен в размещении изображений с такими ограничениями, как он сам управляет размещением. Что я обычно делаю, если хочу, чтобы фигура прямо в этом месте, делала что-то вроде |:

text in front of image here

 \newpage 
 \figure1 
 \figure2

text after images here

Я знаю, что это может быть неправильный способ сделать это, но это работает как шарм :).

// редактировать

Вы можете сделать то же самое, если вы хотите немного текста в верхней части страницы, но затем просто используйте/clearpage. Конечно, вы также можете масштабировать их немного меньше, чтобы это больше не происходило. Может быть, невидимый пробел немного больше, чем вы подозреваете, я всегда стараюсь уменьшить свое изображение, пока оно не появится на той же странице, просто чтобы точно знать, что перекрытие в 1% не делает всего этого ненужным ,.

1
bastijn