Bibliografie CSTUG

Vyhledávání podle slov v CS-FAQ

Hledaný řetězec:


BibTeX nerozumí mému seznamu jmen

BibTeX má striktně vymezenou syntax pro psaní jmen autorů (nebo vydavatelů) v BibTeXovém souboru; pokud tento seznam píšete ve zdánlivě přirozeném tvaru, pak je zde možnost, že tím BibTeX zmatete a výsledek bude dost odlišný od toho, co jste očekávali. Jména se zadávají v jednom z následujících tvarů:

  Jméno Příjmení
  Příjmení, Jméno
  Příjmení, Suffix, Jméno
a seznam autorů může být oddělen slovem „and“. Např. výraz
  AUTHOR={Fred Q. Bloggs, John P. Doe & Fairbairns} 
porušuje hned dvě pravidla: syntakticky významná čárka se vyskytuje na nesprávném místě a výraz „&“ zde nezastává funkci oddělovače jmen, jak by se mohlo zdát. Výstup výše uvedeného by mohl vypadat takto „John P. Doe & Robin Fairbairns Fred Q. Bloggs“, protože „John P. Doe & Robin Fairbairns“ se stává křestním jménem, zatímco „Fred Q. Bloggs“ je příjmením. Tento příklad by měl být syntakticky zapsán takto:
  AUTHOR = {Fred Q. Bloggs and John P. Doe and Fairbairns}
Některé bibliografické styly s dlouhým seznamem autorů dokáží dělat divy. Násilně můžete seznam zkrátit tím, že použijete pseudojméno „others“. Chce-li pan Bloggs ve výpisu autorů potlačit jména svých kolegů, stačí, aby do BibTeXového souboru napsal:
  AUTHOR = {Fred Q. Bloggs and others}


Lze zpracovat bibliografii pro každou kapitolu zvlášť

Bibliografie pro každou kapitolu zvlášť může být zpracována pomocí balíku chapterbib. Vhodnější je napsat tuto bibliografii do zvláštního externího souboru než přímo do zdrojového souboru k jednotlivým kapitolám dokumentu. Balíček bibunits, sváže bibliografii podle logických částí dokumentu. Tento balík pracuje se sekcemi a kapitolami (jak je definujete v LaTeXu) a také umožňuje definovat zvláštní prostředí, kde si uživatel může zvolit svoji vlastní strukturu dokumentu. Výše zmiňované balíky naleznete na těchto místech:
chapterbib: CTANcite
bibunits: CTANbibunits


Viacnásobné bibliografie

Ak máte na mysli mnohonásobné bibliografie previazané s rôznymi časťami vašeho dokumentu (napríklad s rôznymi kapitolami), pozrite si odpoveď na Otázku Lze zpracovat bibliografii pro každou kapitolu zvlášť.

Pre viac než jednu bibliografiu sú tri možnosti.

Balík multibbl poskytuje veľmi jednoduché rozhranie: použijete príkaz \newbibliography na definíciu „tagu“ (značky) bibliografie. Balík znovu definuje iné príkazy bibliografie tak, aby ste pri každom použití ľubovolného z nich príkazu zadali značku bibliografie, kde chcete, aby sa citácie objavili. Príkaz \bibliography tiež akceptuje ďalší extra parameter, ktorý určuje, aký nadpis použiť pre výslednú sekciu či kapitolu (t.j. upravuje viď Otázku Změna slov používaných LaTeXem spôsobom bezpečným pre babel). Takže môžete napísať:

\usepackage{multibbl}
\newbibliography{bk}
\bibliographystyle{bk}{alpha}
\newbibliography{art}
\bibliographystyle{art}{plain}
...
\cite[pp.~23--25]{bk}{milne:pooh-corner}
...
\cite{art}{einstein:1905}
...
\bibliography{bk}{book-bib}%
             {References to books}
\bibliography{art}{art-bib}%
             {References to articles}

(Všimnite si, že voliteľný parameter príkazu \cite je umietnený pred parametrom novej značky a príkaz \bibliography môže obsahovať viac než jeden .bib súbor — skutočne všetky príkazy \bibliography môžu obsahovať rovnaký zoznam súborov.)

Parametry príkazu \bibliography smerujú do súborov s menami <názov-značky>.aux, takže budete musieť po prvom spustení LaTeXu spustiť

bibtex bk
bibtex art

