我正在尝试使用 xelatex 和 xeCJK 包排版日语。出于某种原因,小假名会导致文本出现奇怪的字距。在下面的例子中,两个小假名之间以及小假名和标点符号之间的间距太窄。很明显,它们的宽度与常规假名不一样。
%!TEX program = xelatex
\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{IPAMincho}
\begin{document}
ぎゅっと持った。あっ、そうかも。
あいうえおかきくけこさしすせそ
\end{document}
编译后,我得到以下内容:
我尝试了几种字体,结果都一样。我是不是遗漏了一些重要的定义?我是不是误以为小假名也应该和常规大小的假名一样等宽?
答案1
看来您发现了 的一个错误xeCJK
。
错误 (第 166 期) 相当老旧(自 2.x 版以来)。条件日语起始字符(ゃ、ゅ、ょ、っ 等)被错误地识别为完整的右标点符号,以防止换行。但有时会有额外的负字距调整。
我们将修复该错误并很快发布新版本xeCJK
。
更新
xeCJK
庆李已上传( )的新版本2014/12/26 v3.3.0
,该版本禁用了部分避头尾 (禁则) 以修复此问题。您可以升级 TeX 发行版以使用新软件包。
在安装新版本之前xeCJK
,您可以使用zxjatype
针对日文排版进行了优化并提供了解决方法的软件包:
% !TEX program = XeLaTeX
% !TEX encoding = UTF-8
\documentclass{article}
\usepackage{xeCJK}
\usepackage{zxjatype}
\setCJKmainfont{IPAMincho}
\begin{document}
ぎゅっと持った。あっ、そうかも。
あいうえおかきくけこさしすせそ
\end{document}
答案2
我设法使用编译了该示例lualatex
。修改后的文件是
\documentclass{article}
\usepackage{luatexja-fontspec}
\setmainjfont{IPAMincho}
\begin{document}
ぎゅっと持った。あっ、そうかも。
あいうえおかきくけこさしすせそ
\end{document}
严格来说,luatexja-fontspec
这里不需要,因为它fontspec
同样可以很好地处理字体更改。但这仅适用于这个小例子。在实际文档中,luatexja
需要处理换行符。
还有一点值得一提:在实际文档中,我也使用了 包ruby
。这在 中是有效的xelatex
,但对于,应该使用lualatex
包。luatexja-ruby