หน้า: 1 2 3 4 5 6 7 8 [9] 10
 
ผู้เขียน หัวข้อ: ขอเชิญร่วมทดสอบ Thai Font Template  (อ่าน 596293 ครั้ง)
0 สมาชิก และ 1 ขาจร กำลังดูหัวข้อนี้
สวัสดีครับ ในที่สุดผมก็สมัครสาวกสำเร็จแล้ว :-)

ได้เห็นความพยายามในกระทู้นี้ที่จะรองรับซอฟต์แวร์เกรดต่าง ๆ แล้ว รู้สึกชื่นชมครับ ฟอนต์ชุด TLWG ที่ผมดูแลอยู่ ไม่ค่อยมีโอกาสได้ทดสอบกับซอฟต์แวร์ต่าง ๆ แบบนี้ โดยเฉพาะ Adobe แนวทางที่ทำจะพยายามยึด spec และมาตรฐานต่าง ๆ เป็นหลักไว้ก่อนครับ คิดว่าไม่นอกลู่นอกทางเข้าไว้ แล้วสุดท้ายซอฟต์แวร์จะค่อย ๆ พัฒนาเข้าหาตัวมาตรฐานเอง การย้ายจาก liga hack มาใช้ฟีเจอร์อื่นของ OpenType ของที่นี่จึงน่าสนับสนุนครับ

ผมตามอ่านประเด็นต่าง ๆ แล้ว มีความเห็นดังนี้ครับ:

- ตาม spec ของไมโครซอฟท์แล้ว OpenType feature ที่ engine ต่าง ๆ จะเรียกใช้สำหรับภาษาไทยมีแค่ 4 ตัวเท่านั้นครับ คือ 'ccmp' (GSUB), 'kern' (GPOS), 'mark' (GPOS), 'mkmk' (GPOS) และผมจะไม่ใช้เกินนี้
  http://www.microsoft.com/typography/OpenTypeDev/thai/intro.htm

- เรื่องบาลี-สันสกฤตนั้น สิ่งที่ OpenType ออกแบบไว้คือ language tag ครับ ซึ่งที่ขึ้นทะเบียนไว้สำหรับอักษรไทย ('thai' script tag) ก็มี 'dflt' (พฤติกรรมปริยายของอักษร), 'KUY ' (ภาษากูย/ส่วย), 'PAL ' (ภาษาบาลี), 'SAN ' (ภาษาสันสกฤต), 'THA ' (ภาษาไทย) โดยฟอนต์ก็จะเตรียม language tag กำกับไว้ที่แต่ละภาษา (เช่น กฎ 'ccmp' สำหรับตัดเชิง ญ ฐ ในฟอนต์ TLWG จะใส่ 'PAL ' และ 'SAN ' language tag เอาไว้ แต่ไม่ใส่แท็กภาษาอื่น) และผู้เตรียมข้อมูลก็จะต้อง markup ข้อความว่าเป็นภาษาบาลีหรือสันสกฤต เช่น ใน HTML ก็ใช้แท็ก lang="pi" สำหรับบาลี และ lang="sa" สำหรับสันสกฤต
ตัวอย่างการใช้กับฟอนต์กินรี: http://linux.thai.net/~thep/test/palitest-woff.html
ใน LibreOffice ถ้าจำไม่ผิดจะใช้แท็ก :lang=pi ต่อท้ายชื่อฟอนต์ เช่น ป้ายเลือกข้อความบาลี แล้วก็กำหนดฟอนต์เช่น "Kinnari:lang=pi" (เขียนจากความทรงจำนะครับ เพราะตอนนี้ยังไม่มี LibreOffice ใกล้มือให้ทดสอบ)

- 'salt' ผมคิดว่าอาจใช้ได้กับบาง app ที่มี UI ให้เลือก alternate glyph เท่านั้นน่ะครับ ในขณะที่ language tag เป็นฟีเจอร์ที่อักษรต่าง ๆ ในโลกต้องแยกแยะอยู่แล้ว (เช่น ใช้อักษรอารบิกไปเขียนภาษาอูรดู, เปอร์เซีย, ซีเรีย ก็อาจมีรายละเอียดปลีกย่อยที่ต่างกัน) app ต่าง ๆ ควรมีแนวโน้มที่จะรองรับมากกว่า และการใช้ language tag ก็ทำให้ผู้ใช้สามารถคีย์ไปตามปกติได้โดยไม่ต้องหยุดมาเลือก alternate glyph น่ะครับ

