หน้า: 1 [2] 3
 
ผู้เขียน หัวข้อ: เทมเพลตฟอนต์ไทย F0ntUni v0.1  (อ่าน 75162 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
ฮือๆ~
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ผลทดสอบใช้งาน

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)
  ยกเว้น "วรรณยุกต์" บน "สระอำ" ไม่เลื่อนขึ้น(แสดงผลทับกัน)
« แก้ไขครั้งสุดท้าย: 24 ธ.ค. 2014, 16:56 น. โดย rern » บันทึกการเข้า
... > 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 แล้วมีปัญหาหรือครับ? 
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
รายงานเพิ่มเติม กรณี 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 > (ทดสอบ)
      - แสดงผลได้สมบูรณ์
      
      
      - Notes หน้าสารบัญ มีปัญหาเหมือน ข้อ 2. มาแปลก! ทั้งๆที่ตอนเปิดดูสมบูรณ์ดี
      
      - 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 > (ทดสอบ)
      - วรรณยุกต์ทับสระอำ
      - นิคหิต ไม่หลบหาง ป
      - ญ ฐ + สระล่างไม่ซ่อนเชิง
      

หมายเหตุ
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.

กรุณาชี้แนะด้วยครับ
« แก้ไขครั้งสุดท้าย: 25 ธ.ค. 2014, 21:29 น. โดย rern » บันทึกการเข้า
ผมงงตรงที่ทำไมต้อง Gen เป็น Thonburi.ttc ด้วยครับ? เพราะฟอร์แมต .ttc มันเป็น suitcase สำหรับ truetype fonts คือมันจะรวมทั้งตระกูลแบบมีหลายน้ำหนักและสไตล์ไว้ในไฟล์เดียว ตัวเทมเพลต FontUni ไม่ได้ตั้งใจให้ใช้งานเป็นฟอนต์ใน OS น่ะครับ เอาไว้ให้คนทำฟอนต์ที่ไม่ต้องการเสียเวลาทำ OpenType features สำหรับฟอนต์ไทย มันเลยมีแค่น้ำหนักเดียว

ถ้าจะ Gen เป็น .ttc ที่มีหลายน้ำหนักและสไตล์ก็ดูที่โปรเจ็คต์ฟอนต์บุญที่มีไฟล์  .sfd สำหรับ FontForge https://github.com/sungsit/boon-dev/tree/master/sfd แต่อันนี้ผมทำก่อนตัวเทมเพลตนะครับ ฟีเจอร์ไม่เหมือนกัน บั๊กก็คงไม่เหมือนกัน
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
ผมพอจะนึกออกแล้วว่าทำไมคุณถึง 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 ได้)
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
- 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 ยังยากเลย
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
ผลทดสอบใช้งาน - แบบ @font-face

Windows 8:
   Chrome, Opera - ใช้ได้สมบูรณ์
   Internet Explorer, Safari - มีปัญหาสระอำไม่หลบหาง ป ฝ ฟ
iOS 8:
   Safari, Chrome, Opera - ใช้ได้สมบูรณ์
Android 4:
   Chrome, Opera, Firefox - ใช้ได้สมบูรณ์
บันทึกการเข้า
iOS 8 ฮ่าๆ ฮือๆ
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ช่วยทดสอบใน Font Creator ด้วยครับ ลองกด F5 เทสพิมพ์ข้อความในตัวโปรแกรมเอง อักษรไม่เห็นเปลี่ยนตามที่เราต้องการ มันดันแสดงผลเป็นอักษรตามในเทมเพลต f0ntuni-a ขณะที่เทมเพลตนายพล 4.x กด F5 สามารถเทสพิมพ์ข้อความตามที่เราวางอักษรใหม่ลงไปได้ครับ

และสัญญาอนุญาติ CC 4.0 กรณีทำอักษรขายนี่ต้องลองลิ้งค์กลับมายังกระทู้นี้ด้วยหรือครับ หรือว่าไม่จำเป็นครับ
« แก้ไขครั้งสุดท้าย: 10 มี.ค. 2015, 16:18 น. โดย ganna » บันทึกการเข้า
ขอเริ่มต้นด้วยการเดา เพราะผมไม่เคยใช้ 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 ไปเลย เพื่อความสบายใจ
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
ทดสอบวาดตัว ก.ไก่ ในเทมเพลต b


ดูใน table แสดงผลปกติ


