Jak používat BibTeX

[  Co to umí  |  Jak se to používá  |  BibTeXová databáze  |  Tvorba vlastních stylů |  Co dělat, když BibTeX něco neumí  ]

Co to umí

V minulé kapitole jsem se zmínil, že ruční vytváření seznamu literatury v LaTeXu je zbytečně pracné a málo pružné. BibTeX je program, který umí množství práce udělat za nás. Výměnou bibtexových stylů můžeme měnit vzhled seznamu i množství informací, které v něm budou obsaženy. Není se tedy třeba 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, takže můžeme bez obav udržovat seznam všech referencí na literaturu, kterou jsme kdy přečetli, na jednom místě. Používání BibTeXu výrazně šetří práci.

Jak se to používá

Předpokladem je správně nainstalovaný program bibtex. Je součástí většiny distribucí LaTeXu, takže by neměl být problém s jeho zprovozněním. Dále je potřeba mít soubor s BibTeXovou databází ve stejném adresáři, jako zdrojový text LaTeXového dokumentu. Nazveme jej například citace.bib. BibTeXovou databázi je třeba vložit do LaTeXového zdrojáku pomocí příkazu bibliography přesně ve stejném místě, kde bychom jinak použili prostředí thebibliography.

\bibliographystyle{alpha}
\bibliography{citace}

Příkazem bibliographystyle se volí buďto jeden ze základních stylů formátování (alpha, plain, unsrt, abbrv, czechiso) nebo vlastní styly. Pro většinu případů bohatě postačí styly alpha a plain.

Stejně jako při zpracovávání ostatních referencí je potřeba překládat víceprůchodově. LaTeX v prvním průchodu vygeneruje požadavky na odkazy, ty se pak zpracují pomocí BibTeXu a výsledek je potřeba podruhé zkompilovat LaTeXem. Předpokládejme, že v aktuálním adresáři máme dva soubory pojmenované citace.tex a citace.bib, pak bude překlad 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 přečtených knihách, článcích, místech na internetu nebo jiných zdrojích. Až na výjimky se zde nezaznamenává způsob formátování jednotlivých položek, ale pouze čisté informace (jméno autora, název, rok vydání, atd.). O formátování se postará až BibTeX. Databáze obsahující stejné údaje, jako ukázka z minulé kapitoly, uložená jako soubor citace.bib, by mohla vypadat takto:

