Huruf buruk anti-aliasing di Ubuntu

36

Saya beralih dari Fedora 8 ke Ubuntu 9.04, dan sepertinya saya tidak bisa mendapatkannya untuk mendapatkan font yang baik anti-aliasing untuk bekerja. Tampaknya fontconfig Ubuntu mencoba menjaga karakter dalam lebar piksel integral. Ini membuat teks lebih sulit dibaca, ketika 1 piksel terlalu tipis dan 2 piksel terlalu tebal.

Periksa gambar di bawah ini. Di Fedora, ketika fontconfig anti-aliasing diaktifkan, font memiliki ketebalan yang proporsional dengan ukuran font. Di bawah, ketebalannya berbeda untuk ukuran 8, 9 dan 10pt. Di Ubuntu, di sisi lain, bahkan ketika anti-aliasing diaktifkan, semua ukuran 8, 9 dan 10pt memiliki ketebalan 1 piksel. Ini membuat jumlah teks sulit dibaca.

Membandingkan font Fedora 8 dan Ubuntu 9.04 anti-aliasing.

Saya menggunakan direktori home yang sama, dan saya sudah memeriksa sumber X yang sama di kedua sistem:

~% xrdb -query | grep Xft
Xft.antialias:  1
Xft.dpi:        96
Xft.hinting:    1
Xft.hintstyle:  hintfull
Xft.rgba:       none

Pengaturan GNOME:

~% gconftool-2 -a /desktop/gnome/font_rendering
 antialiasing = grayscale
 hinting = full
 dpi = 96
 rgba_order = rgb

Jadi, pertanyaannya adalah: Apa yang harus saya ubah di kotak baru (Ubuntu) untuk mendapatkan anti-aliasing seperti di kotak lama (Fedora)?

Juliano
sumber
8
Apakah hanya saya yang berpikir bahwa font Ubuntu jauh lebih tajam dan mudah dibaca daripada font Fedora? Font Fedora terlihat IMHO terlalu buram.
Yaba
Saya sebenarnya lebih suka yang di kanan. Yang di sebelah kiri terlalu buram. Tapi untuk masing-masing miliknya sendiri. ;)
Sasha Chedygov
1
@Yaba, @musicfreak: Jika Anda memiliki monitor CRT atau memiliki resolusi rendah, yang di sebelah kiri mungkin terlihat terlalu buram. Kalau tidak, mereka lebih baik mencerminkan ukuran font. Lihat bagaimana ketebalan garis di gambar kanan tiba-tiba melonjak dari 1px ke 3px saat Anda meningkatkan ukuran font. Ini juga buruk ketika sedang diproyeksikan. Teks tidak menjadi lebih mudah dibaca saat Anda meningkatkan ukuran font hingga terlalu besar (ketika melompat ke 3px).
Juliano
1
Juga, dalam sampel Ubuntu, lihat bagaimana ada piksel yang hilang di "k" di "cepat" di baris teks ketiga, membuatnya terlihat seperti dua mesin terbang, sebuah "|" dan "<".
Juliano
2
@Juliano Lalu saya memiliki Laptop pertama yang tersedia dengan monitor CRT bawaan :-)
Yaba

Jawaban:

36

Ada trik lama untuk membuat font lebih lancar di Ubuntu (dan hampir semua distro menjalankan Gnome):

Buka .fonts.conf di bawah direktori home Anda ( ~/.fonts.conf) dan tempel ini di:

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

Sebelum:

teks alternatif

Setelah:

teks alternatif

John T
sumber
Persis apa yang saya cari! Saya banyak bermain dengan file ini, dengan opsi 'antialias', 'hinting', 'hintstyle', 'rgba' dan 'lcdfilter', dan tidak ada yang membantu. 'autohint' berhasil! Hanya sebuah catatan: Anda harus memiliki rgba = tidak ada agar autohint berfungsi dengan benar. Sepertinya autohint diaktifkan secara default di Fedora, tetapi tidak di Ubuntu.
Juliano
2
+1. Gila bahwa ini tidak muncul dalam preferensi font dalam beberapa cara.
Kent Boogaart
3
Refleksi yang menyedihkan tentang filosofi GNOME bahwa Anda bahkan harus mengajukan pertanyaan ini.
sml
@Juliano Auto-hinting berfungsi dengan benar dengan rendering sub-pixel, jadi tidak perlu untuk rgba = tidak ada.
Adam Byrtek
@ Adam: Apakah Anda berbicara tentang sekarang atau tentang kapan pertanyaan ini diajukan, kembali pada tahun 2009 (Ubuntu 9.04)?
Juliano
0

Versi terbaru dari Ubuntu memungkinkan untuk mengubah pengaturan ini melalui Preferensi> Tampilan> Font> Detail

Saya menemukan Medium mengisyaratkan menjadi yang paling menyenangkan di layar LCD saya.

JannieT
sumber
Ya, opsi petunjuk sudah diketahui. Opsi "autohint", seperti yang disebutkan oleh John T, adalah opsi yang tidak ada dalam dialog itu, termasuk dalam versi terbaru Ubuntu.
Juliano