การลบรอยหยักของตัวอักษรไม่ดีใน Ubuntu


36

ฉันเปลี่ยนจาก Fedora 8 เป็น Ubuntu 9.04 และฉันไม่สามารถรับมันได้เพื่อให้ตัวอักษรต่อต้านนามแฝงทำงานได้ดี ดูเหมือนว่า fontconfig ของ Ubuntu พยายามเก็บตัวอักษรไว้ในความกว้างพิกเซลที่สมบูรณ์ ทำให้ข้อความอ่านยากขึ้นเมื่อ 1 พิกเซลบางเกินไปและ 2 พิกเซลหนาเกินไป

ตรวจสอบภาพด้านล่าง ใน Fedora เมื่อเปิดใช้งานการป้องกันนามแฝงของ fontconfig ฟอนต์จะมีความหนาตามสัดส่วนของขนาดตัวอักษร ด้านล่างความหนาแตกต่างกันสำหรับขนาด 8, 9 และ 10pt ใน Ubuntu ตรงกันข้ามแม้จะเปิดใช้งาน anti-aliasing ขนาด 8, 9 และ 10pt ทั้งหมดมีความหนา 1 พิกเซล ทำให้การอ่านข้อความจำนวนมากยากลำบาก

การเปรียบเทียบการลบรอยหยักของ Fedora 8 และ Ubuntu 9.04

ฉันใช้โฮมไดเร็กตอรี่เดียวกันและฉันได้ตรวจสอบแล้วว่าทรัพยากร X นั้นเหมือนกันในทั้งสองระบบ

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

การตั้งค่า GNOME:

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

ดังนั้นคำถามคือ: ฉันควรเปลี่ยนอะไรในกล่องใหม่ (Ubuntu) เพื่อรับการต่อต้านนามแฝงเช่นในกล่องเก่า (Fedora)


8
ฉันแค่คิดว่าตัวอักษร Ubuntu นั้นคมชัดกว่าและอ่านได้ง่ายกว่าแบบอักษร Fedora หรือเปล่า? แบบอักษรของ Fedora นั้นดูเบลอมากเกินไป IMHO
Yaba

ฉันชอบอันที่อยู่ทางขวามากกว่า ด้านซ้ายเป็นทางที่เบลอเกินไป เพื่อแต่ละตัวของเขาเองแม้ว่า ;)
Sasha Chedygov

1
@Yaba, @musicfreak: หากคุณมีจอภาพ CRT หรือมีความละเอียดต่ำภาพด้านซ้ายอาจดูพร่ามัวเกินไป มิฉะนั้นจะสะท้อนขนาดของแบบอักษรได้ดีขึ้น ดูว่าความหนาของเส้นในภาพที่ถูกต้องนั้นเพิ่มขึ้นจาก 1px เป็น 3px อย่างไรเมื่อคุณเพิ่มขนาดตัวอักษร สิ่งนี้ก็ไม่ดีเช่นกันเมื่อมันถูกฉาย ข้อความไม่สามารถอ่านได้มากขึ้นเมื่อคุณเพิ่มขนาดตัวอักษรจนกระทั่งใหญ่เกินไป (เมื่อข้ามไปที่ 3px)
Juliano

1
นอกจากนี้ในตัวอย่าง Ubuntu ดูว่ามีพิกเซลหายไปใน "k" ใน "ด่วน" ในบรรทัดข้อความที่สามทำให้ดูเหมือนว่ามันเป็นสองสัญลักษณ์, "|" และ "<"
Juliano

2
@Juliano จากนั้นฉันก็มีแล็ปท็อปเครื่องแรกที่มีจอ CRT ในตัว :-)
Yaba

คำตอบ:


36

มีเคล็ดลับเก่า ๆ ที่จะทำให้แบบอักษรเรียบขึ้นบน Ubuntu (และค่อนข้างทุก distro ที่ใช้ Gnome):

เปิด. fonts.conf ใต้โฮมไดเร็กตอรี่ของคุณ ( ~/.fonts.conf) แล้ววางลงใน:

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

ก่อน:

ข้อความแสดงแทน

หลังจาก:

ข้อความแสดงแทน


สิ่งที่ฉันกำลังมองหา! ฉันเล่นไฟล์นี้มากด้วย 'antialias', 'hinting', 'hintstyle', 'rgba' และ 'lcdfilter' ตัวเลือกและไม่มีอะไรช่วยเลย 'autohint' ทำอย่างนั้น! เพียงแค่ทราบ: คุณต้องมี rgba = none เพื่อให้การทำงานอัตโนมัติอย่างถูกต้อง ดูเหมือนว่า autohint จะเปิดใช้งานโดยค่าเริ่มต้นใน Fedora แต่ไม่ใช่ใน Ubuntu
Juliano

2
+1 เสียสติว่าสิ่งนี้ไม่ได้ปรากฏในการตั้งค่าแบบอักษรในบางวิธี
Kent Boogaart

3
การสะท้อนความเศร้าในปรัชญา GNOME ที่คุณต้องถามคำถามนี้ด้วย
sml

@Juliano การบอกใบ้อัตโนมัติทำงานอย่างถูกต้องกับการเรนเดอร์พิกเซลย่อยดังนั้นจึงไม่จำเป็นต้องใช้ rgba = none
Adam Byrtek

@ Adam: คุณกำลังพูดถึงตอนนี้หรือตอนที่คำถามนี้ถูกถามย้อนกลับไปในปี 2009 (Ubuntu 9.04)?
Juliano

5

ดังที่จอห์นบอกไว้~/.fonts.confไฟล์นี้มีประโยชน์ในการปรับแต่งค่าแบบอักษรของคุณ

ในที่สุดฉันก็พบว่ามันทำงานอย่างไรหลังจากอ่านบทความนี้:

http://www.kilobitspersecond.com/2009/04/17/ubuntu-font-hinting-you-a-cautionary-tale/


0

Ubuntu รุ่นล่าสุดอนุญาตให้เปลี่ยนการตั้งค่าเหล่านี้ผ่านการตั้งค่า> ลักษณะ> แบบอักษร> รายละเอียด

ฉันพบว่าคำใบ้ขนาดกลางเป็นที่ชื่นชอบมากที่สุดบนหน้าจอ LCD ของฉัน


ใช่ตัวเลือกคำใบ้เป็นที่รู้จักกันแล้ว ตัวเลือก "autohint" ดังกล่าวโดย John T เป็นตัวเลือกที่ขาดหายไปในกล่องโต้ตอบนั้นรวมถึง Ubuntu รุ่นล่าสุด
Juliano
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.