
Quero verificar se esse problema é devido à minha configuração ou se é algum tipo de bug.
Estes são os pacotes que carrego e a configuração deles (todos mínimos para testar o problema). Estou usando o XeTeX 0.9998.
\documentclass[12pt,a4paper]{scrbook}
\usepackage{polyglossia}
\setmainlanguage{italian}
\usepackage{amsmath,amsthm,mathtools}
\usepackage{mathcomp,mathrsfs,xfrac,bbm}
\usepackage{unicode-math}
\usepackage{xunicode}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Scale=MatchLowercase]{Myriad Pro}
\setmonofont{Inconsolata}
\setmathfont{XITS Math}
Quando eu estava escrevendo percebi que algo estava estranho com o espaçamento nas fórmulas matemáticas, então escrevi isso
que é bastante terrível. O espaçamento não é nada bom, há muitos confrontos. Depois tentei com algumas outras fontes, escolhendo entre aquelas suportadas pelo unicode-math (encontrei a lista no README), descobri que tenho o mesmo efeito com STIX Math e com Latin Modern Math, como vocês podem ver
Aqui o problema é menos evidente porque a fonte é mais leve, mas confronta com a versão padrão do Latin Modern (sem usar fontes opentype e unicode-math)
Isso está correto, então pensei que fosse algo relacionado à matemática unicode, mas usando Neo Euler e Asana Math parece bom
Alguém tem idéia do que pode ser a causa desse problema? Talvez as fontes? Espero que não, porque gostaria muito de usar XITS ou STIX... Você consegue reproduzir o problema?
Responder1
O principal problema é que o XeTeX não está aplicando correção matemática de itálico:
- XITS possui correção de itálico e precisa dela para espaçamento adequado.
- No caso do Latin Modern, a fonte não fornece correção de itálico.
- A matemática Asana também não possui correção de itálico, mas os glifos são espaçados de uma forma que alivia a necessidade de correção de itálico.
- Euler, embora tenha correção de itálico, seu design vertical faz com que a falta de correção de itálico não seja muito visível (embora seu exemplo esteja errado, você tem que passar
math-style=upright
a opção para que os alfabetos de Euler sejam usados).
Por que o XeTeX parou de aplicar a correção de itálico não está claro para mim, essa parte do código não foi tocada por muito tempo, mas o código tinha falhas de qualquer maneira, então meu palpite é que funcionou acidentalmente e algumas das recentes limpezas matemáticas quebraram.
No entanto, há uma solução alternativa: abra a fonte XITS em um editor de fontes (de preferência FontForge) e defina a largura do glifo de espaço como0, isso fará com que o mecanismo aplique a correção de itálico novamente.
Para os curiosos, a aplicação ou não da correção de itálico depende se o fator de espaço da fonte é zero, mesmo no ramo matemático OpenType do código, e embora isso seja verdade para fontes matemáticas TFM, não é essencialmente o caso para Fonte OpenType.
Além disso, as especificações matemáticas do OpenType divergem do algoritmo TeX sobre quando a correção de itálico deve ser aplicada, mas é muito vaga, e a implementação do MS parece diferir do que está realmente documentado, portanto ainda não é muito bem suportado pelo XeTeX e LuaTeX.
Atualizar: O branch master do XeTeX lida melhor com isso agora, até que um tratamento mais robusto da correção de itálico seja desenvolvido.