Ik heb een probleem als het om veel figuren gaat. Sommige cijfers hebben de neiging om “rond te vliegen”, dat wil zeggen, een alinea hieronder zijn, hoewel ik ze vóór die alinea heb geplaatst. Ik gebruik code:
\begin{figure}[ht] \begin{center} \advance\leftskip-3cm \advance\rightskip-3cm \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8} \caption{} \label{visina8} \end{center}\end{figure}
om mijn cijfers te plaatsen. Hoe kan ik latex vertellen dat ik het cijfer ECHT op die specifieke plaats wil, ongeacht hoeveel witruimte er overblijft?
Reacties
Antwoord
Het korte antwoord: gebruik het “ float ” -pakket en vervolgens het [H]
optie voor je figuur.
\usepackage{float} ... \begin{figure}[H] \centering \includegraphics{slike/visina8} \caption{Write some caption here}\label{visina8} \end{figure}
Het langere antwoord: Het standaardgedrag van figuren is om te zweven, zodat LaTeX de beste manier kan vinden om ze in uw document te ordenen en het er beter uit te laten zien. Als je kijkt, zo worden boeken vaak gezet. Het is dus meestal het beste om LaTeX zijn werk te laten doen en niet te proberen de plaatsing van figuren op specifieke locaties af te dwingen. Dit betekent ook dat u het gebruik van zinsdelen als “in the following figure:
”, wat vereist dat de figuur op een specifieke locatie wordt ingesteld, en gebruik in plaats daarvan‘ in Figure~\ref{..}
“, gebruikmakend van de kruisverwijzingen van LaTeX.
Als u om de een of andere reden echt wilt dat een bepaald cijfer “HIER” wordt geplaatst en niet waar LaTeX het wil plaatsen, gebruik dan de [H]
optie van het “ float ” -pakket dat het zwevende cijfer in feite verandert in een normaal niet-zwevend cijfer.
Merk ook op dat, als u “Wil je geen caption
aan je figuur toevoegen, dan hoef je de figure
omgeving helemaal niet te gebruiken! U kunt het \includegraphics
commando overal in uw document gebruiken om een afbeelding in te voegen.
Opmerkingen
- bedankt om dit op te merken! Ik was niet ‘ op de hoogte van de wijziging.
H
werkt niet ‘ t zonder pakketten, maar laadt welfloat
. IsH
vanfloat
hetzelfde als!h
? - nee , [! h] wordt hoe dan ook door de meeste documentklassen gewijzigd in [! ht]. En de betekenis van h is alleen: hier, indien mogelijk, maar niet absoluut hier. De ! laat LaTeX toe om alle tellers en lengtes die verwijzen naar zwevende omgevingen te minimaliseren.
- bedankt, werkte voor mij! Ik laat latex het meestal plaatsen waar het wil, maar soms heb ik het nodig het waar ik wil.
- Voor documenten die niet bedoeld zijn om te worden afgedrukt, is er geen reden om te proberen het op te slaan papier, dus grote gebieden met witruimte vormen ‘ een probleem. Dus het ‘ is veel beter als de figuur de tekst op het meest logische punt breekt, in plaats van ergens anders heen te zweven. Deze lastige conventies zullen net zo gaan als het Latijn.
- Ik denk niet dat ‘ niet de gebruikelijke zorgen zijn over ruimtebesparing, in plaats van stilistisch te proberen het beste te vinden plaats waar een figuur, tafel, etc. geplaatst moet worden.
Antwoord
doe niet gebruik een zwevende omgeving als je deze niet wilt laten zweven.
\usepackage{caption} ... \noindent% \begin{minipage}{\linewidth}% to keep image and caption on one page \makebox[\linewidth]{% to center the image \includegraphics[keepaspectratio=true,scale=0.6]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{minipage}
of
\begin{center} \includegraphics[...]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{center}
Reacties
- Hallo @Herbert – heel erg bedankt voor dit antwoord! Ik had nooit eerder begrepen dat
\begin{figure}
een zwevende omgeving is – terwijl\begin{minipage}
niet is! Ik had een probleem met het willen toevoegen van een afbeelding onderaan de pagina met tekst, en zelfs[H]
hielp niet; alleen dit! Ik heb zojuistminipage
vervangen doorfigure
– encaptionof
voorcaption
– en eindelijk kreeg wat ik wilde !! Nogmaals hartelijk dank, proost! - Waarom gebruik je een
\makebox
? Ziet het er zonder dit niet hetzelfde uit? - @Tobi: als de afbeelding niet groter is dan
\textwidth
ja, anders niet!\makebox
centreert de afbeelding onafhankelijk van de breedte - Dit was zo super handig; IMHO dit zou het geaccepteerde antwoord moeten zijn, aangezien het meer werkt zoals verwacht dan het momenteel geaccepteerde antwoord.
Antwoord
Een oplossing die niet wordt genoemd door een van de andere antwoorden die me zojuist hebben opgelost, is het gebruik van \clearpage
Er zijn geen speciale pakketten nodig.
\clearpage
dwingt alle cijfers erboven in het .tex
-bestand af te worden afgedrukt voordat verder wordt gegaan met de tekst. Dit kan grote witte ruimtes achterlaten.
Voor mij was dit de beste oplossing omdat ik niets van de opmaak hoefde te veranderen en het er alleen voor zorgde dat alle cijfers werden afgedrukt voor het volgende stukje tekst. Mijn probleem was een deel van het document met veel cijfers en niet veel tekst.
Reacties
- Eenvoudige en effectieve oplossing, bedankt !!
Antwoord
U kunt nu het adjustbox
-pakket gebruiken om uw ingepakte spullen om te zetten in een niet-zwevende vlottervervanging met behulp van de nofloat=<type>
sleutel. Bijschrift en label kunnen worden toegevoegd door eigen sleutels, vóór de nofloat
. Voor het centreren kan de center
-sleutel worden gebruikt. Gebruik de vspace
-sleutel om de verticale ruimte toe te voegen. Deze oplossing heeft het voordeel dat u ook alle vele andere functies van adjustbox
kunt gebruiken om de inhoud te wijzigen (min / max schalen, framen, enz.)
Merk op dat als de inhoud van de figuur slechts een enkele afbeelding is, u dezelfde toetsen op \adjustbox
kunt gebruiken en een oneliner kunt krijgen. Als u alleen een tabel wilt, is er de tabular
-sleutel voor {adjustbox}
.
Als u later wilt verander het naar een echte float draai gewoon nofloat
naar float
en verwijder de vspace
sleutel. adjustbox
plaatst het bijschrift bovenaan voor table
s en onderaan voor figure
s. Dit kan worden gewijzigd met de sleutels captionbelow
of captionabove
in plaats van caption
. Zie de adjustox
handleiding voor alle opties.
Als u de inhoud niet in een box wilt plaatsen, kunt u nog steeds het adjustbox
-pakket gebruiken, aangezien het de {adjnofloat}{<type>}
omgeving. Het wordt intern gebruikt om de nofloat
-sleutel te implementeren. Gebruikers kunnen deze omgeving opnieuw definiëren om het nofloat
-gedrag te wijzigen of te patchen. de omgeving direct. De omgeving gebruikt code die erg lijkt op Herberts antwoord .
Gebruiksvoorbeelden:
\documentclass{article} \usepackage{blindtext}% for example text here only \usepackage{adjustbox} \begin{document} \blindtext \begin{adjustbox}{center,caption={some caption},label={somelabel},nofloat=figure,vspace=\bigskipamount} % maybe other stuff \includegraphics[width=\textwidth]{example-image}% example only, could also be \adjustimage % maybe other stuff \end{adjustbox} \blindtext % For simple images, a one liner is enough \adjustimage{width=\textwidth,center,caption={some caption},label={somelabel},nofloat=figure,vspace=\bigskipamount}{example-image} \blindtext \begin{adjustbox}{center,caption={some caption},label={somelabel},nofloat=table,vspace=\bigskipamount} % maybe other stuff \begin{tabular}{lll} some & tabular & is\\ also & possible & with this \\ \end{tabular} % maybe other stuff \end{adjustbox} \blindtext % For just a tabular: \begin{adjustbox}{tabular=lll,center,caption={some caption},label={somelabel},nofloat=table,vspace=\bigskipamount} some & tabular & is\\ also & possible & with this \\ \end{adjustbox} \blindtext \end{document}
Deel van het resultaat:
Answer
Gebruik [ht!]
om meer te zijn nadrukkelijk over plaatsing. En als u wilt dat de tekst de figuur volgt, in plaats van ervoor te beginnen, gebruik dan \usepackage{parskip}
in uw preambule en laat een spatie voor de tekst in kwestie.
Ik gebruik ook \vspace{}
of vóór de figuuromgeving om de ruimte tussen tekst en figuur te manipuleren om een meer gebalanceerde look te geven. Ik heb op deze manier geen problemen, zelfs niet in complexere omgevingen met meerdere figuren die \subfigure
gebruiken.
center
omgeving maar het\centering
commando voor cijfers. Zie Moet ik centreren of centreren gebruiken voor figuren en tabellen?\FloatBarrier
ergens tussen de afbeelding en de alinea. Het dwingt alle cijfers die vóór het commando zijn gedefinieerd, om vóór dat punt in de tekst weer te geven. U moet\usepackage{placeins}
in de preambule toevoegen om het commando te gebruiken. Soms vond ik dit erg nuttig.