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:
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 xeCJK
breve.
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 zxjatype
o 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-fontspec
não é necessário aqui, pois fontspec
a alteração da fonte seria igualmente adequada. Mas isso só é verdade para este pequeno exemplo. No documento real, luatexja
era necessário lidar com quebras de linha.
Outro ponto que vale a pena mencionar: No próprio documento também utilizei o ruby
pacote. Isso funcionou xelatex
, mas para lualatex
o pacote luatexja-ruby
deve ser usado.