Py2Math Live 是一款专为科学家、工程师和学生打造的 VS Code 插件。它能将你编写的 Python 代码逻辑实时转换为优雅的 LaTeX 数学公式,让公式推导变得像写代码一样简单高效。
(建议此处替换为你的实际演示动图)
✨ 核心特性
- 实时转换:无需编译,光标移动或输入时即刻在侧边栏显示数学公式。
- 直观语法:支持标准 Python 算术运算符 (
*,/,**) 自动转为 LaTeX 符号。 - 高级算子支持:内置
limit(极限),sum(求和),integrate(积分),diff(导数) 等数学算子。 - 矩阵渲染:使用 Python 嵌套列表
[[1,2],[3,4]]快速生成 LaTeX 矩阵。 - 希腊字母自识别:输入
alpha,beta,Delta等自动转义。 - 语义化下标:支持中文下标映射(如
v_速度)及双下划线下标 (x__max)。 - 全文/单行切换:支持仅渲染当前行或渲染整个 Python 文件的逻辑推导。
🚀 快速开始
-
安装环境:确保你的系统已安装 Python 3 并添加至系统环境变量。
-
启动插件:在 VS Code 活动栏(Activity Bar)点击 Py2Math 图标。
-
编写代码:在
.py文件中输入数学逻辑,例如:E == m * c**2 delta = sqrt(b**2 - 4*a*c) -
查看预览:侧边栏将立即显示对应的 LaTeX 渲染效果。
📖 常用语法示例
| 功能 | Python 写法 | LaTeX 预览 |
|---|---|---|
| 极限 | limit(sin(x)/x, x, 0) |
$\lim_{x \to 0} \frac{\sin(x)}{x}$ |
| 求和 | sum(1/n**2, n=1, inf) |
$\sum_{n=1}^{\infty} \frac{1}{n^2}$ |
| 矩阵 | M = [[cos(theta), -sin(theta)], [sin(theta), cos(theta)]] |
$\begin{bmatrix} \cos(\theta) & -\sin(\theta) \ \sin(\theta) & \cos(\theta) \end{bmatrix}$ |
附录:插件发布指南
如果你希望将 Py2Math-Live 分享给其他开发者使用,可以参考以下流程:
方案一:生成离线安装包 (.vsix)
这是最简单的方式,适合在团队内部或通过社交媒体直接分享。
- 安装打包工具: 在终端运行:
npm install -g vsce - 执行打包: 在项目根目录下运行:
vsce package - 分发文件: 运行后会生成一个
py2math-live-0.0.1.vsix文件。他人只需在 VS Code 扩展面板点击“三个点”图标,选择 "Install from VSIX..." 即可安装。
方案二:发布到 VS Code 市场 (Marketplace)
适合公开给全球用户搜索和安装。
- 创建账号: 前往 Azure DevOps 创建账号并获取 Personal Access Token (PAT)。
- 创建发布者: 在 Visual Studio Marketplace 创建一个 Publisher ID。
- 登录并发布:
- 登录:
vsce login <publisher_id> - 发布:
vsce publish
- 登录:
发布前的检查清单
-
README.md:确保项目说明文档包含动态演示图或清晰的使用说明。
-
图标 (icon):在
package.json中配置icon路径,让插件在市场中更具辨识度。 -
依赖声明:告知用户系统需要安装 Python 环境。
-
版本号:每次更新发布前,需增加
package.json中的version字段。
🛠️ 发布与打包指南 (针对开发者)
如果你在运行 vsce package 时遇到 Extension entrypoint(s) missing 错误,请按以下步骤操作:
-
执行编译: 插件的源码在
src目录(TypeScript),但运行需要out目录(JavaScript)。运行命令生成它:npm run compile执行后请确认项目根目录下出现了
out/extension.js。 -
检查 .vscodeignore: 确保你的
.vscodeignore文件中没有包含out/或out/**。该文件决定了哪些文件不被打包进插件,out目录必须包含在内。 -
补充仓库信息:
vsce要求package.json中包含repository字段。我已经为你更新了该配置。 -
重新打包:
vsce package
🤝 贡献与反馈
如果你在使用过程中遇到任何问题或有功能建议,欢迎在 GitHub Issues 提交反馈。
Py2Math Team 出品