В LaTeX есть ли способ поместить float автоматически после того, где он впервые упоминается?

В настоящее время я пишу длинный одностолбцовый документ, содержащий множество поплавков (рисунки и таблицы). Я знаю обычные варианты b/h/p/t для размещения поплавков в латексе. Однако мне было интересно, существует ли пакет или макрос, который позволит мне сделать следующее автоматически: поместите float автоматически сразу после его первой ссылки. Поэтому, если ссылка появляется в верхней части страницы x, то поплавок, скорее всего, появится в нижней части страницы x или, возможно, на странице (вверху) страницы x + 1. В любом случае это не должно происходить до ссылки.

Я знаю, что этого может быть трудно достичь, но тогда я тоже не лактевый гуру...

(Обратите внимание, что этот вопрос отличается от этого.

Ответы

Ответ 1

LaTeX Companion говорит, что пакет flafter может использоваться для обеспечения того, чтобы поплавки никогда не помещались перед их ссылками. Чтобы использовать это, добавьте следующее в преамбулу документа:

\usepackage{flafter}

Обратите внимание, что согласно этот поток, то, что flafter делает, гарантирует, что поплавок никогда не появится перед его позицией в источнике LaTeX код.

Это может сработать, если в вашем документе имеется только несколько поплавков. Для документов с большим количеством поплавков размещение становится намного сложнее, и вы можете обнаружить, что все ваши поплавки отображаются вместе в конце документа или главы или вы можете получить ошибку "Слишком много необработанных поплавков". Я предлагаю прочитать эту страницу и эту страницу в UK TeX FAQ для получения дополнительных предложений.