Suite à une question posée en février 2020 (https://texnique.fr/osqa/questions/8090/probleme-caption-outside-float-caption), j'utilise

\makeatletter
\newcommand\fcaption{\def\@captype{figure}\caption}
\makeatother

Et j'utilise aussi vv pour écrire des vecteurs. Je remarque une incompatibilité entre fcaption et vv qui génère une erreur :

ECM :

\documentclass[11pt,french]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[a4paper,left=15mm,right=15mm,top=15mm,bottom=15mm]{geometry}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage[locale=FR]{siunitx}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{caption}
\usepackage{esvect}
\usepackage{frcursive}

\makeatletter
\newcommand\fcaption{\def\@captype{figure}\caption}
\makeatother

\begin{document}
\graphicspath{{./images_yasmine_bouabcha/}}
\begin{center}
\includegraphics[clip,scale=0.95]{TD1_mecanique_lagrange_exercice9b_page08.jpg}
\fcaption{Ce déplacement est $\vv{AB}$}
\end{center}

\end{document}

ligne 25: Argument of caption@ydblarg has an extra }. fcaption{Ce déplacement est $vv{AB}$}

ligne 25: Paragraph ended before caption@ydblarg was complete. fcaption{Ce déplacement est $vv{AB}$}

En revanche, si j'utilise $overrightarrow{AB}, pas de problème...

Même question quand je veux insérer un vecteur unitaire qui fait appel à une macrocommande :

\newcommand\urdeux{\vv{u_{{}_{\mkern-2mu\scriptstyle{r2}}}}}

\begin{center}
    \includegraphics[clip,scale=0.65]{TD1_mecanique_lagrange_exercice9b_page10.jpg}
    \fcaption{Détermination des composantes du vecteur unitaire $\urdeux$}
\end{center}

Posée 14 Jui '21, 13:05

cbreton's gravatar image

cbreton
75733348
Taux d'acceptation : 9%

Modifiée 14 Jui '21, 13:22


C'est un problème classique de commandes dites "fragiles". Il faut ajouter \protect devant \vv.

Lien permanent

Publiée 14 Jui '21, 13:58

nmarkey's gravatar image

nmarkey
1.4k19
Taux d'acceptation : 44%

@nmarkey Et dois-je ajouter \protect devant chaque \vv ? Et concernant une macrocommande ? \fcaption{Représentation du déplacement élémentaire de la masse $m_{1}$. On envisage un déplacement infinitésimal de la masse $m_{1}$ : elle se déplace su point M au point M' sur un arc de cercle de rayon $\protect \ell_{1}$ et d'angle $\delta \theta_{1}$. Ce déplacement est $\protect \vv{\delta M_{1}} = \vv{MM'} = \ell_{1}\delta \theta_{1} \uthetaun$}

(14 Jui '21, 14:16) cbreton cbreton's gravatar image
1

Oui, devant chaque \vv, et dans la définition des commandes.

(14 Jui '21, 15:03) nmarkey nmarkey's gravatar image
1

@nmarkey Devant chaque \vv se trouvant dans un argument mouvant, n'est-ce pas ?

(14 Jui '21, 15:17) denis ♦♦ denis's gravatar image
1

Oui, merci @denis pour la précision.

(14 Jui '21, 15:35) nmarkey nmarkey's gravatar image

Voici la solution avec \protect :

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage[a4paper,left=15mm,right=15mm,top=15mm,bottom=15mm]{geometry}
\usepackage{amssymb}
\usepackage{mathrsfs}
\usepackage[locale=FR]{siunitx}
\usepackage{caption}
\usepackage{esvect}
\usepackage{mwe}

\makeatletter
\newcommand\fcaption{\def\@captype{figure}\caption}
\makeatother

\newcommand\uthetaun{\vv{u_{{}_{\mkern-2mu\scriptstyle{\theta1}}}}}

\begin{document}
\begin{center}
\includegraphics[clip,scale=0.65]{image.jpg}
\fcaption{Ce déplacement est $\protect \vv{AB}$}
\end{center}

\begin{center}
\includegraphics[clip,scale=0.65]{image.jpg}
\fcaption{Représentation du déplacement élémentaire de la masse $m_{1}$. On envisage un déplacement infinitésimal de la masse $m_{1}$ : elle se déplace su point M au point M' sur un arc de cercle de rayon $\protect \ell_{1}$ et d'angle $\delta \theta_{1}$. Ce déplacement est $\protect \vv{\delta M_{1}} = \protect \vv{MM'}
 = \ell_{1}\delta \theta_{1} \protect \uthetaun$}
\end{center}

\end{document}
Lien permanent

Publiée 15 Jui '21, 13:07

cbreton's gravatar image

cbreton
75733348
Taux d'acceptation : 9%

Modifiée 15 Jui '21, 13:07

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.