วันศุกร์ที่ 11 กันยายน พ.ศ. 2569

[Font] บันทึกแก้ไขฟอนต์ JS Jindara (ตอนที่สอง)

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

- JS-Jindara (fix) [v.1.3] คือฟอนต์ JS-Jindara ที่แก้ไขเรื่องตัวหนา/เอน และวรรณยุกต์เท่านั้น

- Jindara [v.2.3] คือฟอนต์ที่ปรับขนาดให้ตัวใหญ่ตามมาตรฐานฟอนต์สมัยปัจจุบันและแก้ไขบางจุด

* * * * * * * * * *

จากตอนที่ 1 แก้ไขไฟล์ฟอนต์ JS Jindara (จินตหรา) แล้วเอามาลองใช้เองบนโปรแกรมต่างๆ ก็ผ่านฉลุย ใช้งานได้ปกติดี แต่พอเอาไปทดสอบบน Windows ด้วย MS Word แล้วพบปัญหาวรรณยุกต์ลอยซะงั้น

พยายามค้นข้อมูลเพื่อหาวิธีแก้ไขแล้วแต่ไม่สำเร็จ จนสุดท้ายต้องมาเขียนโปรแกรมควบคุมเพิ่มเอง (เป็น Opentype feature ของฟอนต์รุ่นใหม่)

ผมใช้งาน Linux เป็นหลัก เครื่องคอมพิวเตอร์ที่ใช้ ไม่มี Windows เลย เวลาจะทดสอบแต่ละทีก็ต้องไปขอหยิบยืมทดสอบบนเครื่องคอมฯ คนอื่น ^^'a

พอเอามาใช้บน Word แล้วก็เจอปัญหาว่าหลายๆ จุดที่เขียนโปรแกรมจัดการไป (เป็นฟีเจอร์เพิ่มเติมพิเศษ) มันไม่ทำงาน พยายามแก้นู่นแก้นี่ สุดท้ายพยายามคงสภาพความเป็น JS Jindara ให้มากที่สุดเอาไว้ก่อน ทีหลังถ้ามีไฟมากพอก็อาจจะทำเป็นเวอร์ชันที่เอาเฉพาะโครงสร้างตัวอักขระมาใช้

ฟอนต์ทำออกมาเป็น 2 รุ่นคือ

  • JS Jindara เป็นแบบดั้งเดิมที่แก้เรื่องตัวหนาตัวเอน
  • Jindara ขยายขนาดฟอนต์ให้สอดคล้องกับมาตรฐานฟอนต์ไทยในปัจจุบัน + เพิ่ม ฬ หางสั้น ใช้คู่กับสระบน/วรรณยุกต์ + เพิ่มอักขระ ฤๅ ฦๅ + ขยายขนาดตัวเลขขึ้นมาเล็กน้อย

ขนาดของฟอนต์ เมื่อนำมาเทียบกับฟอนต์ Cordia New ซึ่งเป็นมาตรฐานเก่า จะได้ประมาณนี้ (ผมใช้ขนาดฟอนต์กูเกิล Chakra Petch เป็นตัวอ้างอิง)

Cordia New : 14 / 16 / 17 / 18 / 20 / 22 / 24 / 25

Jindara : 10 / 11 / 12 / 13 / 14 / 16 / 17 / 18


จากภาพ ซ้าย Cordia New | ขวา Jindara


แล้วก็ทำฟีเจอร์อักขระพิเศษดังนี้

พิมพ์ :00: จะได้ ๏ (0e4f)

พิมพ์ :0-: จะได้ ๛ (0e5b)

พิมพ์ ฯฯ จะได้ ๚ (0e5a)

แต่ถ้ากดรหัส unicode เองได้ จะดีกว่า (รหัส unicode ผมวงเล็บต่อท้ายเอาไว้) เพราะการใช้พิมพ์ตามข้างบน แม้จะแสดงเป็นสัญลักษณ์ก็จริง แต่ข้อมูลที่ถูกจัดเก็บจะยังคงเป็นตัวอักขระที่เราพิมพ์ลงไปอยู่ดี หากเปลี่ยนไปใช้ฟอนต์อื่น มันจะแสดงเป็นอักขระที่พิมพ์ลงไป ไม่ได้แสดงสัญลักษณ์ที่ผมทำไว้

