> ส่งการบ้านฟอนต์ Waree ที่ยังไม่เสร็จครับ
ฟอนต์อยู่ที่ไหนเอ่ย?
> งานที่ทำไปแล้ว
> - แก้ปัญหาช่องว่างระหว่างบรรทัดของ DejaVuSans แคบเกินไป
> ด้วยการลดขนาดความสูงของฟอนต์ลงมาเท่าภาษาอังกฤษตัวเล็ก เลียนแบบฟอนต์
> Tahoma ที่คงเจอปัญหานี้เหมือนกัน (พยัญชนะเสร็จแล้ว กำลังจะเริ่มทำสระ
> ซึ่งคงต้องทำสระขนาดเตี้ย ๆ แบบ Tahoma)
มีการพูดคุยใน dejavu list ว่าจะแยก dejavu SEA ออกมาต่างหากนะครับ
เพื่อให้มีช่องว่างระหว่างบรรทัดเพียงพอสำหรับภาษาในเอเชียตะวันออกเฉียงใต้
ดังนั้น อาจจะไม่จำเป็นต้องบีบบรรทัดมาก และไม่อยากให้เอา Tahoma เป็น
ตัวอย่างเรื่องการบีบสระเหมือนกัน อยากให้ดูของ Loma น่ะครับ ดูจะจัดการปัญหา
ได้ดีกว่า
> - ปรับตัวอักษร ร.เรือ และ ธ.ธง ให้ดูกลมกลืนขึ้น
> - แก้ปัญหาตาราง cvt ของ DejaVuSans เต็ม 256 ค่า
> ด้วยการเติมค่าใหม่ไปอีก 3-4 ค่า เป็นขนาดของเส้นหัวตัวอักษร
> กับความกว้างของตัว ก.ไก่ แล้วเปลี่ยนคำสั่งเป็น PUSHW แทน PUSHB
> (ไม่รู้ว่าทาง DejaVu จะยอมหรือเปล่า)
> - Instructing พยัญชนะเกือบเสร็จแล้ว ยังเหลือสระ รบกวนฝากทดสอบให้ด้วย
เป็นงานหนักน่าดูเลย เอาใจช่วยนะครับ
แล้วก็.. มีเรื่องนึงเพิ่งนึกออก.. ไม่ทราบว่าคุณ wd ได้ update dejavu จาก
svn ล่าสุดหรือเปล่าครับ คือเขาเปลี่ยน format ของ sfd ไปตาม fontforge
20080203 แล้วน่ะครับ
> ปัญหาที่ยังแก้ไม่ได้
> - ยังทำ Delta Instruction ไม่เป็น (DejaVu ต้นแบบ ทำเกือบทุกอักขระ)
> - ส่วนใหญ่เส้นคมแข็งเกินไป
> ยังไม่เข้าใจว่าทำไมต้นแบบภาษาอังกฤษจึงดูนุ่มนวลกว่า
> - Hinting Instruction ยังไม่ดี
> เพราะใช้เพียงคำสั่งพื้นฐานไม่กี่คำสั่ง ทำให้การแสดงผลในบางขนาด
> ดูไม่สม่ำเสมอ (ในลินุกซ์ เห็นชัดที่ขนาด 16 ปอยต์)
> อยากให้มีผู้รู้ช่วยอธิบายการทำ instruction ให้เข้าใจมากกว่านี้
ที่ให้ผมดูคราวก่อน เห็นมี script ช่วยทำ hint ด้วย.. ถ้าไม่เป็นการรบกวน
จนเกินไป ช่วยอธิบายขั้นตอนการทำงานคร่าว ๆ ก็ดีครับ เผื่อผมจะได้ตาม
ดูบ้าง ว่าจะช่วยอะไรตรงไหนได้ (แต่ไม่รับประกันนะครับ แหะ ๆ)
ขอบคุณครับ,
เทพ.
--
Theppitak Karoonboonyanan
http://linux.thai.net/~thep/
> ไฟล์
> http://www.thaitux.info/files/fonts/DejaVuSansThai-src-510416.tar.gz
$ wget http://www.thaitux.info/files/fonts/DejaVuSansThai-src-510416.tar.gz
--2008-04-16 14:34:56--
http://www.thaitux.info/files/fonts/DejaVuSansThai-src-510416.tar.gz
Resolving www.thaitux.info... 58.9.163.214
Connecting to www.thaitux.info|58.9.163.214|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2008-04-16 14:34:57 ERROR 403: Forbidden.
โหลดไม่มาน่ะครับ
> ผลการทดสอบ Font บน Mac OS X 10.5.2 (Leopard) ครับ
ดูเหมือนหน้าที่ใช้ทดสอบจะมี stylesheet ทำให้มีโอกาสสูงที่จะใช้
ฟอนต์ตาม stylesheet แทนค่าของ preferences
ผมเลยทำหน้าทดสอบแบบไร้ stylesheet ไว้ให้ลองละกันครับ
http://linux.thai.net/~thep/testmsg.html
จากการทดสอบกับ minefield บน Debian เทียบกันระหว่าง Waree กับ
Dejavu Sans Thai พบว่า Dejavu Sans Thai เส้นคมกว่า
และบรรทัดแคบกว่า
- Waree:
http://linux.thai.net/~thep/shots/20080422-minefield-waree.png
- Dejavu Sans Thai:
http://linux.thai.net/~thep/shots/20080422-minefield-djvusansthai.png
(ผมเพิ่งแก้หน้า testmsg ให้มีแบบแบ่งย่อหน้ากับใช้ <br> หลังจาก
จับ screenshot ของ minefield ไป เลยไม่มีแบบหลังใน screenshot
ข้างต้น)
> เห็นภาพแล้ว ผมจึงไปลองบนวินโดวส์บ้าง สรุปผลได้คือ
> 1. ลินุกซ์ เดเบียน sid : gedit แสดงถูกต้อง, firefox แสดงถูกต้อง,
> epiphany วรรณยุกต์ลอย
epiphany บนเครื่องผมไม่ลอยนะครับ จัดระดับเรียบร้อยเป็นปกติ
http://linux.thai.net/~thep/shots/20080422-ephy-djvusansthai.png
> 2. Mac OS X 10.5.2 : TextEdit วรรณยุกต์ลอย+เลื่อน, firefox
> วรรณยุกต์ลอย
> 3. วินโดวส์ Me : WordPad แสดงถูกต้อง, firefox วรรณยุกต์ลอย
>
> ใส้ในของฟอนต์เป็นของ DejaVu + สคริปต์ไทยของคุณเทพ + ผมวาดลายเส้นและ
> hinting
> ยังไม่ทราบวิธีแก้นะครับ (ไม่มีเครื่อง Mac สำหรับทดสอบด้วย)
> ฝากกระจายถามผู้รู้ต่อด้วยครับ
พบว่า Dejavu Sans Thai ยังไม่มี OpenType table ภาษาไทยนะครับ
แต่มีชุดตัวหลบ ดังนั้น จึง render โดยอาศัยการใช้ตัวหลบของ
rendering engine ล้วน ๆ จึงคงจะใช้ได้เฉพาะ Windows และ Linux
เท่านั้น
ส่วนถ้าเพิ่ม OpenType แบบใช้ GPOS anchor ก็คงจะใช้กับ Windows
และ Linux ได้เท่านั้นอีกเช่นกัน เพราะ Mac ยังมี bug อยู่ :P
แต่ถ้าใช้ ligature hack แบบที่ใช้กันในหลาย ๆ ฟอนต์ เพื่อให้ใช้บน
Mac ได้ด้วยล่ะก็.. DejaVu เขาก็ไม่รับเหมือนกันครับ
และการล็อค code ของตัวหลบอย่างที่ใช้อยู่ใน Dejavu Sans Thai
ตอนนี้ เขาก็ไม่รับเหมือนกัน สิ่งที่เขาจะรับ คือใช้ OpenType
แบบถูกต้องเท่านั้นครับ เท่าที่คุยมา
สรุปว่าคงจำเป็นต้องแก้ bug ของ Mac และ Adobe ให้ได้ครับ
ถ้าจะใช้ Dejavu Sans Thai
ตามทดลองใช้อยู่นะครับ แต่ยังไม่มีเวลาดูรายละเอียดเลย..
เร็ว ๆ นี้ dejavu เพิ่งออกรุ่น อาจจะใกล้ได้เวลาส่งแพตช์ละ
ขอบคุณครับ,
> ถ้าพอมีเวลาว่าง รบกวนช่วยติให้ด้วยครับ
> (ยังไม่ต้องดูรายละเอียดก็ได้ เอาแค่ติอย่างเดียว)
hint ของตัวอักษรคมชัดดีครับ ความกว้างและช่องไฟก็ดูเป็นระเบียบ
กว่าใช้ autohint/autoinstr มาก
บรรทัดแคบลงมาก จนแทบเท่ากับฟอนต์ตะวันตก แต่มีปัญหาวรรณยุกต์
หายไปในกล่องโต้ตอบหรือเมนูน่ะครับ:
- กล่องโต้ตอบ:
http://linux.thai.net/~thep/shots/20080521-djvusansthai-dialog.png
ดูที่ "พื้นโต๊ะ", "ชื่อหน้าต่าง", "ความกว้างคงที่"
- เมนู:
http://linux.thai.net/~thep/shots/20080521-djvusansthai-menu.png
ดูที่ "เครื่องมือ", "เครื่องอัด"
> เรื่อง hint นี้ สงสัยต้องพึ่งเด็กรุ่นหลังแล้วละครับ
> ผมเอง ตั้งแต่มาทำเรื่อง hint นี้ สายตายาวอีกเป็นกิโล :P
> มันต้องเพ่งจุดมาก เสียสายตามาก ถ้าให้คุณเทพมาทำ สงสัยตากระจายแน่ ;D
ผมก็ bookmark blog ของคุณ wd ไว้ ว่าจะหาเวลาอ่านอยู่เหมือนกันครับ
ตอนนี้ผมเองก็แก้ฟอนต์ละเอียดมากไม่ได้เท่าไรเหมือนกัน คนไร้น้ำตาก็เงี้ย :P
> อีกวิธีนึง คือใช้ AutoInstruction แล้วค่อยดึงโค๊ดมาปรับแต่ง
> อาจช่วยลดเวลาได้มาก
> อันนี้เอาไว้ถ้ามีเวลาคงได้มาแคะวิธีการ
น่าจะดีครับ ถ้าทำได้
ไม่ได้ report bug เสียนาน..
เจอปัญหาวรรณยุกต์หายกับตัวหนาอีกน่ะครับ:
http://linux.thai.net/~thep/shots/20080723-djvusansthai.png
(ดูที่ "เมนูและแถบเครื่องมือ")
> - ล้างวรรณยุกต์หลบออกทั้งหมด ใช้ตาราง GPOS ของ opentype อย่างเดียว
> - เนื่องจากวรรณยุกต์ เหลือแค่ระดับเดียว
> จึงไม่สามารถทำตัวเล็กในวรรณยุกต์ระดับสองได้
> ทำให้การกวาดสายตาดูแล้วเลอะ แก้ปัญหาด้วยการ instruct
> ให้ความหนาเส้นของวรรณยุกต์ดูบางลง
ตรงนี้เห็นด้วยที่กำจัดตัวหลบนะครับ แต่คิดว่าโดยทั่วไปน่าจะคงไว้
ให้เหลือ 2 ชุด ตัวใหญ่กับตัวเล็ก จากเดิมที่มี 4 ชุดน่ะครับ
รบกวนวางตำแหน่งวรรณยุกต์ตัวเล็กให้หน่อยซิครับ (สคริปต์ด้วยยิ่งดี)
เดี๋ยวเสร็จงานอื่นแล้วจะกลับมาทำต่อ
วิทยา
ดาวน์โหลด
- src : http://www.thaitux.info/files/fonts/DejaVuSansThai-src-520303.tar.gz
- ttf : http://www.thaitux.info/files/fonts/DejaVuSansThai-ttf.tar.gz
วิทยา
- สร้างฟังก์ชั่นในการโค๊ด เพื่อให้การ hint ไปในแนวเดียวกันทุก ๆ อักขระ
(โค๊ดที่เป็นฟังก์ชั่นยังเลอะเทอะอยู่ เพราะวิธีการเปลี่ยนไปเรื่อย ๆ
ตามประสบการณ์) ข้อดีคือได้ลายเส้นและหัวอักษรที่เหมือนกันทุกอักขระ
ข้อเสียคือเพิ่ม bug จากการโค๊ด
- แก้ปัญหาหัวบางที่ 9-12 ppem ทำให้อ่านง่ายขึ้น
- แก้ปัญหาเวลาพิมพ์ออกเครื่องพิมพ์แล้วฟอนต์เลอะ
เกิดจากเส้นนอนด้านบนที่ไม่ได้ลงจุด แล้วสั่ง shift
แก้ด้วยการสั่งให้ลงจุดก่อน แล้วจึง shift ทีหลัง (ตัวหนายังไม่ได้แก้
จึงยังเลอะอยู่)
- พยายามทำให้ขนาดเส้นตั้งกับเส้นนอนไม่ต่างกันมากนัก ที่ 17-19 ppem
ด้วยการเพิ่มขนาดของเส้นนอนเล็กน้อย ทำให้อาจดูเลอะบ้างที่ 17 ppem
- ลบการฟุ้งมากไปหน่อยจนทำให้ฟอนต์ดูแห้ง (ขั้นตอนนี้ทำด้วย delta hint
เสียสายตามากที่สุด - บอกเผื่อคุณเทพว่าอย่าทำเลยครับ ไม่คุ้มตาเจ๊ง)
- ยังไม่ได้แยกวรรณยุกต์เป็น 2 ระดับ แต่เกลา hint ใหม่ ให้สระบางลง 1
ระดับ และวรรณยุกต์บางลง 2 ระดับ
- ตัวหนายังไม่ได้ทำอะไรเพิ่ม ซึ่งถ้าไม่มีรายงานข้อผิดพลาด
จะนำหลักการกลับไปใช้กับตัวหนาต่อไปครับ
ดาวน์โหลด
- src : http://www.thaitux.info/files/fonts/DejaVuSansThai-src-520322.tar.gz
- ttf : http://www.thaitux.info/files/fonts/DejaVuSansThai-ttf.tar.gz
- screenshot : http://www.thaitux.info/node/502
วิทยา
ดาวน์โหลด
- src : http://www.thaitux.info/files/fonts/DejaVuSansThai-src-520401.tar.gz
- ttf : http://www.thaitux.info/files/fonts/DejaVuSansThai-ttf.tar.gz
รุ่นต่อไปจะเกลาช่องไฟให้ละเอียดขึ้น โดยเฉพาะช่วง 9-14 ppem
และล้างโค๊ดอันแสนสกปรกเพื่อเตรียมมาทำตัวหนาต่อไปครับ