如何在 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。
- 找到你的sage安装的
sagetex.sty
文件,可能在C:\Program Files\SageMath 8.0\runtime\opt\sagemath-8.0\local\share\texmf\tex\latex\sagetex\sagetex.sty
中。 (例如在 Arch Linux 上,你必须同时安装 sage
和 sagetex
包,然后文件将在 /usr/share/texmf/tex/latex/sagetex/sagetex.sty
中)
- 通过在命令提示符的任意位置 运行 使用 TeX 命令
kpsewhich sagetex.sty
找出您的计算机正在查找的 sagetex.sty
。可能这是您的 MikTeX(或 TeX Live 或您正在使用的任何发行版)目录,其中包含导致版本不匹配的旧 sagetex.sty
。如果弹出窗口要求您安装某些东西,请不要安装!
- 我不完全确定,但我认为你可以将你的 sage 安装的新包文件复制到你的发行版的 sagetex 目录(对于 MikTeX 类似
C:\Users\s156757\AppData\Roaming\MiKTeX.9\tex\latex\sagetex
)覆盖旧的sagetex.sty 就在那里。如果没有,请确保删除旧文件并使用新文件,例如将其放在 tex 文件旁边。
- 可能您需要安装包
fancyvrb
sagetex 需要手动使用例如 MikTeX 包管理器。
- 每次你添加新的 Sage 到你的 LaTeX 时:运行 你的 LaTeX 文件,启动 Sage shell 并转到刚刚制作的
myfile.sagetex.sage
所在的目录,这与所有辅助文件所在的目录相同:cd "C:/path/to/auxiliary/files"
和 sage myfile.sagetex.sage
,然后又是 运行 LaTeX。例如,其他人需要 .scmd
和 .sout
文件来编译您的 LaTeX。
- 将 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 Shell 或 Sagemat 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 文件。
- 安装 MiKTeX 和 Sagemath
- 确保 MiKTeX 没有安装 sagetex 包
- 找出您的 SageTeX 安装路径,例如
C:\Program Files\SageMath 9.2
或 C:\Users\myusername\AppData\Local\SageMath 9.2
用于用户安装。
- 使用环境变量
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
包复制到您的工作目录。
- 创建 arara 规则。您可以按如下方式将其保存在本地(还有更多可能性,请参阅 arara 文档):在您的 LaTeX 文件旁边创建一个文件
araraconfig.yaml
,内容如下
!config
paths:
- .
- 使用 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"));
}
- 运行
arara myfile.tex
我想在 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。
- 找到你的sage安装的
sagetex.sty
文件,可能在C:\Program Files\SageMath 8.0\runtime\opt\sagemath-8.0\local\share\texmf\tex\latex\sagetex\sagetex.sty
中。 (例如在 Arch Linux 上,你必须同时安装sage
和sagetex
包,然后文件将在/usr/share/texmf/tex/latex/sagetex/sagetex.sty
中) - 通过在命令提示符的任意位置 运行 使用 TeX 命令
kpsewhich sagetex.sty
找出您的计算机正在查找的sagetex.sty
。可能这是您的 MikTeX(或 TeX Live 或您正在使用的任何发行版)目录,其中包含导致版本不匹配的旧sagetex.sty
。如果弹出窗口要求您安装某些东西,请不要安装! - 我不完全确定,但我认为你可以将你的 sage 安装的新包文件复制到你的发行版的 sagetex 目录(对于 MikTeX 类似
C:\Users\s156757\AppData\Roaming\MiKTeX.9\tex\latex\sagetex
)覆盖旧的sagetex.sty 就在那里。如果没有,请确保删除旧文件并使用新文件,例如将其放在 tex 文件旁边。 - 可能您需要安装包
fancyvrb
sagetex 需要手动使用例如 MikTeX 包管理器。 - 每次你添加新的 Sage 到你的 LaTeX 时:运行 你的 LaTeX 文件,启动 Sage shell 并转到刚刚制作的
myfile.sagetex.sage
所在的目录,这与所有辅助文件所在的目录相同:cd "C:/path/to/auxiliary/files"
和sage myfile.sagetex.sage
,然后又是 运行 LaTeX。例如,其他人需要.scmd
和.sout
文件来编译您的 LaTeX。 - 将 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 Shell 或 Sagemat 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
- 安装 MiKTeX 和 Sagemath
- 确保 MiKTeX 没有安装 sagetex 包
- 找出您的 SageTeX 安装路径,例如
C:\Program Files\SageMath 9.2
或C:\Users\myusername\AppData\Local\SageMath 9.2
用于用户安装。 - 使用环境变量
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
包复制到您的工作目录。 - 创建 arara 规则。您可以按如下方式将其保存在本地(还有更多可能性,请参阅 arara 文档):在您的 LaTeX 文件旁边创建一个文件
araraconfig.yaml
,内容如下
!config
paths:
- .
- 使用 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"));
}
- 运行
arara myfile.tex