是否可以使用 SageTeX 模拟 Sage 会话?

是否可以使用 SageTeX 模拟 Sage 会话?

我正在编辑一本使用 Sage 来演示概念的现有微积分书。现有书中有 Sage 代码列表,显示用户重复命令后将看到什么输出。例如,其中一个块具有以下内容:

sage: a,b = var("a,b")
sage: log(sqrt(a))
log(a)/2
sage: log(a/b).simplify_log()
log(a) - log(b)
sage: sin(a+b).simplify_trig()
cos(a)*sin(b) + sin(a)*cos(b)
sage: cos(a+b).simplify_trig()
cos(a)*cos(b) - sin(a)*sin(b)
sage: (a+b)^5
(b + a)^5
sage: expand((a+b)^5)
b^5 + 5*a*b^4 + 10*a^2*b^3 + 10*a^3*b^2 + 5*a^4*b + a^5

(是的,上面引用的一些回应并不正确,这是我在书中纠正的事情之一。)

是否可以使用 SageTeX 来自动响应。我尝试执行以下操作:

\begin{sageblock}
  a,b = var("a,b")
  log(sqrt(a))
  \sage{log(sqrt(a))}
  log(a/b).simplify_log()
  \sage{log(a/b).simplify_log()}
  sin(a+b).simplify_trig()
  \sage{sin(a+b).simplify_trig()}
  cos(a+b).simplify_trig()
  \sage{cos(a+b).simplify_trig()}
  (a+b)^5
  \sage{(a+b)^5}
  expand((a+b)^5)
  \sage{expand((a+b)^5)}
\end{sageblock}

但是当我在 SageTeX 生成的文件上运行 Sage 时,出现了一个错误:

$ sage master.sagetex.sage
  File "master.sagetex.sage.py", line 11
    * BackslashOperator() * sage{log(sqrt(a))}
    ^

我认为我的错误可能是\sage命令不能出现在 中sageblock

无论如何,我想我已经表达了我的意思可以做吗?这可能吗?如果可以,我该怎么做?

答案1

您在寻找 sagecommandline 吗?

% !TEX TS-program = sage

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagecommandline}
sage: a,b = var("a,b")
sage: sin(a+b).simplify_trig()
sage: (a+b)^2
sage: expand((a+b)^2)
\end{sagecommandline}
\end{document} 

此代码将产生

sage: a,b = var("a,b")          1
sage: sin(a+b).simplify_trig()  2
cos(b)*sin(a) + cos(a)*sin(b)   3
sage: (a+b)^2                   4
(a + b)^2                       5 
sage: expand((a+b)^2)           6
a^2 + 2*a*b + b^2               7

相关内容