Де насправді приземляються плаваючі
htbp, чому примусове тут часто не вдається, наближаючи середовище до тексту.
Де насправді приземляються плаваючі
Рисунки та таблиці в LaTeX є плаваючими, що означає, що позиція коду у вашому джерелі є пропозицією, а не інструкцією. LaTeX переміщується, щоб сторінки були рівномірно заповнені, уникали напівпорожніх сторінок і дотримувалися типографічних обмежень, як-от кількість зображень на сторінці. Це найбільший культурний шок від текстового процесора, і розуміння системи розміщення економить години боротьби з нею.
Що означає htbp
Кожне середовище float приймає необов’язковий список аргументів, де LaTeX дозволено його розміщувати:
\begin{figure}[htbp] % here, top, bottom, page of floatsКожна літера є дозволом. h дозволяє float “тут”, у місці тексту, де з’являється код. t дозволяє створити верхню частину сторінки, b — нижню частину сторінки, а p дозволяє окрему плаваючу сторінку, яка містить лише малюнки та таблиці. LaTeX оцінює їх приблизно в такому порядку для кожної створеної сторінки, беручи перше розташування, яке задовольняє його внутрішні правила щодо інтервалів і балансу сторінок. Букви надають варіанти, а не висловлюють ранжовані побажання, тому перерахування всіх чотирьох дає LaTeX найбільше можливостей для розміщення float десь близько та розумно. Якщо ви повністю опустите аргумент, за замовчуванням буде [tbp] без h, тому гола цифра так часто перескакує на початок наступної сторінки.
Чому примусове “тут” має зворотний ефект
Написання лише [h] здається очевидним виправленням, але зазвичай це погіршує ситуацію. Якщо float не вміщується в простір, що залишився на поточній сторінці, і h є єдиним дозволом, який ви надали, LaTeX не може розмістити його на цій сторінці або законно розмістити на будь-якій іншій. Таким чином, він переносить float вперед сторінку за сторінкою, чекаючи місця, яке задовольняє h. Поплавки також повинні залишатися в порядку, тому кожна наступна фігура стоїть у черзі за застряглою, а вся купа часто скидається наприкінці розділу. Додавання знака оклику, як у [h!], повідомляє LaTeX пом’якшити деякі правила інтервалів, але він не може створити кімнату, якої не існує.
Звички, які дійсно працюють
По-перше, залиште [htbp] стандартним і відмовтеся від ідеального розташування пікселів під час створення чернеток, тому що кожен абзац, який ви додаєте або видаляєте, все одно переставляє сторінки. По-друге, розмістіть середовище фігури у джерелі поруч із абзацом, який першим посилається на неї, оскільки LaTeX починає пошук початкової точки з цієї точки вперед, і float може переміститися пізніше, але ніколи раніше, ніж його код. По-третє, пишіть свою прозу до посилань на цифри за номерами, як на «Малюнок 3 показано трубопровід», ніколи «на малюнку нижче», щоб текст залишався правильним, де б не приземлився поплавець.
Якщо float все одно потрапляє в неприйнятне місце, є більш потужні інструменти, зокрема бар’єри float і розміщення [H], розглянуті в малюнок, який виходить за межі розділу. Скористайтеся ними в кінці написання, коли текст стане стабільним, а не під час написання.