% This file, along with the rest of the hebrew.sty docs % is Copywright (c) 1991 by Yaniv Bargury. % You may use this file in any way you % like, free of charge, subject to the following conditions: % 1) You may not modify its contents without adding a notice that you % did so with your name on it. % 2) You may not remove or change this notice. % 3) No warranty is supplied. Use at your own risk. % This is the guide for Hebrew latex. Yaniv's source has been % modified by Rama; some sections have been completely changed. % % Changed to compile with Hebrew LaTeX2e. Boris Lavva. 10/12/1997. % \documentstyle[hebrew_newcode,hebcal]{article} \newcommand{\xet}{\embox{TeX\raise.2ex\hbox{{-}{-}}XeT}} \newcommand{\laxet}{\embox{La\xet{}}} \title{\L{\LARGE\LaTeX}~~ \textsf{\LARGE בעברית}} \author{} \date{} \begin{document} \maketitle \hrule \textbf{הערה חשובה:} התוכן של הקובץ הזה מסביר שימוש בעברית עם \L{\LaTeX~2.09} ולא נכון עבור הגרסה החדשה של \LaTeX\ \textemdash\ \LaTeXe ! \textsf{הוא משמש כאן רק דוגמא לאפשרויות של ה-\L{style} העברי החדש.} \hrule \tableofcontents \sloppy מסמך זה מתאר כיצד להכין מסמכים עבריים או דו-לשוניים בעזרת \L{\LaTeX} בעברית. עבור משתמשי \L{PC} יש במסמך זה הסבר אודות מעבד התמלילים איינשטיין. \bsection{\laxet}{Hebrew \LaTeX} התוכנית \L{LaTeX} בעברית מבוססת על התוכנית \L{\LaTeX} הלועזית, בתוספת פקודות מיוחדות להפיכת כיוון השפה. התוכנית נקראת \L{PUBTeX} ב \L{PC} ו \L{latex} או \L{latex{-}{-}xet} ב \L{Unix}. במדריך זה תיקרא התוכנית \laxet. קובץ \L{.DVI} שנוצר על ידי \xet הוא סטנדרטי ואינו דורש כל טיפול מיוחד. \bsection{\L{hebrew.sty}}{hebrew.sty} \L{hebrew.sty} הוא קובץ פקודות \L{\LaTeX} לתמיכה בעברית. יש לכלול אותו בהגדרת ה \L{documentstyle} בראש המסמך בין הפרמטרים שבסוגריים המרובעים לפי אחת הדוגמאות המופיעות להלן. ח ש ו ב \L{---} כשעובדים ב \L{PC} יש לכתוב \L{hebrew\_p}. ~~~~~~~~~~~~~~ כשעובדים בעברית \L{8 bit} יש לכתוב \L{hebrew\_newcode}. שים לב שיש לשמור את \L{hebrew.sty} תמיד מימין להגדרות הגודל וה \L{twoside}. הדבר נחוץ כדי שההגדרות שלו יהיו האחרונות בסדר, וכך הן אלו שיהיו בתוקף בזמן קריאת שאר הקובץ. \unsethebrew \begin{verbatim} \documentstyle[hebrew]{report} \documentstyle[12pt,hebrew]{article} \documentstyle[11pt,twoside,hebrew,bezier]{book} \end{verbatim} \sethebrew קובץ זה מגדיר את פקודות כיוון השפה שנראה בהמשך. רוב הקובץ דואג להתאמת הפקודות של \L{\LaTeX} לעברית. פקודות \L{\laxet} בזמן כתיבת אנגלית אמורות לעבוד בדיוק כפי שמוסבר ב\cite{latexbook}. אותן פקודות עם אותו תחביר עובדות בעזרת \L{hebrew.sty} גם בעברית, אך הפעולות שהן מבצעות מותאמות לכיוון הכתיבה. הזחת פסקה לדוגמה נעשית מימין בעברית. בנוסף מוגדרות בקובץ זה פקודות המיוחדות לעברית כגון מניה בספרות עבריות, תוכן ענינים דו לשוני ועוד. נסקור פקודות אלה בפרוט בהמשך. אופציה נוספת שקיימת וקשורה ל \L{hebrew} הינה \L{hebcal} )\L{hebcal\_p} כשעובדים ב \L{PUBTeX} או \L{hebcal\_newcode} כשעובדים בעברית \L{8 bit}( . אופציה זו מאפשרת קבלת תאריכים לפי הלוח העברי. ראה פרטים בהמשך. \bsection{פקודות בסיסיות לתמיכה בעברית ב\laxet}{Basic commands in \laxet} בסעיף זה נכיר את הפקודות הבסיסיות לתמיכה בעברית ב\laxet. כל הפקודות של \L{\LaTeX} קיימות גם ב\laxet. פקודות \L{\laxet} מתחילות בלוכסן הפוך ואחריו סידרה של אותיות. כאשר עובדים ב \L{Einstein} הלוכסן נראה לעתים על המסך כאילו הוא נמצא מימין לפקודה. בתחילת העבודה על הקובץ כיוון הכתיבה העיקרי הוא אנגלי.הפקודה \L{\verb|\sethebrew|} משנה את הכיוון העיקרי לעברית. הפקודה \L{\verb|\unsethebrew|} מחזירה את הכיוון העיקרי לאנגלית. אסור להשתמש בפקודות אלו בתוך פסקה. הן יכולות להופיע רק בין פסקאות. להחלפת הכיוון זמנית, למספרים ולטקסט לועזי משתמשים בפקודה \hfill \L{$\backslash$ L\{\dots string \dots\}} לצורך החלפת כיוון זמנית והכנסת טקסט בעברית בתוך טקסט לועזי משתמשים בפקודה \hfill \L{$\backslash$ R\{\ldots \R{טקסט בעברית} \ldots\}} \smallskip ניתן לשנות את הכיוון בתוך קטע שבו כבר שונה הכיוון ללא הגבלת עומק הקינון לדוגמה: \unsethebrew He said \R{\openquote\ תן לי \L{12} שקל בבקשה \closequote}, so I did. \sethebrew כאשר משתמשים ב \L{einstein}, אזי לכתיבת נוסחאות מתמטיות בתוך פיסקה עברית אין צורך במעבר שפה, המעבר לכתיבה מתמטית מחליף גם את הכיוון. יחד עם זאת, לכתיבת נוסחאות מורכבות בתוך טקסט עברי כדאי מאד לעבור סרגל כי הכיוון הטבעי בנוסחאות הוא משמאל לימין. נוסחאות ממורכזות נכתבות גם הן ללא הפיכת הכיוון, אך עם שינוי סרגל. \bigskip טקסט בתוך נוסחאות יש להקיף בקופסה מיוחדת שאומרת ל\laxet\ לעבור למצב טקסט, בדומה ל\L{\verb|\mbox{}|} של \L{\LaTeX}. קיימים שני סוגי קופסאות כאלו, אחד לעברית \L{\verb|\hmbox{}|} והשני לאנגלית \L{\verb|\embox{}|}. בכל מקרה אין להשתמש ב\L{\verb|\mbox{}|}. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Yaniv -- it is important to include an example here, %% BUT there is no point in an example which does not show both %% the input itself and the resulting output. %% At the moment you generate here only the output. %% I have marked it as comments. Would you invest time in this? %% -- Yes. Done. Boris Lavva. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{eqnarray} \embox{Prime} &=& \{x\mid x \hmbox{ מחלק את }y\hmbox{ כך ש }y\hmbox{ לא קיים }\}\\ \embox{Prime} &=& \{x \mid \embox{There is no }y \embox{ such that } y \embox{ divides } x\} \end{eqnarray} \unsethebrew \verb+\begin{eqnarray}+\\ \verb+ \embox{Prime} &=&+\\ \verb+ \{x\mid x \hmbox{+\R{ מחלק את }\verb+}y\hmbox{+\R{ כך ש }\verb+}y\hmbox{+\R{ לא קיים }\verb+}\}\\+\\ \verb+ \embox{Prime} &=&+\\ \verb+ \{x \mid \embox{There is no }y \embox{ such that } y+\\ \verb+ \embox{ divides } x\}+\\ \verb+\end{eqnarray}+ \sethebrew %%%% Here comes the original "MIPUY HAOTIYOT HAIVRIYOT". %\newpage \bsection{פקודות נוספות}{Other control sequences} % Added by rama - taken from hebrew_cs_guide. לטובת משתמשים שמעדיפים לכתוב גם את הפקודות של \L{\laxet} בעברית תורגמו לעברית מספר פקודות, וניתן להשתמש בהן באחת משתי הצורות, עברית או אנגלית. כמו כן הוגדרו מספר פקודות נוספות כדי להתגבר על הקושי שביצירת גרשיים ומקפים יפים בעברית כמו באנגלית. %\font\Jer=Jerusalem הנה רשימת הפקודות: \bigskip\bigskip \def\bs{{\char'134}} \def\lb{{\char"7B}} \def\rb{{\char"7D}} \def\sb{{\char"5F}} \def\sp{{\char"5E}} \def\undertext#1{$\underline{\hbox{#1}}$} \unsethebrew \begin{tabular}{@{}l@{}l@{}} \tt\bs sethebrew&Enter hebrew mode\\ \tt\bs unsethebrew&Go out of Hebrew mode\\ \tt\bs hebrewpar&Starting one hebrew paragraph\\& with indentation\\ \tt\bs hebrewlines&Starting one hebrew paragraph\\& without indentation\\ \\ \tt\bs L\lb\dots string\dots \rb&English string within a Hebrew environment\\ \tt\bs R\lb\dots\protect\R{סידרית}\dots\rb &Hebrew string within an English environment\\ \cr \tt\lb\dots\rb\protect\R{הדגש}\tt\bs \ or \tt\bs hadgesh\lb\dots\rb&Making bold letters - Poor man's bold \\ \\ \R{מקףגדול}\tt\bs \ or \tt\bs makafgadol&Like the regular -\thinspace - producing --\\ \R{מקףענק}\tt\bs \ or \tt\bs makafanak&Like the regular -\thinspace -\thinspace - producing ---\\ \\ \R{גרש}\tt\bs \ or \tt\bs geresh&Like the regular `~,\\ & which doesn't work in Hebrew\\ \R{פתחגרש}\tt\bs \ or \tt\bs opengeresh&\char39\\ \R{סגורגרש}\tt\bs \ or \tt\bs closegeresh&`\\ \R{פתחציטוט}\tt\bs \ or \tt\bs openquote&Like the regular '',\\ & which doesn't work in Hebrew\\ \R{סגורציטוט}\tt\bs \ or \tt\bs closequote&Like the regular ``,\\ & which doesn't work in Hebrew\\ \\ \R{היום}\tt\bs \ or \tt\bs hebday&Today's regular date in Hebrew\\ \tt\bs Hebrewtoday&Hebrew date in Hebrew (included in hebcal.sty)\\ \tt\bs Hebrewdate&Converting a Georgian date to an Hebrew \\&(in hebcal.sty)\\ \\ \R{קפיצהגדולה}\tt\bs &Like the regular \tt\bs bigskip\\ \R{קפיצהבינונית}\tt\bs &Like the regular \tt\bs medskip\\ \R{קפיצהקטנה}\tt\bs &Like the regular \tt\bs smallskip\\ \\ \R{שורהימין}\tt\bs &Like the regular \tt\bs rightline\\ \R{שורהשמאל}\tt\bs &Like the regular \tt\bs leftline\\ \R{מרכז}\tt\bs &Like the regular \tt\bs centerline\\ \\ \tt\bs undertext\lb text \R{טקסט}\rb&Produces \undertext{text \R{טקסט}}\\ \end{tabular} % \newpage \sethebrew \bsection{מיפוי האותיות העבריות}{Hebrew fonts} קיימים מספר מיפויים לאותיות העבריות וענין זה מסבך את השימוש בתוכנה. ב \L{Unix} קיים \L{Old code} שבו האותיות העבריות תופסות את מקומן של האותיות הלועזיות הקטנות \L{(lower case)}. ב \L{PC} האותיות העבריות נמצאות החל מהמקום ה $128$ בטבלת \L{ASCII}. במידה ומעבירים קובץ קלט שהוכן ב \L{PC} לביצוע על ידי \L{latex} ב \L{Unix}, צריך להשתמש בתוכנית קונברסיה מתאימה לצורך העברה למיפוי של \L{Unix}. ב \L{Unix} קיים גם \L{New code} בו האותיות העבריות נמצאות החל מהמקום ה $224$ בטבלת \L{ASCII}. שימוש במיפוי זה הוא נוח למי שעובד ב \L{emacs} וב \L{vi} בעברית, משום שאלה מאפשרים לראות על המסך עברית ואנגלית בעת ובעונה אחת. \bsection{מיקוף ושורות ארוכות מדי}{Hyphenation and overful hboxes} \L{\TeX} פותר את רוב הבעיות בחלוקת הפיסקה לשורות על ידי מיקוף. הוא מוצא לרוב את כל המקומות בהם מותר לשבור מילה בסוף שורה על ידי מקף, ואינו מבצע מיקוף במקום לא חוקי. לרוב השפות הלטיניות יש קבצי מיקוף מיוחדים, בהם כלולות הוראות לתוכנה היכן רצוי לשבור מלים. לעברית עדיין אין. בנוסף, הבעיה של מיקוף דו לשוני עדיין לא נפתרה. כלומר אין אפשרות לעבוד עם יותר מקובץ מיקוף אחד לכל גירסה של \L{\TeX}. ב \L{\LaTeX} מותקן מיקוף אנגלי כשהשפה העיקרית היא אנגלית. כשהשפה העיקרית היא עברית \L{hebrew.sty} מבוטל המיקוף כליל. העובדה שאין מיקוף עברי יוצרת הרבה יותר מקרים בהם \laxet\ לא מוצא צורה טובה לחלוקת הפיסקה לשורות, כמו בגירסאות הלטיניות. \laxet\ משאיר במקרה זה שורות ארוכות מדי במסמך התוצאה, אך מתריע עליהן בזמן הריצה ובקובץ ה\L{log} )התראות בסגנון \L{Overful hbox\ldots}(. בניגוד למצופה, שורות אלה בולטות ימינה בדף כמו באנגלית. כפי שמומלץ ב\cite{latexbook} כדאי להשאיר את תיקון השורות האלה לגירסה האחרונה של המסמך. פרטים כיצד לתקן אותן ניתן למצוא באותו ספר. בקצרה, הפתרונות המקובלים הם שבירת מילה עם מקף, שינוי הרגישות של \laxet\ למרווחים בין מילים )הפקודה \L{\verb|\sloppy|}(, סיום השורה לפני השוליים או ניסוח מחדש של הכתוב. השורה הבאה היא דוגמה לשורה ארוכה מדי:\\ \fussy טרנזאקציות קוסמופוליטיות אינדוקטביות ניתנות למניפולציה אגריסיבית קונסטיטוציונית.\\ \sloppy במקרים רבים, הן בעברית והן באנגלית, השורות הארוכות נוצרות בגלל כתיבת נוסחה מתמטית בתוך שורות הפיסקה. פתרון מקובל במקרה כזה הוא להפוך את הנוסחה לנוסחה ממורכזת. \newpage \bsection{תוכן ענינים ורשימת תמונות}{Table of contents and List of figures} \L{\LaTeX} יודע לייצר תוכן ענינים ורשימת תמונות בצורה אוטומטית. בזמן עיבוד הקבצים \L{\LaTeX} מכין רשימה של הסעיפים והתמונות בקבצים נפרדים בשם \L{\verb|.toc|} ו \L{\verb|.lof|} בהתאמה. בריצה הבאה הוא קורא את הקבצים האלה ויוצר את הטבלאות. פירוש הדבר שבהרצה הסופית של המסמך יש להריץ את \laxet\ פעמיים כדי לוודא שהרשימות מעודכנות. הפקודות הרגילות של \L{\LaTeX} ליצירת הכותרת של הסעיפים הן הדואגות לעדכן את הרשימה, והפקודות \unsethebrew% \begin{center}% \begin{verbatim} \starttoc{toc} \starttoc{lof} \end{verbatim}% \end{center}% \sethebrew מכניסות את תוכן הענינים ורשימת הטבלאות בהתאמה אל המסמך. עד כאן אין חדש. התוספות הנדרשות לתמיכה בכתיבה דו כוונית מתוארות בהמשך. הפקודות ליצירת כותרת סעיפים המופיעות ב\cite{latexbook} קיימות גם כאן. הכיוון של הטקסט שבתוכן הוא השפה הראשית. לכתיבת טקסט בשפה המשנית בתוך כותרות יש להוסיף \L{$\backslash$protect} לפקודת הפיכת הכיוון, לדוגמה \begin{center} \L{\verb|\section{\protect\L{22} |\R{מלכוד}\verb|}|} \end{center} הכותרת תיכתב בגוף המסמך בכיוון השפה הראשית באותו מקום. לעומת זאת תוכן הענינים יכתב בכיוון השפה הראשית במקום בו מופיעה הפקודה \L{\verb|\starttoc|}. אם כל המסמך נכתב באותה שפה אין צורך בהסבר נוסף. לעומת זאת אם חלק מהמסמך נכתב בכיוון ראשי שונה יש לדאוג להתאמת השפה הראשית בין פקודות הכותרת שבגוף המסמך לתוכן הענינים בעזרת התפקודות שלהלן. לכל פקודות הסעיפים הרגילות יש גם גירסה דו כוונית. הפקודה הדו כוונית מתחילה באות \L{b} ויש לה שני פרמטרים, האחד בעברית והשני באנגלית, לדוגמה: \begin{center} \L{\verb|\bsection{|\R{טקסט עברי}\verb|}{English text}|} \end{center} הכותרת בגוף המסמך תילקח לפי השפה הראשית שם. הכותרת בתוכן הענינים תילקח לפי הכיוון הראשי בזמן כתיבת תוכן העניינים. הדבר מאפשר יצירת שתי גרסאות של תוכן הענינים במסמך, אחת אנגלית שמופיעה באיזור בעל שפה ראשית אנגלית ומכילה את הגירסה האנגלית של הכותרות, והאחרת עברית המופיעה באיזור בו השפה הראשית עברית ומכילה את הגירסה העברית של הכותרות. בזמן עיבוד הפקודה \L{\verb|\starttoc|} בנוסף ליצירת הטבלה \L{\LaTeX} מוחק את הגירסה הקודמת של הקבצים, כך שבזמן המשך הריצה הקבצים נוצרים מחדש על פי הכותרות הנוכחיות. פרוש הדבר שאי אפשר להשתמש פעמיים באותו מסמך באותם קבצי עזר \L{\verb|.toc|} ו \L{\verb|.lof|}. לכך קיימים שני פתרונות. האחד הוא הכנסת הפקודה \L{\verb|\nofiles|} בכותרת המסמך )לפני \L{\verb|\begin{document}|} לפני הגירסה הסופית, והשני הוא יצירת עותק נוסף מהקבצים האלו בשם אחר ושימוש בו בגירסה השניה של תוכן הענינים. הפקודות הבאות )ב \L{PC}( מייצרות עותק נוסף של תוכן הענינים שניתן להדפיסו עם הפקודה \L{\verb|\starttoc{eoc}|}: \unsethebrew \begin{verbatim} latex myname copy myname.toc myname.eoc latex myname \end{verbatim}% \sethebrew \bsection{האופציה \L{hebcal}}{HEBCAL} \def\bs{$\backslash$} אופציה זו מאפשרת קבלת תאריכים לפי הלוח העברי. אם תשתמש באופציה זו, כלומר תכתוב \L{\bs documentstyle[hebrew,hebcal\dots]\dots} אזי לרשותך שתי פקודות נוספות: \medskip $1$. \L{\bs Hebrewtoday} \L{--} מדפיסה את התאריך העברי של היום. \bigskip $2$. \L{\bs Hebrewdate} \L{--} הופכת תאריך גרגוריאני לעברי. \medskip ~~~~~~השימוש הוא כלהלן: \unsethebrew \bs newcount\bs day~~~ \bs newcount\bs month~~~ \bs newcount\bs year \bs day=12 ~~~ \bs month=10 ~~~ \bs year=1884 \bs Hebrewdate\{\bs day\}\{\bs month\}\{\bs year\} \sethebrew התוצאה: \newcount\d \newcount\m \newcount\y \d=12 \m=10 \y=1884 { } \Hebrewdate{\d}{\m}{\y} \bigskip ללא האופציה \L{[hebrew]} מתקבל התאריך העברי בתעתיק לועזי \L{--} \unsethebrew \Hebrewdate{\d}{\m}{\y} \sethebrew \vskip 0.5cm ח ש ו ב \L{---} ב \L{PUBTeX} כתוב \hfill \L{\bs documentstyle[hebrew\_p,hebcal\_p\dots]\dots} \smallskip בעברית \L{8 bit} כתוב\hfill \L{\bs documentstyle[hebrew\_newcode,hebcal\_newcode\dots]\dots} \bsection{נספח: הכנת המסמך בעזרת \L{IBM PC}}{IBM PC} \bsubsection{איינשטיין}{Einstein} איינשטיין הוא מעבד תמלילים דו-לשוני )עברי אנגלי( נפוץ. בחרנו בו מכל שאר מעבדי התמלילים הקיימים כיום משום שהוא היחידי ששומר את קובץ העבודה שלו בצורה בה \L{\LaTeX} רוצה לראות את הקלט. קיימים שני סטנדרטים לשמירת אותיות של שפה משנית בכיוון כתובה הפוך בתוך קובץ. השיטה הנפוצה היא לשמור אותם לפי סדר ההופעה על המסך או על הדף. בשיטה זו האותיות בעברית יופיעו בקובץ הפוך מסדר הקריאה. לדוגמה אם נכתוב "דני" בקובץ יופיע קודם "י" ואחריו "נ" ולבסוף "ד". בציוד המחשבים האנגלי הרגיל, אם נציג את הקובץ על המסך או נדפיסו במדפסת נקבל כתב עברי קריא. השיטה השניה שומרת את כל האותיות הסדר הכתיבה והקריאה. אות שנקראת קודם תופיע קודם בקובץ. "דני" יכתב "ד" "נ" "י". בקובץ כזה העברית תראה כתובה הפוך אם נדפיס את הקובץ, אך זו צורה קלה יותר לטיפול בתוכנה. זו הצורה הדרושה לנו. כל מעבד תמלילים אחר ששומר את האותיות בצורה זו יתאים למטרתינו. \bsubsection{\L{T.EXE}}{T.EXE} איינשטיין הוא יותר מעורך טקסטים פשוט. הוא מכיל פקודות ואופציות שממקמות אותו ברמה של מעבד תמלילים. פקודות כגון מירכוז, הדגשה, אינדכסים וכו.\ קיימות בתוך איינשטיין, אך אלו פרימיטיביות יחסית לכלים המקבילים ב\embox{\TeX}. לצורך ממוש פקודות אלה אישטיין משאיר בתוך הקובץ סימנים מיוחדים שמסמנים עבורו מתי ואיך להפעיל את הפקודות האלה. לפני מסירת הקובץ שנוצר בעזרת איינשטיין ל\embox{\TeX}, יש לנפות מתוכו את הסימנים האלה. ניתן לעשות זאת על ידי הפעלת התוכנית \L{T.EXE} המצויה על הדיסקט המקורי של \L{einstein}. \begin{thebibliography}{MM00} \unsethebrew \bibitem[LAT]{latexbook}Leslie~Lamport. {\em\LaTeX\ A Document Preparation system} Addison-Wesley, 1986. ISBN 0-201-15790-X \end{thebibliography} \end{document}