LaTeX (carte)/Gestiunea bibliografiei

De la Wikimanuale, o colecţie de manuale libere !


Pentru orice lucrare academică/de cercetare, încorporarea referințelor într-un document este o sarcină importantă. Din fericire, LaTeX oferă o varietate de facilități care fac tratarea referințelor mult mai simplă, între care menționăm suportul nativ pentru citarea referințelor. Cu toate acestea, o soluție mult mai flexibilă este oferită de programul auxiliar BibTeX (care deseori face parte din distribuția standard LaTeX.)

BibTeX facilitează stocarea tuturor referințelor într-o bază de date externă sub forma unui fișier text. Această bază de date poate fi legată la orice document LaTeX, și se pot da citate legate de orice referință conținută în fișier. Acest lucru este adesea mai convenabil decât includerea manuală a referințelor la sfârșitul fiecărui document scris. Există acum o sursă bibliografică centralizată ce poate fi legată la oricâte documente dorim (scrie o dată, citește de mai multe ori!). Desigur, bibliografiile pot fi împărțite în oricât de multe fișiere doriți, astfel că poate să existe un fișier care să conțină referințe legate de Relativitatea generală și altul referitor la Mecanica cuantică. Când scrieți o lucrare despre Gravitatea cuantică (GC), care încearcă să lege aceste două teorii, ambele fișiere pot fi legate la document, pe lângă referințele specifice GC.

Sistem implementat intern[modificare]

Dacă scrieți doar unul sau două documente și nu aveți de gând să scrieți mai mult referitor la același subiect vreme îndelungată, poate că nu vreți să pierdeți timpul cu crearea unei baze de date cu referințe pe care nu le veți folosi nicicând. În acest caz, ar trebui să vă gândiți să folosiți numai suportul bibliografic de bază pe care îl pune la dispoziție LaTeX.

LaTeX oferă un mediu numit thebibliography, pe care îl folosiți acolo unde vreți să apară bibliografia, lucru care înseamnă de obicei la sfârșitul documentului, chiar înainte de comanda \end{document}. Iată aici un exemplu concret:

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

Bine, dar ce înseamnă toate astea? Primul lucru de notat este mediul bibliografic. thebibliography este un cuvânt cheie pe care LaTeX îl recunoaște, astfel că tot ce e cuprins între etichetele de început și de sfârșit ale mediului sunt informații pentru bibliografie. Argumentul opțional pe care l-am furnizat după declarația de început a mediului ({9}) spune sistemului LaTeX ce lățime va avea în documentul de ieșire eticheta unui articol (spre exemplu, câte cifre maxim va putea avea numărul unei referințe). Notați că acesta nu este totuși un parametru literal, adică numărul 9 în cazul nostru, ci o lățime de text (un caracter). Prin urmare, transmit efectiv sistemului LaTeX că voi avea nevoie numai de un caracter pentru etichetele referințelor, ceea ce înseamnă nu mai mult de 9 referințe numerice în total. Dacă vreți mai mult de 9 referințe, introduceți un număr cu mai multe cifre, de exemplu '99', care permite cel mult 99 de referințe.

Urmează intrarea cu referința efectivă. Aceasta este precedată de comanda \bibitem{cheia de citare}. Cheia de citare trebuie să fie un identificator unic pentru acea referință particulară, și este deseori un grup de litere și cifre sau alte simboluri (fără virgulă) ușor de reținut. Eu folosesc de obicei numele de familie al autorului, urmat de ultimele două cifre ale anului apariției cărții (aici lamport94). Dacă autorul a scris mai mult de o carte sau articol într-un an dat și sunt amândouă citate ca referințe, atunci adaug literele 'a', 'b', etc. Însă puteți să alegeți orice variantă vă convine. Tot ce urmează cheii este referința însăși. Trebuie s-o scrieți așa cum vreți să apară în document. Am pus părțile componente ale referinței, cum sunt autorul, titlul, etc., pe linii diferite pentru lizibilitate. Aceste capete de linie sunt ignorate de LaTeX. Vreau ca titlul să fie scris cu caractere italice, așa că am folosit comanda \emph{} pentru asta.

Citate[modificare]

E foarte ușor să citezi un document dat. Acolo unde vreți să apară citatul scrieți: \cite{cheia de citare}, unde cheia de citare este aceea a articolului bibliografic (bibitem) pe care vreți să-l citați. Când LaTeX procesează documentul, citatul va fi legat de o referință bibliografică și înlocuit cu numărul acesteia. Avantajul este aici, încă o dată, faptul că LaTeX face el aceste înlocuiri. Dacă aceste înlocuiri trebuiau făcute manual, atunci adăugarea sau înlăturarea unei referințe ar fi fost o muncă foarte grea, deoarece ar fi trebuit să renumerotați manual toate citatele.

În locul editoarelor WYSIWYG (What You See Is What You Get - ceea ce este afișat pe ecran va fi tipărit exact la fel la imprimantă), puteți folosi sisteme cu formatare manuală a textului de genul \TeX{} sau \LaTeX{} \cite{lamport94}.

Referințe mai specifice[modificare]

Câteodată veți dori poate să faceți o referință la o anumită pagină, figură sau teoremă dintr-un text. Pentru aceasta puteți folosi argumentele comenzii \cite:

