Firefox'ta TTF fontlarının bitişik harflerini (tt, ti, fi, ff vb.) Nasıl düzeltebilirim?


24

Bazı Windows yazı tiplerinde, harf harfleri harflerinin dışa dolanıp iki harfin koyu göründüğü bir ekran sorunu vardır. İşte Firefox'ta Helvetica kullanan bir e-posta ekran görüntüsü:

görüntü tanımını buraya girin

Gördüğünüz gibi, çapraz karakterlerin ( tve f) birbirleriyle ve harfleri birbirine bağlanma şekilleriyle ilgili bir şey gibi görünüyor i.

Çok uzun zamandır bu problemi yaşadım (birden fazla sistemde) ve benzer sorunları ortaya çıkaran ve bunları düzeltmenin bir yolunu bulan biri olup olmadığını merak ettim.

Not: Bunun sadece Firefox'u etkilediğini düşünüyorum. Chrome ve LibreOffice hem iyi.

Yanıtlar:


27

Libre Office dahil tüm uygulamalarla çalışacak başka bir çözüm de aldeby tarafından verildi :

Dosyayı düzenleyin veya oluşturun ~/.fonts.confve bu kodu içine yapıştırın:

<match target="font" >
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>

XML yapısını koruduğunuzdan emin olun.

Oturumu kapatıp tekrar açın ve Calibri (ve muhtemelen başka bazı fontlar) çok daha iyi görünecek (aslında burada verilen diğer cevaplardan daha iyi görünecektir, çünkü çirkin bitmap ikameleri tamamen devre dışı bırakılmıştır).


3
Bu, daha öncekilerden daha iyi bir çözümdür, çünkü küresel bir düzeltmedir ve bitişik harfleri ortadan kaldırmak bir oyundur. Bitişik harfler, metni okumaktan daha zevkli hale getirmek için vardır ve bir yapılandırma sorunu etrafında çalışmak için bunları kapatmak için ideal değildir.
scruss

