Comment éviter que la version en gras «automatique» d'une police soit plus large que la police régulière ayant la même taille de pt?

10

J'ai une police à espacement fixe ( PT Mono) que je préfère utiliser dans la programmation des IDE. La police a seulement Regular, tous les autres Boldet Italicest dérivée par inclinaison et "gras" du Regular. Le problème est que les caractères "en gras" sont plus larges que les caractères normaux, donc les chaînes de code source dans la fenêtre IDE sont désormais composées de caractères non espacés.

Comment contrôler la "boldification" de la police pour qu'elle ne devienne pas plus large que régulière?

Le problème est illustré sur la capture d'écran ci-dessous ( PT Mono, pas de gras dédié). Voyez comment les mots «caractère non signé» et «taille de» sortent de leurs positions appropriées.

la mise en gras automatique change la largeur

Voici un autre exemple, Droid Sans Mono(pas de gras dédié). entrez la description de l'image ici

Et voici un exemple où la police a une version en gras dédiée ( Liberation Mono). Gras et régulier sont parfaitement alignés. entrez la description de l'image ici

Donc, le problème est définitivement dans le rendu frivole de la boldification dans les situations où le gras n'est pas fourni. Le moteur des polices est à blâmer.

UPD: Il existe un fichier /etc/fonts/conf.avail/90-synthetic.confqui, s'il est référencé à partir de /etc/fonts/conf.d/morceaux, le moteur de polices pour effectuer un enhardissement synthétique des polices qui n'ont pas la version en gras. Si le lien symbolique vers ce fichier est supprimé de /etc/fonts/conf.d/, l'enhardissement disparaît. Ce n'est pas exactement ce que l'on souhaite, mais au moins cela résout le cas des polices monospaces n'étant pas monospace (voir ci-dessous PT Mono). Le réglage fin de l'enhardissement est toujours souhaité (soit par fichier de configuration, soit par freetype2patch.

entrez la description de l'image ici

mbaitoff
la source
Vous ne pouvez pas contrôler cela. La conception des polices serait ruinée. Même si vous réduisez précisément la taille (ce que vous ne pouvez pas) pour correspondre à l'espacement normal des polices, la police en gras semblerait plus petite. Si vous voulez une police espacée uniformément, n'utilisez pas de police en gras ... ou essayez le terminal
zetah
Ce n'est pas vrai. Les polices qui ont à la fois des caractères normaux et gras fournis dans des fichiers séparés ont la même largeur de caractère en régulier et en gras. Par exemple, LetterGothic.
mbaitoff
Je me suis trompé. J'ai remarqué la même chose en utilisant SciTE (et peut-être que vous utilisez également l'éditeur basé sur Scintilla - peut-être Geany?) Alors que ma police est Droid Sans Mono, mais je l'ai pris comme acquis, et je ne savais pas que la police pondérée peut avoir un espacement différent même pour les polices à espacement fixe, tandis que les polices en gras utilisent le même espacement que les polices standard. De plus, il semble que les polices proportionnelles aient également cette "fonctionnalité" que vous avez remarquée, mais pas toutes. Désolé pour ma première réponse audacieuse, j'aurais dû vérifier en premier
zetah
@zetah: J'ai regardé à travers différents fichiers de polices et on dirait que le changement de largeur ne se produit qu'en l'absence de version en gras dédiée de la police. Je vais mettre à jour la question avec plus de captures d'écran.
mbaitoff
1
mentionné également ici: bugs.launchpad.net/ubuntu/+source/ttf-droid/+bug/565393
zetah

Réponses:

8

mbaitoff , je poste ceci comme un ajout à votre mise à jour, pas comme une réponse

Si l'utilisateur crée un fichier nommé ~/.fonts.conf:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <match target="font">
        <test name="spacing" compare="eq">
            <const>mono</const>
        </test>
        <edit name="embolden" mode="assign">
            <bool>false</bool>
        </edit>
    </match>
</fontconfig>

ensuite, les applications peuvent utiliser une police à espacement gras si disponible, et désactiver la "gras artificiel" si la police utilisée n'a pas de police en gras.

C'est juste une approche alternative et légèrement différente avec un résultat différent

zetah
la source
Si le lien symbolique /etc/conf.d/50-user.confest renommé pour être exécuté par la suite 90-synthetic.conf, vous n'avez pas à supprimer complètement embolden. 99-user.conffonctionne bien. Sinon, 90-synthetic.confréactivez-le.
musiKk