ฟอนต์โอเพ่นซอร์สจากคัดสรรดีมาก

เริ่มโพสต์โดย Sungsit, 28 มิ.ย. 2015, 17:31 น.

0 สมาชิก และ 1 บุคคลทั่วไป กำลังเปิดอ่านโพสต์นี้

Sungsit

#45
ผมว่าเราแก้ปัญหาเฉพาะหน้าด้วยการ patch ที่ปลายทางก่อนละกันนะครับ เพราะจริงๆ Google Fonts ต้องการเฉพาะไฟล์ TTF (คุณเดฟคงเข้าใจ) ส่วนการอัพเดตซอร์สเนี่ยคงต้องคุยกันยาวและอาจต้องใช้เวลาเยอะเพราะเราใช้เครื่องมือไม่เหมือนกัน ผมคิดว่าเสาร์อาทิตย์นี้ ผมจะ patch ให้ครบทั้ง 12 ตระกูล เพราะส่วนใหญ่ใช้สคริปต์เดียวกันได้

ฟีเจอร์ที่เขียนใหม่ให้ CoreText เข้าใจก็มีแค่ ccmp ไอเดียคือให้มันทำทีละอย่าง โดยแบ่งขั้นตอนเดิมที่ซับซ้อนให้ง่ายขึ้น อย่างพวก contextual chaining เนี่ยแมคมันไม่เข้าใจ เอาเฉพาะปัญหาสระอำก่อนนะครับ เพราะฟอนต์ของคัดสรรฯ ชุดนี้มีเงื่อนไขพิเศษอยู่หลายตัว (เช่น วางวรรณยุกต์ไว้ที่ตำแหน่งล่างเป็นตำแหน่งเริ่มต้น, ย่อ ฎ ฎ ฬ เมื่อมีสระบน-ล่าง เป็นต้น) ผมจัดการสระอำโดยประยุกต์จากฟอนต์ Garuda ประมาณนี้ครับ

0. เอาฟีเจอร์ที่ decomp สระอำโดยไม่มีเงือนไขออกไป เพราะถ้าแมคมันเจอฟีเจอร์นี้ก่อน มันทำแค่นั้นแล้วโยนให้ mark & mkmk นิคหิตเลยเด้งขึ้นไปอยู่บนวรรณยุกต์
1. ถ้า พยัญชนะปกติ + สระอำ ให้ decomp สระอำ เป็น นิคหิต + สระอา
2. ถ้า พยัญชนะหางบน (ป ฝ ฟ) + สระอำ ให้ decomp สระอำ เป็น นิคหิตซ้าย + สระอา
3. ถ้า พยัญชนะปกติ + วรรณยุกต์ + สระอำ ต้องแบ่งเป็น 2 ขั้น
   3.1 เปลี่ยน วรรณยุกต์ เป็น นิคหิต + วรรณยุกต์ ก็จะได้ sequence พยัญชนะปกติ + นิคหิต + วรรณยุกต์ + สระอำ
   3.2 พอแมคมันทำ 3.1 เสร็จ เราถึงเปลี่ยน นิคหิต + วรรณยุกต์ + สระอำ เป็น นิคหิต + วรรณยุกต์ + สระอา
4. ถ้า พยัญชนะหางบน + วรรณยุกต์ + สระอำ ก็ต้องแบ่งเป็น 2 ขั้น
   4.1 เปลี่ยน วรรณยุกต์ เป็น นิคหิตซ้าย + วรรณยุกต์(ซ้าย) ก็จะได้ sequence พยัญชนะหางบน + นิคหิตซ้าย + วรรณยุกต์(ซ้าย) + สระอำ
   4.2 แล้วเปลี่ยน นิคหิตซ้าย + วรรณยุกต์(ซ้าย) + สระอำ เป็น ินิคหิตซ้าย + วรรณยุกต์(ซ้าย) + สระอา

คิดว่าไอเดียจัดการสระอำประมาณนี้น่าจะปรับใช้กับฟอนต์ไทยและลาวที่ต้องการทำ ccmp + mark + mkmk แทน liga ได้โดยไม่ทำให้แมคงอแง? ส่วนคนที่ต้องการทำวรรณยุกต์และสระชุดเดียวก็รวมข้อ 3 กับ 4 เข้าด้วยกันเลย แล้วใช้ mark & mkmk วางตำแหน่งแทน
เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases

