Wednesday, October 17, 2007

Fonts

ฟอนต์

ที่มา http://www.thaitux.info/book/export/html/275
รวมหมวดฟอนต์

เอาไฟล์มาสรุปให้ดาวน์โหลดได้ง่าย ๆ

* ฟอนต์ที่ทดลองทำเอง เฉพาะไฟล์ ttf ttfonts.tar.gz
เมื่อแตกไฟล์แล้ว เอาไฟล์ ttf ทั้งหมดไปใส่ไว้ภายใต้ ~/.fonts หรือ /usr/share/fonts/truetype และ
ทำลิงก์ไฟล์ 65-z-ttfonts.conf ไปยัง /etc/fonts/conf.d
$ sudo ln -sf 65-z-ttfonts.conf /etc/fonts/conf.d
$ fc-cache -r
* ฟอนต์ทดแทนฟอนต์วินโดวส์ เฉพาะไฟล์ ttf thaifont-abc.tar.gz
เมื่อแตกไฟล์แล้ว เอาไฟล์ ttf ทั้งหมดไปใส่ไว้ภายใต้ ~/.fonts หรือ /usr/share/fonts/truetype และ
ทำลิงก์ไฟล์ 65-2-thaifont-abc.conf ไปยัง /etc/fonts/conf.d
$ sudo ln -sf 65-2-thaifont-abc.conf /etc/fonts/conf.d
$ fc-cache -r

บันทึกเกร็ดฟอนต์ของเดเบียน

* ไฟล์คอนฟิกของฟอนต์ในเดเบียนอยู่ที่ /etc/fonts/conf.d ซึ่งเดเบียนบรรจุไฟล์จริงไว้ที่ /etc/fonts/conf.avail แล้วใช้โยงลิงก์มาที่ conf.d อีกทีนึง
* ถ้ามีชื่อฟอนต์ซ้ำกันในไฟล์คอนฟิก ชื่อไฟล์ที่มาทีหลังจะมีความสำคัญกว่าชื่อไฟล์ที่มาถึงก่อน เช่น 65-1-ttfonts.conf จะสำคัญน้อยกว่า 65-2-ttfonts.conf
ดังนั้นถ้าจะ override ฟอนต์ของระบบ จะต้องตั้งให้ชื่อเรียงอยู่ทางท้าย

ลองทำฟอนต์ทดแทน ๑ - Angsima

ช่วงนี้กำลังทดลองเอา OpenOffice บนลินุกซ์ มาใช้แทน Microsoft Office บนวินโดวส์ ได้ผลดีพอควร แต่มาติดปัญหาสำคัญคือฟอนต์ในเอกสารเก่าจำนวนมาก เป็นฟอนต์บนวินโดวส์ คือ Angsana New และ Browallia New
ถ้าจะแก้ ก็ต้องแก้กันเป็นจำนวนมาก จึงคิดว่าถ้าเราทำฟอนต์ใหม่ทดแทน Angsana ให้สามารถเปิดเอกสารเก่าที่เป็นฟอนต์ Angsana โดยไม่เสียรูปแบบ น่าจะเป็นทางออกที่ดีกว่า
จึงทดลองนำฟอนต์นรบุตรมาแปลงขนาดความกว้างตัวอักษรให้เท่ากับ Angsana ตั้งชื่อว่า Angsima (อังสิมา) แปลว่าอะไรก็ไม่รู้ แต่ตั้งชื่อให้คล้าย เพื่อให้เวลาเราเลือกฟอนต์ รายชื่อจะได้อยู่ใกล้ ๆ กัน
ทดลองรุ่นแรก แบบหยาบ ๆ ได้ผลคือ

ภาษาไทยได้แล้ว แต่ภาษาอังกฤษยังไม่ได้
( ทำส่วนโค้งเป็นแบบ quadratic เพราะเริ่มถนัดแล้ว และสามารถแปลงเป็น cubic ได้โดยไม่สูญเสียตำแหน่ง )

ดาวน์โหลดได้ดังนี้

* ไฟล์ทรูไทป์ Angsima.ttf
* ไฟล์ฟอนต์ฟอร์ก Angsima.sfd
* ไฟล์ทรูไทป์ Angsima-Bold.ttf
* ไฟล์ฟอนต์ฟอร์ก Angsima-Bold.sfd

* รวมทั้งหมดในไฟล์เดียว Angsima.tar.gz

ถ้าต้องการทำเป็นฟอนต์ทดแทนฟอนต์อังศณา ในไฟล์คอนฟิกของฟอนต์ ต้องเติมท่อนนี้ลงไปด้วย
$ sudo vi /etc/fonts/65-thai-XXX.conf