\cite[p. 215]{citatul01}

Argumentul "p. 215" va fi afișat între aceleași paranteze drepte.

Citate multiple[modificare]

Când aveți nevoie să dați mai multe citate odată, puteți folosi o singură comandă \cite{}. Citatele sunt separate prin virgulă. Iată un exemplu:

\cite{citatul01,citatul02,citatul03}

Rezultatul va fi că citatele vor fi afișate între aceleași paranteze drepte.

Nici un citat[modificare]

Dacă vreți ca o referință să apară numai în bibliografie, însă nu de unde se face trimiterea în textul documentului, atunci puteți folosi comanda \nocite{} ca în exemplul următor:

Lamport a arătat în 1995 ceva... \nocite{lamport95}.

O versiune specială a comenzii, \nocite{*}, include toate intrările din baza de date, fie că sunt făcute trimiteri la ele în document sau nu.

Natbib[modificare]

Utilizând suportul standard pentru bibliografie din LaTeX, veți observa că fiecare referință este numerotată și fiecare citat corespunde numerelor. Stilul numeric al citatelor este foarte întâlnit în lucrările științifice. În alte discipline, stilul autor-an, de exemplu, (Roberts, 2003), de genul Harvard, este preferat, și de fapt devine tot mai răspândit în publicațiile științifice. Nu vom argumenta aici în favoarea unui stil sau a altuia, însă puteți obține un astfel de output folosind pachetul natbib. De fapt, acesta poate înlocui comenzile de citare ale sistemului LaTeX, deoarece Natbib permite utilizatorului să facă ușor trecerea de la sistemul Harvard la cel numeric și invers.

Primul lucru pe care trebuie să-l faceți este la includeți pachetul natbib în preambul:

\usepackage{natbib}

Comenzi Natbib
Comanda de citare Output
\citet{goossens93} Goossens et al. (1993)
\citep{goossens93} (Goossens et al., 1993)
\citet*{goossens93} Goossens, Mittlebach și Samarin (1993)
\citep*{goossens93} (Goossens, Mittlebach și Samarin, 1993)
\citeauthor{goossens93} Goossens et al.
\citeauthor*{goossens93} Goossens, Mittlebach și Samarin
\citeyear{goossens93} 1993
\citeyearpar{goossens93} (1993)
\citealt{goossens93} Goossens et al. 1993
\citealp{goossens93} Goossens et al., 1993

De asemenea, trebuie să modificați fișierul ce conține stilul bibliograiei, astfel că va trebui să înlocuiți linia corespunzătoare de la sfârșitul fișierului cu: \bibliographystyle{plainnat}. Odată ce ați făcut asta, nu trebuie decât să modificați comenzile existente de citare \cite din document pentru a afișa tipul de citat pe care îl doriți.

Comenzile principale adaugă t de la 'textual' sau p de la 'parenteze', la comanda \cite de bază. Observați de asemenea cum Natbib implicit comprimă referințele cu 3 sau mai mulți autori la forma mai concisă primul nume et al. Adăugând un asterisc (*), puteți suprascrie acest comportament implicit și lista toți autorii pentru acel citat. Natbib suportă și alte comenzi specializate, care sunt afișate în acest tabel.

Ultimele lucruri pe care vreau să le spun despre Natbib se referă la personalizarea stilului de citare. Comanda \bibpunct poate înlocui valorile implicite și schimba anumite setări. Spre exemplu, am scris următoarele în preambul:

\bibpunct{(}{)}{;}{a}{,}{,}

Comanda necesită 6 parametri obligatorii.

Stiluri compatibile Natbib
Stil Sursă Descriere
plainnat În pachetul de bază versiune compatibilă natbib pentru plain
abbrvnat În pachetul de bază versiune compatibilă natbib pentru abbrv
unsrtnat În pachetul de bază versiune compatibilă natbib pentru unsrt
apsrev pagina REVTeX 4 stil compatibil natbib cu revistele Physical Review
rmpaps pagina REVTeX 4 stil compatibil natbib cu revistele Review of Modern Physics
IEEEtranN intrare în catalogul TeX stil compatibil natbib cu publicațiile IEEE
achemso intrare în catalogul TeX stil compatibil natbib cu revistele American Chemical Society
rsc intrare în catalogul TeX stil compatibil natbib cu revistele Royal Society of Chemistry
  1. Simbolul pentru paranteza deschisă '('.
  2. Simbolul pentru paranteza închisă ')'.
  3. Simbolul care apare între citatele multiple ';'.
  4. Al patrulea argumnet este o literă:
    • n - stil numeric.
    • s - stil numeric tip exponent (superscript).
    • orice altă literă - stilul autor-an.
  5. Semnul de punctuație ce va apare între autor și anul publicării (numai pentru cazul cu paranteze).
  6. Semnul de punctuație folosit între ani, la citatele multiple când există un autor comun, de exemplu, (Chomsky 1956, 1957). Dacă vreți să introduceți un spațiu suplimentar, trebuie să scrieți {,~}.

După cum vedeți, acest pachet este foarte flexibil, mai ales pentru că puteți trece de la un stil de citare la altul prin modificarea unui singur parametru. Uitați-vă peste manualul Natbib, este un document scurt și puteți învăța mai multe despre utilizarea natbib.

