CTeX-org/ctex-kit
GitHub: CTeX-org/ctex-kit
CTeX-kit 是面向中文 LaTeX 用户的宏包集合,提供完整的排版基础设施,解决中文文档在字体、标点和多引擎下的格式化难题。
Stars: 1042 | Forks: 128
# CTeX-kit 工具包
[](https://github.com/CTeX-org/ctex-kit/actions/workflows/test.yml?query=branch%3Amaster)
[English](README-en.md) | 简体中文
CTeX-kit 是面向中文 TeX 用户的宏包、脚本与资源集合,为中文 LaTeX 工作流提供完整的排版基础设施。项目由 [CTeX 社区](http://www.ctex.org) 维护,汇集了 `ctex`、`xeCJK`、`zhspacing` 等多条技术路线的成果,目标是在不同 TeX 引擎下提供统一、可靠的中文排版支持。
## 核心宏包
| 宏包 | CTAN 版本 | 说明 |
| ---- | --------- | ---- |
| [ctex](https://ctan.org/pkg/ctex) | [](https://ctan.org/pkg/ctex) | 中文文档类与宏包集合,统一封装字体配置、标题方案和多引擎适配 |
| [xeCJK](https://ctan.org/pkg/xecjk) | [](https://ctan.org/pkg/xecjk) | XeLaTeX 下的 CJK 字体管理、字间距和标点压缩 |
## 卫星宏包
| 宏包 | CTAN 版本 | 说明 |
| ---- | --------- | ---- |
| [CJKpunct](https://ctan.org/pkg/cjkpunct) | [](https://ctan.org/pkg/cjkpunct) | CJK 标点压缩与间距调整 |
| [xCJK2uni](https://ctan.org/pkg/xcjk2uni) | [](https://ctan.org/pkg/xcjk2uni) | 传统 CJK 编码到 Unicode 的映射 |
| [xpinyin](https://ctan.org/pkg/xpinyin) | [](https://ctan.org/pkg/xpinyin) | 为汉字自动添加拼音注音 |
| [zhnumber](https://ctan.org/pkg/zhnumber) | [](https://ctan.org/pkg/zhnumber) | 中文数字与日期格式化 |
| [zhlineskip](https://ctan.org/pkg/zhlineskip) | [](https://ctan.org/pkg/zhlineskip) | 中西文混排行距自动调整 |
| [zhspacing](https://ctan.org/pkg/zhspacing) | [](https://ctan.org/pkg/zhspacing) | 中西文间距自动插入(LuaTeX 路线) |
| [zhmetrics](https://ctan.org/pkg/zhmetrics) | [](https://ctan.org/pkg/zhmetrics) | 中文字体度量文件 |
| [zhmetrics-uptex](https://ctan.org/pkg/zhmetrics-uptex) | [](https://ctan.org/pkg/zhmetrics-uptex) | upTeX 中文字体度量 |
## 快速开始
### 安装
所有宏包均已收录于 [TeX Live](https://www.tug.org/texlive/) 和 [MiKTeX](https://miktex.org/),通常无需手动安装。如需使用开发版本,请直接克隆本仓库。
### 基本用法
使用 `ctexart` 文档类:
```
\documentclass{ctexart}
\begin{document}
你好,\LaTeX{}!
\end{document}
```
使用 `ctex` 宏包配合标准文档类:
```
\documentclass{article}
\usepackage{ctex}
\begin{document}
你好,\LaTeX{}!
\end{document}
```
支持的编译引擎:XeLaTeX、LuaLaTeX、pdfLaTeX(搭配 CJK 宏包)和 upLaTeX。推荐使用 XeLaTeX 或 LuaLaTeX 以获得最佳体验。
## 仓库结构
```
ctex-kit/
├── ctex/ # 核心:中文文档类与宏包
├── xeCJK/ # 核心:XeLaTeX CJK 支持
├── CJKpunct/ # CJK 标点压缩
├── xCJK2uni/ # CJK 编码转换
├── xpinyin/ # 拼音注音
├── zhnumber/ # 中文数字
├── zhlineskip/ # 行距调整
├── zhspacing/ # 中西文间距
├── zhmetrics/ # 字体度量
├── zhmetrics-uptex/ # upTeX 字体度量
├── jiazhu/ # 夹注排版
├── gbk2uni/ # GBK→Unicode 转换工具
├── gbkmac/ # GBK 编码支持(macOS)
├── zh-luatex/ # LuaTeX 中文实验支持
├── support/ # 共享构建配置与辅助文件
└── .github/ # CI/CD 配置
```
## 构建与测试
本项目使用 [l3build](https://ctan.org/pkg/l3build) 作为构建和测试框架。
```
# 运行 ctex 测试套件
cd ctex
l3build check
# 运行 xeCJK 测试套件
cd xeCJK
l3build check
# 生成 CTAN 发布包
l3build ctan
```
CI 在 Ubuntu、macOS 和 Windows 三个平台上针对当前 TeX Live 发行版进行测试,覆盖 `ctex`、`xeCJK`、`zhnumber`、`CJKpunct` 和 `zhlineskip` 五个测试套件。
## 技术栈
- **编程框架**:LaTeX3 / expl3
- **文学化编程**:docstrip (`.dtx` 源文件)
- **构建系统**:l3build
- **CI/CD**:GitHub Actions(测试 + 自动化发布)
## 参与贡献
欢迎通过 [议题](https://github.com/CTeX-org/ctex-kit/issues) 报告问题,或提交 [拉取请求](https://github.com/CTeX-org/ctex-kit/pulls) 参与开发。
在提交代码前,请确保:
1. 相关测试通过 (`l3build check`)
2. 遵循 expl3 编程规范
3. 对于 `.dtx` 文件的修改,请在 `\changes` 中记录变更
## 相关链接
- [CTeX 社区](http://www.ctex.org)
- [CTAN ctex 包页面](https://ctan.org/pkg/ctex)
- [LaTeX3 项目](https://www.latex-project.org/latex3/)
- [l3build 文档](https://ctan.org/pkg/l3build)
## 许可证
本项目中各宏包遵循 [LPPL v1.3c](https://www.latex-project.org/lppl/lppl-1-3c/) (LaTeX Project Public License) 发布。
版权所有 © 2003–2026 [CTeX 社区](http://www.ctex.org)
标签:CJK字体, CTeX, LaTeX, LaTeX宏包, LuaLaTeX, pdfLaTeX, TeX引擎, Unicode, upLaTeX, xeCJK, XeLaTeX, 中文排版, 中文支持, 出版, 字体管理, 宏包, 拼音注音, 排版基础设施, 数字格式化, 文档处理, 标点压缩, 混排, 编码支持, 行距调整