Kerning muito estreito com xeCJK

Kerning muito estreito com xeCJK

Estou tentando compor o japonês usando xelatex e o pacote xeCJK. Por alguma razão, kana pequeno causa um kerning estranho no texto. No exemplo a seguir, obtenho um espaçamento muito estreito entre dois kana pequenos e entre um kana pequeno e uma pontuação. Também está claro que eles não têm a mesma largura que o kana normal.

%!TEX program = xelatex
\documentclass{article}
\usepackage{xeCJK}
\setCJKmainfont{IPAMincho}
\begin{document}
ぎゅっと持った。あっ、そうかも。

あいうえおかきくけこさしすせそ
\end{document}

Compilando, recebo o seguinte:

O resultado compilado

Tentei várias fontes com os mesmos resultados. Estou faltando algumas definições importantes? Estou enganado ao acreditar que os kana pequenos também deveriam ser monoespaçados como os de tamanho normal?

Responder1

Parece que você encontrou um bug no xeCJK.

O inseto (Edição 166) era bastante antigo (desde a versão 2.x). Os caracteres iniciais japoneses condicionais (ゃ, ゅ, ょ, っ, etc.) foram identificados erroneamente como pontuações corretas completas para evitar quebras de linha. Mas às vezes haveria kernings negativos extras.

Corrigiremos o bug e lançaremos uma nova versão em xeCJKbreve.


Atualizar

Qing Lee carregou uma nova versão de xeCJK( 2014/12/26 v3.3.0), que desativa alguns dos Kinsoku (禁則) para corrigir esse problema. Você pode atualizar sua distribuição TeX para usar o novo pacote.

Antes de instalar a nova versão do xeCJK, você pode usar zxjatypeo pacote que é otimizado para composição tipográfica em japonês e fornece uma solução alternativa:

% !TEX program = XeLaTeX
% !TEX encoding = UTF-8
\documentclass{article}
\usepackage{xeCJK}
\usepackage{zxjatype}
\setCJKmainfont{IPAMincho}
\begin{document}
ぎゅっと持った。あっ、そうかも。

あいうえおかきくけこさしすせそ
\end{document}

Responder2

Consegui compilar o exemplo usando lualatex. O arquivo modificado é

\documentclass{article}
\usepackage{luatexja-fontspec}
\setmainjfont{IPAMincho}
\begin{document}
ぎゅっと持った。あっ、そうかも。

あいうえおかきくけこさしすせそ
\end{document}

Estritamente falando, luatexja-fontspecnão é necessário aqui, pois fontspeca alteração da fonte seria igualmente adequada. Mas isso só é verdade para este pequeno exemplo. No documento real, luatexjaera necessário lidar com quebras de linha.

Outro ponto que vale a pena mencionar: No próprio documento também utilizei o rubypacote. Isso funcionou xelatex, mas para lualatexo pacote luatexja-rubydeve ser usado.

informação relacionada