Плавающие объекты
Некоторые типографические элементы, такие как фигуры и таблицы, не могут быть разбиты между страницами. Они должны быть набраны вне обычного потока текста, например, плавающие вверху следующей страницы.
LaTeX может иметь несколько разных классов плавающего материала. По умолчанию используются два класса, figure (см. figure) и table (см. table), но вы можете создать новый класс с пакетом float.
В пределах любого одного класса плавающих объектов LaTeX всегда соблюдает порядок, так что первая фигура в исходном документе должна быть набрана перед второй фигурой. Однако LaTeX может смешивать классы, поэтому может случиться, что, хотя первая таблица появляется в исходном коде перед первой фигурой, она появляется в выводе после неё.
Расположение плавающих объектов подчиняется параметрам, указанным ниже, которые ограничивают количество плавающих объектов, которые могут появиться вверху страницы, внизу и т. д. Если количество плавающих объектов, ожидающих обработки, настолько велико, что ограничения препятствуют их размещению на одной странице, LaTeX размещает то, что может, а оставшееся откладывает на следующую страницу. Таким образом, плавающие объекты могут оказаться напечатанными далеко от своего места в исходном коде. В частности, большой плавающий объект может мигрировать в конец документа. В этом случае, поскольку все плавающие объекты в классе должны появляться в последовательном порядке, каждый последующий плавающий объект в этом классе также появляется в конце.
В дополнение к изменению параметров для каждого плавающего объекта вы можете настроить, где алгоритм размещения плавающих объектов пытается его разместить, используя его аргумент placement. Возможные значения — последовательность указанных ниже букв. По умолчанию для figure и table, в обоих классах article и book, используется tbp.
t-
(Вверху)—вверху страницы текста.
b-
(Внизу)—внизу страницы текста. (Однако,
bне разрешено для полноэкранных плавающих объектов (figure*) с двухколоночным выводом. Для улучшения этого используйте пакет stfloats или dblfloatfix, но см. обсуждение в замечаниях в разделе FAQ: https://www.texfaq.org/FAQ-2colfloat. h-
(Здесь)—в позиции в тексте, где появляется окружение
figure. Однако,hне разрешено само по себе;tавтоматически добавляется.Чтобы абсолютно принудительно разместить плавающий объект «здесь», вы можете
\usepackage{float}и использовать определяемый им спецификаторH. Для более подробного обсуждения см. запись в FAQ по адресу https://www.texfaq.org/FAQ-figurehere. p¶-
(Страница плавающих объектов)—на отдельной странице плавающих объектов, которая содержит только плавающие объекты, а не текст.
!-
Используется в дополнение к одному из вышеперечисленных; только для этого плавающего объекта LaTeX игнорирует ограничения как на количество плавающих объектов, которые могут появляться, так и на относительные объёмы текстовой и плавающей части страницы. Спецификатор
!не означает «разместить плавающий объект здесь»; см. выше.
Примечание: порядок, в котором буквы появляются в аргументе placement, не меняет порядок, в котором LaTeX пытается разместить плавающий объект; например, btp имеет тот же эффект, что и tbp. Всё, что делает placement, — это то, что если буква отсутствует, алгоритм не пытается разместить плавающий объект в этом месте. Таким образом, по умолчанию LaTeX, tbp, пытается разместить плавающий объект в любом месте, кроме места его появления в исходном коде.
Чтобы предотвратить перемещение плавающих объектов в конец документа или главы, можно использовать команду \clearpage, чтобы начать новую страницу и вставить все ожидающие плавающие объекты. Если разбиение страницы нежелательно, можно использовать пакет afterpage и выдать команду \afterpage{\clearpage}. Это подождёт, пока текущая страница не будет завершена, а затем удалит все ожидающие плавающие объекты.
LaTeX может набрать плавающий объект до места его появления в исходном коде (хотя и на той же странице вывода), если в параметре placement есть спецификатор t. Если этого не нужно, и удаление t неприемлемо, так как оно предотвращает размещение плавающего объекта в верхней части следующей страницы, вы можете предотвратить это, используя пакет flafter или команду \suppressfloats[t], которая перемещает плавающие объекты для верхнего положения на этой странице на следующую страницу.
Параметры, относящиеся к долям страницы, занимаемой плавающими и неплавающими текстами (изменить их командой \renewcommand{parameter}{decimal between 0 and 1}) :
\bottomfraction¶-
Максимальная доля страницы, разрешенная для заполнения плавающими объектами внизу; значение по умолчанию ‘.3’.
\floatpagefraction¶-
Минимальная доля страницы плавающих объектов, которая должна быть заполнена плавающими объектами; значение по умолчанию ‘.5’.
\textfraction¶-
Минимальная доля страницы, которая должна быть текстом; если плавающие объекты занимают слишком много места для сохранения этого количества текста, плавающие объекты будут перемещены на другую страницу. Значение по умолчанию ‘.2’.
\topfraction¶-
Максимальная доля вверху страницы, которая может быть заполнена плавающими объектами; значение по умолчанию ‘.7’.
Параметры, относящиеся к вертикальному отступу вокруг плавающих объектов (изменить их командой вида \setlength{parameter}{length
expression}):
\floatsep¶-
Отступ между плавающими объектами вверху или внизу страницы; значение по умолчанию ‘12pt plus2pt minus2pt’.
\intextsep¶-
Отступ сверху и снизу плавающего объекта посередине основного текста; значение по умолчанию ‘12pt plus2pt minus2pt’ для документов с 10 и 11-точечным шрифтом, и ‘14pt plus4pt minus4pt’ для 12-точечных документов.
\textfloatsep¶-
Отступ между последним (первым) плавающим объектом вверху (внизу) страницы; значение по умолчанию ‘20pt plus2pt minus4pt’.
Счётчики, относящиеся к количеству плавающих объектов на странице (изменить их командой вида \setcounter{ctrname}{natural
number}):
bottomnumber¶-
Максимальное количество плавающих объектов, которые могут появиться внизу страницы текста; значение по умолчанию 1.
dbltopnumber¶-
Максимальное количество плавающих объектов полного размера, которые могут появиться вверху страницы с двумя колонками; значение по умолчанию 2.
topnumber¶-
Максимальное количество плавающих объектов, которые могут появиться вверху страницы текста; значение по умолчанию 2.
totalnumber¶-
Максимальное количество плавающих объектов, которые могут появиться на странице текста; значение по умолчанию 3.
Основная запись в FAQ TeX, относящаяся к плавающим объектам https://www.texfaq.org/FAQ-floats, содержит предложения по изменению параметров по умолчанию LaTeX, чтобы уменьшить проблему плавающих объектов, которые перемещаются в конец. Полное объяснение алгоритма размещения плавающих объектов содержится в статье Франка Миттельбаха «Как повлиять на позицию окружений типа figure и table в LaTeX?» (https://www.latex-project.org/publications/2014-FMi-TUB-tb111mitt-float-placement.pdf).
© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/Floats.html