...

Angsana New

Angsima


...

ท่อนนี้เอาตัวอย่างมาจาก http://lists.freedesktop.org/archives/fontconfig/2006-June/002326.html

ถึงตอนนี้เรียกว่ายังไม่เสร็จ แต่ก็พอใช้งานได้ แต่จะพยายามทำต่อให้ใช้งานได้จริง ๆ ครับ

update

* 50-06-06 ทำ Angsima แบบปกติเสร็จแล้ว แก้(ลบ) Kerning ของต้นฉบับอักษรภาษาอังกฤษ ปรับปรุงเลขไทยให้เหมือนต้นแบบ ปรับระยะห่างระหว่างบรรทัดเรียบร้อย แต่ยังไม่ได้ทดสอบแบบละเอียด
* 50-06-07 ทำ Angsima-Bold เสร็จแบบหยาบ ๆ
* 50-06-08 Angsima-Normal ปรับละเอียดเสร็จแล้ว
* 50-06-09 สร้างเส้นใหม่-ปรับละเอียด Angsima-Bold เสร็จ
* 50-06-09 ทำ Oblique และ BoldOblique ด้วยเมนู Element -> Transformation -> Transform -> skew แบบอัตโนมัติทั้งตาราง แต่ยังไม่ได้ทดสอบ

ลองทำฟอนต์ทดแทน ๒ - Bromlila

ฟอนต์ตัวที่สองตั้งชื่อว่า บรมลีลา - Bromlila
จุดประสงค์จะใช้แทน Browallia (โดยไม่เสียรูปแบบ)

ใช้ฐานจากฟอนต์ Garuda ยกเว้นตัวหนาที่เป็นภาษาอังกฤษ ตัว Garuda-Bold ยังไม่หนาเท่า Browallia ผมจึงเอามาจากตัวหนา sans ของ Freefont แทน

มีข้อสังเกตุคือ ตัว Browallia กับ Garuda เมื่อปรับสัดส่วนแล้ว มีลายเส้นที่แทบจะนาบกันสนิท

เที่ยวนี้ขี้เกียจทำ Screenshot เพราะตัวเหมือนกันเป๊ะ ๆ ดาวน์โหลดเลยดีกว่า

ดาวน์โหลดได้ดังนี้

* รวมทั้งหมดในไฟล์เดียว Bromlila.tar.gz

ลองทำฟอนต์ทดแทน ๓ - Corada

ฟอนต์ตัวที่สามตั้งชื่อว่า ครดา - Corada
จุดประสงค์จะใช้แทน Cordia (โดยไม่เสียรูปแบบ)

ชื่อฟอนต์ไม่มีคำแปล เพราะพยายามให้อักขระสามตัวแรกเหมือนกัน เพื่อให้เลือกฟอนต์ได้ง่าย จำง่าย

ใช้ฐานจากฟอนต์ Loma แต่ยากหน่อยตรงที่ฐานของฟอนต์โลมาคือ FreeSerif ไม่มีขนาดความหนาแบบ Light เลยต้องเสียเวลาสร้างตัวภาษาอังกฤษแบบ Light ด้วย และใช้ขนาดปกติ (Book) ของ FreeSerif เป็น Bold ของ Corada แทน
ดังนั้นสำหรับเที่ยวนี้ ในส่วนของอักขระภาษาอังกฤษจึงไม่ค่อยเรียบร้อยเท่าที่ควร เพราะสร้างขึ้นเอง

พยายามให้หน้าตาฟอนต์ออกมาอยู่ระหว่างฟอนต์คอร์เดีย และสุดยอดฟอนต์แห่งยุค คือ ดีบีฟองน้ำ

ดาวน์โหลดได้ดังนี้

* รวมทั้งหมดในไฟล์เดียว Corada.tar.gz

ลองทำฟอนต์ทดแทน - สรุป

สรุปงานทำฟอนต์ทดแทนฟอนต์ของวินโดวส์ทั้งสามตัว คือ

* Angsana แทนด้วย Angsima
* Browallia แทนด้วย Bromlila
* Cordia แทนด้วย Corada

