###############################
É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 ``