suppakit

ขอบคุณคุณกิ๊บมากกกกกกครับ สำหรับการเข้ามาช่วย patch ฟอนต์ทั้ง 12 ตระกลูนี้ก่อน  :25: :25: :25: (หวังว่าคุณเดฟจะเข้าใจเช่นกันครับ)  :27:

ส่วนการอัปเดตตัว source file ผมพอเข้าใจแนวคิดของ Garuda ที่คุณกิ๊บช่วยอธิบายมาแล้วครับ (มันเป็นอย่างนี้นี่เอง)  :08:
คือเมื่อคืนผมลองนั่งไล่ๆ ดูสคริปต์ตัวฟอนต์ไฟล์ที่คุณกิ๊บ patch มาใน FontLab อยู่เหมือนกันครับ (แต่พอคุณกิ๊บอธิบายก็เข้าใจโครงสร้างง่ายขึ้น) แต่ Glyph name ไม่เหมือนกันอีก ถ้าจะหยิบมาใช้ก็คงต้องเขียนกันใหม่หมด (เนื่องจากฟอนต์ในโปรเจคนี้ยึดชื่อตาม adobe glyph list ตามที่คุณเดฟแนะนำครับ) ระหว่างนี้ผมจะลองแก้ source ควบคู่ไปด้วย และถ้าแก้เสร็จจะอัปขึ้น GitHub แล้วแจ้งคุณกิ๊บทราบนะครับจะได้ช่วยกันดู  :46:

:45: :45: :45:

Sungsit

ผมคิดว่าถ้าจะแก้ซอร์สเพื่องานระยะยาว เราคงต้องมานั่งทำงานด้วยกันซักวันสองแล้วมั้งครับ? ผมเดาว่าคุณเช่มี feature framework ของตัวเองสำหรับทำฟอนต์ตระกูลใหญ่ๆ ในชุดนี้ให้แสดงผลด้วยพฤติกรรมเดียวกัน เลยอยากแก้ที่ซอร์สให้เร็วที่สุดมากกว่า patch ชั่วคราว ตอนนี้เราคุยกันในเน็ตมันก็งงๆ ต่างคนต่างไม่คุ้นกับเครื่องมือที่อีกคนใช้ มันเลยอธิบายให้เห็นภาพลำบาก เปิดจอคอมฯ อธิบายกันน่าจะง่ายกว่า

ถ้าเห็นด้วยกับผม คุณเช่ก็นัดเวลาได้เลย หลังวันจันทร์หน้าผมน่าจะออกจากบ้านได้ (ช่วงนี้ต้องเฝ้าบ้านคนเดียวคอยให้ข้าวหมา 555) แต่ปัญหาคือผมนอนกลางวัน ตื่นตอนบ่าย (หมาผมไม่กินข้าวเช้า) กว่าจะออกจากบ้านและพร้อมทำงาน ออฟฟิศคุณเช่ก็คงปิดแล้ว จริงๆ ผมถือโอกาสไปเยี่ยมเยือนกะทัดรัดและเที่ยวชลบุรีพร้อมกับแก้ฟอนต์ได้นะครับ (หรือที่ไหนก็ได้ที่มีกาแฟกับอินเตอร์เน็ต) เพราะผมไม่ได้ออกจากบ้านมาเกือบปีแล้ว! ส่วนค่าแรงผมไม่คิดเพราะเป็นงานโอเพ่นซอร์สและฟอนต์ชุดนี้ก็เป็นฟอนต์เสรีสำหรับทุกคน
เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases

iannnnn


Sungsit

อ้างคำพูดจาก: iannnnn เมื่อ 13 พ.ย. 2015, 19:38 น.
เอาแล้วๆ :27b:

อย่ามาปลุกความเป็นเกย์ในตัวเค้านะตัวเอง  :48: :30:
เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases

Sungsit

เพิ่งอ่านเมลจากคุณเดฟ ตกลงไม่ต้อง patch แล้ว แก้ที่ซอร์สเลย
เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases

suppakit

