使用SageTeX

SageTeX包允许您将Sage计算的结果嵌入到LaTeX文档中。要使用它,您需要首先“安装”它(请参见 让Tex知道SageTeX )。

一个例子

以下是使用SageTeX的一个非常简短的示例。完整的文档可在 SAGE_ROOT/venv/share/doc/sagetex ,在哪里 SAGE_ROOT 是Sage安装所在的目录。该目录包含文档和示例文件。看见 SAGE_ROOT/venv/share/texmf/tex/latex/sagetex 获取一些可能有用的Python脚本。

要了解SageTeX的工作原理,请按照安装SageTeX的说明进行操作(位于 让Tex知道SageTeX ),并将以下文本复制到名为的文件中,例如, st_example.tex

警告

如果您在“实时”帮助中查看此内容,则下面的文本将显示有关未知控制序列的几个错误。使用静态版本查看正确的文本。

\documentclass{article}
\usepackage{sagetex}

\begin{document}

Using Sage\TeX, one can use Sage to compute things and put them into
your \LaTeX{} document. For example, there are
$\sage{number_of_partitions(1269)}$ integer partitions of $1269$.
You don't need to compute the number yourself, or even cut and paste
it from somewhere.

Here's some Sage code:

\begin{sageblock}
    f(x) = exp(x) * sin(2*x)
\end{sageblock}

The second derivative of $f$ is

\[
  \frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \sage{f(x)} =
  \sage{diff(f, x, 2)(x)}.
\]

Here's a plot of $f$ from $-1$ to $1$:

\sageplot{plot(f, -1, 1)}

\end{document}

运行LaTeX On st_example.tex 像往常一样。请注意,LaTeX会有一些投诉,其中包括:

Package sagetex Warning: Graphics file
sage-plots-for-st_example.tex/plot-0.eps on page 1 does not exist. Plot
command is on input line 25.

Package sagetex Warning: There were undefined Sage formulas and/or
plots. Run Sage on st_example.sagetex.sage, and then run LaTeX on
st_example.tex again.

请注意,除了LaTeX通常生成的文件集合之外,还有一个名为 st_example.sagetex.sage 。这是在运行LaTeX时生成的Sage脚本 st_example.tex 。警告消息告诉您运行Sage st_example.sagetex.sage ,所以接受它的建议并去做吧。它会告诉您运行LaTeX st_example.tex 同样,在执行此操作之前,请注意已创建了一个新文件: st_example.sagetex.sout 。该文件包含Sage的计算结果,格式为LaTeX可以用来插入到文本中。还创建了一个包含绘图的EPS文件的新目录。再次运行LaTeX,您将看到Sage计算和绘制的所有内容现在都包含在您的文档中。

上面使用的不同宏应该非常容易理解。一个 sageblock 环境逐字排版您的代码,并在您运行Sage时执行代码。当你这样做的时候 \sage{foo} ,输入到文档中的结果就是您从运行 latex(foo) 塞奇的内心深处。Plot命令稍微复杂一些,但在它们最简单的形式中, \sageplot{foo} 插入您通过执行以下操作获得的图像 foo.save('filename.eps')

总的来说,人们的口头禅是:

  • 在你的.tex文件上运行LaTeX;

  • 在生成的.sage文件上运行sage;

  • 再次运行LaTeX。

如果您没有更改文档中的任何Sage命令,则可以省略运行Sage。

SageTeX还有很多功能,而且由于Sage和LaTeX都是复杂而强大的工具,因此最好阅读SageTeX的文档,它位于 SAGE_ROOT/venv/share/doc/sagetex

让Tex知道SageTeX

Sage在很大程度上是自给自足的,但有些部分确实需要一些干预才能正常工作。SageTeX就是这样一个角色。

SageTeX包允许用户将Sage中的计算和绘图嵌入到LaTeX文档中。SageTeX默认安装在Sage中,但要将SageTeX用于LaTeX文档,您需要让Tex安装知道它才能工作。

