בקשת עזרה מקהילת הקוד הפתוח בכלל ומכל מי שמבין משהו ב-LaTeX בפרט

עדכון, 20/7/2012: כל הבעיות שהתלוננתי עליהן בפוסט הזה נפתרו לחלוטין על ידי רונן אברבנאל (ניתן לראות את הודעת ה"נצחון!" שלו למטה). כל הכבוד לרונן, שהוכיח (ולא בפעם הראשונה) שהוא המומחה הגדול בעולם ל-LyX בעברית.

פרסומת זולה לבלוג הפיזיקה של רונן שמתארח אצלי על השרת:

http://aprettiershell.gadial.net/

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

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

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

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

עבור ספר זה כבר לא מספיק טוב.

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

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

אז מה הבעיה? הפרטים הקטנים והמעצבנים שהופכים את העסק לבלתי אפשרי.

  1. אני לא מכיר דרך לקמפל ישירות ל-XeTeX מתוך LyX. פתרונות שניסיתי להשתמש בהם לא עבדו. מילא, אפשר לייצר ל-TeX ואז לקמפל (אני מקמפל בלינוקס ומשתמש בעורך kile, לא שהעורך שאני משתמש בו רלוונטי במיוחד).
  2. המרה של קובץ LyX לקובץ TeX שאז יתקמפל ב-XeTeX משאירה בעיות רבות שלא ברור לי איך לתקן – סוגריים מתהפכים. טקסט באנגלית מוצג בסדר הפוך (זה בעייתי בפרט כשאני רוצה שהוא יהיה באותה שורה כמו הטקסט בעברית). רשימות ממוספרות לא מוצגות טוב (קודם נקודה ואז מספר) ועוד דברים קטנים שהם בלתי נסבלים בספר אמיתי.
  3. האינדקס עצמו מוצג בסדר הפוך (מתחילים בטור משמאל במקום בטור מימין).
  4. אם אני מנסה להשתמש בתעלול של ה-hyperref משום מה כל המסמך הופך ללינק אחד גדול (כל הטקסט מוקף ריבועים אדומים).

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

אז אני פונה לעזרה לכל מי שמבין בנושא יותר ממני. וזה לא רק בשבילי; הדבר הזה הוא מכשול לכל מי שרוצה לכתוב ספר מקצועי בעברית ב-LaTeX. זה לא צריך לקרות.

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

האם זה אפשרי?

