# 3. Format pliku bib

Spis treści rozdziału

Plik bib zawiera listę rekordów oraz poleceń dodatkowych takich jak skróty lub definicja nagłówka , który ma się pojawić w pliku `.bbl`. Istnieją różne typy rekordów -- odpowiednie dla opisania różnych typów publikacji. Każdy z rekordów reprezentuje jedną pozycję literatury i składa się z wielu pól. Różne typu rekordów mogą zawierać różne pola. Dla każdego typu rekordu istnieją trzy zbiory pól:

- pola wymagane (required) -- takie, które muszą wystąpić. Ich brak będzie sygnalizowany przez program i może spowodować niewłaściwe sformatowanie pozycji.
- pola opcjonalne (optional) -- takie, które mogą wystąpić, ale nie muszą. Jeśli się pojawią to informacja w nich zawarta zostanie wykorzystana. Ich brak nie spowoduje błędów formatowania.
- pola ignorowane (ignored) -- wszystkie pola, które nie są wymagane ani opcjonalne są przez bibtexa ignorowane. Pola takie można tworzyć bez ograniczeń. Pole ignorowane można np. wykorzystać do przechowywania streszczeń bądź słów kluczowych publikacji. W razie potrzeby można napisać styl drukujący np. tytuły artykułów razem ze streszceniami i/lub słowami kluczowymi.
  Uwaga -- Błąd literowy może spowodować zignorowanie pola, które powinno się pojawić w spisie. Jeśli będzie to pole wymagane, to bibtex wypisze ostrzeżenie, ale jeśli opcjonalne -- to pominie je bez żadnego sygnału.

Format zapisu rekordów najlepiej zaprezentować na przykladzie:

            @book{PERL,
              author =       "Larry Wall and Randal L. Schwartz",
              title =        "Programming perl",
              publisher =    "O'Reilly \& Associates, Inc.",
              year =         "1992",
              address =      "Sebastopol, CA"
            }

Słowo zaczynające się od znaku `@` określa typ cytowanej pozycji -- w naszym przypadku jest to książka. `PERL` jest kluczem służącym do identyfikacji -- to właśnie jego używamy w poleceniu `\cite` chcąc odwołać się do wybranej pozycji. Dalej następuje lista pól rozdzielonych przecinkami. Wartości pól zamknięte są w cudzysłowach. Zamiast nich można używać nawiasów klamrowych. Także nawiasy klamrowe obejmujące cały rekord można zastąpić nawiasami okrągłymi. Spacje wokół znaku `=` są opcjonalne. Znaki nowego wiersza są traktowane jak spacje, a więcej niż jedna spacja tak samo jak pojedyncza. W identyfikatorach pól i typów rekordów nie są rozróżniane małe i duże litery. Można więc sformatować nasz rekord w równoważnej postaci:

            @Book(PERL,
            AUTHOR={Larry Wall and Randal L. Schwartz},
            Title={Programming perl},

            PUBlisHER={O'Reilly \& Associates, Inc.},yEaR={1992},
            aDDRESS={Sebastopol, CA})

Ponieważ bibtex w niektórych stylach zmienia czasem duże litery na małe, a nie zawsze jest to dopuszczczalne (np. gdy w tytule występuje nazwisko), wzięcie fragmentu tekstu w nawiasy klamrowe {} zapobiega takiemu działaniu. Na przykła aby nie dostać tytułu ,,Pan tadeusz'' powinniśmy zapisać go jako `title = "Pan {T}adeusz"`.

## 3.1 Skróty i nagłówek

Tekst pola może być zastąpiony skrótem. Warto stosować skróty dla często używanych nazw np. tytułu czasopisma, z którego artykuły pojawiają się w bazie danych często albo nazwy znanego wydanictwa.

Skrótem może być dowolny ciąg znaków zaczynający się od litery i nie zawierający znaków:

            " # % ' ( ) , = { }

Niektóre skróty zdefiniowane są w stylu spisu literatury np. trzyliterowe skróty angielskich nazw miesięcy `jan`, `feb` itd.

Własne skróty można tworzyć posługując się poleceniem `@string` np.:

            @string{acs = "Archives of Control Sciences"}
            @string{WNT = "Wydawnictwa Naukowo Techniczne"}

Zdefiniowanych powyżej skrótów możemy używać np. tak:

            journal = acs
            publisher = WNT

co jest równoważne z:

            journal = "Archives of Control Sciences"
            publisher = "Wydawnictwa Naukowo Techniczne"

Nagłówek definiujemy podobnie jak skróty, nie wpisujemy tutaj jednak nazwy, ani znaku równości -- tylko ciąg znaków w cudzysłowach. Nagłówek może służyć do dodania pewnych definicji na początku bibliografii.

            @Preamble{ "\newcommand{\swap}[2]{#2#1}"
                     # "\renewcommand{\em}{\bf}" }

W powyższym przykładzie definiujemy polecenie `\swap` i predefiniowujemy polecenie `\em`. Warto zwrócić uwagę, na znak konkatenacji `#`, dzięki któremu możemy definiować nagłówki wieloliniowe. Pelcenia `@preamble` można używać wielokrotnie, ale bezpieczniej jest używać konkatenacji, do wpisywania nagłówków wieloliniowych.

## 3.2 Rekordy

Standardowo dostępne są następujące typy rekordów:
article , book , booklet , conference , inbook , incollection , inproceedings , manual , mastersthesis , misc , phdthesis , proceedings , techreport , unpublished .

## 3.3 Pola

Standardowe typy rekordów są następujące:
address , annote , author , booktitle , chapter , crossref , edition , editor , howpublished , institution , journal , key , month , note , number , organization , pages , publisher , school , series , title , type , volume , year .

Następny rozdział, Poprzedni rozdział

Spis treści rozdziału, Główny spis treści

Początek dokumentu, Początek rozdziału