- "ฤา" กับ "ฤๅ" ถือว่าเป็นคนละข้อความกัน และฟอนต์ไม่ควรหลอกผู้ใช้ว่าเป็นข้อความเดียวกันครับ (คีย์ผิดก็ไม่รู้ตัว, search ข้อความไม่เจอก็ยังไม่รู้ตัว ฯลฯ)
บันทึกการเข้า
เจ๋ง โอ้ สวัสดีครับและขอขอบคุณสำหรับข้อมูลวามรู้อันมีค่าครับผม
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
คุณเทพพิทักษ์มาแล้ว! ผมมีเรื่องอยากจะถามเกี่ยวกับพวก text layout / shaper พอดี คือมันมี library หลายตัวมากจนผมงง อย่าง Harfbuzz, Pango, ICU, CoreText, Uniscribe, Graphite เป็นต้น และผมไม่รู้ว่ามันทำงานต่างกันยังไง?

ผมเข้าใจว่า lib พวกนี้มีไว้ให้ผู้ผลิตซอฟต์แวร์ใช้เพื่อให้รองรับการแสดงผลฟอนต์สำหรับภาษาเขียนที่ซับซ้อนและหลากหลาย แต่ผมคิดว่าการจัดตำแหน่งตัวอักษรไทยและลาวไม่ได้ซับซ้อนถึงขนาดต้องรอพึ่ง lib ใหญ่ๆ พวกนั้น เราแค่ต้องทำให้ระบบปฏิบัติการเข้าใจตำแหน่งที่จะวางวรรณยุกต์, สระบน-ล่าง และเปลี่ยน glyphs บางตัวสำหรับภาษาอื่นที่เขียนด้วยตัวไทย (ฐ ญ) ที่ซับซ้อนหน่อยก็มีแค่ปัญหาสระอำกับวรรณยุกต์

ผมเลยมีไอเดียว่าเป็นไปได้ไหมที่เราจะทำ lib เล็กๆ เพื่อจัดการปัญหาพื้นฐานสำหรับฟอนต์ไทยโดยเฉพาะครับ? (ผมนึกถึงพวก terminal emulator ที่ไม่เข้าใจ OpenType มากมายด้วย)

ผมเข้าใจว่า Harfbuzz ก็พยายามทำอะไรแบบนี้ใน desktop environment แต่ scope ของเขาจะกว้างสำหรับหลายภาษา เวลาเราอยากจะเปลี่ยนอะไรก็ต้องรอเขา ผมเห็นว่าการแก้ปัญหาที่ตัวฟอนต์มันน่าอึดอัดที่ต้อง hack ใส่ฟีเจอร์โน่นนี่ที่ไม่จำเป็นลงในตัวฟอนต์ (อย่าง salt, ssXX ที่ผมใส่ไว้)

ผมเห็นตัวอย่าง libthai ที่คุณเทพพิทักษ์ทำไว้จนเป็นมาตรฐานในลินุกซ์แทบจะทุกดิสโทร ซึ่งมันช่วยให้ระบบปฏิบัติการมีวิธิจัดการข้อมูลภาษาไทยโดยเฉพาะ แต่มันก็คนละเรื่องกับฟอนต์ ผมเลยไม่แน่ใจว่าถ้ามี lib สำหรับ render ตัวอักษรไทยในฟอนต์โดยเฉพาะมันจะ make sense รึเปล่าในมุมมองของนักพัฒนาครับ?