ผมไม่รู้ว่าบน Windows หรือ MS Word ต้องพิมพ์อักขระพวกนี้ยังไง ถ้าเป็น Linux เวลาพิมพ์รหัส unicode ให้กดปุ่ม Ctrl + Shift + u แล้วก็พิมพ์รหัสที่เราต้องการ (มองไม่เห็นบนหน้าจอ) จากนั้นกด enter

เช่น Ctrl + Shift + u ตามด้วย 0e4f แล้วกด enter จะได้ตัวฟองมัน ๏

ส่วนของผมนั้น ผมใช้ผังแป้นพิมพ์ที่ทำเอง มันสามารถพิมพ์สัญลักษณ์พวกนี้ได้โดยตรงอยู่แล้ว

วันอาทิตย์ที่ 23 สิงหาคม พ.ศ. 2569

[Font] บันทึกทำฟอนต์ A5 Bantat บรรทัด (ตอนที่ 1)

ระหว่างที่แก้ฟอนต์ JS Jindara (จินตหรา) ไป ทำให้อยากมีฟอนต์ใช้งานของตัวเองบ้าง เป้าหมายแรกของการออกแบบฟอนต์บรรทัดคือต้องการตัวอักษรทางการเพื่อใช้งานเอกสารเป็นหลัก

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

แบบอักษรอิงความกว้างของฟอนต์ JS Jindara ให้อ้วนหน่อยเพื่อความอ่านง่าย แต่หลังจากออกแบบเสร็จก็รู้สึกว่ามันค่อนข้างกินพื้นที่ด้านกว้างอยู่บ้าง พอเอามาใช้กับพื้นที่แคบๆ (หน้าจอโทรศัพท์มือถือ) แล้วมันไม่ค่อยพอใช้ อนาคตถ้าขยัน อาจจะทำทรงผอมที่ลดขนาดลงเหลือ 90%


https://x.com/HudchewMan/status/2088643936529289696

วันจันทร์ที่ 10 สิงหาคม พ.ศ. 2569

รูปแบบของตัวอักษรจีน

ลักษณะการเขียนตัวอักษรจีนมีการแบ่งออกเป็นประเภทหลักๆ ซึ่งมักแบ่งตามพัฒนาการทางประวัติศาสตร์ ซึ่งแบ่งคร่าวๆ ได้ประมาณนี้ แต่บอกก่อนว่าการแบ่งประเภทที่ผมจะพูดถึง ไม่ได้แบ่งอย่างเป็นทางการนะครับ

1. อักษรจ้วนซู (篆书 / 篆書 - Zhuànshū) | อักษรตราประทับ

เป็นรูปแบบอักษรที่เก่าแก่ที่สุดในกลุ่มนี้ มีความโค้งมน ลายเส้นมีความหนาเท่ากันสม่ำเสมอ คล้ายภาพวาด มักใช้ในการแกะสลักตราประทับโบราณ แบ่งย่อยเป็น:

ต้าจ้วน (大篆) อักษรจ้วนแบบโบราณ (รวมถึงอักษรบนกระดูกสัตว์และเครื่องสัมฤทธิ์)

  • เจี๋ยกู่เหวิน (甲骨文) อักษรในยุคแรกจะเป็นอักษรกระดูก แกะสลักลงบนกระดูกสัตว์และกระดองเต่า (ยุคราชวงศ์ซาง - ประมาณ 3,000 กว่าปีที่แล้ว) เส้นสายจะแหลม คม และเป็นเหลี่ยมมุมชัดเจน เพราะใช้ของมีคมจารึกลงบนกระดองเต่าหรือกระดูกสัตว์ ตัวอักษรยังมีความคล้าย ‘ภาพวาดลายเส้น’ (Pictogram) อยู่มาก
  • จินเหวิน (金文) อักษรบนเครื่องสัมฤทธิ์ (ยุคราชวงศ์โจว) เริ่มหล่อขึ้นรูปด้วยแม่พิมพ์ ทำให้เส้นสายมีความหนา อวบอิ่ม และมีความโค้งมนมากกว่าอักษรกระดูกสัตว์

