Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
4_domaines_specialises:mathematiques:arguments_contre_eqnarray [2021/06/21 19:47] – Compilation du code des exemples. jejust4_domaines_specialises:mathematiques:equations:arguments_contre_eqnarray [2021/12/24 18:03] (Version actuelle) – Correction de la mise en forme. yannick.tanguy
Ligne 3: Ligne 3:
 L'environnement ''eqnarray'' paraît attractif pour les utilisateurs occasionnels de mathématiques dans des documents <latex>\LaTeX</latex> : il semble permettre d'alignement de systèmes d'équations.  L'environnement ''eqnarray'' paraît attractif pour les utilisateurs occasionnels de mathématiques dans des documents <latex>\LaTeX</latex> : il semble permettre d'alignement de systèmes d'équations. 
  
-<WRAP column 30ex>+==== ==== 
 +<WRAP column 45ex>
 <code latex> <code latex>
 +\documentclass{article}
 +\begin{document}
 \begin{eqnarray} \begin{eqnarray}
   a & = & b + c \\   a & = & b + c \\
   x & = & y - z   x & = & y - z
 \end{eqnarray} \end{eqnarray}
 +\end{document}
 </code> </code>
 </WRAP> </WRAP>
-<WRAP column 30ex+<WRAP column 45ex
-<latex+<latexdoc
-\large+\documentclass{article} 
 +\usepackage[body={8cm,8cm}]{geometry} 
 +\usepackage{lmodern} 
 +\pagestyle{empty} 
 +\begin{document}
 \begin{eqnarray} \begin{eqnarray}
   a & = & b + c \\   a & = & b + c \\
   x & = & y - z   x & = & y - z
 \end{eqnarray} \end{eqnarray}
-</latex>+\end{document} 
 +</latexdoc>
 </WRAP> </WRAP>
 <WRAP clear /> <WRAP clear />
 +===== =====
  
 Et, en effet, il //fournit// cette fonctionnalité d'alignement... mais en gérant l'espacement de façon douteuse. Et, en effet, il //fournit// cette fonctionnalité d'alignement... mais en gérant l'espacement de façon douteuse.
  
-**1.** Typographiquement, ''eqnarray'' rajoute beaucoup d'espacement autour du symbole de relation, de façon injustifiée et incohérente avec les autres environnements mathématiques (ci-dessous ''equation'', ''eqnarray'' puis ''align'').+Ce sujet est discuté en détail dans un article en anglais du [[https://tug.org/pracjourn/2006-4/madsen/madsen.pdf|PracTeX journal paper]] de Lars Madsen; Stefan Kottwitz a également rédigé un [[http://texblog.net/latex-archive/maths/eqnarray-align-environment/|billet du TeX blog]] en anglais qui inclut des copies d'écran illustrant clairement les problèmes associés à ''eqnarray''. La présente page se limite à trois arguments importants.
  
-<WRAP column 30ex>+===== L'espacement autour du symbole de relation ===== 
 + 
 +Typographiquement, ''eqnarray'' rajoute beaucoup d'espacement autour du symbole de relation, de façon injustifiée et incohérente avec les autres environnements mathématiques (ci-dessous ''equation'', ''eqnarray'' puis ''align''). 
 + 
 +==== ==== 
 +<WRAP column 45ex>
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{mathtools}
 +\begin{document}
 \begin{equation*} \begin{equation*}
   x & = & y   x & = & y
Ligne 38: Ligne 56:
 \begin{align*} \begin{align*}
   x & = y   x & = y
-\end{align*}</code>+\end{align*} 
 +\end{document} 
 +</code>
 </WRAP> </WRAP>
-<WRAP column 30ex+<WRAP column 45ex
-<latex+<latexdoc
-\large+\documentclass{article} 
 +\usepackage[body={8cm,8cm}]{geometry} 
 +\usepackage{mathtools} 
 +\usepackage{lmodern} 
 +\pagestyle{empty} 
 +\begin{document}
 \begin{equation*} \begin{equation*}
   x & = & y   x & = & y
Ligne 53: Ligne 78:
 \begin{align*} \begin{align*}
   x & = y   x & = y
-\end{align*}</latex>+\end{align*} 
 +\end{document} 
 +</latexdoc>
 </WRAP> </WRAP>
 <WRAP clear /> <WRAP clear />
 +===== =====
  
 De fait, dans l'environnement ''eqnarray'', les espaces autour du symbole « <latex>$=$</latex> » ne sont pas ceux définis par les métriques de la fonte. Ils sont définis par ''\arraycolsep'', qui peut être arbitrairement fixé à des valeurs utiles aux véritables tables présentes dans le document.    De fait, dans l'environnement ''eqnarray'', les espaces autour du symbole « <latex>$=$</latex> » ne sont pas ceux définis par les métriques de la fonte. Ils sont définis par ''\arraycolsep'', qui peut être arbitrairement fixé à des valeurs utiles aux véritables tables présentes dans le document.   
  
