Linux จัดการแบบอักษรอย่างไร


11

เมื่อฉันใช้ Windows (นานมากแล้ว!) และ Mac OS X มักจะมี "ที่เก็บ" แบบอักษรส่วนกลางที่ใช้ร่วมกันและเข้าถึงได้โดยระบบปฏิบัติการและโปรแกรมทั้งหมด (โฟลเดอร์แบบอักษรใน Windows และแบบอักษรสมุดใน Mac OS X)

แบบอักษรมีการจัดการใน Linux อย่างไร มีร้านค้าส่วนกลางสำหรับแบบอักษรที่โปรแกรมทั้งหมด (เชลล์ที่ไม่มี X, ด้วย X, ตัวจัดการหน้าต่าง, ซอฟต์แวร์ GUI อื่น ๆ ) สามารถใช้งานได้หรือไม่? หรือการจัดการแบบอักษรแยกต่างหาก? ฉันจะทำอย่างไรเพื่อจัดการฟอนต์ของฉันใน Linux ได้อย่างมีประสิทธิภาพและง่ายดาย?

คำตอบ:


13

มีสองกลไกสำหรับแบบอักษรใน X land: ฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์

วิธีดั้งเดิมในการเรนเดอร์ฟอนต์มีไว้สำหรับไคลเอ็นต์เพื่อบอกเซิร์ฟเวอร์ว่า "เรนเดอร์fooที่ตำแหน่ง (x, y) ในฟอนต์ F" (ซึ่งข้อกำหนดฟอนต์รวมถึงใบหน้าขนาดการเข้ารหัสและคุณลักษณะอื่น ๆ ) อาจเป็นเซิร์ฟเวอร์ X เองหรือโปรแกรมพิเศษที่เรียกว่าเซิร์ฟเวอร์แบบอักษรเปิดไฟล์แบบอักษรเพื่อสร้างคำอธิบายของแต่ละสัญลักษณ์ แบบอักษรสามารถเป็นบิตแมปหรือแบบอักษรแบบเวกเตอร์ แต่แบบอักษรแบบเวกเตอร์จะถูกแปลงเป็นบิตแมปก่อนที่จะแสดงผล

โปรแกรมที่ทันสมัยส่วนใหญ่ใช้การแสดงผลอักษรฝั่งไคลเอ็นต์มักจะผ่านXFTและfontconfig ต้องการกลไกใหม่เนื่องจากการแสดงผลแบบอักษรฝั่งเซิร์ฟเวอร์ไม่รองรับการลบรอยหยัก

นอก X (เช่นบนคอนโซล VGA) มีแบบอักษร VGA ซึ่งเป็นแบบอักษรบิตแมปที่มีขนาดเฉพาะ แต่เมื่อเทียบกับ X11 ไม่มีใครใช้คอนโซล VGA จึงไม่ต้องใช้ความพยายามมากนัก

ในทางปฏิบัติคุณจะต้องกำหนดค่าแบบอักษรด้วยสองวิธี:

  • สำหรับโปรแกรมเก่าสไตล์: ไดเรกทอรีแบบอักษรที่มีการระบุไว้ผ่านทางFontPathคำสั่งในxorg.confและสามารถจัดการกับxset fpคำสั่งโดยผู้ใช้ที่ใช้ X. mkfontdirหากคุณติดตั้งแบบอักษรใหม่คุณอาจจำเป็นต้องใช้
  • สำหรับโปรแกรมใหม่สไตล์รวมทั้ง Gtk (Gnome, ฯลฯ ) และ Qt (KDE ฯลฯ ) โปรแกรม: อักษรที่อยู่ในไดเรกทอรีที่ระบุโดย<dir>คำสั่งใน/etc/fonts/fonts.conf, ~/.fonts.confและสถานที่อื่น ๆ ไม่กี่ ดูเอกสารประกอบ fontconfigสำหรับข้อมูลเพิ่มเติม fc-cacheหากคุณติดตั้งแบบอักษรใหม่คุณอาจจำเป็นต้องใช้

3

แบบอักษรของคอนโซลและแบบอักษร X เป็นสองสิ่งแยกกันใน linux ใช้คำสั่งsetfontเพื่อเปลี่ยนแบบอักษรของคุณและshowconsolefontเพื่อดูว่ามันดูเหมือน แต่ละ distro มีวิธีการตั้งค่าแบบอักษรคอนโซลเริ่มต้น อ่านsetfontman page สำหรับตำแหน่งของฟอนต์คอนโซล สำหรับระบบ Fedora 14 ของฉันมันเป็น / lib / kbd / consolefonts / ฟอนต์คอนโซลเป็นรูปแบบไฟล์ที่กำหนดฟอนต์คอนโซล EGA / VGA

X แบบอักษรเป็นรูปแบบที่แตกต่างจากแบบอักษรคอนโซล โดยทั่วไปจะมีการจัดการโดยคำจำกัดความในการกำหนดค่า X ของคุณ (ที่มี FontPath ในส่วนไฟล์) หรือผ่านเซิร์ฟเวอร์แบบอักษร (xfs) ซึ่งตั้งอยู่ในส่วนไฟล์ด้วย FontPath นอกจากนี้คุณยังสามารถเพิ่ม FontPaths xset +fp pathโดยการเรียกใช้ ระบบของฉันมีแบบอักษร X ทั้งหมดใน / usr / share / X11 / แบบอักษร


นั่นหมายความว่าโปรแกรม GUI ทั้งหมดที่ทำงานบน X จะใช้แบบอักษร X หรือไม่
hpy

1
@ ปากกาหยวน: ไม่จำเป็น แต่สำหรับกรณีส่วนใหญ่ใช่ โปรแกรม GUI หลายโปรแกรมใช้ไลบรารีระดับสูงกว่า (เช่น GTK หรือ Qt) ที่จัดการแบบอักษรให้คุณ
jsbillings

โปรดทราบว่าเอกสาร (เช่น (La) TeX) ใช้แบบอักษรอีกชุดหนึ่ง
vonbrand
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.