Åtgärda LaTeX-figurplacering i Overleaf.
Figurer i Overleaf flyter eftersom LaTeX behandlar dem som mobila objekt utformade för att förhindra opassande sidbrytningar. När en figur hamnar långt ifrån där du skrev om den, kan du kontrollera dess rörelse med specifikatorer som [htbp], [H]-parametern eller sektionsbarriärer.
Det korta svaret: sluta använda enbart [h] eftersom det är för restriktivt. Ge LaTeX alternativ med [htbp], använd [H] från float-paketet när du behöver låsa en bild, eller lägg till \FloatBarrier för att hålla bilder inom sina sektioner.
Varför LaTeX flyttar dina figurer
När du omsluter en bild i en figure-miljö skapar du ett flytande objekt. LaTeX tittar på det återstående utrymmet på sidan, bildens storlek och regler för hur mycket text som måste förbli synlig. Om din figur inte får plats i utrymmet under ditt stycke, flyttar LaTeX den till toppen av nästa sida och fortsätter fylla den nuvarande sidan med text.
Denna algoritm förhindrar stora, fula tomrum längst ner på sidor, men den gör ofta skribenter frustrerade när en bild dyker upp tre sektioner efter där den diskuteras. Genom att förstå placeringsbokstäverna kan du styra algoritmen istället för att kämpa mot den.
De fem placeringsspecifikatorerna
| Specifikator | Betydelse | Beteende |
|---|---|---|
| h | Här | Ungefär där den visas i källtexten, om utrymme finns. |
| t | Topp | Längst upp på nuvarande eller nästa sida. |
| b | Botten | Längst ner på nuvarande eller nästa sida. |
| p | Sida | På en dedikerad sida som endast innehåller flytande objekt och ingen brödtext. |
| ! | Åsidosätt | Ignorerar interna regler för höjd och antal för att tvinga fram placering. |
Fem sätt att fixa felplacerade figurer
Använd [htbp] istället för bara [h]
Att skriva \begin{figure}[h] ger LaTeX bara en chans. Om figuren inte får plats precis där, nekar LaTeX den och börjar flytta den nedåt i dokumentet. Genom att ge den fyra alternativ kan den placera bilden snyggt på samma sida eller nästa.
\begin{figure}[htbp] \centering \includegraphics[width=0.8\linewidth]{chart.pdf} \caption{A flexible figure that fits where space allows.} \label{fig:chart} \end{figure}Lås en figur på plats med [H]
När ett tidskrifts- eller uppsatsformat kräver en bild precis mellan två specifika stycken, ladda float-paketet i din preamble och använd ett stort [H]. Detta gör figuren till ett statiskt block, även om det kan lämna tomma vita luckor längst ner på sidor.
\usepackage{float} ... \begin{figure}[H] \centering \includegraphics{diagram.pdf} \caption{Locked to this exact spot.} \end{figure}
Att skriva för algoritmen för flytande objekt
Den mest hållbara lösningen för flytproblem är att referera snarare än att förankra. Akademiska läsare följer nummer, inte fysiska sidpositioner. Skriv \ref{fig:results} i din text och låt LaTeX placera bilden där sidbrytningen ser bäst ut.
Om du använder underfigurer eller placerar två bilder sida vid sida, omslut varje bild i en \begin{subfigure}-miljö inuti ett enda huvudfigurblock. Placera alltid ditt \label-kommando direkt efter ditt \caption-kommando; att sätta etiketten först bryter korsreferenser och ger ett frågetecken i din kompilerade PDF.
Frågor
Varför placerar Overleaf min figur i slutet av dokumentet?
När en figur är för stor för att få plats i det återstående utrymmet på nuvarande sida och du endast angav [h], försöker LaTeX flytta den framåt. Om efterföljande sidor fylls lika snabbt, driver figuren hela vägen till slutet av kapitlet eller in i bibliografin. Att lägga till [htbp] eller använda [H] löser detta.
Vad är skillnaden mellan [h] och [H] i LaTeX?
Det lilla [h]-et är ett förslag; LaTeX behandlar det som en preferens men kan åsidosätta det om utrymmet är begränsat. Det stora [H]-et kommer från float-paketet och är ett strikt kommando att placera figuren precis här och ingen annanstans.
Hur håller jag figurer inom sin egen sektion i Overleaf?
Prova din egen artikel i Texeno.
Börja gratis, ladda upp ett projekt som .zip och tryck på Kompilera om. Uppgradera när du behöver längre kompileringar.
Börja skriva