Nya.vn

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

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

Thẻ Languagesystem 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 Languagesystem 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ẻ Languagesystem với chức năng khai báo nhóm ký tự và ngôn ngữ được chỉ định.

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 Languagesystem trong ngôn ngữ lập trình AFDKO

Thẻ Languagesystem khai báo nhóm ký tự và ngôn ngữ chỉ định:

Mỗi Font chữ đều phải được khai báo hệ thống ngôn ngữ được chỉ định để các thẻ tính năng hoạt động chính xác.
Thẻ Languagesystem chỉ định mỗi nhóm ký tự sẽ được áp dụng tính năng phù hợp với ngữ cảnh ngôn ngữ cụ thể.
Ví dụ nhóm ký tự Hiragana chỉ có thể áp dụng thẻ tính năng <trad> trong ngữ cảnh ngôn ngữ Nhật Bản, cần khai báo ngôn ngữ hệ thống là:

languagesystem kana JAN ;   # Hiragana Japanese

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

languagesystem <script tag> <language tag>;

Trường khai báo

Thẻ Languagesystem khai báo nhóm ký tự và ngôn ngữ bổ sung:

Mỗi Font chữ đều phải có thẻ Languagesytem chỉ định trường hợp bổ sung. Một số ký tự trong Font chữ không được khai báo với bất cứ một ngữ cảnh ngôn ngữ nào,
trường hợp này xảy ra với các ký tự dấu phủ, ký hiệu đặc biệt và dấu câu. Cần có một thẻ chỉ định cho các ký tự này hoạt động chính xác.
Thẻ <DFLT> (mặc định) dùng để khai báo những nhóm ký tự còn lại không được khai báo với bất cứ một ngữ cảnh ngôn ngữ nào, các ký tự này sẽ được xử lý theo
chế độ mặc định của Font chữ.
Mẫu cú pháp khai báo thẻ <DFLT> là:

languagesystem DFLT dflt;

Thẻ Languagesystem khai báo nhóm ký tự dùng chung nhiều ngôn ngữ:

Mỗi nhóm thẻ Languagesytem chỉ định cho một nhóm ký tự có thể dùng chung cho nhiều ngôn ngữ phải được khai báo thêm trường hợp bổ sung.
Thẻ ngữ cảnh <dflt> dùng để khai báo trường hợp nhóm ký tự này được sử dụng mà không nằm trong các ngữ cảnh được chỉ định thì nó được xử lý theo chế độ mặc định của Font chữ.
Ví dụ khai báo hệ thống ngôn ngữ cho nhóm ký tự Arabic có thẻ <dflt> là:

languagesystem arab dflt; # Arabic default
languagesystem arab FAR ; # Arabic Persian
languagesystem arab URD ; # Arabic Urdu

Thẻ Languagesystem khai báo nhóm ký tự Latin cơ bản:

languagesystem DFLT dflt;
languagesystem latn dflt;

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

Khai báo thẻ Languagesystem cho chữ Rumani, Thổ Nhĩ Kỳ và Azeri:

Nếu Font chữ cần có tính năng thay thế phụ thuộc vào ngữ cảnh ngôn ngữ cụ thể. Ví dụ tính năng cho chữ viết Rumani (xử lý các Glyph cedilla và dấu phẩy), hoặc chữ viết Thổ Nhĩ Kỳ và Azeri (nếu Font chữ có chữ hoa nhỏ). Thì phần khai báo ngôn ngữ có thể thiết lập như sau:

languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem latn TRK;
languagesystem latn AZE;
languagesystem latn ROM;

Khai báo thẻ Languagesystem cho chữ Cyrillic, Hy Lạp và Serbia:

Nếu Font chữ cần có các tính năng cần thiết để trình bày chữ Cyrillic, Hy Lạp và có thêm cả chữ Serbia với biến thể chữ nghiêng, thì phần khai báo ngôn ngữ có thể thiết lập như sau:

languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem cyrl dflt;
languagesystem cyrl SRB;
languagesystem grek dflt;

Khai báo thẻ Languagesystem cho chữ Ả Rập:

Nếu Font chữ cần có các tính năng cần thiết để trình bày chữ Ả Rập, thì phần khai báo ngôn ngữ có thể thiết lập như sau:

languagesystem DFLT dflt;
languagesystem arab dflt; # Arabic default
languagesystem arab FAR ; # Arabic Persian
languagesystem arab URD ; # Arabic Urdu

Khai báo thẻ Languagesystem cho chữ Kanji Trung Quốc, Nhật Bản và Hàn Quốc:

Nếu Font chữ cần có các tính năng cần thiết để trình bày chữ Kanji Trung Quốc, Nhật Bản và chữ Hàn Quốc, thì phần khai báo ngôn ngữ có thể thiết lập như sau:

languagesystem DFLT dflt;
languagesystem hani dflt; # CJK Ideographic default
languagesystem hani JAN ; # CJK Ideographic Japanese
languagesystem hani KOR ; # CJK Ideographic Korean
languagesystem hani ZHS ; # CJK Ideographic Chinese Simplified
languagesystem hani ZHT ; # CJK Ideographic Chinese Traditional

Khai báo thẻ Languagesystem cho chữ Hiragana Nhật Bản:

Nếu Font chữ cần có các tính năng cần thiết để trình bày chữ Hiragana Nhật Bản thì phần khai báo ngôn ngữ có thể thiết lập như sau:

languagesystem DFLT dflt;
languagesystem kana dflt; # Hiragana default
languagesystem kana JAN ; # Hiragana Japanese

Tổng kết:

  • Trên đây là bài giới thiệu thẻ khai báo tính năng Languagesystem trong ngôn ngữ lập trình AFDKO.
  • Chúng ta chỉ cần biết cách khai báo thẻ Languagesystem cho chữ viết Việt Nam như sau:
languagesystem DFLT dflt;
languagesystem latn dflt;

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