BibTeX[modificare]

Am introdus mai devreme ideea de a scrie referințele la sfârșitul documentului, iar apoi de a folosi comanda \cite pentru a le cita în textul documentului. În acest tutorial, vreau să vă prezint o metodă mai bună, mai flexibilă. De aceea vreau să vă vorbesc acum despre utilizarea BibTeX.

O bază de date BibTeX este stocată sub forma unui fișier cu extensia .bib. Este un fișier text, astfel că poate fi vizualizat și editat cu ușurință. Structura fișierului este și ea foarte simplă. Iată un exemplu de articol BibTeX:

@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"
}

Fiecare intrare începe cu declarația tipului referinței, sub forma @type. BibTeX cunoaște practic toate tipurile la care vă puteți gândi, între care mai întâlnite sunt: book (carte), article (articol), iar pentru lucrările prezentate la conferințe, inproceedings. În exemplul de față, am făcut referire la un articol dintr-o revistă.

După tip, trebuie să fie o acoladă de deschidere '{', care semnifică începutul atributelor referinței. Primul urmează imediat după acoladă, care este cheia de citare. Această cheie trebuie să fie unică pentru toate intrările din bibliografie. Acest identificator este acela pe care-l veți folosi în document pentru a face trimiteri la referință. Depinde de tine cum vei eticheta fiecare referință, însă există un standard general ce specifică folosirea numelui de familie al autorului, urmat de anul publicării lucrării. Asta este și schema folosită în tutorialul de față.

