Estou usando fontes TrueType (Windows) na minha estação de trabalho Ubuntu ( detalhes ) e estou muito feliz com a aparência das fontes, tanto em aplicativos de desktop quanto na Web (usando o Firefox).
No entanto, em algumas páginas da web, como esta , as fontes são uma porcaria:
Eu encontrei o motivo para estar Helvetica
no CSS desse site:
font-family: Helvetica,Arial,Tahoma,sans-serif;
Quando, usando o Firebug, removo o Helvetica dessa lista, ele usa o Arial e fica com aspeto novamente:
Minha pergunta é: como fazer com que as páginas da Web que usam Helvetica (ou Times ou outras fontes semelhantes) pareçam legais automaticamente? Em outras palavras, como mapear as famílias de fontes Times e Helvetica para os padrões serif e sans-serif (que no meu caso seriam Times New Roman e Arial, respectivamente)?
Estou interessado em qualquer solução que faça o Firefox usar as fontes MS TrueType neste cenário, não importa se é baseado em configurações de fontes do Ubuntu ou regras CSS personalizadas no Firefox (ou em algo que atualmente não tenho idéia).
Atualização : Agora, o problema foi totalmente resolvido - esta resposta descreve o que eu precisava fazer.
Respostas:
Edit : Eu atualizei completamente esta resposta depois de receber alguns conselhos inovadores de um colega.
Aqui está o que eu inseri
/etc/fonts/local.conf
(dentro do<fontconfig>
elemento):Da mesma forma para Times -> Times New Roman. (Veja minha íntegra
local.conf
aqui .) A chave era usar binding = "strong" para o<edit>
elemento. (Além disso, usar o modo "assign_replace" em vez de "assign" causa algo semelhante, exceto que é muito agressivo: também Verdana é substituído por Arial).Alterações nas configurações de fonte são efetivas imediatamente. Além de testar no Firefox, você pode verificar se funciona assim:
Se você tiver problemas, a melhor ajuda está perto
man fonts-conf
. (Embora, mesmo com a documentação, o funcionamento do sistema de fontes parecesse um pouco complicado ou pesado para mim.) Você também pode tentar "depurar" o que realmente está acontecendo usando um comando como:Além disso,
FC_DEBUG=1024 fc-match helvetica
mostra a lista de arquivos de configuração que afetam a correspondência da fonte.fonte
Eu tive um problema semelhante no Opera, cuja solução era desativar o "Core X Fonts" na configuração. Eu sugiro ver se existe uma opção semelhante no Firefox.
Outras opções:
100dpi
e75dpi
na pasta de fontes do sistema (/usr/local/share/fonts
eu acho). Acabei de mudar completamente essas pastas de lá.Se você fizer alterações nas pastas principais, precisará reconstruir o cache da fonte com:
fonte
opera:config
mas no Firefox éabout:config
. Digite isso na barra de endereço, você pode receber um aviso sobre dragões; D, mas continue. Há uma caixa de filtro - sugiro pesquisar por "fonte" e ver quais opções você obtém.Greasemonkey será uma das soluções para sua pergunta. Instale este complemento e você pode personalizar as páginas da web e alterar as fontes.
e um exemplo de script que altera a fonte para Helvita
fonte
Apenas imaginando, você poderia usar fontes locais e o @font face css?
fonte
Você precisa adicionar um "Grant" a esse script de qualquer maneira ...
O Greasemonkey 1.0 adiciona um imperativo especial do bloco de metadados: @grant.
Exemplos
É comum que os scripts (mais da metade na última contagem) não usem APIs especiais. Para esses scripts, solicitar explicitamente que não sejam concedidos privilégios especiais significa que o script será executado diretamente na página de conteúdo. Isso significa que não há área restrita de segurança e nenhuma de suas limitações; portanto, acessar variáveis na página simplesmente funciona, chamar funções e ler seus resultados também funciona. Para fazer isso, basta:
Se você usa uma das APIs de Greasemonkey, deve solicitar explicitamente que ela seja concedida ao seu script:
Nesse caso, o script está solicitando acesso a ambos
GM_getValue
eGM_setValue
, um em cada@grant
linha. Especifique o nome de qualquer API do Greasemonkey para obter acesso a ela. (Todos os scripts sempre são obtidosGM_info
sem a solicitação específica.) Temporariamente, isso também funcionaria:Este exemplo funcionará no Greasemonkey versão 1.0. Quando não há linhas @grant, o Greasemonkey tenta detectar quais APIs estão sendo usadas e age como se essas linhas @grant tivessem sido especificadas. Essa detecção pode falhar em certos casos, especialmente quando
eval()
é usado.Todos os scripts escritos antes do @grant devem continuar a funcionar por causa disso, mas você deve alterar seus scripts para especificar o @grant o mais rápido possível, para que não sejam interrompidos no futuro. Camada de compatibilidade
Muitas das APIs do Greasemonkey foram duplicadas por padrões da Web como o DOM Storage. Se você espera que seu script funcione em um único domínio, use o @grant none e sua compatibilidade aumentada sem nenhum inconveniente imediatamente. Basta usar uma biblioteca @require para emular APIs do Greasemonkey com os recursos do navegador agora padrão:
Esse script funcionará da mesma forma que o exemplo acima, exceto que o sh concession none está fornecendo emulação de API com recursos padrão do navegador. Quando a camada de compatibilidade com o shim funciona bem o suficiente para o seu script, esse é o melhor dos dois mundos. Escopo
Na concessão de nenhum caso, o script do usuário ainda possui seu próprio escopo global, distinto do escopo global da página de conteúdo. Isso significa que um nível superior
var x = 1;
não será visível para o escopo do conteúdo e, portanto, não quebrará a página (ou seja, se depender de uma variável x ter um valor diferente.) Para escrever valores no escopo do conteúdo, façawindow.x = 1;
.Se você
@require
possuir uma versão do jQuery, ela será atribuída implicitamente awindow.$
ewindow.jQuery
. Se a página em que você executa depende de uma versão diferente do jQuery, isso pode danificá-la. Para contornar esse problema, em qualquer lugar no nível superior do seu script:Esse código salvará uma referência do jQuery (nele, o escopo global do script ao ser executado no modo de concessão de nenhum), enquanto o remove da janela (o escopo global do conteúdo) e restaura qualquer coisa originalmente armazenada nele.
fonte