ทำฟอนต์เพิ่ม DejaVu Serif Thai

87 views
Skip to first unread message

wd

unread,
May 2, 2008, 3:48:47 AM5/2/08
to Thai Linux/FOSS developers
การบ้านเก่ายังไม่เสร็จ แต่ส่งการบ้านใหม่แทน
เพราะต้องการศึกษาการ hint แบบ Tahoma ซึ่งยังไม่รู้ว่า hint
แบบเดิมกับแบบใหม่อันไหนดีกว่า เลยตัดสินใจทำตัวใหม่เป็น Serif

คือ hint แบบ fix หัวท้าย แล้วใช้ช่วงกลางอักษรเป็นตัวรองรับการทดจุด
(ปรับระยะที่ดูน่าเกลียดด้วย grid fitting)

ดาวน์โหลดไฟล์ฟอนต์
http://www.thaitux.info/files/fonts/DejaVuSerifThai-ttf.tar.gz

ดาวน์โหลดไฟล์ซอร์ส
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510502.tar.gz

wd

unread,
May 6, 2008, 4:24:08 AM5/6/08
to Thai Linux/FOSS developers
ทำตัวหนาเสร็จแล้ว รบกวนท่านผู้สนใจฝากทดสอบให้ด้วยครับ
(จริง ๆ เกือบเสร็จมากกว่า ขาด hinting เลขไทย
ตัวธรรมดา แทบไม่ได้ hint สระบนล่าง ส่วนตัวหนา hint สระ แต่ไม่ได้ hint
วรรณยุกต์ระดับบน)

ดาวนโหลดไฟล์ฟอนต์ (ล่าสุด)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-ttf.tar.gz

ดาวน์โหลดไฟล์ซอร์ส (รวมตัวธรรมดาและตัวหนาด้วย)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510502.tar.gz

ต่อไปอาจเว้นช่วงนานหน่อยนะครับ อาจนำเอางานชุดล่าสุดไปใช้ได้เลยครับ

ถ้าไม่มีความเห็นในการทดสอบผลเพิ่มเติม ผมจะนำเอาวิธีการ hint แบบล่าสุด
(ที่เลียนแบบ Tahoma) กลับไปใช้กับฟอนต์ Sans ด้วย
เนื่องจากให้ผลที่ดีกว่า ควบคุมจุดได้ดีกว่า แต่อาจกินเวลาอีกนานครับ

วิทยา

wd

unread,
May 8, 2008, 3:01:58 AM5/8/08
to Thai Linux/FOSS developers
hint เลขไทยเสร็จแล้ว
ของตัวธรรมดา hint สระเสร็จแล้ว
มีเพิ่มเรื่องการขยับระดับให้สูงขึ้นในฟอนต์ขนาดเล็ก สระบนระดับที่ ๑ ทำ
hint เต็มรูป ส่วนระดับที่ ๒ แค่ขยับ spline ให้ตรงจุด

เรียกว่าสมบูรณ์ระดับนึงแล้วครับ สามารถนำไปใช้ได้แล้ว
(คงไม่มีการปรับใหญ่ในระยะอันใกล้นี้)
แต่ยังไงก็ยังต้องการการรายงานผลการใช้งานนะครับ

หากคุณเทพจะเอาเข้า ThaiFonts-Scalable
รบกวนฝากตั้งชื่อและขยับระยะบรรทัดให้ห่างขึ้นด้วยครับ

ดาวนโหลดไฟล์ฟอนต์ (ล่าสุด)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-ttf.tar.gz

ดาวน์โหลดไฟล์ซอร์ส (รวมตัวธรรมดาและตัวหนาด้วย)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510508.tar.gz

วิทยา

wd

unread,
May 8, 2008, 3:03:12 AM5/8/08
to Thai Linux/FOSS developers
ขออภัยครับ ลืมแก้ลิงก์ดาวน์โหลด

ดาวน์โหลดไฟล์ซอร์ส (รวมตัวธรรมดาและตัวหนาด้วย)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510508.tar.gz

wd

unread,
May 31, 2008, 12:06:17 AM5/31/08
to Thai Linux/FOSS developers
ทำเพิ่มเรื่อง
- ปรับให้ดูนุ่มนวลขึ้น ลดขนาดหัวให้จางลงด้วยฟังก์ชั่น SHPIX
ทำให้ดูดีขึ้นสำหรับการแสดงผลตัวดำพื้นขาว
แต่ถ้าพื้นหลังเข้มตัวขาวจะอ่านยากหน่อย เช่นเว็บ pantip.com
- ปรับหัวให้เท่า ๆ กันในทุกตัวอักษร และทุก ๆ ขนาดฟอนต์
- จัดระดับวรรณยุกต์ระดับ 2 ไม่ให้เหลื่อม

