DOCX

公式与符号

使用 Math API 编写数学公式,以及为东亚文字添加拼音标注

数学公式

Math API 允许使用 OOXML 的 Office 数学标记语言(OMML)构建数学公式。

基本公式

{
  "sections": [
    {
      "children": [
        {
          "paragraph": {
            "children": [
              {
                "math": {
                  "children": [
                    "x",
                    " = ",
                    { "fraction": { "numerator": ["a + b"], "denominator": ["c"] } }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  ]
}

复杂公式

{
  "sections": [
    {
      "children": [
        {
          "paragraph": {
            "children": [
              {
                "math": {
                  "children": [
                    "x",
                    " = ",
                    {
                      "sum": {
                        "children": [
                          { "superScript": { "children": ["x"], "superScript": ["2"] } }
                        ],
                        "subScript": ["i=0"],
                        "superScript": ["n"]
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      ]
    }
  ]
}

数学组件

组件说明
math根公式容器
fraction分数(分子/分母)
subScript下标表示法
superScript上标表示法
subSuperScript上下标组合
radical平方根和 n 次根
sum求和符号(∑)
integral积分符号(∫)
limitLower下极限表示法
limitUpper上极限表示法
function命名函数(如 sin、cos)
matrix矩阵(行和列)
roundBrackets圆括号分组
curlyBrackets花括号分组
accent重音符号(帽子、波浪号等)
bar上划线/下划线
eqArr公式数组(对齐的公式)
borderBox表达式边框框
box带运算符模拟的框
groupChr组字符(大括号、方括号)
phant占位符(不可见占位)

公式中的文本

在 JSON API 中,公式文本可以直接使用字符串,或使用 { "text": "x" } 表示带样式的公式文本:

{ "math": { "children": ["x", " = ", { "text": "y" }] } }

MathFraction

分子和分母接受 MathComponent[] 数组:

{ "fraction": { "numerator": ["a"], "denominator": ["b"], "fractionType": "bar" } }

fractionType 可选值:"bar"(默认)、"skw""lin""noBar"

MathRadical

{ "radical": { "children": ["x + y"], "degree": ["3"] } }

degree 为可选字段,指定 n 次根的次数。

MathSubScript / MathSuperScript / MathSubSuperScript

{ "subScript": { "children": ["x"], "subScript": ["i"] } }
{ "superScript": { "children": ["x"], "superScript": ["2"] } }
{ "subSuperScript": { "children": ["x"], "subScript": ["i"], "superScript": ["2"] } }

MathSum / MathIntegral

{ "sum": { "children": ["x"], "subScript": ["i=0"], "superScript": ["n"] } }
{ "integral": { "children": ["f(x)"], "subScript": ["a"], "superScript": ["b"] } }

MathLimitLower / MathLimitUpper

{ "limitLower": { "children": ["lim"], "limit": ["x→0"] } }

MathFunction

{ "function": { "name": ["sin"], "children": ["x"] } }

MathMatrix

{
  "matrix": {
    "rows": [
      ["a", "b"],
      ["c", "d"]
    ]
  }
}

括号

所有括号类型都生成 m:d 分隔符元素,使用不同的字符:

{ "roundBrackets": ["x + y"] }
{ "squareBrackets": ["x"] }
{ "curlyBrackets": ["a", "b"] }
{ "angledBrackets": ["x"] }

createMathAccent

用于重音符号(帽子、波浪号等):

{ "accent": { "children": ["x"], "accentCharacter": "^" } }

accentCharacter 可选值:"^" 表示帽子,"~" 表示波浪号等。

createMathBar

用于上划线/下划线:

{ "bar": { "children": ["x"], "type": "top" } }

type 可选值:"top""bot"

MathEqArr

用于对齐公式的公式数组:

{
  "eqArr": {
    "rows": [
      ["a", "=", "b + c"],
      ["d", "=", "e + f"]
    ]
  }
}

MathBorderBox

在表达式周围绘制边框,可配置边框和删除线:

{ "borderBox": { "children": ["a"] } }

隐藏上边框和下边框:

{ "borderBox": { "children": ["b"], "properties": { "hideTop": true, "hideBottom": true } } }

BorderBox 属性

属性类型说明
hideTopboolean隐藏上边框
hideBottomboolean隐藏下边框
hideLeftboolean隐藏左边框
hideRightboolean隐藏右边框
strikeHorizontalboolean水平删除线
strikeVerticalboolean垂直删除线
strikeDiagonalUpboolean从左下到右上的对角线
strikeDiagonalDownboolean从左上到右下的对角线

MathBox

将内容包裹在框中,可选择模拟运算符行为:

{ "box": { "children": ["x + y"] } }

MathGroupChr

在内容上方或下方添加分组字符(大括号、方括号等):

{ "groupChr": { "children": ["a", "b"] } }

可选 properties 字段:

属性类型说明
chrstring分组字符(默认 "{"
posstring位置:"top""bot"
vertJcstring垂直对齐:"top""bot"

MathPhantom

创建用于间距控制的不可见占位符:

{ "phant": { "children": ["dy"] } }

高级数学属性

除上述基础组件外,若干数学元素支持 properties 块用于精细控制。

分隔符属性

括号类型(roundBracketssquareBracketscurlyBracketsangledBrackets)接受对象形式,含 childrenproperties,可自定义字符、分隔符和拉伸:

{
  roundBrackets: {
    children: [{ text: "a, b, c" }],
    properties: {
      beginCharacter: "(",
      endCharacter: ")",
      separatorCharacter: ",",
      grow: true,
      shape: "centered", // "centered" | "match"
    },
  },
}
属性类型说明
beginCharacterstring起始字符
endCharacterstring结束字符
separatorCharacterstring元素分隔符
growboolean随内容高度拉伸
shape"centered" | "match"分隔符形状

N-ary 属性(sum / integral)

控制上下标极限位置以及操作符是否拉伸:

{
  sum: {
    children: [{ text: "x" }],
    subScript: [{ text: "i=0" }],
    superScript: [{ text: "n" }],
    properties: { limitLocation: "undOvr", grow: true },
  },
}
属性类型说明
limitLocation"subSup" | "undOvr"极限相对操作符的位置
growboolean操作符随内容拉伸

分式参数字号

独立缩放分子/分母字号:

{
  fraction: {
    numerator: [{ text: "1" }],
    denominator: [{ text: "2" }],
    numeratorArgumentSize: 80,
    denominatorArgumentSize: 80,
  },
}

上下标对齐

{
  subSuperScript: {
    children: [{ text: "x" }],
    subScript: [{ text: "i" }],
    superScript: [{ text: "2" }],
    alignScript: true,
  },
}

符号字符

在段落中插入 Wingdings 等符号字体的字符:

{
  "sections": [
    {
      "children": [
        {
          "paragraph": {
            "children": [
              "箭头:",
              { "symbolRun": { "char": "F021", "symbolfont": "Wingdings" } },
              " 勾选:",
              { "symbolRun": { "char": "F052", "symbolfont": "Wingdings" } }
            ]
          }
        }
      ]
    }
  ]
}

SymbolRun 选项

选项类型说明
charstring十六进制字符代码(如 "F021"
symbolfontstring字体名称(默认 "Wingdings"
boldboolean粗体
italicboolean斜体
colorstring十六进制颜色代码
sizenumber字号(磅)

拼音标注

拼音标注为东亚文字提供发音指南(假名、拼音等):

{
  "paragraph": {
    "children": [
      { "ruby": { "base": "漢字", "text": "かんじ" } },
      { "ruby": { "base": "汉字", "text": "hànzì", "language": "zh-CN" } }
    ]
  }
}

拼音标注选项

属性类型说明
basestring要标注的基础文本
textstring拼音标注文本
alignment"left" | "center" | "right"对齐方式(默认:"center"
rubyFontSizenumber字号(磅)
offsetnumber垂直偏移量(半点为单位)
languagestring语言标识符(如 "ja-JP"
Copyright © 2026