את השאלה הזו כתב מעמד בשם אלעד בפורום Prog, וברשותו אני מעלה את זה לכאן.
להמחשת הבעיה, נתבונן בתמונה שהוא צירף:
אנו רואים כאן תוכן עניינים עם שתי רמות:
רמה 1 בשם “שם הפרשה”, ורמה 2 בשם “כותרת”.
כפי שאפשר לראות בדוגמה, הכותרת “דברי המחבר” היא כותרת פנימית ומגיעה לאחר הכותרת “הקדמה” המשוייכת לסגנון שם הפרשה.
אולם בתוכן, הכותרת דברי המחבר מופיעה לפני ההקדמה במקום לאחריה, וכמו כן הכותרת “מעלין בקודש ואין מורידין”, ששייכת לפרשת בראשית, מופיעה לפני הכותרת של פרשת בראשית.
למה זה קורה וכיצד ניתן למנוע זאת?
התשובה נעוצה בצורה שבה אינדיזיין קוראת את העמוד, שהיא שונה מהצורה שבה אנו בני אנוש מסתכלים עליו. כשאנו מסתכלים על הדף, מיד אנו רואים שהכותרת ‘הקדמה’ נמצאת למעלה, והכותרת ‘דברי המחבר’ נמצאת למטה, וברור שהכותרת העליונה קודמת. הדרך שבה אינדיזיין סורקת את העמוד כדי לחפש פריטים המשוייכים לתוכן העניינים, היא עובדת בדרך אחרת: אינדיזיין סורקת פיקסל אחר פיקסל, וגם היא עוברת מלמעלה למטה, אך היא לא עוברת שורה שורה, אלא טור טור. כלומר במסמך עברי היא מתחילה מהפיקסל העליון הימני, יורדת לפיקסל שמתחתיו עד שמגיעה לפיקסל הימני התחתון, ואז היא חוזרת לפיקסל העליון – בטור השני, ואח”כ לפיקסל שמתחתיו וכן הלאה. ברגע שהיא מגיעה למסגרת המכילה טקסט, היא סורקת את המסגרת וכאן כמובן היא מתחילה לעבוד לפי שורות טקסט. כלומר אם הכותרת “הקדמה” והכותרת “דברי המחבר” היו באותה תיבת טקסט, התוכן היה מוצג כסדר. אולם מכיון שהם לא באותה תיבה, תיבת הטקסט שנסרקת ראשונה היא התיבה שמכילה את “דברי המחבר” ורק לאחר מכן התיבה של הכותרת “הקדמה”.
אם כן, הפתרון הוא פשוט מאד, להרחיב את המסגרת שמכילה את הכותרות של “שם הפרשה”, לאותו רוחב של הטקסט הרגיל.