aby ste dostali citácie na správne miesto.

Balík multibib dovoľuje definovať sériu „dodatočných tém“, z ktorých každá má vlastnú sériu bibliografických príkazov. Môžete teda napísať:

\usepackage{multibib}
\newcites{bk,art}%
         {Odvolávky na knihy,%
          Odvolávky na články}
\bibliographystylebk{alpha}
\bibliographystyleart{plain}
...
\citebk[pp.~23--25]{milne:pooh-corner}
...
\citeart{einstein:1905}
...
\bibliographybk{book-bib}
\bibliographyart{art-bib}

Znova platí, že každý príkaz \bibliography... môže obsahovať ľubovolný zoznam .bib súborov.

BibTeXovské spracovanie s multibib je veľmi podobné spracovaniu s multibbl. S predchádzajúcim príkladom potrebujete:

bibtex bk
bibtex art

Všimnite si, že (na rozdiel od multibbl) multibib dovoľuje jednoduchú, nemodifikovanú bibliografiu (ako aj „témy“).

Balík bibtopic umnožňuje oddelene citovať rozličné bibliografie. Na vhodné miesto dokumentu vložte sekvenciu prostredí btSect (z ktorých každé udáva databázu bibliografie, ktorá sa má preskúmať) pre sadzbu oddelených bibliografií. Môžete teda mať súbor diss.tex obsahujúci:

\usepackage{bibtopic}
\bibliographystyle{alpha}
...
\cite[pp.~23--25]{milne:pooh-corner}
...
\cite{einstein:1905}
...
\begin{btSect}{book-bib}
\section{Odvolávky na~knihy}
\btPrintCited
\end{btSect}
\begin{btSect}[plain]{art-bib}
\section{Odvolávky na~články}
\btPrintCited
\end{btSect}

Všimnite si rozličný spôsob špecifikovania štýlu bibliografie: ak chcete iný štýl pre konkrétnu bibliografiu, môžete ho zadať ako voliteľný parameter prostredia btSect.

Spracovanie BibTeXom v tomto prípade používa .aux súbory, ktorých názvy sú odvodené z názvu základného dokumentu. Takže v tomto príklade potrebujete:

bibtex diss1
bibtex diss2

Existuje aj príkaz \btPrintNotCited, ktorý poskytuje zbytok obsahu databázy (ak nebolo z databázy nič citované, je tento príkaz ekvivalentný LaTeXovskému štandardnému \nocite{*}).

Skutočný rozdiel oproti multibblmltibib je, že výber toho, čo sa objavuje v každej sekcii bibliografie, je určené v bibtopic tým, čo je v .bib súboroch.
bibtopic.sty: CTANbibtopic
multibbl.sty: CTANmultibbl
multibib.sty: CTANmultibib


Výpis položek bibliografie do textu

Toto je základní požadavek pro časopisy či jiné publikace. Občas je třeba, aby se daná položka objevila v běžném textu dokumentu, ačkoliv ostatní styly požadují, aby se položky objevily jako poznámky pod čarou. Možnosti pro výstup položek v běžném textu jsou tyto:

  • Balíček bibentry (CTANnatbib), který vyžaduje nepatrné omezení na formát položek generovaných vaším souborem .bst, ale nepožaduje žádný bibliografický styl.
  • Balíček inlinebib (CTANinlinebib) požaduje, abyste používali soubor inlinebib.bst.
  • Balíček jurabib (CTANjurabib), který byl původně používán k sazbě německých právních dokumentů umožňující snadnou manipulaci s citacemi.
Pro výpis položek v podobě poznámek pod čarou složí dva balíčky:


Triedenie a kompresia citácií

Ak dáte LaTeXu \cite{fred,joe,harry,min}, jeho štandardné príkazy vám môžu dať niečo ako „[2,6,4,3]“ (vyzerá to hrozne). Samozrejme, môžete dať veci do poriadku preusporiadaním kľúčov v príkaze \cite. Komu sa ale chce robiť niečo podobné iba pre výsledok „[2,3,4,6]“?

Balík cite usporiada čísla a deteguje postupnosti po sebe idúcich čísel, čím vytvorí „[2–4,6]“. Balík natbib s voľbami numberssort&compress spraví to isté, ak bude pracovať so svojimi vlastnými numerickými štýlmi bibliografie (plainnat.bst and unsrtnat.bst).

