\sagestr(output) 不会在 LaTeX 代码中插入“输出”。

\sagestr(output) 不会在 LaTeX 代码中插入“输出”。

这个问题与“使用 sageTeX 为 TikZ 图片定义变量“。为了简化答案,我想在我的 LaTeX 代码中引入新命令“\def \crt{6.000000000000000}”,其中数字 6 是 sage 计算的结果。但字符串被忽略了,我收到一个错误。

MWE 如下:

\documentclass{article}
\usepackage{sagetex}
\usepackage{tikz}
\begin{document}

Begin sagesilent, \ldots
\begin{sagesilent}
reset()
var('rd')
def def4tikz(rd):
    ret = [r'\def \crt{']
    ret.append(str(rd)) 
    ret.append(r'}') 
    return '\n'.join(ret)
rd=6.
## The next line is for checking purpose only
print def4tikz(rd)
\end{sagesilent}

\sagestr{def4tikz(rd)}

%% What follows is a cut and paste of the result last line of the sage      silent block copied from the terminal, comment it in and the code works, the \sagestr instruction is ignored.
 %\def \crt{
 %6.00000000000000
 %}


After sagesilent we print $\sage{rd}$
and we should also get $\crt$.


\end{document}

因此,如果我们直接从终端获取输出,我们就会正确获得 \def,但如果我们使用指令 \sagestr,我们就会得到 \crt 的“未定义控制序列”错误。

看起来很奇怪,而且与相关问题不一致,其中 TikZ 图片的代码被拉入并正确执行。

相关内容