ยังขาด
- ยังไม่ได้ทำตัวหนา เพราะยังไม่แน่ใจผลเรื่องการแสดงผลพื้นเข้มตัวขาว
- นิคหิตสูง (uni0E4D.high) ยังไม่ลอยสูง พยายามแกะโค๊ดคุณเทพแล้ว
แต่ไปไม่รอดครับ เลยปล่อย

ความเห็น
- การแยกการพัฒนาเป็น 2 ฟอนต์ คือ Sans กับ Serif
ทำให้สามารถทดลองฟังก์ชั่นใหม่ ๆ ได้อย่างเต็มที่
ข้อดีคือเอาความรู้จากฟอนต์นึงไปใส่อีกฟอนต์นึงกลับไปกลับมา
แต่ข้อเสียคืองานของฟอนต์แต่ละรุ่นจะเปลี่ยนแนวการเขียนโค๊ดไปเรื่อย
ตามแกะโค๊ดยาก
- งานที่กินเวลาที่สุดในการ hint ฟอนต์ คือ การทำ grid fitting
สำหรับฟอนต์ขนาดต่าง ๆ ในขั้นตอนสุดท้าย ดังนั้น การประหยัดเวลาด้วยการทำ
Auto Instruction จึงแทบไม่มีความหมาย เพราะประหยัดเวลาไปได้นิดเดียว
- ความคิดเริ่มตันแล้วครับ คงไม่สามารถทำได้ดีกว่านี้อีกแล้ว

ดาวน์โหลด
ไฟล์ ttf (ชื่อเดิมแต่เป็นรุ่นใหม่เสมอ)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-ttf.tar.gz

ไฟล์ซอร์ส
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510531.tar.gz

วิทยา

wd

unread,
May 31, 2008, 12:12:29 AM5/31/08
to Thai Linux/FOSS developers
อีกข้อนึงคือ ยังไม่แน่ใจว่า
- การทำ grid fitting มาก ๆ (ด้วยฟังก์ชั่น DELTAPx)
- การใช้ shift point มาก ๆ (ด้วยฟังก์ชั่น SHPIX)
- การใช้การเคลื่อนแบบ direct แทน indirect (ใช้ฟังก์ชั่น MDRP
แทนที่จะใช้ MIRP) เนื่องจากต้องการประหยัดค่าในตาราง CVT
ต่าง ๆ เหล่านี้ จะทำให้การแสดงผลของฟอนต์ช้าลงหรือไม่

อยากทราบผลการทดสอบจุดนี้ด้วยครับ เพราะสองข้อแรก ถ้าทำมาก ๆ
ฟอนต์จะดูสวย

วิทยา

wd

unread,
Jun 6, 2008, 12:52:57 AM6/6/08
to Thai Linux/FOSS developers
ทำตัวหนาเสร็จแล้ว
สำหรับตัวหนา ไม่ได้ปรับ delta hint ที่หัว
แต่การ hint ส่วนใหญ่ ก็ยังยึดแนวคิดที่ว่า
ไม่จำเป็นต้องปัดเศษให้ลงจุดในทุกจุด ซึ่งจะทำให้ฟอนต์ดูนุ่มนวลขึ้น
ยกเว้นในกรณีที่ระบบไม่มีการทำ Anti alias เช่น วินโดวส์รุ่นเก่า
อาจทำให้ฟอนต์ดูเพี้ยน โดยเฉพาะในบริเวณเล็ก ๆ ที่มีรายละเอียดมาก

รุ่นนี้เป็นรุ่นสุดท้าย คงไม่ได้กลับมาทำ Serif อีกแล้ว
เว้นแต่หากมีท่านอื่นช่วยทดสอบและรายงานผล

ดาวน์โหลด
ไฟล์ ttf (ชื่อเดิมแต่เป็นรุ่นใหม่เสมอ)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-ttf.tar.gz

ไฟล์ซอร์ส
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510606.tar.gz

วิทยา

Theppitak Karoonboonyanan

unread,
Jun 17, 2008, 8:45:27 AM6/17/08
to thai-linux...@googlegroups.com
2008/6/6 wd <widh...@gmail.com>:

> รุ่นนี้เป็นรุ่นสุดท้าย คงไม่ได้กลับมาทำ Serif อีกแล้ว
> เว้นแต่หากมีท่านอื่นช่วยทดสอบและรายงานผล