พอลองกด F5 เพื่อ Test font ตัว "ก" ดันเหมือน ก ของเทมเพลต


แต่เทมเพลตนายพล 4.x ไม่เป็นอาการนี้ครับ


ผมใช้ตัวทดลองใช้นะ http://www.high-logic.com/font-editor/fontcreator.html
ลองโหลดทดสอบดูก็ได้ครับ ขนาดไฟล์เวอร์ชั่นวินโดวส์รู้สึกไม่ถึง 10 MB ครับ
« แก้ไขครั้งสุดท้าย: 11 มี.ค. 2015, 13:43 น. โดย ganna » บันทึกการเข้า
ผมมีแค่ลินุกซ์กับแมคฮะ คงทดสอบไม่ได้ เพราะ FontCreator ต้องติดตั้งในวินโดวส์ แต่เท่าที่ดูจากภาพเดาว่าคงเป็นปัญหาที่โปรแกรมมากกว่าเทมเพลต เพราะตัวละตินใน test font ก็ไม่ใช่ของ f0ntuni (Arial?)

วิธี Debug (ต้องทำตามที่ผมบอกเป๊ะๆ เลยนะครับ ไม่งั้นผมเดาไม่ได้ว่าปัญหามันอยู่ตรงไหนเพราะผมไม่สามารถใช้โปรแกรมเองได้)

1. ถ้าสามารถปรับค่า settings/preferences ของโปรแกรมได้ ลองเช็คดูว่ามีอะไรที่มันตั้งค่าไว้บ้างในส่วนของ Test Font Interface (ถ้าผมเจอปัญหาแบบนี้ในแมคหรือลินุกซ์ ผมจะลบ font caches ก่อนเลย แต่ในวินโดวส์ผมไม่รู้)

2. จับภาพเทมเพลต a, b และ นายพล มาให้ผมดูหน่อยนะครับ เพื่อเปรียบเทียบ แต่ ต้อง ทดสอบด้วยประโยคที่ผมบอกไปแล้ว คือ พี่ป๋ำฎูนู๋น้ำเป่าฝุ่นหญู่ก้นปี่ (พิมพ์มาเต็มๆ เลยนะครับ ถ้าพิมพ์แค่ กอไก่ ผมก็จนปัญญาจะเดาต่อ)

3. ลองลบหรือปิด Opentype features ทั้งหมดของทั้งเทมเพลต a และ b แล้วทดสอบด้วยประโยคเดิมจากข้อ 2. ถ้าลบฟีเจอร์แล้วมันแสดงผลถูกต้องแปลว่าโปรแกรมไม่รองรับฟีเจอร์ของเทมเพลตฮะ ถ้ามันยังแสดงผลไม่ถูกต้องอยู่ดี ผมก็นึกไม่ออกแล้ว (อันนี้ก็แล้วแต่มุมมองว่าคุณจะโทษโปรแกรมหรือโทษเทมเพลต แต่สรุปได้ว่า มันใช้งานร่วมกันไม่ได้ เทมเพลตนายพลก็คงเป็นทางเลือกที่ดีกว่าสำหรับคุณ)
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
เกิดอารมณ์นอยจ๊ะทิงนอยเอามากๆ ครับ
ประเด็นคือ ผมใช้ OSX 10.11 แล้วดาวโหลด fontforge มาใช้ ตามคำแนะนำของ http://fontforge.github.io/en-US/downloads/mac/
พอ save as... เทมเพลต ทั้ง A และ B ออกมาแล้ว ก็เกิดความผิดพลาดจนต้องนอยนินอยน่อยหน่อย  อี๋~
นั่นก็คือ ตัว space และ uni00A0 อันตราธานไปซะดื้อๆ (ตามรูป)

ผมพยายามไล่ดาวน์โหลดตัวอื่นตั้งแต่ล่าสุดต่ำลงไปจนถึงรุ่นที่ออกเดือนกันยาปีที่แล้ว ก็พบยังมีอาการเดียวกันนี้

ครั้นพอใช้ fontforge เวอร์ชั่นดั้งเดิมใน อูบุนตู เปิด โปรแกรมก็ก็ซี้แหงแก๋ปิดตัวเองไปทุกครั้งไป

ตอนนี้ก็เลยมะงุมมะหงาหรา หาทางออกไม่ได้ครับ

บันทึกการเข้า
หน้า: 1 [2] 3
 
 
Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines | Thai language by ThaiSMF Valid XHTML 1.0! Valid CSS!