Hãy đăng ký thành viên để có thể dễ dàng trao đổi, giao lưu và chia sẻ về kiến thức đồ họa.
  1. Hãy đăng ký subscribe kênh Youtube mới của Việt Designer tại địa chỉ: Youtube.com/VietDesignerChannel để theo dõi các video về thiết kế đồ họa. Do trước đó kênh cũ bị Youtube quét không rõ lý do, trong thời gian chờ kháng cáo nếu các bạn thấy video trên diễn đàn bị die không xem được thì có thể vào kênh mới để tìm xem video sơ cua nhé.
    Loại bỏ thông báo

Hỏi cách viết code chỉnh sửa Opentype layout của font chữ để tự động hoán đổi tự hình của chữ

Chủ đề thuộc danh mục 'Hỏi đáp - Thảo luận về Typography' được đăng bởi Fackler, 22/6/14.

Lượt xem: 1,912

  1. Fackler Mới đăng kí

    Mình đang làm một font chữ viết tay, vì trong kiểu chữ của font này nét đầu và nét cuối của một chữ cái sẽ thay đổi khi đứng trước hay đứng sau một chữ cái khác nên mình đã tạo ra nhiều tự hình (glyph) khác nhau của các chữ cái theo vị trí của chúng trong từ. Ví dụ chữ a viết thường có 3 tự hình có tên gọi là: "a", "a1", "a2". Trong đó tự hình "a" là chữ a thường khi đứng một mình, "a1" là chữ a khi đứng trước chữ c, "a2" là chữ a khi đứng trước chữ m. Có cách nào để font chữ có thể tự động thay đổi tự hình của chữ theo vị trí của chữ trong từ?

    ...
    Chỉnh sửa lần cuối: 22/6/14
  2. Fackler

    Fackler Mới đăng kí

    Mình tự mò ra được rồi, phải dùng tag calt (Contextual Alternates). Đây là một ví dụ về cách dùng tag này trên trang Typophile:

    group @Group1 [zero];
    group @Group2 [zero.2];
    group @Group3 [zero.3];
    group @Group4 [zero.4];
    group @Group5 [zero.5];
    feature ContextualAlternates1 calt {
    # Contextual Alternates
    lookup Lookup1;
    lookup Lookup2;
    }

    lookup Lookup1 {
    # Referenced by feature "ContextualAlternates1"
    context (@Group1) @Group1;
    sub 0 Lookup3;
    context (@Group2) @Group1;
    sub 0 Lookup4;
    context (@Group3) @Group1;
    sub 0 Lookup5;
    context (@Group4) @Group1;
    sub 0 Lookup6;
    }

    lookup Lookup2 {
    # Referenced by feature "ContextualAlternates1"
    context (@Group5 @Group4) @Group1;
    sub 0 Lookup7;
    context (@Group2 @Group5) @Group2;
    sub 0 Lookup7;
    context (@Group4 @Group2) @Group3;
    sub 0 Lookup7;
    context (@Group1 @Group4) @Group4;
    sub 0 Lookup7;
    context (@Group5 @Group1) @Group5;
    sub 0 Lookup7;
    context (@Group3 @Group5) @Group1;
    sub 0 Lookup7;
    context (@Group2 @Group3) @Group2;
    sub 0 Lookup8;
    context (@Group1 @Group2) @Group3;
    sub 0 Lookup8;
    context (@Group4 @Group1) @Group4;
    sub 0 Lookup8;
    context (@Group3 @Group4) @Group4;
    sub 0 Lookup9;
    }

    lookup Lookup3 {
    # Referenced by lookup "Lookup1"
    sub zero -> zero.2;
    }

    lookup Lookup4 {
    # Referenced by lookup "Lookup1"
    sub zero -> zero.3;
    }

    lookup Lookup5 {
    # Referenced by lookup "Lookup1"
    sub zero -> zero.4;
    }

    lookup Lookup6 {
    # Referenced by lookup "Lookup1"
    sub zero -> zero.5;
    }

    lookup Lookup7 {
    # Referenced by lookup "Lookup2"
    sub zero -> zero.2;
    sub zero.2 -> zero.4;
    sub zero.3 -> zero;
    sub zero.4 -> zero.5;
    sub zero.5 -> zero.3;
    }

    lookup Lookup8 {
    # Referenced by lookup "Lookup2"
    sub zero.2 -> zero;
    sub zero.3 -> zero.4;
    sub zero.4 -> zero.3;
    }

    lookup Lookup9 {
    # Referenced by lookup "Lookup2"
    sub zero.4 -> zero.5;
    }

Ủng hộ diễn đàn