อ้างคำพูดจาก: Sungsit เมื่อ 13 พ.ย. 2015, 18:18 น.
ผมคิดว่าถ้าจะแก้ซอร์สเพื่องานระยะยาว เราคงต้องมานั่งทำงานด้วยกันซักวันสองแล้วมั้งครับ? ผมเดาว่าคุณเช่มี feature framework ของตัวเองสำหรับทำฟอนต์ตระกูลใหญ่ๆ ในชุดนี้ให้แสดงผลด้วยพฤติกรรมเดียวกัน เลยอยากแก้ที่ซอร์สให้เร็วที่สุดมากกว่า patch ชั่วคราว ตอนนี้เราคุยกันในเน็ตมันก็งงๆ ต่างคนต่างไม่คุ้นกับเครื่องมือที่อีกคนใช้ มันเลยอธิบายให้เห็นภาพลำบาก เปิดจอคอมฯ อธิบายกันน่าจะง่ายกว่า

ถ้าเห็นด้วยกับผม คุณเช่ก็นัดเวลาได้เลย หลังวันจันทร์หน้าผมน่าจะออกจากบ้านได้ (ช่วงนี้ต้องเฝ้าบ้านคนเดียวคอยให้ข้าวหมา 555) แต่ปัญหาคือผมนอนกลางวัน ตื่นตอนบ่าย (หมาผมไม่กินข้าวเช้า) กว่าจะออกจากบ้านและพร้อมทำงาน ออฟฟิศคุณเช่ก็คงปิดแล้ว จริงๆ ผมถือโอกาสไปเยี่ยมเยือนกะทัดรัดและเที่ยวชลบุรีพร้อมกับแก้ฟอนต์ได้นะครับ (หรือที่ไหนก็ได้ที่มีกาแฟกับอินเตอร์เน็ต) เพราะผมไม่ได้ออกจากบ้านมาเกือบปีแล้ว! ส่วนค่าแรงผมไม่คิดเพราะเป็นงานโอเพ่นซอร์สและฟอนต์ชุดนี้ก็เป็นฟอนต์เสรีสำหรับทุกคน


กรี๊ดดดดดดดดดด ด้วยความยินดีและเป็นเกียรติอย่างยิ่งเลยครับคุณกิ๊บ เดี๋ยวผม DM ไปหานะครับ  :25: :25: :25:

นัดที่หน้าบอร์ดเดี๋ยวคนอื่นรู้หมดว่าเรานัดกันที่ไหน  :27: :27: :27:

iannnnn


Layiji

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

ปอมป๋วย

เป็นกระทู้ที่ครบรสมากฮะ

มีทั้งสาระที่ต้องอ่านซ้ำหลายรอบถึงจะ (เกือบ) เข้าใจ
กับแบบหรรษา ที่อ่านแล้วโป้งเดียว ไอ้สาระที่อ่านมาหายหมดเลย  :30:
ติดตาม และช่วยส่งเสียค่าเลี้ยงดูได้ที่ ธรรมดาสตูดิโอ

Sungsit

แจ้งให้พี่น้องทราบ: สรุปว่าเราได้สุมหัวหาวิธีแก้ซอร์สกันคืนวานที่คัดสรรดีมากแล้วนะครับ คุณเช่จะทยอยแก้ไปเรื่อยๆ แล้วอัพเดตฟอนต์ทุกตระกูล และคุณอนุทินก็แจ้งผู้มีหน้าที่รับผิดชอบใน Apple ให้รับทราบแล้ว เพราะมันไม่ใช่ความผิดของฟอนต์
เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases

iannnnn


suppakit

 :27: จดจำทุกอย่างในค่ำคืนนั้น ค่ำคืนแห่งความประทับใจ  :27:

Layiji

 :30: ประโยคนี้ทำให้สาระที่มีมาข้างต้นหายหมดเลย :30: :51:
นักเขียนการ์ตูนรายปี

Sungsit

ฮาครับฮา ทำให้รู้ว่าโปรแกรมทำฟอนต์ละตัวนี่คุยกันลำบากมาก FontForge เจนได้แต่ชื่อไม่ตรงกัน พอเปิดใน Glyphs ดันเจนไม่ได้ เปิดใน FontLab ได้แต่ดันเรียงฟีเจอร์ไม่เหมือนกันอีก แต่ก็ต้องแก้เพราะไม่รู้ว่าเมื่อไหร่ Apple จะแก้บั๊ก!
เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases

SMF 2.1.7 © 2026, Simple Machines