- Hershey Fonts là một trong những biểu diễn phông chữ số sơ khai được tạo ra vào năm 1967, và tệp
.jhf là tệp văn bản trong đó mỗi dòng biểu diễn một glyph
- Dòng glyph gồm
id[5], length[3], left[1], right[1], points[?], trong đó ID và số lượng điểm được mã hóa ở dạng thập phân
- Tọa độ điểm biểu diễn các giá trị
x, y có dấu bằng hai ký tự; R tương ứng với 0, Q là -1, S là +1
- Giá trị ký tự tiếp nối từ
J=-8 đến Z=+8, ví dụ NW có nghĩa là tọa độ -4,5
- Nhấc bút được biểu thị bằng
" R", tức chữ R in hoa đứng sau một khoảng trắng, là thao tác đặc biệt không vẽ đường cho đến vị trí tiếp theo
Tổng quan định dạng
- Hershey Fonts là một trong những biểu diễn phông chữ số sơ khai được tạo ra vào năm 1967, và tệp phông chữ vector Hershey
.jhf là tệp văn bản trong đó mỗi dòng biểu diễn một glyph
- Mỗi dòng glyph được mã hóa thành năm phần
id[5]: ID thập phân của glyph
length[3]: Giá trị thập phân biểu thị số lượng điểm
left[1]: vị trí bên trái của hộp giới hạn
right[1]: vị trí bên phải của hộp giới hạn
points[?]: danh sách điểm kết thúc bằng xuống dòng
- Một điểm gồm hai ký tự, mỗi ký tự biểu diễn giá trị
x, y có dấu tương ứng
- Vị trí có chữ
R in hoa sau khoảng trắng như " R" mang ý nghĩa nhấc bút, nên sẽ không vẽ đường cho đến vị trí tiếp theo
Ánh xạ giá trị và tài liệu tham khảo
- Giá trị ký tự chạy từ
J đến Z, tương ứng từ -8 đến +8, với R làm mốc 0
J=-8, K=-7, L=-6, M=-5, N=-4, O=-3, P=-2, Q=-1
R=0
S=+1, T=+2, U=+3, V=+4, W=+5, X=+6, Y=+7, Z=+8
- Ví dụ,
NW tương ứng với N=-4, W=+5, nên là tọa độ -4,5
- Tài liệu liên quan
1 bình luận
Ý kiến trên Lobste.rs
Nếu ai quan tâm, tôi đang làm một bộ sưu tập font Hershey nhỏ
Nó có cảm giác hiện đại hơn đôi chút so với các kiểu chữ khác thường thấy trên mạng
Sẽ hay hơn nữa nếu có cả ảnh chụp chúng trông ra sao khi được vẽ bằng plotter và bút dạ loại thường
Đặc biệt tôi thích việc các tệp
.jhfđược cung cấp có cấu trúc rất tốt. Nhiều font Hershey trên mạng có trườngidcủa mọi glyph đều là12345, hoặc có xuống dòng cưỡng bức trong một số glyph, khiến việc phân tích tệp và vẽ văn bản trở nên khó một cách vô íchGần đây tôi có nghịch màn hình e-ink Pimoroni Inky và bộ điều khiển Raspberry Pi, rồi gặp font Hershey và định dạng tệp
.jhf. Theo tôi nhớ thì thư viện đi kèm có font “Futural”, và nhìn chung nó hoạt động tốt, nhưng có một vấn đề là thiếu các ký tự tiếng Thụy Điểnå,ä,öGiờ có vẻ bạn đã quen với font Hershey hơn tôi gấp 100 lần nên tôi muốn hỏi liệu bạn đã từng thấy tệp font
.jhfchứa khoảng 255 ký tự đầu của bảng ASCII chưa. Tôi không rõ là do tôi không tìm được font, hay thực sự là nó không tồn tại, nên muốn hỏi xem bạn đã từng thấy chưaĐây là bản tái xử lý năm 1986 của Usenet Font Consortium từ dữ liệu gốc của Hershey, và là một phiên bản đã vận dụng khá nhiều sự phóng túng kiểu lập trình viên C năm 1986 đối với định dạng dữ liệu gốc trong Calligraphy for Computers (1967, PDF) / A contribution to computer typesetting techniques : tables of coordinates for Hershey's repertory of occidental type fonts and graphic symbols
Định dạng trường cố định của Fortran nguyên bản thậm chí có vẻ còn dễ xử lý hơn, nhưng cuộn băng dữ liệu mà NTIS từng cung cấp được cho là đã thất lạc. Bài viết trên Usenet còn có một câu châm biếm kiểu “dù ai mà thực sự muốn dùng định dạng đó chứ …”
Và cảm ơn vì đã nhắc tôi nhớ rằng mình phải hoàn thiện, công bố, hoặc từ bỏ hẳn bộ chuyển đổi Hershey sang OTF mà tôi xem lần cuối vào khoảng năm 2016: scruss/python-hershey. Xin gửi lời chào tới tất cả những ai từng thử lao đầu vào định dạng font điên rồ này
Đây là một hang thỏ khác về font vector mới: GIMMS, từng được dùng tại University of Edinburgh
Frank Grießhammer cũng có một bài viết và hình minh họa rất hay về Hershey và công việc của ông ấy: Frank Grießhammer
Tôi nghĩ định dạng này có thể khá hữu ích cho trình kết xuất phần mềm mà tôi đang viết
Đây là một dự án chơi chơi nên tôi không muốn cũng không cần hỗ trợ font OTF/TTF, vì vậy font Hershey có vẻ là một cải tiến hợp lý với chi phí thấp hơn so với font bitmap đơn cách hiện tại lấy cảm hứng từ olive.c
Ừm, không có đường cơ sở à?
Nếu có ánh xạ giữa ID glyph và ký tự ASCII/Unicode, thì có lẽ có thể tính đường cơ sở từ kích thước của một ký tự chuẩn như
0Ngày xưa tôi đã chuyển font Hershey sang JSON
Nó khá dài dòng, nhưng dễ xử lý và dễ đọc hơn. Nếu ai cần thì có thể tải tệp 2.6MB ở đây
Trông như một định dạng mệnh lệnh tương ứng với https://en.wikipedia.org/wiki/Metafont mang tính khai báo
Font BGI cũng từng có cấu trúc tương tự
Một trong những lý do font Hershey hữu ích là vì đây là định dạng vector đơn giản, nên không chỉ phù hợp cho bút plotter mà còn dễ xây dựng các hiệu ứng khác để hiển thị trên màn hình
Ví dụ, trong phần trực quan hóa AoC 2024 ngày 5, tôi đã lấy mẫu các điểm từ vector và dùng chúng làm điểm tạo mầm bong bóng: https://hachyderm.io/deck/@bazzargh/113599143062296178
Ở ngày 12, tôi cho các nét được vẽ chậm dần để tạo hiệu ứng như đang viết chữ lên ô cửa sổ phủ sương: https://hachyderm.io/deck/@bazzargh/113639456289455465