Utiliser SageTeX

Le paquet SageTeX permet d’inclure dans un document LaTeX les résultats de calculs effectués avec Sage. Il est fourni avec Sage, mais pour l’utiliser, vous aurez besoin de l’ajouter à votre installation TeX. Cette opération se résume à copier un fichier ; voyez la section Installation du présent tutoriel ainsi que « Make SageTeX known to TeX » dans le guide d’installation de Sage (Sage installation guide, ce lien devrait conduire à une copie locale) pour plus de détails.

Voici un bref exemple d’utilisation de SageTeX. La documentation complète se trouve dans SAGE_ROOT/venv/share/texmf/tex/latex/sagetex, où SAGE_ROOT désigne le répertoire racine de votre installation Sage. Elle est accompagnée d’un fichier exemple et de scripts Python potentiellement utiles.

Pour essayer SageTeX, suivez les instructions d’installation puis copiez le texte suivant dans un fichier st_example.tex:

Avertissement

Attention, tel qu’il est affiché dans la version interactive de l’aide de Sage, l’exemple suivant provoque des erreurs lors de la compilation par LaTeX. Consultez la version statique de la documentation pour voir le texte correct.

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}
\usepackage{sagetex}

\begin{document}

Sage\TeX{} permet de faire des calculs avec Sage en pla\,cant
automatiquement les r\'esultats dans un document \LaTeX.
Par exemple, l'entier $1269$ admet
$\sage{number_of_partitions(1269)}$ partitions. Le r\'esultat de ce
calcul est affich\'e sans que vous ayez \`a le calculer
vous-m\^eme ou m\^eme \`a le copier-coller dans votre document.

Un peu de code Sage :

\begin{sageblock}
    f(x) = exp(x) * sin(2*x)
\end{sageblock}

La d\'eriv\'ee seconde de $f$ est

\[
  \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \sage{f(x)} =
  \sage{diff(f, x, 2)(x)}.
\]

Voici enfin le graphe de $f$ sur $[-1,1]$:

\sageplot{plot(f, -1, 1)}

\end{document}

Lancez LaTeX pour compiler st_example.tex comme à l’accoutumée. LaTeX va afficher un certain nombre de messages d’avertissement, dont:

Package sagetex Warning: Graphics file
sage-plots-for-st_example.tex/plot-0.pdf on page 1 does not exist.
Plot command is on input line 30.

Package sagetex Warning: There were undefined Sage formulas and/or
plots. Run Sage on st_example.sage, and then run LaTeX on
st_example.tex again.

En plus des fichiers habituellement produits par LaTeX, le répertoire où vous travaillez contient maintenant un fichier st_example.sage. Il s’agit d’un script Sage produit par la compilation du fichier LaTeX. L’avertissement précédent vous demande de lancer Sage sur st_example.sage, faites-le. Un nouveau message vous demande de relancer LaTeX sur st_example.tex, mais avant de le faire, observez qu’un nouveau fichier st_example.sout a été créé. C’est ce fichier qui contient le résultat des calculs effectués par Sage, dans un format que LaTeX est capable de lire pour insérer les résultats dans votre document. Un nouveau répertoire contenant un fichier EPS avec votre graphique est également apparu. Après une nouvelle exécution de LaTeX, les résultats des commandes Sage sont présents dans votre document compilé.

Les macros LaTeX utilisées dans l’exemple ci-dessus ne sont guère compliquées à comprendre. Un environnement sageblock compose le code qu’il contient verbatim, et le fait exécuter par Sage. Avec \sage{toto}, le résultat placé dans votre document est celui de la commande Sage latex(toto). Les commandes de tracé de graphiques sont un peu plus compliquées. L’exemple ci-dessus utilise la forme la plus simple, \sageplot{toto}, qui insère dans le document l’image obtenue sous Sage par toto.save('fichier.eps').

Pour utiliser SageTeX, la procédure est donc la suivante :

  • lancez LaTeX sur votre fichier .tex ;

  • lancez Sage sur le fichier .sage produit pas LaTeX ;

  • lancez LaTeX une seconde fois.

(Il n’est pas nécessaire de lancer Sage si vous recompilez un document LaTeX sans avoir modifié les commandes Sage qu’il contient depuis la compilation précédente.)

SageTeX offre bien d’autres possibilités. Puisque Sage comme LaTeX sont des outils complexes et puissants, le mieux est sans doute de consulter la documentation complète de SageTeX, qui se trouve dans SAGE_ROOT/venv/share/texmf/tex/latex/sagetex.