สร้างด้วยการปรับความกว้างของฟอนต์แต่ละอักขระ ให้เท่ากับฟอนต์วินโดวส์ และลบ kerning ของฟอนต์ต้นแบบออกให้หมด ส่วนความสูงของฟอนต์ ไม่ได้ปรับความสูงของสระให้เท่าของวินโดวส์ แต่ใช้วิธีสร้างอักขระพิเศษเพิ่มมาตัวนึง ให้จุดสูงสุดของอักขระเท่ากับไม้โทสูงของวินโดวส์ (ซึ่งสูงที่สุด) และให้จุดต่ำสุดของอักขระนี้ ให้เท่ากับสระอูที่ต่ำที่สุดของวินโดวส์
รวมทั้งสร้างไฟล์คอนฟิกให้ฟอนต์ ให้แทนชื่อฟอนต์จากวินโดวส์ตามรายละเอียดข้างบน ไฟล์นี้ตั้งชื่อว่า 65-2-thaifont-abc.conf ซึ่งจะต้องนำไปใส่ไว้ที่ไดเรกทอรี่ /etc/fonts/conf.d

เมื่อทำครบทุกอย่างแล้ว เราก็จะสามารถเปิดไฟล์ตระกูลออฟฟิศจากวินโดวส์ โดยไม่เสียรูปแบบ

สามารถดาวน์โหลดไฟล์รวมได้ดังนี้

* เฉพาะไฟล์ ttf thaifont-abc.tar.gz
* รวมซอร์ส sfd thaifont-abc-sfd.tar.gz

ลองทำฟอนต์ใช้เอง

ทดลองทำฟอนต์ใช้เองโดยใช้ไฟล์ฟอนต์ Norasi.sfd ของ NECTEC เป็นต้นแบบ
จุดประสงค์เพื่อทำฟอนต์แบบ Serif ที่ใช้รหัสอักขระยูนิโค๊ด จะนำมาแทนฟอนต์ Angsana ของวินโดวส์


ตั้งชื่อว่า นรบุตร (Noraputta)
ตั้งใจให้ออกมาเป็นลูกผสมของ Norasi กับ Angsana
ยังไม่ค่อยสวยเหมือนที่มืออาชีพเขาทำกัน ฮิ้นต้งฮิ้นติ้งไม่รู้เรื่องเลย เอาแค่พอใช้งานได้ตามสไตล์
ฝากลองทดสอบและใช้ฟรีโดยไม่มีเงื่อนไขครับ

* ไฟล์ฟอนต์ Noraputta.ttf
* ไฟล์ FontForge Noraputta.sfd
* ไฟล์ฟอนต์ Noraputta-Bold.ttf
* ไฟล์ FontForge Noraputta-Bold.sfd

update

* 50-04-13 ปรับมาใช้เทมเพลตของ thaifonts รุ่น 0.4.6 ทำให้ไม่มีปัญหาสระอำและวรรณยุกต์ กับ OO.o
* 50-04-19 ทำเรื่องเลขไทยใหม่ เก็บกวาดเรื่อง Hinting แบบหยาบ ๆ
* 50-04-20 ทำ Noraputta-Bold เพิ่ม
* 50-04-28 แก้ปัญหาเส้นบางเกินไป ทำให้เวลาถูก Hint แล้วเส้นขาด ด้วยการเพิ่มความหนาของเส้น

ลองทำฟอนต์ใช้เอง (ต่อ) - Gentini

ลองทำ Serif อีกฟอนต์นึง เพื่อให้สมดุลย์กับ Sans serif โดยเอาต้นแบบมาจากฟอนต์ Gentium ซึ่งเป็น Serif ที่ดูสบายตา กึ่งทางการกึ่งลำลอง จึงตั้งชื่อให้คล้าย ๆ กัน ว่า เจนทินี - Gentini
ทำไปก็งงไป ทำให้ทราบว่างานออกแบบฟอนต์นี่ยากจริง ๆ ผมเองยังมือไม่ถึง จึงอ่านบุคลิกของฟอนต์ Gentium ไม่ออก เลยทำแค่ฟอนต์ขนาด book แค่ตัวเดียว

ดาวน์โหลด
ไฟล์รวม Gentini.tar.gz
ลองทำฟอนต์ใช้เอง (ต่อ) - Pantaka

ไม่ใช่งานใหม่ แต่เป็นการเอา โลมาบุตร มาชำระล้าง ปรับปรุงเล็กน้อย แต่พอทำไป ๆ มันชักเพี้ยนมาทาง อัมพุช
เลยเปลี่ยนชื่อเสียเลยดีกว่า เพื่อไม่ให้สับสน และไม่ให้ทับซ้อนกับโลมา
ตั้งชื่อว่า ปัณถกะ - Pantaka แปลว่าชำนาญทาง
ทำแล้วรู้สึกว่าอ่านง่ายกว่า วีรชาติ เลยบรรจุเข้าประจำการเป็นฟอนต์หน้าจอแทนวีรชาติ

ดาวน์โหลดไฟล์รวมดังนี้

