ctex-kit icon indicating copy to clipboard operation
ctex-kit copied to clipboard

波浪号“~”(U+FF5E)的前后空白

Open zepinglee opened this issue 8 years ago • 5 comments

我根据国标使用波浪形式的连接号:

\documentclass{ctexart}
\begin{document}
123~234
\end{document}

根据 https://www.zhihu.com/question/19615526 ,这个波浪号应该用 U+FF5E ,但是我得到的结果中,波浪号前后会出现一些空白:

1

这个地方的空白是不是应该去掉?

zepinglee avatar May 29 '17 02:05 zepinglee

在 xeCJK 中,~ 是全角形式的 ~ 符号,但在目前的版本中没有被当作标点,而是被作为普通汉字使用。所以产生了错误。

应该在下一版中修正。目前可以用如下代码修正该符号类型为闭标点:

\xeCJKDeclareCharClass{FullRight}{`~}
% 或 \xeCJKDeclareCharClass{FullRight}{"FF5E}

leo-liu avatar Jun 03 '17 03:06 leo-liu

感谢!

zepinglee avatar Jun 03 '17 03:06 zepinglee

@qinglee

我简单查了一下,日文波浪号似乎用的是 U+301C,在 xeCJK 文档引用 W3C 的 jlreq 规范中,分类为 cl-03 类,也就是目前 xeCJK 中设置为 \c_xeCJK_hyphens_chars_clist 的字符类。不过该字符类在 xeCJK 中未实际使用。

而在中文排版中,一般的中文字体则只支持全角浪线 U+FF5E。

问题是,无论是 U+301C,还是 U+FF5E,这两个字符字符目前在 xeCJK 3.4.8 中都是作为普通汉字类使用的,这样符号与西文符号之间会自动添加空格,结果不对。

这两个符号目前都在 CJK 字符类,间距不对。按 cl-03 类的需要,分入 FullRight 字符类禁则太严。当然,也不能分入使用西文字体的 NormalSpace 类。这样一来,似乎应该为禁则宽松而无需额外空白的连字符、破折号等增加一个新的字符类。此外,目前中文省略号、破折号的特殊处理的,似乎也可以在这个新字符类中单独处理。

leo-liu avatar Jun 03 '17 04:06 leo-liu

注:中文标点可部分参考与 jlreq 规范类似的中文排版需求文档 clreq: https://github.com/w3c/clreq

leo-liu avatar Jun 11 '17 15:06 leo-liu

与 #320 类似,目前暂时将 U+FF5E 等归入 FullRight 类。

qinglee avatar Jan 14 '18 16:01 qinglee