import re
slide = r'''
<s>
<cha>Variables aléatoires</cha>
<os>
<o>Généralités</o>
<o>Loi de probabilité</o>
<o>Tendance centrale et dispersion</o>
<o>Linéarité de l'espérance</o>
</os>
</s>
<s>
<par>1. Généralités</par>
</s>
<s>
<ti>1.1 Variable aléatoire</ti>
<d>
<t>
<n>On considère une expérience aléatoire associée à un univers $\Omega$ (fini) </n><n>sur lequel on a défini une probabilité $P$.<br></n>
<n>Une <e>variable aléatoire</e> $X$</n><n> est une <e>fonction</e> définie sur $\Omega$ </n><n>et à valeurs dans $\mathbb{R}$, </n><n>qui à tout élément de $\Omega$ fait correspondre un nombre réel.</n>
$$<n>X : \Omega \longmapsto \mathbb{R}</n>$$
</t>
</d>
</rq>
<ul>
<li>
<t><n>Comme $\Omega$ est fini, </n><n>l'ensemble des valeurs prises par $X$, </n><n>c'est-à-dire des images par $X$, </n><n>est fini.<br> </n><n>On parle de variable alors aléatoire <e>discrète</e>.<br></n>
<n>(par opposition par exemple au temps d'attente à une caisse qui est une variable aléatoire <i>continue</i>)</n></t>
</li>
<li>
<t><n>Pour une même expérience aléatoire, </n><n>on peut définir plusieurs variables aléatoires. </n><n>(Par exemple, la somme ou le produit des résultats de deux dés)</n></t>
</li>
</ul>
</s>
<s>
<d>
</rq>
<t><n>Soit $a$ un nombre réel, on note : </n>
<ul>
<li>
<t><n>$\{X = a\}$ l'événement </n><n>« la variable aléatoire $X$ prend la valeur $a$ » ;</n></t>
</li>
<li>
<t><n>$\{X \ge a\}$ </n><n>l'événement « la variable aléatoire $X$ prend une valeur supérieure ou égale à $a$ ».</n></t>
</li>
</ul>
</t>
</d>
<rq/>
<t>
<n>On peut définir de manière analogue les événements :</n><n> $\{X > a\}$, $\{X < a\}$ et $\{X \le a\}$.</n>
</t>
</s>
<s>
<ti>1.2 Loi de probabilité d'une variable aléatoire</ti>
<d>
<t>
<n>Soit $X$ une variable aléatoire définie sur $\Omega$.<br> </n>
<n>Définir la loi de probabilité de $X$, </n><n>c'est <e>associer</e> à chacune des valeurs prises par $X$ </n><n>sa <e>probabilité</e>.<br></n>
<n>Autrement dit, </n><n>en notant $x_1, x_2, \ldots, x_n$ les valeurs prises par $X$,</n><n> c'est donner les valeurs des probabilités :</n>
$$<n>p_i=P(X = x_i)</n>$$
<n>pour tout entier $i$, où $1 \le i \le n$.<br></n>
</t>
</d>
<rq/>
<t>
<n>On présente en général une loi de probabilité sous forme d'un tableau :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$x_1$</th>
<th>$x_2$</th>
<th>$\cdots$</th>
<th>$x_{n-1}$</th>
<th>$x_n$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$p_1$</td>
<td>$p_2$</td>
<td>$\cdots$</td>
<td>$p_{n-1}$</td>
<td>$p_n$</td>
</tr>
</tbody></table><br>
</n>
</t>
</s>
<s>
<p>
<t>
<n>Dans le tableau qui donne la loi de probabilité d'une variable aléatoire, </n><n>la <e>somme des probabilités</e> est égale à $1$.<br><br></n>
<n>Ainsi, si l'on note $x_1, x_2, \ldots, x_n$ les valeurs prises par $X$, on a :</n>
$$
<n>p_1 + p_2 + \cdots + p_{n-1}+p_n </n><n>=\sum_{i\, = \,1}^{n} p_i</n><n>= 1</n>
$$
</t>
</p>
</s>
<s>
<pr/>
<t>
<n>Par définition de la loi de probabilité $P$, </n><n>la <e>somme</e> des probabilités </n><n>de tous les événements élémentaires est égale à $1$.</n><br><br>
<n>Quant à la variable aléatoire $X$, </n><n>à chaque événement élémentaire de $\Omega$,</n> <n>on associe une valeur $x_i$, </n><n>de sorte que les événements
$\{X = x_1\}, \{X = x_2\}, \ldots, \{X = x_n\}$ forment </n><n>une <e>partition</e> de l'univers $\Omega$.<br><br></n>
<n>Ainsi, </n><n>la somme des probabilités des événements $\{X = x_i\}$ est égale à $1$.</n>
</t>
</s>
<s>
<ex/>
<t>
<n>Un jeu consiste à lancer deux pièces de monnaie équilibrées différentes.<br></n>
<n>On note $F$ quand on obtient Face et $P$ quand on obtient Pile.</n>
<n>Les quatre issues de l'expérience forment l'univers : </n>
$$
<n>\Omega = \{ FF \,;\, FP \,;\, PF \,;\, PP \}</n>
$$
<n>Les gains <e>algébriques</e> sont donnés par :</n>
</t>
<ul>
<li>
<t>à chaque Pile obtenue, on gagne 3 euros ;</t>
</li>
<li>
<t>à chaque Face obtenue, on perd 1 euro.</t>
</li>
</ul>
<t>
<n>On note $X$ la variable aléatoire </n><n>représentant le gain algébrique du joueur en euro.<br></n>
<n>La variable aléatoire $X$ prend les valeurs $-2$, $2$ et $6$.<br></n>
<n>L'écriture $\{X \geq 5\}$</n><n> représente l'événement « obtenir un gain supérieur ou égal à 5 euros ».<br></n>
<n>Ainsi :</n>
$$<n>\{X \geq 5\} = \{\omega \in \Omega \; | \; X(\omega) \geq 5 \} </n><n>= \{\omega \in \Omega \; | \; X(\omega) = 6 \}</n><n> = \{ PP \}</n>$$
<n>De même, </n><n>réaliser l'événement $\{X = -2\}$, </n><n>c'est obtenir l'issue $FF$ puisque :</n>
$$<n>\{X = -2\} =</n><n> \{\omega \in \Omega \; | \; X(\omega) = -2\}</n><n>= \{ FF \}</n>$$
</t>
</s>
<s>
<t>
<n>La loi de probabilité de la variable aléatoire $X$ peut être résumée dans le tableau suivant :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$-2$</th>
<th>$2$</th>
<th>$6$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$\frac{1}{4}$</td>
<td>$\frac{1}{2}$</td>
<td>$\frac{1}{4}$</td>
</tr>
</tbody></table>
</n>
<n>On peut alors vérifier :</n>
$$
<n>\sum_{i\,=\,1}^3 p_i </n><n>= p_1+p_2+p_3</n><n>=\dfrac{1}{4} + \dfrac{1}{2} + \dfrac{1}{4} = 1</n>
$$
</t>
</s>
<s>
<par>2. Espérance, linéarité</par>
</s>
<s>
<ti>2.1 Espérance</ti>
<d>
<t>
<n>Soit $X$ une variable aléatoire définie sur un univers $\Omega$ </n><n>et dont la loi de probabilité est donnée par le tableau suivant :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$x_1$</th>
<th>$x_2$</th>
<th>$\cdots$</th>
<th>$x_{n-1}$</th>
<th>$x_n$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$p_1$</td>
<td>$p_2$</td>
<td>$\cdots$</td>
<td>$p_{n-1}$</td>
<td>$p_n$</td>
</tr>
</tbody></table><br>
</n>
<n>L'<e>espérance</e> de la variable aléatoire $X$ est le réel noté </n><n>$E(X)$ </n><n>défini par :</n>
$$<n>E(X) = \sum_{i\,=\,1}^{n} p_i x_i=p_1 x_1 + p_2 x_2 + \cdots + p_n x_n</n>$$
</t>
</d>
<rq/>
<t>
<n>L'espérance s'interprète comme </n><n>la valeur moyenne prise par la variable aléatoire $X$ </n><n>lorsque l'on répète un grand nombre de fois l'expérience.</n>
</t>
</s>
<s>
<ex/>
<t>
<n>La loi de la variable aléatoire $X$ donnant le gain du joueur, en euro, est donnée par :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$-2$</th>
<th>$2$</th>
<th>$6$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$\frac{1}{4}$</td>
<td>$\frac{1}{2}$</td>
<td>$\frac{1}{4}$</td>
</tr>
</tbody>
</table>
</n>
<n>On a :</n>
$$
<n>E(X) = p_1 x _1 + p_2 x_2 + p_3 x_3 </n><n>= \dfrac{1}{4} \times (-2) + \dfrac{1}{2} \times 2 + \dfrac{1}{4} \times 6</n><n> = 2</n>
$$
<n>Un joueur peut espérer obtenir, en moyenne, sur un grand nombre de parties, deux euros par partie.</n>
</t>
</s>
<s>
<p>
<t>
<n>Plus généralement, si la variable étudiée désigne un </n><n>gain <e>algébrique</e></n>, <n>alors :</n>
</t>
<ul>
<li>
<t>Si $E(X) > 0$, le jeu est <e>avantageux</e> pour le joueur.</t>
</li>
<li>
<t>Si $E(X) = 0$, le jeu est <e>équitable</e> pour le joueur.</t>
</li>
<li>
<t>Si $E(X) < 0$, le jeu est <e>désavantageux</e> pour le joueur.</t>
</li>
</ul>
</p>
</s>
<s>
<ti>2.2 Linéarité de l'espérance</ti>
<d>
<t>
<n>Si $a$ et $b$ sont deux réels, </n><n>on peut définir sur $\Omega$ une nouvelle variable aléatoire</n><n> $Y = aX + b$, </n>
<n>dont les images sont :</n>
$$<n>y_i = a x_i + b</n>$$
<n>pour tout entier $i$ de $1$ à $n$.</n>
</t>
</d>
<p>
<t>
<n>Soient $a$ et $b$ deux réels, </n><n>on pose $Y = aX + b$, </n><n>alors :</n>
$$<n>E(Y) = aE(X) + b </n>$$
</t>
</p>
</s>
<s>
<pr/>
<t>
<n>La loi de probabilité de la variable aléatoire $Y$ est donnée par le tableau suivant :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$a x_1 + b$</th>
<th>$a x_2 + b$</th>
<th>$\cdots$</th>
<th>$a x_{n-1} + b$</th>
<th>$a x_n + b$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$p_1$</td>
<td>$p_2$</td>
<td>$\cdots$</td>
<td>$p_{n-1}$</td>
<td>$p_n$</td>
</tr>
</tbody></table><br>
</n>
<n>On a alors :</n>
$$<n>E(Y) = p_1 (ax_1 + b) + p_2 (ax_2 + b) + \cdots + p_n (ax_n + b)</n>$$
<n>ou encore :</n>
$$<n>a(p_1 x_1 + p_2 x_2 + \cdots + p_n x_n) + b(p_1 + p_2 + \cdots + p_n)</n>$$
<n>Or, par définition :</n>
$$<n>p_1 + p_2 + \cdots + p_n = 1 \qquad p_1 x_1 + p_2 x_2 + \cdots + p_n x_n = E(X)</n>$$
<n>On en déduit que :</n>
$$<n>E(Y) = aE(X) + b \times 1 = aE(X) + b</n>$$
</t>
</s>
<s>
<rq/>
<ul>
<li>
<t><n>Considérons le jeu suivant, </n><n>pour lequel la mise de départ est de $m=8$ euros.</n></t>
</li>
<li>
<t><n>On lance un dé non truqué à 6 faces, </n><n>on gagne alors le double du numéro obtenu.</n></t>
</li>
<li>
<t><n>Ensuite, </n><n>on tire une boule dans une urne qui contient $4$ boules noires et une blanche, </n><n>on gagne alors $1$ euro si la boule tirée est noire et $7$ euros sinon.</n></t>
</li>
</ul>
<br><br>
<t>
<n>Réalisons une <e>simulation</e> </n><n>pour conjecturer le <e>gain moyen</e>.</n>
</t>
</s>
<s>
<py>
from random import randint
def esperance_jeu(nb_sim, mise):
gain_total = 0
for _ in range(nb_sim):
gain = -mise
x = randint(1, 6)
gain += 2 * x
y = randint(1, 5)
gain += 1 if y <= 4 else 7
gain_total += gain
gain_moyen = gain_total / nb_sim
return gain_moyen
print(esperance_jeu(10**5, 8))
</py>
<a href="https://[Log in to view URL]" target="_blank">Lien</a>
</s>
<s>
<rq/>
<t><n>Avec la simulation précédente, </n><n>on trouve pour $n=100000$ environ $1,2$.<br></n>
<n>Remarquons d'abord que le gain algébrique associé à ce jeu peut s'écrire sous la forme :</n>
$$<n>G=-m+2X+Y \quad(*)</n>$$
<n>où $m$ est la mise de départ, </n><n>$X$ le résultat du lancer d'un dé à $6$ faces </n><n>et $Y$
le gain du jeu correspondant au tirage dans l'urne.<br></n>
<n>Or nous avons (déjà) vu :</n>
$$
<n>E(X)=\frac{1}{6}\times 1+\frac{1}{6}\times 2+\cdots +\frac{1}{6}\times 6=3,5</n> <n> \qquad E(Y)=\frac{4}{5}\times 1 +\frac{1}{5}\times 7=2,2</n>
$$
<n>D'après la <e>linéarité de l'espérance </e>:</n>
$$<n>E(G)=-m+2E(X)+E(Y)</n><n>=-8+2\times 3,5 +2,2</n><n>=1,2 </n>$$
</t>
</s>
<s>
<par>3. Variance et écart type</par>
</s>
<s>
<ti>3.1 Variance et écart-type</ti>
<d>
<t>
<n>La <e>variance</e> de la variable aléatoire $X$</n><n> est le réel positif noté $V(X)$ défini par :</n>
$$<n>V(X) = p_1 (x_1 - E(X))^2 + \cdots + p_n (x_n - E(X))^2</n>$$
<n>Ce que l'on peut noter :</n>
$$<n>V(X) = \sum_{i\,=\,1}^{n} p_i (x_i - E(X))^2</n>$$
<n>L'<e>écart type</e>, </n><n>noté $\sigma(X)$, </n><n>est le réel égal à </n><n>la <e>racine carrée</e> de la variance :</n>
$$<n>\sigma(X) = \sqrt{V(X)}</n>$$
</t>
</d>
</s>
<s>
<rq/>
<ul>
<li>
<t><n>La variance représente la </n><n><e>moyenne des carrés des écarts à l'espérance $E(X)$</e>.</n></t>
</li>
<li>
<t><n>Elle mesure la </n><n><e>dispersion</e> </n><n>des valeurs prises par la variable aléatoire $X$</n><n> autour de son espérance $E(X)$.</n></t>
</li>
<li>
<t>
<n>On peut noter également :</n>
$$<n>V(X)=E(X-E(X))^2</n>$$
</t>
</li>
</ul>
</s>
<s>
<ex/>
<t>
<n>Reprenons la variable aléatoire étudiée dans le paragraphe précédent :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$-2$</th>
<th>$2$</th>
<th>$6$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$\frac{1}{4}$</td>
<td>$\frac{1}{2}$</td>
<td>$\frac{1}{4}$</td>
</tr>
</tbody>
</table>
</n>
<n>Nous avions trouvé $E(X)=2$, on a :</n>
$$
<n>V(X) = p_1(x_1 - E(X))^2 + p_2(x_2 - E(X))^2 +p_3(x_3 - E(X))^2 </n><n>= \dfrac{1}{4}(-2 - 2)^2 + \dfrac{1}{2}(2 - 2)^2 + \dfrac{1}{4}(6 - 2)^2 </n><n>= 8</n>
$$
<n>On en déduit :</n>
$$
<n>\sigma(X) = \sqrt{V(X)} </n><n>= \sqrt{8} = 2\sqrt{2} </n><n>\approx 2,8</n>
$$
<n>On observe une fluctuation importante autour de l'espérance d'environ 2,8 euros.</n>
</t>
</s>
<s>
<ti>3.2 Formule de König Huygens</ti>
<p>
<t>
<n>Soit $X$ une v.a, alors avec les notations précédentes :</n>
$$<n>V(X)=\sum_{i\,=\,1}^n p_i x_i^2 -E(X)^2 </n><n>= E(X^2)-E(X)^2</n>$$
</t>
</p>
<rq />
<t>
<n>La variance apparait comme la </n><n>"différence entre la moyenne des carrés et</n><n> le carré de la moyenne".</n>
</t>
</s>
<s>
<ex/>
<t>
<n>Reprenant l'exemple précédent :</n>
<n>
<table>
<thead>
<tr>
<th><strong>Valeurs</strong></th>
<th>$-2$</th>
<th>$2$</th>
<th>$6$</th>
</tr>
</thead>
<tbody><tr>
<td><strong>Probabilités</strong></td>
<td>$\frac{1}{4}$</td>
<td>$\frac{1}{2}$</td>
<td>$\frac{1}{4}$</td>
</tr>
</tbody>
</table>
</n>
<n>On a donc également d'après cette proposition :</n>
$$<n>V(X)=E(X^2)-E(X)^2</n><n>=(-2)^2 \times \frac{1}{4}+2^2 \times \frac{1}{2}+6^2 \times \frac{1}{4} -2^2</n><n>=1+2+9-4=8</n>$$
</t>
</s>
<s>
<ex/>
<t>
<n>Soit $X$ une variable donnant le résultat du lancer d'un dé équilibré à $6$ faces,</n><n> on a d'abord :</n>
$$<n>E(X)=\sum_{i\,=\,1}^6 p_i x_i</n><n>= \frac{1}{6}\times 1 + \frac{1}{6}\times 2 +\cdots +\frac{1}{6}\times 6 </n><n>=\frac{21}{6}=\frac{7}{2}</n>$$
<n>D'autre part :</n>
$$<n>E(X^2)=\sum_{i\,=\,1}^6 p_i x_i^2 </n><n>= \frac{1}{6}\times 1^2 + \frac{1}{6}\times 2^2 +\cdots +\frac{1}{6}\times 6^2</n><n> =\frac{91}{6}</n>$$
<n>On en déduit :</n>
$$<n>V(X)=E(X^2)-E(X)^2</n><n>=\frac{91}{6}-\left( \frac{7}{2}\right)^2=\frac{91}{6}-\frac{49}{4}</n><n>=\frac{35}{12}</n>$$
</t>
</s>
<s>
<ti>3.2 Propriété de la variance</ti>
<d>
<t>
<n>Si $a$ et $b$ sont deux réels, </n><n>on peut définir sur $\Omega$ une nouvelle variable aléatoire</n><n> $Y = aX + b$, </n>
<n>dont les images sont :</n>
$$<n>y_i = a x_i + b</n>$$
<n>pour tout entier $i$ de $1$ à $n$.</n>
</t>
</d>
<p>
<t>
<n>Soient $a$ et $b$ deux réels, </n><n>on pose $Y = aX + b$, </n><n>alors :</n>
$$<n>V(Y) = a^2 V(X) </n>$$
</t>
</p>
</rq>
<t>
<n>La variance n'est pas linéaire contrairement à l'espérance.<br></n>
<n>Par conséquent, et avec les notations ci-dessus,</n><n> $\sigma(Y) = |a| \, \sigma(X)$.</n>
</t>
</s>
'''
def dispatch(s):
def to_frag(txt):
return re.sub(r"(<n>(?:.|\s)+?<\/n>)", lambda x: f'<n>$\\, \\displaystyle {x.group(1)[3:-4]}$</n>', txt)
return re.sub(r"(\$\$(?:.|\s)*?\$\$)", lambda x:f'<div class="text-center mt-4 mb-4">{to_frag(x.group(1)[2:-2])}</div>', s)
def make_code(code_str):
lines = code_str.split('\n')
n = len(lines)
sep = '|'.join(f"1-{i}" if i> 1 else "1" for i in range(1, n + 1))
return f'<div class="text-2xl text-left font-bold mb-8 mt-8">Implémentation Python</div>\n<pre><code data-line-numbers="{sep}" class="language-python">{code_str}</code></pre>'
def make_text(txt):
txt = re.sub(r"(<e>(?:.|\s)+?<\/e>)", lambda x: f'<span class="emph">{x.group(1)[3:-4]}</span>', txt)
txt = re.sub(r"(<n>(?:.|\s)+?<\/n>)", lambda x: f'<span class="fragment fade-in">{x.group(1)[3:-4]}</span>', txt)
return txt
def to_fragments(txt):
return re.sub(r"(<t>(?:.|\s)+?<\/t>)", lambda x: f'<div class="text-left">{make_text(x.group(1)[3:-4])}</div>', txt)
def make_objs(t):
return re.sub(r"(<o>(?:.|\s)+?<\/o>)", lambda x: f'<li class="flex items-center fragment fade-right"><span class="w-6 h-6 rounded bg-blue-800 text-white mr-3 flex items-center justify-center">✓</span><div>{x.group(0)[3:-4]}</div></li>', t)
def make_title(t):
t = re.sub(r"(<cha>(?:.|\s)+?<\/cha>)", lambda x: f'<div class ="border-[#A5D7FB] border-t-2 border-b-0 border-l-0 border-r-0 mb-24"></div><div class="font-extrabold text-black text-6xl mb-32 fragment fade-up">{x.group(0)[5:-6]}</div>\n', t)
fmt = '''<div class="display block bg-blue-50 border p-8 mt-12 border-blue-200 border-t-2 border-b-2 border-r-0 border-l-0 h-40 mx-auto fragment fade-up">
<div class="text-xl flex justify-center text-center items-center -mt-14 px-20 mx-64 py-2 rounded-xl bg-blue-800 text-white font-bold">Objectifs</div>
<ul class="ml-24 text-lg font-semibold mt-12 pt-8 list-inside list-none space-y-1 columns-2">'''
t = re.sub(r"(<os>(?:.|\s)+?<\/os>)", lambda x: f'''{fmt}{make_objs(x.group(0)[4:-5])}</ul>\n</div>''', t)
return f'<section>{t}</section>'
def make_section(section):
# proofs, remarks and examples
section = section.replace("<pr/>", '<div class="text-center align-middle text-white bg-orange-500 p-2 rounded-lg font-bold mb-2 fragment fade-in w-24 shadow-md">Preuve</div>')
section = section.replace("<rq/>", '<div class="text-left text-orange-500 font-bold mb-2 fragment fade-in">Remarque</div>')
section = section.replace("<ex/>", '<div class="text-center align-middle text-white bg-green-500 p-2 rounded-lg font-bold mb-2 fragment fade-in w-24 shadow-md">Exemple</div>')
section = section.replace("<li>", '<li class="fragment fade-in">')
# paragraphs
section = re.sub(r"(<par>(?:.|\s)+?<\/par>)", lambda x: f'<div class="text-5xl font-black text-sky-600">{x.group(1)[5:-6]}</div>', section)
# title
section = re.sub(r"(<ti>(?:.|\s)+?<\/ti>)", lambda x: f'<div class="text-3xl text-left font-bold text-sky-600 mb-8 fragment fade-in">{x.group(1)[4:-5]}</div>', section)
# defs
section = re.sub(r"(<d>(?:.|\s)+?<\/d>)", lambda x: f'<div class="relative border rounded-xl p-8 mt-12 mb-6 w-full bg-green-50 border-green-300 shadow-lg text-left fragment"><div class="absolute -top-5 left-4 px-3 py-3 text-white bg-green-600 font-bold">Définition</div>{to_fragments(x.group(1)[3:-4])}</div>', section)
# props
section = re.sub(r"(<p>(?:.|\s)+?<\/p>)", lambda x: f'<div class="relative border rounded-xl p-8 mt-12 mb-6 w-full bg-blue-50 border-blue-300 shadow-lg text-left fragment"><div class="absolute -top-5 left-4 px-3 py-3 text-white bg-blue-600 font-bold">Proposition</div>{to_fragments(x.group(1)[3:-4])}</div>', section)
# theos
section = re.sub(r"(<thm>(?:.|\s)+?<\/thm>)", lambda x: f'<div class="relative border rounded-xl p-8 mt-12 mb-6 w-full bg-red-50 border-red-300 shadow-lg text-left fragment"><div class="absolute -top-5 left-4 px-3 py-3 text-white bg-red-600 font-bold">Théorème</div>{to_fragments(x.group(1)[5:-6])}</div>', section)
# simple txts
section = to_fragments(section)
# python snippet
section = re.sub(r"(<py>(?:.|\s)+?<\/py>)", lambda x: make_code(x.group(0)[4:-5].strip()), section)
return section
def make_slide(slide):
# slide = re.sub(r"(\$\$\s*.+\s*\$\$)", lambda x: f"$$<n>{x.group(0)[2:-2]}</n>$$", slide)
title, *sections = re.findall(r"(?<=<s>)(?:.|\s)+?(?=<\/s>)", slide)
slides = '\n\n'.join(f"<section>{make_section(dispatch(section))}</section>" for section in sections)
return f"{make_title(title)}\n\n{slides}"
html = make_slide(slide)
print(html)
To embed this program on your website, copy the following code and paste it into your website's HTML: