请参与 ctex-kit 的公测(ctex, xeCJK, CJKpunct 等宏包) #820
Replies: 18 comments 2 replies
-
这里的 「对 xeCJK、CJKpunct、zhnumber 重复同样的操作」实际上操作起来较为繁琐,请问是否有基于 |
Beta Was this translation helpful? Give feedback.
-
|
打包的里面没有 l3build 的环境,所以没写。如果 clone 代码的话,可以用 l3build install |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
是的,这是标准 LaTeX2e 机制。任何通过 从你的截图看,输出格式应该类似 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
|
更正:经实测确认,使用 原因是 正确的验证方式: \documentclass{ctexart}
\begin{document}
ctex 版本:\csname ver@ctexart.cls\endcsname
xeCJK 版本:\csname ver@xeCJK.sty\endcsname
你好,世界!Hello, World!
\end{document}感谢 @Explorer-cc 指出这个问题,已更新测试指南。 |
Beta Was this translation helpful? Give feedback.
-
感谢提示。我执行了如下的命令: 之后,将会把开发版的上述三个宏包安装到 TEXMF-LOCAL 目录下我的 然而,天有不测风云,不知道是不是我电脑某个脚本设置有问题,当我对 命令行提示: (先爬去吃饭了) 似乎这里的 Lines 40 to 42 in 030fa70 |
Beta Was this translation helpful? Give feedback.
-
见 5446e78 (ci: 仅在需要时加载 但是好像这个
Line 1258 in c710245 Line 24 in c710245 |
Beta Was this translation helpful? Give feedback.
-
但是 c710245 的 |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
确实如此,但我发现了另一个日期的bug,可以考虑同时加入对 使用
但使用
ctex-kit/CJKpunct/CJKpunct.dtx Line 193 in c710245 可能会对用户判断版本新旧造成误解。 |
Beta Was this translation helpful? Give feedback.
-
|
感谢指出!确实是版本号提升时漏改了 -\def\filedate{2016/05/14}
+\def\filedate{2026/05/04}下次打包时会包含这个修正。 |
Beta Was this translation helpful? Give feedback.
-
确实如此,感谢指出。Release 打包使用的是 CTAN 标准格式:外层 zip 包含一个
已更新测试指南中的安装说明,明确了两步解压流程。
这是一个已知限制:xeCJK 的 对于本地 |
Beta Was this translation helpful? Give feedback.
-
我当前对于 感谢维护。 |
Beta Was this translation helpful? Give feedback.
-
@Explorer-cc 我是指,执行 |
Beta Was this translation helpful? Give feedback.
-
|
感觉这个 issue 转成 discussion 更好。discussion 把评论回复嵌套展示在该评论下方,方便同时进行多个评论的讨论。 |
Beta Was this translation helpful? Give feedback.
-
|
@muzimuzhi 支持。but how to? |
Beta Was this translation helpful? Give feedback.
-
@Liam0205 似乎这里的表述也有些问题: 这里 |
Beta Was this translation helpful? Give feedback.






Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
ctex v2.6.0、xeCJK v3.10.0、CJKpunct v4.8.5 和 zhnumber v3.1 已经以 Pre-release 形式发布在 GitHub Release 页面,距离上一次正式版发布已经过去了近四年。这批更新包含大量 Bug 修复、Unicode 同步和若干 Breaking Change——在正式推送到 CTAN 之前,我们需要更广泛的社区测试来确认它们在真实文档中的稳定性。本文提供面向普通用户的完整测试流程:从了解变更内容,到下载安装、报告问题,最后到安全卸载。
本次更新有什么重大变化
ctex v2.6.0
这是一次大版本更新:
在最新的 macOS 系统上可以自动配置字体。自 macOS 15 开始,Apple 修改了字体在系统目录中的分布,同时将部分字体改为 downloadable。这使得之前的字体自动配置机制失效。
fontset=mac现在能正确检测和加载 macOS 15 的 downloadable 字体。\newCJKfontfamily定义的命令改为局部作用域。此前,在分组内用\newCJKfontfamily声明的字体切换命令会泄漏到分组外;现在它与\newcommand行为一致——只在当前分组内有效。如果你的文档依赖了「在\begingroup...\endgroup内声明字体命令、在组外使用」的写法,需要把声明提到分组外或导言区。最低 LaTeX 版本要求提升到 2020/10/01。如果你的 TeX Live 版本低于 2021,可能无法使用此版本。移除了对旧版 LaTeX 字体钩子的兼容代码。
新功能方面:
experiment/font-size-system选项,可在word(默认)和letterpress(金属活字字号体系)之间切换,也支持自定义字号表。experiment/CJKecglue选项,统一跨引擎的中西文间距接口。\verb前 xkanjiskip 丢失的问题。xeCJK v3.10.0
这是近四年以来 xeCJK 最大的一次更新,核心变化集中在边界恢复状态机的重写:
hyperref等包的复杂场景下会产生错误的间距插入。新版收窄为只对color/xcolor和hyperref两个已知安全来源做定点恢复。\textcolor导致CJKecglue丢失的长期问题(使用 xcolor 改变颜色后前后间距消失 #315)。中文\texttt{code}中文的间距不再受\texttt字体影响。\xeCJKchar命令,提供绕过 interchar 机制的字符输出接口。experiment/halfright-prebreakpenalty选项,阻止半角右标点出现在行首。Breaking Change 与 ctex 相同:
\newCJKfontfamily局部化、最低 LaTeX 版本要求提升。此外,\xeCJKsetcharclass被正式废弃,调用时会报错并提示改用\xeCJKDeclareCharClass。CJKpunct v4.8.5
minipage/trivlist内段首全角开标点异常缩进(CJKpunct: minipage/trivlist 内段首全角开标点异常缩进 #747)。zhnumber v3.1
如何下载和安装预发版宏包
第一步:下载
前往 CTeX-org/ctex-kit Releases 页面,找到标记为 Pre-release 的版本。每个版本提供一个
.zip压缩包,例如:ctex-v2.6.0-35416af2.zipxecjk-v3.10.0-35416af2.zipcjkpunct-v4.8.5.zipzhnumber-v3.1-c8cce34a.zip建议将 ctex 和 xeCJK 一起更新——它们在测试中是联动的。
第二步:确定 texmf-local 路径
texmf-local是 TeX 发行版为用户自定义安装预留的目录树,其中的文件优先级高于发行版自带的文件。C:\texlive\texmf-local\C:\Users\<用户名>\mytexmf\或通过 MiKTeX Console 设置/usr/local/texlive/texmf-local//usr/local/texlive/texmf-local/如果不确定路径,可以在终端执行:
第三步:解压到正确位置
下载的
.zip文件是 CTAN 标准打包格式,内部包含一个<pkg>.tds.zip(TDS 结构包)和一个源文件目录。你需要:先从外层 zip 中提取.tds.zip,再将.tds.zip的内容解压到texmf-local。以 ctex 为例:
解压后,你应该能看到类似这样的目录结构:
对 xeCJK、CJKpunct、zhnumber 重复同样的操作(对应的 TDS 包分别是
xecjk.tds.zip、cjkpunct.tds.zip、zhnumber.tds.zip)。第四步:刷新文件名数据库
第五步:验证安装
编译一个简单的测试文档确认版本号:
版本号应显示
2026/05/04 v2.6.0(ctex)和2026/05/04 v3.10.0(xeCJK)。注意使用文档类时应查询ver@ctexart.cls(而非ver@ctex.sty),因为ctexart.cls不通过\RequirePackage{ctex}加载,而是直接内联了 ctex 代码。如何报告问题
如果在测试中发现问题,请在 GitHub Issue 中报告。一份有效的 Bug 报告应包含:
.log文件)中的相关片段,特别是警告和错误信息。示例格式:
如果你不确定问题属于 ctex 还是 xeCJK,不必纠结——直接报告即可,维护者会做分流。
如何卸载预发版宏包
当你完成测试、或遇到严重问题需要回退到 TeX Live / MiKTeX 自带的公开版本时:
方法:删除 texmf-local 中的对应文件
# Linux / macOS sudo rm -rf /usr/local/texlive/texmf-local/tex/latex/ctex sudo rm -rf /usr/local/texlive/texmf-local/tex/latex/xeCJK sudo rm -rf /usr/local/texlive/texmf-local/tex/latex/zhnumber sudo rm -rf /usr/local/texlive/texmf-local/tex/latex/CJKpunct sudo rm -rf /usr/local/texlive/texmf-local/doc/latex/ctex sudo rm -rf /usr/local/texlive/texmf-local/doc/latex/xeCJK sudo rm -rf /usr/local/texlive/texmf-local/doc/latex/zhnumber sudo rm -rf /usr/local/texlive/texmf-local/doc/latex/CJKpunct sudo rm -rf /usr/local/texlive/texmf-local/source/latex/ctex sudo rm -rf /usr/local/texlive/texmf-local/source/latex/xeCJK sudo rm -rf /usr/local/texlive/texmf-local/source/latex/zhnumber sudo rm -rf /usr/local/texlive/texmf-local/source/latex/CJKpunct sudo mktexlsr删除后刷新文件名数据库,TeX 就会回退到发行版自带的版本。可以用前面的验证文档确认版本号已经回退。
如果你只是临时想禁用预发版而不删除文件,也可以把
texmf-local/tex/latex/ctex整个目录重命名(比如加.bak后缀),然后mktexlsr——效果等价于卸载,但保留了文件方便日后恢复。小结
这批预发布版代表了 ctex 生态近四年的积累。xeCJK 的边界恢复状态机重写解决了一大批与
\textcolor、hyperref、字体切换相关的长期间距问题;ctex 的引擎适配层也进行了多处现代化更新。但正因为变更范围广,我们格外需要在正式发布前获得社区的测试反馈——哪怕只是「我的毕业论文/期刊模板能正常编译」这样的报告,对判断发布时机都很有价值。安装测试很简单:下载 zip、解压到 texmf-local、刷新数据库。遇到问题随时在 GitHub Issue 报告,结束测试后删除文件即可回退。期待你的参与。
Beta Was this translation helpful? Give feedback.
All reactions