Nya.vn

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

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

Các loại giá trị 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.

Có những loại giá trị gì trong ngôn ngữ lập trình AFDKO?

Các loại giá trị trong ngôn ngữ lập trình AFDKO bao gồm nhiều loại giá trị khác nhau. Các giá trị này đóng vai trò định lượng, hoặc xác định vị trí, hoặc xác định đối tượng.

Hiểu về các giá trị trong tập lệnh AFDKO giúp bạn biết được các tính năng trong Font chữ hoạt động thế nào. Điều này có ích khi bạn muốn tùy chỉnh sâu một Font chữ có đính kèm tính năng OpenType.

Các giá trị dạng con số trong lập trình AFDKO

Giá trị số liệu:

Giá trị số liệu được khai báo bằng chữ số nguyên thập phân, có thể là số âm, không có số không đứng đầu. Cách trình bày khai báo là .
Ví dụ: -100 và 10 được khai báo là <-100> và <10>.

position A Y -100;
position a y -80;
position s f' <0 0 10 0> t;

Giá trị khoảng cách:

Giá trị khoảng cách được tính theo đơn vị thiết kế Font chữ UPM.
Cú pháp là:

<metric>

Ví dụ lùi 100 đơn vị được khai báo là:

feature kern {
        position A Y -100;
} kern;

Bảng giá trị:

Bảng giá trị là nhiều giá trị số liệu cùng được khai báo trong một câu lệnh.
Cú pháp là:

<<metric> <metric> <metric> <metric>>

Ví dụ trừ Kerning phía trước ký tự (theo tọa độ X) 80 và trừ Kerning phía sau ký tự (theo tọa độ X) 160 tính theo đơn vị UPM:

<-80 0 -160 0>

Giá trị đã được đặt tên:

Giá trị đã được đặt tên dùng để khai báo sự thay đổi tọa độ.
Cú pháp là:

valueRecordDef <coordinates> name;

Ví dụ:

valueRecordDef -10 FIRST_KERN;
valueRecordDef <0 0 20 0> SECOND_KERN;

Giá trị điểm đường viền:

Giá trị điểm đường viền dùng để khai báo số lượng điểm trên đường viền.
Cú pháp là:

contourpoint <number>

Ví dụ:

contourpoint 2

Giá trị điểm neo:

Giá trị điểm neo dùng để khai báo tọa độ và tên điểm neo.
Cú pháp là:

<anchor <metric> <metric> <contour point>>

Ví dụ:

<anchor 120 -20 contourpoint 5>

Các giá trị dạng ký tự trong lập trình AFDKO

Đối tượng ký tự trong ngôn ngữ AFDKO:
Có hai ngữ cảnh khác nhau để đặt tên ký tự: tên trong File sản phẩm đầu cuối và tên trong giai đoạn thiết kế.

Tên ký tự trong File sản phẩm đầu cuối:

Tên ký tự trong File sản phẩm đầu cuối được đính kèm trong File Font chữ, chỉ được đặt tên dài tối đa 63 ký tự, chỉ bao gồm các ký tự trong danh sách sau:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
. # period
_ # underscore

Lưu ý: Tên Glyph không được bắt đầu bằng chữ số hoặc dấu chấm, ngoại trừ trường hợp đặc biết là “.notdef” được chấm nhận.

Tên ký tự trong giai đoạn thiết kế:

Tên ký tự trong giai đoạn thiết kế được sử dụng nội bộ trong các phần mềm thiết kế Font chữ, lưu trữ dưới định dạng dành riêng cho giai đoạn thiết kế Font chữ.
Ngoài các ký tự được cho phép để đặt tên ký tự cho File sản phẩm đầu cuối, một số ký tự khác cũng được hỗ trợ:
U+002A * Asterisk
U+002B + Plus sign
U+002D – Hyphen-minus
U+003A : Colon
U+005E ^ Circumflex accent
U+007C | Vertical bar
U+007E ~ Tilde

Lưu ý: Tên Glyph không được bắt đầu bằng chữ số, dấu chấm và những ký tự bổ sung bên trên.

Nhóm ký tự (Glyph Class):

Nhóm ký tự (Glyph Class) được dùng để đặt tên cho một tập hợp các ký tự có thể sử dụng chung một ngữ cảnh nào đó, có cấu trúc gồm tên nhóm ký tự và phạm vi
bao phủ hoặc một danh sách các ký tự chứa trong nó.
Mỗi nhóm ký tự có thể được gán tên nhóm ký tự, tên này được bắt đầu bằng ký tự “@”.
Ví dụ:

@dash

Phạm vi bao phủ của dải ký tự:

Phạm vi bao phủ của dải ký tự được dùng để khai báo một chuỗi ký tự liền kề, chuỗi ký tự liền kề này xét theo tên ký tự khai báo trong Font chữ theo trình tự alphabet
chứ không phải trình tự các ô Glyph trong File Font chữ.
Cú pháp là:

[<firstGlyph> - <lastGlyph>]

Ví dụ:

@dashA = [A.swash - Z.swash]; @dashB =[a - z]; @dashC =[0-9];

Lưu ý: Các ký tự trong nhóm ký tự có tên không theo trình tự alphabet thì phải liệt kê tên từng ký tự, không áp dụng được cách khai báo dải ký tự:

@digits = [zero one two three four five six seven eight nine];

Đối tượng thẻ Tag:

"DFLT"     "latn"     "ARA "     "VIT "     "liga"     "kern"     "hang"

languagesystem DFLT dflt;
languagesystem latn dflt;

Khai báo bao gồm tập tin:

Khai báo bao gồm tập tin: Một số lệnh cho phép truy cập vào một tập tin được chỉ định để thực hiện lệnh.
Cú pháp là:

include(<filename>);

Ví dụ:

include(../family.fea);

Tổng kết

Trên đây là các loại giá trị trong ngôn ngữ lập trình AFDKO. Các giá trị này được khai báo trong các thẻ lệnh để chỉ định cách hoạt động của thẻ tính năng.

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

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

Cú pháp lập trình AFDKO

Các loại giá trị trong ngôn ngữ lập trình AFDKO

Các loại giá trị trong AFDKO

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

Thẻ Feature trong AFDKO

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

Thẻ Languagesystem trong AFDKO

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