我在运行以下代码时遇到了麻烦,该代码在 CoCalc 中可以运行,但在 Latex 中却无法运行,即使它是 tex。输出不确定我做错了什么。
\documentclass[border=1cm]{article}
\usepackage{sagetex,tikz}
\begin{document}
\begin{sagesilent}
p = 3.14
r = randint(1,10)
output = r""
output += r"\begin{tikzpicture}"
output += r"\draw[fill=none](0,0) circle (1.0) node [black,yshift=-1.5cm] {};"
output += r"\draw[fill=black](0,0) circle (1 pt) node [above] {\tiny o};"
output += r"\draw[](0,0) -- (1,0) node [midway,above] {%s};"%(r)
output += r"\end{tikzpicture}"
\end{sagesilent}
\sagestr{output}
\noindent Circumference = $2\times \pi \times r = 2\pi(\sage{r})$.
Using the approximation of $\pi \approx \sage{p.n(digits=3)}$ we get a decimal answer
of $\sage{(2*p*r).n(digits=4)}$ units.
\end{document}
答案1
您到底做了什么?错误消息是什么?要使 SageTeX 正常工作,您必须在计算机上安装 Sage,并使样式文件可供 LaTeX 发行版使用。
基本思路:首先运行 LaTeX 提取代码,然后运行 Sage 处理代码并捕获结果,然后再次运行 LaTeX。第二次运行时,sagetex 发现有结果可用,并将这些代码片段插入到最终文档中。
答案2
请注意,Sage 文档的一部分已过时,将在下一版本中修复(请参阅https://trac.sagemath.org/ticket/34219),这可能会误导你。
从终端:
% kpsewhich sagetex.sty
应该不返回任何内容,因为它当前找不到文件“sagetex.sty”。
% kpsewhich -var-value=TEXMFHOME
/Users/jpalmier/Library/texmf
这告诉我应该将样式文件添加到此目录。这里有几个选项,包括复制文件或创建链接。首先转到该目录:
% cd `kpsewhich -var-value=TEXMFHOME`
我将首先创建一个目录tex
(如果它不存在),然后在其中latex
:
% ls # to check whether 'tex' exists
% mkdir tex # create it if it doesn't
% cd tex
% ls
% mkdir latex # if it doesn't exist already
% cd latex
现在找到您的 Sage 安装。在我的计算机上,它位于我的桌面文件夹中。将相关文件复制或链接到当前目录。链接:
% ln -s /Users/jpalmier/Desktop/sage/venv/share/texmf/tex/latex/sagetex
(这就是 Sage 文档中的错误所在:它说的是“local”,而应该说的是“venv”。)复制:
% cp -R /Users/jpalmier/Desktop/sage/venv/share/texmf/tex/latex/sagetex .
测试一下:
% kpsewhich sagetex.sty
/Users/jpalmier/Library/texmf/tex/latex/sagetex/sagetex.sty