1 คะแนน โดย GN⁺ 2023-11-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ซูเปอร์แฟมิลีฟอนต์นวัตกรรมใหม่สำหรับโค้ด

  • Monaspace คือระบบตัวพิมพ์แบบใหม่ที่ยกระดับเทคโนโลยีการแสดงโค้ดบนหน้าจอ
  • พร้อมกับความก้าวหน้าของเทคโนโลยีคอมพิวติ้ง เทคโนโลยีการแสดงและแก้ไขโค้ดก็พัฒนาตามไปด้วย
  • Monaspace มอบชุดทางเลือกที่สื่อความหมายได้มากกว่าสีและตัวหนา

สนามเด็กเล่นของฟอนต์

  • ฟอนต์ Monaspace ถูกออกแบบมาให้ผสมฟอนต์ที่แตกต่างกันได้ เพื่อเพิ่มความหมายให้กับโค้ด
  • การจับคู่ฟอนต์ที่หลากหลายช่วยเพิ่มโครงสร้างและลำดับชั้นให้กับโค้ดได้มากขึ้น

คุณสมบัติ: Texture Healing

  • ตัวพิมพ์แบบ monospaced มีปัญหาจาก texture ที่ไม่สม่ำเสมอ
  • Texture Healing เป็นเทคโนโลยีใหม่ที่แก้ปัญหานี้ โดยทำให้ความหนาแน่นของตัวพิมพ์แบบ monospaced สม่ำเสมอขึ้น
  • Texture Healing ถูกทำขึ้นโดยใช้ฟีเจอร์ "contextual alternates" ของ OpenType

สไตล์

  • Monaspace มีแกนแปรผันอยู่ 3 แกน ได้แก่ น้ำหนัก ความกว้าง และความเอียง
  • แต่ละแกนมีช่วงค่าที่หลากหลาย และกำหนดน้ำหนักกับสไตล์แบบตายตัวที่มีชื่อเรียกไว้

ฟีเจอร์ code ligatures

  • Monaspace มี code ligatures สำหรับหลายภาษา และสามารถเปิดหรือปิดได้ผ่าน stylistic sets
  • ใน Visual Studio Code สามารถเปิดใช้ stylistic sets ที่ต้องการได้ผ่านการตั้งค่า

ความเห็นจาก GN⁺

ประเด็นสำคัญที่สุดของบทความนี้คือ Monaspace มอบระบบตัวพิมพ์รูปแบบใหม่สำหรับการแสดงโค้ด และมีศักยภาพที่จะมอบประสบการณ์การเขียนโค้ดที่ดีกว่าให้กับนักพัฒนา ฟีเจอร์นวัตกรรมอย่าง Texture Healing ช่วยเพิ่มความอ่านง่ายของโค้ด และแกนฟอนต์แบบแปรผันยังเปิดทางให้ปรับแต่งสไตล์ได้ จึงเป็นหัวข้อที่น่าสนใจมากสำหรับนักพัฒนา

1 ความคิดเห็น

 
GN⁺ 2023-11-10
ความคิดเห็นจาก Hacker News
  • ฟีเจอร์ "Texture Healing" เป็นวิธีที่ฉลาดมากในการใช้ความสามารถของ OpenType เพื่อปรับปรุงการจับคู่ตัวอักษรแบบโมโนสเปซที่มีปัญหาโดยไม่ทำให้กริดเสีย

    • แทนที่จะใช้วิธีง่าย ๆ อย่างการสร้างลิเกเจอร์สำหรับคู่ตัวอักษรที่ยาก (เช่น mi, lm เป็นต้น) กลับเลือกใช้อักขระทดแทนที่เติมความกว้างคงที่แตกต่างกันตามตัวอักษรรอบข้าง
  • หลังจากได้เห็น "Texture Healing" ก็รู้สึกอยากลองใช้ฟอนต์โมโนสเปซนี้ด้วยตัวเอง

    • ชอบไอเดียการใช้ฟอนต์หลายสไตล์ แต่ในฐานะคนที่ใช้เทอร์มินัลเป็นหลัก ก็ไม่รู้ว่าเทอร์มินัลไหนรองรับสิ่งนี้ หรือจำเป็นต้องให้ตัวแก้ไขข้อความแบบ CLI รองรับด้วยหรือไม่
  • อยากรู้ว่าคนอื่นคิดเห็นอย่างไรกับตัวอย่าง "Mix & Match"

    • Radon (ฟอนต์ลายมือ) เป็นตัวเอียงโดยพื้นฐานอยู่แล้ว จึงเข้ากับฟอนต์อื่นได้ดี แต่ฟอนต์ที่เหลือมี metrics และลักษณะอื่น ๆ เหมือนกันมาก จนแยกตัวอย่าง "authoritative docstrings" กับ "Copilot voice" ได้ยาก
  • แม้จะมีลิเกเจอร์จำนวนมาก แต่ก็ยังรู้สึกว่ายังไม่เพียงพอ

    • ชอบการจัดแนวความสูงของ * ใน *ptr ของ Fira Code, การจัด : ให้อยู่กึ่งกลางใน X:Y และการปรับความสูงของ x ใน 0xFF แม้จะชอบรูปลักษณ์ของชุด Krypton แต่ก็น่าเสียดายที่ crossbar ของตัวพิมพ์เล็ก t อยู่ต่ำกว่าความสูงของตัวพิมพ์เล็ก c มากเกินไป
  • สัญลักษณ์ Rd ของฟอนต์ Radon ถูกแสดงผิดบนหน้าเว็บ ทำให้สับสน ต้องเช็กว่าจริง ๆ แล้วมีธาตุที่ขึ้นต้นด้วย Rd หรือไม่

  • สงสัยว่าทำไมถึงไม่ค่อยเห็นฟอนต์แคบแบบ PragmataPro มากกว่านี้

    • ใช้ PragmataPro มาเกือบ 10 ปีแล้ว แต่ก็อยากเห็นตัวเลือกมากกว่านี้ Berkeley Graphics เคยสัญญามาเกือบ 1 ปีแล้วว่าจะทำ Berkeley Mono เวอร์ชันแคบ แต่ก็ยังไม่มีอะไรเกิดขึ้น
  • ฟอนต์ Monaspace ไม่ได้ตั้งค่า monospace flag เลยต้องโหลดฟอนต์ใน GTK2 gvim

    • ดูเหมือนว่าด้วย flag นั้นลิเกเจอร์จะไม่ถูกเปิดใช้งาน แต่ใน st ที่แพตช์แล้วกลับมองเห็นทั้งลิเกเจอร์และ text healing ได้
  • รู้สึกงงที่เลข 0 แบบมีจุดกลายเป็นมาตรฐานของฟอนต์ลักษณะนี้ ทั้งที่มันสับสนกับเลข 8 ได้ง่าย และชอบเลข 0 แบบมีขีดทแยงมากกว่า

  • ปกติใช้ Jetbrains Mono เป็นหลัก แต่ชอบฟีเจอร์ที่ใช้สไตล์ต่างกันตามฟอนต์และฟีเจอร์ texture healing มาก จนอาจเปลี่ยนมาใช้ฟอนต์นี้

  • อย่างน้อยใน VS Code ฟีเจอร์ "textual healing" ต้องใช้งานร่วมกับ programming ligatures ไม่มีวิธีเปิด texture healing โดยไม่ใช้ลิเกเจอร์