หัดทำฟอนต์ไทย ใช้ Fontlab 7 + Mark

Started by iannnnn, 11 May 2021, 18:03 น.

0 Members and 1 Guest are viewing this topic.

iannnnn

:25: ไม่ต้องเปลี่ยนหรอกครับๆๆๆ เกรงใจยยย
แบบนี้แหละครับดีแล้วถ้าทำตาม standard อยู่ได้นานด้วย
ผมแค่ไม่ค่อยเข้าใจวิธีเขียน แต่อ่านแล้วแปลออกอยู่ครับ :12:

iannnnn

ผมเจอคำตอบแล้วครับ
ลืมขั้นตอนนี้ไป :3005:

Quote from: ปอมป๋วย on 29 Sep 2020, 14:21 น.

จากนั้น กด สามขีด แล้วสั่งให้ create โลด



เฉียบ !!





ตอนนี้ใช้ได้เรียบร้อยครับ ลองเทสต์ใน ฟตช ก็ปกติ :25:

TA Font

fonlab7 จะมีบั๊คกับสระอำ   ( ำ ) ครับ  เวลาพรีวิว
ที่ผมพอจะแนะนำได้คือ นอกจากเคาะ spacebar แล้วก็คือ
เวลาพิมพ์ สระอำ + วรรณยุค ( ่  ้  ๊  ๋ ) ให้พิมพ์ วรรณยุคก่อน แล้วค่อยพิมพ์สระอำ ครับ
ถ้าพิมพ์สระอำก่อน แล้วตามด้วยวรรณยุค เหมือนการแสดงผลจะเพี้ยนนะครับ

iannnnn

เอ๊ะปกติเราก็จะพิมพ์แบบนี้กันอยู่แล้วใช่ไหมครับ :30:

james0007

ปกติต้องพิมพ์วรรณยุกต์ก่อนสระอำอยู่แล้วครับ เพิ่มอีกนิดผมลองให้หมดแล้ว เคาะสเปซ พิมพ์สระอำก่อนวรรณยุกต์ มีปัญหาหมดละครับ คนละแบบ ถ้าไม่เพิ่มชุดคำสั่งครับ
โชว์ห่วยฟอนต์ของผมครับ https://www.facebook.com/jjfontjames/

TA Font

อ่อ ครับ ผมติดนิสัยชอบพิมพ์ สระ อำ ก่อนวรรณยุกต์ประจำเลยครับ 555+
แต่เขียนไว่ เผื่อมือใหม่ ใช้ฟ้อนแลบ 7 นะครับ
เพราะตอนผมทำครั้งแรก ไม่รู้ว่าเป็นบั๊ค ตอนนั้นงงมาก นึกว่าตัวเองทำอะไรผิด นั่งไล่โค้ดอยู่นานมาก
พยายามหาคำตอบจากหลายๆ ที่ก็ไม่เจอ กระทู้ของที่นี่ก็มีแต่เวอร์ชั่นเก่า
ไม่รู้จะไปปรึกษาใครเลย (ตอนนั้นกลุ่มฟ้อนใน FB ยังไม่ได้ตั้ง)
สุดท้ายเลยลองเอาฟ้อนต์ sarabun มาลองเปิดใน fontlab7 ดู จึงแน่ใจว่าน่าจะบั๊ค  :05: :05: :05:

Layiji

สอบถามคุณ Uvsov หน่อยครับ งงช่วงแถวๆนี้
รบกวนขอคำแนะนำด้วยครับ พอดีหาโค้ดไม่เจอ  :25: มันแปลว่าอะไรน่ะครับ

lookup ccmp_4 {
  # GSUB lookup 4, type 16 (Chaining Context)
    sub @ccmp2 uni0E33' lookup ccmp_5;
    sub @ccmp2 [uni0E48 uni0E49 uni0E4A uni0E4B uni0E4C]' lookup ccmp_7 uni0E33' lookup ccmp_6;
    sub @ccmp2 [uni0E48 uni0E49 uni0E4A uni0E4B uni0E4C]' lookup ccmp_8;
    sub @ccmp2 [uni0E38 uni0E39] [uni0E48 uni0E49 uni0E4A uni0E4B uni0E4C]' lookup ccmp_8;
  } ccmp_4;

นักเขียนการ์ตูนรายปี

uvSOV

โอ๊ะ!  หน้าตา code ใน FL มันกลายเป็นอย่างนี้หรอ มิน่า ถึงไม่เข้าใจกัน

ผม show ใน FF แบบ map กันตรงๆให้นะ
----------------
บรรทัดบนสุด    sub @ccmp2 uni0E33' lookup ccmp_5;

1. @ccmp2  คือ ชุด พยัญชนะไทย



2. uni0E33 คือ สระอำ



3. ccmp_5 คือ function การแปลง สระอำ( ำ) ให้เปลี่ยนจากสระอำตัวเดียวเป็น นิคหิต( ํ) กับ สระอา(า) แยกกัน 2 ตัวอักษร



