Nya.vn

Thư viện thiết kế bỏ túi

HuyKTS.com - Thư viện thiết kế bỏ túi

Thẻ GSUB trong ngôn ngữ lập trình AFDKO (Phần 1)

Chào các bạn! Tôi là HuyKTS, một người yêu thích công việc thiết kế.
Đây là bài viết về AFDKO, một ngôn ngữ lập trình tính năng cho Font chữ OpenType. Các tính năng như Font chữ biến đổi, điều chỉnh Kerning, tự động thay thế chữ kiểu trong một Font chữ OpenType đều được mô tả trong thông tin đính kèm theo tệp phông chữ, được trình bày bằng ngôn ngữ AFDKO.
Các bạn xem bài viết chỉ cần xem phần hình ảnh. Hình ảnh đã được sắp xếp và trình bày nội dung bài viết, dễ xem và dễ hiểu. Phần văn bản dùng để tối ưu hóa nội dung.

Thẻ tra cứu tính năng GSUB trong ngôn ngữ AFDKO dùng để là gì?

Bài này giới thiệu một số thẻ tra cứu tính năng trong ngôn ngữ lập trình AFDKO cơ bản nhất. Cụ thể là thẻ GSUB với chức năng tra cứu kiểu thay thế ký tự.

Trong chữ viết Latin, một số ký tự cần được thay thế bằng ký tự nối, ví dụ f f i đổi thành ffi. Tính năng thay thế chữ kiểu A thành ᴀ hoặc Ɐ. Việc thay thế ký tự nối trong chữ viết Ả Rập. Biết chức năng của thẻ tra cứu tính năng GSUB giúp bạn hiểu được tính năng thay thế ký tự nào đang được thêm vào Font chữ. Có tám loại thẻ tra cứu tính năng GSUB trong lập trình AFDKO. Trong bài này, tôi chỉ trình bày loại thẻ phổ biến và dễ hiểu. Bao gồm thẻ tính năng GSUB LookupType 1, 2, 3, 4.

Thẻ tính năng GSUB LookupType 1 trong ngôn ngữ lập trình AFDKO

Thẻ tính năng loại [GSUB LookupType 1] chỉ định thay thế một Glyph bởi một Glyph khác.
Tính năng [GSUB LookupType 1] được dùng để hiển thị các biến thể Glyph ở vị trí khác. Để phù hợp với cách trình bày của văn bản Ả Rập và Đông Á truyền thống.
Cú pháp của [GSUB LookupType 1] là:

substitute <glyph> by <glyph>;     # format A (thay thế một Glyph bởi một Glyph)
substitute <glyphclass> by <glyph>;     # format B (thay thế một Glyph Class bởi một Glyph)
substitute <glyphclass> by <glyphclass>;     # format C (thay thế một nhóm Glyph bởi một nhóm Glyph khác)

Ví dụ:

sub a by A.sc;     # Thay thế Glyph a bởi Glyph A
substitute [one.fitted one.oldstyle one.tab.oldstyle] by one;  # Thay thế nhóm ba ký tự bởi ký tự one
substitute [a - z] by [A.sc - Z.sc];     # Thay thế dải ký tự từ a đến z bởi dải ký tự A.sc đến Z.sc
substitute @Capitals by @CapSwashes;     # Thay thế nhóm ký tự @Capitals bởi nhóm ký tự @CapSwashes

Trong ví dụ trên có chứa lệnh thay thế dải ký tự và nhóm ký tự. Lệnh này được diễn giải như sau:

substitute [a - z] by [A.sc - Z.sc];

Tương đương:

substitute a by A.sc;
substitute b by B.sc;
substitute c by C.sc;
# ...
substitute z by Z.sc;

Nếu trong dải ký tự có một ký tự là tên riêng thì có thể thêm một thẻ chỉ định loại bỏ thay thế cho ký tự này như sau:

substitute a by NULL;

Thẻ tính năng GSUB LookupType 2 trong ngôn ngữ lập trình AFDKO

Thẻ tính năng loại [GSUB LookupType 2] chỉ định thay thế một ký tự duy nhất bởi một chuỗi ký tự khác.
Tính năng [GSUB LookupType 2] được dùng để phân tách ký tự dính thành các ký tự cơ sở.
Cú pháp của [GSUB LookupType 2] là:

substitute <glyph> by <glyph sequence>;

Trong đó là một chuỗi hai hoặc nhiều ký tự cụ thể.

Ví dụ đặt thẻ chỉ định ký tự dính f_f_i sẽ bị phân tách thành f f i như sau:

