הינטינג ידני – המדריך העברי

הינטינג ידני הוא אחד הדברים היותר מורכבים במלאכת התאמת פונטים למסך, בשונה מהינטינג אוטומטי, עליו עברנו בפוסט "איך עושים הינטינג אוטומטי?". אבל בגלל העובדה הזאת, הינטינג ידני מאפשר שליטה כמעט מלאה בצורת האות ותוצאה מוצלחת בהרבה מזו של ההינטינג האוטומטי.

הינטינג ידני נעשה בתוכנת VTT של מיקרוסופט (Visual True Type). ניתן להשיג רשיון לשימוש בתוכנה, ללא עלות, על ידי שליחת בקשה למיקרוסופט (קישור בסוף הפוסט). התוכנה מאפשרת סימונים ויזואלים על גבי האותיות בפונט ובמקביל הכנסת נתונים על עובי קו ונקודות גובה ובסיס, כדי לאפשר למעצבים (עם אוריינטציה קלה לתכנות) לבצע את ההינטינג בעצמם מבלי שיצטרכו מתכנת TrueType.

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

  1. הכנת הפונט להינטינג
  2. מדידות
  3. סימונים
  4. סגירת הפונט וייצוא
הינטינג ידני באמצעות VTT:
קישורים רלוונטיים:

*מומלץ לעיין במדריך VTT המלא של מיקרוסופט, כדי ללמוד את התוכנה לעומק (קיצורים, פונקציות נוספות ושאר ירקות).

איך עושים הינטינג אוטומטי?

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

הינטינג אוטומטי באמצעות TTF Auto Hint:

השלבים להינטינג אוטומטי בTTF Auto Hint הם מאוד פשוטים:

  1. בוחרים את קובץ הTTF נטול ההינטינג
  2. מסמנים/משנים הגדרות כדי שיתאימו לפונט שבחרנו
  3. לוחצים על "Run" ומקבלים פונט מוכן

קישור להורדה (TTF Auto Hint היא תוכנה בקוד פתוח)
קישור למדריך TTF Auto Hint

 

הינטינג אוטומטי באמצעות Font Squirrel Font-Face Generator:

גם כאן השלבים פשוטים, אך במידה והפונט עברי צריך לסמן עוד כמה דברים:

  1. לוחצים על "Add Fonts" ומוסיפים את הפונטים (אפשר גם כמה פונטים במקביל)
  2. במידת הצורך* משנים הגדרות.
  3. מסמנים בV שהפונט חוקי לשימוש ברשת
  4. לוחצים על "Download Your Kit" ומקבלים פונטים בפורמטים שונים + ספסימן
*במידה וישנם תווים עבריים בפונט:
לוחצים על "Expert" ובשורה של Subsetting, בוחרים באחת מהאופציות הבאות:
  • No-Subsetting
  • Custom Subsetting, ומסמנים Hebrew
(Font Squirrel Font-Face Generator אינו בקוד פתוח אבל הוא שירות וובי חינמי לחלוטין)

 

התחלת הינטינג

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

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

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

  1. מצב ללא הינטינג
  2. היטינג אוטומטי באמצעות TTF AutoHint
  3. הינטינג אוטומטי באמצעות Font Squirrel
  4. הינטינג ידני באמצעות VTT

בדוגמא המצורפת אפשר לראות השוואה בין סוגי הרנדור השונים (אפרט בהמשך על תהליך ביצועם) [גודל 1:1]:

 

ניתן לראות שעיקר הבעיה מתרחשת במעבר בין פיקסל לשניים בקווים האופקיים (גדלים 17-20).

מבחינת איכות העבודה, האופציות הכי טובות כרגע הן ההינטינג של FontSquirrel וההינטינג הידני ב-VTT. העבודה בVTT עדיין בתהליך (לדוגמא האות ז' בגדלים 10-11 שחורה יחסית לשאר האותיות), היתרון בVTT הוא שתמיד ניתן לחזור ולתקן. החסרון עם היטינג אוטומטי, שלא ניתן לתקן בעיות ספציפיות בגדלים מסוים, דבר שיכול לעלות בהתפשרות על צורת האותיות (לדוגמא, האות ל' בגודל 18 יורדת מהשורה).

מבחינת זמן עבודה, האופציות הכי מהירות (עד חמש דקות עבודה) הן TTF AutoHint ו-Font Squirrel.

מבחינת מורכבות טכנית, TTF AutoHint ו-Font Squirrel מצריכות רמה מאוד בסיסית, וקלות להבנה באמצעות כמה צילומי מסך. הינטינג VTT מצריך למידה, התנסות והרבה למידה.

