Nya.vn

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

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

Thẻ Lookup 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 Lookup 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ẻ Lookup với chức năng gom nhóm các thẻ xử lý theo ngữ cảnh. Các thẻ này phải có cùng loại tính năng, cùng quy tắc tra cứu và tra cứu cùng một thuộc tính của đối tượng.

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.

Cú pháp của thẻ Lookup trong ngôn ngữ lập trình AFDKO

Cú pháp của thẻ Lookup là:

lookup <....> <useExtension> {
        # rules to be grouped (Chú thích cho quy tắc tra cứu)
	...	                 # Thẻ chỉ định quy tắc tra cứu ngữ cảnh
        ...	                 # Các thẻ tính năng được áp dụng theo ngữ cảnh
} <....>;        # Kết thúc thẻ tra cứu

Thẻ <….> là thẻ tính năng được áp dụng tra cứu, ví dụ như thẻ .
Thẻ <useExtension> (nếu có) là thẻ chỉ định quy tắc tra cứu sẽ được tạo theo loại tra cứu GSUB hoặc GPOS Extension.

Ví dụ về thẻ Lookup trong ngôn ngữ lập trình AFDKO

Ví dụ muốn đặt lệnh tra cứu cho hai trường hợp ngữ cảnh, mỗi trường hợp được tinh chỉnh một khoảng cách Kerning khác nhau:

feature kern {        # Khối lệnh này thiết lập thẻ tính năng <kern>
      # GPOS feature: Kerning        (Chú thích)
      @_Ygrave = [Ygrave uni1EF8 uni1EF6 uni1EF4];        # Đặt tên nhóm ký tự thứ nhất
      @_ygrave = [ygrave uni1EF9 uni1EF7 uni1EF5];        # Đặt tên nhóm ký tự thứ hai
      @_utilde2 = [utilde uni1EE7 uni1EE5 uhorn uni1EEB uni1EE9 uni1EEF uni1EED uni1EF1];        # Đặt tên nhóm ký tự thứ ba
      # Lookups: 1         (Chú thích)
      lookup kern {        # Thẻ tra cứu cho tính năng Kerning
            # GPOS lookup 1, type 2 (Pair adjustment)        (Chú thích)
            lookupflag IgnoreMarks;        # Thẻ chỉ định hãy bỏ qua các ký tự dấu phụ khi thực hiện tra cứu
            pos @_Ygrave @_ygrave -50;     # Khi ký tự trong nhóm thứ nhất đứng trước ký tự trong nhóm thứ hai thì tinh chỉnh Kerning giảm 50
            pos @_Ygrave @_utilde2 -80;    # Khi ký tự trong nhóm thứ nhất đứng trước ký tự trong nhóm thứ ba thì tinh chỉnh Kerning giảm 80
      } kern;        # Kết thúc thẻ tra cứu cho tính năng Kerning
} kern;        # Kết thúc thẻ tính năng Kerning

Lưu ý các thẻ tính năng áp dụng theo ngữ cảnh phải được sắp xếp theo trình tự logic phù hợp với thứ tự các ô Glyph trong File Font chữ để thiết bị xử lý đầu cuối
có thể xử lý thuận tiện các phép tra cứu và loại trừ, tránh xung đột. Ví dụ quy tắc thay thế ký tự dính f_f_i luôn được đặt trước quy tắc thay thế ký tự dính f_i.

Tổng kết:

  • Trên đây là bài giới thiệu thẻ khai báo tính năng Lookup trong ngôn ngữ lập trình AFDKO.
  • Thẻ Lookup có thể xuất hiện trong phần khai báo tính năng của 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