Accueil > Mathématiques > Maths & logiciels > Emacs & SageMath
Emacs & SageMath
samedi 28 novembre 2020, par
Introduction
À l’aide des paquets polymode et sage-shell-mode, il est facile de configurer emacs pour travailler efficacement avec sagemath.
Quelques exemples d’utilisation :
- Écrire un script sage et l’évaluer
- Écrire du code latex contenant des morceaux de sage à l’aide de sagetex
- Utiliser sage de manière interactive
- ...
Voici un exemple de configuration à l’aide de straight
sage-shell-mode
D’après la documentation officielle :
(use-package sage-shell-mode
:straight t
:init
(setq sage-shell:use-prompt-toolkit t)
(sage-shell:define-alias)
(eval-after-load "latex"
'(mapc (lambda (key-cmd) (define-key LaTeX-mode-map (car key-cmd) (cdr key-cmd)))
`((,(kbd "C-c s c") . sage-shell-sagetex:compile-current-file)
(,(kbd "C-c s C") . sage-shell-sagetex:compile-file)
(,(kbd "C-c s r") . sage-shell-sagetex:run-latex-and-load-current-file)
(,(kbd "C-c s R") . sage-shell-sagetex:run-latex-and-load-file)
(,(kbd "C-c s l") . sage-shell-sagetex:load-current-file)
(,(kbd "C-c s L") . sage-shell-sagetex:load-file)
(,(kbd "C-c C-z") . sage-shell-edit:pop-to-process-buffer))))
)Polymode
Enfin, pour que les morceaux de code sage dans un tampon LaTeX bénéficient du mode python, on peut utiliser polymode.
(use-package polymode
:straight t
:config
(define-innermode poly-latex-sage-mode-innermode
:mode 'sage-mode
:head-matcher "\\\\begin{sagesilent}"
:tail-matcher "\\\\end{sagesilent}"
:head-mode 'host
:tail-mode 'host)
(define-polymode poly-latex-mode
:hostmode 'pm-host/latex
:innermodes '(poly-latex-sage-mode-innermode) )
(add-to-list 'auto-mode-alist '("\\.tex$" . poly-latex-mode))
)
Addendum
- Ces paquets sont très utiles avec sagetex : il suffit de saisir C-c s r pour compiler le fichier latex puis lancer sage sur le fichier sage produit.
- Le paquet ob-sagemath intéressera certainement les utilisateurs de org-mode
- Pour sage 9.2, il faut lancer la commande sage avec l’option —simple-prompt
Heptagone