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 开箱即用,无需折腾字体和标点。