如何在 Windows 上 运行 SageTeX?

How to run SageTeX on Windows?

我想在 LaTeX 中使用 Sage,我该怎么做 运行在 Windows 上使用 Sagemath 8.0?我使用 MikTeX 发行版。

我遵循了 Sagemath 的说明,但它们适用于 linux。我包含了 sagetex 包,它生成了一个 myfile.sage 文件,但是当我启动 Sage shell 和 运行 sage myfile.sage 它说

Traceback (most recent call last):
  File "myfile.sage.py", line 7, in <module>
    _st_ = sagetex.SageTeXProcessor('myfile')
  File "/opt/sagemath-8.0/local/lib/python2.7/site-packages/sagetex.py", line 76, in __init__
    raise VersionError, errstr
sagetex.VersionError: versions of .sty and .py files do not match.
myfile.sagetex.sage was generated by sagetex.sty version "None", but
is being processed by sagetex.py version "2015/08/26 v3.0-92d9f7a".
Please make sure that TeX is using the sagetex.sty
from your current version of Sage; see
http://www.sagemath.org/doc/installation/sagetex.html.

这是完整的说明,适用于 Windows。

  1. 找到你的sage安装的sagetex.sty文件,可能在C:\Program Files\SageMath 8.0\runtime\opt\sagemath-8.0\local\share\texmf\tex\latex\sagetex\sagetex.sty中。 (例如在 Arch Linux 上,你必须同时安装 sagesagetex 包,然后文件将在 /usr/share/texmf/tex/latex/sagetex/sagetex.sty 中)
  2. 通过在命令提示符的任意位置 运行 使用 TeX 命令 kpsewhich sagetex.sty 找出您的计算机正在查找的 sagetex.sty。可能这是您的 MikTeX(或 TeX Live 或您正在使用的任何发行版)目录,其中包含导致版本不匹配的旧 sagetex.sty。如果弹出窗口要求您安装某些东西,请不要安装!
  3. 我不完全确定,但我认为你可以将你的 sage 安装的新包文件复制到你的发行版的 sagetex 目录(对于 MikTeX 类似 C:\Users\s156757\AppData\Roaming\MiKTeX.9\tex\latex\sagetex覆盖旧的sagetex.sty 就在那里。如果没有,请确保删除旧文件并使用新文件,例如将其放在 tex 文件旁边。
  4. 可能您需要安装包 fancyvrb sagetex 需要手动使用例如 MikTeX 包管理器。
  5. 每次你添加新的 Sage 到你的 LaTeX 时:运行 你的 LaTeX 文件,启动 Sage shell 并转到刚刚制作的 myfile.sagetex.sage 所在的目录,这与所有辅助文件所在的目录相同:cd "C:/path/to/auxiliary/files"sage myfile.sagetex.sage,然后又是 运行 LaTeX。例如,其他人需要 .scmd.sout 文件来编译您的 LaTeX。
  6. 将 SageTeX 与例如 $\sage{1+1}$sageblock 环境一起使用。

有一种方法可以在 windows:

上使用 sagetex

第 1 步:安装 miktex 2.9 64 位,完全安装。

第 2 步:安装 Texniccenter 2.02 64 位(我认为 texworks、texmaker、winedt 等其他程序也可以)。

第 3 步:安装 Sagemath 8.6 64 位或更高版本。

第4步:miktex中的Sagetex版本与Sagemath 8.6中的sagetex版本不同。然后,您应该在 miktex 中安装与 Sagemath 中相同版本的 sagetex。

这可以通过将 **c:\Program Files\SageMath 8.6\runtime\opt\sagemath-8.6\local\share\texmf\tex\latex\sagetex** 中的所有文件复制到 **c:\Program Files\MiKTeX 2.9\tex\latex\sagetex**

现在可以根据以下条件在 windows 上使用 sagetex:

1.- 使用 texniccenter 编译您的 .tex 文件。记住你必须加载 sagetex 包:\usepackage{sagetex}

2.- windows 上的 Sagemath 安装有 3 个 shotcurts。您应该打开 Sagemath 8.6,而不是 Sagemath 8.6 ShellSagemat 8.6 Notebook。请记住,Sagemath 8.6。之后打开 shell,当我们看到 sage: 时,sagemath 就准备好了。

3.- 使用 "cd" 命令导航到我们的文件所在的文件夹,例如 cd 文档。很重要,如果您的文件夹名称在“ ”之间有空格,即 cd 'folder 1'

4.- 当您进入目标文件夹时,您可以通过 "ls" 查看其内容。应该有您的 sagetex.sage 文件。要处理文件,您必须编写 load('file.sagetex.sage') (文件是您的 .tex 文件的名称),当您按 enter 时,过程将开始。

5.- 最后,使用 texniccenter 再次编译 .tex 文件。

当你需要再次使用sage时,你不需要写命令,因为使用键盘上的向上箭头会出现命令,你只需要按回车。

我认为可以在 texniccenter 上使用后处理器自动执行 3 个步骤,但我现在不知道该怎么做。

As , a couple of years after this question was asked a new sage arara rule was written by the TeXnician(并由 Pedro 修复)适用于 Windows。完整的说明如下,通过一个命令使用 sagetex 编译您的 LaTeX 文件。

  1. 安装 MiKTeX 和 Sagemath
  2. 确保 MiKTeX 没有安装 sagetex 包
  3. 找出您的 SageTeX 安装路径,例如 C:\Program Files\SageMath 9.2C:\Users\myusername\AppData\Local\SageMath 9.2 用于用户安装。
  4. 使用环境变量 TEXINPUTS=C:\Users\myusername\AppData\Local\SageMath 9.2\runtime\opt\sagemath-9.2\local\share\texmf\tex\latex\sagetex; 编译您的 LaTeX 文件,以便找到 sagetex.sty 包。 (已使用 TeXiFy 编辑器验证。)如果这不起作用,您当然可以随时将 sagetex.sty 包复制到您的工作目录。
  5. 创建 arara 规则。您可以按如下方式将其保存在本地(还有更多可能性,请参阅 arara 文档):在您的 LaTeX 文件旁边创建一个文件 araraconfig.yaml,内容如下
!config
paths:
- .
  1. 使用 https://tex.stackexchange.com/questions/520683/arara-sage-a-sagemath-rule-for-arara 中的内容创建一个名为 sagetex.yaml 的文件(更改安装路径):
!config
# SageTeX-Rule for arara.
#
# Dear Windows-users, please check the paths
# pathToBashExecutive    and    pathToSageStartfile
# due to your Sage-installation!
#
identifier: sagetex
name: SageTeX
authors:
  - TeXnician (Author)
  - cis (Idea)
  - Pedro J (final fix)
arguments: []
commands:
  - name: A SageTeX Rule for arara
    command: >
      @{
          pathToBashExecutive = "C:\Users\myusername\AppData\Local\SageMath 9.2\runtime\bin\bash";
          pathToSageStartfile = "C:/Users/myusername/AppData/Local/SageMath 9.2/runtime/opt/sagemath-9.2/sage";
          pathOfCurrentWorkingFolder = currentFile().getParent();
          theWindowsCommand = getCommand(pathToBashExecutive, "-l", pathToSageStartfile, "-c", "os.chdir(r'" + pathOfCurrentWorkingFolder + "'); load('" + getBasename(currentFile()) + ".sagetex.sage')");
          return isWindows(theWindowsCommand, getCommand("sage", getBasename(reference) + ".sagetex.sage"));
         }
  1. 运行 arara myfile.tex