PythonTeX

PythonTeX est une package réunissant \(\LaTeX\) et Python.

Qui n’a jamais rêvé de compiler un programme Python pendant qu’il (elle) compilait son document \(\LaTeX\) ? Grâce à ce package, c’est possible !

J’utilise d’ailleurs PythonTeX pour la mini-documentation sur Python (disponible sur ce site).

Installation de PythonTeX

Bien entendu, il faut installer Python sur votre ordinateur.

Ensuite, vous devez installer le package disponible sur cette page, mais si vous insérez la ligne :

\usepackage{pythontex}

directement dans votre document TeX, l’installation se fera d’elle-même si vous êtes sous Windows + MikTeX.

Dans le cas contraire, il vous faudra installer le package, sauf s’il est déjà inclus dans la distribution que vous utilisez (TexLive ou MacTeX).

Il faudra maintenant configurer votre éditeur (TeXMaker par exemple) pour qu’il compile suivant la chaîne suivante :

pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex|
python C:\Users\stephane\AppData\Local\Programs\MiKTeX\scripts\pythontex\pythontex.py %.tex|
pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex|
"C:/Program Files (x86)/Adobe/Acrobat 11.0/Acrobat/Acrobat.exe" %.pdf

Il est à noter que tout ceci est à mettre à la suite et que :

  1. la ligne 1 compile le document TeX;
  2. la ligne 2 exécute le fichier Python mis dans le répertoire de la distribution \(\LaTeX\) : il faut donc y mettre le chemin vers ce fichier;
  3. la ligne 3 compile à nouveau le document TeX;
  4. la ligne 4 affiche le résultat (il faut donc mettre ici le chemin vers votre viewer pdf).

Pour faciliter la compilation, sous TexMaker, j’ai créé une commande utilisateur composée de ces instructions. Ainsi, en appuyant sur [Alt]+[Shift]+[F1], je lance les instructions ([F1] car c’est ma première commande…).

Si cela ne fonctionne pas…

J’ai dû changer mon ordinateur et j’ai donc tout réinstallé… La distribution \(\LaTeX\) s’est installée dans le répertoire Miktex 2.9/ et j’ai installé la version 3.8 de Python.

Bien que le chemin de python.exe apparaisse dans le PATH de windows, la compilation via pythontex me donnait toujours un message d’erreur du genre :

Python is not installed

J’ai donc changé ma commande par la suivante :

pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex|C:\Users\Stephane\AppData\Local\Programs\Python\Python38-32\python.exe "C:\Users\Stephane\AppData\Local\Programs\MiKTeX 2.9\scripts\pythontex\pythontex.py" %.tex|pdflatex --shell-escape -synctex=1 -interaction=nonstopmode %.tex|"C:/Program Files (x86)/Adobe/Acrobat 11.0/Acrobat/Acrobat.exe" %.pdf

La présence d’une espace dans le nom du répertoire de Miktex oblige à indiquer le chemin vers pythontex entre guillemets, et j’ai aussi mis le chemin complet vers python.exe car le petit ne le trouvait pas tout seul… Et là, tout fonctionne parfaitement !

Un exemple avec PythonTeX

Pour tester l’installation, rien ne vaut un exemple.

\documentclass[12pt,french]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} 
\usepackage{lmodern}
\usepackage{babel}
\usepackage{pythontex}
\setlength{\parindent}{0pt}

\begin{document}

\begin{pyverbatim}
import math

def racine(a):
    return math.sqrt(a)

print(racine(9))
\end{pyverbatim}


\bigskip

Résultat : 

\begin{pycode}
import math

def racine(a):
    return math.sqrt(a)

print(racine(9))
\end{pycode}

\begin{pyconsole}
var = 1 + 1
var
\end{pyconsole}
\end{document}

devrait donner ceci :

Console Python PythonTeX

Si la compilation engendre une erreur, assurez-vous que le PATH de Windows contient le chemin vers le programme Python.