使用 Cocalc 与 Latex 时遇到问题

使用 Cocalc 与 Latex 时遇到问题

我在运行以下代码时遇到了麻烦,该代码在 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 发现有结果可用,并将这些代码片段插入到最终文档中。

文档:https://doc.sagemath.org/html/en/tutorial/sagetex.html

答案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

相关内容