לאטך/ניהול ביבליוגרפיה

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

תוסף ה-BibTeX שומר בקובץ נפרד את רשימת כל הכותרים (לדוג' ספרים, מאמרים, אתרי אינטרנט וכו) הרלוונטיים לעבודה. בכל פעם שמהדרים את המאמר, התוסף בודק לאילו כותרים קיימת הפניה, ומייצר את הרשימה הבביבליוגרפית עבור אותם כותרים לפי הגדרות שונות שניתנות לשינוי בקלות במיקום מרכזי יחיד (ולא עבור כל כותר בנפרד). התוסף דואג גם לעדכן את ההפניות בגוף המאמר לפי העיצוב הנבחר, למשל [1] או [רבין, 2003] וכיו"ב.

ניהול ביבליוגרפיה עם BibTeX עריכה

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

@article{greenwade93,
    author  = "George D. Greenwade",
    title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
    year    = "1993",
    journal = "TUGBoat",
    volume  = "14",
    number  = "3",
    pages   = "342--351"
}

עבור מרבית המאמרים החדשים, רשומת הBibTeX המתאימה נמצאת און-ליין, וניתנת להורדה ישירות מאתר הכנס/ז'ורנל, או ישירות מגוגל (google scholar). כך שבמרבית הפעמים, צריך רק למצוא את המאמר בגוגל, ולהוריד את רשומת הBibTex המתאימה - וזהו.

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

נסביר את מבנה הרשומה. השורה הראשונה מציינת את סוג הכותר, לפי המילה לאחר סימן ה-@.

סוג כותר משמעות
‎@article
הכותר הוא מאמר בז'ורנל או מאמר שפורסם
‎@conference
הכותר הוא מאמר-כנס. תוצאה זהה מתקבלת על-ידי הסוג ‎@inproceedings
‎@book
הכותר הוא ספר
‎@phdthesis
כותר מסוג תזה
‎@unpublished
מאמר שטרם פורסם, או בהליכי פרסום
‎@techreport
דו"ח טכני
‎@misc
כותר שאינו עונה על אחת ההגדרות לעיל

החלק השני בשורה הראשונה מציין את ה"שם" שבו יוכר המאמר מבחינת קובץ הLaTeX. למשל, בדוגמא לעיל, שם הכותר הינו greenwade93. יצירת הפניה לכותר מתבצעת על ידי הפקודה ‎\cite. למשל, אם נרצה להפנות לכותר הנ"ל מתוך הטקסט נוכל לרשום

For more information, see~\cite{greenwade93}, or check in our web-site.

מייד לאחר סוג הכותר, ולפני השם, מופיע סוגר מסולסל "}". סוגר זה מסמל את תחילת הרשומה בבסיס הנתונים (מהסוג האמור) שהשם שלה יהיה לפי מה שמופיע מייד אחרי הסוגר. לאחר השם יש פסיק אשר מציין מעבר לשדה הבא (השדה הראשון הוא השם, והוא מיוחד. שאר השדות באים לאחר מכן). כל שדה מורכב משני חלקים: שם השדה, סימן =, ולאחריו תוכן השדה. לאחר השדה האחרון נמצא סוגר מסולסל "{" שמציין את סוף הרשומה.

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

יצירת הפניות מתוך המאמר עריכה

יצירת הפניה עריכה

יצירת ההפניה בגוף המאמר נעשית על-ידי הפקודה

\cite{citation01}

כאשר citation01 הינה שם הרשומה של הכותר אליו מפנים. ניתן לבצע הפניה למספר כותרים בו זמנית,

\cite{citation01,citation02,citation03}

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

\cite[page 4]{citation01}

ייצור בגוף הטקסט הפניה מהצורה ‏"[1, page 4]"

יצירת הפניה חסרה עריכה

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

\nocite{citation01}

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

הגדרת שימוש בקובץ ‎.bib ובחירת סגנון עריכה

על מנת שהביבליוגרפיה תופיע, יש להגדיר לlatex את קובץ ה-bib (בסיס הנתונים של הכותרים) בו נעשה שימוש, וכן את סגנון הביבליוגרפיה הרצוי. יש להשתמש בפקודות הבאות:

\bibliographystyle{style_name}
\bibliography{bib-file-name}

הפקודה הראשונה מגדירה את הסגנון הרצוי (ראה בהמשך), והשניה מגדירה את השם של קובץ הנתונים, כלומר, BibTex ישתמש בקובץ bib-file-name.bib בדוגמא לעיל. ניתן להשתמש במספר בסיסי נתונים שונים - למשל ניתן לשמור קובץ שונה למאמרים בעברית וקובץ שונה למאמרים באנגלית, או חלקוה לפי נושאים וכד'. שימוש במספר קבצים מתבצע על-ידי

\bibliography{dbfile1,dbfile2,...}

סגנונות קיימים עריכה

לBibTex קיימים מספר סגנונות (style) מובנים, בהם ניתן להשתמש. להלן דוגמא לעיצוב ביבליוגרפיה לפי סגנון plain, abbrv וalpha


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

\bibliographystyle{style_name}

כאשר style_name הוא שם הפורמט הרצוי. ראו מספר סגנונות נוספים בקישור.

עדכון הרשימה הביבליוגרפית עריכה

על מנת להדר מחדש את הקובץ כך שהרשימה הביבליוגרפית תתעדכן, יש ראשית להריץ latex לאחר מכן bibtex ולאחר מכן להפעיל את latex שוב, פעמיים. למשל, עבור המסמך main יש להפעיל

latex main
bibtex main
latex main
latex main

ההפעלה הראשונה מעדכנת את קובץ ה-aux ורושמת שם את כלל ההפניות הקיימות במסמך. הפעלת הbibTex מסתמכת על קובץ הaux לייצר את הרשימה הביבליוגרפית בהתאם להפניות, ולעצב אותה כנדרש. השורה השלישית גורמת לlatex לעדכן את קובץ הaux עם הקישור הייחודי של כל שורה בביבליוגרפיה, וההרצה האחרונה גורמת לכך שהמסמך יכיל את הקישור המעודכן. אם קישור מסויים לא נמצא (עקב שגיאה או שעדיין לא הורץ latex מספיק פעמים), תופיע ההפניה "[?]".

כתיבת ביבליוגרפיה בצורה ישירה עריכה

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

הרשימה הביבליוגרפיה מופיעה בתוך בלוק ‎thebibliography<code\>, בדומה לדוגמא הבאה:

\begin{thebibliography}{a}

\bibitem{lamport94}
  Leslie Lamport,
  \emph{\LaTeX: A Document Preparation System}.
  Addison Wesley, Massachusetts,
  2nd Edition,
  1994.

\end{thebibliography}

הפקודה הראשונה מכריזה על בלוק הביבליוגרפיה. הפרמטר השני (בדוגמא לעיל "a") מציין את הרוחב המקסימלי של תוית ההפניה. הערך של הפרמטר חסר משמעות - רק כמות התווים בו בעלת משמעות. למשל, אם התוויות הן [1] עד [9] הרוחב הוא תו יחיד, והפרמטר לעיל מספיק. אם התוית היא למשל [Gel10] אז נדרשים 5 תוים, והפקודה צריכה להראות בסגנון ‎\begin{thebibliography}{55555}‎<code\>‏. (כאמור, התוכן "55555" חסר חשיבות, רק אורכו בא לידי ביטוי).

לאחר מכן, כל שורה בביבליוגרפיה מתחילה ב ‎\bibitem<code\> שלאחריו שם ההפניה (עבור הפקודה ‎\cite<code\>).

שימו לב כי תוכנת ה-BibTex מייצרת קובץ בשם ‎.bbl המכיל את שורות ה bibitem מעוצבות לפי ההגדרות, כך שניתן להשתמש בקובץ זה כעיצוב ראשוני, ולהוסיף עליו שינויים ידניים בעת הצורך. ההמלצה היא להשתמש בbibtex בכל אופן, ולא לבצע שינויים ידנים, אלא אם ממש אין ברירה אחרת.

חבילות עזר עריכה

עברית עריכה

במידה והטקסט משלב עברית ואנגלית יש להתאים את הקובץ rlbabel.def של חבילת babel כך שהפקודות L\ ו- R\ לא ייתנגשו עם תוספי הביבליוגרפיה. מה שנדרש הוא להיכנס לקובץ האמור ולשנות את שמות הפקודות הנ"ל, למשל ל- LTR\ ו- RTL\

NatBib עריכה

חבילת הרחבה עבור BibTex שמאפשרת יצירת הפנייות בסגנונות שונים. למשל, במקום הפניה [1], או [Rab80], ניתן ליצור הפניות המכילות את השם המלא של המחבר והשנה - [Rabin, 1980], או את השנה בלבד וכו'. ראה בטבלה את הפקודה הרלוונטית.

‎Natbib יצירת הפניה ב
פקודת ההפניה תוצאה
\citet{goossens93} ‎ Goossens et al. (1993)‎
\citep{goossens93} (Goossens et al., 1993)
\citet*{goossens93} Goossens, Mittlebach, and Samarin (1993)
\citep*{goossens93} (Goossens, Mittlebach, and Samarin, 1993)
\citeauthor{goossens93} Goossens et al.
\citeauthor*{goossens93} Goossens, Mittlebach, and Samarin
\citeyear{goossens93} 1993
\citeyearpar{goossens93} (1993)
\citealt{goossens93} Goossens et al. 1993
\citealp{goossens93} Goossens et al., 1993

על-מנת לעשות שימוש בחבילה, יש להגדיר בקובץ ה-LaTeX שמשמשים בה, על-ידי הפקודה ‎ \usepackage{natbib}‎.

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

BibLaTeX עריכה

בדצמבר 2010 הוכרזה חבילת BibLaTeX שנועדה להרחיב את תוסף bibtex המקורי, ולהפכו לחלק אינטגרלי סטנדרטי של חבילת LaTeX (למשל, על-ידי הוספת package ללא צורך בהרצת תוכנה חיצונית). חבילה זו מאפשרת את כל הפונקציונליות של Natbib ומרחיבה אותה עוד יותר, כך שמתאפשרת שליטה מלאה וקלה בעיצוב הביבליוגרפיה.

ראה מדריך גרסא 1.1 שפורסמה בינואר 2011. חבילה זו חדשה מאד ועדיין קשה למצוא עליה הרבה מידע, אך היא צפויה בקרוב להפוך לסטנדרט, ולהחליף את השימוש בתוסף ה-Bibtex.

בנוסף, ניתן להגדיר בחבילה את הקידוד בו נעשה שימוש (למשל UTF-8). באופן זה ניתן לשלב טקסט עברי (או כל שפה אחרת). עדיין יש לעשות שימוש בחבילת babel (או תוסף אחר) על מנת לתקן כיווניות וכותרת. כרגע (אפריל 2011) ישנו עדיין קונפליקט בין קובץ rlbabel.def לבין BibLaTeX אשר פוגע ביכולת הרב-לשונית של BibLaTeX. הבעייה מתעוררת במסמכים המשלבים עברית עם שפות אחרות, כאשר בנוסף אחד מן הערכים הביבליורפיים עושה שימוש בשדה hyphenation. כמו-כן, שימוש בחבילת BibLaTeX במסמכים המשלבים טקסט עברי מצריך הוספת הגדרות מתאימות לקובץ csquotes.def, וזאת על-מנת למנוע הודעות שגיאה וטיפול לא נכון בפיסוק בין חלקי הערך הביבליוגרפי השונים.