根据让 TeX 了解 SageTeX,让 TeX 了解 SageTeX 的首选方法是将tex
在 处找到的文件夹SAGE_ROOT/local/share/texmf/tex
(在我的 OS X 情况下是)复制到在 shell 中/Applications/Sage-6.4.1.app/Contents/Resources/sage/local/share/texmf/tex
运行所返回的值中,在我的例子中是。kpsewhich -var-value=TEXMFHOME
/Users/chuck/Library/texmf
我已经这样做了,现在sagetex.sty
(和许多其他文件)可以在 找到/Applications/Sage-6.4.1.app/Contents/Resources/sage/local/share/texmf/tex/generic/sagetex
。
因此我打开该example.tex
文件(使用 TeXShop)generic
并单击该文件夹中的排版按钮。PDF 在 TeXShop 中生成并打开,但是所有应该有 Sage 操作结果的地方却出现了双问号。
单击时出现的控制台排版有许多错误,全部属于同一类型:
LaTeX Warning: Reference `@sageinline0' on page 1 undefined on input line 40.
LaTeX Warning: Reference `@sageinline1' on page 1 undefined on input line 41.
第 40 行和第 41 行如下所示:
This is an example $2+2=\sage{2+2}$. If you raise the current year mod
$100$ (which equals $\sage{mod(\the\year, 100)}$) to the power of the
此时的 PDF 输出包含以下文本:
这是一个例子 2 + 2 = ??。如果你将当前年份 mod 100(等于 ??)进行
Sage 和 TeX 的其他简单测试都已证明是成功的。例如,启动 Sage 应用程序并选择“终端会话 > Sage”可以正确输出输入4
,2+2
并且创建一个非常简单的 TeX 文档并使用latex
终端中的命令运行它也是成功的,因此这些似乎都可以单独运行而不会出现问题。
我该怎么做才能让他们一起工作?
答案1
TeXShop 使用称为“引擎”的脚本来排版每个文档。它已设置为处理 Sage,但您需要激活 SageTeX 引擎。
在 Finder 中,导航到~/Library/TeXshop/Engines
该文件夹,其中会有一个Inactive
文件夹。里面是文件sage.engine
。将其移动到Engines
文件夹中,然后重新启动 TeXshop。
(您还会在 Sage 文件夹中找到一些其他文档,包括一个示例文档。它还推荐了一种正确访问 Sage 的不同方法,而无需将其复制到本地texmf
文件夹。)
重新启动 TeXShop 后,在 Typeset 按钮旁边的下拉菜单中,将出现 Sage 引擎。选择它,然后编译您的文档。现在一切都应该正常工作了。
您可以添加以下行:
% !TEX TS-program = sage
到您的 Sage 文档的第一行,Sage 引擎将被自动选择。
答案2
作为参考,这里是 SageMath 文档中与 SageTeX 相关的部分以及 SageTeX GitHub 存储库的最新链接。