Nya.vn

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

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

Thẻ GPOS 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ẻ tra cứu tính năng GPOS trong ngôn ngữ AFDKO dùng để là gì?

Bài này giới thiệu một số thẻ tính năng định vị trong ngôn ngữ lập trình AFDKO cơ bản nhất. Cụ thể là thẻ GPOS với chức năng chỉ đỉnh điều chỉnh khoảng cách Kerning.

Như ta đã biết, một số cặp ký tự khi đứng cạnh nhau sẽ tạo ra khoảng rống lớn. Ví dụ VA, Yo,… Việc chúng ta thấy khoảng cách này thuận mắt là do tính năng Kerning. Tính năng Kerning đã tự động điều chỉnh khoảng trống. Một khoảng trống lớn giữa hai ký tự sẽ được tự động điều chỉnh giảm. Trong bài này, tôi giới thiệu thẻ tra cứu tính năng GPOS LookupType 1GPOS LookupType 2.

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

Thẻ tính năng định vị GPOS được bắt đầu bằng từ khóa “position”, còn được viết tắt là “pos”.
Một số trường hợp, các từ khóa “enumerate” hoặc “ignore” có thể đứng trước từ khóa “position”. Kiểu tính năng GPOS được khai báo trong phần sau của thẻ.

Thẻ tính năng loại [GPOS LookupType 1] chỉ định điều chỉnh khoảng cách Kerning phía trước hoặc phía sau một ký tự cụ thể. Khi ký tự đó đứng riêng lẻ (phía trước và phía sau là khoảng trống).
Định dạng thẻ định vị loại loại [GPOS LookupType 1] là:

position <glyph|glyphclass> <valuerecord>;

Trong đó, <glyph|glyphclass> là một ký tự hoặc một nhóm ký tự được liện kê trong thẻ, <valuerecord> là phần khai báo điều chỉnh khoảng cách phía trước và phía sau khi ký tự đó khi đứng riêng lẻ.

Ví dụ số một được điều chỉnh Kerning giảm bên phải 80 và bên trái 80 đơn vị UPM khi đứng riêng lẻ là:

position one <-80 0 -160 0>;

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

Thẻ tính năng loại [GPOS LookupType 2] chỉ định điều chỉnh khoảng cách Kerning giữa từng cặp ký tự khi đứng cạnh nhau. Có hai loại là cặp A và cặp B.

Thẻ [GPOS LookupType 2] cặp A:

Thẻ [GPOS LookupType 2] cặp A chỉ định Kerning cho từng ký tự khi cả hai ký tự này đứng cạnh nhau.
Định dạng của thẻ [GPOS LookupType 2] cặp A là:

position <glyph|glyphclass> <valuerecord> <glyph|glyphclass> <valuerecord>;

Ví dụ ký tự T và a đứng cạnh nhau có thể khai báo Kerning là:

position T <0 0 -60 0> a <-40 0 -40 0>;

Hoặc rút gọn là:

position T -60 a <-40 0 -40 0>;

Thẻ [GPOS LookupType 2] cặp B:

Thẻ [GPOS LookupType 2] cặp B chỉ định tinh chỉnh Kerning trên một chỉ số duy nhất giữa từng cặp ký tự khi đứng cạnh nhau.
Dạng này có cách trình bày ngắn gọn, dễ hiểu hơn dạng cặp A.
Định dạng của thẻ [GPOS LookupType 2] cặp B là:

position <glyph|glyphclass> <valuerecord format A> <glyph|glyphclass> <NULL>;

Trong đó <valuerecord format A> là chỉ số điều chỉnh Kerning.

Ví dụ:

pos T a -100;        # specific pair (no glyph class present)
pos [T] a -100;      # class pair (singleton glyph class present)
pos T @a -100;       # class pair (glyph class present, even if singleton)
pos @T [a o u] -80;  # class pair

Trong File khai báo tính năng OpenType đính kèm theo Font chữ, các thẻ [GPOS LookupType 2] phải được đóng gói trong thẻ như sau:

feature kern {
      # specific pairs for all scripts
      # class pairs for all scripts
} kern;

Tổng kết:

Trên đây là bài giới thiệu thẻ tính năng định vị GPOS LookupType 1 và 2 trong ngôn ngữ lập trình AFDKO.

Ngoài ra, còn các thẻ tính năng định vị khác để định vị các đối tượng theo quy tắc phức tạp hơn. Nhưng thẻ [GPOS LookupType 1]thẻ [GPOS LookupType 2] là đủ để thiết kế Font chữ Latin dành cho ngôn ngữ Việt Nam.

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

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

Thẻ GPOS LookupType 1

Thẻ dán nhãn aalt trong ngôn ngữ lập trình AFDKO

Thẻ dán nhãn ‘aalt’

Thẻ dán nhãn cswh trong ngôn ngữ lập trình AFDKO

Thẻ dán nhãn ‘cswh’

Thẻ dán nhãn kern trong ngôn ngữ lập trình AFDKO

Thẻ dán nhãn ‘kern’

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