当在一个句子中将中文文本和非数学模式数字混合在一起时,窄数字将获得与字符相同的空间:
\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
在这些情况下,您应该自己添加适当的间距(但不是空格)。