* ไฟล์รวม Pantaka.tar.gz

update

* 50-07-02 ได้ปรับปรุงวีรชาติ จนฟอนต์วีรชาติอ่านง่ายกว่าแล้ว จึงเอาฟอนต์วีรชาติกลับเข้ามาประจำการเป็นฟอนต์แบบ San-Serif แทนปัณถกะ

ลองทำฟอนต์ใช้เอง (ต่อ) - Umpush

หลังจากทำฟอนต์ Corada เสร็จแล้ว มีความรู้สึกว่าฟอนต์ Corada ตัวหนา น่าจะมาทำฟอนต์บนจอได้ เลยเอา Corada เดิม มาแปลงเป็น Light เอา Bold ทำเป็น Book แล้วสร้าง Bold ใหม่ ตั้งชื่อว่า อัมพุช - Umpush

สามารถทำเป็นฟอนต์สำหรับหน้าจอก็ได้ หรือจะออกเป็นงานพิมพ์ก็ได้
หากต้องการให้ดูทางหน้าจอภาพได้ง่ายขึ้น เพียงแค่ลดขนาดสระบน-ล่าง และวรรณยุกต์ ลงไปเป็นสัก 90% ก็จะดูทางจอภาพได้ง่ายขี้นแล้วครับ

ดาวน์โหลดได้ดังนี้

* ไฟล์รวม Umpush.tar.gz

อย่าลืมว่า ฟอนต์ทุกตัวที่สร้างไว้ ถูกออกแบบไว้ด้วยการ Hint ของระบบ ดังนั้น จะต้องคอนฟิกฟอนต์ทุกครั้ง ด้วย
$ sudo vi /etc/fonts/conf.d/65-1-ttfonts.conf





serif

Noraputta
Angsima



sans-serif

Umpush
Verachart
Lomaputta
Bromlila
Corada


...

Umpush
true
true



$ fc-cache -r

ถ้าไม่ประสบเหตุอื่นอีก ฟอนต์นี้คงเป็นฟอนต์สุดท้ายแล้วครับ
ลองทำฟอนต์ใช้เอง - Verachart

ทำฟอนต์หน้าจอเพิ่ม ตั้งชื่อว่า วีรชาติ เพราะเอามาจากฟอนต์ Vera ของ BitStream


ตัวบางไปหน่อย line spacing แคบไปนิด Hinting ยังแย่อยู่
ช่วยทดสอบและใช้ได้ฟรีเหมือนเดิมครับ

* ไฟล์ทรูไพป์ Verachart.ttf
* ไฟล์ FontForge Verachart.sfd
* ไฟล์ทรูไทป์ Verachart-Bold.ttf
* ไฟล์ FontForge Verachart-Bold.sfd
* ไฟล์ทรูไทป์ Verachart-Oblique.ttf
* ไฟล์ FontForge Verachart-Oblique.sfd

Update 50-07-12
* ไฟล์รวมล่าสุด Verachart.tar.gz

การทดลองที่ไม่สำเร็จ
ทดลองทำ Truetype Instruction ด้วยเมนู AutoInstruction
แก้ไขการที่โปรแกรม Fontforge ทำ Truetype Hint ไม่สมบูรณ์ ด้วยการปรับละเอียดที่ส่วนโค้งของตัวอักษรแทน
ไม่สำเร็จเนื่องจาก คุณภาพพอดูได้แค่ 11 ปอยนต์ ที่เหลือนอกจากนี้ ดูไม่ได้เลย

* ไฟล์ฟอนต์ Verachartti.ttf
* ไฟล์ FontForge Verachartti.sfd

ไฟล์ชุดนี้ยังไม่สมบูรณ์ แต่ถ้าหากต้องการทดลองใช้งานดู ไม่จำเป็นต้องแก้ไขไฟล์ 65-ttfonts.conf เนื่องจากมีการ Hint อยู่ในฟอนต์เรียบร้อยแล้ว

update

* 50-04-22 ปรับลดความสูงของฟอนต์ให้สมดุลย์กับภาษาอังกฤษ ใช้วิธี Hint แบบ AutoInstruction
* 50-04-24 กลับมาใช้ Hint แบบเดิม เปลี่ยนมาให้ระบบ Hint ได้ผลดีกว่า โดยเฉพาะฟอนต์ชุดนี้ ให้ปรับไฟล์ 65-1-ttfont.conf เป็นดังนี้



...
Verachart
san-serif

...

Verachart
true
true
3



