フォントの「自動」太字バージョンが同じptサイズで通常より太くなるのを防ぐ方法は?


10

PT MonoIDEのプログラミングで使用したい等幅フォント()があります。フォントが唯一持っているRegular、他のすべてBoldItalic斜めとの「boldification」によって導出されていますRegular。問題は、「太字」の文字が通常の文字よりも幅が広いため、IDEウィンドウのソースコード文字列が非等幅文字で構成されていることです。

フォントの「太字」を制御して、通常より太くならないようにするにはどうすればよいですか?

問題は下のスクリーンショットに示されています(PT Mono専用の太字はありません)。「unsigned char」と「sizeof」の単語が適切な位置からどのように移動しているかを確認してください。

自動太字は幅を変更します

ここに別の例がありますDroid Sans Mono(専用の太字はありません)。 ここに画像の説明を入力してください

そして、ここでは、フォントが専用の太字バージョン(Liberation Mono)を持つ場合の例を示します。ボールドとレギュラーが完璧に揃っています。 ここに画像の説明を入力してください

したがって、問題は間違いなく、ボールドが提供されていない状況での軽薄なボールド化レンダリングにあります。フォントエンジンのせいです。

UPD:/etc/fonts/conf.avail/90-synthetic.confから参照される場合/etc/fonts/conf.d/、太字バージョンを持たないフォントの合成太字化を実行するようにフォントエンジンを調整するファイルがあります。このファイルへのシンボリックリンクがから削除される/etc/fonts/conf.d/と、太字は消えます。これは正確に望まれていることではありませんが、少なくともこれは、モノスペースフォントがモノスペースではない場合を解決します(以下を参照PT Mono)。太字の微調整は依然として必要です(構成ファイルまたはfreetype2パッチのいずれかによる)。

ここに画像の説明を入力してください


あなたはそれを制御することはできません。フォントデザインが台無しになるでしょう。通常のフォントの間隔に合わせるためにサイズを正確に小さくすることはできませんが(できません)、太字のフォントは小さく見えます。等間隔のフォントが必要な場合は、太字フォントを使用しないでください...または、ターミナルを試してください
zetah

それは真実ではない。別のファイルで提供されている通常の書体と太字の両方の書体を持つフォントは、標準と太字の文字幅が同じです。たとえば、LetterGothic。
mbaitoff

私は修正された立場です。私のフォントはDroid Sans Monoですが、SciTEを使用して同じように(おそらくScintillaベースのエディターを使用している可能性があります-おそらくGeany?)、私はそれを当然のことと考えていました。等幅フォントの場合でも、太字フォントは通常と同じ間隔を使用します。さらに、プロポーショナルフォントにもあなたが気づいたこの「機能」があるようです。私の大胆な最初の返答でごめんなさい、私は最初にチェックするべき
でした

@zetah:さまざまなフォントファイルを調べたところ、フォントの専用の太字バージョンがない場合にのみ幅の変更が発生するように見えました。より多くのスクリーンショットで質問を更新します。
mbaitoff

回答:


8

mbaitoff、私はこれを回答としてではなく、更新への追加として投稿しています

ユーザーがという名前のファイルを作成した場合~/.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>

次に、アプリケーションは太字の等幅フォントを使用できる場合はそれを使用し、使用されているフォントに太字の書体がない場合は「合成太字」を無効にします。

それは単なる代替手段であり、わずかに異なるアプローチで異なる結果をもたらします


/etc/conf.d/50-user.conf90-synthetic.confにシンボリックリンクが実行されるように名前が変更されている場合、エンボルデンを完全に削除する必要はありません。99-user.conf正常に動作します。それ以外の場合は、90-synthetic.conf再度有効にします。
musiKk 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.