---
title: "粗体、斜体、下划线、删除线"
description: "粗体、斜体、下划线和删除线标记如何在 DOCX 和 Tiptap 之间转换。"
canonical_url: "https://tiptap.zhcndoc.com/conversion/content-types/text-and-formatting/bold-italic-underline-strike"
---

# 粗体、斜体、下划线、删除线

粗体、斜体、下划线和删除线标记如何在 DOCX 和 Tiptap 之间转换。

这些是应用于文本运行的内联标记。在 Word 中，它们来自运行属性（`<w:rPr>`）。在 Tiptap 中，它们是文本节点上的 mark。所有四种都已由 [ConvertKit](https://tiptap.zhcndoc.com/conversion/import/docx/convertkit.md) 开箱即用地注册。

## 你需要什么

- **扩展：**[`ConvertKit`](https://tiptap.zhcndoc.com/conversion/import/docx/convertkit.md)，它捆绑了粗体、斜体、下划线和删除线。
- \*\*配置：\*\*无需。所有四种标记都可直接使用。

## 支持概览

| Mark                 | 导入                   | 编辑器            | 导出  | 备注          |
| -------------------- | -------------------- | -------------- | --- | ----------- |
| Bold                 | 支持                   | 支持（ConvertKit） | 支持  | 完整往返        |
| Italic               | 支持                   | 支持（ConvertKit） | 支持  | 完整往返        |
| Underline            | 支持（仅 `val="single"`） | 支持（ConvertKit） | 支持  | 不会转换其他下划线样式 |
| Strikethrough        | 支持（存在已知的跨段落泄漏问题，见下文） | 支持（ConvertKit） | 支持  | 完整往返        |
| Double strikethrough | 不支持                  | 不支持            | 不支持 | 不会转换        |

## 导入

使用 [编辑器扩展](https://tiptap.zhcndoc.com/conversion/import/docx/editor-extension.md) 或 [REST API](https://tiptap.zhcndoc.com/conversion/import/docx/rest-api.md) 导入这些标记。两者会产生相同的输出。

转换服务会读取 Word 的运行属性，并生成相应的 Tiptap mark：

| Word 元素               | Tiptap mark                 |
| --------------------- | --------------------------- |
| `<w:b/>`              | `bold`                      |
| `<w:i/>`              | `italic`                    |
| `<w:u val="single"/>` | `underline`（其他 `val` 值不会转换） |
| `<w:strike/>`         | `strike`                    |
| `<w:dstrike/>`        | 不处理                         |

对于包含这些标记的文本运行，粗体、斜体和删除线都能干净地导入。下划线仅在 Word 元素具有 `val="single"` 时才会被导入。其他下划线样式（double、wavy、dotted、dash）不会转换。组合标记（同一段文本上的 bold + italic）会被完整保留。已知有一个问题：导入时删除线可能会从一个段落泄漏到下一个段落；见下方的 [Strikethrough](#strikethrough)。

## 编辑器渲染

所有四种标记都包含在 [`ConvertKit`](https://tiptap.zhcndoc.com/conversion/import/docx/convertkit.md) 中。无需单独安装。

| 标记  | 扩展                                                                             | 渲染为        | 键盘快捷键       |
| --- | ------------------------------------------------------------------------------ | ---------- | ----------- |
| 粗体  | [`Bold`](https://tiptap.zhcndoc.com/editor/extensions/marks/bold.md)           | `<strong>` | Cmd+B       |
| 斜体  | [`Italic`](https://tiptap.zhcndoc.com/editor/extensions/marks/italic.md)       | `<em>`     | Cmd+I       |
| 下划线 | [`Underline`](https://tiptap.zhcndoc.com/editor/extensions/marks/underline.md) | `<u>`      | Cmd+U       |
| 删除线 | [`Strike`](https://tiptap.zhcndoc.com/editor/extensions/marks/strike.md)       | `<s>`      | Cmd+Shift+S |

所有四种标记都可以同时作用于同一段文本。

## 导出

使用 [编辑器扩展](https://tiptap.zhcndoc.com/conversion/export/docx/editor-extension.md) 或 [REST API](https://tiptap.zhcndoc.com/conversion/export/docx/rest-api.md) 导出这些 mark。两者对它们的处理方式完全相同。

每个 mark 都映射到一个 DOCX 运行属性：

| Tiptap mark | DOCX 运行属性              |
| ----------- | ---------------------- |
| `bold`      | `bold = true`          |
| `italic`    | `italics = true`       |
| `underline` | `UnderlineType.SINGLE` |
| `strike`    | `strike = true`        |

删除线可以正确往返。导入会生成正确的 `strike` mark 名称，因此不会丢失任何格式。

## 删除线

> **已知问题：删除线会跨段落泄漏:**
>
> 导入带有删除线格式的段落时，可能会导致后续段落也被渲染为删除线，即使源 DOCX 并没有对第二个段落应用删除线。导入后的 JSON 看起来会将 `strike` mark 带到原始段落边界之外。如果遇到这种情况，请在将内容加载到编辑器之前，在 `onImport` 回调中检查 `context.content`，并在适当的位置清理多余的 `strike` mark。

> **不支持双删除线:**
>
> 双删除线（`<w:dstrike/>`）不受处理。导入时不会转换。

> **只导入单下划线:**
>
> Word 支持多种下划线样式（double、wavy、dotted、dash 等）。在导入时，只有 `val="single"` 会生成 `underline` mark。其他所有样式都不会转换，也不会降级为普通下划线。在导出时，所有下划线都会变成 `UnderlineType.SINGLE`。文本内容会被保留，但非 single 样式的下划线格式会丢失。