จะให้ผลที่ดูนุ่มสบายตากว่า แม้ในขนาดฟอนต์ที่เล็กมาก ๆ
หรือถ้าหากเห็นว่าเบลอเกินไป ก็ตั้งค่า hintstyle เป็น 4 ก็จะดูคมแข็งขึ้นครับ
(ดูรายละเอียดการปรับตั้งที่ ลองทำฟอนต์ใช้เอง - แถม)
* 50-04-24 สร้างฟอนต์ชุด Verachart-Bold เพิ่ม
* 50-04-24 ปรับละเอียด
* 50-06-06 ปรับปรุง Verachart-Bold เสร็จ ทำ Verachart-Oblique เสร็จ
* 50-07-02 ปรับละเอียด Verachart 90% และ Verachart-Bold 50%
* 50-07-04 ปรับละเอียด Verachart และ Verachart-Bold ครั้งที่สอง ทำเรื่อง Hinting โดยปรับให้ความหนาของตัวอักษร ในแนวนอน มีความสม่ำเสมอ จะทำให้การ Hint ดูดีขึ้นมาก
* 50-07-12 ปรับปรุงตัวหนา ช ฃ ช ซ โ พ ฟ เล็กน้อย

ลองทำฟอนต์ใช้เอง - แถม

update

* การตั้งค่าตามเนื้อความในโพสต์นี้ จะมีผลทำให้ฟอนต์ที่ถูกระบุในการปรับตั้งครั้งนี้ ไม่อยู่ภายใต้การควบคุมของระบบ (กับ Gnome คือ System -> Preference -> Fonts) นั่นคือการแสดงผลของฟอนต์ชุดนี้จะไม่เปลี่ยนไปตามการตั้งค่า Smoothing และ Hinting ของระบบ

โพสต์นี้ได้ความรู้มาจากคุณสมเจตน์ ท่านช่วยทดสอบให้ ได้ความว่า

ฟอนต์ชุดนี้ หากจะนำไปใช้ให้ได้ผลดีมีความคมชัด ต้องกำหนด Hint ให้ฟอนต์ด้วย ดังนี้

สร้างไฟล์ชื่อ 65-1-ttfonts.conf เอาไปใส่ไว้ในไดเรกทอรี่ /etc/fonts/conf.avail แล้วสร้างลิงก์ไปยังไดเรกทอรี่ /etc/fonts/conf.d
$ sudo vi /etc/fonts/conf.avail/65-1-ttfonts.conf





Lomaputta
Lomaputta2
Garudatas
san-serif


Noraputta
Norasitas
serif


Lomaputta
true
true
false


Lomaputta2
true
true
false


Garudatas
true
true
false


Noraputta
true
true
false


Norasitas
true
true
false



$ sudo ln -sf /etc/fonts/conf.avail/65-1-ttfonts.conf /etc/fonts/conf.d

แล้วก็รีบูตเครื่องใหม่ หลังจากนั้นก็จะเห็นฟอนต์ชุดนี้มีความคมชัดเพิ่มขึ้นครับ

ลิงก์รอศึกษา

* http://www.truetype-typography.com/
* http://en.wikipedia.org/wiki/TrueType
* http://developer.apple.com/textfonts/TTRefMan/RM03/Chap3.html
* http://dejavu.sourceforge.net/wiki/index.php/Hinting_tutorial/Example:_Hinting_L

ลองทำฟอนต์ใช้เอง ๒

ลองทำอีกชุดนึงสำหรับ sans-serif โดยเอาฟอนต์โลมามาเป็นต้นแบบ
จุดประสงค์เพื่อจะนำมาทำเป็นฟอนต์สำหรับดูที่หน้าจอมอนิเตอร์ โดยต้องการให้อ่านง่าย จึงปรับให้หัวตัวอักษรกลมขึ้น แยกเส้นตัวอักษรให้เด็ดขาดขึ้น

ตั้งชื่อว่าโลมาบุตร (Lomaputta)
ช่วยทดสอบหรือเอาไปใช้ได้ฟรี (ฟอนต์โลมาต้นฉบับเป็น GPL)

* ไฟล์ฟอนต์ Lomaputta.ttf
* ไฟล์ FontForge Lomaputta.sfd
* ไฟล์ฟอนต์ Lomaputta-Bold.ttf
* ไฟล์ FontForge Lomaputta-Bold.sfd
* ไฟล์ฟอนต์ Lomaputta-Oblique.ttf
* ไฟล์ FontForge Lomaputta-Oblique.sfd
* ไฟล์ฟอนต์ Lomaputta-BoldOblique.ttf
* ไฟล์ FontForge Lomaputta-BoldOblique.sfd

