Skip to content

@sciexpr/presets

预设模板库 — 数学公式、物理模板、化学模板、希腊字母预设。

安装

bash
npm install @sciexpr/presets

@sciexpr/presets 包含 4 大类预设:数学公式、物理公式、化学方程式、希腊字母。

数学模板 (40+)

五类数学公式模板,按分类/标签/ID 快速检索。

typescript
import {
  CALCULUS_TEMPLATES, ALGEBRA_TEMPLATES, TRIG_TEMPLATES,
  LINEAR_ALGEBRA_TEMPLATES, STATS_TEMPLATES,
  ALL_MATH_TEMPLATES,
  getTemplatesByCategory, searchTemplates, getTemplateById,
} from '@sciexpr/presets'

分类

分类模板数示例
calculus8导数定义、链式法则、泰勒展开
algebra7求根公式、二项式定理、等比数列
trigonometry8和角公式、倍角公式、欧拉公式
linear-algebra6矩阵乘法、特征值、克拉默法则
statistics4正态分布、贝叶斯定理

检索

typescript
// 按分类
getTemplatesByCategory('calculus')
// → [{ id:'derivative-def', name:'导数定义', latex:'f\'(x)=...', ... }, ...]

// 按关键词搜索
searchTemplates('积分')
// → [{ id:'integral-def', ... }, { id:'integration-by-parts', ... }]

// 按标签搜索
searchTemplates('derivative')
// → [{ id:'derivative-def', ... }, { id:'power-rule', ... }]

// 按 ID 获取
getTemplateById('quadratic-formula')
// → { id:'quadratic-formula', name:'求根公式', latex:'x = \\frac{-b \\pm ...}', ... }

物理模板(60+)

按子分类组织的物理公式模板。

typescript
import { PHYSICS_TEMPLATES } from '@sciexpr/presets'
子分类模板数示例模板
力学19平均速度、匀变速公式、牛顿定律、动量守恒、动能定理、简谐振动
旋转运动5向心力、角动量、力矩、转动惯量、转动动能
电磁学12库仑定律、高斯定律、法拉第定律、洛伦兹力、欧姆定律
热力学7理想气体状态方程、热力学第一定律、熵变、卡诺效率
量子力学10薛定谔方程、不确定性原理、德布罗意波长、泡利不相容、量子谐振子
相对论5+质能方程、时间膨胀、长度收缩、洛伦兹变换
typescript
// 按分类获取所有物理模板
getTemplatesByCategory('physics')
// → [力学模板..., 电磁学模板..., 量子力学模板..., ...]

// 按关键词搜索物理模板
searchTemplates('牛顿')
// → [{ id:'newton-2nd', name:'牛顿第二定律', ... }, { id:'newton-3rd', ... }]

// 搜索英文标签
searchTemplates('quantum')
// → [{ id:'schrodinger', name:'薛定谔方程', ... }, { id:'uncertainty-principle', ... }]

模板结构

数学模板和物理模板共用以下结构:

typescript
interface FormulaTemplate {
  id: string          // 唯一标识
  name: string        // 名称
  latex: string       // LaTeX 源码
  category: string    // 分类:calculus/algebra/trigonometry/...
  description: string // 描述
  tags: string[]      // 标签
}

化学模板 (40+)

常见化合物、经典反应、电化学公式、离子预设、元素检索。

typescript
import {
  COMPOUND_TEMPLATES, REACTION_TEMPLATES,
  ION_TEMPLATES, ELEMENT_TEMPLATES,
  searchCompounds, getAcids, getBases,
  searchIons, getCations, getAnions,
  searchElements, getElementsByPeriod, getElementsByGroup,
} from '@sciexpr/presets'

常见化合物 (19)

typescript
// 按名称搜索
searchCompounds('硫酸')
// → [{ id:'h2so4', name:'硫酸', latex:'\\ce{H2SO4}', ... }]

// 获取所有酸
getAcids()
// → [{ id:'h2so4', ... }, { id:'hcl', ... }, { id:'hno3', ... }, ...]

// 获取所有碱
getBases()
// → [{ id:'naoh', ... }, { id:'caoh2', ... }]

经典反应 (8)

typescript
REACTION_TEMPLATES.map(t => t.name)
// → ['中和反应','甲烷燃烧','光合作用','细胞呼吸','铁生锈','电解水','哈柏法','化学平衡']

离子预设

typescript
// 获取所有阳离子
getCations()
// → [Li⁺, Na⁺, K⁺, NH₄⁺, Ca²⁺, Mg²⁺, Fe²⁺, Fe³⁺, ...]

// 获取所有阴离子
getAnions()
// → [F⁻, Cl⁻, Br⁻, I⁻, OH⁻, NO₃⁻, SO₄²⁻, CO₃²⁻, ...]

// 模糊搜索离子
searchIons('铁')
// → [{ id: 'ion-Fe2+', name: '亚铁离子', ... }, { id: 'ion-Fe3+', name: '铁离子', ... }]

元素检索

typescript
// 按周期查询
getElementsByPeriod(3)
// → [Na, Mg, Al, Si, P, S, Cl, Ar]

// 按族查询
getElementsByGroup(17)
// → [F, Cl, Br, I, At, Ts]

// 模糊搜索
searchElements('氧')
// → [{ id: 'elem-O', name: '氧', symbol: 'O', ... }]

Category Palette 数据(化学)

CHEM_PALETTE_CATEGORIES 提供 5 个化学子分类的 palette 数据。化合物/离子/元素从现有模板引用,希腊字母从 @sciexpr/math 统一引用。

typescript
import { CHEM_PALETTE_CATEGORIES } from '@sciexpr/presets'

// 5 个化学子分类
CHEM_PALETTE_CATEGORIES
// 0: compounds     — 化学物质(H₂SO₄, NaOH, NaCl, H₂O, ...)
// 1: ions          — 化学离子(Li⁺, Na⁺, Cl⁻, SO₄²⁻, ...)
// 2: chem-symbols  — 常用符号(→, ⇌, ↑, ↓, Δ, pH, K_sp, ...)
// 3: chem-greek    — 希腊字母(α, β, γ, λ, μ, σ, ...)含化学领域描述
// 4: chem-elements — 化学元素(H, He, Li, ..., U)

希腊字母预设

typescript
import { GREEK_LOWERCASE_GROUP, GREEK_UPPERCASE_GROUP, searchGreek } from '@sciexpr/presets'

// 24 个小写字母 (含变体)
GREEK_LOWERCASE_GROUP.letters
// → [{ latex:'\\alpha', unicode:'α', name:'Alpha', ... }, ...]

// 11 个大写字母
GREEK_UPPERCASE_GROUP.letters
// → [{ latex:'\\Gamma', unicode:'Γ', name:'Gamma' }, ...]

// 搜索
searchGreek('alpha')
// → [{ latex:'\\alpha', unicode:'α', ... }]

字母结构

typescript
interface GreekLetter {
  latex: string           // '\\alpha'
  unicode: string         // 'α'
  name: string            // 'Alpha'
  englishName: string     // 'alpha'
  variants?: {            // 变体(如 \\varepsilon, \\varphi 等)
    latex: string
    unicode: string
    name: string
  }[]
}

基于 MIT 协议发布