天天看點

latex中利用sage實作數學運算與排版latex中利用sage實作數學運算與排版

latex中利用sage實作數學運算與排版

關鍵詞:latex,sagemath,數學運算,排版

sage對象轉換為latex表達式

sage 是基于python的數學工具,可以非常友善的将其對象轉換成latex公式。

複制轉換後的公式代碼,可以友善的在latex文檔中使用。比如:

sage: A = matrix(ZZ, 2, 2, range(4))
sage: latex(A)
\left(\begin{array}{rr}
0 & 1 \\
2 & 3
\end{array}\right)
           

其中,sage中的矩陣對象A,利用latex()指令轉換成了

\left(\begin{array}{rr}
0 & 1 \\
2 & 3
\end{array}\right)
           

直接将其放入latex文檔,就可以得到一個矩陣表示式。

使用sagetex運算和排版

然而sage還提供了一種更為友善的使用方法,即利用sagetex宏包來直接在latex文檔中運算和排版。

其基本用法是使用sagetex宏包,然後在數學環境中使用

\sage

指令。

sagemath給出了一個example,内容非常詳細,這裡為了友善介紹僅給出一個簡單示例:

\documentclass{article}
\usepackage{ctex}
\usepackage{sagetex}

\begin{document}

将\verb|\sage|指令放入數學環境中可以在其中進行sage函數運算,比如:
\verb|$\sage{number_of_partitions(1269)}$|計算了 $1269$ 的整數劃分組合數。結果為:

$\sage{number_of_partitions(1269)}$ 

又比如,求出$f$的二階導數,其中$f$定義,既利用sageblock環境直接顯示sage運算代碼,也在其中定義:

\begin{sageblock}
f(x) = exp(x) * sin(2*x)
\end{sageblock}

二階導數直接在公式環境中給出:

\begin{equation}
\frac{\mathrm{d}^{2}}{\mathrm{d}x^{2}} \sage{f(x)} =
\sage{diff(f, x, 2)(x)}.
\end{equation}

另外也可以利用\verb|\sageplot|指令來直接利用sage代碼畫圖,其可選參數設定類似與includegraphics指令的設定。比如對$f$ 函數從$-1$畫到$1$:

\sageplot[width=6cm,angle=15]{plot(f, -1, 1)}

其中可選參數設定了圖檔的寬度和旋轉角度。

\end{document} 
           

其中

公式結果為:

latex中利用sage實作數學運算與排版latex中利用sage實作數學運算與排版

繪圖結果為:

latex中利用sage實作數學運算與排版latex中利用sage實作數學運算與排版

使用及編譯方法總結

從上一小結可知用法包括:

  1. 使用

    \usepackage{sagetex}

    引入宏包
  2. 使用

    \sage

    指令在數學環境中直接使用sage運算代碼
  3. 使用

    sageblock

    環境定義sage變量和函數,并原樣顯示
  4. 使用

    \sageplot

    指令來插入sage代碼繪制畫圖

編譯方法主要式3步:

  1. 是latex編譯1遍
  2. 是sage編譯*.sage檔案

    (方法式利用sagemathshell,進入tex檔案所在檔案夾後,利用sage指令編譯jobname.sagetex.sage檔案)

  3. 是再次latex編譯

小結

以上初步總結了latex和sagemath的混合使用,即在latex文檔中直接利用sagemath的代碼進行運算,并自動排版。

參考文獻

  1. sage 的幫助文檔:sagetutorial.PDF