Jak pouzívat BibTeX

[  Co to umí  |  Jak se to pouzívá  |  BibTeXová databáze  |  Tvorba vlastních stylu |  Co delat, kdyz BibTeX neco neumí  ]

Co to umí

V minulé kapitole jsem se zmínil, ze rucní vytvárení seznamu literatury v LaTeXu je zbytecne pracné a málo pruzné. BibTeX je program, který umí mnozství práce udelat za nás. Výmenou bibtexových stylu muzeme menit vzhled seznamu i mnozství informací, které v nem budou obsazeny. Není se tedy treba starat o to, jak jednotlivé reference vysázet. BibTeX navíc umí do výsledného seznamu zahrnout pouze ty reference, na které je v textu odkazováno, takze muzeme bez obav udrzovat seznam vsech referencí na literaturu, kterou jsme kdy precetli, na jednom míste. Pouzívání BibTeXu výrazne setrí práci.

Jak se to pouzívá

Predpokladem je správne nainstalovaný program bibtex. Je soucástí vetsiny distribucí LaTeXu, takze by nemel být problém s jeho zprovoznením. Dále je potreba mít soubor s BibTeXovou databází ve stejném adresári, jako zdrojový text LaTeXového dokumentu. Nazveme jej napríklad citace.bib. BibTeXovou databázi je treba vlozit do LaTeXového zdrojáku pomocí príkazu bibliography presne ve stejném míste, kde bychom jinak pouzili prostredí thebibliography.

\bibliographystyle{alpha}
\bibliography{citace}

Príkazem bibliographystyle se volí budto jeden ze základních stylu formátování (alpha, plain, unsrt, abbrv, czechiso) nebo vlastní styly. Pro vetsinu prípadu bohate postací styly alpha a plain.

Stejne jako pri zpracovávání ostatních referencí je potreba prekládat vícepruchodove. LaTeX v prvním pruchodu vygeneruje pozadavky na odkazy, ty se pak zpracují pomocí BibTeXu a výsledek je potreba podruhé zkompilovat LaTeXem. Predpokládejme, ze v aktuálním adresári máme dva soubory pojmenované citace.tex a citace.bib, pak bude preklad vypadat takto:

cslatex citace
bibtex citace
cslatex citace
cslatex citace

BibTeXová databáze

Seznam referencí pro BibTeX má tvar textového souboru (s koncovkou .bib), který obsahuje strukturované údaje o prectených knihách, cláncích, místech na internetu nebo jiných zdrojích. Az na výjimky se zde nezaznamenává zpusob formátování jednotlivých polozek, ale pouze cisté informace (jméno autora, název, rok vydání, atd.). O formátování se postará az BibTeX. Databáze obsahující stejné údaje, jako ukázka z minulé kapitoly, ulozená jako soubor citace.bib, by mohla vypadat takto:

@BOOK{Ceska1994,
  title = {Petriho {S}íte},
  publisher = {Akademické nakladatelství CERM Brno},
  year = {1994},
  author = {Milan CESKA},
  abstract = {Ucebnice Petriho sítí. Obsahuje definici PS, rozebírá
    základní problémy analýzy PS, invarianty, jazyky PS. Nezabývá se
    stochastickými, barvenými PS, ani dalsími rozsíreními. Koncí
    u PT Petriho sítí s inhibitory.},
  isbn = {80-85867-35-4},
  owner = {David Martinek},
}

