ดาวน์โหลด F0ntUni v0.1.1 (https://github.com/BoonUni/f0ntuni/releases/tag/v0.1.1)
F0ntUni หรือ ฟอนต์อยู่นี่ เป็นเทมเพลตฟอนต์ไทยแบบ Unicode ที่พยายามแก้ไขปัญหาทั่วไปที่คนทำฟอนต์ไทยต้องเจอ โดยใช้ OpenType Features ที่เหมาะสม (พยายาม Hack ให้น้อยที่สุด) เพื่อให้การทำฟอนต์เป็นเรื่องที่ง่ายขึ้นและสามารถใช้งานแบบข้ามแพล็ตฟอร์มที่หลากหลายได้ ที่มาที่ไปของเทมเพลตเกิดขึ้นที่นี่ พูดคุยและทดสอบกันอย่างจริงจัง(บ้าคลั่ง)ที่นี่ จึงตั้งชื่อว่า ฟอนต์อยู่นี่ (อ่านมหากาพย์ได้ที่ http://www.f0nt.com/forum/index.php/topic,21995.0.html (http://www.f0nt.com/forum/index.php/topic,21995.0.html))
การใช้งานคร่าวๆ (เดี๋ยวจะทยอยอัพเดตรายละเอียดทีหลังนะครับ ช่วงนี้ทดสอบหลายโปรแกรมในหลายโอเอส เลยมึน!)
1. F0ntUni A เหมาะสำหรับการทำฟอนต์ไว้ใช้งานกับโปรแกรมที่รองรับ OpenType Features ระดับสูง เช่น Adobe InDesign, Illustrator, Photoshop (อาหรับ) และเหมาะกับการทำฟอนต์เพื่อใช้งานกับเว็บบราวเซอร์สมัยใหม่ อย่าง FireFox และ Chrome ด้วย นอกจากนี้โปรแกรมส่วนใหญ่ใน Linux ก็สามารถแสดงผล F0ntUni A ได้ถูกต้อง (Distro ที่ใช้ Desktop environment ตระกูล GTK+ มี HarfBuzz หรือ Pango) แม้จะเรียกใช้งานฟีเจอร์เสริมไม่ได้ก็ตาม
2. F0ntUni B เหมาะกับการทำฟอนต์สำหรับโปรแกรมทั่วไปทั้งใน Mac, Windows และ Linux ที่รองรับฟีเจอร์ระดับสูงได้ไม่ดีนัก โปรแกรมส่วนใหญ่ที่ใช้งาน F0ntUni A ได้ก็สามารถใช้งาน F0ntUni B ได้ (ในกรณีของ Adobe ต้องสลับ text engine) ส่วน F0ntUni B Pali เอาไว้ทำฟอนต์สำหรับภาษาบาลี-สันสกฤตให้ใช้งานได้กับโปรแกรมความสามารถต่ำโดยเฉพาะครับ (จะพิมพ์บาลีก็ใช้วิธีเปลี่ยนฟอนต์ ประมาณนั้น)
ในช่วงแรก ผมแนะนำให้ใช้ F0ntUni B สำหรับคนที่คุ้นเคยกับการทำฟอนต์ไทยครับ เพราะต้องทำสระบน-ล่างและวรรณยุกต์หลายชุด แต่ถ้าใครเพิ่งเริ่มต้นหรืออยากทำฟอนต์แบบเร็วๆ ก็เลือก F0ntUni A เพื่ออนาคตที่ดีกว่า แต่ละเทมเพลตทำไว้หลายฟอร์แมตสำหรับโปรแกรมทำฟอนต์ที่หลากหลาย (อีกแล้ว) เช่น ไฟล์ *.sfd สำหรับ FontForge, *.ufo สำหรับ Robofont, GlyphsApp และ FontLab (ที่มี plugin สำหรับ .ufo), *.oft สำหรับทุกโปรแกรม และ *.fea สำหรับ import เฉพาะฟีเจอร์ หรือใช้งานกับ command line interface อย่าง Adobe Font Development Kit for OpenType (http://www.adobe.com/devnet/opentype/afdko.html)
สัญญาอนุญาต คือ Creative Commons Attribution 4.0 International (CC BY 4.0) (https://creativecommons.org/licenses/by/4.0/) เพื่อให้นำเทมเพลตไปใช้ทำฟอนต์ในเชิงพาณิชย์และวัตถุประสงค์อื่นๆ ได้อย่างอิสระ (ถ้าเป็น Open Font License จะมีข้อจำกัดในการเอาไปทำฟอนต์เพื่อขาย ถ้าเป็น GPL ก็จะมีเงื่อนไขให้ฟอนต์ที่ใช้เทมเพลตนี้ต้องเปิดเผยซอร์สโค้ดอีก ผมเลยคิดว่า CC BY 4.0 น่าจะเหมาะสมที่สุดสำหรับเทมเพลต)
หากมีข้อสงสัยหรือเจอปัญหาในการใช้งานเทมเพลตก็ถามไว้ที่นี่ไปก่อนนะครับ เพราะช่วงนี้ยังไม่ได้ทำเอกสารอธิบายรายละเอียดทางเทคนิค แต่อยากปล่อยเวอร์ชั่นแรกให้เอาไปใช้ทำฟอนต์แบบยูนิโค้ดกันก่อน เราจะได้รู้ว่ามีปัญหาตรงจุดไหนที่ต้องแก้ไขอีกบ้าง แล้วช่วยกันพัฒนาต่อไป (ท่านใดคุ้นกับ Git หรือไม่คุ้นแต่อยากร่วมเป็น Maintainer ก็บอกกันไว้ได้ครับ)
ขอแชร์ความรู้สำหรับมือใหม่นะครับ (รวมผมด้วย) เนื่องจากโปรแกรม FontLab เรียกใช้ฟีเจอร์แนวๆ ในเทมเพลตตัวนี้ไม่ได้ (รวมทั้ง FontForge 2014 ในแมค ปล่อยล่าสุดวันที่ 13-Apr-2014 20:34) วิธีพรีวิวว่าสระ-วรรณยุกต์ว่าถูกตำแหน่งหรือไม่
FontLab :
Copy อักษรตัวนั้นๆ เช่น ม กับ ไม้เอกต่ำ มา Paste ลงในหน้าต่าง Preview ถ้าต้องการ Copy หลายๆ ตัวก็กด จะกด ctr หรือ command ค้างไว้ คลิกเลือกจนพอใจแล้วค่อยก็อป
FontFrorge :
กด shift แล้วคลิกเลือกอักษรใดๆ เช่น ป ไม้เอกต่ำ-ซ้าย แล้วเปิดเมนู window > new metrics window
:46:
ยังไม่มีเวลาเขียนคู่มือการใช้งานเทมเพลต แต่ผมพบว่าทั้ง FontLab, RoboFont และ GlyphsApp มีความสามารถหลายอย่างเหมือนกันในส่วนที่เกี่ยวกับ OpenType เพราะดูเหมือนจะใช้เครื่องมือเดียวกันได้ คือ AFDKO (http://www.adobe.com/devnet/opentype/afdko.html) ของ Adobe และ Python scripts ใครใช้ FontLab ลองค้นวิธีใช้ AFDKO นะครับ เพื่อเพิ่มความสามารถของโปรแกรม เขาเรียก Macro มั้ง? ลองดู http://www.robofab.org/ (http://www.robofab.org/) ที่มีเครื่องมือสำหรับเพิ่มความสามารถให้ FontLab รู้จัก UFO format แต่ในความเห็นของผมโปรแกรม GUI สำหรับทำฟอนต์ที่ดีสุดสำหรับการทำ OpenType features ใน Mac ตอนนี้คือ RoboFont (http://robofont.com/)
ส่วน AFDKO เพิ่งจะมีเวอร์ชั่นสำหรับ Linux เมื่อต้นเดือนนี้เอง ผมเลยยังไม่ได้ศึกษาวิธีใช้มากมาย แต่โดยรวมแล้วมันมีเครื่องมือแบบ CLI ที่ใช้งานสะดวกสำหรับทั้ง Windows และ Mac ด้วย ที่สำคัญมันใช้งานกับทั้ง binary fonts และ text files ได้สะดวกด้วย แก้ไขซอร์สของโปรเจ็คต์ได้ง่าย หรือแม้แต่เขียนสคริปต์สำหรับจัดการหลายๆ อย่างได้แบบอัตโนมัติ (Hint, Validate, Generate) แปลว่าเราสามารถอัพเดตฟีเจอร์ของฟอนต์เดิมที่คอมไพล์แล้วได้ง่ายด้วย ดูตัวอย่าง Source Sans Pro (https://github.com/adobe/source-sans-pro) เป็น text files ล้วนๆ พร้อม build สคริปต์
ผมคิดว่า AFDKO น่าจะเหมาะสำหรับเป็นเครื่องมือพัฒนา OpenType features แบบข้ามแพลตฟอร์ม F0ntUni เวอร์ชั่นต่อๆ ไป คงได้ใช้ AFDKO ในการพัฒนา ส่วนในแง่การออกแบบฟอนต์ทุกคนก็สามารถใช้โปรแกรม GUI ตัวเดิมของตัวเอง วาด glyphs ตามแต่จะถนัด แล้วค่อยเพิ่มฟีเจอร์ทีหลัง น่าจะดีใช่ไหม?
สรุปสั้นๆ คือ ต่อไปผมจะพยายามแยกฟอนต์ฟีเจอร์ออกจากตัวเทมเพลต เพื่อให้เอาไปใช้อัพเดตฟอนต์เดิมที่แต่ละคนเคยทำไว้ได้สะดวกขึ้นด้วย (เพราะผมก็ต้องการอัพเดตฟีเจอร์ในฟอนต์เดิมของตัวเองเหมือนกัน) แต่คงยังไม่ใช่เร็วๆ นี้นะครับ ค่อยๆ พัฒนาเท่าที่เวลาจะอำนวย
หมายเหตุ: ผมเข้าใจแล้วว่าทำไมฟอนต์ดีไซเนอร์ฝรั่งบางคนกลายมาเป็นโปรแกรมเมอร์ในที่สุด เพราะการแสดงผลตัวอักษรในคอมพิวเตอร์เป็นเรื่องที่ซับซ้อนมากๆ และไม่มีใครทำเครื่องมือที่เหมาะกับความต้องการของเขา เขาเลยเขียนโปรแกรมเองซะเลย!
:08: ซึ่งมันโหดมากเลยครับ
อ้างคำพูดจาก: iannnnn เมื่อ 18 เม.ย. 2014, 23:35 น.
:08: ซึ่งมันโหดมากเลยครับ
ไม่ต้องห่วงครับ เทมเพลตแบบ .otf สำเร็จรูปก็ยังมีต่อไป เพราะใช้ขึ้นฟอนต์ใหม่ได้ง่ายสำหรับโปรแกรม gui ทั้งหลาย แต่จะเพิ่มรูปแบบ text files สำหรับ font geeks ที่ต้องการแก้ไขฟีเจอร์ด้วย cli หรือคนที่อยากสร้างเทมเพลตใหม่ของตัวเองด้วย AFDKO เช่น เพิ่มหรือลดชุดตัวอักษร, เพิ่มความฉลาดให้ฟอนต์ด้วยฟีเจอร์อื่นๆ เป็นต้น
ผมคิดว่า F0ntUni เป็นไกด์ไลน์มากกว่าเทมเพลตสำเร็จรูปนะ สามารถเติมออพชั่นที่แต่ละคนต้องการได้ถ้าเขาต้องการ เราแค่พยายามแก้ปัญหาพื้นฐานของฟอนต์ไทยไว้ให้เขาเริ่มต้นได้สะดวก
:12: เย้
ผมเพิ่งปล่อย F0ntUni v0.1.1 (https://github.com/BoonUni/f0ntuni/releases/tag/v0.1.1) เพื่อแก้บั๊กตัวสี่เหลี่ยมของ F0ntUni B และ B Pali ใน Adobe InDesign & Illustrator เวลาที่ใช้ Abobe World-Ready Composer โดยเพิ่ม 'mark' ฟีเจอร์กลวงๆ เพื่อหลอกมัน (Hack!) ส่วน F0ntUni A ไม่ได้แก้อะไร นอกจากปรับเวอร์ชั่นให้ถูกต้อง
ถ้าใครใช้ F0ntUni B/Pali อันเดิมอยู่ วิธีอัพเดตฟีเจอร์จากเวอร์ชั่นที่แล้ว คือ อิมพอร์ตไฟล์ f0ntuni-b.fea เข้าไปแทนอันเดิม หรือเปิดด้วย text editor แล้วก็อปปี้ไปใส่ใน OpenType ฟีเจอร์ของโปรแกรมทำฟอนต์ที่คุณใช้ (ไฟล์ *.fea เป็นแค่ text ธรรมดาครับ)
:46:
เอา F0ntUni B เวอร์ชั่นเดิมไปเปิดซิงแล้วครับ ใช้งานแล้วรู้สึกเท่ทีเดียว :12: เดี๋ยวจะลองอัพเดตฟีเจอร์ใหม่ดูครับ
......
เมื่อกี้ลองใช้ fontlab เปิดเทมเพลต ...B วางตัวอักษรภาษาไทยลงไปจนหมด แล้วลอง gen ดู ไม่สำเร็จ :08: มันฟ้องอย่างนี้ครับ
ERROR: There was a problem while compiling OpenType font. Final .otf font is not saved. Please, check OpenType features definition for errors
(คุณสังศิต ต้องการเอาไฟล์ไปดูไหมครับ)
ผมเลยทดลองเปิด F0ntUni B แล้ว gen จากตัวนี้เลย มันฟ้อง
[WARNING] <f0ntuni-b> The feature file OS/2 overrides TypoAscender and TypoDescender do not sum to the font em-square.
แต่ก็ได้ฟ้อนต์ otf ออกมา
แต่กับ fontforge ไม่มีปัญหาครับ
:46:
ขออนุญาตลบข้อความนะครับ
ส่งฟอนต์ที่มีปัญหามาใช้ผมเช็คดูก่อนก็ได้ครับ ช่วงนี้ผมจะยุ่งๆ นอนไม่ค่อยเต็มอิ่ม อาจจะตอบช้าหน่อยนะครับ
ถ้าลองพรินต์ฟอนต์เทมเพลตหรือฟอนต์บุญถึกมีปัญหาไหมครับ? ถ้ามีปัญหาก็คงเป็นที่เทมเพลตกับโปรแกรมที่สั่งพิมพ์ พรินเตอร์ไม่น่าเกี่ยว มันแค่รับการตีความจากโปรแกรมสั่งพิมพ์ ยกเว้นมันจะมีปัญหาไดรเวอร์ ลองแปลงเป็น pdf ก่อนพรินต์ด้วยก็ดีนะครับ ผมทำเอกสารในลินุกซ์ก็ไม่มีปัญหานะ
:56:
:46:
ผมลองจับ F0ntUni-A เป็นฟอนต์แสดงผลในระบบ Android 4.2 แสดงผลได้ดีเยี่ยมมากครับ สระ วรรณยุกต์ทุกตัวไม่มีปัญหาอะไรเลย
(http://img3.f0nt.com/05/10011c3419efd9d58c25e99493119bc4.jpg)
เหตุที่ต้องจับตัวนี้ยัดไปเพียวๆ เพราะว่า ผมลองใช้ฟอนต์ "บุญ" แล้วไม่สำเร็จ สระวรรณยุกต์ลอยผิดตำแหน่งเกือบหมด เช่น ไม้เอก ไม้โท อยู่สูงเกินไป สระอุ อู ต่ำเกินไป สระอิ ลอยอยู่เหนือหาง ปอปลา
พอเอาฟอนต์ ซีเอส ประกาศ ของผมซึ่งใช้ F0ntUni-B เป็นเทมเพลต ใส่เข้าไป ก็มีอาการเดียวกัน
หรือฟอนต์ "ครุฑ" ของคุณเทพพิทักษ์ ก็ยังผิดอยู่เล็กน้อย คือ พอพิมพ์คำว่า สระล่างตามด้วยวรรณยุกต์ มันจะสลับตำแหน่งกัน เช่น พิมพ์คำว่า อยู่ ไม้เอกจะวิ่งไปอยู่ล่าง สระอู จะกระโดดขึ้นมาอยู่บน ย.ยักษ์
ดังนั้น สาวกฟอนต์ที่กำลังจะทำฟอนต์เพื่อแสดงผลในระบบ Android แล้วสระวรรณยุกต์ไม่เพี้ยนผิดตำแหน่ง ผมแนะนำตัวนี้เลย
:12:
โทษทีครับ เพิ่งเห็นว่าเอาไปทดสอบใน Android ด้วย ผมว่าจะหาเวลาอัพเดตเทมเพลตอยู่เหมือนกัน
สำหรับ Android ถ้าจำไม่ผิด เขาใช้ HarfBuzz เป็น Text layout engine เลยเหมาะกับภาษาที่เขียนซับซ้อนแบบไทย ซึ่งใช้ mark & mkmk เข้มข้นอย่าง F0ntUni-A คือผมทำมาร์คไว้ทุกตัวอักษรเลย ซึ่งต่างจาก F0ntUni-B มาก ปัญหาเมื่อก่อนคือระบบปฏิบัติและโปรแกรมส่วนใหญ่รองรับภาษาซับซ้อนได้แย่มาก เราเลยต้องใช้วิธีแบบ F0ntUni-B เป็นหลัก (ถ้าผมจำไม่ผิด ดูฟีเจอร์ในฟอนต์ Noto ของ Google เป็นตัวอย่างก็ได้ครับ วางวรรณยุกต์ไว้ต่ำเป็นค่าตั้งต้นแล้วใช้ mkmk แล้วค่อยดึงขึ้นไปซ้อนสระบน)
แต่ตอนนี้แนวโน้มเริ่มเปลี่ยน ผมเดาว่าใน MacOS 10.10 เพิ่มความสามารถในการรองรับ OpenType ได้ดีขึ้น นั่นแปลว่าการทำฟอนต์โดยใช้เทมเพลต F0ntUni-A น่าจะมีปัญหาน้อยลง (ผมยังไม่ได้ทดสอบนะ แต่ลองดูฟอนต์บุญโฮมที่ใช้ mark & mkmk แล้วไม่เจอปัญหาแบบเดิมในแมค) และเว็บบราวเซอร์สมัยใหมส่วนใหญ่แสดงผล F0ntUni-A ได้ถูกต้อง ปัญหาใหญ่อย่างเดียวที่เหลือคือ ผู้ใช้ซอฟต์แวร์ของ Adobe ในไทยเคยชินกับการใช้เวอร์ชั่นที่ไม่รองรับภาษาที่ซับซ้อนมาทำงานกับฟอนต์ไทย ฟอนต์ที่ทำฟีเจอร์อย่าง F0ntUni-A ก็เลยเละ ซึ่งอันนี้ไม่ใช่บั๊กแต่เป็นความเคยชินของผู้ใช้ ทั้งๆ ที่ Adobe มี Text layout engine ที่รองรับภาษาซับซ้อนได้ดีไม่แพ้ HarfBuzz ให้เลือกใช้ แต่อยู่ในเวอร์ชั่นอาหรับและเอเชียใต้ซึ่งใกล้เคียงกับวิธีเขียนภาษาไทยมากกว่าละติน
ถ้าเราให้ข้อมูลผู้ใช้ Adobe ในไทยเข้าใจได้ว่าทำไมจึงควรใช้เวอร์ชั่นอาหรับ เราก็ไม่ต้องเสียเวลาทำเทมเพลตหลายแบบครับ (แต่คงยากอ่ะครับ เพราะฟอนต์รุ่นเดิมที่ใช้กัน เขาแฮ็คไว้เยอะ มันคงแสดงผลไม่ถูกต้องในเวอร์ชั่นอาหรับ ผมเดานะ)
:05:
ผลทดสอบใช้งาน
f0ntuni-0.1.1 > f0ntuni-a.sfd > [FontForge 2014-11-26 windows 8.1] > Generate Fonts... > f0ntuni-a.ttf
Windows 8.1 [MS Word 2013] -->>
สระบน - เยื้องหลบหาง ป ฝ ฟ ได้
สระล่าง - ลดเชิง ฐ ญ ได้ เลื่อนต่ำตาม ฎ ฏ ได้
วรรณยุกต์ เลื่อนสูงตามสระบน เยื้องหลบหาง ป ฝ ฟ และ เลื่อน+เยื้อง ได้
... > Generate Fonts... > Thonburi.ttc, SukhumvitSetUI.ttc
iOS 8.1.0 / 8.1.2 [Notes, Safari, Chrome] -->>
(ได้เหมือนใน MS Word 2013)
ยกเว้น "วรรณยุกต์" บน "สระอำ" ไม่เลื่อนขึ้น(แสดงผลทับกัน)
อ้างคำพูดจาก: rern เมื่อ 24 ธ.ค. 2014, 16:53 น.
... > Generate Fonts... > Thonburi.ttc, SukhumvitSetUI.ttc
iOS 8.1.0 / 8.1.2 [Notes, Safari, Chrome] -->>
(ได้เหมือนใน MS Word 2013)
ยกเว้น "วรรณยุกต์" บน "สระอำ" ไม่เลื่อนขึ้น(แสดงผลทับกัน)
อันนี้หมายถึงติดตั้ง F0ntUni-A ใน iOS หรือ gen Thonburi & Sukhumvit แล้วมีปัญหาหรือครับ?
รายงานเพิ่มเติม กรณี iOS 8
FontForge ...
1. Generate โดยตรงโดยไม่แก้ไข
1.1 FontForge > f0ntuni-a.sfd > [Generate Fonts...] > Thonburi.ttc
1.2 SSH > [Copy-Replace] > /System/Library/Fonts/Cache/Thonburi.ttc > [Respring]
1.3 Notes > (ทดสอบ)
- แสดงผลได้สมบูรณ์
(http://img3.f0nt.com/25/4b9c0477f8270a545794dd84dc6e3db0.png)
- Notes หน้าสารบัญ มีปัญหาเหมือน ข้อ 2. มาแปลก! ทั้งๆที่ตอนเปิดดูสมบูรณ์ดี
(http://img3.f0nt.com/25/b253f0d2aa958e728d190f36dde287cd.png)
- Safari, Chrome, Facebook App ก็เป็นเช่นเดียวกัน
2. แก้ไข PS Names แล้ว Generate
2.1 FontForge > f0ntuni-a.sfd > [Element] > [Font Info...] > [PS Names] > Fontname: | Family Name: | Name For Humans: = Thonburi > [Generate Fonts...] > Thonburi.ttc
2.2 SSH > [Copy-Replace] > /System/Library/Fonts/Cache/Thonburi.ttc > [Respring]
2.3 Notes > (ทดสอบ)
- วรรณยุกต์ทับสระอำ
- นิคหิต ไม่หลบหาง ป
- ญ ฐ + สระล่างไม่ซ่อนเชิง
(http://img3.f0nt.com/25/7d53e52882ef48e12c831e5400ef325f.png)
หมายเหตุ
Thonburi.ttc = Thonburi.ttf + Thonburi-Bold.ttf + Thonburi-Light.ttf
Safari, Chrome บางแห่งแสดง Font ที่ Generate จาก "f0ntuni-a.sfd" ไม่ทั้งหมดถ้ามีไม่ครบชุด
แยกเป็น 3 sfd > Generate TTC... หรือ Generate เป็น 3 ttf > Generate TTC... ได้ผลเหมือนข้อ 2.
กรุณาชี้แนะด้วยครับ
ผมงงตรงที่ทำไมต้อง Gen เป็น Thonburi.ttc ด้วยครับ? เพราะฟอร์แมต .ttc มันเป็น suitcase สำหรับ truetype fonts คือมันจะรวมทั้งตระกูลแบบมีหลายน้ำหนักและสไตล์ไว้ในไฟล์เดียว ตัวเทมเพลต FontUni ไม่ได้ตั้งใจให้ใช้งานเป็นฟอนต์ใน OS น่ะครับ เอาไว้ให้คนทำฟอนต์ที่ไม่ต้องการเสียเวลาทำ OpenType features สำหรับฟอนต์ไทย มันเลยมีแค่น้ำหนักเดียว
ถ้าจะ Gen เป็น .ttc ที่มีหลายน้ำหนักและสไตล์ก็ดูที่โปรเจ็คต์ฟอนต์บุญที่มีไฟล์ .sfd สำหรับ FontForge https://github.com/sungsit/boon-dev/tree/master/sfd แต่อันนี้ผมทำก่อนตัวเทมเพลตนะครับ ฟีเจอร์ไม่เหมือนกัน บั๊กก็คงไม่เหมือนกัน
ผมพอจะนึกออกแล้วว่าทำไมคุณถึง gen เป็น Thonburi.ttc เพราะ iOS ไม่มีวิธีเปลี่ยนฟอนต์ใช่ไหมเลยต้องแทนที่ default font ของระบบ?
ถ้าผมเข้าใจถูกต้อง คุณคง jailbreak เพื่อ ssh เข้าจัดการไฟล์ระบบ แต่ผมเดาว่ามันคงมีแอพจาก repo ที่ใช้ jailbreak ให้คุณติดตั้งฟอนต์เพิ่มได้โดยไม่ต้องแฮ็ค?
ผมไม่คุ้นกับ iOS นะ มีแค่ iPod touch รุ่นเก่าที่ไม่ได้ jailbreak แต่มันน่าจะมีวิธีอื่นที่ดีกว่าแทนที่ไฟล์เดิมไง?
ผมเดาว่าปัญหามันอยู่ที่การแฮ็คให้ฟอนต์นึงเป็นอีกฟอนต์นึง แล้ว gen เป็นฟอร์แมตที่ไม่เหมาะสมกับตัวมัน คือ .ttc เหมาะกับ Thonburi ที่รวมฟอนต์หลายน้ำหนัก ในขณะที่ f0ntuni มีน้ำหนักเดียว ถ้าคุณจะหลอก CoreText ของ Apple ก็ต้องเข้าใจด้วยว่ามันจัดการฟอนต์ในระบบยังไง เท่าที่ผมรู้มันจะ cache ฟอนต์ไว้มากมายเพื่อให้โอเอสแสดงผลได้รวดเร็ว ซึ่งอาจจะมีผลต่อฟอนต์ฟีเจอร์ที่ไม่ได้ cache
แต่ถ้าคุณยืนยันที่จะ gen f0ntuni-a เป็น Thonburi.ttc ต่อไป ผมแนะนำว่า เปลี่ยน font info ให้เหมือน Thonburi ทุกประการ รวมทั้งเปลี่ยน font weight/style ให้เหมือนในชุด Thonburi ทุกตัวด้วย (แต่ผมก็ไม่แน่ใจอยู่ดีว่ามันจะหลอก CoreText ได้)
- iOS 8 ไม่ยอมให้ติดตั้ง Font ด้วยวิธิการเดิมที่ใช้กับ iOS 7 (Font Profile สร้างเอง-ติดตั้งเองถูกห้ามเนื่องจากเป็นช่องโหว่ของระบบ)
- BytaFont2 ที่ใช้กันอยู่ก็เปลี่ยน Font โดยใช้วิธีเปลี่ยน PS Name เป็น Thonburi แล้วเอาไปทับไฟล์เดิมเหมือนกัน
- จากการทดลอง iOS 8 สนใจเฉพาะ "PS Name" เท่านั้น Weight / Style ไม่ทำให้เกิดปัญหาใดๆ(Font ของ iOS เองก็ตั้งคลาดเคลื่อนหลายตัว)
- iOS 8 ไม่สามารถแสดง OpenType Feature ที่เป็นการแทนที่แบบเงื่อนไขตัวนำตัวตาม(Contextual Substitution)ได้
- จึงเป็นที่มาของปัญหาในการแสดงผลตัว"สระอำ" และ "ญ ฐ" ที่อยู่ในกลุ่ม Glyph Composition/Decomposition <ccmp>
- ส่วน Mark Positioning <mark> และ Mark to Mark Positioning <mkmk> ไม่มีปัญหา
- @font-face สำหรับแสดงผล html ก็มีปัญหาวรรณยุกต์ลอย (ไม่เป็นตอน iOS 7)
- ตอนนี้ได้แต่ใช้วิธีแทนที่แบบธรรมดาทีละตัวๆ <rlig> ไปก่อน (ใน Thonburi.ttc ของ iOS เองก็ใช้วิธีนี้ล้วนๆเหมือนกัน)
- วิธีแก้เอาดื้อๆแบบนี้ดูเหมือนจะเยอะมาก แต่วางแผน Copy-Paste Find-Replace ดีๆกลับใช้เวลาน้อยกว่าพยายามแก้ปัญหาที่ควรจะแก้มาก จะแก้ปัญหาที่ iOS เองยังแก้ไม่ได้เลยทำไม? เสียแต่ว่าไฟล์ใหญ่กว่าปกติไปสิบเท่า
ผมไม่แน่ใจว่าคุณกำลังพยายามแก้ปัญหาอะไร? มองในมุมของ developer ผมคิดว่ามันไม่ใช่ปัญหาที่ต้องแก้ที่ฟอนต์นะ ถ้า OS มันไม่อยากให้ติดตั้ง!
1. ถ้าทดสอบฟอนต์เทมเพลตเพื่อแจ้งว่ามันแสดงผลไม่ถูกต้องใน iOS8 อันนี้ผมรับทราบแล้วนะครับ ขอบคุณครับ แต่คงแก้อะไรไม่ได้ เพราะในอดีด Apple มีปัญหากับการรองรับ OpenType อยู่แล้ว เขาเน้นเทคโนโลยีของตัวเอง คือ Apple Advanced Typography (AAT) ถ้าคุณต้องการแก้ปัญหาที่ฟอนต์ก็ต้องทำฟีเจอร์แบบ AAT ใส่ในฟอนต์ไงครับ เพราะ AAT คงรองรับเทคโนโลยีของตัวเองดีกว่า OpenType (มั้ง) ซึ่งผมไม่มีเวลาและปัญญาจะศึกษาเพิ่มเติม อีกอย่าง OS และซอฟต์แวร์ทั่วไปก็รองรับ OpenType มากกว่า AAT มากมาย แม้แต่ MacOS 10.10 (Yosemite) ก็แสดงผลฟอนต์ไทย-ลาวได้ดีขึ้น (รองรับ mark, mkmk) ผมเดาว่าเขาเพิ่ม API สำหรับ OpenType ใน CoreFont https://developer.apple.com/library/mac/documentation/General/Reference/APIDiffsMacOSX10_10SeedDiff/frameworks/CoreText.html
2. ปัญหาที่คุณว่ามามันเป็น platform specific สำหรับ iOS8 เท่านั้น ผมไม่คิดว่าฟอนต์เทมเพลตจะแก้ปัญหาของ OS ได้ และผมมั่นใจว่าไม่ได้ทำอะไรผิด ถ้า OS ไม่ต้องการให้ผู้ใช้ติดตั้งฟอนต์แบบทั่วไปที่ง่ายต่อการ debug สำหรับ developer เราก็ต้องเรียกร้องจากผู้ผลิต OS ให้เขาเพิ่มฟีเจอร์หรือแก้บั๊กนะครับ ให้เขารู้ว่ามีปัญหาตรงไหนยังไง ถ้าคุณต้องการให้ OS รองรับสิ่งที่คุณต้องการ ไม่ใช่พยายามทำให้ฟอนต์ใช้งานได้สมบูรณ์ใน OS โดยการแฮ็ค! (ไม่ว่าใครจะใช้วิธีแทนที่ฟอนต์ระบบแบบที่คุณว่ามา ผมก็เรียกว่าแฮ็คครับ)
3. สรุปว่าคุณมีปัญหากับ iOS8 นะครับ ต้องเรียกร้องกับ Apple ถ้าแจ้งคนทำฟอนต์เทมเพลตที่ไม่เข้าใจว่าทำไม Apple จึงไม่ให้ติดตั้งฟอนต์ใน iOS ผมคงตอบอะไรไม่ได้ เพราะแค่จะ debug ยังยากเลย
ผลทดสอบใช้งาน - แบบ @font-face
Windows 8:
Chrome, Opera - ใช้ได้สมบูรณ์
Internet Explorer, Safari - มีปัญหาสระอำไม่หลบหาง ป ฝ ฟ
iOS 8:
Safari, Chrome, Opera - ใช้ได้สมบูรณ์
Android 4:
Chrome, Opera, Firefox - ใช้ได้สมบูรณ์
iOS 8 :3005:
ช่วยทดสอบใน Font Creator ด้วยครับ ลองกด F5 เทสพิมพ์ข้อความในตัวโปรแกรมเอง อักษรไม่เห็นเปลี่ยนตามที่เราต้องการ มันดันแสดงผลเป็นอักษรตามในเทมเพลต f0ntuni-a ขณะที่เทมเพลตนายพล 4.x กด F5 สามารถเทสพิมพ์ข้อความตามที่เราวางอักษรใหม่ลงไปได้ครับ
และสัญญาอนุญาติ CC 4.0 กรณีทำอักษรขายนี่ต้องลองลิ้งค์กลับมายังกระทู้นี้ด้วยหรือครับ หรือว่าไม่จำเป็นครับ
ขอเริ่มต้นด้วยการเดา เพราะผมไม่เคยใช้ FontCreator
1. f0ntuni-b มีปัญหาเหมือน f0ntuni-a ไหมครับ? ถ้า f0ntuni-b แสดงผลถูกต้อง ผมก็เดาว่า FontCreator ไม่รองรับฟีเจอร์พวก GPOS ของ OpenType สำหรับภาษาที่ซับซ้อนอย่างไทย (FontLab ที่ผมเลยลองก็ไม่รองรับฟีเจอร์ของ f0ntuni-a ครับ)
2. พิมพ์ตัวละตินได้ปกติไหมครับ? ถ้าพิมพ์ได้ปกติก็คงเป็นปัญหาเดียวกับข้อหนึ่ง ถ้าตัวละตินก็พิมพ์ไม่ได้ อ่านต่อข้อ 3.
3. ลองเปิดทั้ง a และ b แล้วจับภาพมาให้ดูหน่อยนะครับ เผื่อจะนึกอะไรออกมากกว่านี้ เพราะผมไม่รู้ว่ามันพิมพ์ไม่ได้เลยหรือพิมพ์ได้แต่ตัวอักษรผิด ประโยคสำหรับหาบั๊กในเทมเพลตคือ "พี่ป๋ำฎูนู๋น้ำเป่าฝุ่นหญู่ก้นปี่" ถ้ามันแสดงผลไม่ถูกต้อง ผมก็พอจะเดาต่อได้ว่าปัญหามันอยู่ตรงไหน
ส่วนเรื่องสัญญาอนุญาตจะลิ้งก์มาที่นี่หรือไม่ก็ได้ครับ (เพราะผมอนุญาต) จริงๆ อยากปล่อยฟีเจอร์เป็น Public Domain แต่ตัวเทมเพลตมันมี glyphs จากฟอนต์บุญซึ่งใช้สัญญาอนุญาตอีกแบบ (GPLv3) ผมเลยเลือก CC4.0 แทน กะว่าถ้าปรับปรุงในอนาคตก็จะเปลี่ยน glyphs แล้วปล่อยเป็น Public Domain ไปเลย เพื่อความสบายใจ
ทดสอบวาดตัว ก.ไก่ ในเทมเพลต b
(http://img3.f0nt.com/11/6beddd5bd930d857353f86c9d17ecd83.jpg)
ดูใน table แสดงผลปกติ
(http://img3.f0nt.com/11/5611a803753c4a7749420bdb5d6c9dd6.jpg)
พอลองกด F5 เพื่อ Test font ตัว "ก" ดันเหมือน ก ของเทมเพลต
(http://img3.f0nt.com/11/409e1f7fb2661f4d411889c7e3b8e6cb.jpg)
แต่เทมเพลตนายพล 4.x ไม่เป็นอาการนี้ครับ
ผมใช้ตัวทดลองใช้นะ http://www.high-logic.com/font-editor/fontcreator.html (http://www.high-logic.com/font-editor/fontcreator.html)
ลองโหลดทดสอบดูก็ได้ครับ ขนาดไฟล์เวอร์ชั่นวินโดวส์รู้สึกไม่ถึง 10 MB ครับ
ผมมีแค่ลินุกซ์กับแมคฮะ คงทดสอบไม่ได้ เพราะ FontCreator ต้องติดตั้งในวินโดวส์ แต่เท่าที่ดูจากภาพเดาว่าคงเป็นปัญหาที่โปรแกรมมากกว่าเทมเพลต เพราะตัวละตินใน test font ก็ไม่ใช่ของ f0ntuni (Arial?)
วิธี Debug (ต้องทำตามที่ผมบอกเป๊ะๆ เลยนะครับ ไม่งั้นผมเดาไม่ได้ว่าปัญหามันอยู่ตรงไหนเพราะผมไม่สามารถใช้โปรแกรมเองได้)
1. ถ้าสามารถปรับค่า settings/preferences ของโปรแกรมได้ ลองเช็คดูว่ามีอะไรที่มันตั้งค่าไว้บ้างในส่วนของ Test Font Interface (ถ้าผมเจอปัญหาแบบนี้ในแมคหรือลินุกซ์ ผมจะลบ font caches ก่อนเลย แต่ในวินโดวส์ผมไม่รู้)
2. จับภาพเทมเพลต a, b และ นายพล มาให้ผมดูหน่อยนะครับ เพื่อเปรียบเทียบ แต่ ต้อง ทดสอบด้วยประโยคที่ผมบอกไปแล้ว คือ พี่ป๋ำฎูนู๋น้ำเป่าฝุ่นหญู่ก้นปี่ (พิมพ์มาเต็มๆ เลยนะครับ ถ้าพิมพ์แค่ กอไก่ ผมก็จนปัญญาจะเดาต่อ)
3. ลองลบหรือปิด Opentype features ทั้งหมดของทั้งเทมเพลต a และ b แล้วทดสอบด้วยประโยคเดิมจากข้อ 2. ถ้าลบฟีเจอร์แล้วมันแสดงผลถูกต้องแปลว่าโปรแกรมไม่รองรับฟีเจอร์ของเทมเพลตฮะ ถ้ามันยังแสดงผลไม่ถูกต้องอยู่ดี ผมก็นึกไม่ออกแล้ว (อันนี้ก็แล้วแต่มุมมองว่าคุณจะโทษโปรแกรมหรือโทษเทมเพลต แต่สรุปได้ว่า มันใช้งานร่วมกันไม่ได้ เทมเพลตนายพลก็คงเป็นทางเลือกที่ดีกว่าสำหรับคุณ)
เกิดอารมณ์นอยจ๊ะทิงนอยเอามากๆ ครับ
ประเด็นคือ ผมใช้ OSX 10.11 แล้วดาวโหลด fontforge มาใช้ ตามคำแนะนำของ http://fontforge.github.io/en-US/downloads/mac/ (http://fontforge.github.io/en-US/downloads/mac/)
พอ save as... เทมเพลต ทั้ง A และ B ออกมาแล้ว ก็เกิดความผิดพลาดจนต้องนอยนินอยน่อยหน่อย :41:
นั่นก็คือ ตัว space และ uni00A0 อันตราธานไปซะดื้อๆ (ตามรูป)
ผมพยายามไล่ดาวน์โหลดตัวอื่นตั้งแต่ล่าสุดต่ำลงไปจนถึงรุ่นที่ออกเดือนกันยาปีที่แล้ว ก็พบยังมีอาการเดียวกันนี้
ครั้นพอใช้ fontforge เวอร์ชั่นดั้งเดิมใน อูบุนตู เปิด โปรแกรมก็ก็ซี้แหงแก๋ปิดตัวเองไปทุกครั้งไป
ตอนนี้ก็เลยมะงุมมะหงาหรา หาทางออกไม่ได้ครับ
(http://img3.f0nt.com/19/3f728b0672199d7a53b140554f3889bb.png)
ดีใจจริงๆ ที่มาเจอเทมเพลต นี้ใช้งานง่ายมาก 555+ :45: :45: :45:
:10: :10: :10: :10:
ใครใช้เทมเพลตฟอนต์นี้ มีข้อมูลอัปเดตหน่อยนึงนะครับ
ตัวฟอนต์ยังมีปัญหาอยู่นี้ดดดเดียว
[FontLab 7] ปัญหาการ export font ไปใช้งานใน Word (https://forum.f0nt.com/index.php/topic,24773.0.html)
แก้ไขได้ตามวิธีการในลิงก์ข้างบนครับ