בכל מקרה, כשמעצבים פונט לשימוש על מסך, תמיד עדיף לעשות לו הינטינג כלשהו ולא להתפשר על הצגה ב'גדלים מומלצים'.

הנדרש לטובת תצוגה חדה של הפונט במערכת ההעפלה חלונות

שיחה עם מעצב הפונטים דייב קרוסלנד

Some rights reserved by prokoudine

דייב קרוסלנד הוא מעצב פונטים בוגר תוכנית המאסטר לעיצוב טיפוגרפי ברדינג. התיזה שלו היה הפונט Cantarell – פונט מסך בארבעה משקלים, מותאם לגדלים קטנים מאוד ומשוחרר תחת רשיון שימוש פתוח. דייב הוא טיפו-גיק רציני וכפעיל תרבות חופשית עושה הרבה לקידום יצירת פונטים משוחררים. דייב עובד בגוגל בפרויקט ה-Google Font Library וחלק משמעותי מהעבודה שלו שם מוקדש לקידום יוזמות כמו שלנו.

בשיחה שלנו עם דייב ניסינו להבין איפה עומד נושא הפונטים למסך ומה הם הדגשים שאנחנו צריכים לקחת בחשבון בעיצוב פונט כזה. היה לנו חשוב להבין מה הם השיקולים לתהליך ה"הינטינג" (hinting) שאמור לעזור לפונטים להתרנדר יפה לפיקסל בגדלים קטנים ומה הנחיצות שלו בכלל. השיחה היתה מאוד פותחת עיניים. בעיקר שמחנו לשמוע את דייב אומר:

"Font Hinting is a legacy issue"

תהליך ה"הינטינג" הופך לפחות ופחות רלוונטי כיוון שהפתרונות עוברים לצד של רינדור חכם של מערכות ההפעלה. עם זאת היבט חשוב ומטריד הוא ההבדלים בין הדרכים בהן מרנדרות את הפונט מערכות הפעלה שונות. מה שמתקבל הוא חוסר עקביות משמעותי בנראות הפונט בין מסך למסך.

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

Conversation with Dave Crossland about screen fonts by mushon

TTF Auto Hint – המושיע מהינטינג ידני

ישנו קונפליקט בסיסי בכל הנוגע לעיצוב פונטים למסך. הפונט מורכב מקווים, צורות וזוויות "ווקטוריות" חופשיות והמסך מציג הכל כמתווה ריבועי של פיקסלים. הדרך המקובלת להתמודדות עם הבעיה היא יצירת רמיזות – "hinting" אשר ינחו את הפונט כיצד להיראות בגדלים השונים. פונט עם הינטים מכיל גם את סדרת הצורות הבסיסית של אותיותיו וגם סדרות מקבילות עבור מספר גדלים קטנים:  14px, 13px, 12px 11px, 10px ולעיתים אף 9 או 8px. הינטינג היא משימה טכנית קשה ומיגעת והיא הסיבה המרכזית שבגללה פונטי מסך טובים לטקסט (בעלי קריאות גבוהה בגדלים קטנים) הם נדירים כל כך. זו גם הסיבה המרכזית למורכבותו ויוקרו של תהליך פיתוח פונטים מסוג זה.

בזמן שמערכות הפעלה כמו Mac OSX וגרסאות אחרונות של Windows מנסות לרנדר את הפונטים לפיקסל בצורה אוטומטית ללא הצורך להיעזר בהינטינג, ישנן לא מעט מערכות הפעלה שעושות שימוש בהינטינג כשהם זמינים כדי לספק תוצאות טובות הרבה יותר. התוצאה היא שפונט עם הינטיג מוצלח יבטיח קריאות גבוהה על מגוון רחב יותר של מערכות הפעלה. אך האם זה אומר שנידונו לעבודה הסיזיפית והאינסופית של רמיזות עבור כל אות במספר רב של גדלים?

וורנר למברג טוען שלא בהכרח. וורנר הוא המפתח שמאחורי פרויקט הקוד הפתוח FreeType, ספריית קוד אשר מטפלת בתצוגת טקסט על מסך עבור מערכות הפעלה פתוחות כגון לינוקס לגווניה. באופן ספציפי מפתח וורנר את מרכיב הTTFAutoHint תוכנה שמנסה לחשב אוטומטית כיצד ליצר הינטינג מוצלח למספר רב של גדלים ולהוסיף אותם לתוך קובץ הפונט. וורנר, שפועל בהתנדבות מנסה בימים אלה לגייס כספים שיוכלו לקנות לו זמן לשפר את התוכנה. הקמפיין ששואף להשיג $30,000 מקבל מענה יפה מהקהילה (גם אנחנו תרמנו) כמו גם מחברות מסחריות כמו FontLab, Google ו-Microsoft.

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

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