Nya.vn

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

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

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

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ẻ khai báo tính năng LookupFlag trong ngôn ngữ AFDKO dùng để là gì?

Bài này giới thiệu một số thẻ khai báo tính năng trong ngôn ngữ lập trình AFDKO cơ bản nhất. Cụ thể là thẻ LookupFlag với chức năng chỉ định các trường hợp đủ điều kiền tra cứu.

Tương tự những ngôn ngữ lập trình Python scripts, ngôn ngữ AFDKO cũng có cú pháp tương tự. Mỗi Lệnh cần được bắt đầu bằng một thẻ khai báo tính năng. Biết chức năng của các thẻ khai báo tính năng giúp bạn hiểu cách hoạt động của các thẻ lệnh.

Thẻ khai báo tính năng LookupFlag trong ngôn ngữ lập trình AFDKO

Thẻ LookupFlag chỉ định các trường hợp đủ điều kiện áp dụng tra cứu cho các thiết bị xử lý đầu cuối. Nhằm mục đích thực hiện các lệnh định vị và thay thế ký tự.

Thẻ LookupFlag loại A:

Thẻ LookupFlag loại A chỉ định một hoặc nhiều điều kiện đi kèm trong một quy tắc tra cứu, các điều kiện được gọi là <named lookupflag value>, không cần sắp xếp theo trình tự, ngăn cách nhau bởi khoảng trắng (Space).
Cú pháp của thẻ LookupFlag loại A:

lookupflag <named lookupflag value> <named lookupflag value>;

Thẻ <named lookupflag value> chỉ định quy tắc tra cứu cho thẻ <lookupflag>.

Sáu loại quy tắc tra cứu cho thẻ LookupFlag loại A:

Có 6 loại quy tắc tra cứu <named lookupflag value> có thể gán vào thẻ <lookupflag> là:

<RightToLeft> là thẻ chỉ định việc xử lý chính xác loại tra cứu ký tự dấu phụ đính kèm (tra cứu GPOS loại 3). Khi thẻ này được đặt, nét cuối cùng trong một trình tự nhất định được áp dụng tra cứu điểm đính kèm để định vị ký tự dấu phụ trên đường cơ sở.

<IgnoreBaseGlyphs> là thẻ chỉ định bỏ qua các Glyph cơ sở khi thực hiện tra cứu.

<IgnoreLigatures> là thẻ chỉ định bỏ qua các Glyph ghép khi thực hiện tra cứu.

<IgnoreMarks> là thẻ chỉ định bỏ qua các ký tự dấu phụ khi thực hiện tra cứu.

MarkAttachmentType <glyphclass | glyphclass name> là thẻ chỉ định Glyph hoặc nhóm Glyph được thực hiện tra cứu, nếu tồn tại chỉ định này thì việc tra cứu
sẽ bỏ qua tất cả các Glyph khác với Glyph hoặc nhóm Glyph được chỉ định.

UseMarkFilteringSet <glyphclass | glyphclass name> là thẻ chỉ định cấu trúc nhóm Glyph có thể lồng vào nhau trong MarkAttachmentType. Thẻ chỉ định cấu trúc nhóm Glyph sẽ bỏ qua tất cả các nhóm Glyph không có trong các nhóm Glyph đã được chỉ định.

Ví dụ một thẻ LookupFlag khai báo hai quy tắc tra cứu:

lookupflag IgnoreBaseGlyphs IgnoreLigatures;

Ví dụ muốn đặt điều kiện tra cứu bỏ qua tất cả các Glyph đánh dấu. Ngoại trừ các Glyph được chỉ định trong nhóm ký tự @TOP_MARKS:

lookupflag MarkAttachmentType @TOP_MARKS;

Tổng kết:

  • Trên đây là bài giới thiệu thẻ khai báo tính năng LookupFlag trong ngôn ngữ lập trình AFDKO.
  • Thẻ LookupFlag có thể xuất hiện trong phần khai báo tính năng của chữ viết Latin. Cụ thể là quy tắc tra cứu <IgnoreMarks> xuất hiện trong thẻ tính năng kern để xét ngữ cảnh.

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

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