Posso substituir fontes instaladas pelo ttf-mscorefonts-installer, preferir fontes Liberation?

4

Eu tive que apt-get install ttf-mscorefonts-installer no Ubuntu 12.04 / 12.10. A versão curta é que eu preciso canalizar arquivos PDF de um aplicativo que requer essas fontes para certos glifos.

O problema, depois de executar este comando, é que as fontes no meu navegador (e alguns aplicativos java) são agora "feias". Obviamente, esta é uma opinião subjetiva, mas é a que eu tenho.

Eu quero as fontes antigas de volta para a maioria dos casos (Libertação, DejaVu, Ubuntu, ...). Não tenho certeza de como melhor descrever isso, mas aqui está um exemplo:

Exemplo de CSS no Webbrowser

font-family: Verdana,Arial,sans-serif;

Sem ttf-mscorefonts-installer (caso 1):

    $ fc-match Verdana
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match Arial
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"'

Com o ttf-mscorefonts-installer (caso 2):

    $ fc-match Verdana
    Verdana.ttf: "Verdana" "Normal"

    $ fc-match Arial
    Arial.ttf: "Arial" "Normal"

    $ fc-match sans-serif
    LiberationSans-Regular.ttf: "Liberation Sans" "Regular"'

Eu quero (caso 1). Opcionalmente, eu quero que as fontes em (Caso 2) não pareçam "feias" no IE. eles são mais irregulares, menos suaves do que suas alternativas gratuitas em meus navegadores da Web.

Isso é possível?

    
por conner_bw 01.11.2012 / 17:14

1 resposta

4

fontconfig emprega um conjunto completo de sistemas de substituição de fontes. Existem diferentes níveis de definição de fonte: nome da fonte e famílias de fontes. Com uma fonte específica, o fontconfig usa a fonte com o mesmo nome, se disponível, e procura de outra forma a família de fontes com o mesmo nome . Se ainda não houver correspondência, ele usa a definição de família de fontes padrão como substituição, ou seja, Sans, Sans-serif e Mono.

O Ubuntu tem a família de fontes 'Verdana' definida em '/etc/fonts/conf.d/45-latin.conf', onde 'Verdana' é definido como 'Sans-serif', o que significa Sans -serif é empregado para 'Verdana' por padrão. Mas 'Verdana.ttf' seria usado em vez disso, se estiver instalado.

No seu sistema, a fonte preferida na família Sans-serif é 'Liberation Sans', então fontconfig usa o 'Liberation Sans' como substituição para 'Verdana' desde que não haja fonte do mesmo nome, enquanto usa 'Verdana.ttf' se estiver no caminho de pesquisa . Isso explica o que você postou.

Portanto, a solução para o seu problema é que, você tem que remapear a fonte 'Verdana' para uma fonte diferente, ou para um grupo de fontes que atribui à 'Liberation Sans' o prioridade mais alta . (O último caso é recomendado)

Abra ou crie o arquivo ~ / .config / fontconfig / fonts.conf, acrescente o seguinte:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<match>
    <test name="family"><string>Verdana</string></test>
    <edit name="family" mode="prepend" binding="strong">
        <string>Liberation Sans</string>
        <string>Verdana</string>
    </edit>
</match>

</fontconfig>

Observe que ~ / .fonts.conf está obsoleto agora, e se você já tiver o fonts.conf definido pelo usuário, remova o cabeçalho e o rodapé e mantenha apenas a seção 'match'. E seria muito longo para demonstrar a mesma solução em 'Arial'. Tenho certeza que você pode encontrar por conta própria.

    
por funicorn 07.11.2012 / 04:31

Tags