Skip to content

Repository files navigation

Text2Math

一款 Obsidian 插件:将中文或英文自然语言转换为 LaTeX 数学公式。

选中一段文字,执行命令,预览公式,确认替换 —— 三步完成公式输入,无需记忆 LaTeX 语法。

输入:当x趋近于0时,sin x除以x的极限等于1
输出:$\lim_{x\to 0}\frac{\sin x}{x}=1$

功能特性

  • 选中转换:选中自然语言,通过命令面板转换为公式并替换原文(桌面端和移动端均可用)
  • 桌面右键菜单:选中文字后右键,直接点击“转换成数学公式”
  • 弹窗输入:未选中文字时弹出输入框,公式插入光标位置;可强制变量字母全部大写/小写
  • 大小写语义:描述里说“大X”表示大写 X,“小x”表示小写 x
  • 三种输出模式:行内公式($...$)、块级公式($$...$$)、自动判断(矩阵/分段函数/多行推导自动使用块级)
  • 转换预览:替换前实时渲染公式,支持手动编辑 Markdown、切换行内/块级、重新生成、复制到剪贴板;桌面端可用 Ctrl/Cmd+Enter 快速确认
  • 自定义转换要求:可在设置中追加转换偏好(如"矩阵统一用 bmatrix")
  • 渲染校验:公式无法渲染时给出警告,不会替换原文
  • 自定义 API:支持任何 OpenAI 兼容接口(官方 API、中转服务、自建服务、本地模型如 Ollama/LM Studio 等),API 地址、Key、模型均可自定义
  • 模型列表:一键从接口拉取可用模型,下拉选择
  • 安全可控:转换失败不修改原文,替换支持 Ctrl+Z 撤销;只发送选中的文字,不上传笔记其他内容;API Key 仅保存在本地

安装

Text2Math 0.2.1 起同时支持 Obsidian 电脑端和手机端。

电脑端安装

使用 BRAT(推荐)

  1. 安装并启用 BRAT
  2. 打开命令面板(Ctrl/Cmd + P),执行 BRAT: Add a beta plugin for testing
  3. 输入仓库地址:https://github.com/ArronHC/Text2Math
  4. 安装完成后,前往 设置 → 第三方插件,启用 Text2Math

手动安装

  1. Releases 下载 main.jsmanifest.jsonstyles.css
  2. 在 Obsidian 库中创建目录 .obsidian/plugins/text2math/,将三个文件放入
  3. 重启 Obsidian,前往 设置 → 第三方插件,启用 Text2Math

手机端安装

使用 BRAT(推荐)

  1. 在 Obsidian 手机端打开 设置 → 第三方插件,关闭安全模式并安装、启用 BRAT
  2. 从侧边栏打开命令面板,执行 BRAT: Add a beta plugin for testing
  3. 输入仓库地址:https://github.com/ArronHC/Text2Math
  4. 等待 BRAT 下载完成,前往 设置 → 第三方插件,启用 Text2Math

Text2Math 0.2.1 已声明支持移动端,无需在 BRAT 中开启“允许不兼容插件”。BRAT 会从最新 Release 下载根目录下的 main.jsmanifest.jsonstyles.css

手机端手动安装

  1. Releases 下载 main.jsmanifest.jsonstyles.css
  2. 使用系统文件管理器或同步工具,将三个文件放入库目录 .obsidian/plugins/text2math/
  3. 完全退出并重新打开 Obsidian,前往 设置 → 第三方插件,启用 Text2Math

Android 上若看不到 .obsidian,请在文件管理器中开启“显示隐藏文件”。iOS 对库内部目录的直接访问限制较多,建议优先使用 BRAT。

从源码构建(开发者)

git clone https://github.com/ArronHC/Text2Math.git
cd Text2Math
npm install
npm run build   # 生成 main.js

快速配置

  1. 打开 设置 → Text2Math
  2. 填写 API Base URL(例如 https://api.openai.com/v1
  3. 填写 API Key
  4. 点击 获取模型列表 选择模型,或手动填写模型名
  5. 点击 测试连接 确认配置可用

详细使用说明见 教程

命令

命令 功能
Text2Math: Convert selected text 转换选中的自然语言(未选中时打开输入弹窗)
Text2Math: Insert math formula 打开输入弹窗,公式插入光标位置
Text2Math: Open settings 打开插件设置

插件不预设快捷键。桌面端可在 设置 → 快捷键 中搜索 Text2Math 自行绑定,推荐 Ctrl + Shift + M。移动端可从命令面板执行命令,也可以在 设置 → 移动端 → 管理工具栏选项 中将 Text2Math 命令加入移动工具栏。

移动端说明

  • 命令面板和移动工具栏是推荐入口;右键菜单仅作为桌面端便捷操作。
  • 预览窗口中直接点击 替换原文复制 等按钮,无需外接键盘。
  • 手机上配置的 localhost 指手机本身。如果 Ollama 或 LM Studio 运行在电脑上,请填写手机能够访问的局域网、VPN 或 HTTPS 地址,并确认服务监听非回环地址、防火墙允许连接。
  • 不要把无鉴权的本地模型接口直接暴露到公网。

开发

npm install
npm run dev     # watch 模式
npm run build   # 类型检查 + 生产构建
node t2m-test.mjs        # 运行单元测试
node mock-server.mjs     # 启动模拟 OpenAI 接口(端口 8787,Key: test-key)

网络与隐私

Text2Math 需要联网才能将公式描述发送至你在设置中自行配置的 OpenAI 兼容 API。网络请求仅用于:

  • 将你选中的文字(或在弹窗中输入的内容)发送到该 API,生成 LaTeX 公式;
  • 在你主动点击“获取模型列表”或“测试连接”时,向同一 API 发起对应请求。

插件不预设、不运营任何远程服务;不读取选区之外的笔记内容,不上传完整笔记,也不包含遥测、分析或广告。API Key 仅保存在本地库的 .obsidian/plugins/text2math/data.json 中,并且只会随请求发送给你配置的 API。

License

MIT

About

Obsidian plugin: convert natural language (Chinese/English) to LaTeX math formulas via any OpenAI-compatible API

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages