如何使用 sagetex 包

如何使用 sagetex 包

我正在嘗試使用 sagetex 包,但後來我在運行程式碼時發現了這種問題,A 有人可以幫忙嗎?

這是代碼:

\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)}
\sageplot[scale=.5]{plot3d(sin(pi*(x^2+y^2))/2,(x,-1,1),(y,-1,1))}
we know that 2010 factors to $\sage{factor(2010)}$
\begin{sagesilent}
    m=identity_matrix(QQ,3)
    m[0]=m[0]+m[1]
    m[1]=m[1]-m[2]
    m[2]=m[2]-2*m[1]
    m[1]=m[1]+3*m[0]
    m[0]=2*m[0]
\end{sagesilent}
Compute the rref of $\sage{m}$
\begin{sageblock}
    g(x)=taylor(tan(x),x,0,10)
    \end{sageblock}
    $$\tan(x)=\sage{g(x)}$$
\end{document}

答案1

為了使用該sagetex包,您需要 LaTeX、SAGE、sagetex、.之後這 3 個部分需要互相溝通。最簡單的解決方法就是開一個免費的科卡爾帳戶,建立一個 LaTeX 文檔,將上面的程式碼複製/貼上到其中,儲存文檔,然後按建置。幾分鐘之內你就完成了!超級簡單,您可以在世界任何有網路連線的地方完成工作。

如果您不想使用 Cocalc,那麼還有很多事情可能會出錯。假設您使用的是包含其中的 LaTeX 發行版,sagetex最可能的答案是您尚未下載 SAGE。我認識的很多人都是這種情況,他們認為既然有了它,sagetex就準備好使用它。問題是 SAGE 需要大約 5 GB 的空間,因此它不是 LaTeX 發行版的一部分。您需要前往薩吉馬斯網站並點擊“下載”選項卡,您可以在其中選擇 Mac/Windows/Linux 版本。請注意,許多 Linux 發行版的儲存庫中都有 SAGE,在這種情況下,您應該從那裡下載。一旦您sagetex的電腦上安裝了 LaTeX、SAGE,那麼處理文件就是頁面上提到的 3 個步驟的過程你的程式碼來自哪裡:先處理.tex文件,再處理.sage文件,最後處理.tex文件。 Samuel Lelièvre 的答案對此進行了解釋,並且請注意,處理 .sage 檔案需要命令行,如我的答案與圖片所示這裡。可以使用某些 LaTeX IDE 使這 3 步驟流程自動化。例如,這裡凱勒在這裡進行了討論,文字工作室對於 Windows。結果是按一個按鈕即可執行 3 個步驟,從而節省了大量時間。

如果您仍然無法完成這 3 步驟流程,則可能是 LaTeX 和 SAGE 無法正常通訊的問題。這是在前面提到的連結並且可能很難弄清楚。

值得一提的是,您sagetex向 SAGE 透露的方式,討論了這裡稍後可能會導致問題,其中顯示:「但是,這有幾個小問題:第一個是您最終會在計算機上散佈許多不必要的 sagetex.sty 副本。第二個也是更嚴重的問題是如果您升級Sage 並取得新版本的SageTeX,SageTeX 的Python 程式碼和LaTeX 程式碼可能不再匹配,從而導致錯誤。使用 Cocalc 意味著其他人可以確保所有版本的 LaTeX 和sagetex都能正常運作。

答案2

跑步

pdflatex myfile.tex

產生一個輔助文件,其中包含 Sage 需要執行的所有計算:

myfile.sagetex.sage

在此文件上運行 Sage:

sage myfile.sagetex.sage

計算所有這些計算的結果,以便下次運行時

pdflatex myfile.tex

計算結果包含並出現在產生的 pdf 中。

答案3

除了這裡的其他答案(關於如何使用 sagetex 的基礎知識)之外,讓我添加以下內容:文件中存在錯誤。正如我在回答中所說https://stackoverflow.com/questions/57369317/why-does-the-result-of-my-sage-command-becomes-question-mark:

當我嘗試編譯它時,我得到:

**** Error in Sage code on line 23 of file.tex! Traceback follows.
Traceback (most recent call last):
  File "file.sagetex.sage.py", line 39, in <module>
    _st_.plot(_sage_const_1 , format='notprovided', _p_=plot3d(sin(pi*(x**_sage_const_2 +y**_sage_const_2 ))/_sage_const_2 ,(x,-_sage_const_1 ,_sage_const_1 ),(y,-_sage_const_1 ,_sage_const_1 )))
NameError: name 'y' is not defined

問題是這一行:

\sageplot[scale=.5]{plot3d(sin(pi*(x^2+y^2))/2,(x,-1,1),(y,-1,1))}

特別是,您還沒有定義 y。 (在 SageMath 中,x 自動定義為變量,但不是 y。)如果在繪圖之前添加此內容,它應該可以工作:

\begin{sagesilent}
var('y')
\end{sagesilent}

答案4

可以肯定的是,以下是一個駭客工作,但我弄清楚了我的sage shell 可以存取哪個目錄,將其稱為目錄A。 」(然後從 sage shell 運行命令 load('intro_to_analysis.sagetex.sage') 這在目錄 A 中創建了許多文件。我將這些文件複製並粘貼到目錄 B 中,然後編譯再次乳膠,繪圖出現在我的文檔中。

相關內容