เดี๋ยวผมสร่างงานแล้วจะมาพูดคุยเพิ่มเติม เพราะผมเริ่มจะคิดนอกเรื่อง OpenType เกินไปหน่อยแล้ว
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
เทคโนโลยีฟอนต์มันซับซ้อนเกินกว่าจะเขียนไลบรารีเพื่อประมวลผลภาษาใดภาษาหนึ่งโดยเฉพาะครับ ตั้งแต่คอมพิวเตอร์ก้าวเข้าสู่ยุคยูนิโค้ด ซอฟต์แวร์ก็ต้องออกแบบให้รองรับข้อความทุกภาษาพร้อมกัน (multilingualization) แทนที่จะรองรับทีละภาษา (localization) ฟอนต์แบบ OpenType เลยต้องออกแบบฟีเจอร์ต่าง ๆ ไว้รองรับทุกภาษา แล้วให้ shaping engine เลือกประมวลผลแต่ละภาษาเอา ความซับซ้อนมันอยู่ที่ core engine ที่ต้องรองรับฟีเจอร์ต่าง ๆ นี่แหละครับ เขียนไลบรารีเองมีหวังกระอักเลือดตาย แถมไม่มีใครมาเรียกใช้ด้วยครับ

สำหรับ libthai นั้น เป็นไลบรารีที่เขียนเพื่อไปหาช่องทางเสียบเข้าไปใน framework ต่าง ๆ ที่เขามีอยู่แล้ว ซึ่งที่เกี่ยวกับการแสดงข้อความก็มีโค้ดส่วนรองรับการใช้ PUA glyph ภาษาไทย (กล่าวคือ พวกตัวหลบทั้งหลาย) ของ Apple และ Microsoft แต่สุดท้ายก็ไม่มีใครมาเรียกนะครับ ต้องลงเอยด้วยการเขียน spec ไปบอกนักพัฒนา Harfbuzz ให้เขาบรรจุลงใน engine ของเขา:
  http://linux.thai.net/~thep/th-otf/shaping.html

แต่โค้ดส่วนนี้ก็เป็นการรองรับ legacy font จาก Windows XP เท่านั้น ฟอนต์ใหม่ ๆ คงย้ายไปใช้ OpenType กันหมดแล้ว

สำหรับปัญหาการ hack ต่าง ๆ ผมคิดว่าแก้ได้ด้วยการศึกษา spec ทางเทคนิคที่เขากำหนดไว้ครับ ถ้าเข้าถูกช่องแล้วก็ไม่ต้อง hack ทั้งนี้อยู่บนข้อสมมุติว่าซอฟต์แวร์ต่าง ๆ ทำตามมาตรฐานด้วยนะครับ (หรือบางทีหมายถึงผู้ใช้ด้วย ที่ต้องทำให้ถูกหลักการ) แต่ถ้าซอฟต์แวร์ไม่รองรับ ก็ค่อยมาวิเคราะห์หาทางแก้กันอีกที ซึ่งก็ควรมีหลักการรองรับเช่นกัน ไม่งั้นจะเกิด common practice ของผู้ใช้ให้ตามแก้ทีหลังได้ครับ (เช่น กรณี "ฤา/ฤๅ" หรือกรณี hack เลขไทยของ Sarabun IT9)
บันทึกการเข้า
ผมส่องดูซอร์สโค้ดของ Pango และ HarfBuzz ก็พบมรดกของคุณเทพพิทักษ์อยู่ในนั้นครับ Pango มีโมดูลไทย (ถ้าผมเข้าใจไม่ผิดต้องคอมไพล์พร้อม libthai headers?) ส่วน HarfBuzz ก็เอาสเปค OpenType ที่คุณเทพเขียนไว้ใส่เป็น hb-ot-shape-complex-thai แล้ว มีฟังชั่น preprocess_text_thai ซึ่งใกล้เคียงกับ lib เล็กๆ ที่ผมหมายถึงในโพสต์ก่อนหน้านี้ครับ (อย่างน้อยผมอุ่นใจที่รู้ว่ามี opensource lib ทำไว้แล้ว แม้จะเพื่อ legacy font ของโอเอสแต่ละเจ้าก็ตาม) ถ้าผมเข้าใจไม่ผิด HarfBuzz ไม่ใช่แค่ shaper แต่ทำหน้าที่เป็นเหมือน OT driver สำหรับ shaper ตัวอื่นๆ ด้วย ผมทดสอบ OT shaper ด้วย hb-view ใน Mac แล้วประทับใจ (ใน Debian/Ubuntu hb-view จะรวมอยู่ใน libharfbuzz-bin) เราสามารถเลือกข้าม native shaper ของโอเอสได้ด้วย API ของ HB อันนี้คงเป็นข้อดีสำหรับผู้ผลิตซอฟต์แวร์ที่ต้องการใช้ HB ดูแลการแสดงผลฟอนต์โดยเฉพาะ ไม่เกี่ยวกับคนทำฟอนต์โดยตรงนะครับ

