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}
其中
公式結果為:
繪圖結果為:
使用及編譯方法總結
從上一小結可知用法包括:
- 使用
引入宏包\usepackage{sagetex}
- 使用
指令在數學環境中直接使用sage運算代碼\sage
- 使用
環境定義sage變量和函數,并原樣顯示sageblock
- 使用
指令來插入sage代碼繪制畫圖\sageplot
編譯方法主要式3步:
- 是latex編譯1遍
-
是sage編譯*.sage檔案
(方法式利用sagemathshell,進入tex檔案所在檔案夾後,利用sage指令編譯jobname.sagetex.sage檔案)
- 是再次latex編譯
小結
以上初步總結了latex和sagemath的混合使用,即在latex文檔中直接利用sagemath的代碼進行運算,并自動排版。
參考文獻
- sage 的幫助文檔:sagetutorial.PDF