暂时改变中文文本和数字之间的间距

暂时改变中文文本和数字之间的间距

当在一个句子中将中文文本和非数学模式数字混合在一起时,窄数字将获得与字符相同的空间:

\documentclass{article}
\usepackage{ctexcap}
\usepackage{fontspec}
\usepackage{xeCJK}
\setCJKmainfont{Adobe Heiti Std}
\begin{document}
    第1号
\end{document}

在大多数情况下,这种外观可能很理想,但是,就我而言,我需要在少数情况下暂时更改此间距。如何强制将字符打印得更靠近“1”,使其间距与放置在英文文本中(两侧没有空格)的间距相同?

答案1

您可以使用\CJKsetecglue来设置 CJK 符号和西方符号之间的空格。这在 中有记录xeCJK

\documentclass{article}
\usepackage{ctexcap} % it will load xeCJK internally. Or just use ctexart instead of article
\setCJKmainfont{Adobe Heiti Std}
\CJKsetecglue{\hskip0.15em plus0.05em minus 0.05em}
\begin{document}
  第1号
\end{document}

但是,使用\hskip非正常字间空格时必须小心\CJKsetecglue。XeTeX 仅设置两个不同字符类之间的空格。仍有许多情况xeCJK无法自动添加空格。

例如,

汉字\mbox{abc}汉字 % no spaces added

在这些情况下,您应该自己添加适当的间距(但不是空格)。

相关内容