Ak potrebujete spraviť hyperreferencie na vaše citácie, balík cite nie je vhodný. Ak pridáte balík hypernat:

  \usepackage[...]{hyperref}
  \usepackage[numbers,sort&compress]{natbib}
  \usepackage{hypernat}
  ...
  \bibliographystyle{plainnat}
balíky natbibhyperref budú spolupracovať.
cite.sty: CTANcite
hypernat.sty: CTANhypernat
hyperref.sty: CTANhyperref
plainnat.bst: distribuované v CTANnatbib
unsrtnat.bst: distribuované v CTANnatbib


Viacnásobné citácie

Konvencia občas používaná vo fyzikálnych žurnáloch je spojenie skupiny príbuzných citácií do jedného záznamu v bibliografii. BibTeXu štandardne toto opatrenie nestačí, ale balík mcite sa s problémom vysporiada.

Balík preťažuje (nahradzuje) príkaz \cite, aby rozpoznal „*“ na začiatku kľúča, takže citácie tvaru:

\cite{paper1,*paper2}

sa v dokumente vyskytujú ako jediná citácia a sú príslušne zoradené v bibliografii samotnej. Nie ste limitovaní spojením iba dvoch referencií. Spojené referencie môžete miešať s „normálnymi“:

\cite{paper0,paper1,*paper2,paper3}

Tieto sa v dokumente objavia ako tri citácie „[4,7,11]“ (povedzme) — citácia „4“ bude odkazovať na paper 0, „7“ na kombinovaný záznam pre paper 1 a paper 2, a „11“ na paper 3.

Budete musieť spraviť malú zmenu súboru bibliografického štýlu (.bst), ktorý používate. Dokumentácia balíku mcite vám poradí, ako to spraviť.
mcite.sty: CTANmcite


Triedenie zoznamov citácií

BibTeX má triediacu funkciu a väčšina BibTeXovských štýlov triedi zoznam citácií, ktorý produkuje; množstvo ľudí toto považuje za vhodné správanie.

je však možné napísať prostredie thebibliography, ktoré vyzerá, ako by pochádzalo z BibTeXu. Veľa ľudí to aj robí (aby v krátkodobom hľadisku ušetrili čas).

Problém sa objaví, keď sa autori thebibliography rozhodnú, že ich citácie potrebujú zotriediť. Bežným nedorozumením je vloženie \bibliographystyle{alpha} (alebo niečoho podobného) a očakávanie nejakým magickým spôsobom zotriedeného vysádzaného výstupu. BibTeX takto nefunguje! — ak napíšete thebibliography, jeho obsah musíte zotriediť vy. BibTeX zotriedi obsah prostredia thebibliography, iba keď ho vytvára (na vloženie z .bbl súboru príkazom \bibliography).


Výpis všetkých vašich BibTeXovkých záznamov

LaTeX a BibTeX spolupracujú, aby poskytli tejto požiadavke špeciálne zaobchádzanie. Príkaz \nocite{*} je ošetrený špeciálne a spôsobuje, že BibTeX generuje záznamy bibliografie pre každý záznam vo všetkýchh .bib súboroch uvedených vo vašom \bibliography výraze, takže po postupnosti LaTeX–BibTeX–LaTeX máte dokument s úplným výpisom.

Všimnite si, že LaTeX neprodukuje varovania „Citation ... undefined“ alebo „There were undefined references“ rešpektujúc \nocite{*}. Toto nepredstavuje problém, ak používate LaTeX „ručne“ (presne viete koľkokrát máte veci spustiť), môžu to ale spliesť automatické procesory prechádzajúce log súbor, aby zistili, či je potrebné ďalšie spustenie.


Vytváranie HTML bibliografie

Elegantné riešenie je poskytované bibliografickým štýlom noTeX. Tento štýl produkuje .bbl súbor, ktorý je v skutočnosti postupnosťou HTML „P“ elementov triedy noTeX, a preto môže byť vložený do HTML súboru. Pripravené sú opatrenia pre prispôsobenie vašej bibliografie (pri spracovaní prostredníctvom noTeX môže byť obsah rozdielny od obsahu spracovaného tradičným spôsobom).