เสี่ยวจ้วน (小篆) อักษรจ้วนเล็กที่ถูกปรับให้เป็นมาตรฐานในสมัยจิ๋นซีฮ่องเต้ พระองค์ได้รวบรวมและเรียบเรียงปรับตัวอักษรจ้วนโบราณ (ต้าจ้วน) ทั้งหมดให้กลายเป็นมาตรฐานเดียวกันทั้งแผ่นดินจีน เป็นรูปแบบเส้นโค้งสมมติเมตร มีความหนาเท่ากันสม่ำเสมอ เป็นรูปแบบที่เรามักเห็นบนแกะสลักตราประทับจีน



วันอาทิตย์ที่ 9 สิงหาคม พ.ศ. 2569

[Font] ตารางรหัสอักขระฟอนต์ไทย

ee0d ญ ไม่มีเชิง

ee10 ฐ ไม่มีเชิง

ee32 ไม้หันอากาศหลบหาง

ee33 สระอำหลบหาง

ee34 สระอิหลบหาง

ee35 สระอีหลบหาง

ee36 สระอึหลบหาง

ee37 สระอือหลบหาง

ee38 สระอุต่ำ

ee39 สระอูต่ำ

ee3a พินทุต่ำ

ee47 ไม้ไต่คู้หลบหาง

ee48 ไม้เอกต่ำ

ee49 ไม้โทต่ำ

ee4a ไม้ตรีต่ำ

ee4b จัตวาต่ำ

ee4c การันต์ต่ำ

ee4d นิคหิตต่ำ

วันอาทิตย์ที่ 26 กรกฎาคม พ.ศ. 2569

ใช้ web browser นับคำไทย

เวลาเขียนนิยาย ไม่ว่าจะเป็นแบบรายตอนหรือทำ e-book เรามักจะดูจำนวนคำของแต่ละบท (หรือทั้งเล่ม) แต่สำหรับคนที่ใช้ Google Docs ในการทำงาน (หรือ Word for web) จะนับคำไทยไม่ได้ ทำให้ไม่รู้ว่าตอนนี้เขียนไปเท่าไหร่แล้ว (ปกติผมใช้ดูจำนวนหน้าเอา ไม่ได้สนใจจำนวนคำ)

โดยปกติฟีเจอร์นับคำจะมีอยู่ในโปรแกรม word processor (เช่น MS Word) ซึ่งถ้าเป็นโปรแกรมที่รองรับการทำงานภาษาไทย (สามารถตัดคำไทยได้) ก็จะนับคำไทยให้ด้วย

โปรแกรม LibreOffice Writer เองก็มีฟีเจอร์นับคำไทยให้เช่นกัน แต่หลังจากที่เปลี่ยนมาใช้เลขเวอร์ชันที่เป็นปี ค.ศ. แทนเลขรุ่นเหมือนสมัยก่อนแล้ว ฟีเจอร์นับคำไทยของ LibreOffice Writer ก็ใช้ไม่ได้อีกเลย (ไม่แน่ใจว่าจำผิดหรือเปล่า เหมือนว่าเวอร์ชันปี ค.ศ. ตัวแรก ยังใช้ฟีเจอร์นับคำไทยได้อยู่)

ตอนที่แปลนิยายจีน ผมจะใช้ Google Docs ในการพิมพ์งานเป็นหลัก เพราะสะดวกเวลาย้ายอุปกรณ์ทำงาน เมื่อตรวจทานเสร็จผมก็จะคัดลอกมาแปะเก็บในโปรแกรมเขียนนิยายที่ผมทำไว้ใช้เอง เพราะการค้นหาคำทำได้สะดวกกว่า เวลาส่งงานผมก็กด export ให้เป็นไฟล์ .docx ที่จัดหน้าตามที่ต้นสังกัดต้องการได้เลย

หลังจากทำโปรแกรมแพนแกรมไป จู่ๆ เกิดนึกสงสัยขึ้นมาว่า web browser มันนับคำไทยด้วย javascript ได้หรือเปล่า ก็เลยถาม Chat-GPT และคำตอบที่ได้รับทำให้แปลกใจมาก นั่นคือทำได้!

ผมเข้าใจว่านี่เป็นอานิสงส์มาจากฟีเจอร์ตัดคำไทย (ที่ได้มาจากต้นน้ำของทาง Linux อีกที) ก็เลยให้ Chat-GPT ช่วยเขียน html + javascript ออกมา