关键是Tex需要能够找到 sagetex.sty ,可在 SAGE_ROOT/venv/share/texmf/tex/latex/sagetex/ ,在哪里 SAGE_ROOT 是构建或安装Sage的目录。如果特克斯能找到 sagetex.sty ,那么SageTeX就会起作用。有几种方法可以实现这一点。

  • 第一种也是最简单的方法就是复制 sagetex.sty 放到与LaTeX文档相同的目录中。由于在排版文档时始终搜索当前目录,因此这将始终起作用。

    然而,这有几个小问题:第一个问题是,您最终会得到许多不必要的副本 sagetex.sty 散布在你的电脑里。第二个也是更严重的问题是,如果您升级Sage并获得新版本的SageTeX,则SageTeX的Python代码和LaTeX代码可能不再匹配,从而导致错误。

  • 第二种方法是使用 TEXMFLOCAL 环境变量。如果您正在使用bashShell,您可以执行以下操作

    $ export TEXMFLOCAL=SAGE_ROOT/venv/share/texmf
    $ mktexlsr       # update kpathsea ls-R databases
    

    哪里 SAGE_ROOT 是您的Sage安装的位置。此后,Tex和朋友们将找到SageTeX样式的文件。如果要使此更改持久进行,可以将以上第一行添加到您的 .bashrc 文件。如果您使用的是不同的Shell,则可能需要修改上面的命令以使环境变量为已知;有关如何执行此操作的信息,请参阅您的Shell文档。

    如果您曾经移动过您的Sage安装,或者将一个新版本安装到一个新目录中,您将需要更新上面的命令以反映 SAGE_ROOT

  • 让Tex意识到的第三个(也是最好的)方法 sagetex.sty 是将该文件复制到您主目录中一个方便的位置。在大多数TeX发行版中, texmf 系统会自动在您的主目录中的目录中搜索包。要找出该目录的确切内容,请在命令行上执行以下操作:

    $ kpsewhich -var-value=TEXMFHOME
    

    它将打印出一个目录,例如 /home/drake/texmf/Users/drake/Library/texmf 。复制 tex/ 目录来自 SAGE_ROOT/venv/share/texmf/ 走进你的家 texmf 目录,并使用如下命令

    $ cp -R SAGE_ROOT/venv/share/texmf/tex TEXMFHOME
    

    哪里 SAGE_ROOT 将一如既往地替换为您的Sage安装位置和 TEXMFHOME 是由 kpsewhich 上面的命令。

    如果您升级Sage并发现SageTeX不再工作,您只需重复这些步骤,SageTeX的Sage和TeX部分将再次同步。

  • 对于在多用户系统上的安装,只需适当修改上述说明即可复制 sagetex.sty 放到系统范围的TeX目录中。而不是目录 TEXMFHOME ,可能最好的选择是使用

    $ kpsewhich -var-value=TEXMFLOCAL
    

    很可能会产生类似于 /usr/local/share/texmf 。复制 tex 目录中的内容放入 TEXMFLOCAL 目录。现在需要更新TeX的包数据库,只需运行以下命令即可完成

    $ texhash TEXMFLOCAL
    

    作为超级用户,替换 TEXMFLOCAL 恰如其分。现在,您系统的所有用户都将可以访问LaTeX包,如果他们还可以运行Sage,那么他们也将能够使用SageTeX。

警告

这份文件非常重要 sagetex.sty LaTeX在排版文档时使用的版本与Sage正在使用的SageTeX版本相匹配。如果您升级了Sage安装,您确实应该删除的所有旧版本 sagetex.sty 四处漂浮。

由于这个问题,我们建议将SageTeX文件复制到主目录的texmf目录中(上面的第三种方法)。那么,当您升级Sage以确保SageTeX正常工作时,您只需要做一件事(复制一个目录)。

SageTeX文档

虽然严格来说不是安装的一部分,但在此值得一提的是,SageTeX的文档在 SAGE_ROOT/venv/share/doc/sagetex/sagetex.pdf 。在同一目录中还有一个示例文件--请参见 example.texexample.pdf ,这是使用LaTeX和Sage排版该文件的预置结果。您也可以从 SageTeX page

SageTeX和TeXLive

一个潜在的令人困惑的问题是,流行的TeX发行版 TeXLive 包括SageTeX。这看起来可能很好,但对于SageTeX来说,同步Sage位和LaTeX位很重要--这在本例中是一个问题,因为您的操作系统发行版或包管理器提供的TeXLive可能与TeXLive发行版不同步,后者也可能与当前的SageTeX不同步。

正因为如此,它是 strongly recommended 如上所述,您始终从Sage安装SageTeX的LaTeX部分。上面的说明将确保SageTeX的两个部分都兼容并将正常工作。