Sobre o LaTeX já foi tudo dito, contudo, a junção do LaTeX com uma linguagem de programação já começa a ter pouca informação. Se juntarmos a isso a operação com grandezas físicas (com unidades) e a formatação dos resultados de modo a não termos um resultado esquizofrénico (a utilização simultânea do ponto e da vírgula como marcadores decimais), então talvez o leitor agradeça este documento.
Sobre o SageTeX (ou phyton/pythontex ambos no CTAN ), já há que dizer que são pacotes que incluídos no LaTeXpermitem fazer contas, gráficos etc. utilizando a linguagem correspondente.
Das muitas possíveis utilizações, de momento apenas interessa o seguinte:
Se em LaTeX escrevermos,
\begin{sagesilent}
A = 1/3.
B = 2*A
\end{sagesilent}
A = \sage{A} + \sage{B} = \sage{A+B}
resulta em:

O que é engraçado mas ainda pouco utilizável.
E se fosse possível fazer conversões de unidades para além dos cálculos em que o Sagemath/Python podem ajudar.
Com o pacote de python PhysicalQuantities (entre outros, mas este é o que mais gosto, principalmente quando trabalho em Jupyter ) é possível fazer contas com unidades sem nos preocuparmos com as conversões.
Por exemplo, se em LaTeX dentro de um bloco de Sage escrevermos:
from PhysicalQuantities import q a = 1/3.*q.m + 1*q.cm a=a.to(’cm’)
e depois em LaTeX
a = \sage{a}
resulta em:

Parece formidável, mas pode-se fazer ainda melhor.
Se o preâmbulo do documento LaTeX contiver (preâmbulo deste documento)
\usepackage{sagetex}
\usepackage{siunitx}
\sisetup{
output-decimal-marker = {,},
scientific-notation=false,
round-mode=places,
}
\newcommand{\sageSI}[3][]{\sagestr{’\SI[#1]{’+str(#2)+’}{#3}’}}
\newcommand{\sageSIu}[3][]{\sagestr{’\SI[#1]{’+str(#2.value)+’}
{’+str(#2.unit)+’}’}}
dermos o comando com a instrução definida no preâmbulo ( única instrução que não foi obtida pelo =oogle e tenha sido eu a escrever.)
a = \sageSIu[{}]{a}{}
resulta em:

No preâmbulo encontra-se também a instrução de formatar números sem unidades. Por exemplo
a = \sageSI[{}]{A+B}{m^2}
resulta em:

Se examinar o preâmbulo com atenção, verá que é fácil formatar o número, por exemplo em notação científica ou o número de casas decimais. Por exemplo:
A = \sageSI[{scientific-notation=true, decimal-places=3 }]
{(A+2*B)*1000}{m^2}
B = \sageSIu[{scientific-notation=true, decimal-places=3 }]
{a.to(’km’)}{}
resulta em:


O que é ainda mais espantoso.