latex中利用sage实现数学运算与排版

    技术2022-07-11  74

    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运算代码

    使用sageblock环境定义sage变量和函数,并原样显示

    使用\sageplot命令来插入sage代码绘制画图

    编译方法主要式3步:

    是latex编译1遍

    是sage编译*.sage文件 (方法式利用sagemathshell,进入tex文件所在文件夹后,利用sage命令编译jobname.sagetex.sage文件)

    是再次latex编译

    小结

    以上初步总结了latex和sagemath的混合使用,即在latex文档中直接利用sagemath的代码进行运算,并自动排版。

    参考文献

    sage 的帮助文档:sagetutorial.PDF
    Processed: 0.013, SQL: 9