สรุปความบรรทัดที่ 1 sub @ccmp2 uni0E33' lookup ccmp_5;
หมายความว่า  ก-ฮ ตามด้วย สระอำ( ำ) ให้เปลี่ยน สระอำ ให้กลายเป็น นิคหิต กับ สระอา

ดังนั้น  ก+ ำ จึงกลายเป็น ก+ ํ+า


uvSOV

ต่อ บรรทัดที่ 2 นะครับ

คือการจัดการกับคำว่า ต่ำ(ต่+ ำ)  ถ้ำ(ถ้+ ำ) อ๊ำ(อ๊+ ำ) ป๋ำ(ป๋+ ำ)

sub @ccmp2 [uni0E48 uni0E49 uni0E4A uni0E4B uni0E4C]' lookup ccmp_7 uni0E33' lookup ccmp_6;

หมายความว่า ก-ฮ ตามด้วยชุดวรรณยุกต์ [  ่  ้  ๊  ๋ ] เปลี่ยนตาม function ccmp_7 และตามด้วยสระอำให้ เปลี่ยนตาม function ccmp_6
function ccmp_7  จะเปลี่ยน ไม้เอก(  ่ ) ให้เป็น นิคหิต ไม้เอก (  ํ่ )  ไม้โท ไม้ตรี ก็เช่นกัน
function ccmp_6  จะเปลี่ยน สระอำ(  ำ )  ให้เป็น สระอา ( า )

สรุปคือ เมื่อเราพิมพ์คำว่า ต ไม้เอก สระอำ (ต่+ ำ) จะเปลี่ยนเป็น ต นิคหิต ไม้เอก (  ํ่ ) สระอา ( า )  -->  ตํ่+า

หมายเหตุ จะเปลี่ยน หมายถึงแค่การแสดงผลเท่านั้นนะครับ แต่ข้อมูลที่เราพิมพ์ลงไป ก็ยังเหมือนเดิมเรียงตามที่เราพิมพ์ทั้งหมด ข้อมูลดิบใน file ก็เหมือนเดิมทั้งหมด
พอเราเปลี่ยนฟอนต์ การแสดงผลก็จะเป็นไปตามฟอนต์นั้นๆ (หาก s/w รู้จัก feature ccmp ด้วยนะ)

หมายเหตุ 2  จะเห็นว่า mark จะมาช่วย ป ตรงนี้ เช่น ป่ำ ..คือไม่ต้องมาเสียเวลาทำ นิคหิต และ ไม้เอก แบบขยับไปทางซ้ายนิดนึงเพื่อหลบหาง ป แล้ว

uvSOV

บรรทัดที่ 3
sub @ccmp2 [uni0E48 uni0E49 uni0E4A uni0E4B uni0E4C]' lookup ccmp_8;

เป็นการจัดการกับคำว่า "โน้น" ไม่ใช้ไม้โทเดียวกับคำว่า "นี้"

โดยเปลี่ยน ไม้เอก โท ตรี จากตัวที่อยู่บน สระอิ อี (นี้) ให้มาใช้ตัวใหญ่กว่า ที่อยู่บนพยัญชนะ (โน้น)


บรรทัดที่ 4
sub @ccmp2 [uni0E38 uni0E39] [uni0E48 uni0E49 uni0E4A uni0E4B uni0E4C]' lookup ccmp_8;

อันนี้ ใช้จัดการคำว่า "นู้น"

ครับ

Layiji

ปัญหาคือผมหา ccmp_5  6 7 8 ไม่เจอ ครับ เลยงงว่ามันไปเรียกใช้ค่าตรงไหน  :05:
อ๋อออ งี้นี่เอง
นักเขียนการ์ตูนรายปี

uvSOV

Quote from: Layiji on 02 Jun 2021, 20:05 น.
ปัญหาคือผมหา ccmp_5  6 7 8 ไม่เจอ ครับ เลยงงว่ามันไปเรียกใช้ค่าตรงไหน  :05:
อ๋อออ งี้นี่เอง


ชื่อ function ผมตั้งไว้ให้อ่านรู้เรื่อง แต่พอย้ายค่าย กลายเป็นรหัสซะนี่  :07:  อาจต้องรบกวนเปลี่ยนเป็นชื่อที่อ่านเข้าใจกันทั่วด้วยครับ ..ขอบคุณ

iannnnn

Quote from: Layiji on 02 Jun 2021, 20:05 น.
ปัญหาคือผมหา ccmp_5  6 7 8 ไม่เจอ ครับ เลยงงว่ามันไปเรียกใช้ค่าตรงไหน  :05:
อ๋อออ งี้นี่เอง

มันอยู่อีกหน้า แท็บแรกสุดเลยครับ ถ้าจำไม่ผิดน่าจะ Prefix :30:

Layiji

นักเขียนการ์ตูนรายปี

iannnnn

Quote from: uvSOV on 02 Jun 2021, 18:04 น.
โอ๊ะ!  หน้าตา code ใน FL มันกลายเป็นอย่างนี้หรอ มิน่า ถึงไม่เข้าใจกัน

ก็นี่แหละครับ :05a:

SMF 2.1.7 © 2026, Simple Machines