เพิ่มความหนานิดนึง ดูคล้าย ๆ Tahoma เสียดายอันเก่า เลยตั้งชื่อใหม่เป็นโลมาบุตร2

* ไฟล์ฟอนต์ Lomaputta2.ttf
* ไฟล์ FontForge Lomaputta2.sfd

update

* 50-04-14 ปรับช่องไฟละเอียด, ปรับส่วนโค้งอักษรแบบละเอียด, ปรับมาใช้เทมเพลตของ thaifonts รุ่น 0.4.6 ทำให้สามารถใช้งาน OO.o ได้
* 50-04-16 ปรับแต่ง Hinting ด้วยมือ ดูดีขึ้นมาก
* 50-04-17 ปรับมาใช้เทคนิกการ Hint แบบเบลอภายในฟอนต์ด้วย AutoHint และคมภายนอกด้วย ManualHint
* 50-04-17 สร้าง Lomaputta-Bold เพิ่ม
* 50-04-17 เปลี่ยนกลับมาใช้ Hint ด้วยมือล้วน เนื่องจากแสดงผลในเดเบียนฟุ้ง(Blur)เกินไป (คงไม่เกี่ยวกับเดเบียน แต่อาจเป็นเพราะเครื่องเดเบียนของผมใช้จอภาพเป็น LCD ของเอเซอร์ ซึ่งการแสดงผลดูแล้วจะสู้ของแอลจีไม่ได้) แก้อาการหลอกตาด้วยการลดขนาดหัวตัวอักษรแทน
รู้ปัญหาอาการฟุ้งบนเดเบียนแล้ว คือ เดเบียนไม่ทำ AutoHint เป็นค่าปริยาย จึงต้องทำเองด้วยมือ
$ sudo ln -sf /etc/fonts/conf.avail/10-autohint.conf /etc/fonts/conf.d
แล้วเข้าระบบใหม่ ผลที่ได้คือ ฟอนต์บนเดเบียนดูคมกว่าบนอูบุนตูอีก
* 50-04-18 สร้าง Lomaputta-Oblique เพิ่ม
* 50-04-19 แก้ไขตาราง Contextual ซ่อมเรื่องวรรณยุกต์กับสระอุ-สระอู ตามต้นฉบับ
* 50-04-19 สร้าง Lomaputta-BoldOblique เพิ่ม
* 50-04-27 ล้างลายเส้นเก่า สร้างลายเส้นใหม่ เลียนแบบของคุณเทพ

ลองทำฟอนต์ใช้เอง ๓

คราวก่อนทำฟอนต์โลมาบุตร ดูแล้วยังรู้สึกว่าอ่านยาก (ไม่รู้ว่าเป็นที่ hinting หรือเปล่า)
คราวนี้ลองเอาอีกฟอนต์นึงคือฟอนต์ครุฑ (Garuda) มาปรับให้เหมาะกับการแสดงผลบนจอคอมพิวเตอร์
โดยการลดขนาดสระและวรรณยุกต์ และปรับความกว้างของบรรทัดให้แคบเข้า
เอาไว้เป็นตัวเผื่อเลือกสำหรับการแสดงผลของฟอนต์ sans-serif
ตั้งชื่อว่าฟอนต์ ครุฑทัศน์ (Garudatas)

ดาวน์โหลด

* ไฟล์ฟอนต์ Garudatas.ttf
* ไฟล์ sfd Garudatas.sfd

update
ทำเพิ่มเติมสำหรับ serif ด้วย คือฟอนต์นรสีห์ เป็น นรสีห์ทัศน์
ดาวน์โหลด

* ไฟล์ฟอนต์ Norasitas.ttf
* ไฟล์ sfd Norasitas.sfd

หมายเหตุ
ไม่เหมาะสำหรับงานเอกสารที่ต้องพิมพ์ออกมา สำหรับงานพิมพ์ใช้ฟอนต์ Garuda และ Norasi เดิมสวยอยู่แล้ว
เกร็ดเกี่ยวกับโปรแกรม FontForge

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

การกำหนดแถบการ Hint ไว้กว้าง ทำให้เวลาแสดงฟอนต์ทางจอภาพ อักษร ก ไก่ จะดูเตี้ยกว่าอักษร ข ไข่ ซึ่งไม่ถูก AutoHint ไว้กว้างแบบนั้น

ถ้าจะทำให้ได้ผลการ Hint ที่ดี แบบที่เรา ๆ ท่าน ๆ สามารถทำได้เอง โดยไม่ต้องใช้ฝีมือระดับเทพ ก็คือการ Hint เองด้วยมือ
ซึ่งทำได้โดยการกำหนดสองจุดคู่ที่จะทำการ Hint แล้วสั่ง Add HHint หรือ Add VHint ตามลักษณะของส่วนโค้งตัวอักษรนั้น ๆ