ผมรวมสคริปต์และภาพที่ทดสอบด้วย hb-view กับ pango-view ไว้ใน F0ntUni branch 0.2 สรุปโดยรวมคือ HarfBuzz OT จัดตำแหน่งตัวอักษรไทยใน Mac ได้ดีกว่า Pango ครับ (ซึ่งเละเลย) ผมคิดว่า HarfBuzz เป็นอนาคตที่ดีกว่าสำหรับทั้งผู้ผลิตซอฟต์แวร์และคนทำฟอนต์แบบ OpenType (ถ้าผู้ผลิตโอเอสมี API ให้ปิด native shaper ด้วยจะดีมาก ฮา! :)

นอกเรื่องไปไกล ทีนี้มาเข้าเรื่องฟอนต์เทมเพลตนะครับ มี 2 เรื่องหลักๆ ที่ผมอยากปรึกษาและขอความเห็นจากคุณเทพเกี่ยวกับมาตรฐาน เอาไว้เป็นแนวทางสำหรับการพัฒนาฟอนต์ที่ใช้งานได้ข้ามแพลตฟอร์มครับ

1. OT features ที่จำเป็นต้องใช้

ตอนนี้ F0ntUni ทำเทมเพลตไว้ 2 แบบ คือ แบบ A ที่ไม่พึ่งตัวหลบโดยใช้ mark & mkmk เป็นหลัก (แต่สลับตำแหน่งนิคหิตกับวรรณยุกต์ด้วย liga) กับ แบบ B ที่ใช้ตัวหลบโดยไม่พึ่งฟีเจอร์อะไรใน GPOS

1.1 GSUB ccmp จำเป็นแน่ๆ สำหรับการทำ glyph substitute, contextual substitute

1.2 GSUB locl อันนี้ผมก็คิดว่าจำเป็นสำหรับ localize ภาษาบาลี-สันสกฤตที่เขียนด้วยตัวอักษรไทย ผมเข้าใจว่าฟอนต์ในชุด TLWG ใช้ ccmp ซึ่ง FireFox รองรับทั้ง ccmp และ locl โดยอัตโนมัติ เมื่อกำหนด lang=pi-TH และ lang=sa-TH (ตอนนี้มีแค่ FireFox ที่รองรับ lang attribute เพื่อระบุตัวอักษรตามภาษาใน html นะครับ ส่วน HarfBuzz และ Pango รองรับ locl อยู่แล้วจากที่ผมทดสอบ) แต่ผมจะเห็นต่างจากคุณเทพในแง่การเลือกใช้ฟีเจอร์ เพราะโดยทั่วไปฟอนต์ Latin, Cyrillic, Arabic และอื่นๆ ที่มีตัวอักษรใน code point เดียวกันแต่ที่ใช้เขียนในภาษาที่ต่างกันจะใช้ฟีเจอร์ locl เพื่อแสดงผล localized form (หรือ preferable form) ยกตัวอย่างเช่น Romanian Latin, Turkish Latin, Russian Cyrillic, Bulgarian Cyrillic ผมคิดว่าบาลีไทยกับสันสกฤตไทยก็อยู่ในกรณีเดียวกัน เพียงแต่ไม่ค่อยมีใครใช้ locl กับตัวอักษรไทย ผมเลยเห็นว่าใช้ locl เพื่อแสดง ฐ ญ ไม่มีเชิงน่าจะเหมาะสมกว่าใช้ ccmp ในแง่ semantic ครับ และ W3C ก็ recommend ไว้ใน font module ให้เป็น default feature สำหรับผู้ผลิตบราวเซอร์ด้วย ต่อไปบราวเซอร์ที่ปฏิบัติตามความเห็นของ W3C ก็ต้องรองรับ locl เป็นค่าตั้งต้นกันมากขึ้น รวมถึง ccmp, mark, mkmk ด้วย (ผมเป็น web developer น่ะครับ เลยเน้นทำฟอนต์ให้แสดงผลในเว็บได้เหมาะสม)