เจอบั๊กกับข้อความที่มี strikeout ครับ โดย dejavusans-thai
เส้นที่ขีดฆ่ามันเป็นปื้นใหญ่ และตัวยกยกไม่ค่อยสูง:

http://linux.thai.net/~thep/shots/20080617-djvusans-strikesubsup.png

ส่วน dejavuserif-thai ตัวธรรมดามันขีดสูงไปหน่อย:
http://linux.thai.net/~thep/shots/20080617-djvuserif-strikesubsup.png

พอดีเจอปัญหานี้ใน Waree ด้วย แก้ไปแล้วด้วยการแก้ที่ OS/2
Sub/Superscript ด้วยการติ๊กกล่อง [*] Default เพื่อให้มันเติมค่า
default ให้ แล้วก็ติ๊กออก ทำทีเป็น hard code ด้วยค่า default
เพราะถ้าปล่อย default ไว้ มันเติมขยะให้ครับ

เทพ.
--
Theppitak Karoonboonyanan
http://linux.thai.net/~thep/

wd

unread,
Jun 18, 2008, 12:15:35 PM6/18/08
to Thai Linux/FOSS developers
_/|\_ ขอบพระคุณครับที่รายงาน พร้อมกับคำแนะนำ
เที่ยวนี้ผมแก้เพียง Sans ตัวธรรมดาอย่างเดียว ส่วน Sans
ตัวหนาจะรอปรับหัวอักษรเสร็จแล้วค่อยปล่อยออกมาทีเดียว
ของ Serif รอ Sans เสร็จก่อนครับ เดี๋ยวตามแก้ในรุ่นหน้า

เดี๋ยวผมไปโพสต์ที่หัวข้อ Sans ดีกว่าครับ

วิทยา


On Jun 17, 7:45 pm, "Theppitak Karoonboonyanan" <t...@linux.thai.net>
wrote:
> 2008/6/6 wd <widha...@gmail.com>:

Theppitak Karoonboonyanan

unread,
Jun 29, 2008, 12:42:42 AM6/29/08
to thai-linux...@googlegroups.com
2008/6/17 Theppitak Karoonboonyanan <th...@linux.thai.net>:

> เจอบั๊กกับข้อความที่มี strikeout ครับ โดย dejavusans-thai
> เส้นที่ขีดฆ่ามันเป็นปื้นใหญ่ และตัวยกยกไม่ค่อยสูง:
>
> http://linux.thai.net/~thep/shots/20080617-djvusans-strikesubsup.png
>
> ส่วน dejavuserif-thai ตัวธรรมดามันขีดสูงไปหน่อย:
> http://linux.thai.net/~thep/shots/20080617-djvuserif-strikesubsup.png
>
> พอดีเจอปัญหานี้ใน Waree ด้วย แก้ไปแล้วด้วยการแก้ที่ OS/2
> Sub/Superscript ด้วยการติ๊กกล่อง [*] Default เพื่อให้มันเติมค่า
> default ให้ แล้วก็ติ๊กออก ทำทีเป็น hard code ด้วยค่า default
> เพราะถ้าปล่อย default ไว้ มันเติมขยะให้ครับ

Update: รายงานปัญหานี้ไปที่ fontforge แล้ว เขาแก้บั๊กให้แล้วใน
CVS ครับ

wd

unread,
Aug 24, 2008, 8:14:45 AM8/24/08
to Thai Linux/FOSS developers
ทำตาม DejaVu Sans Thai ครับ
- ปรับแก้ตาราง Lookups/GSUB เติมข้อมูลให้ครบถ้วน
- สร้างไฟล์ ttf แบบบันทึกตาราง OpenType ด้วย

มีผลทำให้การแสดงผล สระอำ ใน OpenOffice แสดงได้ถูกต้องแล้วครับ
รบกวนฝากทดสอบกันด้วยนะครับ

(เรื่อง hinting และจุดที่ตั้งใจจะปรับปรุงอื่น ๆ
ขอติดไว้เหมือนเดิมครับ)

ดาวน์โหลด
ไฟล์ ttf (ชื่อเดิมแต่เป็นรุ่นใหม่เสมอ)
http://www.thaitux.info/files/fonts/DejaVuSerifThai-ttf.tar.gz

ไฟล์ซอร์ส
http://www.thaitux.info/files/fonts/DejaVuSerifThai-src-510824.tar.gz

วิทยา
Reply all
Reply to author
Forward
0 new messages