############################### Écrire des *maths* en **rST** ############################### Des maths ? ----------- Je teste ici la possibilité d'embarquer des formules de maths écrites avec une balise ``.. math::``, et censées être rendues avec **MathJax**. **MathJax** ? Allez voir `la page officielle `_ pour plus de détails. Il faut seulement savoir que **MathJax** permet d'afficher *facilement* des maths (écrites en ``LaTeX`` ou en ``MathML``) joliment. Exemples -------- On remarque qu'on peut tout d'abord écrire des maths sans passer à la ligne :math:`a^2 + b^2 = c^2` (dans un triangle rectangle), avec la balise de texte interprété ``:math:`code math```. Identités remarquables ~~~~~~~~~~~~~~~~~~~~~~ Mais je peux aussi utiliser la directive ``.. math::`` pour faire un paragraphe de formules : .. math:: (a + b)^2 &= a^2 + 2ab + b^2 \\ (a - b)^2 &= a^2 - 2ab + b^2 Démonstration ~~~~~~~~~~~~~ .. math:: (a + b)^2 &= (a + b)(a + b) \\ &= a^2 + 2ab + b^2 On peut aussi utiliser la balise ``.. math::`` sans retourner à la ligne : .. math:: (a + b)^2 = a^2 + 2ab + b^2 Encore des exemples ------------------- L'option ``:label:`` permet ensuite de faire référence à l'équation. Par exemple, la formule dite d'Euler sera indiquée avec l'option ``:label:euler``. .. math:: e^{i\pi} + 1 = 0 :label: euler J'aime l'équation :eq:`euler` (qui a été élue *"plus belle formule"* de l'Histoire des Mathématiques en 1991 !) donc j'y fait référence, avec le code ``:eq:`euler```. On peut aussi faire comme ``$ math code $`` en ``LaTeX`` avec ``:math:`math code```. J'ai intégré (l'ENS Cachan) sans redoubler en 2011, on dit donc que j'ai intégré en :math:`\frac{3}{2}` (on rappelle que :math:`\int_{0}^{2} x .dx = \frac{3}{2}`). .. note:: Plus d'exemples ? J'utilise très souvent des maths dans une documentation rédigée en `reStructuredText `_ : - `mec-cs101-integrals `_, - `mec-cs101-matrices `_, - `infoMP/TPs `_, `infoMP/DSs `_ et `infoMP/TDs `_. Une syntaxe encore plus concise ? --------------------------------- .. versionadded:: 1.9.7 Un exemple sympa ~~~~~~~~~~~~~~~~ Savoir s'il est possible d'utiliser ``\(code LaTeX inliné\)`` et ``$$code LaTeX non inliné$$`` **directement en rST** ! Et bien, testons le code *rst* suivant : .. code-block:: rst Quand \\(a > 0\\) alors il y a deux solutions à $$ax^2 + bx + c = 0$$ et elles sont exactement $$x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}.$$ Ce qui donne : Quand \\(a > 0\\) alors il y a deux solutions à $$ax^2 + bx + c = 0$$ et elles sont exactement $$x = \\frac{-b \\pm \\sqrt{b^2 - 4ac}}{2a}.$$ .. warning:: Un léger défaut Avec ``$$code … encore du code$$``, et donc aussi ``\(code LaTeX\)`` il *faut* échapper les ``\`` sinon rien ne marche. Il suffit donc d'écrire ``\\`` quand du "vrai" code \\(\\LaTeX{}\\) n'utilise que ``\``. .. warning:: Deux syntaxes équivalents ! Normalement, ``\[code LaTeX non inliné\]`` devrait faire comme ``$$code LaTeX non inliné$$`` ! ------------------------------------------------------------------------------ Tests de plusieurs syntaxes pour MathJax ---------------------------------------- .. versionadded:: 1.9.7 En rST ~~~~~~ Normalement, on peut inclure des maths avec ``:math:`code LaTeX``` ou alors avec ``.. math:: code LaTeX sur une seule ligne`` ou enfin avec ``.. math:: \n\n code LaTeX\n sur plusieurs lignes`` (où ``\n`` est un sauté de ligne). Ceci est bien détaillé dans ``_. .. code-block:: rst Quand :math:`a > 0` alors il y a deux solutions à .. math:: ax^2 + bx + c = 0 et elles sont exactement .. math:: x = {-b \pm \sqrt{b^2 - 4ac} \over 2a}. Ce qui donne : Quand :math:`a > 0` alors il y a deux solutions à .. math:: ax^2 + bx + c = 0 et elles sont exactement .. math:: x = {-b \pm \sqrt{b^2 - 4ac} \over 2a}. En HTML ~~~~~~~ Mais il semblerait qu'on puisse aussi, *en HTML*, utiliser ``\(code LaTeX\)`` (inliné) ou ``$$code LaTeX$$`` (non inliné). Une autre méthode est d'utiliser une balise ``