Przejdź do treści

placeins, afterpage i endfloat w Scissor LaTeX

placeins jest akceptowany, a \FloatBarrier nic nie robi, co w zwykłych dokumentach nie przeszkadza, bo Scissor LaTeX zostawia każdy rysunek i każdą tabelę tam, gdzie je napiszesz. \afterpage jest pomijane z uwagą, a jego zawartość wykonywana od razu, więc \afterpage{\clearpage} łamie stronę właśnie w tym miejscu, a endfloat nie przenosi obiektów pływających na koniec.

Do czego służą pakiety

W instalacji TeX LaTeX przenosi rysunki i tabele (obiekty pływające) tam, gdzie najlepiej pasują, co może być kilka stron dalej od miejsca, w którym je napisano. Te pakiety to kontrolują:

  • placeins udostępnia \FloatBarrier: żaden obiekt pływający napisany przed nim nie może pojawić się po nim. Z opcją section każde \section działa jak bariera.
  • flafter zapewnia, że obiekt pływający nigdy nie pojawi się przed miejscem, w którym go napisano.
  • afterpage wykonuje polecenie przy następnym łamaniu strony: \afterpage{\clearpage} opróżnia tam kolejkę obiektów pływających.
  • endfloat przenosi wszystkie rysunki i tabele na koniec dokumentu, jak wymagają niektóre czasopisma przy zgłoszeniach.

Co tu działa

PolecenieW Scissor LaTeXUwagi
\usepackage{placeins}, opcje section, above, belowDziałaAkceptowane bez komunikatu.
\FloatBarrierPomijaneNiepotrzebne: w zwykłych dokumentach obiekty pływające nigdy nie są przenoszone, więc żaden nie może przekroczyć bariery.
\usepackage{flafter}DziałaAkceptowane; obiekty pływające i tak zostają w miejscu, w którym je napisano.
\afterpage{...}NieobsługiwanePomijane z uwagą na karcie Problemy. Jego zawartość jest wykonywana od razu, więc \afterpage{\clearpage} zaczyna nową stronę w tym miejscu, a nie przy następnym łamaniu strony.
\usepackage{endfloat}PomijaneObiekty pływające zostają w tekście, zamiast przechodzić na koniec. \processdelayedfloats jest pomijane z uwagą.

Obiekty pływające zostają na miejscu w article, report, book i każdej innej zwykłej klasie. W układach konferencyjnych, w których [t] i [b] przenoszą obiekty pływające, \FloatBarrier również jest ignorowane; zobacz Obiekty pływające.

Przykłady

Rysunek napisany w sekcji zostaje w tej sekcji, z \FloatBarrier lub bez:

\FloatBarrier jest akceptowane; rysunek zostaje na miejscu

LaTeXPreambuła: \usepackage{placeins}Otwórz w edytorze (otwiera się w nowej karcie)
\section{Measurements}
Erika Mustermann took 44 samples.
\begin{figure}[t]
  \centering
  \fbox{A plot of the samples}
  \caption{The samples.}
\end{figure}
\FloatBarrier
\section{Discussion}
The figure above stays in its section.
Złożone przez Scissor LaTeX: \FloatBarrier jest akceptowane; rysunek zostaje na miejscu

Zgodność

  • Z instalacji TeX do Scissor LaTeX: dokumenty są składane z każdym rysunkiem na miejscu, więc bariery nie są potrzebne. Usuń \afterpage{\clearpage}, jeśli łamanie strony, które tu powoduje, przeszkadza. Z endfloat obiekty pływające zostają w tekście.
  • Ze Scissor LaTeX do instalacji TeX: dokumenty kompilują się tam bez zmian, a obiekty pływające mogą się tam przesuwać. Dodaj \FloatBarrier przed sekcją, do której nie mogą trafić rysunki z wcześniejszych sekcji.

Pełne dokumentacje są dostępne w CTAN: placeins, afterpage, flafter oraz endfloat. Zobacz też Obiekty pływające i float i wrapfig.

Pytania i odpowiedzi

Jak utrzymać rysunki w ich sekcji?

W instalacji TeX wczytaj \usepackage[section]{placeins} albo napisz \FloatBarrier przed następną sekcją. Tutaj rysunki i tak zostają tam, gdzie je napiszesz, a oba sposoby są akceptowane.

Dlaczego \afterpage{\clearpage} od razu zaczyna nową stronę?

\afterpage jest nieobsługiwane, więc jego zawartość jest wykonywana tam, gdzie stoi, a \clearpage zaczyna w tym miejscu nową stronę. Ponieważ obiekty pływające nie są tu wstrzymywane, ten wiersz jest niepotrzebny i można go usunąć.

Każdy przykład na tej stronie jest składany przez Scissor LaTeX podczas budowania witryny. Ostatnia aktualizacja: 2026-11-07.