ส่วนการที่ผมใส่ salt & ssXX ไว้สำหรับ ฐ ญ ก็เพื่อแก้ปัญหาให้โปรแกรมของ Adobe, word processor และเว็บบราวเซอร์ที่ไม่รองรับ locl มีทางเลือกใช้ ฐ ญ ไม่มีเชิงแบบง่ายๆ ถ้ามันรองรับ 2 ฟีเจอร์นี้ไม่ตัวใดก็ตัวหนึ่ง (ไม่ต้องใช้วิธี insert ทีละตัว หรือในกรณีของบราวเซอร์ก็เรียกผ่าน CSS ได้ประมาณนั้น) ถ้าต่อไปโปรแกรมส่วนใหญ่รองรับหรือมีวิธีเข้าถึง locl ฟีเจอร์ salt & ssXX ก็ไม่จำเป็นต้องใส่ไว้ครับ

1.3 GPOS mark & mkmk อันนี้จะมีปัญหาใน MacOS เท่าที่ผมรู้ Core Text ของ Apple ไม่เข้าใจ mark กับ mkmk ดังนั้นฟอนต์ไทยที่พึ่งสองฟีเจอร์นี้จึงแสดงผลไม่ถูกต้องในโปรแกรมทั่วไปของ Mac (ยกเว้นจะทำฟีเจอร์เฉพาะสำหรับ AAT ใส่ไว้ในฟอนต์ด้วย ซึ่งผมยังไม่ได้ศึกษา) ในอีกมุมหนึ่ง ถ้าฟอนต์ไม่มีฟีเจอร์ในตาราง GPOS เลย text engine บางตัวจะไม่คิดว่าฟอนต์ตัวนั้นเป็น complex script มันจะไม่เปิดฟีเจอร์ mark & mkmk ให้ (text engine ของ Adobe เป็นตัวอย่าง ไม่แน่ใจว่า Uniscribe ของ Windows ตีความแบบนี้ด้วยรึเปล่า?) แล้วมันจะแสดงผล PUA glyphs ไม่ถูกต้อง (ภาพตัวอย่างเทมเพลต F0ntUni B เดิมที่ไม่มีฟีเจอร์ใน GPOS เลย) อีกอย่างถ้าต้องการให้ฟอนต์ไทยรอบรับภาษาชาติพันธุ์ก็ต้องมี mark กับ mkmk อย่างหลีกเลี่ยงไม่ได้ (ยกเว้นจะใช้ Graphite ใส่เพิ่มต่างหาก ซึ่งผมก็ยังไม่ได้ศึกษา) ดังนั้นในความเห็นของผมเพื่อความปลอดภัยฟอนต์ไทยแบบ OT ต้องมีทั้ง GSUB และ GPOS (แม้จะเป็นแค่ฟีเจอร์กลวงๆ ก็ตาม)

2. ควรใส่ PUA glyphs แบบไหน

ตอนแรกผมไม่เข้าใจว่าทำไมถึงมี Windows PUA กับ Mac PUA เพราะ Unicode ไม่ได้กำหนดไว้ซักหน่อยว่าต้องใส่ตัวหลบไทยไว้ที่ code point ไหน แต่หลังจากอ่านสเปคที่คุณเทพเขียนไว้ผมถึงได้เข้าใจว่าเป็นเหตุผลด้าน compatibility เพราะฟอนต์ไทยของโอเอสเหล่านั้นเขาใส่ไว้แบบนั้นนานแล้วแต่ดันใส่ไม่เหมือนกัน! (สำหรับท่านที่ไม่คุ้นกับยูนิโค้ด PUA คือ Private Use Area ที่ยูนิโค้ดไม่ได้กำหนดว่า code point ในส่วนนี้เป็นของตัวอักษรใด)

ตอนนี้ผมใส่ PUA glyphs ในสำหรับ F0ntUni B ที่ช่วง EE0D-EE4D, F0E48-F0E4D, FEE48-FEE4D เหตุผลเพราะมันยังว่างอยู่และผมอยากให้เลขฐานสิบหก 3 ตัวหลังมันจำง่าย เช่น ไม้เอก 4 ตำแหน่งลงท้ายด้วย E48 เหมือนกัน 0E48, EE48, F0E48, FEE48 เป็นต้น ไม่ได้ยึดตามของทั้ง Windows และ Mac คำถามคือการใส่ PUA glyphs ไม่ตรงกับฟอนต์เก่าในโอเอสไหนเลยมันจะสร้างปัญหาอะไรรึเปล่าครับ? แล้วถ้ามันสร้างปัญหาเราควรเลือก PUA glyphs แบบ Windows หรือ Mac? (การใส่ไว้ทั้งสองแบบไม่ใช่ทางเลือกของผมแน่ๆ เพราะต้องมีไม้เอก 7-8 ตัว!)

