使用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.tex
和 example.pdf
,这是使用LaTeX和Sage排版该文件的预置结果。您也可以从 SageTeX page 。
SageTeX和TeXLive¶
一个潜在的令人困惑的问题是,流行的TeX发行版 TeXLive 包括SageTeX。这看起来可能很好,但对于SageTeX来说,同步Sage位和LaTeX位很重要--这在本例中是一个问题,因为您的操作系统发行版或包管理器提供的TeXLive可能与TeXLive发行版不同步,后者也可能与当前的SageTeX不同步。
正因为如此,它是 strongly recommended 如上所述,您始终从Sage安装SageTeX的LaTeX部分。上面的说明将确保SageTeX的两个部分都兼容并将正常工作。