---
title: "选项卡"
description: "在 DOCX 导入期间如何处理来自 Word 的制表符，以及开发者应当预期什么。"
canonical_url: "https://tiptap.zhcndoc.com/conversion/content-types/text-and-formatting/tabs"
---

# 选项卡

在 DOCX 导入期间如何处理来自 Word 的制表符，以及开发者应当预期什么。

Word 文档使用制表符进行段落内的对齐、缩进和栏布局。Tiptap 和 HTML 没有原生的制表位概念，因此在导入时会将制表符转换为空格。

## 你需要什么

- **扩展：** 不需要额外扩展。制表符内容会转换为纯文本。
- **配置：** 无。

## 支持概览

|           | 导入                          | 编辑器        | 导出      |
| --------- | --------------------------- | ---------- | ------- |
| 制表符（段落中间） | 转换为四个空格                     | 纯文本（空格）    | 空格保持为空格 |
| 制表符（段落开头） | 在 JSON 中转换为四个空格；在编辑器中视觉上会折叠 | 默认不可见（见下文） | 空格保持为空格 |
| 制表位位置     | 不保留                         | 不支持        | 不支持     |

## 导入

使用 [editor extension](https://tiptap.zhcndoc.com/conversion/import/docx/editor-extension.md) 或 [REST API](https://tiptap.zhcndoc.com/conversion/import/docx/rest-api.md) 导入制表符。两者对制表符的处理方式相同。

当导入转换器在文本运行中遇到 `<w:tab/>` 元素时，会将其替换为四个空格字符。Word 的制表位位置（在段落或样式属性中定义的左对齐、居中、右对齐、小数点对齐和竖线制表位）不会被提取或保留。

该转换不依赖位置：段落开头的制表符和段落中间的制表符在 JSON 中都会产生四个空格字符。由于浏览器渲染空白字符的方式不同，视觉结果会有所差异（见下方编辑器渲染）。

## 编辑器渲染

制表符在导入时会转换为空格，因此编辑器接收到的是普通文本内容。Tiptap 中不存在制表位或制表符的概念。

> **段落开头的空格默认不可见:**
>
> 由制表符生成的四个空格会保留在 JSON 中并原样传递到编辑器，但浏览器在默认 `white-space: normal` 下会折叠空白字符序列。因此，段落开头的制表符会渲染得像是紧贴段落左边缘的一个空格，从视觉上看就像制表符被丢失了。这是标准的 HTML 空白规则，而不是导入时的裁剪。句子中间的制表符也会折叠为一个空格，不过由于两侧都有文本，通常仍然能正确阅读。
>
> 要保留视觉缩进，可以在编辑器的段落样式上设置 `white-space: pre-wrap`，或者在将内容加载到编辑器之前，在 `onImport` 回调中将前导空格转换为不间断空格（` `）。

## 导出

导出的 DOCX 中，空格仍然保持为空格。不会将空格再转换回制表符。原本在 Word 中使用制表符的内容，导出时会改为使用空格。