Bu XML dosyasının içeriğini düzgün bir şekilde biçimlendirmeyi umursamayacak kadar biraz OKB veya anal olarak duyarlı olan herkes (tabii ki Linux'taki insanlar asla böyle şeyleri umursamazlar ;-)):<?xml version="1.0"?><!DOCTYPE fontconfig SYSTEM "fonts.dtd"><fontconfig><match target="font"><edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit></match></fontconfig>
Adam Plocher,

Aldeby bağlantısı şimdi bazı kimlik avı dolandırıcılık sitelerine yol açıyor
charsi 20:18 '

1
@ charsi teşekkürler, Web Arşivine bir link ile değiştirdim.
Calimo

Çıkış yapıp tekrar giriş yapmam bile gerekmedi. Sayfayı yenilemek (Firefox'ta) ve uygulamayı yeniden başlatmak (LibreOffice) yeterliydi.
Marc.2377

9

Bitişik harfleri devre dışı bırakmak (bkz. Calimo'nun fonts.confcevabı ) yanlış yön! Calibri gibi fontlarda fazla takma "kalın" bitişik harfleri kaldırabilir , ancak tipografinin güzelliğini de ortadan kaldırır. Aradaki farkı söyleyene kadar yazı tipini küçültmeye çok benzer.

Bunu Calibri fontunu kaldırarak , " Calibri ile metrik uyumlu " Carlito'yu yükleyerek ve "fontconfig (local.conf) için bir eşleme girişi" ile doldurup font önbelleğimi yenileyerek sistemim için çözdüm:

$ rm ~/.fonts/microsoft/CALIBRI*
$ sudo apt install fonts-crosextra-carlito
$ fc-cache

Daha sonra Carlito’nun Calibri’de bulunduğunu doğrulayabilirsiniz:

$ fc-match Calibri
Carlito-Regular.ttf: "Carlito" "Regular"

(Bu işe yaramazsa, sudo rm /usr/share/fonts/truetype/msttcorefonts/calibri*durum ve tam konum farklı olsa da, gibi bir şeye ihtiyacınız olabilir.)

Microsoft'un Calibri'sini kaldırmadan önce, LibreOffice'de Calibri'yi kullanan ve ekran görüntüsü alan bir test belgesi kaydettim. Bunu yaptıktan sonra LibreOffice'den çıktım, tekrar açtım ve sonra test belgemi yükledim. "Calibri" yazı tipi adı, yerine geçtiğini belirtmek için italikleştirildi. Bu değiştirilmiş versiyonun ekran görüntüsünü aldım ve orijinalin altına yapıştırdım:

Calibri testleri

Yukarıdaki metin, Microsoft'un Calibri'sinin fontconfig ile eşleştirildiği gibi Carlito'nun üzerinde olduğu 13pt Calibri'nin bir çift ekran görüntüsüdür. LibreOffice 5.0.5.1 tarafından gösterildiği gibi, kalın, biçimlendirme, "çift karakter aralığı" etkin değildir.

Carlito, Calibri'ye oldukça yakındır, bitişik harfler düzgün şekilde işler ve genel olarak daha güzel olur.

Aynı işlemleri yapabilirsiniz Caladea için Cambria ile fonts-crosextra-caladeave Google'ın kullanabilirsiniz Croscore fontları Arimo, Tinos ve Cousine için Arial , Times New Roman ve Courier New ile fonts-croscore. Debian'ın Değiştiren Calibri ve Cambria Fonts wiki adresinde daha fazla bilgi alabilirsiniz .

Peki ya Helvetica?

Bu soru , Apple'ın tercih ettiği sans-serif yazı tipi olan Helvetica yazı tipini soruyor . Microsoft , Calibri'ye geçmeden önce Arial'i tercih etti. Varsayılan Linux eşlemesi dağıtıma göre değişir, ancak tipik olarak Nimbus Sans L veya başka bir Liberation Sans , örneğin

$ fc-match Helvetica
n019003l.pfb: "Nimbus Sans L" "Regular"

Bunu çalıştırıp Arial'i elde ederseniz, yukarıda açıklanan bağlanma sorununu yaşamak için oldukça iyi bir neden - Arial harika bir yazı tipi değil.

Helvetica, onu çevreleyen bir kültüre sahiptir ve Helvetica ile tamamen metrik uyumlu bir yazı tipi bulamıyorum. Arial (ve Liberation Sans ve çatalı olan Arimo da dahil olmak üzere Arial ile metrik olarak uyumlu fontlar aynı karakter genişliğine sahiptir (bu, "çoğunlukla" metrik uyumlu oldukları anlamına gelir; metin, Helvetica ile aynı şekilde sarılır). Kurtuluş Sans ve Nimbus Sans benzer estetiğe sahip görünüyor .

Ayrıca arkasında büyük para olan yeni bir yazı tipi olan IBM Plex de var [ 1 ] [ 2 ] . Plex, Helvetica veya diğer yazı tipleriyle uyumlu olmasa da, tüm IBM materyallerinde Helvetica'nın (aynı zamanda yoğunlaştırılmış sansların yanı sıra serif ve monospace yazı tiplerinin de bulunduğu) yerini almak üzere tasarlanmıştır. Font Squirrel, Plex fontlarının örneklerinin güzel bir görüntüsüne sahiptir .

Fontconfig takma adları

Helvetica'yı başka bir fontla manuel olarak takmak için (ve bu nedenle Calibri ve / veya Arial'i kaldırmanız gerekmez, ancak bu durumda bunları manuel olarak takmanız da gerekir), ~/.config/fontconfig/fonts.confdosyanızı düzenleyin (eski sistemler için, bu ~/.fonts.conf. öncekine) bu cevabında not edildiği gibi , <alias>Helvetica için yeni bir bölüm ekler (bu Arimo'yu kullanır. Kurulduğundan emin ol):

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

  <alias>
    <family>Helvetica</family>
    <prefer><family>Arimo</family></prefer>
  </alias>

</fontconfig>

1
Bu, kabul edilenden çok daha iyi bir cevap. Arch wiki'de
Xananax 27.04.24

ilk satır şimdi sudo rm olmalı -R / usr / share / fonts / truetype / calibri
dez93_2000

Birinin fc karşılaşması Helvetica, Linux'ta AIDS'e yol açarsa, Kurtuluş Sans'ı nasıl zorlayacağınızı biliyor musunuz? Sadece Arial silmek? Thanks
dez93_2000

@ dez93_2000 - bu muhtemelen /usr/share/fonts/truetype/msttcorefonts/callibri*. Yoruma sığmayacağından yazı tipi diğer adını adresleme yanıtımı güncelleyeceğim.
Adam Katz

Kabul edilen cevabın verilen sonuçlarını dikkatle inceledim (Calibri fontunu kullanarak) ve bilinen iyi bir işleyiciyle karşılaştırıldığında hiçbir fark bulamadım. Eksik güzellik yoktu.
Marc.2377

6

lgarzo'nun cevabı sadece metin üzerinde "noligs" sınıfı olan web sitelerinde çalışacaktır (çoğu web sitesi yoktur).

Tüm web sitelerinde ligatürleri global olarak devre dışı bırakmak için, aşağıdaki satırı kendi sitenize ekleyin userChrome.css:

* { -moz-font-feature-settings: "liga" 0; }

Bunu yapmanın en kolay yolu, Şık uzantıyla yeni bir stil oluşturmaktır .


Şık öneri için +1. AFAIR Mozilla belgelerini alıntı yaptım (OP'nin dilediği gibi dönüştürmesini beklediğimden beri :)) Niyetim bu kuralı sayfanın CSS'sine dahil etmekti. (Yine de kaynağı kontrol edemiyorum. ATM'den aşağı gibi görünüyor.)
lgarzo

1
Bu sözdizimi yalnızca stackoverflow.com/a/15161336/4464570’e göre Firefox 14’e kadar geçerliydi ve artık tarayıcı tarafından tanınmıyor. Yayınınızı, mevcut sözdizimiyle güncellemek için düzenledim.
Byte Commander

4

Görüntüye bakarken aklıma birkaç açıklama geldi:

  • Metnin geri kalanı değil iken, bitişik harfler kenar yumuşatma gibi görünüyor . Bu nedenle normal metinden daha şişman görünüyor (inkar edemem ama aynı zamanda koyu görünüyor).
  • AFAIK Helvetica fontu standart olmayan bir fonttur , yani varsayılan Windows kurulumlarıyla gelmez. Yüklediniz mi, yoksa farklı bir yazı tipi mi?

Bence problem, harfleri / kerning'i doğru bir şekilde desteklemeyen yazı tipine dayanıyor.

FF'deki bitişik harfleri aşağıdaki CSS kuralını kullanarak devre dışı bırakabilirsiniz:

/* disable common ligatures, usually on by default */
.noligs { -moz-font-feature-settings: "liga" 0; }

Kaynak: CSS Referansı: Mozilla Uzantıları


Bu sözdizimi yalnızca stackoverflow.com/a/15161336/4464570’e göre Firefox 14’e kadar geçerliydi ve artık tarayıcı tarafından tanınmıyor. Yayınınızı, mevcut sözdizimiyle güncellemek için düzenledim.
Byte Commander

1

Calimo'nun cevabına ek olarak, Archlinux kullanıcıları yardım bulabilirler https://wiki.archlinux.org/index.php/font_configuration - Bitmap fontlarını devre dışı bırak

Yerel bir config dosyası yaratılmasını önerdi ~ / .config / fontconfig / conf.d / 20-no-embedded.conf, ancak sistem genelinde bir seçenek buldum

sudo touch /etc/fonts/conf.d/20-no-embedded.conf
sudo chmod 777 /etc/fonts/conf.d/20-no-embedded.conf
nano 777 /etc/fonts/conf.d/20-no-embedded.conf

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <match target="font">
    <edit name="embeddedbitmap" mode="assign">
      <bool>false</bool>
    </edit>
  </match>
</fontconfig>

Sonra sadece uygulamayı yeniden başlatın (benim durumumda thunderbird)


"<Match target =" font ">" satırının hemen altına eklerseniz: <test name = "family"> <string> Calibri </string> </test> Veya font adı ne olursa olsun (Helvetica) sadece o belirli font için font ayarlarını düzenleyin.
zeehio,

İzni 644 olmalı, 777 değil, çünkü oraya bir dosya (bir sembolik bağlantı değil) koyuyorsunuz.
Marc.2377
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.