บันทึกเทคนิคของ zhaoJian

วิธีแก้ไขปัญหาเครื่องหมายวรรคตอนภาษาจีน (?!) แสดงผลผิดปกติใน Ghostty เมื่อใช้ฟอนต์ Fira Code

เทคโนโลยี ~1637 คำ · อ่าน 5 นาที - ครั้งที่อ่าน

สาเหตุของปัญหา

Fira Code เป็นฟอนต์สำหรับเขียนโปรแกรมโดยเฉพาะ ไม่มี glyph ภาษาจีน เมื่อเทอร์มินัลต้องแสดงเครื่องหมายวรรคตอนแบบ full-width ของภาษาจีน (?!() อยู่ใน U+FF00–FFEF, อยู่ใน U+3000–303F) Ghostty จะต้อง fallback ไปใช้ฟอนต์ CJK ของระบบ บน macOS ค่าเริ่มต้น fallback คือ PingFang แต่ฟอนต์สำรองนี้ไม่ได้ปรับขนาดตามฟอนต์หลัก อาจทำให้เกิดการเยื้อง baseline และความหนาของเส้นไม่สม่ำเสมอในบรรทัดเดียวกัน นี่คือพฤติกรรม font fallback ที่ทราบกันดีใน Ghostty บน macOS ทำให้เครื่องหมายวรรคตอนดูใหญ่และแปลกตา

Ghostty แสดงเครื่องหมายวรรคตอนภาษาจีนผิดปกติเมื่อใช้ฟอนต์ Fira Code

วิธีแก้ไข

เปิดไฟล์การตั้งค่า Ghostty ผ่าน Ghostty > Settings... หรือทางลัด ⌘ + , แล้วเพิ่มบรรทัด font-family หลังจาก Fira Code เพื่อกำหนด PingFang เป็น fallback ฟอนต์หลัก

font-family = Fira Code
font-family = PingFang SC

ไฟล์การตั้งค่า Ghostty ที่กำหนด Fira Code และ PingFang SC เป็น font-family สำรอง

font-family สามารถเขียนได้หลายบรรทัด บรรทัดแรกคือฟอนต์หลัก บรรทัดถัดไปทำหน้าที่เป็นสำรอง glyph ใดที่ Fira Code ไม่มี (เครื่องหมายวรรคตอนจีน ตัวอักษรจีน อักขระ full-width) จะถูกส่งต่อให้ PingFang จัดการ ทำให้การแสดงผลสม่ำเสมอ

โหลดการตั้งค่าใหม่ผ่าน Ghostty > Reload Configuration หรือทางลัด ⇧ + ⌘ + ,

เทอร์มินัล Ghostty หลังแก้ไข เครื่องหมายวรรคตอนภาษาจีนแสดงผลถูกต้อง

ไฟล์การตั้งค่าโดยทั่วไปอยู่ที่ ~/.config/ghostty/config (บน macOS อาจอยู่ที่ ~/Library/Application Support/com.mitchellh.ghostty/config ด้วย)

แชร์:

ความคิดเห็น