@BOOK{Češka1994,
  title = {Petriho {S}ítě},
  publisher = {Akademické nakladatelství CERM Brno},
  year = {1994},
  author = {Milan ČEŠKA},
  abstract = {Učebnice 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 dalšími rozšířeními. Končí
    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 navštíveno 31. 3. 2005},
  url = {http://www.fit.vutbr.cz/~peringer/SIMLIB/},
}

Všimněte si, že záznamy mohou obsahovat i informace, které se ve výsledném dokumentu nezobrazují. Nyní si vysvětlíme, co znamenají jednotlivé elementy:

@BOOK, @MISC
Slovo za zavináčem specifikuje typ záznamu. Kromě zmíněných typů existuje množství dalších, například @ARTICLE, @INPROCEEDINGS, @PHDTHESIS, a množství dalších. Typ záznamu ovlivňuje, jak bude záznam vysázen a které položky se budou brát v úvahu. Některé bibtexové styly mohou specifikovat vlastní typy.
Češka1994, simlib
Návěští, která by měla být jedinečná, a která se používají v příkazu \cite.
author, title, ...
Položky záznamu. Některé jsou povinné, některé ne. V záznamu se mohou vyskytovat i vaše vlastní položky, protože BibTeX si všímá pouze těch položek, které jsou specifikovány v použitém stylu.
Obsah položek
Jde o obyčejný text ve kterém lze používat příkazy LaTeXu. Uzavírá se buď do složených závorek nebo do dvojitých uvozovek. Položky musí být ukončeny čárkou. BibTeX standardně sází nadpisy tak, že nechává velké pouze první písmeno. Pokud je potřeba nechat některá písmena velká, je potřeba je uzavřít do dalších složených závorek. Standardní styly příliš nepočítají s webovými adresami. Já pro jejich sázení používám vlastní styl czechiso.bst.

Tyto databáze se dají vytvářet pomocí libovolného textového editoru. Vyžaduje to však znalost všech povinných položek jednotlivých typů záznamů. Jednodušším způsobem, jak vytvořit a spravovat BibTeXovou databázi je použít některý ze specializovaných editorů. Já jsem poslední dobou spokojeným uživatelem programu JabRef, který je napsaný v Javě, takže jej lze používat pod libovolným operační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 stylů

BibTeXové styly jsou uloženy v souborech s koncovkou .bst a najdete je v adresáři, kde je nainstalován LaTeX, resp. BibTeX (na unixech to bývá adresář /usr/share/texmf/bibtex/bst). Další možností je umístit soubor se stylem přímo do adresáře, se zdrojovými texty. V některých situacích vám nemusí standardní styly vyhovovat. V tom případě si můžete stáhnout styl z internetu (lze jich najít opravdu hodně) nebo si můžete vytvořit vlastní. Jde o textové soubory, takže lze použít některý ze standardních stylů a textovým editorem v něm provést úpravu. Pokud chcete vytvořit vlastní styl od nuly, lze jej vytvořit příkazem

latex makebst

Program se vás pak bude ptát na nejrůznější apekty nového stylu, na které budete odpovídat výběrem z nabídek. Pro jednoduché modifikace základních stylů to stačí. Mně například nevyhovovalo, že základní styly neumí zpracovávat položky s názvem isbn, tak jsem si tímto způsobem vytvořil vlastní styl, který to umí.

Co dělat, když BibTeX něco neumí

Někdy se stane, že ani pomocí vlastního stylu nevypadá výstup podle našich představ. Také se může stát, že je v BibTeXu chyba nebo můžeme narazit na skutečnost, že BibTeX neumí česky. Do potíží se můžeme dostat například v situacích, kdy jméno nebo příjmení autora začíná písmenem s diakritikou. Standardní BibTeX nezná pravidla pro české řazení a zdá se, že mu činí potíže rozeznat, co je jméno a co je příjmení, právě když tato slova začínají písmenem s diakritikou. Tyto problémy by měl zřejmě řešit program csbibtex, ale vypadá to (začátek roku 2008), že tento projekt je už několik let mrtev.

Pro menší opravy, které nelze řešit vlastním stylem lze využít znalosti toho, jak BibTeX ve skutečnosti funguje. Program bibtex zpracovává zdrojový text a soubor s koncovkou .bib a generuje soubor s koncovkou .bbl. Obsah tohoto souboru se pak při překladu programem latex použije v místě použití příkazu \bibliography{}. Když se podíváme na obsah souboru .bbl, zjistíme, že jde vlastně o LaTeXový zdrojový soubor obsahující výčet citací vytvořený pomocí prostředí thebibliography. Nic nám tedy nebrání v tomto souboru udělat jakoukoli opravu.

Pokud je skutečně potřeba udělat v seznamu použité literatury nějakou opravu, kterou nejde udělat standardními prostředky BibTeXu, můžete postupovat tímto způsobem:

  1. Použijte běžným způsobem bibtex a vybraný styl.
  2. Mezi soubory, které se vygenerovaly najděte soubor s koncovkou .bbl. Otevřete soubor .bbl v textovém editoru a ručně opravte problematické záznamy.
  3. Zapamatujte si, že příště už při překladu nesmíte volat program bibtex, aby nedošlo k přepsání upraveného souboru .bbl. Toto je důležité si uvědomit zejména v případech, kdy celý dokument překládáte pomocí skriptu (Makefile nebo konfigurační soubor vašeho chytrého LaTeXového editoru).
  4. Přeložte dvakrát dokument pomocí příkazu latex nebo cslatex

Tento postup doporučuji provádět až při generování finálního dokumentu, kdy už jsou použity všechny zamýšlené citace, protože každé další zavolání programu bibtex přepíše ručně 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 vědět.