ฟอนต์ Purisa แสดงตัวอย่างใน LibreOffice ไม่ถูกต้อง

42 views
Skip to first unread message

Korrawit Pruegsanusak

unread,
Dec 11, 2019, 2:46:56 PM12/11/19
to Thai Linux/FOSS developers
สวัสดีครับ

ขอแจ้งปัญหาฟอนต์ Purisa แสดงตัวอย่างคำว่า "อักษรไทย" ใน LibreOffice ไม่ถูกต้อง ตามภาพครับ
ส่วนฟอนต์อื่นๆ ใน package Fonts-TLWG แสดงผลได้ถูกต้อง

หากเปิดใน Microsoft Word ฟอนต์จะแสดงเป็นตัวอย่างเป็นภาษาอังกฤษ abcdefghij

LibreOffice 6.3.1.2 64 bit, Windows 10, otf-tlwg-0.7.1 ครับ

ขอบคุณครับ/ด้วยความเคารพ
กรวิทย์




Peter Passchier

unread,
Dec 12, 2019, 8:51:14 AM12/12/19
to Thai Linux/FOSS developers
On Thursday, December 12, 2019 at 2:46:56 AM UTC+7, Korrawit Pruegsanusak wrote:
ขอแจ้งปัญหาฟอนต์ Purisa แสดงตัวอย่างคำว่า "อักษรไทย" ใน LibreOffice ไม่ถูกต้อง ตามภาพครับ
ส่วนฟอนต์อื่นๆ ใน package Fonts-TLWG แสดงผลได้ถูกต้อง

LibreOffice 6.3.1.2 64 bit, Windows 10, otf-tlwg-0.7.1 ครับ

ขอบคุณครับ/ด้วยความเคารพ
กรวิทย์

ผมมี fonts-tlwg-purisa-ttf 0.6.4-2  Ubuntu 18.04.3  librfeoffice 6.3.3-0ubuntu0.18.04.1~lo1
และที่นี่แสดงตัวอย่างถูกต้องเป็นอักษรไทยนะครับ

Korrawit Pruegsanusak

unread,
Dec 12, 2019, 12:56:37 PM12/12/19
to thai-linux...@googlegroups.com
ขอบคุณครับ

เพิ่งสังเกตเห็นว่ารูปไม่โชว์ ขออนุญาตส่งรูปอีกครั้งครับ
Purisa font MS Word.png
Purisa font wrong LibreOffice.png

Peter Passchier

unread,
Dec 12, 2019, 6:59:31 PM12/12/19
to Thai Linux/FOSS developers

Purisa.png



On Thursday, December 12, 2019 at 2:46:56 AM UTC+7, Korrawit Pruegsanusak wrote:

Korrawit Pruegsanusak

unread,
Jul 22, 2020, 7:38:26 AM7/22/20
to thai-linux...@googlegroups.com
สวัสดีอีกครั้งครับ

ขอเพิ่มเติมรายละเอียดปัญหา เท่าที่สืบค้นได้ในขณะนี้นะครับ

1. เป็นเฉพาะกับฟอนต์แบบ OpenType (OTF) แต่ถ้าใช้ฟอนต์ TrueType (TTF) ไม่พบปัญหา
2. เป็นเฉพาะฟอนต์ Purisa ส่วนฟอนต์อื่นในกลุ่มเดียวกัน ผมได้ทดสอบ Norasi และ Sawasdee ไม่พบปัญหา
3. ทดสอบใน Ubuntu 18.04 จำนวน 1 เครื่อง และ Windows 10 จำนวน 2 เครื่อง พบว่าปัญหาเป็นเฉพาะใน Windows 10 ทั้งสองเครื่อง ส่วน Ubuntu ไม่พบปัญหา
4. ทดสอบด้วยฟอนต์เวอร์ชั่นล่าสุดแล้ว (0.7.2) และให้ผลแบบเดียวกันเมื่อใช้เวอร์ชั่น 0.7.1

ได้ลองดูโค้ดของ Libreoffice พบว่า สตริงที่แสดงผลในรูปที่แนบมานั้น (ญ หญิงแบบไม่มีหาง, ดอกไม้, เลข 4 superscript, ...) เกิดจากโค้ดส่วนนี้ บรรทัดที่ 181-207 ในเงื่อนไข if ( bHasCharMap )
ซึ่งเป็นการไล่อักขระที่มีอยู่จากด้านท้ายสุด ข้ามทุก 10 ตัว (nSkip = 10) และแสดงผลออกมา 8 ตัว (nMaxCount)

โค้ดส่วนนี้อยู่ในฟังก์ชั่น makeShortRepresentativeSymbolTextForSelectedFont
ซึ่งถูกเรียกใช้งานจากจุดเดียวคือบรรทัดที่ 691-692
> if (bSymbolFont || (!bUsingCorrectFont && sSampleText.isEmpty()))
>   sSampleText = makeShortRepresentativeSymbolTextForSelectedFont(rDevice);
ทั้งนี้ ผมคาดว่าน่าจะเข้า condition จากเงื่อนไข (!bUsingCorrectFont && sSampleText.isEmpty()) มากกว่า

ขณะนี้ผมสืบค้นได้เท่านี้ครับ

ขอบคุณครับ
-- กรวิทย์
Purisa font wrong LibreOffice.png
Reply all
Reply to author
Forward
0 new messages