หลังจากลองเล่นลองแก้นู่นแก้นี่แล้วก็รู้สึกชอบใจ เลยคิดว่าเอาไว้จะเอามาเพิ่มเป็นฟีเจอร์ในโปรแกรมเขียนนิยายที่ใช้อยู่ ทีหลังจะได้ทำงานโดยตรงในโปรแกรมเลย ไม่ต้องผ่าน Google Docs อีก

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

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


อ้อ ผมลองพิมพ์ตัวจีนลงไปเพื่อดูการนับ ตอนแรกเข้าใจว่ามันนับเป็นตัวๆ เหมือนบนเว็บนิยาย แต่ปรากฏว่ามันนับเป็นคำด้วย เช่น 中国 (แปลว่าประเทศจีน) มันนับเป็น 1 คำเท่านั้น

ตอนแรกก็คิดว่าจะเพิ่มการตรวจสอบว่าถ้าเป็นอักษรจีน ให้นับเป็นตัวอักษรแทน แต่คิดไปคิดมาก็ปล่อยไว้ดีกว่า เพราะใช้ตัวอักษรจีนน้อยมาก (เอาไว้แค่ใส่ลงในเชิงอรรถเท่านั้น) จะได้ไม่ต้องแก้โปรแกรมเพิ่มอะไรให้ยุ่บยั่บอีก

วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2569

แพนแกรม ชุดตัวอักษรไทย

เห็นฬ่อเฒ่าจูงทุยถือแฟ้มฤกษ์ศึกษา คำปฏิญญาของพิพิธภัณฑ์ประทับฐาน เพชฌฆาตผาดโผนไซ้ใส่ทวาร ก๊วยเตี๋ยวฮาลาลฝึกฉลามสวมชฎาฯ

ประโยคด้านบน อ่านผ่านๆ ก็คงแค่รู้สึกว่าความหมายแปลกๆ แต่อาจจะไม่รู้สึกว่ามีอะไรพิเศษใช่ไหม ซึ่งถ้าเปลี่ยนเป็นคำกลอนสองบทนี้ อาจจะคุ้นตาขึ้นบ้าง

“เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญเข่นฆ่าบีฑาใคร

ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย ปฏิบัติประพฤติกฎกำหนดใจพูดจาให้ จ๊ะๆ จ๋าๆ น่าฟังเอยฯ”

หลายคนน่าจะเคยผ่านตากลอนบทนี้อยู่บ้าง มันก็คือแพนแกรมในภาษาไทยนั่นเอง

Pangram (แพนแกรม) คืออะไร? มันก็คือข้อความที่ใช้ตัวอักษรทุกตัวในภาษานั้นๆ มักนิยมแต่งประโยคในสั้นที่สุด ซึ่งก็เป็นความท้าทายของคนแต่งด้วยเช่นกัน

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

พอโตขึ้นมาถึงได้รู้ว่ามันคือประโยค The quick brown fox jumps over a lazy dog. ซึ่งก็คือหนึ่งในแพนแกรมภาษาอังกฤษนั่นเอง

วันอาทิตย์ที่ 12 กรกฎาคม พ.ศ. 2569

[Font] บันทึกแก้ไขฟอนต์ JS Jindara (ตอนที่หนึ่ง)

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

- JS-Jindara (fix) [v.1.3] คือฟอนต์ JS-Jindara ที่แก้ไขเรื่องตัวหนา/เอน และวรรณยุกต์เท่านั้น

- Jindara [v.2.3] คือฟอนต์ที่ปรับขนาดให้ตัวใหญ่ตามมาตรฐานฟอนต์สมัยปัจจุบันและแก้ไขบางจุด (อ่านเพิ่มเติมในโพสต์)

* * * * * * * * * *

ฟอนต์ JS-Jindara (เจเอส จินตหรา) ที่รังสรรค์โดยคุณหมอจิมมี่ ภาณุทัต เตชะเสน (เขียนโปรแกรม) กับคุณแสวง ตันติราพันธ์ (ออกแบบอักขระ) ซึ่งในปัจจุบันทางเจ้าของลิขสิทธิ์ (บริษัท 315 จำกัด ปัจจุบันปิดไปแล้ว) ได้ยกให้เป็นสมบัติสาธารณะ (Public Domain) ที่ใช้งานได้ฟรีภายใต้สัญญาอนุญาต GPL v2 โดยไม่มีการเรียกเก็บค่าใช้งานใดๆ ทั้งสิ้น (รวมถึงฟอนต์ตระกูล JS ตัวอื่นๆ ด้วย)