substitute f_f_i by f f i;     # Ligature decomposition

Thẻ tính năng GSUB LookupType 3 trong ngôn ngữ lập trình AFDKO

Thẻ tính năng loại [GSUB LookupType 3] chỉ định thay thế một ký tự bởi một bảng danh sách tùy chọn, cho phép chọn một trong các ký tự được liệt kê trong bảng chọn. Người dùng cuối có thể lựa chọn bất cứ Glyph nào trong bảng thay thế nếu phần mềm ứng dụng đầu cuối có tính năng hỗ trợ thay thế thẩm mỹ.

Trong Font chữ có thể có nhiều Glyph cùng chức năng nhưng khác nhau về mặt hình thức. Tính năng [GSUB LookupType 3] tạo ra sự lựa chọn thay thế thẩm mỹ.
Ví dụ như ký tự & trong hình bên trên.

Cú pháp của [GSUB LookupType 3] là:

substitute <glyph> from <glyphclass>;

Ví dụ:

substitute ampersand from [ampersand.1 ampersand.2 ampersand.3];

Thẻ tính năng GSUB LookupType 4 trong ngôn ngữ lập trình AFDKO

Thẻ tính năng loại [GSUB LookupType 4] chỉ định thay thế một chuỗi ký tự bởi một ký tự duy nhất. Tính năng này hoạt động bằng cách nhận biết ngữ cảnh một chuỗiký tự xuất hiện, thay thế ký tự đầu tiên bằng một ký tự dính duy nhất, các ký tự còn lại tự động bị xóa bỏ.
Tính năng [GSUB LookupType 4] được dùng để thay thế các ký tự cơ bản bằng một ký tự dính duy nhất, ngữ cảnh này xuất hiện trong chữ viết Ả Rập và một số loại chữ viếttheo ngôn ngữ khác.
Cú pháp của [GSUB LookupType 4] là:

substitute <glyph sequence> ... <glyph sequence> by <glyph>;

Trong đó là phần khai báo cho một ngữ cảnh chuỗi ký tự xuất hiện.

Ví dụ các trường hợp tạo ra ký tự ½:

substitute [one one.oldstyle] [slash fraction] [two two.oldstyle] by onehalf;

Trường hợp trên được diễn giải là:

substitute  one           slash      two            by  onehalf;
substitute  one.oldstyle  slash      two            by  onehalf;
substitute  one           fraction   two            by  onehalf;
substitute  one.oldstyle  fraction   two            by  onehalf;
substitute  one           slash      two.oldstyle   by  onehalf;
substitute  one.oldstyle  slash      two.oldstyle   by  onehalf;
substitute  one           fraction   two.oldstyle   by  onehalf;
substitute  one.oldstyle  fraction   two.oldstyle   by  onehalf;

Ví dụ một số ngữ cảnh thường xuất hiện trong chữ viết Latin:

sub f f      by f_f;
sub f i      by f_i;
sub f f i    by f_f_i;
sub o f f i  by o_f_f_i;

Lưu ý thẻ tính năng loại [GSUB LookupType 4] không cho phép gán tên nhóm ký tự chứa trong thẻ này, nên các nhóm ký tự đều phải được liệt kê thủ công theo danh sách.

Tổng kết:

Trên đây là bài giới thiệu thẻ tra cứu tính năng GSUB LookupType 1, 2, 3, 4 trong ngôn ngữ lập trình AFDKO.

Thẻ GSUB cần thiết cho Font chữ trình bày chữ viết Latin.

Bài viết có liên quan:

Thẻ LookupFlag trong ngôn ngữ lập trình AFDKO

Thẻ LookupFlag trong AFDKO

Thẻ Lookup trong ngôn ngữ lập trình AFDKO

Thẻ Lookup trong AFDKO

Thẻ GSUB LookupType 1 trong ngôn ngữ lập trình AFDKO

Tính năng GSUB LookupType 1

Thẻ GSUB LookupType 6 trong ngôn ngữ lập trình AFDKO

Tính năng GSUB LookupType 6

Huy KTS - Thư viện thiết kế bỏ túi

Nya.vn – Thư viện thiết kế bỏ túi
Và tôi là HuyKTS, một người yêu thích công việc thiết kế.
Chúc các bạn sức khỏe và thành công!

Nya Store - Viên gạch dựng xây ý tưởng
Nya Home - Bộ sưu tập mẫu nhà đẹp
Nya Decor - Kiến tạo không gian cảm xúc
HuyKTS.com - Thư viện thiết kế bỏ túi

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Chuyển lên trên