Notations mathématiques sur le Web
Cette page sert de test pour les différents moteurs de rendu pour les expressions mathématiques. Pour l'instant, ce n'est vraiment pas le top...
Le principe
Pour ne pas devoir se tracasser de la manière dont nous allons afficher les formules, je ne m'occupe que de leur sémantique au moment ce la conception de la page. Au début de la page, un appel est fait à la méthode statique getInstance() de la classe BrolMath, qui me retourne un un objet (par exemple une instance de BrolMathML, ou de BrolMathHTML).
Toutes les méthodes de génération des différents éléments de la formule sont des méthodes abstraites définies dans la classe BrolMath, et implémentées dans une des classes concrètes.
Dans le cas d'une instance de BrolMathHTML, le code généré utilise simplement des balises (X)HTML. Une feuille de style permet de définir comment ces éléments sont affichés, mais certaines balises influencent directement la présentation (comme par exemple la balise sub), alors que le rendu MathML est plus indépendant de l'affichage.
Si l'option allowAlternate est activée, un message apparaît en bas de page, permettant de sélectionner un autre moyen d'affichage. Dans le cas où une option est sélectionnée, un message apparaît en haut de page pour signaler le type de rendu utilisé, et éventuellement d'autres informations en fonction du type d'affichage.
Le mode texte permet l'affichage des formules en pseudo-code, normalement plus facile à lire pour un non-mathématicien.
Exemples
Vous pouvez consulter la page d'explications sur programmation déclarative pour tester les affichages alternatifs.
Ci-dessous, différents exemples et le code généré :
Symboles HTML (type html)
Une substitution est un ensemble de la forme σ = { X1 / t1, ..., Xn / tn } tel que
∀ i ∈ { 1, ..., n } Xi ∈ V
∀ i ∈ { 1, ..., n } ti ∈ T ... ceci est un extrait, et non la définition complète
Soit σ = { X1 / t1, ..., Xn / tn } une substitution, nous avons
dom(σ) = { X1, ..., Xn } et codom(σ) = var(t1, ..., tn)
Tests des ensembles :
ℕ, ℤ, ℚ, ℝ, ℂ;
α, Α, β, Β, γ, Γ, δ, Δ, ε, Ε, θ, Θ, ϑ, λ, μ, ξ, Ξ, π, ρ, σ, Σ, ς, φ, Φ, ψ, ω, Ω, ϒ; ...
A ⊂ B, A ⊆ B, A ⊃ B, A ⊇ B
substitution, division, fraction :
X / 1, X ÷ 1, X/1
Code généré
Code HTML (214 lignes)
<var>σ <var>X <sub>1 </sub> <var>t <sub>1 </sub> </var>, ..., <var>X <sub> <var>n </var> </sub> <var>t <sub> <var>n </var> </sub> </span> tel que <br /> <br /> <var>i </var> <var>n </span> <var>X <sub> <var>i </var> </sub> </var> ∈ <var>V </var> </span> <br /> <var>i </var> <var>n </span> <var>t <sub> <var>i </var> </sub> </var> ∈ <var>T </var> </span> ... </span> <br /> <br />Soit <var>σ <var>X <sub>1 </sub> <var>t <sub>1 </sub> </var>, ..., <var>X <sub> <var>n </var> </sub> <var>t <sub> <var>n </var> </sub> </span> une substitution, nous avons <br /> <var>σ </var>) <var>X <sub>1 </sub> </var>, ..., <var>X <sub> <var>n </var> </sub> </span> et <var>σ </var>) <var>t <sub>1 </sub> </var>, ..., <var>t <sub> <var>n </var> </sub> </var>) </span> </span> </p> <br /> <br /> <var>α </var>, <var>Α </var>, <var>β </var>, <var>Β </var>, <var>γ </var>, <var>Γ </var>, <var>δ </var>, <var>Δ </var>, <var>ε </var>, <var>Ε </var>, <var>θ </var>, <var>Θ </var>, <var>ϑ </var>, <var>λ </var>, <var>μ </var>, <var>ξ </var>, <var>Ξ </var>, <var>π </var>, <var>ρ </var>, <var>σ </var>, <var>Σ </var>, <var>ς </var>, <var>φ </var>, <var>Φ </var>, <var>ψ </var>, <var>ω </var>, <var>Ω </var>, <var>ϒ </var>; ... <br /> <var>A </var> ⊂ <var>B </var>, <var>A </var> ⊆ <var>B </var>, <var>A </var> ⊃ <var>B </var>, <var>A </var> ⊇ <var>B </var> </span> </p> <br /> <var>X <var>X </var> ÷ 1, <var>X </var>/1 </span> </p>
Symboles MathML (type xml)
Une substitution est un ensemble de la forme tel que
Soit
Tests des ensembles :
substitution, division, fraction :
Code généré
Code XML (394 lignes)
<p class="pf">Une substitution est un ensemble de la forme <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>σ </mi> <mo>= </mo> <mrow> <mo>{ </mo> <mrow> <mi> <msub>X <mn>1 </mn> </msub> </mi> <mo>/ </mo> <mi> <msub>t <mn>1 </mn> </msub> </mi> </mrow>, ..., <mrow> <mi> <msub>X <mi>n </mi> </msub> </mi> <mo>/ </mo> <mi> <msub>t <mi>n </mi> </msub> </mi> </mrow> <mo>} </mo> </mrow> </math> tel que <br /> <br /> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>∀ <mi>i </mi> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>∈ <mrow> <mo>{ </mo> <mn>1 </mn>, ..., <mi>n </mi> <mo>} </mo> </mrow> </mrow> </math> </mrow> <mi> <msub>X <mi>i </mi> </msub> </mi> <mrow>∈ <mi>V </mi> </mrow> </math> <br /> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>∀ <mi>i </mi> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>∈ <mrow> <mo>{ </mo> <mn>1 </mn>, ..., <mi>n </mi> <mo>} </mo> </mrow> </mrow> </math> </mrow> <mi> <msub>t <mi>i </mi> </msub> </mi> <mrow>∈ <mi>T </mi> </mrow> </math> ... <span class="info">ceci est un extrait, et non la définition complète </span> <br /> <br />Soit <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>σ </mi> <mo>= </mo> <mrow> <mo>{ </mo> <mrow> <mi> <msub>X <mn>1 </mn> </msub> </mi> <mo>/ </mo> <mi> <msub>t <mn>1 </mn> </msub> </mi> </mrow>, ..., <mrow> <mi> <msub>X <mi>n </mi> </msub> </mi> <mo>/ </mo> <mi> <msub>t <mi>n </mi> </msub> </mi> </mrow> <mo>} </mo> </mrow> </math> une substitution, nous avons <br /> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>dom <mo>( </mo> <mi>σ </mi> <mo>) </mo> </mrow> <mo>= </mo> <mrow> <mo>{ </mo> <mi> <msub>X <mn>1 </mn> </msub> </mi>, ..., <mi> <msub>X <mi>n </mi> </msub> </mi> <mo>} </mo> </mrow> </math> et <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow>codom <mo>( </mo> <mi>σ </mi> <mo>) </mo> </mrow> <mo>= </mo> <mrow>var <mo>( </mo> <mi> <msub>t <mn>1 </mn> </msub> </mi>, ..., <mi> <msub>t <mi>n </mi> </msub> </mi> <mo>) </mo> </mrow> </math> </p> <p class="pn">Tests des ensembles : <br /> <math xmlns="http://www.w3.org/1998/Math/MathML">ℕ <mtext>, </mtext>ℤ <mtext>, </mtext>ℚ <mtext>, </mtext>ℝ <mtext>, </mtext>ℂ <mtext>; <br /> </mtext> <mi>α </mi> <mtext>, </mtext> <mi>Α </mi> <mtext>, </mtext> <mi>β </mi> <mtext>, </mtext> <mi>Β </mi> <mtext>, </mtext> <mi>γ </mi> <mtext>, </mtext> <mi>Γ </mi> <mtext>, </mtext> <mi>δ </mi> <mtext>, </mtext> <mi>Δ </mi> <mtext>, </mtext> <mi>ε </mi> <mtext>, </mtext> <mi>Ε </mi> <mtext>, </mtext> <mi>θ </mi> <mtext>, </mtext> <mi>Θ </mi> <mtext>, </mtext> <mi>ϑ </mi> <mtext>, </mtext> <mi>λ </mi> <mtext>, </mtext> <mi>μ </mi> <mtext>, </mtext> <mi>ξ </mi> <mtext>, </mtext> <mi>Ξ </mi> <mtext>, </mtext> <mi>π </mi> <mtext>, </mtext> <mi>ρ </mi> <mtext>, </mtext> <mi>σ </mi> <mtext>, </mtext> <mi>Σ </mi> <mtext>, </mtext> <mi>ς </mi> <mtext>, </mtext> <mi>φ </mi> <mtext>, </mtext> <mi>Φ </mi> <mtext>, </mtext> <mi>ψ </mi> <mtext>, </mtext> <mi>ω </mi> <mtext>, </mtext> <mi>Ω </mi> <mtext>, </mtext> <mi>ϒ </mi> <mtext>; ... <br /> </mtext> <mi>A </mi> ⊂ <mi>B </mi> <mtext>, </mtext> <mi>A </mi> ⊆ <mi>B </mi> <mtext>, </mtext> <mi>A </mi> ⊃ <mi>B </mi> <mtext>, </mtext> <mi>A </mi> ⊇ <mi>B </mi> </math> </p> <p class="pn">substitution, division, fraction : <br /> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mi>X </mi> <mo>/ </mo> <mn>1 </mn> <mtext>, </mtext> <mi>X </mi> ÷ <mn>1 </mn> <mtext>, </mtext> <mfrac> <mi>X </mi> <mn>1 </mn> </mfrac> </math> </p>
Symboles texte (type html)
Une substitution est un ensemble de la forme sigma = { X1 est SUBSTITUE par t1, ..., Xn est SUBSTITUE par tn } tel que
( POUR TOUT i est INCLU dans { 1, ..., n } ) Xi est INCLU dans V
( POUR TOUT i est INCLU dans { 1, ..., n } ) ti est INCLU dans T ... ceci est un extrait, et non la définition complète
Soit sigma = { X1 est SUBSTITUE par t1, ..., Xn est SUBSTITUE par tn } une substitution, nous avons
une FONCTION dom(AVEC sigma COMME ARGUMENTS) = { X1, ..., Xn } et une FONCTION codom(AVEC sigma COMME ARGUMENTS) = une FONCTION var(AVEC t1, ..., tn COMME ARGUMENTS)
Tests des ensembles :
Ensemble_des_entiers_naturels, Ensemble_des_entiers_relatifs, Ensemble_des_nombres_rationnels, Ensemble_des_nombres_réels, Ensemble_des_nombres_complexes;
alpha, Alpha, beta, Beta, gamma, Gamma, delta, Delta, epsilon, Epsilon, theta, Theta, thetasym, lambda, mu, xi, Xi, pi, rho, sigma, Sigma, sigmaf, phi, Phi, psi, omega, Omega, upsih; ...
(A est un SOUS-ENSEMBLE de B) , (A est EGAL ou est un SOUS-ENSEMBLE de B) , (A CONTIENT B) , (A est EGAL ou CONTIENT B)
substitution, division, fraction :
X est SUBSTITUE par 1, (X DIVISE PAR 1) , ( FRACTION de X sur 1)
Code généré
Code HTML (380 lignes)
<sub>1 </sub> </var> </span> <sub>1 </sub> </var>, ..., <sub> </var> </sub> </var> </span> <sub> </var> </sub> </span> tel que <br /> <br /> </span> </span> </var> </span> </span> <sub> </var> </sub> </var> </span> </var> </span> <br /> </span> </span> </var> </span> </span> <sub> </var> </sub> </var> </span> </var> </span> ... </span> <br /> <br />Soit <sub>1 </sub> </var> </span> <sub>1 </sub> </var>, ..., <sub> </var> </sub> </var> </span> <sub> </var> </sub> </span> une substitution, nous avons <br /> </span>dom( </span> </var> <sub>1 </sub> </var>, ..., <sub> </var> </sub> </span> et </span>codom( </span> </var> </span>var( </span> <sub>1 </sub> </var>, ..., <sub> </var> </sub> </var> </span>) </span> </p> <br /> </span> </span> </span> </span> </span> </span> </span> </span> </span> <br /> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> </span> </var> <br /> </span> </span> </var> </span> </var> </span> </span> </span> </var> </span> </var> </span> </span> </span> </var> </span> </var> </span> </span> </span> </var> </span> </var> </span> </span> </p> <br /> </var> </span>1 </span> </span> </var> </span>1 </span> </span> </span> </span> </var> </span>1 </span> </span> </p>
Fraction simple avec HTML (type html)
a0 + 1/xCode généré
Fraction simple avec MathML (type xml)
Code généré
Code XML (16 lignes)
<math xmlns="http://www.w3.org/1998/Math/MathML"> <msub> <mi>a </mi> <mn>0 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <mi>x </mi> </mfrac> </math>
Fractions multiples avec HTML (type html)
a4 + 1/a3 + 1/a2 + 1/a1 + 1/a0 + 1/xCode généré
Fractions multiples avec MathML (type xml)
Code généré
Code XML (64 lignes)
<math xmlns="http://www.w3.org/1998/Math/MathML"> <msub> <mi>a </mi> <mn>4 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <msub> <mi>a </mi> <mn>3 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <msub> <mi>a </mi> <mn>2 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <msub> <mi>a </mi> <mn>1 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <msub> <mi>a </mi> <mn>0 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <mi>x </mi> </mfrac> </mfrac> </mfrac> </mfrac> </mfrac> </math>
Superpositions avec HTML (type html)
Test 3-1
The quick brown fox jumps over |
the lazy dog |
Test 3-2
base |
under |
Test 3-3
over |
base |
under |
Test 3-4
over |
base |
under |
base |
under |
Code généré
Code HTML (106 lignes)
<section> <section> </span>Test 3-1 </h4> <tr> <td>The quick brown fox jumps over </td> </tr> <tr> <td>the lazy dog </td> </tr> </table> </span> </section> <section> </span>Test 3-2 </h4> <tr> <td>base </td> </tr> <tr> <td>under </td> </tr> </table> </span> </section> <section> </span>Test 3-3 </h4> <tr> <td>over </td> </tr> <tr> <td>base </td> </tr> <tr> <td>under </td> </tr> </table> </span> </span> </section> <section> </span>Test 3-4 </h4> <tr> <td>over </td> </tr> <tr> <td>base </td> </tr> <tr> <td>under </td> </tr> <tr> <td>base </td> </tr> <tr> <td>under </td> </tr> </table> ∧ <var>a </var> <sub>2 <var>a </var> <sub>1 <var>a </var> <sub>0 <var>x </var> </span>
Superpositions avec MathML (type xml)
Test 3-1
Test 3-2
Test 3-3
Test 3-4
Code généré
Code XML (110 lignes)
<section> <section> <h4 id="test9-1-t"> <span id="test9-1" class="brol-scrollfix toc-c"> </span>Test 3-1 </h4> <math xmlns="http://www.w3.org/1998/Math/MathML"> <mover> <mtext>the lazy dog </mtext> <mtext>The quick brown fox jumps over </mtext> </mover> </math> </section> <section> <h4 id="test9-2-t"> <span id="test9-2" class="brol-scrollfix toc-c"> </span>Test 3-2 </h4> <math xmlns="http://www.w3.org/1998/Math/MathML"> <munder> <mtext>base </mtext> <mtext>under </mtext> </munder> </math> </section> <section> <h4 id="test9-3-t"> <span id="test9-3" class="brol-scrollfix toc-c"> </span>Test 3-3 </h4> <math xmlns="http://www.w3.org/1998/Math/MathML"> <munderover> <mtext>base </mtext> <mtext>under </mtext> <mtext>over </mtext> </munderover> </math> <math xmlns="http://www.w3.org/1998/Math/MathML"> </math> </section> <section> <h4 id="test9-4-t"> <span id="test9-4" class="brol-scrollfix toc-c"> </span>Test 3-4 </h4> <math xmlns="http://www.w3.org/1998/Math/MathML"> <munderover> <mtext>base </mtext> <mtext>under </mtext> <mtext>over </mtext> </munderover> <mo>+ </mo> <mrow> <munder> <mtext>base </mtext> <mtext>under </mtext> </munder> ∧ <msub> <mi>a </mi> <mn>2 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <msub> <mi>a </mi> <mn>1 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <msub> <mi>a </mi> <mn>0 </mn> </msub> <mo>+ </mo> <mfrac> <mn>1 </mn> <mi>x </mi> </mfrac> </mfrac> </mfrac> </mrow> </math>
Exemples MathML
Code généré
Code XML (47 lignes)
<p> <math display="block"> <semantics> <mrow> <munderover> <mo>∑</mo> <mrow> <mi>n</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mo>+</mo> <mn>∞</mn> </mrow> </munderover> <mfrac> <msup> <mi>x</mi> <mi>n</mi> </msup> <mrow> <mi>n</mi> <mo>!</mo> </mrow> </mfrac> </mrow> <annotation encoding="TeX">\sum_{n=0}^{+\infty} rac{x^n}{n!} </annotation> </semantics> </math> </p> <p> <math> <mfrac> <mi>a</mi> <msqrt> <mn>2</mn> </msqrt> </mfrac> <mo>+</mo> <msup> <mi>x</mi> <mn>3</mn> </msup> </math> </p>
Version en cache
21/11/2024 09:35:53 Cette version de la page est en cache (à la date du 21/11/2024 09:35:53) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 05/06/2010, dernière modification le 08/03/2020
Source du document imprimé : https://www.gaudry.be/math-rendering.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.