ฟอนต์ JS-Jindara นี้ เป็นฟอนต์ที่มีหลายคนนิยมใช้สำหรับทำหนังสือ/เอกสาร แต่ด้วยความที่เป็นเทคโนโลยีเก่า จึงมีปัญหาการแสดงผลกับโปรแกรมและระบบปฏิบัติการในยุคปัจจุบันอยู่บ้าง

ผมลองพยายามค้นหาฟอนต์ที่แก้ไขให้ใช้งานได้กับโปรแกรมปัจจุบัน แต่หาไม่เจอเลย จึงต้องมาลงมือทำเอง โดยใช้ไฟล์ฟอนต์ที่ดาวน์โหลดมาจากเว็บ TypeFaces (ฟอนต์อื่นๆ ในตระกูล JS)

วันพฤหัสบดีที่ 2 กรกฎาคม พ.ศ. 2569

ติดตั้ง+ลบฟอนต์ บนลินุกซ์

การติดตั้งฟอนต์บนลินุกซ์นั้นสามารถทำได้ง่ายๆ ไม่ต่างจาก Windows นั่นคือคลิกไฟล์ .ttf หรือ .oft แล้ว (หรือคลิกขวา) จะมีคำสั่งให้ติดตั้งฟอนต์ได้เลย

ฟอนต์ที่ติดตั้งลงไป จะอยู่ในตำแหน่งเก็บฟอนต์ของผู้ใช้งานคนนั้น ซึ่งจะอยู่ในโฟลเดอร์

 ~/.local/share/fonts/

หากต้องการติดตั้งแบบทำให้ผู้ใช้ทุกคนสามารถใช้งานได้ ให้ติดตั้งลงในโฟลเดอร์

/usr/share/fonts

จากนั้นอัปเดตแคชด้วยคำสั่ง

fc-cache -fv


การลบฟอนต์ออกจากระบบ ผมยังไม่เจอวิธีการอื่น ต้องเข้าไปลบในโฟลเดอร์ด้านบนด้วยตัวเอง แล้วก็อัปเดตแคช เป็นอันเสร็จสิ้น

วันเสาร์ที่ 14 มีนาคม พ.ศ. 2569

[Linux] ทดสอบความเร็วอินเทอร์เน็ตบนเทอร์มินัล

ปกติการทดสอบความเร็วอินเทอร์เน็ต เราสามารถเข้าเว็บ fast.com หรือ speedtest.net แต่ถ้าต้องการตรวจความเร็วผ่านทางเทอร์มินัล ก็ยังมีวิธีอยู่

วิธีที่ 1 ใช้ speedtest-cli

  • ติดตั้ง sudo apt install speedtest-cli
  • เรียกใช้งานโดยพิมพ์ speedtest หรือแสดงผลแบบง่ายด้วย speedtest-cli --simple หรือแสดงหน่วยเป็น Bytes โดย speedtest-cli --bytes

วิธีที่ 2 ใช้ fast.com

  • ติดตั้งโดย curl -L https://github.com/ddo/fast/releases/download/v0.0.4/fast_linux_amd64 -o fast
  • เปลี่ยน permission ให้ทำงานได้ chmod +x fast
  • เรียกใช้งานโดยพิมพ์ ./fast


วันพฤหัสบดีที่ 5 มีนาคม พ.ศ. 2569

[Linux] ตรวจสอบ hardware ว่ามีอุปกรณ์อะไรบ้าง

ปกติใน Linux จะมีเมนูเรียกดูส่วนประกอบของเครื่องคอมพิวเตอร์ว่ามีอะไรบ้าง แต่ System Info ของ Linux จะแสดงแค่ข้อมูลพื้นฐานเท่านนั้น



หากต้องการดูข้อมูลรายละเอียดของ hardware แต่ละชนิดในเชิงลึกกว่านั้น ต้องเข้าไปพิมพ์คำสั่งใน terminal โดยสั่งว่า

inxi -Fxz

หากต้องการให้บันทึกข้อมูลลงไฟล์ ให้เพิ่ม > path/ชื่อไฟล์ เช่น

inxi -Fxz > info.txt

inxi -Fxz > ~/Documents/info.txt