Texte dans une égalité qui déborde de la page

Bonjour,
Je rédige une démonstration qui consiste en une succession d'égalités et j'aimerais en commenter certaines pour justifier certains calculs.
Seulement, le texte sort de la ligne :
$\begin{align*} a= & b \\ \iff a + c =& b+c \qquad \text{ je voudrais écrire un commentaire ici mais il est trop long donc il sort de la page, ce qui est très embêtant} \end{align*}$
J'ai essayé avec
\text{\substack{je voudrais écrire un commentaire ici mais \\il est trop long donc il sort de la page, ce qui est très embêtant }
mais ça me renvoie une erreur.
Merci par avance, bon dimanche.

Réponses

  • Bonjour, je me permets de remettre en avant ce post.

    Bonne journée
  • Que penses-tu de ceci ?
    $\begin{array}{crcll}
    & a & = & b &\\
    \iff & a + c & = & b+c & \qquad \text{ je voudrais écrire un commentaire ici mais} \\
    & & & & \qquad \text{il est trop long donc il sort de la page, ce qui est très embêtant}
    \end{array}$
    $\begin{array}{crcll}
         & a     & = & b   &\\
    \iff & a + c & = & b+c & \qquad \text{ je voudrais écrire un commentaire ici mais} \\
         &       &   &     & \qquad \text{il est trop long donc il sort de la page, ce qui est très embêtant}
    \end{array}$
    
  • Bonjour fifi.

    Il te manque une accolade fermante.

    $$\substack{\text{je voudrais écrire un commentaire ici mais} \\\text{il est trop long donc il sort de la page, ce qui est très embêtant} }$$

    amicalement,

    e.v.
    Personne n'a raison contre un enfant qui pleure.


  • Merci Rondo, votre technique fonctionne très bien !
    ev, effectivement, merci, j’ai cherché un moment d’où venait le problème mais visiblement je n’avais pas les yeux bien ouverts.

    Bonne soirée
  • Bonsoir,

    Je ne crois pas que le problème du code d'origine soit simplement une accolade manquante.
    \substack, c'est fait pour être utilisé en mode maths avec des maths à l'intérieur.

    J'ai essayé de bricoler une solution pour des explications sur une ou plusieurs lignes avec retour à la ligne automatique. Pour cela, on peut utiliser l'environnement minipage. Il y a alors essentiellement deux problèmes :
    • choisir une bonne largeur ;
    • composer du texte dans une colonne étroite est très difficile (il y a trop peu d'espaces intermots par ligne pour avoir assez d'élasticité).
    Je ne recommande pas spécialement d'utiliser ce qui suit, mais les personnes intéressées peuvent évidemment jeter un œil.

    1. Version où l'on spécifie la largeur de la zone d'explications à la main :
    \documentclass{article}
    \usepackage{amsmath}
    \usepackage{xparse}             % pas nécessaire si format LaTeX >= 2020-10-01
    \usepackage{lipsum}             % pour le texte bidon
    
    \NewDocumentCommand \commentaire { s m m }
      {%
        \begin{lrbox}{0}
          \begin{minipage}[t]{#2}
            \hbadness=3000          % commenter pour voir tous les warnings
            \small \sloppy % \raggedright
            #3%
          \end{minipage}%
        \end{lrbox}%
        \IfBooleanF{#1}{%
          \ht0=\ht\strutbox
          \dp0=\dp\strutbox
        }%
        \usebox{0}%
      }
    
    \begin{document}
    
    \lipsum[1][1-2]
    \begin{align*}
      &      & a          &= b \\
      & \iff & a + c      &= b+c    && \commentaire{0.47\displaywidth}{%
        Je voudrais écrire un commentaire ici et ça marche très bien, même si le
        commentaire est long. \TeX\ fait comme si les lignes 2 et suivantes ne
        prenaient pas de place ; si ce n'est pas souhaité, utiliser
        \texttt{\string\commentaire*} (voir ci-dessous).}\\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & d(a+c)     &= d(b+c) && \commentaire*{0.47\displaywidth}{%
                                         \lipsum*[1][1-2]}\\
      & \iff & (e-d)(a+c) &= (e-d)(b+c)
    \end{align*}
    
    \end{document}
    
    2. Version où la largeur de la zone d'explications est déterminée de manière automatique :
    \documentclass{article}
    \usepackage{amsmath}
    \usepackage{xparse}             % pas nécessaire si format LaTeX >= 2020-10-01
    \usepackage{lipsum}             % pour le texte bidon
    
    \makeatletter
    \newdimen\commentaire@largeur@dispo
    
    \NewDocumentCommand \commentaire { s m }
      {%
        \begin{lrbox}{0}
          \begin{minipage}[t]{\commentaire@largeur@dispo}
            \hbadness=3000          % commenter pour voir tous les warnings
            \small \sloppy % \raggedright
            #2%
          \end{minipage}%
        \end{lrbox}%
        \IfBooleanF{#1}{%
          \ht0=\ht\strutbox
          \dp0=\dp\strutbox
        }%
        \usebox{0}%
      }
    
    \NewDocumentEnvironment {AlignAvecCommentaires} { b }
      {%
        \begingroup
          \RenewDocumentCommand \commentaire { s m } {}%
          \sbox{0}{$\displaystyle \begin{aligned}#1\end{aligned}$}%
          \global\commentaire@largeur@dispo=\dimexpr \linewidth - \wd0\relax
        \endgroup
        \begin{align*}
          #1%
        \end{align*}%
      }{}
    \makeatother
    
    \begin{document}
    
    \lipsum[1][1-2]
    \begin{AlignAvecCommentaires}
      &      & a          &= b \\
      & \iff & a + c      &= b+c    && \commentaire{%
        Je voudrais écrire un commentaire ici et ça marche très bien, même si le
        commentaire est long. \TeX\ fait comme si les lignes 2 et suivantes ne
        prenaient pas de place ; si ce n'est pas souhaité, utiliser
        \texttt{\string\commentaire*} (voir ci-dessous).}\\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & \dotsb     &= \dotsb \\
      & \iff & d(a+c)     &= d(b+c) && \commentaire*{\lipsum*[1][1-2]}\\
      & \iff & (e-d)(a+c) &= (e-d)(b+c)
    \end{AlignAvecCommentaires}
    
    \end{document}
    
    Edit : améliorations mineures (\commentaire@largeur@dispo passé en registre dimen, \global\setlength remplacé par une affectation $\TeX$ de registres dimen, utilisation de \linewidth au lieu de \textwidth...).115112
    115114
  • Waouh Brian, c’est génial, c’est exactement ce que je voulais ! Un immense merci ! Merci pour le temps passé pour résoudre mon problème, merci pour les explications.
    C’est un vrai plaisir de recevoir votre aide car on sait que le problème sera résolu de la meilleure des manières !

    Merci encore et bonne soirée !
  • Ravi d'entendre ça, fifi21. :-) J'ai ajouté un % dans le deuxième exemple, à la fin de la ligne '\RenewDocumentCommand \commentaire (...)'. Bonne soirée à toi aussi !
  • Bonsoir Brian,

    Effectivement, ton aide est particulièrement précieuse et très appréciable, sans compter qu'elle est très appréciée. Pour ma part, je viens d'apprendre encore quelque chose.

    Puisque tu connais bien les attentes précises des matheux, tu devrais rédiger un livre sur Latex et Tikz. Ce n'est qu'une suggestion.

    Franchement, c'est génial. Merci.

    Bien cordialement,

    Thierry
    Le chat ouvrit les yeux, le soleil y entra. Le chat ferma les yeux, le soleil y resta. Voilà pourquoi le soir, quand le chat se réveille, j'aperçois dans le noir deux morceaux de soleil. (Maurice Carême).
  • Merci pour vos commentaires, c'est gentil. Le livre, oui... Bon, disons que moi aussi, j'ai quelques petits problèmes dans la Vie Réelle(*) qui, pour le moment, excluent ce genre d'entreprise. Hélas...

    (*) Je ne me sens pas tout à fait seul ici. 8-)
Connectez-vous ou Inscrivez-vous pour répondre.