Bežnejším prekladačom je awk skript bbl2html, ktorý prekladá vami vygenerovaný .bbl súbor: príklad výstupu skriptu si môžete pozrieť na webe (http://rikblok.cjb.net/lib/refs.html)
bbl2html.awk: CTANbbl2html
noTeX.bst: CTANnoTeX


Vytváření BibTeXových stylů

Opravdu si můžete vytvořit svůj vlastní styl: standardní bibliografické styly jsou distribuované v komentované podobě s popisem jazyka (viz Otázku Dokumentace k BibTeXu). Nicméně, musíme připustit, že jazyk, v němž se BibTeXové styly vytvářejí, je jaksi neprůhledný. Proto ho nemůžeme doporučit nikomu, kdo není dobrý programátor, byť i menší změny v existujícím stylu se mohou ve výsledku projevit nepříznivě. Pokud váš styl není „přehnaně moderní“, můžete ho pravděpodobně generovat pomocí některého z balíků pro vlastní bibliografii. Ten zahrnuje soubor makebst.tex (distribuovaný v CTANcustom-bib), který vás vede textovým menu k vytvoření souboru s instrukcemi, pomocí nichž můžete vytvořit vlastní .bst soubor. Tato technika však nepojednává o vytvoření nového stylu dokumentu (současný autor potřeboval pro svou dizertaci „standard committee papers“ a „ISO standards“, jiný často požadovaný typ je webovská stránka — viz Otázku Citování URL v BibTeXu).


Citování URL v BibTeXu

Neexistuje žádný vzor, jak sázet URL ve standardním BibTeXovém stylu, nicméně Oren Patashnik (autor BibTeXu) předpokládá vývoj dlouho očekávaného BibTeXu verze 1.0.

Aktuální informace, které musí být dostupné v citaci URL jsou rozebírány v některých on-line dostupných výtazích normy ISO 690-2 dostupných na adrese http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm; níže uvedené techniky však neuspokojí všechny požadavky normy ISO 690-2, alepsoň však nabízejí řešení dnešním běžným uživatelům. Do příchodu nové verze je nejjednodušším řešením použití pole \howpublished funkce standardního stylu @misc. Samozřejmně platí omezení sázení URL, takže položka pak bude vypadat takto:

   @misc{...,
     ...,
     \howpublished = "\url{http://...}"
   }

Alternativním přístupem je použití BibTeXovských stylů jiných než standardních, které mají vstupní typy URL. Vynikající jsou styly natbib (plainnat, unsrtnatabbrevnat). Tyto styly jsou rozšířením standardních stylů, pro použití převážně s natbib, ale osvojily si URL a jiné moderní položky. custom-bib stejného autora také umí generovat styly, které respektují položky URL.

Jiným kandidátem je balík harvard. Jaho styly bibliografie obsahují ve své specifikaci pole „url“. Poskytnutá sazba je však tak trochu slabá (ikdyž rozpozná použití maker LaTeX2HTML na použití odkazů, když jsou makra dostupná).

Můžete také získat nové BibTeXovské styly užitím systému urlbst Normana Graye, který je založen na perlovských skriptech editujících existující BibTeXovské styly vytvářejíc nové. Nové styly mají vstupní typ webpage a poskytují podporu pro pole urllastchecked. Skripty perlu jsou dodávány se sadou konvertovaných verzí standardních bibliografických stylů. Dokumentace je ve formě LaTeXovského zdrojového kódu.

Další možností je, že zdroj, z něhož jsme citovali (např. tecnická zpráva), je také dostupný přes Web. V takovém případě se běžně používá tato technika:

   @techreport{...,
     ...,
     note = "Také dostupný na \url{http://...}"
   }
V tomto kontextu je také vhodné použít makro \url nebo \hyperref ze stejnomených balíků, protože ignoruje mezery v argumentech. BibTeX obvykle rozděluje řádky, které považuje za příliš dlouhé, a pokud v něm nejsou žádná bílá místa pro přirozené rozdělení, pak BibTeX vkládá znak komentáře („%“), který je v URL přijatelný tak, že ho \url vysází. Způsob, jak tento problém obejít, spočívá ve vložení pomocných mezer v URL do souboru .bib, aby si BibTeX rozumně vybral místo, kde řádek zalomí. Uvažte, že verze \url přicházející s posledními verzemi hyperref, netrpí problémem `%-end of line': hyperref problém zjistí a potlačí nechtěné znaky.
CTANurl
CTANhyperref


CSTUG
(c) 1997, 1998, 2003 Tomáš Hudec, Libor Škarvada
Poslední aktualizace: 26.07.2006 19:37