Apoi, e clar că ce urmează sunt câmpurile și datele relevante pentru acea referință particulară. Denumirile câmpurilor din stânga sunt cuvinte cheie BibTeX. Ele sunt urmate de un semn de egalitate (=) după care se specifică valoarea acelui câmp. BibTeX se așteaptă să marcați explicit începutul și sfârșitul fiecărei valori. Eu folosesc ghilimele ("), cu toate astea, puteți folosi și acolade ('{', '}'). Însă după cum veți vedea în curând, acoladele au alte roluri, în cadrul atributelor, așa că prefer să nu le folosesc în acest scop deoarece pot să genereze confuzie. O excepție notabilă este când vreți să utilizați caractere cu umlaut (ü, ö, etc), de vreme ce notația acestora este în formatul \"{o}, iar ghilimelele folosite aici vor închide câmpul reprezentând valoarea atributului respectiv, determinând apariția unei erori în analiza referinței de către sistemul LaTeX.

Rețineți că fiecare atribut trebuie să fie urmat de o virgulă pentru a-l delimita de următorul. Nu trebuie să puneți virgulă după ultimul atribut, deoarece acolada de închidere va spune sistemului BibTeX că nu mai sunt atribute pentru această intrare, deși nu este greșit dacă puneți virgulă și aici.

Poate dura ceva timp până învățați care sunt tipurile de referințe și ce câmpuri are fiecare (și care dintre acestea sunt obligatorii și care opționale, etc). Așadar, uitați-vă peste aceste tipuri de referințe și peste aceste câmpuri de referințe pentru descrierile tuturor acestor câmpuri. Poate ar fi bine să salvați sau să tipăriți aceste pagini ca să vă fie la îndemână când aveți nevoie de ele.

Autori[modificare]

BibTeX poate fi foarte inteligent în ce privește gestionarea numelor autorilor. Poate accepta nume sub forma prenume nume de familie sau nume de familie, prenume. Eu personal o folosesc pe prima, însă rețineți că ordinea în care le introduceți (sau orice date din cadrul unei intrări în privința asta) este personalizabilă astfel încât BibTeX pote manipula intrările și apoi genera ieșirile în forma pe care o doriți. Dacă utilizați formatul prenume nume de familie, trebuie să fiți atenți la câteva nume speciale, spre exemplu când numele de familie este compus, ca în cazul "John von Neumann". În această formă, BibTeX presupune că ultimul cuvânt este numele de familie, și tot ce este înainte constituie prenumele, inclusiv orice particulă intermediară. De aceea trebuie să transmiteți explicit în cazul acesta sistemului BibTeX să țină 'von' și 'Neumann' împreună. Acest lucru este ușor de realizat cu ajutorul acoladelor. Astfel, acest nume trebuie scris sub forma "John {von Neumann}". O atare situație este ușor de evitat dacă scrieți numele sub forma nume de familie, prenume, de vreme ce acestea sunt separate de virgulă.

În al doilea rând, trebuie să vedem cum spunem sistemului BibTeX că o referință are mai mulți autori. Acest lucru este foarte ușor de făcut, punând cuvântul cheie and între oricare doi autori succesivi, ca în exemplul următor:

@book{goossens93,
    author    = "Michel Goossens and Frank Mittlebach and Alexander Samarin",
    title     = "The LaTeX Companion",
    year      = "1993",
    publisher = "Addison-Wesley",
    address   = "Reading, Massachusetts"
}

Cartea de față are 3 autori, oricare doi fiind separați după cum s-a descris mai devreme. Desigur, când BibTeX procesează aceste date și formează rezultatul, va rămâne un singur 'and' între penultimul și ultimul autor, însă în fișierul .bib, trebuie să fie toate aceste and-uri pentru a putea separa fiecare autor în parte.

Formate standard[modificare]

@article
Un articol (article) dintr-un ziar sau o revistă.
  • Câmpuri obligatorii: autor (author), titlu (title), revistă (journal), an (year).
  • Câmpuri opționale: volum (volume), număr (number), pagini (pages), lună (month), notă (note).
@article{Xarticle,
    author    = "",
    title     = "",
    journal   = "",
    %volume   = "",
    %number   = "",
    %pages    = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@book
Carte (book) publicată
  • Câmpuri obligatorii: autor/editor, titlu, editură (publisher), an.
  • Câmpuri opționale: volum/număr, serie (series), adresă (address), ediție (edition), lună, notă.
@book{Xbook,
    author    = "",
    title     = "",
    publisher = "",
    %volume   = "",
    %number   = "",
    %series   = "",
    %address  = "",
    %edition  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@booklet
O lucrare legată fără editură sau sponsor.
  • Câmpuri obligatorii: titlu.
  • Câmpuri opționale: autor, modul de publicare (howpublished), adresă, lună, an, notă.
@booklet{Xbooklet,
    %author   = "",
    title     = "",
    %howpublished   = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@conference
La fel cu inproceedings
  • Câmpuri obligatorii: autor/editor, titlu, titlul cărții (booktitle), an.
  • Câmpuri opționale: editor, volum/număr, serie, pagini, adresă, lună, organizație (organization), editură, notă.
@conference{Xconference,
    author    = "",
    title     = "",
    booktitle = "",
    %editor   = "",
    %volume   = "",
    %number   = "",
    %series   = "",
    %pages    = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %publisher= "",
    %note     = "",
}
@inbook
Secțiune a unei cărți
  • Câmpuri obligatorii: autor/editor, titlu, capitol (chapter) și/sau pagini, editură, an.
  • Câmpuri opționale: volum/număr, serie, tip (type), adresă, ediție, lună, notă.
@incollection
O secțiune a unei cărți ce are un titlu propriu.
  • Câmpuri obligatorii: autor, titlu, titlul cărții, editură, an.
  • Câmpuri opționale: editor, volum/număr, serie, tip, capitol, pagini, adresă, ediție, lună, notă.
@inproceedings
Articol în cadrul pregătirilor unei conferințe.
  • Câmpuri obligatorii: autor, titlu, titlul cărții, an.
  • Câmpuri opționale: editor, volum/număr, series, pagini, adresă, lună, organizație, editură, notă.
@manual
Manual tehnic
  • Câmpuri obligatorii: titlu.
  • Câmpuri opționale: autor, organizație, adresă, ediție, lună, an, notă.
@mastersthesis
Teză de master (Master's thesis)
  • Câmpuri obligatorii: autor, titlu, școală (school), an.
  • Câmpuri opționale: tip, adresă, lună, notă.
@mastersthesis{Xthesis,
    author    = "",
    title     = "",
    school    = "",
    %type     = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@misc
Format util pentru alte tipuri de publicații
  • Câmpuri obligatorii: nici unul
  • Câmpuri opționale: autor, titlu, modul de publicare, lună, an, notă.
@misc{Xmisc,
    %author    = "",
    %title     = "",
    %howpublished = "",
    %year     = "XXXX",
    %month    = "",
    %note     = "",
}
@phdthesis
Teză de doctorat (Ph.D. thesis)
  • Câmpuri obligatorii: autor, titlu, an, școală.
  • Câmpuri opționale: adresă, lună, cuvinte cheie (keywords), notă.
@proceedings
Pregătirile unei conferințe
  • Câmpuri obligatorii: titlu, an.
  • Câmpuri opționale: editor, volum/număr, serie, adresă, lună, organizație, editură, notă.
@techreport
Raport tehnic (technical report) al unei instituții educaționale, comerciale sau de standardizare.
  • Câmpuri obligatorii: autor, titlu, instituție (institution), an.
  • Câmpuri opționale: tip, număr, adresă, lună, notă.
@techreport{Xtreport,
    author    = "",
    title     = "",
    institution = "",
    %type     = "", 
    %number   = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@unpublished
Articol, carte, teză, etc., nepublicate.
  • Câmpuri obligatorii: autor, titlu, notă.
  • Câmpuri opționale: lună, an.

Formate nestandardizate[modificare]

@patent
@colecție (collection)
@electronic

Păstrarea literelor mari[modificare]

Dacă BibTeX nu a fost configurat în așa fel încât să păstreze toate literele mari din titluri, pot apare probleme, mai ales dacă faceți trimiteri la substantive proprii, sau acronime. Pentru a instrui BibTeX să păstreze literele mari, folosiți acolade în jurul literei, (sau literelor, pentru un acronim) în chestiune și totul va fi bine! Sau puteți pune întregul titlu între acolade:

 title = "{Compania LaTeX}"

Câteva exemple adiționale[modificare]

Urmează câteva exemple adiționale de intrări bibliografice. Primul prezintă un caz în care sunt mai mulți autori, ale căror nume sunt în formatul Nume de familie, Prenume, iar al doilea tratează cazul incollection.

@article{AbedonHymanThomas2003, author = "Abedon, S. T. and Hyman, P. and Thomas, C.", year = "2003", title = "Examinarea experimentală a evoluției bacteriofage în perioada latentă ca răspuns la disponibilitatea bacterială", journal = "Microbiologie aplicată și de mediu", volume = "69", pages = "7499--7506" } @incollection{Abedon1994, author = "Abedon, S. T.", title = "Descompunerea și interacțiunea dintre bacteriofagele libere și celulele infectate", pages = "397--405", booktitle = "Biologia moleculară a celulelor bacteriofage T4", editor = "Karam, Jim D. Karam and Drake, John W. and Kreuzer, Kenneth N. and Mosig, Gisela and Hall, Dwight and Eiserling, Frederick A. and Black, Lindsay W. and Kutter, Elizabeth and Carlson, Karin and Miller, Eric S. and Spicer, Eleanor", publisher = "Editura ASM, Washington DC", year = "1994" }

Dacă trebuie să citați un site web, puteți folosi @misc:

@misc{website:fermentas-lambda, author = "Fermentas SRL", title = "Lambda-fage: fișă de descriere \& restricții", month = "Noiembrie", year = 2008, howpublished = "\url{http://www.fermentas.com/techinfo/nucleicacids/maplambda.htm}" }

Câmpul 'notă' este nimerit dacă trebuie să adăugați informații nestructurate, spre exemplu, faptul că numărul corespunzător al revistei urmează să apară:

@article{găurile-negre, author="Iepuraș, I.", title="Găurile negre și legătura lor cu ascunderea ouălor", journal="Fizică teoretică de Paște", publisher="Ouă SRL", year="2010", note="(urmează să apară)" }

Folosirea fișierului .bib de către documentul curent LaTeX[modificare]

De fapt acest lucru nu e foarte dificil. La sfârșitul fișierului LaTeX (adică după conținut, dar înainte de \end{document}), trebuie să scrieți următoarele comenzi:

\bibliographystyle{plain} \bibliography{fișier_1,fișier_2,...,fișier_n} % Observați că nu sunt spații între virgule și următoarele fișiere ''bib''.

Stilurile bibliografice sunt fișiere recunoscute de BibTeX și care îi spun cum să formateze informațiile păstrate în fișierul .bib când este procesat pentru a produce documentul final. Așadar prima comandă afșată mai sus declară fișierul de stil ce va fi folosit. Fișierul de stil este în cazul de față plain.bst (care vine ca standard cu BibTeX). Nu trebuie să adăugați extensia .bst când folosiți această comandă, deoarece se adaugă automat. În ciuda numelui său, stilul simplu (plain) face o treabă foarte bună (uitați-vă la outputul acestui tutorial ca să înțelegeți ce vreau să spun).

A doua comandă este cea care specifică de fapt fișierul .bib pe care vreți să-l folosiți. Fișierele menționate aici se numesc fișier_1.bib, fișier_2.bib, . . ., fișier_n.bib, însă încă o dată, nu includeți extensia fișierului. Pe moment, fișierul .bib este în același director cu documentul LaTeX. Totuși, dacă fișierul .bib este în altă parte (lucru care are sens dacă intenționați să mențineți o bază de date centralizată de referințe pentru toate lucrările pe care vreți să le scrieți), trebuie să specificați și calea către fișier, de exemplu \bibliography{/unde/va/fișier}.

Acum că LaTeX și BibTeX știu unde să caute fișierele corespunzătoare, citarea referințelor este un lucru trivial. \cite{cheia de citare} este comanda care vă trebuie, cu observația că această cheie trebuie să corespundă exact unei singure intrări în fișierul .bib. Dacă vreți să citați mai mult de o referință în același timp, procedați în felul următor: \cite{cheia_1, cheia_2, ..., cheia_N}.

De ce nu generează LaTeX niciun rezultat?[modificare]

BibTeX face mai complexă procesarea sursei pentru a obține rezultatul dorit. Acest lucru este în mare măsură ascuns utilizatorului, însă din cauza complexității trimiterilor din fișierul sursă LaTeX la intrările din baza de date dintr-un alt fișier, trebuie să compilați sursa de mai multe ori, până când vor fi rezolvate toate referințele din document. Iată comenzile pe care trebuie să le dați:

  1. latex codul_sursă_latex (nu are nevoie de extensia .tex)
  2. bibtex codul_sursă_latex (nu folosiți extensia .tex)
  3. latex codul_sursă_latex (nu necesită extensia .tex)
  4. latex codul_sursă_latex (nu necesită extensia .tex)

După prima comandă, veți vedea erori de genul:

LaTeX Warning: Citation `lamport94' on page 1 undefined on input line 21.
...
LaTeX Warning: There were undefined references.

Pasul următor este rularea comenzii bibtex pentru aceeași sursă LaTeX (și nu asupra fișierului .bib) pentru a defini toate referințele din document. Ar trebui să vedeți un output de genul:

This is BibTeX, Version 0.99c (Web2C 7.3.1)
The top-level auxiliary file: codul_sursă_latex.aux
The style file: plain.bst
Database file #1: fișier.bib

Al treilea pas, care constă în invocarea comenzii de compilare LaTeX a doua oară, va da erori precum "LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.". Nu vă alarmați, e aproape gata. După cum puteți ghici, tot ce trebuie să faceți e să urmați instrucțiunile și să rulați comanda de compilare LaTeX a treia oară, care va genera documentul după cum era de așteptat, fără alte probleme.

Dacă vreți să generați un PDF în loc de DVI, puteți folosi comanda pdflatex în locul comenzii latex:

  1. pdflatex codul_sursă_latex (nu are nevoie de extensia .tex)
  2. bibtex codul_sursă_latex (nu folosiți extensia .tex)
  3. pdflatex codul_sursă_latex (nu necesită extensia .tex)
  4. pdflatex codul_sursă_latex (nu necesită extensia .tex)

Notați că dacă editați sursa cu programul vim și încercați să folosiți modul de rulare de comenzi și shortcut-ul pentru fișierul curent (%) pentru a procesa documentul, ca în exemplul de mai jos:

  1. :! pdflatex %
  2. :! bibtex %

veți obține o eroare de genul:

  1. I couldn't open file name 'fișierul_curent.tex.aux'

S-ar părea că extensia fișierului este inclusă automat când se execută comanda pentru fișierul curent (%). Pentru a procesa documentul cu vim, trebuie să furnizați explicit numele fișierului fără extensie ca să meargă comanda bibtex, ca în exemplul următor:

  1. :! pdflatex %
  2. :! bibtex codul_sursă_latex (fără extensie, după cum s-a precizat mai devreme)
  3. :! pdflatex %
  4. :! pdflatex %

Stiluri de bibliografie[modificare]

Puteți vedea mai jos 3 stiluri de bibliografie disponibile în LaTeX:

plain
abbrv
alpha


Pentru a numerota referințele în ordinea apariției lor în locul ordinii alfabetice implicite, folosiți ieeetr :

    \bibliographystyle{ieeetr}


Găsiți mai multe exemple la pagina http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html.

Cum includeți URL-uri în bibliografie[modificare]

După cum ați observat, nu este niciun câmp pentru URL-uri. O posibilitate ar fi să includeți adresele de Internet în câmpul howpublished pentru @misc sau în câmpul note pentru @techreport, @article, @book:

howpublished = "\url{http://www.example.com}"

Uitați-vă peste utilizarea comenzii \url pentru a asigura afișarea corespunzătoare a URL-urilor.

O altă modalitate ar fi să utilizați câmpul special url și să faceți stilul bibliografiei să-l recunoască:

url = "http://www.example.com"

Trebuie să folosiți \usepackage{url} în primul caz și \usepackage{hyperref} în al doilea.

Stilurile oferite de Natbib (vezi mai jos) au acest câmp, alte stiluri pot fi modificate cu ajutorul programului urlbst. Acesta poate face modificări la 3 stiluri standard (plain, abbrv și alpha).

Dacă vreți să știți mai multe despre includerea URL-urilor în bibliografie, visitați FAQ of UK List of TeX.

Modificarea aspectului bibliografiei[modificare]

Unul din principalele avantaje ale BibTeX, mai ales pentru oamenii care scriu multe lucrări de cercetare, este abilitatea de a modifica bibliografia pentru a o adapta la cerințele unei anumite publicații. Veți vedea că diverse publicații au tendința să-și formeze propriul stil de formatare a referințelor, la care autorii trebuie să se conformeze dacă vor să-și publice manuscrisele. De fapt, revistele cunoscute și organizatorii de conferințe deseori au propriul stil de bibliografie (un fișier .bst) pentru utilizatorii BibTeX, care face toată munca grea în locul vostru.

Lucrul acesta poate fi realizat datorită naturii bazei de date bibliografice (a fișierului .bib), în care toate informațiile despre referințe se păstrează într-un format structurat, însă fără informații despre stil. Aceasta este o temă comună în LaTeX în general, prin care se încearcă pe cât de mult posibil să se separe conținutul de prezentare.

Un fișier cu stilul bibliografic (.bst) va spune sistemului LaTeX cum să formateze fiecare atribut, în ce ordine să le aranjeze, ce semne de punctuație să folosească între atribute, etc. Din păcate, crearea manuală a unui astfel de stil nu este o sarcină ușoară. De aceea vom folosi programul makebst (cunoscut și sub numele de custom-bib — bibliografie personalizată).

Makebst poate fi folosit pentru a genera automat un fișier .bst conform specificațiilor date. Este foarte simplu, și vă cere de fapt să răspundeți la o serie de întrebări legate de preferințele pe care le aveți. La sfârșit, va genera un fișier de stil corespunzător.

Acest program ar trebui să facă parte din distribuția LaTeX pe care o aveți instalată (altfel, puteți să-l luați de pe net) și este foarte simplu de pornit. În terminal, scrieți:

latex makebst

LaTeX va găsi fișierul relevant și va începe procesul de chestionare. Va trebui să răspundeți la o serie de întrebări (deși, notați că răspunsurile implicite sunt destul de bune), ceea ce înseamnă că ar fi greu să prezentăm un exemplu în acest tutorial. Cu toate acestea, este relativ simplu. Iar dacă vă trebuie mai multe îndrumări, puteți consulta manualul disponibil. Vă recomand să-l încercați și să vedeți ce rezultate obțineți când procesați un document LaTeX cu noul fișier de stil.

Dacă folosiți un fișier separat .bst, este important ca LaTeX să-l poată găsi! Așadar, aveți grijă să fie în același director cu fișierul sursă LaTeX, în afară de cazul în care folosiți unul dintre fișierele standard de stil (cum sunt plain sau plainnat, care fac parte din distribuția LaTeX — acestea vor fi găsite automat în directoarele de instalare. De asemenea, asigurați-vă că ați furnizat numele fișierului .bst ca argument al comenzii \bibliographystyle{stil} (însă fără extensia .bst).

Adaptarea aspectului bibliografiei la specificul local[modificare]

Când scrieți documente în altă limbă decât engleza, veți dori poate să adaptați aspectul bibliografiei la limba în care scrieți. Asta vizează cuvinte ca editori, și sau în, ca și un aspect tipografic corespunzător. Puteți folosi pachetul babelbib în cazul acesta. Spre exemplu, ca să scrieți bibliografia în germană, adăugați următoarele comenzi în preambul:

\usepackage[fixlanguage]{babelbib} \selectbiblanguage{german}

Altfel, puteți seta fiecare intrare din bibliografie potrivit limbii documentului citat:

\usepackage{babelbib}

Limba specifică unei intrări din bibliografie se specifică sub forma unui câmp adițional la intrarea BibTeX:

@article{mueller08,
  % ...
  language = {german}
}

Pentru ca a putea utiliza pachetul babelbib, trebuie să folosiți un stil bibliografic suportat de acesta — babplain, babplai3, babalpha, babunsrt, bababbrv sau bababbr3:

\bibliographystyle{babplain} \bibliography{fișier_bibtex}

Obținerea datelor bibliografice[modificare]

Multe baze de date online oferă date bibliografice în format BibTeX, făcând mai ușoară munca de creare a propriei baze de date. De exemplu, Google Scholar oferă opțiunea de a returna un rezultat formatat în mod corespunzător, însă trebuie pornită de la Preferințe.

Rețineți faptul că bazele de date bibliografice sunt deseori produsul mai multor generații de procesare automată, astfel încât codul BibTex rezultat poate prezenta o serie de erori minore, mai ales în cazul intrărilor mai vechi.

Programe utile[modificare]

Vezi și Comparație între programele de gestiune a referințelor .

JabRef
BibDesk
  • Mendeley este un program academic gratuit pentru gestionarea de PDF-uri, care poate administra o bibliografie în Open Office și citi BibTeX.
  • Zotero este un program gratuit și open-source de gestiune a referințelor integrat ca plugin pentru Firefox, capabil să importe și să exporte fișiere bib.
  • Referencer este o aplicație Gnome pentru organizarea documentelor și referințelor, care poate genera un fișier bibliografic BibTeX.
  • Citavi este un program comercial (cu o versiune gratuită limitată) care chiar caută în biblioteci de date după citate și păstrează toate cunoștințele într-o bază de date. Aceasta poate fi exportată sub diverse formate. Merge cu MS Word și Open Office Writer. Mai mult, există plugin-uri pentru browsere și pentru Acrobat Reader, care includ automat referințe la proiecte.
  • JabRef este un mic program Java care permite editarea facilă a fișierelor BibTeX și altor baze de date bibliografice, ocupându-se de cele mai multe detalii pentru voi.
  • Bibliographer este un editor pentru bazele de date BibTeX proiectat să fie ușor de folosit. Între trăsăturile sale se includ legarea fișierelor de intrările bibliografice cu suport pentru indexare și căutarea în baza de date. Interfața permite o navigare facilă a bibliografiei, un dublu clic pe o înregistrare deschizând fișierul bibliografic corespunzător.
  • cb2Bib este un program ce permite extragerea rapidă de informații neformatate, sau de referințe bibliografice nestandardizate din alerte de email, pagini Web și fișiere PDF.
  • KBibTeX este un editor de BibTeX pentru KDE pentru a edita bibliografiile folosite de LaTeX. Între facilitățile oferite se numără măști pentru datele de intrare, demararea interogațiilor web (de exemplu Google sau PubMed) și exportarea sub formă de PDF, PostScript, RTF și XML/HTML. Deoarece KBibTeX folosește tehnologia KParts din KDE, KBibTeX poate fi încorporat în Kile sau Konqueror.
  • KBib este încă un editor de BibTeX pentru KDE. Prezintă facilități similare, și o interfață puțin diferită. Acestea includ generarea de referințe BibTeX din fișiere PDF, text, DOI, arXiv și ID-uri PubMed. Se oferă de asemenea suport pentru interogări Web către Google Scholar, PubMer, arXiv și un număr de alte servicii.
  • Bibwiki este o pagină specială pentru ca MediaWiki să gestioneze bibliografii BibTeX. Oferă de asemenea un mod simplu de a importa și exporta articole de bibliografie.
  • BibDesk este un program de gestiune a referințelor bibliografice pentru Mac OS X. Prezintă o interfață foarte ușor de folosit și oferă un număr de facilități precum directoare inteligente bazate pe cuvinte cheie și afișaj tex.
  • CiteULike este un serviciu online gratuit pentru organizarea lucrărilor academice. Poate exporta citatele în format BibTeX și poate lua date BibTeX de pe multe site-uri web cunoscute.
  • Bibtex este un plugin DokuWiki ce permite includerea de citate formatate bibtex în pagini DokuWiki și le afișează în format APA. Notă: acest plugin este vulnerabil la un atac XSS. http://www.dokuwiki.org/plugin:bibtex
  • BibSonomy — un sistem gratuit de stocare a adreselor de documente (social bookmark) și de gestiune a publicațiilor bazat pe BibTeX.
  • Synapsen — Hypertextual Card Index / Reference Manager (program de gestiune a referințelor) cu suport special pentru BiBTeX / biblatex, scris în Java.

Rezumat[modificare]

Deși nu durează mult să învățați să lucrați cu BibTeX, pe termen lung, se va dovedi un mod eficient de a vă gestiona referințele. Puteți găsi pe site-uri Web fișiere .bib ce conțin propriile publicații ale unor autori, sau opere relevante dintr-un anumit domeniu, etc. Sau în acele baze de date bibliografice online, de dimensiuni foarte mari, găsiți deseori versiuni BibTeX de publicații, pe care le puteți copia ușor într-un fișier .bib!

Păstrarea tuturor referințelor într-un singur loc se poate dovedi un mare avantaj. Iar păstrarea lor într-o formă structurată, lucru ce permite obținerea unui output personalizat, este încă un avantaj. Se găsesc o mulțime de programe gratuite care vă pot încărca fișierele .bib, care permit vizualizarea acestora într-o manieră mai eficientă, ca și sortarea lor și controlul erorilor.

Bibliografia în tabla de materii[modificare]

Dacă scrieți o carte (book) sau redactați un raport (report), veți insera probabil bibliografia folosind comenzi de genul:

\begin{thebibliography}{99} \bibitem{bib:o_carte} ceva informații \bibitem{bib:un_articol} alte informații \end{thebibliography}

Aceste comenzi vor crea un output sub formă de capitole, afișând în mod corespunzător toate referințele. Deși arată ca un capitol, nu va fi tratat ca atare, prin urmare nu va apare în Cuprinsul de la începutul documentului. Dacă vreți ca bibliografia să apară în Cuprins, adăugați următoarele două linii înainte de mediul thebibliography:

\clearpage \addcontentsline{toc}{chapter}{Bibliografie}

(SAU dacă scrieți un articol)

Prima comandă termină paragraful sau pagina curentă. Dacă scrieți o carte (book), folosiți comanda \cleardoublepage pentru ca bibliografia să înceapă la următoarea pagină impară. A doua comandă va adăuga o linie la Tabla de materii (prima opțiune, toc), va fi ca cele create de capitole (a doua opțiune, chapter), iar al treilea argument va fi afișat pe linia corespunzătoare în Cuprins. Dacă importați bibliografia dintr-un fișier bib separat, adăugați aceste comenzi între liniile \bibliographystyle și \bibliography.

Mediul thebibliography va scrie automat textul Bibliography în document la începutul bibliografiei, însă la cuprins va apare textul ales în comanda de mai sus (al treilea argument). Puteți face să apară același text și în document, folosind comanda \renewcommand\refname{Bibliografie} în preambul (\bibname pentru carte sau raport).

Dacă utilizați pachetul hyperref, trebuie să folosiți și comanda \phantomsection pentru a permite un hyperlink din Cuprins către bibliografie.

\clearpage \phantomsection \addcontentsline{toc}{chapter}{Bibliography}

Acest truc este deosebit de util când trebuie să inserați bibliografia în Cuprins, însă merge pentru orice. Când LaTeX întâlnește codul de mai sus, va înregistra informațiile după cum s-a descris mai sus și numărul paginii curente, inserând o linie nouă în pagina de Cuprins.

Adăugați bibliografia la Cuprins ca articol numerotat[modificare]

Dacă vreți ca bibliografia să fie o secțiune sau un capitol numerotate, veți aplica probabil metoda următoare:

\cleardoublepage % această comandă este necesară dacă scrieți o carte, pentru
                 % ca bibliografia să înceapă pe o pagină nouă corespunzătoare
                 % folosiți \clearpage pentru articol sau "oneside" pentru carte
\renewcommand*{\refname}{} % la Cuprins nu va apare un titlu al bibliografiei,
\section{Bibliografie}     % astfel că puteți pune un titlu normal de secțiune
                           % înainte de intrările bibliografice
\begin{thebibliography}{99}
...
\end{thebibliography}

O altă soluție, chiar mai ușoară, este să folosiți \section în cadrul blocului \renewcommand:

\renewcommand{\refname}{\section{Surse}} % "Surse" este titlul secțiunii
\begin{thebibliography}{99}
...
\end{thebibliography}

Puteți folosi \renewcommand*{\refname}{\vspace*{-12mm}} pentru a înlătura spațiul suplimentar introdus de comanda \refname.

  • Notă: Folosiți \bibname în loc de \refname pentru clasele carte și raport.


Această pagină foloseşte materiale din cartea lui Andy Roberts, Getting to grips with Latex, cu permisiunea autorului.


Anterior: Crearea unui titlu LaTeX Următor: Internaționalizare