我正在排版一份中文文档,单词之间留有空格,以便于学习者阅读。因此,我排版的大部分文档的单词之间没有换行符。因为中文单词通常很短,所以这通常不会造成什么大问题。
但是,在我的文档的某些部分,我需要使用中文换行符,如 \XeTeXlinebreaklocale“zh”(或类似)所定义,以避免框过满。基本上,这些都是中文文本的常规段落,如果不启用此选项,它们根本不会中断。但是,这似乎是一个特定于文档的参数,我无法在文档的某些部分轻松更改。
关于如何解决这个问题,您有什么想法吗?
我在下面的评论中补充道,我想输入不带空格的中文文本,如“我喜欢学中文”,在这种情况下,换行符将使用中文语言环境,以及空格分隔的中文(非标准)“我喜欢学中文”,在这种情况下,单词中间不允许有换行符(或可能只允许非常高的容忍度)。
如果我仅打开 \XeTeXlinebreaklocale "zh"(或者我相信使用 CJK 包),所有单词将根据中文规则被断开,在这种情况下,我可能会将“我喜欢学中文”中的“中文”断开为两行。
答案1
如果您使用多段中文,请使用我们的xeCJK
套餐。
如需完全中文文档,请使用我们的文档或捆绑包ctex
。它基于xeCJK
。
我在之前的问题中已经解释过这个话题:
当然要xeCJK
解决断行问题。你不需要用\XeTeXlinebreaklocale
;xeCJK
并且xeCJK
也不会改变\XeTeXlinebreaklocale
。
如果你使用,则不需要关心换行符区域设置
\XeTeXlinebreaklocale "zh"
据我所知,它与西方语言无关。同样,使用时xeCJK
也不需要关闭它。非 CJK 文本将不受影响。使用xeCJK
,可以更轻松地设置中文字体而无需更改西方文本,并且标点符号的效果会更好。
仅出于完整性考虑,我会说您可以使用\makexeCJKactive
和\makexeCJKinactive
来打开和关闭的功能xeCJK
。
注意:与某些语言的软件包xeCJK
不完全兼容。如果您遇到更多问题,请提出更多问题或与我联系。(我目前是 的主要维护者。)polyglossia
xeCJK
对于更新的问题,请参阅先前的问题:
您可以在中使用space
和nospace
选项xeCJK
,以及\CJKspace
和\CJKnospace
选项,就像CJK
包中所做的那样。
我认为,即使你习惯在中文字符之间留有空格,也不建议抑制\CJKspace
中文字符之间的换行符。如果你坚持,你可以改变\CJKglue
空。你可以阅读的文件xeCJK
如果您不确定选项和命令。
毕竟,一个例子:
\documentclass{article}
\usepackage{xeCJK}[2011/05/20]
\setCJKmainfont{SimSun}
\begin{document}
在普通文字之间没有空格
可以避免源代码折行造成
的问题。
\CJKspace
如果 需要 也 可以 保留 空格。
这 对于 汉语 分词 研究 或许 是 有益的。
\end{document}