วิธีนี้ทำให้ได้ตัวอักษรที่ดูสูงเท่ากัน แต่ปัญหาคือโปรแกรม FontForge ไม่ทำปุ่มลัดสำหรับคำสั่ง Add HHint และ Add VHint ไว้ด้วย
งานที่จะต้องมานั่งเลือกจุดคู่แล้วไล่คลิกเมนูสั่งงาน นับว่าเปลืองเวลาเกินไป
แต่ยังโชคดีที่โปรแกรมถูกออกแบบให้สามารถกำหนดปุ่มลัดได้เอง เพียงแต่ต้องออกแรงหน่อยนึงด้วยการคอมไพล์แพกเกจเอง
เราจะกำหนดปุ่มลัดเอง ทำให้การทำงานเร็วขึ้นมาก

เริ่มด้วยการติดตั้งแพกเกจที่จำเป็นในการคอมไพล์ก่อน
$ sudo aptitude install libfreetype6-dev
(แพกเกจอื่น ๆ ไม่แน่ใจครับ อาจตรวจดูจากข้อผิดพลาดตอนสั่ง ./configure ก็ได้)

ไปเอาซอร์สมาก่อนคือไฟล์ fontforge_full-20070312.tar.bz2

เมื่อได้ไฟล์มาแล้วก็แตกไฟล์ออกก่อน
$ tar xfj fontforge_full-20070312.tar.bz2

คอมไพล์และติดตั้ง
$ cd fontforge-20070312
$ ./configure
$ make
$ sudo make install

ต่อไปเป็นการสร้างไฟล์สำหรับกำหนดปุ่มลัด
ทำตามคู่มือ ในการนำเอาไฟล์ FontForge-MenuShortCuts.pot ออกมา
$ cd fontforge-20070312/fontforge
$ make -f Makefile.in FontForge-MenuShortCuts.pot

เราจะได้ไฟล์ FontForge-MenuShortCuts.pot
เราจะแก้ไขในไฟล์นี้โดยกำหนดให้ Add HHint ใช้ปุ่มลัดเป็น Alt+Ctl+1
และ Add VHint ใช้ปุ่มลัดเป็น Alt+Ctl+2
$ vi FontForge-MenuShortCuts.pot

...
#: charview.c:8105
msgid "Add HHint|No Shortcut"
msgstr "Alt+Ctl+1"

#: charview.c:8106
msgid "Add VHint|No Shortcut"
msgstr "Alt+Ctl+2"
...

คอมไพล์ไฟล์ pot
$ msgfmt -o FontForge-MenuShortCuts.mo FontForge-MenuShortCuts.po

ย้ายไฟล์นี้ไปไว้ที่ไดเรกทอรี่ที่เก็บ locale ของเครื่อง
ถ้าตั้ง locale เป็น en_US.UTF8 คำสั่งจะเป็น
$ sudo mkdir -p /usr/local/share/locale/en_US/LC_MESSAGES
$ sudo mv FontForge-MenuShortCuts.mo /usr/local/share/locale/en_US/LC_MESSAGES

เสร็จเรียบร้อยแล้ว สั่งรันโปรแกรมด้วยคำสั่ง
$ /usr/local/bin/fontforge -dontopenxdevices [ชื่อไฟล์ฟอนต์]

ผลที่ได้จากการทำ Hint ด้วยมือ ดูดีขึ้นกว่าทำ AutoHint มากครับ

จากความรู้ที่ได้นี้ สามารถสรุปการ Hint ได้คือ

* ส่วนในของฟอนต์เลือกใช้ AutoHint เนื่องจากต้องการให้เกิดการเบลอภายในให้มากที่สุด
* ส่วนนอกของฟอนต์ คือ จุดสูงสุดและต่ำสุด ต้อง Hint เองด้วยมือ เพราะต้องการให้ส่วนสูงมีความคงที่

เพิ่มเติม
* อ่านมาจาก http://osdir.com/ml/fonts.fontforge.user/2006-08/msg00030.html
บอกว่า ปกติ FontForge ไม่ทำ Hint ของทรูไทป์โดยตรง แต่เป็นของ Type1
ถ้าจะพยายามทำ Hint ให้ทรูไทป์ วิธีทำคือให้เปลี่ยนส่วนโค้งเป็นแบบ Quadratic
Element -> Font Info ... -> เลือก Quadratic Splines

