这里是 maple-latex 的使用文档.

使用过程中如果出现错误,可以把相应的tex代码和错误描述 发送至: jiaminxin@outlook.com。 或者到项目maple-latex提issue。

简介

Maple-Latex 主要用来处理符号运算中, Maple, Mathematics, Tex三者之间数学公式的转化。 整体界面如下: gui 其中左侧为按钮区和输入区, 右侧为显示区.

它的最初版本是2018年1月24日制作的, 只涉及一些数学符号的GUI输入. 当时的想法是把tex中的数学符号用mathjax显示在网页上, 这样手机也可以写一些简单的数学公式, 虽然没啥用. 当初还不知道 github 可以部署静态页面, 所以那时候是通过文件传输弄到手机或者电脑上, 本地使用. 而且当时代码水平也一般, 所以做的很简陋. 几年过去, 现在的功能早已和最初的想法无关, 但是这个项目的功能越来越多. 这些功能都是根据科研过程中自己或者其他人遇到的一些有关tex, maple, mma的需求引入的, 为科研提供了便利.

注意, 处理 Maple生成的tex代码(经latex函数生成), 仅针对 Maple 18 (2014年2月10日) 版本. 对于更早的版本, 未测试. 对于更新的版本, 如 Maple 2023, latex 函数生成的tex代码与Maple 18不一致, 这样就导致本应用的一些功能可能不适用.

功能

使用说明

时间轴

记录了更改历史.

创建矩阵

可视化创建Tex矩阵/列表,生成相应代码. 默认生成 $3\times 4$ 矩阵 (最大不超过 10 阶). 选中补零选项, 则没有值的位置自动补 $0$. 小窗口左下角会有当前元素的预览

Excel转列表

复制Excel表格中的数据, 转为Tex列表.

不再维护

latex2maple

此功能通常用来把论文中的公式转换成 maple 中的表达式, 提高效率. 使用步骤如下: 首先使用 mathpix snipping tool 识别 PDF 文件或图片中的数学公式,然后将其生成的 Tex 代码复制到输入框,点击按钮即可将Tex代码转成相应的Maple程序。

注意, 如果tex代码不是通过mathpix-snipping-tool生成, 可能会转换失败. 因为每个人书写习惯不同, 情况太多, 不好处理.

此程序主要做如下工作:

功能目的
去除 tex 环境\begin{equation}...\end{equation}, 换行符 \\, \left, \right等.
导数转化u_{xxx} 转化为 diff(u, x$3). 需要注意的是, 这里需要提前在程序中定义 alias(u=u(x)).
积分转化\int u d x 转化为 int(u, x). 需要注意的是, 这里需要提前在程序中定义 alias(u=u(x)).
位移转化u^{+++} 转化为 shift(u, 3). 同样需要注意, 需要提前定义alias(u=u(n)).
上/下标转化alpha_1 转化为 alpha[1], 其在 maple 中显示为 $\alpha_1$. s^{2x + t} 转化为 s^(2 x + t). 因此, 对于太复杂的公式, 可能并不适用.
分式转化\frac{a}{b} 转化为 a / b.
函数转化默认把 $e^k$ 中的 $e$ 转化为 $\exp$ 函数, $\ln$ 函数转化为 $\log$ 函数.

下面是一些例子

  • 单行公式 latex2maple1 复制 tex 到输入框, 点击转换以后, 生成的结果(上面是原结果, 下面是转化结果) latex2maple1 将转化结果复制到 maple 中的运行结果 latex2maple1

  • 多行公式 latex2maple2 注意, 这里多行公式, 我们用逗号隔开, 即转化成序列. latex2maple2 注意, 这里需要使用 alias 来定义 $u, v$, 另外还有位移函数 shift. latex2maple2

  • 矩阵 latex2maple3 注意, 这里的矩阵, 我们仍然用逗号将每个元素隔开, 依然转化成序列. latex2maple3 这里有几个需要注意的地方. 首先需要使用 alias 来定义 $u, w$. 另外, 由于我们只把 \left\right 删除, 因此整个环境还被 () 包裹, 复制的时候要扔掉多余的括号. 这里的 (ccc) 我们也没有删除, 程序还需要优化, 不过不影响结果. latex2maple3

  • 分式和上下标 latex2maple4 转化 latex2maple4 结果 latex2maple4

  • 虚数单位 $$ $$ 对于 $$e^{(2i x + 3 it + 4)},$$ 会转化成 exp((2 i x+3 i t+4)), 因此需要提前定义 $i$. latex2maple5

下面是一个完整的示例 示例

maple2mma

将Maple中的数学公式转为Mathematics公式,主要是诸如sin(x) –> Sin[x]之间的转化。 只需直接复制Maple输出的数学公式到输入框(注意, 这里的数学公式指的是 maple 输出的数学公式, 而不是经 latex 函数转化以后的结果),点击按钮, 会出现一个小窗口 maple2mma 罗列出 maple 表达式中每个函数对应于 mma 中的函数(可以修改), 点击 转换 按钮即可.

DT-gT & DT-coe

主要用于经典达布变换系数的整理。

不再维护。

连续(离散)[szce]公式格式化

将Maple中的数学公式经latex函数转为Tex代码以后, 复制到输入框, 将其处理为正常的Tex代码, 如求导运算等。

如下图所示:

  • 离散情形 离散公式格式化 点击 离散公式格式化 离散格式化结果 上图左侧为原结果和转化结果, 右侧为原结果和转化结果的显示, 可以发现对原结果进行了极大的简化. 另外, 也可根据显示结果检查是否有转化错误.
  • 连续情形 连续公式格式化 点击 连续公式格式化 连续格式化结果 注意, 对于多阶导数, 用 $u_{kx}$ 表示 $\partial_x^k u$.

展式系数格式化

守恒律相关, 不再维护。

grammarly

复制整个论文的Tex文件到输入框, 可以将其中的数学公式等相关信息删除, 然后使用Grammarly检查拼写及语法。

Tex格式化

复制整个论文的Tex文件到输入框, 对其格式化: 添加缩进, 断句(英文句号换行)。

typora

渲染typora生成的markdown文档(支持数学公式). 也可简单渲染tex文档.

该功能已经被单独开了一个网站tex-md.

相关库

  • create-react-app: 框架。
  • ant-design: 提供页面布局和UI。
  • remarkable: 渲染Markdown文档。
  • MathJax: 渲染数学公式。

Todo

  • 目前程序对于混合导数的处理还有问题.