Sage is a cool and free open source mathematics software system that strives to be an alternative to Magma, Maple, Mathematica, and Matlab. SageTex is a Latex package that can make life easier or more interesting for those of us who use Latex for writing technical documents and occasionally need to include plots, numerical calculations, or symbolic derivations. I came across this in a tweet and decided to give it a go. I have two machines at home: a Linux laptop and a Windows one. Making it work on the Linux machine is very straightforward, doing the same on the Windows machine proved otherwise. Here I summarise the steps I needed to take so that it might be helpful for other people.
First, one needs to install Sage by following these steps. It is straightforward enough. Let’s assume that the installation folder is
C:\SageMath 9.0
Second, you need to grab sagetex.sty from this folder
C:\SageMath 9.0\runtime\opt\sagemath-9.0\local\share\texmf\tex\latex\sagetex
and copy it somewhere that your Tex typesetting system is aware of. You are better off using the sagetex.sty that comes with a given version of Sage. See this page for more information. This will possibly require some mocking about with the package trees.
Third, start your favourite latex editor and put together a minimal example like
\documentclass[11pt, oneside]{article}
\usepackage{amssymb,amsthm,amsmath}
\usepackage{graphicx,xcolor}
\usepackage{sagetex}
\title{A Minimal Example with SageTex}
\author{Marcus Aurelius}
\begin{document}
\maketitle
%A sage block that will not appear in the typeset file...
\begin{sagesilent}
f(x) = x^4 + sin(x)
\end{sagesilent}
Let $$f(x) = \sage{f(x)}.$$
The function $f(x)$ for $x\in[-1,1]$ is depicted in Figure~\ref{fig:example}.
\begin{figure}
\centering
\sageplot[width=.7\textwidth]{plot(f,-1,1)}
\caption{A plot of $f(x)$.}
\label{fig:example}
\end{figure}
\end{document}
Let’s assume this file is called example.tex and lives in C:\Example. Ordinarily on a Linux or Mac machine you get your typeset file by running the following commands.
pdflatex example.tex
sage example.sagetex.sage
pdflatex example.tex
In windows you need to do a bit more. While in
C:\Example
you need to first run
pdflatex example.tex
Then, from
C:\SageMath 9.0\runtime\bin
you need to run (with no line breaks)
bash -l "C:/SageMath 9.0/runtime/opt/sagemath-9.0/sage" -c "os.chdir(r'C:\Example'); load('example.sagetex.sage')"
And finally, from C:\Example, you need to re-run
pdflatex example.tex
Now you can compile Latex with a touch of Sage in it. Enjoy (or just stick to Linux.)