Microsoft Web Core Fonts/Hebrew Fix

יש בעיה עם מלל מנוקד כשמשתמשים בפונטים מהחבילה של מיקרוסופט על מקינטוש. לדוגמה, ככה נראה מלל מנוקד במלל או בתוכנות קוקו אחרות:

nikud-bug.png

השורה הראשונה היא בפונט אריאל עברי שהוא חלק ממערכת עשר, והשורה השנייה היא בפונט אריאל מהחבילה של מיקרוסופט.

הבעייה

לפי איל רדלר, הבעיה נגרמת על ידי הגדרה לא נכונה של הרוחב של תווי הניקוד בתוך הפונט. כנראה שחלונות מתעלמת מהמידה הזאת ולכן המלל מוצג נכון על חלונות. בבדיקה של הפונט אכן לתווי הניקוד מוגדר רוחב, לעומת רוחב של אפס בתווי הניקוד בפונט אריאל עברי (Arial Hebrew).

הפונטיים של מיקרוסופט הם חופשיים להפצה מחדש, אבל אי אפשר לתקן אותם ולהפיץ אותם שוב. נחוץ כאן תיקון שכל אחד יוכל לעשות במחשב שלו, אני לא בטוח שזה חוקי לפי הסכם השימוש של מיקרוסופט, אבל אין להם אפשרות למנוע ממשתמשים לתקן את הפונטים במחשב שלהם :-) .

מצאתי כלי נפלא בשם [WWW] TTX, שממיר פונטים בפורמט TrueType לפורמט XML וחזרה. לאחר ההמרה, אפשר לבדוק או לשנות הפונט בכל עורך מלל, ואז להמיר חזרה לפורמט TrueType.

הנה מקטע רלוונטי מתוך פונט ArialHB:

 <mtx name="qamatshebrew" width="0" lsb="358"/>

ואותה טבלה בפונט Arial מתוך החבילה של מיקרוסופט:

 <mtx name="qamats" width="682" lsb="140"/>

לבדיקה השתמשתי ברוחב אפס כפי שמוגדר בפונט ArialHB, מה שמעביר את הקמץ מתחת לאות במקום אחריה, אבל עדיין המיקום שלו שגוי:

qamatz-fix.png

נראה שהמיקום השגוי של הקמץ נובע מכך שהוא לא נמצא במרכז הפונט. בפונט Arial הגליף משורטט בין בטווח 140-542, לעומת 358-760 בפונט AriaHB. הזזה של הנקודות ב 220 יחידות על ציר X מתקנת את המיקום של הקמץ.

qamats-fix-2.png

שאלות

מנשק משתמש

איך זה יעבוד:

  1. החבילה תקבל להשלכה קבצים מסוג TrueType לפי סיומת קובץ וסוג קובץ.

  2. הפונט יומר לפורמט TTX במיקום זמני

  3. רוחב התווים יתוקן בקובץ XML על ידי הסקריפט

  4. הקובץ המתוקן יומר חזרה לפונט וישמר ליד הקובץ המקורי.

last edited 2005-09-21 08:09:40 by ניר סופר