1 điểm bởi GN⁺ 2023-11-10 | 1 bình luận | Chia sẻ qua WhatsApp

Siêu họ phông chữ đột phá dành cho code

  • Monaspace là một hệ thống kiểu chữ mới, đánh dấu bước tiến công nghệ trong việc hiển thị mã trên màn hình.
  • Cùng với sự phát triển của công nghệ điện toán, kỹ thuật hiển thị và chỉnh sửa mã cũng đã phát triển theo.
  • Monaspace mang đến một bảng biểu đạt phong phú hơn, vượt ra ngoài màu sắc và kiểu chữ in đậm.

Sân chơi phông chữ

  • Phông chữ Monaspace được thiết kế để có thể trộn nhiều phông khác nhau, giúp bổ sung thêm ý nghĩa cho mã.
  • Thông qua nhiều cách kết hợp phông chữ, có thể tạo thêm cấu trúc và thứ bậc cho mã.

Tính năng: chữa lành kết cấu

  • Kiểu chữ monospaced gặp vấn đề do kết cấu không đồng đều.
  • Chữa lành kết cấu là một kỹ thuật mới giải quyết vấn đề này, làm cho mật độ của kiểu chữ monospace trở nên đồng nhất.
  • Chữa lành kết cấu được triển khai bằng tính năng "contextual alternates" của OpenType.

Phong cách

  • Monaspace có ba trục biến thiên: độ đậm, độ rộng và độ nghiêng.
  • Mỗi trục có nhiều phạm vi khác nhau và xác định các mức độ đậm cùng phong cách được đặt tên cố định.

Tính năng code ligature

  • Monaspace bao gồm code ligature cho nhiều ngôn ngữ, và có thể bật hoặc tắt chúng thông qua các bộ kiểu dáng.
  • Trong Visual Studio Code, có thể kích hoạt bộ kiểu dáng mong muốn thông qua phần cài đặt.

Ý kiến của GN⁺

Điểm quan trọng nhất của bài viết này là Monaspace cung cấp một hệ thống kiểu chữ mới cho việc hiển thị mã, và điều này có tiềm năng mang lại trải nghiệm lập trình tốt hơn cho các nhà phát triển. Những tính năng đổi mới như chữa lành kết cấu giúp cải thiện khả năng đọc mã, đồng thời các trục phông chữ biến thiên cho phép áp dụng phong cách tùy chỉnh, khiến đây trở thành một chủ đề rất đáng quan tâm đối với giới phát triển.

1 bình luận

 
GN⁺ 2023-11-10
Ý kiến trên Hacker News
  • Tính năng "Texture Healing" là một cách rất thông minh để tận dụng các tính năng OpenType nhằm cải thiện những tổ hợp ký tự monospace có vấn đề mà không phá vỡ lưới.

    • Thay vì dùng cách đơn giản là tạo ligature cho các cặp ký tự khó (ví dụ: mi, lm, v.v.), nó sử dụng phương pháp chọn các ký tự thay thế để lấp đầy độ rộng cố định theo cách khác nhau tùy vào các ký tự xung quanh.
  • Sau khi thấy "Texture Healing", tôi muốn thử trực tiếp font monospace này.

    • Tôi thích ý tưởng dùng font với nhiều phong cách khác nhau, nhưng với tư cách là người chủ yếu dùng terminal, tôi không biết terminal nào hỗ trợ việc này, hay liệu có cần sự hỗ trợ từ trình soạn thảo văn bản CLI hay không.
  • Tôi tò mò mọi người nghĩ gì về các ví dụ "Mix & Match".

    • Radon (font chữ viết tay) về cơ bản là italic nên kết hợp khá ổn với các font khác. Tuy nhiên, các font còn lại khó phân biệt giữa ví dụ "authoritative docstrings" và "Copilot voice" do cùng metric và các đặc điểm khác.
  • Dù có nhiều ligature, tôi vẫn cảm thấy chưa đủ.

    • Tôi thích cách căn chỉnh chiều cao của * trong *ptr của Fira Code, cách căn giữa của : trong X:Y, và cách điều chỉnh chiều cao của x trong 0xFF. Tôi thích hình dáng của biến thể Krypton, nhưng tiếc là thanh ngang của chữ t thường lại nằm quá thấp so với chiều cao của chữ c thường.
  • Ký hiệu Rd của font Radon bị ghi sai trên trang, gây bối rối. Cần kiểm tra xem thực sự có nguyên tố nào bắt đầu bằng Rd hay không.

  • Tôi tự hỏi vì sao không thấy nhiều font hẹp như PragmataPro hơn.

    • Tôi đã dùng PragmataPro gần 10 năm, nhưng muốn có thêm nhiều lựa chọn hơn. Berkeley Graphics đã hứa hẹn một phiên bản hẹp của Berkeley Mono gần một năm nay nhưng vẫn chưa có gì xảy ra.
  • Font Monaspace không đặt cờ monospace nên phải tải font trong GTK2 gvim.

    • Có vẻ chính cờ đó khiến ligature không được kích hoạt. Tuy nhiên, trong bản st đã được vá, tôi vẫn có thể thấy ligature và text healing.
  • Tôi thấy khó hiểu khi số 0 có chấm lại trở thành tiêu chuẩn trong những font kiểu này. Nó dễ bị nhầm với số 8, và tôi thích số 0 có gạch chéo hơn.

  • Tôi chủ yếu dùng Jetbrains Mono, nhưng tôi thích tính năng áp dụng các phong cách khác nhau theo từng font và tính năng texture healing, nên có thể sẽ chuyển sang font này.

  • Ít nhất trong VS Code, tính năng "textual healing" phải được dùng cùng với ligature lập trình. Không có cách nào để bật texture healing mà không dùng ligature.