LaTeX & Cie

Petit blog perso à destination des LaTeXiens ;-)

[Tuto] Profiter des capacités de sympy (Python) en LaTeX

Rédigé par C. Pierquet Aucun commentaire
Classé dans : Tutos Mots clés : Tutos, Tutos Package

Vous connaissez le module sympy de Python ? Vous êtes utilisateur de LaTeX ? Vous voulez combiner les deux ??

Le (modeste) package sympycalc permet de bénéficier des capacités de calculs de sympy directement en LaTeX :

  • effectuer des calculs de manière exacte ; 
  • effectuer des calculs sous forme symbolique ;
  • ...

L'idée est en fait de :

  • faire faire les calculs à sympy ;
  • récupérer les sorties grâce à la fonction latex(...) ;
  • patcher légèrement le tout pour respecter les règles de typographie française.

Il faut déjà savoir, et avoir conscience, qu'une petite configuration sera nécessaire au bon fonctionnement de cette solution :

  • avoir python installé, avec le module sympy ;
  • compiler en lualatex, avec shell-escape, pour une utilisation correcte du package pyluatex.
%préambule minimal
\documentclass[a4paper,11pt,french]{article}
\usepackage{mathtools}
\usepackage[executable=python]{pyluatex}
\usepackage{SympyCalc}

Le package sympycalc permet d'automatiser certaines commandes :

%%commandes génériques
\sympycalc(*){commande sympy}
\dsympycalc(*){commande sympy}

%commandes spécifiques, sortie standard (préfixer en d pour des sorties dysplaystyle
\sympyimage(*){fonction sympy}[variable]{point}
\sympydev(*){expr sympy}[variable]
\sympyfact(*){expr sympy}
\sympyderiv(*){expr sympy}[variable]
\sympynbderiv(*){expr sympy}[variable]{point}[côté]
\sympyprim(*){expr sympy}[variable]
\sympyintegr(*){expr sympy}[variable]{borne inf}{borne sup}
\sympylim(*){expr sympy}[variable]{point}[côté]
\sympyfexpo(*){complexe sympy}
\sympyresol(*){equation sympy}[variable]
\sympyresolC(*){equation sympy}[variable]

Par exemple, on peut effectuer quelques calculs basiques pour se rendre compte des possibilités offertes par sympy :

$1+\dfrac{5}{78} = \dsympycalc{1+5/78}$

$\displaystyle\frac{12}{\sqrt{5}} = \dsympycalc{12/sqrt(5)}$

$1+\dfrac32+\dfrac{15}{2+\sqrt{12}} = \dsympycalc{1+3/2+15/(2+sqrt(12))}$

Les captures suivantes sont issues de la documentation, et montrent en détail le fonctionnement de certaines commandes :

Documentation pdf : sympycalc