J'ai un problème avec caption, sachant que je ne veux pas utiliser l'environnement figure car je souhaite placer mes figures là où je le désire. Cette erreur n'empêche pas la compilation, mais je voudrais comprendre d'où vient cette erreur et comment la supprimer.

Ouvrir dans l'éditeur Overleaf
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\usepackage[a4paper,left=10mm,right=10mm,top=20mm,bottom=20mm]{geometry}
\usepackage{color}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{graphicx}
\DeclareGraphicsExtensions{.jpg,.pdf,.png}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{url}
\usepackage{setspace}
\usepackage{gensymb}
\usepackage{mathrsfs}
\usepackage{chemfig}
\usepackage{pgfplots}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{fancyhdr}
\usepackage{lscape}
\pagestyle{fancy}

\begin{document}
\begin{center}
\includegraphics[clip,angle=0,scale=0.60]{images/image.jpg}\\
\caption{légende de l'image}
\end{center}
\end{document}

Message d'erreur : \caption outside float. \caption

Posée 11 Fév '20, 12:54

cbreton's gravatar image

cbreton
75733348
Taux d'acceptation : 9%

Modifiée 11 Fév '20, 15:24

Pathe's gravatar image

Pathe ♦♦
7.4k28196245


Il n'y a pas quelque chose comme une erreur qui n'empêche pas la compilation. Chaque erreur empêche la compilation !

On peut utiliser \captionof{float}{texte} de l'extension caption :

Ouvrir dans l'éditeur Overleaf
\documentclass[10pt,french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[a4paper,left=10mm,right=10mm,top=20mm,bottom=20mm]{geometry}
%\usepackage{color}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz}
\usepackage{graphicx}
\DeclareGraphicsExtensions{.jpg,.pdf,.png}
\usepackage{amssymb}
\usepackage{amsmath}
%\usepackage{amsfonts}
\usepackage{url}
\usepackage{setspace}
\usepackage{gensymb}
\usepackage{mathrsfs}
\usepackage{chemfig}
\usepackage{pgfplots}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{fancyhdr}
\usepackage{lscape}
\pagestyle{fancy}
\usepackage{caption}

\begin{document}
\begin{center}
\includegraphics[clip,angle=0,scale=0.60]{example-image-duck}
\captionof{figure}{légende de l'image}
\end{center}
\end{document}

Sans rapport avec le problème :

  • vous n'avez pas besoin de l'extension color si vous avez xcolor

  • n'utilisez pas // pour un saut de ligne, utilisez une ligne vide (ce n'est pas nécessaire devant \caption).

  • si vous utilisez french comme option du documentclass, toutes les extensions connaîtront la langue, pas seulement babel

  • il est inutile de charger amsfonts si l'on charge amssymb (Merci à @Bernhard !)

Lien permanent

Publiée 11 Fév '20, 13:48

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 12 Fév '20, 12:21

1

Pendant qu'on y est, il est inutile de charger amsfonts si l'on charge amssymb.

(11 Fév '20, 20:09) Bernard Bernard's gravatar image

Pourriez vous m'expliquer davantage ce que vous voulez par « Chaque erreur empêche la compilation »? car j'ai Cet \foo exemple \bye.

(11 Fév '20, 20:45) touhami touhami's gravatar image
1

Ça n'a pas l'air d'être un gros souci ici ;-), mais en général je n'aime pas charger un (gros) package pour finalement assez peu de choses.

Le problème d'utiliser \caption en dehors d'un flottant, c'est juste que LaTeX ne sait pas si c'est le \caption d'une figure ou d'une table. Il suffit de le lui préciser et le tour est joué.

Par exemple, on définira \fcaption (pour une figure, donc) avec \newcommand{\fcaption}{\def\@captype{figure}\caption} (entouré de \makeatletter et \makeatother).

(11 Fév '20, 21:34) nmarkey nmarkey's gravatar image
1

@nmarkey Normalement, je suis d'accord. Mais j'utiliserais toujours l'extension caption pour obtenir de beaux espaces autour de la légende

(12 Fév '20, 11:59) samcarter samcarter's gravatar image
2

@touhami (sorry for falling back to English) In general after an error latex only recovers enough to syntax check the rest of the document. There can and will be cases where this recovery is good enough to produce a valid document, as in your example, but it is not guaranteed. That's why I am allergic to phrases like Cette erreur n'empêche pas la compilation.

(12 Fév '20, 12:19) samcarter samcarter's gravatar image

@Bernard Merci !

(12 Fév '20, 12:19) samcarter samcarter's gravatar image

@samcarter. Je ne comprends pas votre remarque concernant la phrase "cette erreur n'empêche pas la compilation". Le journal (log) de compilation l'identifie comme étant une erreur (et non un avertissement), mais cela n'empêche pas d'avoir accès au fichier PDF. Si c'était une "grosse" erreur (j'appelle cela une erreur fatale), la compilation s'arrête et je n'ai pas accès au fichier terminal (PDF). C'est la raison pour laquelle j'écris que c'est une erreur qui n'empêche pas la compilation.

(12 Fév '20, 17:01) cbreton cbreton's gravatar image

@ samcarter. OK pour toutes les modifications apportées au préambule.

(12 Fév '20, 17:01) cbreton cbreton's gravatar image

@nmarkey.

Par exemple, on définira fcaption (pour une figure, donc) avec newcommand{fcaption}{def@captype{figure}caption} (entouré de makeatletter et makeatother).

Pourriez-vous préciser en proposant un code et je ne suis pas familier des macrocommandes. Je souhaite distinguer les tables des figures (qui sont pour moi des images) et je souhaite que Latex fasse la numérotation automatique.

(12 Fév '20, 17:25) cbreton cbreton's gravatar image
1

@cbreton Ne regardez pas le fichier PDF si vous avez des erreurs. Même si le PDF sembler bon pour vous, il peut causer des problèmes pour quelqu'un d'autre. Après un erreur, latex seulement vérifies si l'autre syntaxe est correcte mais la résultat n'est pas nécessairement un pdf valide.

(12 Fév '20, 18:27) samcarter samcarter's gravatar image
2

@samcarter Conclusion: Quoi que ce soit l'erreur, il ne faut pas l'ignorer.

(13 Fév '20, 09:52) touhami touhami's gravatar image
Affichage de 5 parmi 11 Afficher 6 commentaire(s) en plus

Pour préciser mon commentaire (sous la forme d'une réponse, pour y mettre un code complet) :

Ouvrir dans l'éditeur Overleaf
\documentclass{article}
\makeatletter
\newcommand\fcaption{\def\@captype{figure}\caption}
\newcommand\tcaption{\def\@captype{table}\caption}
\makeatother

\begin{document}
[...]
\begin{center}
  \begin{minipage}{\linewidth}
  IMAGE
  \fcaption{Une figure...}\label{fig-...}
  \end{minipage}
\end{center}
[...]
\begin{center}
  \begin{minipage}{\linewidth}
  \begin{tabular}{c}
  TABLEAU
  \end{tabular}
  \tcaption{Un tableau...}\label{tab-...}
  \end{minipage}
\end{center}
\end{document}
Lien permanent

Publiée 12 Fév '20, 22:52

nmarkey's gravatar image

nmarkey
1.4k19
Taux d'acceptation : 44%

Modifiée 13 Fév '20, 17:43

2

Il faut enfermer l'image ou le tableau et sa légende dans une minipage.

(13 Fév '20, 10:01) touhami touhami's gravatar image

@touhami: c'est vrai. C'est corrigé, merci.

(13 Fév '20, 17:44) nmarkey nmarkey's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.