-**2.** Quand l'équation occupe toute la largeur de la page, ''eqnarray'' ne s'en rend pas compte et place le numéro d'équation en surimpression sur le texte. Les autres environnements standard, comme equation, ne présentent pas ce problème et placent le tag en-dessous (pour les deux premières lignes ci-dessous, est utilisé ''eqnarray'' avec ''\setlength\arraycolsep{2pt}''; pour les deux suivantes, ''align'').+===== La gestion du numéro d'équation =====
  
-<WRAP column 30ex>+Quand l'équation occupe toute la largeur de la page, ''eqnarray'' ne s'en rend pas compte et place le numéro d'équation en surimpression sur le texte. Les autres environnements standard, comme equation, ne présentent pas ce problème et placent le tag en-dessous (pour les deux premières lignes ci-dessous, est utilisé ''eqnarray'' avec ''\setlength\arraycolsep{2pt}''; pour les deux suivantes, ''align''). 
 + 
 +==== ==== 
 +<WRAP column 45ex>
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{mathtools}
 +\begin{document}
 \setlength\arraycolsep{2pt} \setlength\arraycolsep{2pt}
 \begin{eqnarray} \begin{eqnarray}
   a & = & b \\   a & = & b \\
-    & = & cdefghijklmnopqrstuvwxyzcdefghijklmnopqrstuvwxyzcdefghijklmno+    & = & cdefghijklmnopqrst 
 +          uvwxyzcdefghijklmno
 \end{eqnarray} \end{eqnarray}
  
 \begin{align} \begin{align}
   a & = b \\   a & = b \\
-    & = cdefghijklmnopqrstuvwxyzcdefghijklmnopqrstuvwxyzcdefghijklmno +    & = cdefghijklmnopqrst 
-\end{align}</code>+        uvwxyzcdefghijklmno 
 +\end{align} 
 +\end{document} 
 +</code>
 </WRAP> </WRAP>
-<WRAP column 30ex+<WRAP column 45ex
-<latex+<latexdoc
-\large+\documentclass{article} 
 +\usepackage[body={8cm,8cm}]{geometry} 
 +\usepackage{mathtools} 
 +\usepackage{lmodern} 
 +\pagestyle{empty} 
 +\begin{document}
 \setlength\arraycolsep{2pt} \setlength\arraycolsep{2pt}
 \begin{eqnarray} \begin{eqnarray}
   a & = & b \\   a & = & b \\
-    & = & cdefghijklmnopqrstuvwxyzcdefghijklmnopqrstuvwxyzcdefghijklmno+    & = & cdefghijklmnopqrst 
 +          uvwxyzcdefghijklmno
 \end{eqnarray} \end{eqnarray}
 \vspace*{-0.5cm} \vspace*{-0.5cm}
 \begin{align} \begin{align}
   a & = b \\   a & = b \\
-    & = cdefghijklmnopqrstuvwxyzcdefghijklmnopqrstuvwxyzcdefghijklmno+    & = cdefghijklmnopqrst  
 +        uvwxyzcdefghijklmno
 \end{align} \end{align}
-</latex>+\end{document} 
 +</latexdoc>
 </WRAP> </WRAP>
 <WRAP clear /> <WRAP clear />
 +===== =====
  
-**3.** Par ailleurs, ''eqnarray'' ne fonctionne pas correctement avec les commandes du package [[ctanpkg>amsmath]], incontournable pour composer les mathématiques. Par exemple, les commandes ''\tag'' et ''\intertext'' fonctionnent avec tous les environnements sauf ''eqnarray''.+===== Le manque de comptabilité avec amsmath” =====
  
------+Par ailleurs, ''eqnarray'' ne fonctionne pas correctement avec les commandes de l'extension [[ctanpkg>amsmath]], incontournable pour composer les mathématiques. Par exemple, les commandes ''\tag'' et ''\intertext'' fonctionnent avec tous les environnements sauf ''eqnarray''
 + 
 +===== Ce qu'il existe pour la remplacer ===== 
 + 
 +==== L'environnement “align” ====
  
