我想将 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}
。