Jai un problème quand beaucoup de figures sont en question. Certains chiffres ont tendance à «voler», cest-à-dire être un paragraphe ci-dessous, bien que je les ai placés avant ce paragraphe. Jutilise le 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}
pour placer mes chiffres. Comment puis-je dire à Latex que je veux VRAIMENT la figure à cet endroit spécifique, peu importe la quantité despace restant?
Commentaires
Réponse
La réponse courte: utilisez le package « float « , puis le [H]
option pour votre silhouette.
\usepackage{float} ... \begin{figure}[H] \centering \includegraphics{slike/visina8} \caption{Write some caption here}\label{visina8} \end{figure}
La réponse plus longue: Le comportement par défaut des figures est de flotter, afin que LaTeX puisse trouver le meilleur moyen de les organiser dans votre document et de lui donner une meilleure apparence. Si vous regardez, voici comment les livres sont souvent composés. Donc, généralement, la meilleure chose à faire est de laisser LaTeX faire son travail et de ne pas essayer de forcer le placement des figures à des endroits spécifiques. Cela signifie également que vous devez éviter dutiliser des phrases telles que « in the following figure:
”, qui nécessite que la figure soit définie à un emplacement spécifique, et utilisez plutôt“ in Figure~\ref{..}
« , en tirant parti des références croisées de LaTeX ».
Si, pour une raison quelconque, vous vraiment voulez quune figure particulière soit placée «ICI», et non là où LaTeX veut la mettre, alors utilisez le [H]
option du package « float » qui transforme fondamentalement la figure flottante en un non-float normal.
Notez également que, si vous ne voulez pas ajouter un caption
à votre figurine, alors vous navez pas du tout besoin dutiliser lenvironnement figure
! Vous pouvez utiliser la commande \includegraphics
nimporte où dans votre document pour insérer une image.
Commentaires
- merci pour avoir noté cela! Je nétais ‘ pas au courant du changement.
H
ne ‘ ne semble pas fonctionner sans aucun paquet, mais fonctionne en chargeantfloat
.H
defloat
est-il identique à!h
? - non , [! h] est de toute façon changé par la plupart des classes de documents en [! ht]. Et la signification de h est seulement: ici, si possible, mais pas absolument ici. Le ! permet à LaTeX de minimiser tous les compteurs et longueurs qui font référence à des environnements flottants.
- merci, a travaillé pour moi! Je laisse généralement latex le placer où il veut, mais parfois jen besoin simplement où je veux.
- Pour les documents qui ne sont pas destinés à être imprimés, il ny a aucune raison dessayer denregistrer papier, donc de grandes zones d’espaces ne sont pas ‘ un problème. Il est donc préférable ‘ que le chiffre brise le texte au point le plus logique, plutôt que de flotter ailleurs. Ces conventions maladroites iront exactement comme le latin.
- Je ne ‘ t pense que les soucis habituels sont d’économiser de la place, plutôt que d’essayer stylistiquement de trouver le meilleur endroit où placer une figure, un tableau, etc.
Réponse
ne pas utilisez un environnement flottant si vous ne voulez pas quil flotte.
\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}
ou
\begin{center} \includegraphics[...]{slike/visina8}} \captionof{figure}{...}\label{visina8}% only if needed \end{center}
Commentaires
- Salut @Herbert – merci BEAUCOUP pour cette réponse! Je navais encore jamais compris que
\begin{figure}
est un environnement flottant – alors que\begin{minipage}
ne lest pas ! Jai eu un problème en voulant inclure une image en bas de page avec du texte, et même pas[H]
aidé; seulement ça! Je viens de remplacerminipage
parfigure
– etcaptionof
pourcaption
– et enfin jai obtenu ce que je voulais !! Merci encore, bravo! - Pourquoi utilisez-vous un
\makebox
? Est-ce que ça na pas la même apparence sans lui? - @Tobi: si limage nest pas plus grande que
\textwidth
oui, sinon non!\makebox
centre limage indépendamment de sa largeur - Cétait très utile; À mon humble avis, cela devrait être la réponse acceptée car elle fonctionne plus comme prévu que celle actuellement acceptée.
Réponse
Une solution qui n’a été mentionnée par aucune des autres réponses qui viennent de me trier est d’utiliser \clearpage
Aucun paquet spécial n’est nécessaire.
\clearpage
force tous les chiffres au-dessus dans le fichier .tex
à être imprimés avant de continuer avec le texte. Cela peut laisser de grands espaces blancs.
Pour moi, cétait la meilleure solution car je navais pas besoin de modifier la mise en forme et je massurais simplement que toutes les figures étaient imprimées avant le bit de texte suivant. Mon problème faisait partie du document avec beaucoup de chiffres et peu de texte.
Commentaires
- Solution simple et efficace, merci !!
Réponse
Vous pouvez désormais utiliser le package adjustbox
pour transformer vos objets en boîte en un remplacement flottant non flottant en utilisant le nofloat=<type>
clé. La légende et le libellé peuvent être ajoutés par leurs propres clés, avant le nofloat
. Pour le centrage, la touche center
peut être utilisée. Pour ajouter lespace vertical, utilisez la touche vspace
. Cette solution a lavantage de pouvoir également utiliser toutes les nombreuses autres fonctionnalités de adjustbox
pour modifier le contenu (mise à léchelle min / max, cadrage, etc.)
Notez que si le contenu de la figure est juste une seule image, vous pouvez simplement utiliser les mêmes clés sur \adjustbox
et obtenir une ligne unique. Si tout ce que vous voulez est un tableau, il y a la clé tabular
pour {adjustbox}
.
Si vous voulez plus tard changez-le en un vrai flotteur, tournez simplement nofloat
en float
et retirez la clé vspace
. adjustbox
place la légende en haut pour table
s et en bas pour figure
s. Cela peut être modifié en utilisant les touches captionbelow
ou captionabove
au lieu de caption
. Consultez le manuel adjustox
pour toutes les options.
Si vous ne souhaitez pas encadrer le contenu, vous pouvez toujours utiliser le package adjustbox
car il fournit le {adjnofloat}{<type>}
. Elle est utilisée en interne pour implémenter la clé nofloat
. Les utilisateurs peuvent soit redéfinir cet environnement pour modifier, soit corriger le comportement nofloat
, soit utiliser lenvironnement directement. Lenvironnement utilise un code très similaire à celui de Herberts answer .
Exemples dutilisation:
\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}
Une partie du résultat:
Réponse
Utilisez [ht!]
pour être plus insistant sur le placement. Et, si vous voulez que le texte suive la figure, au lieu de commencer avant, utilisez \usepackage{parskip}
dans votre préambule et laissez un espace avant le texte en question.
Jutilise également \vspace{}
ou avant lenvironnement de la figure afin de manipuler lespace entre le texte et la figure pour donner un aspect plus équilibré. Je nai aucun problème de cette façon, même avec des environnements multifigures plus complexes utilisant \subfigure
.
center
mais la commande\centering
pour les figures. Voir Dois-je utiliser le centre ou le centrage pour les figures et les tableaux?\FloatBarrier
quelque part entre la figure et le paragraphe. Elle force toutes les figures définies avant la commande à être rendues avant ce point du texte. Vous devrez ajouter\usepackage{placeins}
dans le préambule pour utiliser la commande. Parfois, jai trouvé cela très utile.