-Pour ces raisons, ''eqnarray'' doit être considéré comme obsolète et ne plus être utiliser. Il est avantageusement remplacé par les environnements d'[[ctanpkg>amsmath|amsmath]], notamment ''align'' défini pour répondre aux besoins des mathématiciens dont voici la syntaxe pour corriger l'exemple ci-dessus:+Pour ces raisons, ''eqnarray'' doit être considéré comme obsolète et ne plus être utiliser. Il est avantageusement remplacé par les environnements de [[ctanpkg>mathtools]] (ou de [[ctanpkg>amsmath]]), notamment ''align'' défini pour répondre aux besoins des mathématiciens dont voici la syntaxe pour corriger l'exemple ci-dessus:
  
-<WRAP column 30ex>+=== === 
 +<WRAP column 45ex>
 <code latex> <code latex>
 +\documentclass{article}
 +\usepackage{mathtools}
 +\begin{document}
 \begin{align} \begin{align}
   a & = b + c \\   a & = b + c \\
   x & = y - z   x & = y - z
 \end{align} \end{align}
 +\end{document}
 </code> </code>
 </WRAP> </WRAP>
-<WRAP column 30ex>+<WRAP column 45ex>
 <latex> <latex>
-\large 
 \begin{align} \begin{align}
   a & = b + c \\   a & = b + c \\
Ligne 115: Ligne 170:
 </WRAP> </WRAP>
 <WRAP clear /> <WRAP clear />
 +==== ====
  
-Ce sujet est discuté bien plus en détail dans un article en anglais du [[https://tug.org/pracjourn/2006-4/madsen/madsen.pdf|PracTeX journal paper]] de Lars Madsen; Stefan Kottwitz a également rédigé un [[http://texblog.net/latex-archive/maths/eqnarray-align-environment/|billet du TeX blog]] en anglais qui inclut des copies d'écran illustrant clairement les problèmes associés à ''eqnarray''.+==== Un correctif ancien et partiel ==== 
 + 
 +<note important>Ce qui suit est informatif et n'est conservé que pour historiser la méthodeL'utilisation de l'environnement ''eqnarray'' n'étant pas recommandé, cette astuce ne l'est pas plus.</note> 
 + 
 +Pour réduire les espaces entre les différentes colonnes d'un environnement ''eqnarray'', il suffit d'inclure la macro suivante dans le préambule de votre document : 
 + 
 +=== === 
 +<code latex> 
 +\makeatletter 
 +\newlength{\earraycolsep} 
 +\setlength{\earraycolsep}{2pt} 
 + 
 +\def\eqnarray{\stepcounter{equation}% 
 +  \let\@currentlabel% 
 +  \theequation 
 +  \global\@eqnswtrue\m@th 
 +  \global\@eqcnt\z@\tabskip\@centering 
 +  \let\\\@eqncr 
 +  $$\halign to\displaywidth\bgroup\@eqnsel 
 +  \hskip\@centering 
 +  $\displaystyle\tabskip\z@{##}$& 
 +  \global\@eqcnt\@ne\hskip 2\earraycolsep  
 +  \hfil$\displaystyle{##}$\hfil 
 +  &\global\@eqcnt\tw@ \hskip 2\earraycolsep 
 +  $\displaystyle\tabskip\z@{##}$\hfil 
 +  \tabskip\@centering&\llap{##}\tabskip\z@\cr} 
 +\makeatother 
 +</code> 
 +==== ====
  
 ----- -----
Ligne 123: Ligne 207:
   * [[https://web.archive.org/web/20170314080827/https://elzevir.fr/imj/latex/tips.html#eqnarray|Trois arguments contre eqnarray]], par Manuel Pégourié-Gonnard.   * [[https://web.archive.org/web/20170314080827/https://elzevir.fr/imj/latex/tips.html#eqnarray|Trois arguments contre eqnarray]], par Manuel Pégourié-Gonnard.
  
-{{htmlmetatags>metatag-keywords=(LaTeX,composition des mathématiques,alignement en mode mathématique,grande formule,alignement sur le signe égal,systèmes d'équation)+{{htmlmetatags>metatag-keywords=(LaTeX,mathématiques,équations,alignement en mode mathématique,grande formule,alignement sur le signe égal,systèmes d'équation)
 metatag-og:title=(Quels sont les arguments contre l'utilisation d'“eqnarray”) metatag-og:title=(Quels sont les arguments contre l'utilisation d'“eqnarray”)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
- 
- 
4_domaines_specialises/mathematiques/equations/arguments_contre_eqnarray.1624304871.txt.gz · Dernière modification : 2021/06/21 19:47 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0