PHPackages                             jxlwqq/chinese-typesetting - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jxlwqq/chinese-typesetting

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jxlwqq/chinese-typesetting
==========================

Better Typesetting for Chinese

1.2.4(7y ago)852.1k5[2 issues](https://github.com/jxlwqq/chinese-typesetting/issues)MITPHPPHP &gt;=5.6.0

Since Jul 26Pushed 7y ago2 watchersCompare

[ Source](https://github.com/jxlwqq/chinese-typesetting)[ Packagist](https://packagist.org/packages/jxlwqq/chinese-typesetting)[ RSS](/packages/jxlwqq-chinese-typesetting/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (1)Versions (17)Used By (0)

更好的中文文案排版
=========

[](#更好的中文文案排版)

统一中文文案、排版的相关用法，降低团队成员之间的沟通成本，增强网站气质。

Web 排版强迫症患者的福音。

[![Build Status](https://camo.githubusercontent.com/58baa89eedfa0878bc91c6be2c342075d9a2070f6f9d3e071124c96d56a632fd/68747470733a2f2f7472617669732d63692e6f72672f6a786c7771712f6368696e6573652d7479706573657474696e672e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/jxlwqq/chinese-typesetting)[![StyleCI](https://camo.githubusercontent.com/e0e71cc4a0b4f4a421abc1c54667dd5d55d6a3395866743793c4a3d654c2bf8b/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3134323337313137362f736869656c643f6272616e63683d6d6173746572)](https://github.styleci.io/repos/142371176)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/ef1d50f0b861a927b4e569f258199d489ac8d033161d97ebeac953691fb90e89/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6a786c7771712f6368696e6573652d7479706573657474696e672f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/jxlwqq/chinese-typesetting/?branch=master)[![FOSSA Status](https://camo.githubusercontent.com/395ab029167124be64e8df272fa1a8de0958565b30e5b6f8f92cb402890ccbdf/68747470733a2f2f6170702e666f7373612e696f2f6170692f70726f6a656374732f6769742532426769746875622e636f6d2532466a786c7771712532466368696e6573652d7479706573657474696e672e7376673f747970653d736869656c64)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjxlwqq%2Fchinese-typesetting?ref=badge_shield)

安装
--

[](#安装)

使用 [Composer](https://getcomposer.org/) 安装：

```
composer require "jxlwqq/chinese-typesetting"
```

使用
--

[](#使用)

### 添加空格

[](#添加空格)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

$text = '今天，我在Apple Store上购买了一台13英寸MacBook Pro笔记本电脑，花费了14188元。';
$chineseTypesetting->insertSpace($text);
// output: 今天，我在 Apple Store 上购买了一台 13 英寸 MacBook Pro 笔记本电脑，花费了 14188 元。

$text = 'α碳原子为与有机物中与官能团相连的第一个碳原子，第二个为β碳原子，以此类推。';
$chineseTypesetting->insertSpace($text);
// output: α 碳原子为与有机物中与官能团相连的第一个碳原子，第二个为 β 碳原子，以此类推。
```

在中文与英文字母/用于数学、科学和工程的希腊字母/数字之间添加空格。

目前，比较主流的约定是在中文与英文之间添加空格。本包增加了对用于数学、科学和工程的希腊字母的支持。

### 清除空格

[](#清除空格)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

$text = '小林买了一部 iPhone X，他终于可以用上老婆的 iPhone 7 了 ，好开心！';
$chineseTypesetting->removeSpace($text);
// output: 小林买了一部 iPhone X，他终于可以用上老婆的 iPhone 7 了，好开心！
```

全角标点符号与其他字符之间无需添加空格。

### 全角转半角

[](#全角转半角)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

$text = '这个名为 ＡＢＣ 的蛋糕只卖 １０００ 元。';
$chineseTypesetting->full2Half($text);
// output: 这个名为 ABC 的蛋糕只卖 1000 元。
```

有限度的全角转半角（英文、数字、空格以及一些特殊字符等使用半角字符）。

### 修复错误的标点符号

[](#修复错误的标点符号)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 修复省略号的错误用法
$text = '她轻轻地哼起了《摇篮曲》：“月儿明，风儿静，树叶儿遮窗櫺啊…”';
$chineseTypesetting->fixPunctuation($text);
// output: 她轻轻地哼起了《摇篮曲》：“月儿明，风儿静，树叶儿遮窗櫺啊……”

// 中文后面使用全角中文标点
$text = '你好,世界.';
$chineseTypesetting->fixPunctuation($text);
// output: 你好，世界。

// 不重复使用中文标点符号
$text = '你好激动啊！！！';
$chineseTypesetting->fixPunctuation($text);
// output: 你好激动啊！
```

### 专有名词使用正确的大小写

[](#专有名词使用正确的大小写)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

$text = '今天午休的时候，我突然回想起了电影《泰坦尼克号》中 rose 裸身让 jack 作画的情节。'
$chineseTypesetting->properNoun($text);
// output：今天午休的时候，我突然回想起了电影《泰坦尼克号》中 Rose 裸身让 Jack 作画的情节。

// 扩展词汇
$text = '今天中午，我在 kfc 边吃着汉堡，边用 iphone 欣赏着电影《泰坦尼克号》中 rose 裸身让 JACK 作画的情节。'
$chineseTypesetting->properNoun($text, ['iPhone']);
// output：今天中午，我在 KFC 边吃着汉堡，边用 iPhone 欣赏着电影《泰坦尼克号》中 Rose 裸身让 Jack 作画的情节。

// 忽略词汇
$text = 'siri 告诉我，玫瑰对应的英文单词是 rose。'
$chineseTypesetting->properNoun($text, [], ['Rose']);
// output：Siri 告诉我，玫瑰对应的英文单词是 rose。
```

英语专有名词的数据来自于 [Wiktionary](https://en.wiktionary.org/w/index.php?title=Category:English_proper_nouns)。[采集爬虫链接](https://github.com/jxlwqq/english-proper-nouns)

Wiktionary 声明收录了 61765 条英语专用名词，实际爬取量为 61711 条。并使用以下原则进行数据的整理和筛选：

- 使用 `is_numeric()` 方法，剔除诸如 `007`、 等词汇；
- 使用 `'/\W/'` 正则，剔除诸如 `ǃXóõ` 等词汇；
- 剔除 `strlen` 方法，剔除 `A` 等单字节字符词汇；
- 剔除跟 HTML、CSS、JavaScript 保留字冲突的词汇。

### 清除 HTML 标签的样式

[](#清除-html-标签的样式)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除 Class 属性
$text = '你好，世界。';
$chineseTypesetting->removeClass($text);
// output: 你好，世界。

// 清除 ID 属性
$text = '你好，世界。';
$chineseTypesetting->removeId($text);
// output: 你好，世界。

// 清除 Style 属性
$text = '你好，世界。';
$chineseTypesetting->removeStyle($text);
// output: 你好，世界。
```

### 清除空的段落标签

[](#清除空的段落标签)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除空的段落标签
$text = '你好，世界。';
$chineseTypesetting->removeEmptyParagraph($text);
// output: 你好，世界。
```

### 清除所有空的标签

[](#清除所有空的标签)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除所有空的标签
$text = '你好，世界。';
$chineseTypesetting->removeEmptyTag($text);
// output: 你好，世界。
```

### 清除段首缩进

[](#清除段首缩进)

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 清除段首缩进
$text = '  你好，世界。';
$chineseTypesetting->removeIndent($text);
// output: 你好，世界。
```

首行是否缩进，[争议较大](https://zh.wikipedia.org/wiki/Wikipedia:%E6%8A%95%E7%A5%A8/%E6%AE%B5%E8%90%BD%E7%A9%BA%E5%85%A9%E6%A0%BC)，个人倾向于段首空两格，会破坏美感的观点。

### 使用指定的多种方法来纠正排版

[](#使用指定的多种方法来纠正排版)

可用的方法清单：

- fixPunctuation
- full2Half
- insertSpace
- removeSpace
- properNoun
- removeClass
- removeId
- removeStyle
- removeEmptyParagraph
- removeEmptyTag
- removeIndent

```
use Jxlwqq\ChineseTypesetting\ChineseTypesetting;

$chineseTypesetting = new ChineseTypesetting();

// 使用指定方法来纠正排版（推荐此用法）
$text = ' Hello世界。';
$chineseTypesetting->correct($text, ['insertSpace', 'removeClass', 'removeIndent']);
// output: Hello 世界。

// 使用全部方法来纠正排版（不推荐此用法）
$text = ' Hello世界。';
$chineseTypesetting->correct($text);
// output: Hello 世界。
```

参考
--

[](#参考)

- [中文文案排版指北](https://github.com/sparanoid/chinese-copywriting-guidelines)
- [中文技术文档的写作规范](https://github.com/ruanyf/document-style-guide)
- [用于数学、科学和工程的希腊字母](https://zh.wikipedia.org/wiki/%E7%94%A8%E6%96%BC%E6%95%B8%E5%AD%B8%E3%80%81%E7%A7%91%E5%AD%B8%E5%92%8C%E5%B7%A5%E7%A8%8B%E7%9A%84%E5%B8%8C%E8%87%98%E5%AD%97%E6%AF%8D)
- [English proper nouns](https://en.wiktionary.org/w/index.php?title=Category:English_proper_nouns)

Change Log
----------

[](#change-log)

- 1.2.0：新增 `properNoun()` 方法，用于纠正专有名词的大小写；
- 1.2.1：`removeEmptyTag()` 和 `removeEmptyParagraph()` 方法支持清除嵌套空标签；
- 1.2.2：新增 `removeSpace()` 方法，清除全角标点符号与其他字符之间的空格；

License
-------

[](#license)

`chinese-typesetting` is licensed under [The MIT License (MIT)](./LICENSE).

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity32

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Recently: every ~13 days

Total

15

Last Release

2765d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/84278d67776d72a3f5c3393df1841a3e49d8a90d8d69871a61c0a57265958f66?d=identicon)[jxlwqq](/maintainers/jxlwqq)

---

Top Contributors

[![jxlwqq](https://avatars.githubusercontent.com/u/2421068?v=4)](https://github.com/jxlwqq "jxlwqq (47 commits)")

---

Tags

chinese-copywritingchinese-typesettingcomposercomposer-packagephp

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/jxlwqq-chinese-typesetting/health.svg)

```
[![Health](https://phpackages.com/badges/jxlwqq-chinese-typesetting/health.svg)](https://phpackages.com/packages/jxlwqq-chinese-typesetting)
```

###  Alternatives

[nitotm/efficient-language-detector

Fast and accurate natural language detection. Detector written in PHP. Nito-ELD, ELD.

59252.9k6](/packages/nitotm-efficient-language-detector)[savannabits/primevue-datatables

Easy Laravel Server-Side implementation of PrimeVue Datatables

337.7k1](/packages/savannabits-primevue-datatables)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
