# PB029: Sazba bibliografie

Seznam použité literatury (bibliografie) je nepostradatelnou a zásadní součástí vědecké publikace. Pro sazbu seznamu použité literatury můžeme v LaTeXu použít standardní prostředí `thebibliography`, anebo využít služeb externího programu typu BibTeX nebo biber.

Při použití externího programu typu BibTeX využijeme výhod oddělení obsahu od formátování. Informace o odkazovaných dílech jsou uloženy v samostatné bibliografické databázi a formátování probíhá nezávisle na ní dle stylového souboru až při překladu konkrétního dokumentu. Jednou vytvořenou databázi děl pak můžeme velmi snadno použít při tvorbě bibliografií ve více dokumentech. Je-li potřeba změnit vizuální podobu seznamu literatury, pak stačí jen změnit použitý formátovací styl.

## Pravidla tvorby bibliografie

Citování použitých zdrojů má svá pravidla a zvyklosti, které by autoři odborných textů měli znát a dodržovat. Na MU proto vznikla elektronická publikace Jak citovat: citační styly, která tyto zvyklosti shrnuje.

Vedle „zvykových“ citačních stylů existují i mezinárodní normy, které citování upravují. Jejich respektování může být v některých případech vyžadováno. V akademické sféře se můžete setkat například s normou ISO 690. Interpretace normy ČSN ISO 690:2011 můžete najít na stránkách Citace.com.

Pořizování a formátování citačních záznamů si můžete o něco usnadnit využitím správného nástroje. Např. český server Citace.com poskytuje praktický generátor citačních záznamů formátovaných dle ČSN ISO 690:2011, který vám v přehledném formuláři poradí, jak jednotlivé položky citačního záznamu vyplnit. (Po registraci je možné záznamy uchovávat přímo na serveru a exportovat je i v BibTeX formátu.) Záznamy v různých formátech (včetně BibTeXu) poskytuje také Google Scholar (pozor, možnost exportu je třeba zapnout v dolní části stránky s nastavením služby), discovery služba informačních zdrojů MU, repositář vědeckých prací IS MU, citační manager Mendeley, správce referencí JabRef atd.

## Postup při vytváření bibliografie

### Čistý LaTeX

Přímo ve formátu LaTeX je vestavěná minimalistická podpora pro tvorbu bibliografií – prostředí `thebibliography` a makra pro sazbu odkazů do tohoto seznamu.

Použití demonstruje jednoduchý ukázkový dokument (dostupný také na službě Overleaf). Povšimněte si odkazů `\cite{návěští}` v textu a danému návěští odpovídajícímu záznamu v prostředí `thebibliography` na konci zdrojového textu.

Samotný překlad dokumentu se seznamem literatury je třeba provést dvojitým překladem dokumentu kompilátorem TeXu: `pdflatex bez-bibtexu.tex
pdflatex bez-bibtexu.tex` Po prvním překladu dokumentu jsou do souboru `bez-bibtexu.aux` poznamenány údaje nutné pro sazbu bibliografie, a zejména sazbu křížových odkazů v textu. Tyto údaje jsou pak využity při druhém překladu pro vytvoření konečné podoby dokumentu.

### BibTeX

Při sazbě bibliografie můžeme využít služeb externího programu pro seřazení a vytvoření formátovaného LaTeXového prostředí s bibliografií. Klasickým nástrojem vytvořeným k tomuto účelu je BibTeX.

Zásadní výhodou je, že BibTeX ctí princip oddělení vzhledu od obsahu. V případě použití BibTeXu tedy krom samotného zdrojového textu budete potřebovat:

1. Seznam literatury v BibTeX formátu (obsah),
2. BibTeX formátovací styl (definici vzhledu).

BibTeX formátovací styly jsou standardní součástí TeXových distribucí a vzhledem ke složitosti jazyka používaného pro jejich definici si pravděpodobně nebudete chtít tvořit vlastní. Pro české normy ČSN ISO 690:1996 a ČSN ISO 690-2:2000 (předchůdce verzí ČSN ISO 690:2011 a ISO 690:2021) existuje neoficiální a neúplný formátovací styl `czechiso`, který můžete při přípravě dokumentů v češtině využít.

Samotné záznamy ve své bibliografické databázi budete pravděpodobně pořizovat ručně, případně využijete BibTeX exportu nějakého externího zdroje.

Po prvním překladu dokumentu následuje spuštění externího programu – zde BibTeXu – který zformátuje data a vytvoří externí soubor s LaTeXovým zdrojovým textem, který je načten z hlavního zdrojového textu při druhém a třetím překladu dokumentu TeXem.

Postup si můžete prakticky vyzkoušet na komentovaném ukázkovém dokumentu (dostupném také na službě Overleaf) a bibliografické databázi v BibTeX formátu: `pdflatex s-bibtexem.tex
bibtex s-bibtexem.aux
pdflatex s-bibtexem.tex
pdflatex s-bibtexem.tex`

