我正在努力寻找一种方法,让 SageTex 和任何注释(注释或逐字)包很好地协同工作。我希望能够注释掉包含 SageTeX 命令的一段 LaTeX 代码,这样就不会打印任何内容,但 Sage 代码无论如何都会在内部运行(但不打印)。
最小示例:
\documentclass[12pt]{exam}
\usepackage{sagetex,comment}
\begin{document}
I'd like the Sage Code in the following \LaTeX to be run:
\begin{comment}
\begin{sagesilent}
foo=1
\end{sagesilent}
$\sage{2+2}$
\end{comment}
So that here I get a 1: $\sage{foo}$.
\end{document}
请注意,将 sagesilent 移出注释块不是一个可接受的解决方案,原因如下:
我正在与其他几位同事一起编写家庭作业文档,其中一些同事无法访问 sage 服务器。问题包含 sagesilent 和常规 \sage{} 环境(由于印刷原因无法移出)。我的同事很乐意在完成所有最终 Sage 更改后下载 sout 文件,但他们希望能够在我们以不同的速度解决问题时打印问题本身的选定子集。常规(%%)注释掉问题,而不重新运行生成的 sage 文档,只会导致文档中的 sage 结果变得混乱(因为 SageTex 似乎为变量赋予了自己的编号,而删除变量只会导致该变量的输出转移到文档中的下一个变量。)
提示:我可能天真地希望这是可能的,因为考试类本身与 SageTex 配合得很好。特别是,无论是否将解决方案设置为打印在考试文件中,相同的 sout 文件都可以工作。
答案1
这对于评论来说太长了,因此我将其作为答案发布:
我不确定我理解了这个问题。根据文档在第 9 页,sagesilent 命令是在后台运行 Sage 而不排版代码的命令。文档还建议(第 10-11 页),当与无法访问 Sage 的人共享时:“最简单的方法是将以下文件包含在您的文档中:
- sagetex.sty
- 生成的.sout 文件
- sage-plots-for-(filename).tex 目录及其内容
只要 sagetex.sty 可用,您的文档就可以使用任何合理的 LaTeX 系统进行排版。由于在论文提交中包含图形文件非常常见,因此这是一个始终有效的解决方案。
文档还提出了另一种替代方案,您可以研究一下(makestatitc.py),但是萨基马云似乎是更好的选择,因为它允许每个人在文档协作时使用 Sage/LaTeX。而且它还是免费的。