ถ้าผมเข้าใจไม่ผิด HarfBuzz จะจัดการฟอนต์ไทยที่ไม่ใช่ OT จากโอเอสเก่าให้แสดงผลได้ถูกต้องด้วย เพราะเขาทำ glyph mapping ไว้ให้ (แต่อ่านจากคอมเมนต์ในโค้ดเขายึดตาม Uniscribe ของ Windows มากกว่า Mac นะ โดยเฉพาะเรื่อง reordering นิคหิตกับวรรณยุกต์)

นอกจากนี้ถ้ามีคำแนะนำอื่นๆ ก็เสนอไว้ได้ครับ จริงๆ ผมสนใจหลายโครงการของคุณเทพ โดยเฉพาะโครงการอักษรอีสานและภาษาชาติพันธุ์ (ซึ่งผมก็เพิ่งรู้ว่ามีอักษรธรรมเมื่อไม่นานนี่เอง) แต่ไม่แน่ใจว่าผมจะเข้าไปมีส่วนร่วมและเรียนรู้ได้ทางไหนบ้าง?
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
ไม่ได้เข้ามาอ่านเสียนาน ขออภัยด้วยครับ

ใช่ครับ Harfbuzz กลายเป็นมาตรฐานของ freedesktop.org ซึ่ง text rendering engine ของเดสก์ท็อปเสรีต่าง ๆ จะนำไปใช้ โดยอยู่ใน layer ของ OT shaping ซึ่งอยู่ใต้ text layout (การจัดบรรทัด) ของ Pango อีกที

ส่วนที่ Pango เรียกใช้ LibThai นั้น ไม่เกี่ยวกับ shaping แต่เป็นเรื่องการตัดคำของภาษาไทยครับ

เรื่องฟีเจอร์ GSUB ผมใช้แค่ ccmp เพราะอิงตามสเปคของไมโครซอฟท์ซึ่งเป็นเจ้าของเทคโนโลยีน่ะครับ และนักพัฒนาไมโครซอฟท์ที่ได้คุยกันก็แนะนำว่าอย่างนี้ แต่ถ้ามีข้อกำหนดของ W3C ก็น่าสนใจครับ ว่ามันจะส่งผลมาถึงเดสก์ท็อปด้วยหรือไม่

กรณี ญ ฐ บาลีอาจจะยังไม่เคยมีการหยิบยกขึ้นมาพูด ไมโครซอฟท์ก็เลยไม่ได้กำหนดอะไรออกมา ซึ่งจะว่าไปก็หาช่องทางพูดคุยได้ยากเหมือนกันครับ

เรื่อง blank GPOS/GSUB เป็นเรื่องที่ต้องเดาใจนักพัฒนาเหมือนกันครับ อย่างมอดูล Pango เก่าที่ผมเคยเขียน (ตอนนี้โดนโละทิ้งไปใช้ Harfbuzz แทนแล้ว) ผมจะ detect ว่ามี GPOS/GSUB ในฟอนต์หรือไม่ ถ้ามีก็จะวาดแบบ OpenType ถ้าไม่มีค่อย fallback ไปใช้ PUA ซึ่งตรรกะจะสวนทางกับที่คุณ Sungsit กล่าวไป ผมไม่แน่ใจว่าใน Harfbuzz อาจจะใช้ตรรกะแบบผม เพราะตอนบอกสเปคเขาไปก็อธิบายเขาแบบนี้

เรื่อง PUA glyphs สำหรับผมจะเลือกเอาแบบใดแบบหนึ่งระหว่าง Windows กับ Mac ครับ (ผมเลือก Windows เพราะหาเครื่องทดสอบได้ง่ายกว่าครับ เหอ ๆ) แต่ถ้าต้องการให้ cross platform ก็ใส่ไว้ทั้งสองชุดได้ โดยใช้ glyph reference แทนการ copy glyph ไปอีกชุดหนึ่ง แต่ถ้าใช้ PUA ที่ไม่ตรงกับฟอนต์เก่าแบบไหนเลย ก็จะทำให้ระบบเก่า fallback ไปใช้ PUA ไม่ได้ครับ เนื่องจากระบบเก่าจะอ้างรหัส PUA ตายตัว

