Normalmente, prefiro o Adobe Reader (ainda v9 no Linux) a todos os outros visualizadores de PDF, porque acho que ele tem a melhor qualidade de renderização, mesmo que outros tenham se recuperado ultimamente. Essa qualidade de renderização parece ser em grande parte devido ao CoolType, a implementação da Adobe de renderização de subpixel. Infelizmente, descobri que o Adobe Reader desativa consistentemente a renderização de subpixel (por página) assim que a página contém elementos transparentes. Um exemplo:
A forma azul é opaca, o texto é processado usando subpixels:
A forma azul é 50% transparente, o texto é renderizado com antialiasing padrão:
Os dois arquivos pdf correspondentes foram gerados exatamente da mesma maneira (usando TikZ / PGF com pdflatex), exceto para especificar a transparência no segundo caso. Eu mesmo fiz esses PDFs, mas frequentemente observei o mesmo efeito com os PDFs de fontes completamente diferentes. Estranhamente, Foxit Reader e Okular processam os mesmos dois PDFs de uma maneira exatamente idêntica (exceto, é claro, pela parte transparente em si), mas com uma qualidade geralmente pior em IMHO.
Minha pergunta: alguém sabe por que isso acontece e se / como isso pode ser evitado?
fonte
Respostas:
A renderização de subpixel é feita usando as cores individuais de um pixel. Cada pixel em uma tela é composto por um pixel ainda menor com as cores vermelho, verde e azul.
Se você deseja renderizar um objeto com 10,3 pixels de largura, use apenas a cor vermelha do 11º pixel. A tela então emitia luz de 31 subpixels, ou seja, 10 pixels completos e depois um terço de pixel.
Se você tentar simular esse efeito, simplesmente desenhando 10 pixels brancos de largura e, em seguida, um pixel vermelho à direita em um fundo preto, você mesmo verá o efeito.
O problema é que você notaria que a borda direita seria vermelha, se você simplesmente fizer dessa maneira. Provavelmente, a Adobe precisa usar algoritmos avançados para cancelar esse efeito - possivelmente amplificando o valor do vermelho e do verde do décimo pixel.
Adicionar transparência a um algoritmo já avançado é provavelmente algo que eles ainda não resolveram e, portanto, simplesmente desativam a renderização de subpixel.
Acredito que seja esse o caso, porque tentei implementar o subpixel de maneira ingênua e vi o efeito "lado colorido".
fonte
Isso pode ser um bug na Adobe, mais suscitado em seus fóruns.
Para melhorar a exibição da fonte no Linux, você pode tentar usar o Infinality:
Vejo :
Melhor renderização de fontes no Linux, com Infinality
archlinux Font Configuration - Infinality .
fonte