CTeX-org/ctex-kit · 上手攻略
- 仓库:CTeX-org/ctex-kit
- 链接:https://github.com/CTeX-org/ctex-kit
- 分类:academic-writing / typesetting
- 作者:Tom
- 更新:2026-08-23
是什么
ctex-kit 是面向中文 TeX 用户的宏包集合,为 XeLaTeX / LuaLaTeX / pdfLaTeX 提供统一的中文排版基础设施。项目由 CTeX 社区 维护,汇集了 ctex、xeCJK、zhspacing 等多条技术路线的成果。所有宏包均已收录于 TeX Live 和 MiKTeX,可直接使用,无需手动安装。
解决什么问题
中文 LaTeX 排版长期面临三大痛点:字体配置繁琐、CJK 标点压缩困难、中西文混排行距不统一。ctex-kit 通过封装这些底层细节,让用户专注于内容写作而非排版调试。
快速安装
ctex-kit 宏包已随 TeX Live / MiKTeX 发行版预装,无需额外安装。推荐使用 XeLaTeX 或 LuaLaTeX 引擎以获得最佳中文支持:
# 检查是否已安装(TeX Live 2023+ 默认包含)
tlmgr info ctex
tlmgr info xeCJK
如需使用开发版:
git clone https://github.com/CTeX-org/ctex-kit.git
cd ctex-kit
核心用法
最简示例:ctexart 文档类
\documentclass{ctexart}
\begin{document}
你好,\LaTeX{}!
\end{document}
用 XeLaTeX 编译:
xelatex yourfile.tex
在已有 article 文档类中使用 ctex 宏包
\documentclass{article}
\usepackage{ctex}
\begin{document}
你好,\LaTeX{}!
\section{中文章节}
中文内容正文。
\end{document}
xeCJK 精细控制(XeLaTeX 专用)
\documentclass{article}
\usepackage{xeCJK}
\xeCJKsetup{
punct=quanjiao, % 标点样式:全角(恩典式)
space=auto, % 中英文间自动插入空格
}
\begin{document}
中文内容,英文单词,混合排版。
\end{document}
中文数字与拼音
\usepackage{zhnumber}
\usepackage{xpinyin}
\zhnumber{2026} % 输出:二〇二六
\pinyin{中文} % 输出 zhōng wén
中西文混排行距自动调整
\usepackage{zhlineskip}
核心宏包一览
| 宏包 | 功能 | 适用引擎 |
|---|---|---|
| ctex | 中文文档类与宏包集合 | XeLaTeX / LuaLaTeX / pdfLaTeX |
| xeCJK | CJK 字体管理、字间距、标点压缩 | XeLaTeX |
| CJKpunct | CJK 标点压缩与间距调整 | XeLaTeX / pdfLaTeX |
| xpinyin | 汉字自动拼音注音 | 全引擎 |
| zhnumber | 中文数字与日期格式化 | 全引擎 |
| zhlineskip | 中西文混排行距自动调整 | 全引擎 |
| zhspacing | 中西文间距自动插入 | LuaTeX |
| jiazhu | 夹注(竖排)排版 | XeLaTeX / LuaLaTeX |
典型适用场景
- 学术论文:中文期刊、学位论文,使用 ctexart / ctexrep / ctexbook 文档类
- 中文图书:专著、教材,利用 zhlineskip 解决中英混排行距问题
- 中文 PPT:配合 beamer 使用 ctex 的 beamer 集成
- 古籍整理:夹注排版(jiazhu 宏包)
坑与注意
⚠️ 编译引擎选择:pdfLaTeX 需要配合 CJK 宏包使用 XeLaTeX/LuaLaTeX 是目前中文支持最完善的引擎,推荐默认使用。
⚠️ 字体配置:Linux 发行版默认字体有限,首次使用可能需要手动安装中文字体(如 Noto Serif CJK、Source Han Sans)。macOS 自带苹方字体,Windows 使用系统自带中文字体。
⚠️ 标点压缩:xeCJK 的 punct 选项影响标点形态,"恩典式"(全角)与"半角"在不同出版场景下有不同要求,投稿前确认目标期刊格式要求。
⚠️ zhspacing 与 zhlineskip 互斥:LuaTeX 路线使用 zhspacing,XeLaTeX/pdfLaTeX 使用 zhlineskip,二者不可混用。
⚠️ l3build 测试:如果你参与 ctex-kit 开发,测试用 l3build check,但普通用户无需运行此步骤。
与同类对比
ctex-kit vs standalone xeCJK:xeCJK 可以单独使用,但 ctex 文档类将 xeCJK + 字体配置 + 章节标题汉化统一封装,开箱即用程度更高。
ctex vs fontspec:fontspec 处理字体选择但不处理中文标点压缩和行距,ctex 是对 fontspec 的中文增强层。
ctex-kit vs CTEX 套装:CTeX 套装(Windows 安装包)是预装了 ctex-kit 的完整 TeX 环境,适合 Windows 新手;ctex-kit 本身是宏包源码,适合已配置好 TeX 环境的用户。
一句话推荐结论
写中文 LaTeX 文档,用 \documentclass{ctexart} 就够了——它是中文 TeX 领域最省心的入口,TeX Live / MiKTeX 开箱即用,无需折腾字体和标点。