格式化 sagetex 代码,如控制台或笔记本

格式化 sagetex 代码,如控制台或笔记本

我想将 Sage 代码放入我的 LaTeX 文档中,它看起来与交互式会话非常相似,但我想要 LaTeX 格式的输出。

因此,我想在我的 LaTeX 文件中写一些类似这样的内容:

\begin{sageblock}
gcd(x^2 + 2*x + 1, x + 1)
\end{sageblock}

结果首先是一个 Courier 排版的盒子,其中包含

sage: gcd(x^2 + 2*x + 1, x + 1)

然后后面会出现一个包含 LaTeX 格式结果的框。

$$ x+1 $$

知道如何做到这一点吗,而无需将结果分配给辅助变量然后打印该变量?

答案1

环境sageexample

环境sageexample确实如此(除了sage:需要手动添加提示)。

gcd.tex创建包含以下内容的latex 文件

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sageexample}
sage: gcd(x^2 + 2*x + 1, x + 1)
\end{sageexample}
\end{document}​

然后在终端运行

pdflatex gcd && sage gcd.sagetex.sage && pdflatex gcd

并将生成一个包含以下内容的 PDF 文件:

sage : gcd(x^2 + 2*x + 1, x + 1)

x + 1

(其中 x + 1 是排版的)。

环境sagecommandline

请注意相关sagecommandline环境会使输出保持非排版形式,并且适合运行文档测试。

gcd.tex创建包含以下内容的latex 文件

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagecommandline}
sage: gcd(x^2 + 2*x + 1, x + 1)
\end{sagecommandline}
\end{document}​

然后在终端运行

pdflatex gcd && sage gcd.sagetex.sage && pdflatex gcd

并将生成一个包含以下内容的 PDF 文件:

sage : gcd(x^2 + 2*x + 1, x + 1)
x + 1

附加行号。要删除行号,请添加行

\lstdefinestyle{SageInput}{style=DefaultSageInput,numbers=none}

之前的某个地方\begin{sagecommandline}

相关内容