@MISC{simlib,
  author = {Petr PERINGER},
  title = {{SIMLIB/C++}},
  howpublished = {[online]},
  year = {Naposledy navstíveno 31. 3. 2005},
  url = {http://www.fit.vutbr.cz/~peringer/SIMLIB/},
}

Vsimnete si, ze záznamy mohou obsahovat i informace, které se ve výsledném dokumentu nezobrazují. Nyní si vysvetlíme, co znamenají jednotlivé elementy:

@BOOK, @MISC
Slovo za zavinácem specifikuje typ záznamu. Krome zmínených typu existuje mnozství dalsích, napríklad @ARTICLE, @INPROCEEDINGS, @PHDTHESIS, a mnozství dalsích. Typ záznamu ovlivnuje, jak bude záznam vysázen a které polozky se budou brát v úvahu. Nekteré bibtexové styly mohou specifikovat vlastní typy.
Ceska1994, simlib
Návestí, která by mela být jedinecná, a která se pouzívají v príkazu \cite.
author, title, ...
Polozky záznamu. Nekteré jsou povinné, nekteré ne. V záznamu se mohou vyskytovat i vase vlastní polozky, protoze BibTeX si vsímá pouze tech polozek, které jsou specifikovány v pouzitém stylu.
Obsah polozek
Jde o obycejný text ve kterém lze pouzívat príkazy LaTeXu. Uzavírá se bud do slozených závorek nebo do dvojitých uvozovek. Polozky musí být ukonceny cárkou. BibTeX standardne sází nadpisy tak, ze nechává velké pouze první písmeno. Pokud je potreba nechat nekterá písmena velká, je potreba je uzavrít do dalsích slozených závorek. Standardní styly prílis nepocítají s webovými adresami. Já pro jejich sázení pouzívám vlastní styl czechiso.bst.

Tyto databáze se dají vytváret pomocí libovolného textového editoru. Vyzaduje to vsak znalost vsech povinných polozek jednotlivých typu záznamu. Jednodussím zpusobem, jak vytvorit a spravovat BibTeXovou databázi je pouzít nekterý ze specializovaných editoru. Já jsem poslední dobou spokojeným uzivatelem programu JabRef, který je napsaný v Jave, takze jej lze pouzívat pod libovolným operacním systémem. Jeho ovládání je velmi intuitivní a s jeho pomocí do tvorby BibTeXových databází proniknete velice rychle.

Tvorba vlastních stylu

BibTeXové styly jsou ulozeny v souborech s koncovkou .bst a najdete je v adresári, kde je nainstalován LaTeX, resp. BibTeX (na unixech to bývá adresár /usr/share/texmf/bibtex/bst). Dalsí mozností je umístit soubor se stylem prímo do adresáre, se zdrojovými texty. V nekterých situacích vám nemusí standardní styly vyhovovat. V tom prípade si muzete stáhnout styl z internetu (lze jich najít opravdu hodne) nebo si muzete vytvorit vlastní. Jde o textové soubory, takze lze pouzít nekterý ze standardních stylu a textovým editorem v nem provést úpravu. Pokud chcete vytvorit vlastní styl od nuly, lze jej vytvorit príkazem

latex makebst

Program se vás pak bude ptát na nejruznejsí apekty nového stylu, na které budete odpovídat výberem z nabídek. Pro jednoduché modifikace základních stylu to stací. Mne napríklad nevyhovovalo, ze základní styly neumí zpracovávat polozky s názvem isbn, tak jsem si tímto zpusobem vytvoril vlastní styl, který to umí.

Co delat, kdyz BibTeX neco neumí

Nekdy se stane, ze ani pomocí vlastního stylu nevypadá výstup podle nasich predstav. Také se muze stát, ze je v BibTeXu chyba nebo muzeme narazit na skutecnost, ze BibTeX neumí cesky. Do potízí se muzeme dostat napríklad v situacích, kdy jméno nebo príjmení autora zacíná písmenem s diakritikou. Standardní BibTeX nezná pravidla pro ceské razení a zdá se, ze mu ciní potíze rozeznat, co je jméno a co je príjmení, práve kdyz tato slova zacínají písmenem s diakritikou. Tyto problémy by mel zrejme resit program csbibtex, ale vypadá to (zacátek roku 2008), ze tento projekt je uz nekolik let mrtev.

Pro mensí opravy, které nelze resit vlastním stylem lze vyuzít znalosti toho, jak BibTeX ve skutecnosti funguje. Program bibtex zpracovává zdrojový text a soubor s koncovkou .bib a generuje soubor s koncovkou .bbl. Obsah tohoto souboru se pak pri prekladu programem latex pouzije v míste pouzití príkazu \bibliography{}. Kdyz se podíváme na obsah souboru .bbl, zjistíme, ze jde vlastne o LaTeXový zdrojový soubor obsahující výcet citací vytvorený pomocí prostredí thebibliography. Nic nám tedy nebrání v tomto souboru udelat jakoukoli opravu.

Pokud je skutecne potreba udelat v seznamu pouzité literatury nejakou opravu, kterou nejde udelat standardními prostredky BibTeXu, muzete postupovat tímto zpusobem:

  1. Pouzijte bezným zpusobem bibtex a vybraný styl.
  2. Mezi soubory, které se vygenerovaly najdete soubor s koncovkou .bbl. Otevrete soubor .bbl v textovém editoru a rucne opravte problematické záznamy.
  3. Zapamatujte si, ze príste uz pri prekladu nesmíte volat program bibtex, aby nedoslo k prepsání upraveného souboru .bbl. Toto je dulezité si uvedomit zejména v prípadech, kdy celý dokument prekládáte pomocí skriptu (Makefile nebo konfiguracní soubor vaseho chytrého LaTeXového editoru).
  4. Prelozte dvakrát dokument pomocí príkazu latex nebo cslatex

Tento postup doporucuji provádet az pri generování finálního dokumentu, kdy uz jsou pouzity vsechny zamýslené citace, protoze kazdé dalsí zavolání programu bibtex prepíse rucne provedené úpravy v souboru .bbl.


Autor: David Martinek. Poslední modifikace: 24. February 2008. Pokud v tomto dokumentu narazíte na chybu, dejte mi prosím vedet.