32 תגובות על הפוסט “בקשת עזרה מקהילת הקוד הפתוח בכלל ומכל מי שמבין משהו ב-LaTeX בפרט

  1. מצטער, לא הבנתי כלום, אני עדיין בתואר הראשון.. אבל בהצלחה לך ^^

  2. ליקס יכול לקמפל ישירות לxetex החל מגרסה 2.0, תסתכל באפשרויות שיש לך ליצוא.
    כדי שזה יעבוד יכול להיות שצריך לבחור בהגדרות מסמך->גופנים->השתמש בפונט non-tex.

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

  4. יכול להיות שצריך גם להגיד לו באיזה פונט להשתמש בהגדרה של הקדמת latex

  5. אההה שכחתי לציין קישורים פנימיים זאת בעיה פתוחה. אין בעיה לבנות PDF אבל יש לבעיה לגרום לקישורים לעבוד

  6. אבל ארתיום, אתה טועה, זה בדיוק העניין. אם מקמפלים עם XeTeX, הקישורים עובדים (עד כמה שראיתי).

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

  7. תראה, XeTeX לא בשל לתמיכה בעברית. הרבה דברים אחרים לא עובדים.

    בקיצור, אינדקס זאת לא בעיה אבל, קישורים היא כן…

    חוץ מזה ספר לא נועד להיות מודפס :-) ?

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

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

  10. הצלחתי ליצור קובץ דוגמה בליקס שמתעמד עם xelatex:
    https://gist.github.com/3093057
    http://goo.gl/gi33G
    יש שם באמת בעיה עם הסוגריים, ונראה שליקס כותב אותם כבר הפוכים מראש לקובץ שלו וגם ל-xelatex. אני צריך לבדוק את זה יותר לעומק. אבל הטקסט באנגלית מופיע כמו שצריך, והרשימות הממוספרות גם.
    בקשר לאינדקס, אם תעלה דוגמה אני אנסה אותה, כי אני לא מכיר כל כך את האינדקס של ליקס.

  11. בטוח שאפשר, קל זה כבר נראה. שלח לי את הקובץ ואנסה לכתוב סקריפט מתאים.

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

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

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

    http://www.mackichan.com/
    Scientific WorkPlace Version 5.5

  14. גדי,
    אני לא מכיר את XeTeX ויתכן שההצעה שלי אינה רלוונטית. היתה לי בעיה של היפוך כותרות (ןימיל לאמשמ בותכ) שנפתרה כשעברתי להשתמש ב-
    \usepackage{fancyhdr}
    \pagestyle{fancy}

    בהצלחה.

  15. אתה צריך לכתוב כלכך מהבסיס ולא עם lyx
    תשתמש ב latex מהבסיס אתה צריך ללמוד אתה צריך ללמוד את המדריך העברי של visited ivritex bidite
    x. של ארתיום. בייליס, בנוסף אתה זקוק לספר לועזי לכתיבה בלטכך

  16. רוב הפניות לעזרה שאני מקבל (ובאמת שאני מעריך כל רצון טוב וכל נסיון לעזור) מנסות לשכנע אותי לא לעבוד עם LyX ו-XeTeX אלא ללכת להשתמש בכלים אחרים.

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

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

    המפתח של biditex בעצמו כתב לך : (תשים קצת לב! )
    ארתיום בייליס ,שהוא מפתח תוכנה .
    פיתח את biditex \ ivritex
    ועוד מעורב בעוד פרוייקטים ivritex\culmus\texlive ודברים מעורבים

    הוא גם כתב לך פוסט בעצמו פה .

    אתה צריך להשתמש ב biditex בתוך latex\xetex .
    הפורמט של lyx אינו תואם את latex\xetex (גם בלי קשר אם xetex בשל או לא .)

    לכתוב עברית בlatex יש דרך סדורה .
    ולא מסובכת בהנחה שאתה כן יודע לכתוב ב latex (גם xetex)
    אז לא אמורה להיות בעיה כלשהי . . .

    אתה צריך לדעת כמה דברים שאתה משלב עברית ב latex אחרי שתתרגל ניתן לכתוב מסמך גם יותר בקלות מ word .

    ספר באנגלית ל latex
    helmut kopka patrick w daly addison wesley
    אני אישית אוהב את הספר הזה .
    יש עוד ים ספרים ללטך באינטרנט חלקם ספרים של הוצאות ספרים (פיראטי אך יש)
    וחלקם ספרים שהם קוד פתוח.
    לשילוב עברית תקרא את המדריך של ארתיום (שפיתח את biditex עם שילוב עברית)

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

    אני מכיר את הכלים שאתם מתארים. אני ניסיתי להשתמש בהם. *הם לא עושים את מה שאני רוצה*. סוף הסיפור.

  19. פינגבאק: LaTeX - Using hyperref with RTL languages (such as Hebrew) | DiGMi

  20. תודה רבה. האם הפתרון שלך מייצר גם אינדקס?

    (כרגע הגענו עם XeTeX למצב שבו אפשר לייצר אינדקס וה-hyperref עובדים ב-LyX, אבל הסוגריים מתהפכים וצריך להפוך אותם סקריפטית).

  21. גדי, אני ממליץ לך לפנות ליוסי גיל (אתה בוודאי מכיר אותו, פרופ' בטכניון). הוא מתמצא מאוד ב-LaTeX ואני יודע שהוא ניסה לכתוב ספרים בעברית עם XeTeX.

  22. גדי,
    כל הכבוד על הרעיון, המאמץ והסבלנות.
    האם יש סיכוי שתוכל לפרסם פוסט קצר וטכני על כתיבת LaTeX בעברית, שיכלול את רשימת התוכנות וההגדרות בהן אתה משתמש?
    תודה,
    אדם

כתיבת תגובה

האימייל לא יוצג באתר.