102 votes

Comment forcer deux figures à rester sur la même page dans LaTeX ?

J'ai deux images que je veux afficher sur une page en tant que figures. Chacune d'entre elles occupe un peu moins de la moitié de l'espace disponible, de sorte qu'il n'y a pas beaucoup de place pour d'autres éléments sur cette page, mais je sais qu'il y a suffisamment d'espace pour les deux figures. J'ai essayé de placer les figures avec [ht] et [hb], les deux [h] et les deux [ht], mais je n'arrive toujours pas à placer ces deux images sur la même page, mais au moins quelques paragraphes entre elles.

Comment puis-je forcer ces deux personnages à rester sur la même page ?

0 votes

Une question similaire a été posée plus récemment sur TeX.SX, et je crois que le réponse en utilisant le \afterpage La commande est la meilleure réponse.

176voto

Rob Hyndman Points 10068

Vous pouvez mettre deux figures à l'intérieur d'un environnement de figures. Par exemple :

\begin{figure}[p]
\centering
\includegraphics{fig1}
\caption{Caption 1}
\includegraphics{fig2}
\caption{Caption 2}
\end{figure}

Chaque légende générera un numéro de figure distinct.

2 votes

C'est une bonne réponse à retenir :). Je n'y avais jamais pensé mais ça a l'air propre :).

5 votes

Une autre possibilité est le paquet subfigure et une commande dans l'environnement figure de quelque chose comme \subfloat[Caption]{\includegraphics{file}} .

13 votes

Il semble que tu ne puisses pas \label les deux figures différentes indépendamment, bien que

23voto

Crowley Points 498

Si vous voulez avoir des images sur le même sujet, vous pouvez utiliser la méthode suivante subfigure l'emballage et la construction :

\begin{figure}
 \subfigure[first image]{\includegraphics{image}\label{first}}
 \subfigure[second image]{\includegraphics{image}\label{second}}
 \caption{main caption}\label{main_label}
\end{figure}

Si vous voulez avoir, par exemple, deux images différentes l'une à côté de l'autre, vous pouvez utiliser :

\begin{figure}
 \begin{minipage}{.5\textwidth}
  \includegraphics{image}
  \caption{first}
 \end{minipage}
 \begin{minipage}{.5\textwidth}
  \includegraphics{image}
  \caption{second}
 \end{minipage}
\end{figure}

Pour les images en colonnes, vous aurez [1] [2] [3] [4] dans la source, mais cela ressemblera à ceci

[1] [3]

[2] [4].

1 votes

Vous pouvez également utiliser les constructions mentionnées par Jerred Russel ici : stackoverflow.com/questions/1673942/latex-table-positionnement L'intérêt est d'utiliser float paquet.

21voto

Schroeder Points 94

J'ai eu ce problème en essayant de mélanger des chiffres et du texte. Ce qui a fonctionné pour moi, c'est l'option 'H' sans l'option ' ! \begin{figure}[H]
H" essaie de forcer la figure à se trouver exactement là où vous la placez dans le code. Pour cela, vous devez inclure \usepackage{float}

Les options sont expliquées ici

3 votes

Oui, le float Le paquet est définitivement la bonne réponse ici. Je déplore souvent que l'utilisation du symbole !, comme dans \begin{figure}[h!] pourrait tout aussi bien être réécrit en TeX comme suit \please parce que le compilateur décide toujours lui-même où placer votre image. Il vous fait juste un clin d'œil cette fois-ci au lieu de vous ignorer. Le site float Ce paquet lui fera faire ce que vous voulez, c'est sûr.

7voto

Will Robertson Points 19581

Si vous voulez qu'ils soient tous les deux sur la même page et qu'ils occupent pratiquement toute la page, alors la meilleure idée est de dire à LaTeX de les mettre tous les deux sur une page à part !

\begin{figure}[p]

Il serait probablement contraire aux bons principes typographiques (par exemple, la laideur) d'avoir deux figures sur une page avec seulement quelques lignes de texte au-dessus ou au-dessous d'elles.


Au fait, la raison pour laquelle [!h] fonctionne parce qu'il demande à LaTeX de passer outre ses restrictions habituelles concernant l'espace à consacrer aux flottants sur une page contenant du texte. Comme il a été dit plus haut, il y a une raison pour laquelle ces restrictions sont là. Ce qui ne veut pas dire qu'il est possible de les assouplir quelque peu ; voir la page d'accueil de FAQ pour faire ça.

1 votes

Plus précisément, [p] indique seulement au compilateur de les mettre sur une page avec uniquement des flottants. Cela peut aboutir ou non à des pages séparées pour les deux chiffres, en fonction de leur taille.

3voto

Bastien Léonard Points 18404

Essayez d'ajouter un ! par exemple [h!] .

0 votes

Ne fonctionne pas, latex le remplacera par [ht], puis placera quand même la figure sur une page séparée.

0 votes

Modèle de journal Works in Wiley.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X