ใน Harfbuzz เขารองรับทั้ง PUA ของ Windows และ Mac ครับ
บันทึกการเข้า
เรื่องอักษรอีสาน ผมเองก็เรียนเอาด้วยตัวเองจากบทเรียนออนไลน์ครับ ผมรวบรวมไว้ที่ท้ายเว็บโครงการครับ:
  http://linux.thai.net/~thep/esaan-scripts/

นอกจากนี้ก็ไปค้นหนังสือในห้องสมุด ซื้อหนังสือมาไว้อ้างอิงอีกต่างหากด้วย เดี๋ยวว่าจะรวบรวมเพิ่มในเว็บข้างต้นเหมือนกันครับ

เรื่องภาษาชาติพันธุ์ แนะนำแหล่งข้อมูลคือที่สถาบันวิจัยภาษาและวัฒนธรรมเอเชีย มหาวิทยาลัยมหิดลครับ ในนั้นมีศูนย์การศึกษาและฟื้นฟูภาษาและวัฒนธรรมในภาวะวิกฤติ ซึ่งเป็นแหล่งของเรื่องภาษาชาติพันธุ์เลย:
  http://www.lc.mahidol.ac.th/th/center-revitalization.php

อีกแหล่งหนึ่งคือ SIL ครับ ผมได้ข้อมูลจากเพจนี้:
  http://scripts.sil.org/ThaiLaoSeq
บันทึกการเข้า
เจ๋ง โอ้ สวัสดีครับและขอขอบคุณสำหรับข้อมูลวามรู้อันมีค่าครับผม
สวัสดีครับ สมาชิกใหม่ขอขอบคุณที่รัผมเข้าเป็นสมาชิกครับ มีความสนใจเรื่องฟอนต์(แต่ยังเขียนไม่เป็นครับ)ขออนุญาตผู้อวุโสทุกท่านเพื่อศึกษาวิธีการต่อๆไปครับ....ขอบคุณครับ
บันทึกการเข้า
อยากทราบว่าฟอนต์นี้ชื่ออะไรค่ะ ถ้าทราบรบกวนบอกด้วยน่ะค่ะ ขอบคุณค่ะ
« แก้ไขครั้งสุดท้าย: 24 ธ.ค. 2014, 18:30 น. โดย amma » บันทึกการเข้า
 (แจ๋ว แจ๋ว) photoshop cs3 ใช้ฟอนต์ js มะได้อ่ะค่า  เศร้า   ใครรู้ช่วยหน่อย
บันทึกการเข้า
ขุด





พอดีโฟโต้ช็อปมันออกรุ่น CC 2015 น่ะครับ
ผมเลยลองไล่ดูความสามารถของมัน
แล้วก็ไปเจอหน้านี้เข้าใน Preferences > Type





เอ๊ะ อ๊ะ!!! กรี๊ดดดดด กรี๊ดดดดด
เลยลองปรับเท็กซ์เอนจิ้นเป็นตะวันออกกลางดูครับ
ปรากฏว่าใช้ A ได้!!







ไชโย

แต่ B พังนะ…





ทีนี้ลองใช้กับฟอนต์อื่น




รวมถึงประสานมิตรข้างบนด้วย สระบนลอยคว้างเลย เป็นปัญหาใหม่


พอเปลี่ยนเป็น  East Asia เหมือนเดิมก็คืนสู่ปกติครับ

บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ผมกำลังปรับฟีเจอร์ของเทมเพลต F0ntUni เพื่องานใหญ่อยู่ครับ เดี๋ยวใกล้จะปล่อยเทมเพลตใหม่เมื่อไหร่คงได้รบกวนคุณแอนและพี่น้องทดสอบใน Photoshop และโปรแกรมอื่นๆ อีกที

