DOCX

公式与符号

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

数学公式

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

基本公式

import { Paragraph, Math: MathAPI, MathRun, MathFraction } from "@office-open/docx";

new Paragraph({
  children: [
    new MathAPI({
      children: [
        new MathFraction({
          numerator: "a",
          denominator: "b",
        }),
      ],
    }),
  ],
});

复杂公式

import {
  Paragraph, Math: MathAPI, MathFraction, MathSubScript, MathSuperScript,
} from "@office-open/docx";

new Paragraph({
  children: [
    new MathAPI({
      children: [
        // x = (a + b) / c
        new MathRun("x"),
        new MathRun("="),
        new MathFraction({
          numerator: "a + b",
          denominator: "c",
        }),
      ],
    }),
  ],
});

数学组件

组件说明
Math根公式容器
MathRun公式中的文本
MathFraction分数(分子/分母)
MathSubScript下标表示法
MathSuperScript上标表示法
MathRadical平方根和 n 次根
MathNary求和、积分、乘积
MathAccent重音符号(帽子、横线、波浪号等)
MathEqArr公式数组(对齐的公式)
MathBorderBox表达式边框框
MathBox带运算符模拟的框
MathGroupChr组字符(大括号、方括号)
MathPhant占位符(不可见占位)

MathBorderBox

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

import { MathBorderBox } from "@office-open/docx";

new MathBorderBox({
    children: [new MathRun("a")],
});

// 隐藏上边框和下边框
new MathBorderBox({
    children: [new MathRun("b")],
    properties: {
        hideTop: true,
        hideBottom: true,
    },
});

BorderBox 属性

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

MathBox

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

import { MathBox } from "@office-open/docx";

new MathBox({
    children: [new MathRun("x + y")],
    properties: { opEmu: true },
});

MathGroupChr

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

import { MathGroupChr } from "@office-open/docx";

new MathGroupChr({
    children: [
        new MathEqArr({
            rows: [[new MathRun("a")], [new MathRun("b")]],
        }),
    ],
    properties: {
        chr: "{", // 分组字符
        pos: "bot", // 位置:"top" 或 "bot"
        vertJc: "top", // 垂直对齐
    },
});

MathPhantom

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

import { MathPhant } from "@office-open/docx";

new MathPhant({
    children: [new MathRun("dy")],
    properties: {
        zeroAsc: true, // 零上升
        zeroDesc: true, // 零下降
    },
});

拼音标注

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

import { Paragraph, createRuby } from "@office-open/docx";

new Paragraph({
    children: [
        createRuby({
            base: "漢字", // 基础文本
            text: "かんじ", // 拼音(注音)文本
        }),
        createRuby({
            base: "汉字",
            text: "hànzì",
            language: "zh-CN", // 语言标识符
        }),
    ],
});

拼音标注选项

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