2015-04-23 13:31:24 +00:00
|
|
|
Utilisation de Opytex
|
2015-09-13 05:21:42 +00:00
|
|
|
#####################
|
|
|
|
|
|
|
|
Surcharge sur latex
|
|
|
|
===================
|
|
|
|
|
|
|
|
Opytex ajoute deux commandes "latex" pour inclure du code Python interprété dans les documents.
|
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
Commande *\Var*
|
|
|
|
---------------
|
|
|
|
|
|
|
|
Cette commande va exécuter du code python qui sera ensuite inclut dans le document tex produit.
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
Je peux afficher des nombres \Var{2}, \Var{2+3} ...
|
|
|
|
Et si j'ai enregistré une variable \Block{set a = 1}, je peux ensuite l'afficher \Var{a}.
|
|
|
|
|
|
|
|
Ce qui produira le document suivant
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
Je peux afficher des nombres 2, 5 ...
|
|
|
|
Et si j'ai enregistré une variable, je peux ensuite l'afficher 1.
|
|
|
|
|
2015-09-13 05:21:42 +00:00
|
|
|
Commande *\Block*
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Cette commande permet d'exécuter du code python qui ne sera pas afficher dans le document tex produit.
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
Je peux déclarer des variables
|
|
|
|
\Block{set a = 1}
|
|
|
|
\Block{set b = 2}
|
|
|
|
Et même faire des calculs
|
|
|
|
\Block{set c = a + b}
|
|
|
|
Mais rien ne sera affiché.
|
|
|
|
|
|
|
|
Ce qui produira le document suivant
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
Je peux déclarer des variables
|
|
|
|
Et même faire des calculs
|
|
|
|
Mais rien ne sera affiché.
|
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
La commande *Block* donne accès tag de jinja2.
|
2015-09-13 05:21:42 +00:00
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
- Les boucles
|
2015-09-13 05:21:42 +00:00
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
.. code-Block:: latex
|
2015-09-13 05:21:42 +00:00
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
On peut faire des boucles et parcourir des listes
|
|
|
|
\Block{set l = [1,2,3,4]}
|
|
|
|
\Block{for i in l}
|
|
|
|
i vaut \Var{i}
|
|
|
|
\Block{endfor}
|
2015-09-13 05:21:42 +00:00
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
Ce qui produira
|
2015-09-13 05:21:42 +00:00
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
On peut faire des boucles et parcourir des listes
|
|
|
|
i vaut 1
|
|
|
|
i vaut 2
|
|
|
|
i vaut 3
|
|
|
|
i vaut 4
|
2015-09-13 05:21:42 +00:00
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
|
2015-09-13 05:21:42 +00:00
|
|
|
Quelques commandes supplémentaires
|
|
|
|
==================================
|
|
|
|
|
|
|
|
Comme Opytex utilise le moteur de template Jinja2, la notion de filtre peut être utilisée.
|
|
|
|
|
|
|
|
Filtres qui marchenet bien avec pyMath
|
2015-11-15 13:31:31 +00:00
|
|
|
--------------------------------------
|
|
|
|
|
|
|
|
- "join": Mettre en forme un calcul sur une seule ligne
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
On commence par définir une expression,
|
|
|
|
\Block{set e = Expression("1 + 2*3")}
|
|
|
|
et on veut détailler sa simplification
|
|
|
|
\begin{align*}
|
|
|
|
\Var{e.simplify().explain()|join('=')}
|
|
|
|
\end{align*}
|
|
|
|
|
|
|
|
|
|
|
|
Ce qui produira le document suivant
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
On commence par définir une expression,
|
|
|
|
et on veut détailler sa simplification
|
|
|
|
\begin{align*}
|
|
|
|
1 + 2 \times 3 = 1 + 6 = 7
|
|
|
|
\end{align*}
|
|
|
|
|
|
|
|
|
2015-09-13 05:21:42 +00:00
|
|
|
|
2015-11-15 13:31:31 +00:00
|
|
|
- *calculus*: Mettre en forme un calcul sur plusieurs lignes
|
2015-09-13 05:21:42 +00:00
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
On commence par définir une expression,
|
|
|
|
\Block{set e = Expression("1 + 2*3")}
|
|
|
|
et on veut détailler sa simplification
|
|
|
|
\begin{eqnarray*}
|
|
|
|
\Var{e.simplify().explain()|calculus(name = 'e')}
|
|
|
|
\end{eqnarray*}
|
|
|
|
|
|
|
|
|
|
|
|
Ce qui produira le document suivant
|
|
|
|
|
|
|
|
.. code-block:: latex
|
|
|
|
|
|
|
|
On commence par définir une expression,
|
|
|
|
et on veut détailler sa simplification
|
|
|
|
\begin{eqnarray*}
|
|
|
|
e & = & 1 + 2 \times 3 \\
|
|
|
|
e & = & 1 + 6 \\
|
|
|
|
e & = & 7
|
|
|
|
\end{eqnarray*}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|