ส่วนปัญหาสระบนลอยโด่งนี่ท่าทางจะเป็นบั๊กใหม่ มันมี “Text Composer” (ซึ่งเป็นคนละอันกับ “Text Engine” และอยู่คนละที่กัน) เรียกประมาณว่า “Single Line Paragraph” กับ “Adobe World-Ready” ให้เลือกไหมครับ? ถ้าผมจำไม่ผิดตอนที่เคยลองใน Illustrator & InDesign มันมี ถ้าเราเลือก “Single Line Paragraph” F0ntUni-B และฟอนต์อื่นจะแสดงผลปกติ ถ้าเลือก “Adobe World-Ready” F0ntUni-A กับ TLWG ซึ่งใช้ mark & mkmk จะแสดงผลปกติ

ดูจากภาพตัวอย่างของคุณแอน สระบนของสุขุมวิทก็สูงผิดปกติเหมือนกันนะครับ (เทียบกับภาพจาก Font Book ใน Mac ฐานสระอิกับไม้โทจะเท่ากัน) แสดงว่าบั๊กน่าจะมาจากโปรแกรมแหงๆ

บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
ได้ยินเสียงคนคุยกัน  กรี๊ดดดดด
บันทึกการเข้า
พรี่เช้ กรี๊ดดดดด
บันทึกการเข้า

ทำมาหากินด้วยการเปิดร้านสกรีนเสื้อยืด จ้ะ
ว้าว คุณเช่มาแล้ว! พอดีเลยฝากพี่น้องทดสอบ F0ntUni รุ่นไม่มั่นคง (1.0-beta1) หน่อยนะครับ

ดาวน์โหลด: https://github.com/BoonUni/f0ntuni/releases/download/1.0-beta1/F0ntUni.zip

ใครใช้ FontForge + Python แล้วอยากดูซอร์สโค้ดก่อน Gen ก็

ดาวน์โหลด: https://github.com/BoonUni/f0ntuni/archive/1.0-beta1.zip

รุ่นนี้เปลี่ยนจากเดิมแทบจะทุกอย่าง glyphs ตัวอย่างเอามาจาก BoonThing ส่วนฟีเจอร์ทำใหม่หมด มี 3 ตัว ไม่แบ่งเกรดเหมือนรุ่นเดิมแต่แบ่งตามวิธีทำฟอนต์

1. F0ntUni Bare อันนี้ไม่มีฟีเจอร์อะไรเลยแต่มั่นใจว่าใช้งานได้ปกติกับ Chrome, FireFox, Opera ในทุก OS และวรรณยุกต์ไม่ลอย ใน Linux desktop กับ Android ก็น่าจะปกติ ถ้ามี HarfBuzz แต่ถ้าใน Adobe, Mac & Windows วรรณยุกต์ลอยแน่ๆ

2. F0ntUni Basic ตัวนี้เป็นลูกของ F0ntUni-A เหมาะจะใช้ทำฟอนต์แบบเอาเร็ว มีวรรณยุกต์ชุดเดียว liga: ฤๅ, ฦๅ, ฟองมันฟันหนู ๏.. หรือ ๏่่ (๏ + ไม้เอก 2 ตัว)

3. F0ntUni Extended ตัวนี้เป็นลูกของ F0ntUni-B เหมาะกับการทำฟอนต์เอาเนียน มีสระบนและวรรณยุกต์หลายชุดให้ทำเนียน liga: เหมือนตัวบน

เวอร์ชั่นใหม่นี้ผมเปลี่ยนสัญญาอนุญาตเป็น OFL (http://scripts.sil.org/OFL) แปลว่าถ้าจะนำฟีเจอร์ในเทมเพลตไปใช้ก็ต้องเป็นฟอนต์โอเพ่นซอร์สที่ใช้ OFL เหมือนกันเท่านั้น (แล้วจะแจ้งเหตุผลหลังจากโปรเจ็คต์ที่ผมกำลังทำเริ่มเป็นรูปเป็นร่างนะครับ แต่ผมคุยกับคุณแอนไว้ก่อนหน้านี้แล้วและคุณแอนยินดีให้มีคำว่า F0nt + Uni ต่อไป)
บันทึกการเข้า

เทมเพลตฟอนต์ไทย FontUni https://github.com/fontuni/fontuni/releases
หน้า: 1 2 3 4 5 6 7 8 [9] 10
 
 
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!