Eu tenho uma fonte monoespaçada ( PT Mono
) que prefiro usar na programação de IDEs. A fonte possui apenas Regular
, todas as outras Bold
e Italic
são derivadas pela inclinação e "negrito" do Regular
. O problema é que os caracteres "em negrito" são mais largos que os regulares, portanto, as cadeias de código-fonte na janela IDE agora são compostas por caracteres não monoespaçados.
Como faço para controlar a "negritude" da fonte para que ela não se torne mais larga que a normal?
O problema está ilustrado na captura de tela abaixo ( PT Mono
sem negrito dedicado). Veja como as palavras "char não assinado" e "sizeof" estão saindo de suas posições apropriadas.
Aqui está outro exemplo Droid Sans Mono
(sem negrito dedicado).
E aqui um exemplo quando a fonte tiver dedicado versão em negrito ( Liberation Mono
). Negrito e regular estão alinhados perfeitamente.
Portanto, a questão está definitivamente na renderização frívola de negação em situações em que negrito não é fornecido. O mecanismo da fonte é o culpado.
UPD: existe um arquivo /etc/fonts/conf.avail/90-synthetic.conf
que, ao ser referenciado, /etc/fonts/conf.d/
ajusta o mecanismo de fonte para executar o emboldening sintético das fontes que não possuem a versão em negrito. Se o link simbólico para esse arquivo for removido do /etc/fonts/conf.d/
, o emboldening desaparecerá. Não é exatamente isso que é desejado, mas pelo menos isso cura o caso de fontes monoespaçadas não serem monoespaçadas (veja abaixo PT Mono
). Ainda é necessário o ajuste fino do emboldening (por arquivo de configuração ou por freetype2
patch.
Respostas:
mbaitoff , estou postando isso como uma adição à sua atualização, não como uma resposta
Se o usuário criar um arquivo chamado
~/.fonts.conf
:então, os aplicativos podem usar fonte monoespaçada em negrito, se disponível, e desativar "negrito sintético" se a fonte usada não tiver o tipo de letra em negrito.
É apenas alternativa, e abordagem ligeiramente diferente com resultado diferente
fonte
/etc/conf.d/50-user.conf
for renomeado para ser executado depois90-synthetic.conf
, você não precisará remover o embolden completamente.99-user.conf
funciona bem. Caso contrário,90-synthetic.conf
habilite-o novamente.