Pokud namísto stylu `unsrt` použijete např. styl `plain`, který bibliografické záznamy třídí abecedně podle jména autora a následně podle roku vydání, můžete narazit na problém s nesprávným seřazením záznamů obsahujících znaky mimo anglickou abecedu. Možným řešením je použít program `bibtex8` a definice `latin2cs.csf`, které umožňují české řazení u bibliografických databází v osmibitovém kódování ISO-8859-2: `pdflatex s-bibtexem.tex
bibtex8 --csfile latin2cs.csf s-bibtexem.aux
pdflatex s-bibtexem.tex
pdflatex s-bibtexem.tex`

Povšimněte si, že:

- Překlad celého dokumentu vyžaduje celkem tři překlady TeXem.
  - První průchod zajistí export informací o citovaných dokumentech do souboru `s-bibtexem.aux`.
  - Dále BibTeX na základě těchto informací vygeneruje soubor `s-bibtexem.bbl`, který obsahuje naformátovaný seznam literatury v LaTeX značkování.
  - Obsah `s-bibtexem.bbl` je načten při dalším překladu, kdy jsou do `s-bibtexem.aux` zapsány informace nutné pro řešení odkazů na citované dokumenty z textu. O tom, že při tomto překladu TeX ještě neměl k dispozici všechny potřebné informace, jste informováni v logu překladu: `LaTeX Warning: There were undefined references.
    LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.`
  - Údaje z `s-bibtexem.aux` jsou využity při posledním překladu k vytvoření konečné podoby dokumentu.
- V seznamu literatury ve výsledném dokumentu jsou jen dokumenty explicitně citované v textu dokumentu příkazy `\cite{…}`. Toto chování je úmyslné a umožňuje vám budovat si jedinou velkou databázi citovaných děl, kterou můžete kdykoliv připojit k libovolnému dokumentu a odkázat z něj jen díla, která jste právě v této práci užili. Pokud však přece jen chcete do seznamu literatury vložit i zdroje, které jste přímo z textu neodkazovali, stačí do dokumentu přidat příkaz `\nocite{návěští}` (případně `\nocite{*}` pro přidání kompletního obsahu BIB databáze).
- Příkaz `bibtex` je volán na AUX souboru, který obsahuje mimo jiné i odkaz na BIB soubor s bibliografickou databází. Těch může být v jednom dokumentu odkazováno i více (např. vaše soukromá globální databáze + databáze se záznamy specifickými pro daný dokument).

Více informací naleznete například v dokumentaci služby Overleaf.

### BibLaTeX

Výrazně modernější a flexibilnější alternativou k BibTeXu je LaTeXový balíček BibLaTeX.

Pro formátování seznamu literatury používá BibLaTeX výhradně prostředků LaTeXu, což je oproti obskurnímu jazyku BibTeX stylů značná výhoda. BibLaTeX navíc pro řazení a textové transformace jednotlivých položek nepoužívá sedmibitový BibTeX (i když i to je v režimu zpětné kompatibility možné), ale v Perlu napsaný nástroj Biber, který zajišťuje bezproblémovou podporu práce s Unicode.

Pro mezinárodní citační normu ISO 690:2010 a její českou mutaci ČSN ISO 690:2011 existuje formátovací styl `biblatex-iso690` popsaný v bakalářské práci Dávida Luptáka, který můžete při přípravě dokumentů v češtině využít.

Překlad dokumentu při použití BibLaTeXu je obdobný jako při použití BibTeXu. Místo příkazu `bibtex` však voláme `biber`, a navíc je třeba drobně upravit značkování v TeXovém dokumentu, zejména hlavičku: Zobrazte si změny v ukázkovém dokumentu. (dostupném také na službě Overleaf). Na rozdíl od BibTeXu nám při použití `biber`u stačí dva překlady TeXem: `pdflatex s-biblatexem.tex
biber s-biblatexem.bcf
pdflatex s-biblatexem.tex
` Vše potřebné se dozvíte v podrobné dokumentaci balíčku `biblatex`.

Dalším silným argumentem pro použití BibLaTeXu místo BibTeXu je podpora rozšířeného formátu bibliografických databází (původní BibTeX např. nepodporoval dnes elementární pole `url` pro evidenci webových odkazů). Navíc je tento formát přesně a podrobně dokumentován, což značně usnadňuje tvorbu BIB souborů korektních nejen syntakticky, ale i sémanticky.

Více informací naleznete například v dokumentaci služby Overleaf.

## Praktické úkoly k procvičení

- Přidejte Bib(La)TeXem tvořený stručný seznam použité literatury do svého prvního zápočtového dokumentu. Bibliografickou databázi si sestavte sami, nevyužívejte ukázkovou bibliografickou databázi.
  - Pokud používáte pro automatizaci Makefile, pak jej vhodně rozšiřte pro jeho překlad.