หลังจากนั้นจึงทำ AutoHint และ AutoInstruction แล้วจึงสั่งผลิตฟอนต์ทรูไทป์
เลือกช่วงฟอนต์ที่ต้องการ -> Hints -> AutoHint
Hints -> AutoInstr
Files -> Generates Fonts

ทดลองแล้วได้ผลดีพอควร
* 50-05-05 ลองทดสอบเรื่อง Truetype Hint ได้ความว่า
ถึงแม้ว่า Fontforge จะทำ Truetype Hint ได้แย่มากก็ตาม แต่เราก็อาจบังคับทำได้ โดยได้ผลดีพอควร โดยมีข้อแม้ว่า :-
1. จุดต่าง ๆ ที่กำกับส่วนโค้ง ต้องเลือกใช้จุดให้ตรงจริง ๆ ทั้งสามชนิดคือ จุดส่วนโค้ง จุดหัวมุม และจุดแทนเจนต์ ห้ามใช้จุดมั่วเด็ดขาด
2. ขนาดความหนาของส่วนตัวอักษร และจุดกำกับส่วนโค้งต่าง ๆ ควรอยู่ในตำแหน่งทางเรขาคณิตแบบง่าย ๆ
3. ส่วนโค้งที่ยาวมาก ต้องมีจุดแบ่งส่วนกำกับเสมอ
4. ถ่าหากจุดเริ่มต้นส่วนโค้ง ไม่อยู่ในตำแหน่งทางเรขาคณิตอย่างง่าย ควรใช้จุดแทนเจนต์กำกับอยู่ใกล้ ๆ (เช่น ปลายหางของตัว จ.จาน เป็นต้น)
5. เมื่อทดสอบแล้วพบว่ามีบางอักขระที่มีอาการฟุ้ง ให้ลองปรับลดหรือเพิ่มความกว้างของอักขระนั้นที่ละ 1 พิกเซล (ส่วนใหญ่ลองที่ขนาดฟอนต์ประมาณ 11 ปอยนต์)

ถ้าผ่านข้อกำหนดดังกล่าว การ Hint จะได้ผลดีที่สุด
* การทำงานกับส่วนโค้งที่เป็น Quadratic ไม่ยากจนเกินไปนัก หัดสักพักก็จะชิน เมื่อชินแล้วจะพบว่าการบังคับส่วนโค้ง ง่ายกว่าแบบ Cubic เสียอีก เพราะโดนบังคับด้วยจุดขนาบ
* อนาคตของ Truetype Hint น่าจะเสื่อมความนิยมลงไปเรื่อย ๆ ผกผันกับขนาดความละเอียดของจอภาพที่จะละเอียดขึ้นไปเรื่อย ๆ
* การทำให้การ Hint แบบ Adobe ได้ผลดี ควรปรับความหนาของตัวอักษรในแนวนอนให้มีความสม่ำเสมอ จึงจะได้ความสูงของตัวอักษรที่เท่า ๆ กัน ที่ขนาดตัวอักษรต่าง ๆ กัน

ลองทำฟอนต์ใช้เอง - จบ

ค้นไปค้นมา ไปพบฟอนต์ที่เป็นฟรีแวร์และ gpl สรุปได้ดังนี้

* ฟอนต์แห่งชาติ นอกเหนือจากฟอนต์โลมา ครุฑ และนรสีห์แล้ว ยังมีฟอนต์กินรีที่สวยอยู่แล้ว ใช้แทนฟอนต์ Angsana ในวินโดวส์ได้เลย - ดาวน์โหลด national-fonts.zip
* ฟอนต์ของบริษัท Tep Club เป็นฟรีแวร์ มีฟอนต์สวยมาก ๆ คือ CmPrasanmit - ดาวน์โหลด tep-clubfonts.zip
* ฟอนต์ที่ SIPA พัฒนา ไม่ค่อยสวยเท่าไหร่ - ดาวน์โหลด dip-sipa-font.zip
* ฟอนต์ตระกูล JS ของคุณหมอภาณุฑัต ที่แนบมากับลินุกซ์ทะเล 7 สามารถนำออกจากแผ่น TLE-7 ได้เลย หรือสามารถดาวน์โหลดไฟล์ rpm แล้วนำมาแตกเองด้วยโปรแกรม Archeive Manager - ดาวน์โหลด thai-ttf-js.0.0.2-1.src.rpm

มีฟอนต์สวย ๆ มากจริง ๆ

ทำฟอนต์เอง มาตายตรง hinting มือไม่ถึง :P เวลาไม่เอื้อให้ศึกษา
แต่ก็ยังชอบใจ โลมาบุตรอยู่ดี ;D

No comments: