Usando o SageTeX

O pacote SageTeX permite que você insira resultados de cálculos feitos com o Sage em um documento LaTeX. Esse pacote já vem com o Sage. Para usá-lo, você precisa “instalá-lo” em seu sistema LaTeX local; aqui instalar significa copiar um simples arquivo. Veja Instalação neste tutorial e a seção “Make SageTeX known to TeX” do Guia de instalação do Sage (em inglês).

Aqui vai um breve exemplo de como usar o SageTeX. A documentação completa pode ser encontrada em SAGE_ROOT/venv/share/texmf/tex/latex/sagetex, onde SAGE_ROOT é o diretório onde se encontra a sua instalação. Esse diretório contém a documentação, um arquivo de exemplo, e alguns scripts em Python possivelmente úteis.

Para ver como o SageTeX funciona, siga as instruções para instalar o SageTeX (em Instalação) e copie o seguinte texto em um arquivo chamado st_example.tex, por exemplo.

Aviso

O texto abaixo vai apresentar diversos erros sobre “unknown control sequences” se você está visualizando isto na ajuda “live”. Use a versão estática para ver o texto corretamente.

\documentclass{article}
\usepackage{sagetex}

\begin{document}

Using Sage\TeX, one can use Sage to compute things and put them into
your \LaTeX{} document. For example, there are
$\sage{number_of_partitions(1269)}$ integer partitions of $1269$.
You don't need to compute the number yourself, or even cut and paste
it from somewhere.

Here's some Sage code:

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

The second derivative of $f$ is

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

Here's a plot of $f$ from $-1$ to $1$:

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

\end{document}

Execute o LaTeX em st_example.tex da forma usual. Note que o LaTeX vai reclamar sobre algumas coisas, entre elas:

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

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.

Observe que, além dos arquivos usuais produzidos pelo LaTeX, existe um arquivo chamado st_example.sage. Esse é um script em Sage produzido quando você executa o LaTeX em st_example.tex. A mensagem de alerta pede para você executar o LaTeX em st_example.sage, então siga essa sugestão e faça isso. Você vai receber uma mensagem para executar o LaTeX em st_example.tex novamente, mas antes que você faça isso, observe que um novo arquivo foi criado: st_example.sout. Esse arquivo contém os resultados dos cálculos feitos pelo Sage, em um formato que o LaTeX pode usar para inserir em seu texto. Um novo diretório contendo um arquivo EPS do seu gráfico também foi criado. Execute o LaTeX novamente e você vai ver que tudo que foi calculado, incluindo os gráficos, foi incluído em seu documento.

As funções (macros em inglês) utilizadas acima devem ser fáceis de entender. Um ambiente sageblock insere código “verbatim” (exatamente como é digitado) e também executa o código quando você executa o Sage. Quando você insere \sage{foo}, é incluído em seu documento o resultado que você obteria executando latex(foo) no Sage. Comandos para fazer gráficos são um pouco mais complicados, mas em sua forma mais simples, \sageplot{foo} insere a imagem que você obtêm usando foo.save('filename.eps').

Em geral, a rotina é a seguinte:

  • execute o LaTeX no seu arquivo .tex;

  • execute o Sage no arquivo .sage que foi gerado;

  • execute o LaTeX novamente.

Você pode omitir a execução do Sage desde que você não tenha alterado os comandos em Sage em seu documento.

Há muito mais sobre o SageTeX, e como tanto o Sage como o LaTeX são ferramentas complexas e poderosas, é uma boa idéia ler a documentação para o SageTeX que se encontra em SAGE_ROOT/venv/share/texmf/tex/latex/sagetex.