LaTeX/Wersja do druku

Z Wikibooks, biblioteki wolnych podręczników.
Przejdź do nawigacji Przejdź do wyszukiwania



MonteChristof, Piotr, Klapi
LATEX




Róg strony.svg
 
 


Spis treści

  1. Wprowadzenie
  2. Zaczynamy
  3. Struktura dokumentu
  4. Tworzenie dokumentu
  5. Zarządzanie bibliografią
  6. Tabele
  7. Dodawanie grafiki
  8. Matematyka
  9. Chemia
  10. Oprogramowanie
  11. Zewnętrzne linki
  12. Autorzy


Wprowadzenie

LaTeX (wymowa: "Latech", "Lay-tech"; [ˈlɑtɛx], [ˈleɪtɛx]) to zestaw makr zaprojektowany przez Leslie Lamporta stanowiących nadbudowę nad systemem składu tekstu TeX, będącym kompletnym językiem programowania zaimplementowanym przez Donalda Knutha. Jego celem jest umożliwienie stworzenia profesjonalnie wyglądających oraz poprawnie złożonych dokumentów, szczególnie naukowych – zawierających matematyczne wzory – oraz dokumentów działających automatycznie (szablonowo).

LaTeX znacznie różni się od programów typu WYSIWYG (ang. What You See Is What You Get – widzisz to, co dostajesz, m.in. OpenOffice.org Writer lub Microsoft Word) i jego użycie przypomina bardziej programowanie. Do podstawowych trudności dla nowych użytkowników LaTeX-a należą:

  • składanie dokumentów może sprawiać trudności i zabierać czas niedoświadczonym użytkownikom
  • nie widać bezpośrednio efektu zmian
  • musisz poznać niezbędne polecenia w LaTeX-u
  • czasami ciężko uzyskać pożądane efekty.

Z drugiej strony taki język znaczników posiada także zalety:

  • dokument wygląda profesjonalnie, m.in. warstwy, fonty, tabele tworzą spójną całość
  • zachęca do tworzenia poprawnych pod względem struktury dokumentów
  • profesjonalnie złożone dokumenty charakteryzuje mała objętość w porównaniu do zawartości
  • w łatwy sposób można tworzyć matematyczne wzory
  • pozwala na zaawansowaną automatyzację składania dokumentów
  • indeksy, odwołania i bibliografie mogą być automatycznie formatowane
  • obsługuje praktycznie każdy komputer i system operacyjny identycznie składając dokumenty na każdym
  • dokument źródłowy jest plikiem tekstowym, zatem jego wersjonowanie jest możliwe (porównywanie wersji, przypisywanie autora do konkretnej treści/zmian).

Dokument LaTeX-a jest normalnym plikiem tekstowym, który przechowuje tekst z dodatkowymi znacznikami. Kiedy plik źródłowy zostanie przetworzony LaTeX-em otrzymamy plik DVI (ang. device-independent), który potem może zostać przekonwertowany do finalnego formatu np. PDF lub PostScript, które można łatwo wydrukować. Jest również możliwe bezpośrednie utworzenie pliku w formacie PDF.


Zaczynamy

Pierwszy dokument LaTeXa

Najpierw musimy sobie uświadomić, że LaTeX jest językiem znaczników, dzięki któremu możemy opisywać strukturę i wygląd dokumentu. LaTeX konwertuje tekst źródłowy, pomieszany ze znacznikami, do dokumentu wysokiej jakości. Analogią do tego są strony internetowe: języki: kiedyś HTML, obecnie XHTML są używane do opisywania dokumentów, natomiast przeglądarka pokazuje go w "pełnej chwale" (full glory) - z różnymi kolorami, czcionkami, wielkościami itp.

Stwórzmy teraz nasz pierwszy, najprostszy jaki może być dokument, które będzie przechowywał napis "Hello World!". W tym celu:

  1. Otwórz swój ulubiony edytor tekstu. Jeśli używasz vima, gedit lub emacsa, kod LaTeX będzie odpowiednio podświetlany, co ułatwia jego edycję.
  2. Wpisz poniższy tekst do swojego edytora. Jest to źródło LaTeX.
% hello.tex - Nasz pierwszy przykład!
\documentclass{article}
\begin{document}
Hello World!
\end{document}

Następnie zapisz ten plik jako hello.tex.

Co przez to osiągnęliśmy?

% hello.tex – Nasz pierwszy przykład! Linia ta jest komentarzem, ponieważ rozpoczyna się od symbolu procenta (%). Kiedy LaTeX zobaczy ten znak, po prostu ignoruje całą dalszą zawartość linii. Komentarze są przydatne dla ludzi współpracujących przy składaniu dokumentu, aby wstawiać adnotacje dotyczące pewnej części do pliku źródłowego. Na przykład możemy dodać informacje o autorze i dacie lub cokolwiek innego, co sobie zażyczysz.
\documentclass{article} Tym poleceniem, nakazujemy LaTeX-owi używać danej klasy dokumentu – w tym przypadku artykułu (ang. article). Klasa ta ma zdefiniowany konkretny rodzaj formatowań obowiązujący dla całego dokumentu. Używanie klas jest o tyle poręczne, że zmiana klasy pomaga w niemal natychmiastowym zmienieniu wyglądu całego dokumentu, bez konieczności dalszej ingerencji w resztę kodu.
\begin{document} Ta linia informuje LaTeX o właściwym początku dokumentu, a wszystko co znajduje się powyżej niej traktowane będzie jako preambuła.
Hello World! Ten tekst jest naszym powitaniem, które zostanie wyświetlone w dokumencie.
\end{document} Tą linią informujemy LaTeX, że nasz dokument został zakończony. Dalszy kod jest ignorowany, więc może być stosowany podobnie jak komentarz.

A czy nie można po polsku?

Dobrze, ale przecież jesteśmy Polakami więc dlaczego mamy pisać w obcym języku? TeX faktycznie w domyśle używa angielskiego języka nie tylko w komendach, ale i kodowania alfabetu łacińskiego jako domyślnego – stąd też zwykłe wpisanie polskiego tekstu, pomimo użycia polskich znaków w źródle, po kompilacji i tak nie zostanie uwzględnione w dokumencie wyjściowym. Jednym słowem dokument wyjściowy nadal nie będzie ich zawierał. Mamy dwie drogi by uzyskać rodzime "ogonki" – albo "łopatologicznie" i każdorazowo odpowiednimi komendami zmusić LaTeX do ich użycia, np. znaki specjalne typu \`a \`e \'e \`i \`o \`u dzięki czemu można otrzymać przykładowo: à è é ì ò ù, albo znacznie prościej – dla całego dokumentu używając odpowiednich zestawów pakietów zwanych czasem "paczkami" (ang. package).

Postępując jak wcześniej stwórzmy więc pierwsze polskie wpisy:

% witaj.tex – Nasz pierwszy polski przykład! Nowy plik nazwijmy jak sugeruje nam komentarz.
\documentclass{article} Oczywiście nie zapominamy o zdefiniowaniu klasy zawierającej odpowiednie formatowania tekstu.
\usepackage[polish]{babel} Użycie pakietu babel jest jednym ze sposobów do utworzenia dokumentów z narodowym krojem czcionek, a w polu opcji definiujemy język w jakim pisana i wyświetlana ma być treść dokumentu.
\usepackage[latin2]{inputenc} Używając pakietu inputenc jesteśmy w stanie zmienić kodowanie dokumentu, dla Polskich znaków zalecane są systemy kodowania latin2 dla systemów Linux, oraz cp1250 dla Windows.
\usepackage{polski} Pakietem polski zawartym w nowszych wersjach LaTeX-a, zapewniamy sobie słownik łamania wyrazów języka polskiego – domyślnie użyty będzie słownik języka angielskiego.
\usepackage[T1]{fontenc} Pakietem fontenc z kolei definiujemy system kodowania fontów.
\frenchspacing Wypada to wpisać ze względu na to, że w Polsce używa się francuskich zwyczajów typograficznych (w tym przypadku przestrzeni pozostawianej po zakończeniu zdania).
\usepackage{indentfirst} Pakiet ten sprawia, że do każdego akapitu dodawane jest wcięcie, zgodnie z polskimi standardami drukarskimi.
\begin{document} Zakończyliśmy preambułę dokumentu i rozpoczynamy główną zawartość.
Witaj świecie! A tu wpisujemy zawartość dokumentu – nasze powitanie ;-)
\end{document} Nie może zabraknąć zakończenia dokumentu.


Struktura dokumentu

LaTeX/Struktura dokumentu

Tworzenie dokumentu

Jak wcześniej wspominaliśmy LATEX nie jest środowiskiem graficznym, kodowanie oparte jest na pisaniu zwykłego pliku tekstowego z odpowiednimi tagami jego formatowania. Nie bez przyczyny więc wiele osób próbuje tu przyrównywać składanie dokumentu do tworzenia strony WWW, czy raczej pisania programu komputerowego, gdzie podgląd dotychczas wykonanej pracy wymaga odpowiedniego dokończenia składni używanych funkcji w źródle i ewentualnego jego przetworzenia - kompilacji. Dlatego też nie należy się spodziewać specjalnych przycisków "Generuj LaTeX" czy "PDF", które wyręczą nas w wykonywaniu danych czynności ponieważ tworzenie polega najczęściej na ręcznym wpisaniu komend w linii wiersza poleceń, lub wpisania ścieżki dostępu kompilowanych plików dokumentu w odpowiednim programie. Mimo to, tak jak powstały setki programów GUI ułatwiających pracę z tworzeniem stron WWW, czy pomagających w pisaniu programów komputerowych tak i dla środowiska LATEX w obecnych czasach spotkać można całą gamę programów, wspomagających składanie dokumentów, które wyręczyć nas mogą w podstawowych czynnościach. Niektóre z tych programów opisane zostały w dziale oprogramowanie.

Ze względu na ich znaczną ilość i zróżnicowanie, zajmijmy się podstawowym sposobem generowania dokumentów.

Wszystkie dystrybucje LaTeXa wsparte są przez podstawowe aplikacje zwane generatorami lub profesjonalniej kompilatorami. Podstawę większości obecnie spotykanych dystrybucji stanowią przynajmniej programy:

  • tex: prosty kompilator, przekształcający plik TeX w DVI
  • pdftex: kompilator przekształcający plik TeX w dokument PDF
  • latex: najczęściej i domyślnie używany generator, który na podstawie pliku LaTeXa tworzy DVI
  • pdflatex: na bazie pliku LaTeX tworzy dokument PDF
  • dvi2ps: dokonuje konwersji pliku DVI do PostScriptu
  • dvipdfm: dokonuje konwersji pliku DVI do dokumentu PDF

Należy przypomnieć, że LaTeX tworzony był z myślą o tworzeniu przede wszystkim dokumentów DVI, a następnie PostScript. Kompilator PDFLaTeX jest załączany od pewnego czasu i w większości starszego lub dedykowanego oprogramowania nie musi być domyślnym składnikiem, a już tym bardziej domyślnym kompilatorem programów z interfejsem GUI.

Powyższe ostrzeżenie ma na celu zwrócić uwagę użytkowników używających środowisk GUI przed "czeskimi błędami" jakie wykonują przy tworzeniu plików PDF. Nagminnym jest bowiem m.in. tworzenie dokumentów LATEX z błędnym definiowaniem pliku. Przykładowo: Wiele osób po kompilacji dokumentu do DVI zgłasza brak grafik w podglądzie dokumentu PDF, czy zupełnie inny układ od przewidzianego. Zacznijmy od tego że DVI nie jest dokumentem PDF! Jest ono bowiem formatem graficznym dokumentu, obecnie traktowanym jako przejściowy, służącym do generacji końcowego pliku w formacie PostScript, umożliwiającym m.in. szybki podgląd wykonanej pracy - a jak napisaliśmy na wstępie PS bazuje na systemie wektorowym - stąd też powstaną optyczne różnice w wyglądzie i nawet układzie dokumentów pisanych z myślą o generacji w formacie PDF i tych pisanych pod PS. Aby podejrzeć plik PDF należy więc użyć kompilatora pdflatex, a następnie otworzyć tak powstały gotowy plik PDF by ujrzeć rezultat wykonanej pracy. Owszem dostępna jest konwersja DVI do PDF z użyciem dvipdfm jednakże to rozwiązanie nie jest zalecane, ponieważ posiada swoje wady.

Jak widać środowisko LaTeX oferuje nam całą gamę możliwości kompilacyjnych i konwersyjnych z pomocą różnych programów konwersyjnych wchodzących w skład pakietu. I tak możemy kompilować lub konwertować kolejno:

Możliwości konwersyjne i kompilacyjne

Powinniśmy tutaj zaznaczyć, że LaTeX jest zbiorem makr systemu TeX, stąd też prawidłowość iż dokumenty TeX można kompilować z użyciem środowiska LaTeX jest tylko jednostronna - co oznacza, że środowiskiem TeX nie uda nam się skompilować dokumentów napisanych w LaTeXu.

Generowanie dokumentu

Generowanie odbywa się z wiersza poleceń poprzez zwykłe podanie komend, oczywiście programy z graficznym interfejsem, mogą nas wyręczyć odpowiednim skrótem klawiszowym.

Generowanie pliku w konsoli odbywa się w identyczny sposób do kompilacji programów języka C z użyciem kompilatorów GCC, tzn.

  1. w konsoli, docieramy do katalogu w któym znajduje się nasz plik hello.tex, który chcemy wygenerować
  2. wpisujemy nazwę programu generującego (np. wygenerujemy DVI kompilatorem "latex")
latex hello
  1. Uwaga: pisanie rozszerzenia *.tex nie jest koniecznie - kompilator automatycznie postara się rozpoznać plik.
  2. po wpisaniu tej komendy ujrzymy informację zwrotną kompilatora, np.
Output written on hello.dvi (2 page, 464 bytes).
Transcript written on hello.log

Informacja ta zapisywana jest w pliku .log (opis w następnym akapicie).

Procedura kompilacji czy konwersji odpowiednich plików jest za każdym razem identyczna z podaną, wystarczy przebywając w aktywnym katalogu zawierającym pliki z poziomu konsoli wpisać polecenie

nazwakompilatora nazwapliku

aby uzyskać pożądany format dokumentu.

Jeśli wszystko przebiegło bez przeszkód - możemy oglądać wynik naszej pracy w pliku wizualnym DVI o nazwie hello.dvi, dowolną przeglądarką tego typu plików (wiele przegląarek PDF obsługuje również ten format). Czasami mogą pojawić się błędy w zależności od kompilatora powinny one zostać wyświetlone w informacji zwrotnej, a na pewno zostaną zarchiwizowane w logu: w tym przypadku pliku hello.log. Informacje o Logu i najczęściej pojawiających się wiadomościach opisane zostaną w dalszej części książki.

Generowanie pliku w GUI odbywa się prościej - poprzez zwykłe naciśnięcie odpowiedniego przycisku. Przed kompilacją jednak należy sprawdzić jaki aktualnie kompilator przypisany został jako domyślny, aby zaoszczędzić sobie niepotrzebnych nerwów. W zależności od programu plik log zawierający przebieg kompilacji i informacje o ewentualnych błędach jest zapisywany albo przy powstającym pliku albo w odpowiednim katalogu domyślnym programu.

Log i wiadomości

Za każdym razem gdy staramy się skompilować nasz dokument, niezależnie czy tworząc DVI czy plik PDF, debbuger (wbudowany najczęściej w kompilator) generuje listę wiadomości o ostrzeżeniach i wyjątkach jakie wystąpiły przed lub w trakcie kompilacji. W efekcie kompilacji otrzymujemy co najmniej jeden plik. Pożądane byłoby otrzymanie naszego przykładowego dokumentu "hello" - odpowiednio hello.dvi lub hello.pdf w zależności od użytego kompilatora. Jednakże ze względu na błędy jakie mogliśmy popełnić przy składaniu dokumentu proces kompilacji może przebiegać zupełnie inaczej niż zamierzyliśmy lub zakończyć się niepowodzeniem. Niezależnie od wyniku kompilacji zawsze pojawi się co najmniej jeden plik - noszący nazwę naszego dokumentu i rozszerzeniu .log (hello.log). W pliku tym zawarty jest zapis zawierający informacje o działaniach podjętych przez kompilator jak i zdarzeniach dotyczących błędów kompilacji. Dzięki temu możemy dowiedzieć się które elementy stały się problematyczne lub mogą spowodować różnice dokumentu skompilowanego od zamierzonego.

Plik .log precyzyjnie określa numer linii w której wystąpił błąd. Bardzo często oprócz tego zawiera dodatkowe informacje, które mogą nas naprowadzić na sposób jego rozwiązania. Ponadto .log zawiera najczęściej listę wszystkich użytych "paczek" w dokumencie łącznie z opisem jego klasy, ilości stron czy wielkości wyjściowej.

Jeśli kompilacja przebiegła bezproblemowo plik będzie miał postać dwulinijkowego komunikatu, typu:

Output written on hello.dvi (2 page, 464 bytes).
Transcript written on hello.log

W którym jak widać zapisane są nazwy powstałych w trakcie kompilacji plików, jak również ilość stron i rozmiar skompilowanego dokumentu.



Zarządzanie bibliografią

Każde opracowanie akademickie/naukowe powinno zawierać odnośniki literaturowe. Na szczęście LaTeX posiada wiele funkcji ułatwiających zarządzanie odnośnikami. Jednakże znacznie bardziej rozbudowanym, wydajnym i elastycznym narzędziem jest [1] (który jest dostarczony jako standardowe narzędzie LaTeX).

BibTeX zapewnia możliwość przechowywania wszystkich przypisów w zewnętrznej bazie danych. Baza danych może odnosić się do różnych dokumentów LaTeX i tworzyć odnośniki do wybranych części tekstu. Jest to zazwyczaj dużo łatwiejsze i wygodniejsze w obsłudze niż osadzanie ich na końcu każdego dokumentu. Dzięki temu narzędziu jeden plik bibliografii może być linkowany do wielu dokumentów. Oczywiście, bibliografia może być podzielona na kilka plików, tak aby łatwiej dało się nimi zarządzać.

Wbudowany system

Jeżeli planujesz napisać jeden lub dwa dokumenty na dany temat, być może nie będziesz potrzebować bazy danych odnośników literaturowych, której nigdy więcej nie użyjesz. W tym przypadku powinieneś rozważyć użycie podstawowego narzędzia tworzenia prostej bibliografii, które jest wbudowane w LaTeX.

LaTeX zapewnia środowisko o nazwie thebibliography, którego należy użyć w miejscu, gdzie chcemy umieścić bibliografię, czyli zazwyczaj na samym końcu dokumentu, tuż przed komendą

\end{document}

Poniżej przykładowy fragment kodu:

\begin{thebibliography}{9}

\bibitem{lamport94}
  Leslie Lamport,
  \emph{\LaTeX: A Document Preparation System}.
  Addison Wesley, Massachusetts,
  2nd Edition,
  1994.

\end{thebibliography}

Pierwszą rzecz, jaką należy zauważyć, stanowi fakt, że środowisko thebibliography jest słowem kluczowym, które LaTeX rozpoznaje jako wszystkie informacje zawarte między tagami begin i end. Argumentem koniecznym, podawanym po komendzie begin, jest określenie maksymalnej liczby znaków w odnośnikach literaturowych. Jeśli podamy w parametrze cyfrę "9", bibliografia będzie mogła się składać maksymalnie z dziewięciu pozycji. W przypadku gdy chcemy użyć większej liczby pozycji, wystarczy podać jakąkolwiek liczbę dwucyfrową (np. "56"), wtedy liczba pozycji zwiększy się do 99.

Następnie należy podać informacje dotyczące cytowanej pozycji. Informacje te zawsze poprzedzone są komendą \bibitem{klucz}, gdzie "klucz" to unikatowy identyfikator danej pozycji literaturowej, dzięki któremu możliwe będzie odwołanie się do niej w tekście. Często jako klucz stosuje się nazwisko autora zakończone dwoma ostatnimi cyframi roku wydania publikacji (np. "lamport94"). Jednakże nie jest to wymóg konieczny i każdy użytkownik może dopasować sobie system kluczy najbardziej mu odpowiadający. Następnie podaje się informacje dotyczące cytowanej publikacji w takiej kolejności, w jakiej mają być zaprezentowane. Łamanie linii będzie ignorowane przez LaTeX. Jeśli chcemy, aby fragment tekstu był wydrukowany kursywą, należy umieścić go wewnątrz

\emph{tekst}

Cytowania

Aby wstawić cytowanie w dokumencie, należy w miejscu odnośnika wstawić kod:

\cite{klucz}

gdzie "klucz" jest unikatowym identyfikatorem podanym przy cytowanej pozycji literaturowej. Kiedy LaTeX będzie przetwarzać dokument, "klucz" zostanie porównany z pozycjami bibliograficznymi i zastąpiony odpowiednim numerem. Zaletą jest to, iż LaTeX będzie numerować pozycje za Ciebie. W przypadku wpisywania bibliografii ręcznie, dodanie nowego odnośnika na początku dokumentu wiąże się z ręcznymi zmianami numeracji pozostałych pozycji literaturowych.

Specyficzne odwołania

Czasami chcemy odwołać się do konkretnej strony, rysunku lub twierdzenia w książce. W tym przypadku można użyć dodatkowych argumentów:

\cite[p.~215]{klucz}

Argument "p. 215" zostanie dodany do pozycji literaturowej. Tylda użyta w argumencie oznacza użycie twardej spacji, co nie pozwala na łamanie wiersza w danym miejscu.

Wielokrotne cytowania

Kiedy dany fragment tekstu odnosi się do kilku pozycji literaturowych, powinno użyć się jednej komendy \cite{}. "Klucze" wpisuje się w kolejności, oddzielając je od siebie przecinkami. Zauważ w poniższym przykładzie, iż nie powinno się używać spacji po przecinku.

\cite{klucz01,klucz02,klucz03}

Rezultatem będzie otrzymanie kilku odnośników wewnątrz jednego nawiasu.

No cite

Jeżeli chcemy, aby odnośnik literaturowy pojawił się jedynie w bibliografii (bez odwołania w tekście) należy użyć polecenia \nocite{}. Przykład:

Lamport w swoim artykule z 1995 zauważył...  \nocite{lamport95}.

Specjalną komendą jest:

\nocite{*}

Po wpisaniu komendy w bibliografii zostaną wymienione wszystkie pozycje z bazy danych, bez względu na to, czy jest do nich odniesienie w tekście, czy nie.

Natbib

Kiedy używa się wbudowanego modułu do tworzenia bibliografii z LaTeX, każde cytowanie w tekście jest oznaczone numerem, który odpowiada numerowi w Bibliografii. Taki styl numeracji jest popularny w pracach naukowych. W innych przypadkach stosowane są tzw. style autor-rok (np. Kowalski, 2003), zwany potocznie stylem Harwardzkim. Aby osiągnąć taki efekt, należy zastosować pakiet natbib. Pakiet pozwala na łatwą zmianę pomiędzy numerowaniem a stylem Harwardzkim.

Na początku należy w preambule załadować pakiet:

\usepackage[options]{natbib}

Należy także ustawić odpowiedni styl bibliografii poprzez użycie komendy \bibliographystyle[opcje]{nazwa_stylu}. Nazwy stylów, wraz z opisem, przedstawiono w tabeli poniżej.

Style kompatybilne z Natbib
Styl Źródło Opis
plainnat odpowiednik stylu plain
abbrvnat odpowiednik stylu abbrv
unsrtnat odpowiednik stylu unsrt
apsrev REVTeX 4 home page styl stosowany w czasopismach Physical Review
rmpaps REVTeX 4 home page styl stosowany w czasopismach Review of Modern Physics
IEEEtranN TeX Catalogue entry styl zgodny z publikacjami IEEE
achemso TeX Catalogue entry styl stosowany w czasopismach American Chemical Society
rsc TeX Catalogue entry styl stosowany w czasopismach Royal Society of Chemistry


Aby użyć odpowiedniego sposobu cytowania należy użyć odpowiednio zmodyfikowanej komendy \cite. Przykłady przedstawiono w tabeli poniżej.

Komendy Natbib
Komenda Efekt
\citet{goossens93} Goossens et al. (1993)
\citep{goossens93} (Goossens et al., 1993)
\citet*{goossens93} Goossens, Mittlebach, and Samarin (1993)
\citep*{goossens93} (Goossens, Mittlebach, and Samarin, 1993)
\citeauthor{goossens93} Goossens et al.
\citeauthor*{goossens93} Goossens, Mittlebach, and Samarin
\citeyear{goossens93} 1993
\citeyearpar{goossens93} (1993)
\citealt{goossens93} Goossens et al. 1993
\citealp{goossens93} Goossens et al., 1993

Podstawowy odnośnik uzyskuje się przez dodanie liter t (przpadek tekstowy) lub p (przypadek nawiasowy) do komendy \cite. Należy zwrócić uwagę, iż Natbib automatycznie zmieni w bibliografi wpisy zawierające trzech lub więcej autorów na formę Nazwisko pierwszego autora et al. Przez dodanie Asterysku (*) unika się tej zamiany i wszyscy autorzy zostają opublikowani. Więcej opcji przedstawiono w tabeli poniżej.

Opcje Natbiba
Opcja Znaczenie
round Nawiasy () (domyślne)
square Nawiasy kwadratowe []
curly Curly braces {}
angle nawiasy ostrokątne <>
colon wielokrotne odwołania oddzielone są średnikami (domyślnie)
comma wielokrotne odwołania oddzielone są przecinkami
authoryear styk autor-rok (domyślny)
numbers zwykła numeracja
super superscripted numeric citations
sort wielokrotne odwołania sortowanę są zgodnie z występowaniem w bibliografii
sort&compress jak wyżej + kompresowanie wielokrotnych pozycji w bibliografii
longnamesfirst pierwsze odwołanie do każdej pozycji w bibliografii spowoduje wypisanie wszystkich autorów, kolejne odwołania po pierwszym nazwisku będą miały wpisane et al.
sectionbib używane z pakietem chapterbib. zmienia \chapter* na \section*
nonamebreak powoduje utrzymanie listy nazwisk autorów w odnośniku w jednej linii

Natbib pozwala także na własne ustawienie stylu cytowania. W tym celu należy w preambule umieścić komendę:

\bibpunct{(}{)}{;}{a}{,}{,}

Komenda ta posiada sześć koniecznych parametrów.

  1. Symbol otwieranego nawiasu.
  2. Symbol zamykanego nawiasu.
  3. Symbol jaki pojawi się między wielokrotnymi odwołaniami.
  4. Jedna z trzech możliwości:
    • n - styl numeryczny.
    • s - inny styl numeryczny.
    • inna litera - styl autor-rok.
  5. Znak pojawiający się między nazwiskiem autora a rokiem (tylko w przypadku nawiasowym).
  6. Znak pojawiający się między latami, w przypadku wielokrotnego odniesienia do artykułów napisanych przez jednego autora, np. (Chomsky 1956, 1957). Aby otrzymać dodatkową spację, należy użyć komendy {,~}.

Jak widać, pakiet Natbib jest bardzo elastyczny. Dodatkową zaletą jest zmiana całego stylu odnośników przez zmianę jednego parametru. Więcej informacji dostępne tutaj.

BibTeX

Powyżej opisano możliwość tworzenia bibliografii przez umieszczenie odnośników literaturowych na końcu dokumentu i odwoływanie się do nich przez komendę \cite. W tej części opisana zostanie bardziej rozbudowana metoda, dzięki której można uzyskać bardziej zróżniowane rezultaty. W tym celu zostanie użyty BibTeX.

Baza danych BibTeX jest przechowywana w pliku o rozszerzeniu ".bib". Jest to zwykły plik tekstowy, dzięki czemu może być łatwo odczytywany i edytowany. Struktura takiego pliku jest także prosta. Przykładowy wpis bazy danych:

@article{greenwade93,
    author  = "George D. Greenwade",
    title   = "The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN})",
    year    = "1993",
    journal = "TUGBoat",
    volume  = "14",
    number  = "3",
    pages   = "342--351"
}

Każdy wpis zaczyna się od zadeklarowania typu odnośnika w formie @typ. BibTeX rozpoznaje praktycznie wszystkie możliwe typy, o jakich można pomyśleć, m.in: book (książka) czy article (artykuł). Powyższy przykład odnosi się do artykułu w czasopiśmie.

Po określeniu typu należy zastosować nawias klamrowy {, aby rozpocząć wprowadzanie atrybutów odnośnika. Pierwszym atrybutem, podawanym zaraz po nawiasie, jest "klucz". Klucze powinny być unikatowe dla każdej pozycji literaturowej. Jest to identyfikator, którym odwołuje się do konkretnego odnośnika. Sposób nazewnictwa "kluczy" zależy tylko i wyłącznie od twórcy bibliografii, jednak zazwyczaj stosuje się jako klucz nazwisko autora i dwie cyfry oznaczające rok publikacji (tak jak zaprezentowano w powyższym przykładzie).

Następnie należy pokazać programowi, iż kolejne komendy odpowiadają konkretnym danym w odnośniku literaturowym. Nazwy pól danych dostępnych są następujące:

  • address: adres wydawcy (zazwyczaj nazwa miasta, jednak można wprowadzić dokładny adres dla mniej znanych wydawców)
  • annote:
  • author: imiona i nazwiska autorów (w przypadku kilku autorów powinni być oddzieleni przez słowo "and")
  • booktitle: tytuł książki, jeśli tylko fragment jest cytowany
  • chapter: numer rozdziału
  • crossref:
  • edition: numer wydania książki
  • editor: nazwiska edytorów
  • eprint: sposób publikacji elektronicznej, often a preprint or a technical report
  • howpublished: sposób publikacji pozycji literaturowej, jeśli nie była publikowana standardowo
  • institution: instytucja, która brała udział w tworzeniu publikacji, ale nie wydawca
  • journal: tytuł czasopisma, w którym publikowana była pozycja literaturowa
  • key:
  • month: miesiąc wydania publikacji (jeśli tekst nieopublikowany, wprowadza się miesiąc utworzenia)
  • note: dodatkowe informacje
  • number: numer wydania czasopisma
  • organization: sponsor konferencji
  • pages: zakres stron, oddzielonych przecinkami lub myślnikami
  • publisher: nazwa wydawcy
  • school: nazwa szkoły w której powstałą praca
  • series:
  • title: tytuł pracy
  • type:
  • url: adres strony internetowej
  • volume: numer woluminu
  • year: rok wydania

Po wpisaniu odpowiedniego pola danych należy po znaku równości wprowadzić dane pozycji literaturowej. Dane powinny być wprowadzone wewnątrz znaczników, jednak nie ma znaczenia czy będzie to cudzysłów czy nawiasy klamrowe("dane" lub {dane}). Mając na uwadze zastosowanie nawiasów klamrowych w innych celach, w celu zapewnienia czytelności kodu, zaleca się stosowanie cudzysłowów. Problemem może okazać się używanie liter z umlautami (ü, ö, itp), gdyż przy użyciu komendy \"{o} cudzysłów w niej zawarty zamknie ten otwierający wprowadzanie danych literaturowych. Użycie kodowania znaków \usepackage[utf8]{inputenc} w pliku głównym .tex może rozwiązać problem. Innym rozwiązaniem jest użycie gotowych znaków i przechowywanie ich w pliku .bib.

Należy pamiętać, iż każdy atrybut musi być oddzielony od następnego przecinkiem. Nie trzeba stosować przecinka po ostatnim atrybucie, jednak wpisanie go nie spowoduje żadnego błędu.

Autorzy

BibTeX potrafi bardzo sprawnie poradzić sobie z imionami i nazwiskami autorów. Nie ma znaczenia, czy wprowadzono dane w formie "Imię Nazwisko" czy "Nazwisko, Imię". Jeśli używany jest format "Imię Nazwisko" trzeba uważać na specjalne rodzaje nazwisk, jak "John von Neumann", gdyż BibTeX jako nazwisko przyjmuje ostatnie wpisane słowo, a wszystko przed tym jest imionami. W takim przypadku trzeba ręcznie wskazać BibTeXowi, aby utrzymywał "von" i "Neumann" razem. Można to osiągnąć bardzo łatwo używając nawiasów klamrowych ("John {von Neumann}"). Jeśli stosuje się format "Nazwisko, Imię" problem nie występuje, gdyż przecinek wskazuje, które wyrazy określają nazwisko, a które imię.

Dodatkowym problemem może okazać się wprowadzenie kilku autorów w jednym polu. W tym celu należy kolejnych autorów oddzielić słowem "and", co widać na poniższym przykładzie:

@book{goossens93,
    author    = "Michel Goossens and Frank Mittelbach and Alexander Samarin",
    title     = "The LaTeX Companion",
    year      = "1993",
    publisher = "Addison-Wesley",
    address   = "Reading, Massachusetts"
}

Powyższa książka posiada trzech autorów i każdy z nich został oddzielony słowem "and". Oczywiście w finalnej wersji bibliografii słowa "and" zostaną automatycznie usunięte.

Standardowe typy

Należy zachować ostrożność podczas kopiowania poniższych przykładów. Znak % rozpoczynający akapit powoduje wstawienie komentarza, co oznacza, iż tekst nie będzie przetwarzany. Aby uaktywnić konkretne dane, należy usunąć ten znak z początku akapitu.

@article 
Artykuł z czasopisma.
  • pola wymagane: author, title, journal, year.
  • pola dodatkowe: volume, number, pages, month, note.
@article{Xarticle,
    author    = "",
    title     = "",
    journal   = "",
    %volume   = "",
    %number   = "",
    %pages    = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@book 
książka
  • pola wymagane: author/editor, title, publisher, year.
  • pola dodatkowe: volume/number, series, address, edition, month, note.
@book{Xbook,
    author    = "",
    title     = "",
    publisher = "",
    %volume   = "",
    %number   = "",
    %series   = "",
    %address  = "",
    %edition  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@booklet 
oprawiona książka bez wydawcy
  • pola wymagane: title.
  • pola dodatkowe: author, howpublished, address, month, year, note.
@booklet{Xbooklet,
    %author   = "",
    title     = "",
    %howpublished   = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@conference 
materiały z konferencji naukowej
  • pola wymagane: author, title, booktitle, year.
  • pola dodatkowe: editor, volume/number, series, pages, address, month, organization, publisher, note.
@conference{Xconference,
    author    = "",
    title     = "",
    booktitle = "",
    %editor   = "",
    %volume   = "",
    %number   = "",
    %series   = "",
    %pages    = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %publisher= "",
    %note     = "",
}
@inbook 
rozdział książki bez nazwy
  • pola wymagane: author/editor, title, chapter and/or pages, publisher, year.
  • pola dodatkowe: volume/number, series, type, address, edition, month, note.
@incollection 
rozdział książki mający swój tytuł
  • pola wymagane: author, title, booktitle, publisher, year.
  • pola dodatkowe: editor, volume/number, series, type, chapter, pages, address, edition, month, note.
@inproceedings 
artykuł z materiałów konferencyjnych
  • pola wymagane: author, title, booktitle, year.
  • pola dodatkowe: editor, volume/number, series, pages, address, month, organization, publisher, note.
@manual 
podręcznik techniczny / instrukcja obsługi
  • pola wymagane: title.
  • pola dodatkowe: author, organization, address, edition, month, year, note.
@mastersthesis 
praca magisterska
  • pola wymagane: author, title, school, year.
  • pola dodatkowe: type (eg. "diploma thesis"), address, month, note.
@mastersthesis{Xthesis,
    author    = "",
    title     = "",
    school    = "",
    %type     = "diploma thesis",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@misc 
typ, którego używa się, gdy żaden inny nie pasuje
  • pola wymagane: brak
  • pola dodatkowe: author, title, howpublished, month, year, note.
@misc{Xmisc,
    %author    = "",
    %title     = "",
    %howpublished = "",
    %year     = "XXXX",
    %month    = "",
    %note     = "",
}
@phdthesis 
praca doktorska
  • pola wymagane: author, title, year, school.
  • pola dodatkowe: address, month, keywords, note.
@proceedings 
materiały konferencyjne
  • pola wymagane: title, year.
  • pola dodatkowe: editor, volume/number, series, address, month, organization, publisher, note.
@techreport 
raport techniczny instytucji naukowej, komercyjnej lub normalizacyjnej
  • pola wymagane: author, title, institution, year.
  • pola dodatkowe: type, number, address, month, note.
@techreport{Xtreport,
    author    = "",
    title     = "",
    institution = "",
    %type     = "", 
    %number   = "",
    %address  = "",
    year      = "XXXX",
    %month    = "",
    %note     = "",
}
@unpublished 
nieopublikowany artykuł, książka, rozprawa
  • pola wymagane: author, title, note.
  • pola dodatkowe: month, year.

Niestandardowe typy

@patent
Więcej informacji na temat tego typu dostępne: Cytowanie patentów w Bibtex (strona w języku angielskim).
@collection
@electronic

Wielkie litery

BibTeX standardowo zamienia wszystkie wielkie litery w tytule na małe (poza pierwszą). Aby zablokować zmianę liter należy nazwę podawać wewnątrz nawiasów klamrowych:

title = "The {LaTeX} Companion",

Jednakże, nie powinno się wprowadzać całych tytułów wewnątrz nawiasów klamrowych

title = "{The LaTeX Companion}",

Dla ułatwienia wiele ludzi wstawia tytuł w podwójny nawias klamrowy, jednakże nie zawsze się to sprawdza.

title = {{The LaTeX Companion}},

Dodatkowe przykłady

Poniżej przedstawiono kilka dodatkowych przykładów wpisów bibliograficznych. Pierwszy pokazuje sposób wprowadzania autorów, gdy podane jest nazwisko i pierwsze litery imion. Kolejny przykład obrazuje sposób wprowadzania danych typu @incollection.

@article{AbedonHymanThomas2003,
  author = "Abedon, S. T. and Hyman, P. and Thomas, C.",
  year = "2003",
  title = "Experimental examination of bacteriophage latent-period evolution as a response to bacterial availability",
  journal = "Applied and Environmental Microbiology",
  volume = "69",
  pages = "7499--7506"
}

@incollection{Abedon1994,
  author = "Abedon, S. T.",
  title = "Lysis and the interaction between free phages and infected cells",
  pages = "397--405",
  booktitle = "Molecular biology of bacteriophage T4",
  editor = "Karam, Jim D. Karam and Drake, John W. and Kreuzer, Kenneth N. and Mosig, Gisela
            and Hall, Dwight and Eiserling, Frederick A. and Black, Lindsay W. and Kutter, Elizabeth
            and Carlson, Karin and Miller, Eric S. and Spicer, Eleanor",
  publisher = "ASM Press, Washington DC",
  year = "1994"
}

Jeśli chcesz zacytować stronę internetową użyj typu @misc:

@misc{website:fermentas-lambda,
      author = "Fermentas Inc.",
      title = "Phage Lambda: description \& restriction map",
      month = "November",
      year = "2008",
      url = "http://www.fermentas.com/techinfo/nucleicacids/maplambda.htm"
}

Pole "note" (notatki) jest pomocne w przypadkach, gdy chcemy przekazać dodatkowe informacje, dla przykładu wskazać, iż dany numer czasopisma nie został jeszcze wydany:

@article{blackholes,
      author="Rabbert Klein",
      title="Black Holes and Their Relation to Hiding Eggs",
      journal="Theoretical Easter Physics",
      publisher="Eggs Ltd.",
      year="2010",
      note="(w trakcie publikowania)"
}

Integracja LaTeX z plikami .bib

Na samym końcu dokumentu, przed kodem:

\end{document}

należy wpisać następujące polecenia:

\bibliographystyle{plain}
\bibliography{przyklad1,przyklad2,...,przykladn} 
% Zauważ brak spacji pomiędzy kolejnymi odwołaniami.

Style bibliograficzne określają, jak ma wyglądać efekt końcowy bibliografii. Określa on, jak informacje podane w plikach .bib> mają zostać przetworzone, aby uzyskać konkretny efekt. Właśnie w tym celu podana jest pierwsza komenda w powyższym kodzie. W tym przypadku został użyty styl plain.bst (który jest standardowym stylem BibTeX).

Druga komenda określa, które pliki .bib chcemy wykorzystać do tworzenia bibliografii. Jeżeli pliki z bibliografią znajdują się w innym folderze, należy podać pełną ścieżkę do nich \bibliography{/folder1/folder2/przyklad}

Aby wstawić odwołanie do pozycji literaturowej, należy użyć komendy \cite{klucz}, gdzie klucz jest jednoznacznym identyfikatorem danej pozycji odpowiadający tej pozycji w pliku .bib. Jeśli chcemy jednocześnie odwołać się do kilku pozycji literaturowych, należy wypisać wszystkie klucze, oddzielając je przecinkami.

\cite{klucz1, klucz2, ..., kluczn}

Style bibliografii

Poniżej przedstawiono trzy podstawowe style dostępne w LaTeX:

plain
abbrv
alpha


Nazwa stylu Format nazwiska autora Format odnośnika Sortowanie
plain Homer Jay Simpson #ID# alfabetycznie - nazwiska autorów
unsrt Homer Jay Simpson #ID# w kolejności odwołań w tekście
abbrv H. J. Simpson #ID# alfabetycznie - nazwiska autorów
alpha Homer Jay Simpson Sim95 alfabetycznie - nazwiska autorów
abstract Homer Jay Simpson Simpson-1995a
acm Simpson, H. J. #ID#
authordate1 Simpson, Homer Jay Simpson, 1995
apa Simpson, H. J. (1995) Simpson1995
named Homer Jay Simpson Simpson 1995


Strona http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html zawiera więcej przykładów stylów. Przykłady przedstawiono także w pliku: http://amath.colorado.edu/documentation/LaTeX/reference/faq/bibstyles.pdf Dodatkowe informacje można także znaleźć na stronie http://amath.colorado.edu/documentation/LaTeX/reference/faq/bibstyles.html

Baza danych stylów bibliograficznych dla LaTeX: http://bst.maururu.net/ zawiera ponad 2000 stylów, które można przeszukiwać po tytule czasopisma, w którym są stosowane.

Dodawanie linków URL do bibliografii

Jak można zauważyć w pozycjach literaturowych brakuje pola na wpisanie link URL. Jedną z możliwości jest wpisanie adresu do strony internetowej w pole howpublished dostępne w @misc lub w polu note w @techreport, @article, @book:

howpublished = "\url{http://www.example.com}"

Bez użycia polecenia \url spowoduje wklejenie do bibliografii zwykłego tekstu, bez hiperłącza. Aby to polecenie zadziałało, należy w preambule załadować pakiet \usepackage{url}

Innym sposobem jest użycie pola url i spowodować, aby dany styl bibliografii go rozpoznawał:

 url = "http://www.example.com"

W tym celu należy w preambule załadować pakiet \usepackage{hyperref}.

Style Natbib (zobacz poniżej) posiadają takie pole w swojej strukturze. Pozostałe sposoby to modyfikacja już istniejących stylów. Modyfikacja trzech podstawowych stylów (plain,abbrv i alpha) została przedstawiona tutaj.

Więcej informacji dotyczących wstawiania linków do bibliografii można znaleźć na tej stronie.

Pozycje literaturowe bez odwołań

Zazwyczaj LaTeX wyświetla w bibliografii jedynie te pozycje, do których pojawiają się odwołania w tekście. Jeśli chcemy umieścić w bibliografii pozycję bez odnośnika, należy użyć następujących komend:

\nocite{Name89} % Pokazuje w bibliografii wpis o kluczu "Name89"
\nocite{*} % Pokazuje w bibliografii wszystkie wpisy z bazy danych

Jak wygenerować bibliografię z BibTeX

Cały proces tworzenia bibliografii przez LaTeX jest skomplikowany i wymaga kilku złożonych operacji, dlatego aby poprawnie wygenerować bibliografię i odnośniki z kodu źródłowego, należy wykonać kilka czynności. Każda z nich wykona konkretne zadanie, które w rezultacie dadzą bibliografię. Aby poprawnie ją wygenerować, należy w linie poleceń wpisać kolejno:

  1. latex twój_plik.tex
  2. bibtex twój_plik.aux
  3. latex twój_plik.tex
  4. latex twój_plik.tex

(Rozszerzenia plików nie są wymagane, jeśli je stosujesz, pamiętaj, iż BibTeX odwołuje się do pliku .aux)

Po pierwszej komendzie zobaczysz błędy przypominające te:

LaTeX Warning: Citation `lamport94' on page 1 undefined on input line 21.
...
LaTeX Warning: There were undefined references.

Kolejnym krokiem jest uruchomienie BibTeXa na tym samym kodzie źródłowym (a dokładniej na powstałym z niego pliku AUX) w celu zdefiniowania wszystkich pozycji literaturowych, do których odwołuje się dokument. Powinieneś zobaczyć następujący komunikat:

This is BibTeX, Version 0.99c (Web2C 7.3.1)
The top-level auxiliary file: twój_plik.aux
The style file: plain.bst
Database file #1: sample.bib

Trzecim etapem, który wywołuje latex, po raz drugi spowoduje wyświetlenie się komunikatów typu:

LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.

Nie przejmuj się tym, już prawie wszystko działa. Jedyne, co trzeba wykonać, to uruchomić składanie latexa po raz trzeci. W rezultacie otrzymamy gotowy plik, bez dodatkowych problemów.

Jeśli plikiem wynikowym ma być pdf, a nie dvi, zamiast komendy latex stosuje się komendę pdflatex:

  1. pdflatex latex_source_code.tex
  2. bibtex latex_source_code.aux
  3. pdflatex latex_source_code.tex
  4. pdflatex latex_source_code.tex

(Rozszerzenia plików nie są wymagane, jeśli je stosujesz, pamiętaj, iż BibTeX odwołuje się do pliku .aux)

Bibliografia w innych językach

Podczas tworzenia bibliografii w językach innych niż angielski, trzeba zmienić niektóre słowa automatycznie wstawiane do bibliografii (np. editors, and lub in). W takim przypadku można użyć pakiet babelbib. Przykładowo dla języka polskiego (niestety jak na razie nie powstał styl polski 19.08.2014r.) w preambule należy wpisać:

\usepackage[fixlanguage]{babelbib}
\selectbiblanguage{polish}

Alternatywnie, język można wprowadzić pojedynczo dla każdego wpisu w bazie danych. W takim przypadku w preambule wpisujemy:

\usepackage{babelbib}

A w danej pozycji w bazie danych:

@article{mueller08,
  % ...
  language = {german}
}


Aby babelbib zadziałał, należy użyć jeden z podanych stylów: babplain, babplai3, babalpha, babunsrt, bababbrv, and bababbr3.

\bibliographystyle{babplain}
\bibliography{sample}

Umieszczanie bibliografii w spisie treści

Jeśli używasz klasy dokumentu book lub report, można umieścić bibliografię w następujący sposób:

\begin{thebibliography}{99}
\bibitem{bib:one_book} some information
\bibitem{bib:one_article} other information
\end{thebibliography}

Jeśli używasz BibTeX ta sama czynność wymaga wpisania następujących komend:

\bibliographystyle{plain}
\bibliography{mybibtexfile}

Oba sposoby spowodują wstawienie w odpowiednim miejscy bibliografii, która będzie przypominać nowy rozdział. Jednakże pomimo to nie zostanie on dodany jako nowy rozdział do spisu treści.

Używanie pakietu tocbibind

Najwygodniejszym sposobem dodawania bibliografii do spisu treści jest użycie dedykowanego pakietu tocbibind, który można stosować z większością standardowych klas dokumentów. Aby go załadować, należy w preambule dokumentu:

\usepackage[nottoc]{tocbibind}

Spowoduje to wstawienie bibliografii do spisu treści, bez nadania numeru rozdziału. Jeśli chcemy, aby bibliografia posiadała numer należy w preambule wpisać:

\usepackage[nottoc,numbib]{tocbibind}

Pakiet tocbibind spowoduje wstawienie do spisu treści także spis rysunków, spis tabel oraz samego spisu treści. Posiada wiele opcji, które szerzej opisane są na stronie http://www.ctan.org/tex-archive/macros/latex/contrib/tocbibind

Inne sposoby

Bez numeru rozdziału

Jeśli chcesz aby bibliografia pojawiła się w spisie treści wystarczy przed thebibliography wstawić:

\clearpage
\addcontentsline{toc}{chapter}{Bibliografia}

lub

\addcontentsline{toc}{section}{Bibliografia}

jeśli klasa, którą używasz to article.

Pierwsza z powyższych linii tekstu kończy poprzedni paragraf i stronę. Jeśli stosuje się klasę book należy użyć komendy \cleardoublepage. Kolejna linia odpowiada za dodanie do spisu treści (fragment toc), jako nowy rozdział (fragment chapter) o nazwie podanej w trzecim nawiasie klamrowym (tutaj Bibliografia). Jeśli używasz osobnego pliku bibliograficznego powyższy kod powinno się wstawić pomiędzy linie zawierające \bibliographystyle i \bibliography.

Jeśli używasz pakietu hyperref, powinno się do powyższych komend dodać \phantomsection, aby uaktywnić hiperlink w spisie treści dotyczący bibliografii.

\cleardoublepage
\phantomsection
\addcontentsline{toc}{chapter}{Bibliography}

Ten sposób działa idealnie w przypadku wstawiania bibliografii do spisy treści, jednak może być także zastosowany w każdym innym przypadku dodawania każdej innej treści.

Z numerem rozdziału

Jeśli chcemy, aby bibliografia w spisie treści posiadała numer jak inne rozdziały, należy wpisać poniższy kod:

\cleardoublepage % Konieczne w klasie book, aby bibliografia umieszczona byłą na właściwej stronie
                 % W przypadku innych klas wystarczy użyć \clearpage
\renewcommand*{\refname}{} % Ten fragment spowoduje zablokowanie wpisania nazwy Bibliografia
\section{Bibliography}     % Rozpoczyna nowy rozdział lub sekcję o nazwie bibliografia

\begin{thebibliography}{99}
...
\end{thebibliography}

Innym, prostszym rozwiązaniem jest użycie \section wewnątrz bloku \renewcommand:

\renewcommand{\refname}{\section{Źródła}} % Gdzie "Źródła" to tytuł sekcji
\begin{thebibliography}{99}
...
\end{thebibliography}

W celu usunięcia fragmentu wolnej przestrzeni pod napisem Bibliografia należy po kodem \renewcommand*{\refname}{\vspace*{-1em}} wstawić \vspace*{-1em} co zmniejszy wolną przestrzeń automatycznie wstawianą przez komendę \refname

  • Uwaga: Jeśli stosujesz klasę book lub report użyj \bibname zamiast \refname

Kilka bibliografii

Pakiet multibib

Pakiet ten zapewnia możliwość dodania kilku bibliografii dotyczących różnych sekcji w dokumencie. Można dzięki niemu wygenerować osobne bibliografie dla każdego rozdziału. Więcej informacji o pakiecie można znaleźć na stronie CTAN[2]

Pakiet bibtopic

Pakiet bibtopic[3] pozwala podzielić bibliografię na kilka części. Można m.in. stworzyć osobne bibliografie dla książek, artykułów z czasopism oraz źródeł internetowych.

\documentclass{article}
\usepackage{bibtopic}
\begin{document}

\bibliographystyle{alpha}
\section{Testing}
Cytowane książki: \cite{ColBenh:93} oraz \cite{Munt:93}; 
Cytowany artykuł: \cite{RouxSmart:95}.

Plik ksiazki.bib jest używany do tego spisu:
\begin{btSect}{ksiazki}
 \section{Książki}
 \btPrintCited
\end{btSect}
Plik artykuly.bib jest używany do stworzenia bibliografii.
\begin{btSect}[plain]{articles} % Zastosowano zmianę stylu bibliografii z alpha na plain
 \section{Artykuły}
 \btPrintCited
 \section{Artykuły niecytowane}
 \btPrintNotCited
\end{btSect}
Aby wydrukować wszystkie źródła używamy komendy \btPrintAll
\begin{btSect}[plain]{internet}
 \section{Internet}
 \btPrintAll
\end{btSect}
\end{document}

Pakiet custom-bib

Pakiet custom-bib[4] pozwala utworzyć własny styl bibliografii. Szczegółowy poradnik jak użyć pakietu można znaleźć na stronie[5].


Przypisy

Tabele

Do składania tabel służy środowisko tabular. Ma ono jeden parametr, określający liczbę kolumn i sposób ich justowania. Dla każdej kolumny należy wstawić jedną z liter l,r,c, oznaczające wyrównanie do lewej, prawej lub centrowanie zawartości kolumny. Litery można oddzielać znakiem '|' co spowoduje wstawienie pionowych linii pomiędzy kolumnami. Szerokość kolumn zostanie dobrana automatycznie chyba, ze zadeklarujemy szerokość kolumny zapisem p{szerokość}.

Wewnątrz środowiska wpisujemy zawartość poszczególnych kolumn oddzielając je znakiem &, a linie kończymy \\ . Poszczególne wiersze tabeli można przedzielać linią poziomą komendą \hline.

Przykład:

\begin{tabular}{|r|l|}
  \hline 
  w1k1 & w1k2\\
  \hline
  w2k1 & w2k2 \\
  \hline
\end{tabular} 

Tabele umieszcza się zwykle wewnątrz otoczenia table, aby móc je uzupełnić o podpis, odnośnik, itp. Najprostsze użycie:

\begin{table}[t]
\caption{podpis do tabeli}
\label{nazwa odnośnika, która potem użyjemy do cytowania tabeli}
\begin{tabular}{....}
 ...
\end{tabular}
\end{table}

Dodawanie grafiki

TeX powstał w czasach kiedy jeszcze formaty graficzne *.JPG, *.PNG, czy *.GIF nie istniały, dlatego można spotkać problemy z używaniem rastrowych typów grafik. Problem ten spotykany może być w kolejnych skryptach pochodnych, m.in. LaTeX-u, który jak początkowo TeX również dedykowany był przede wszystkim składaniu dokumentów w formacie PostScript. Mimo to grafiki tego typu mogą zostać włączone do dokumentu za użyciem opcji \special przekazującej komendy do programu używającego DVI, dzięki czemu program wyświetlający zajmie się wyświetlaniem tejże grafiki.

Ponieważ pliki konwertowane były początkowo do PostScriptu, a za sprawą Adobe przyjęte zostało to rozwiązanie za standard w tworzeniu dokumentów, najlepszym wyjściem jest używanie standardowego formatu grafik wektorowych przeznaczonych domyślnie do tych celów - tzw. Encapsulated PostScript (*.EPS). Należy tu wspomnieć, że ze względu na swoją współpracę z formatami wektorowymi środowisko LaTeX daje możliwość tworzenia własnych prostych schematów graficznych opartych na opisie wektorowym – służy temu otoczenie picture. Grafiki wektorowe bowiem możliwe są do użycia zarówno w dokumentach PostScriptowych jak i PDF.

Wiele osób pyta o możliwość użycia grafik innych niż wektorowe, mając w szczególności na uwadze pliki rastrowe takie jak wspomniane na początku .JPG, .GIF, czy *.PNG. Oczywiście są one możliwe do użycia, lecz jedynie przy składaniu dokumentów PDF - poprzez konwersję PDFLaTeX, ponieważ formaty te nie są obsługiwane w przeglądarkach DVI obsługujących dokumenty PostScript.

Do dodawania grafik konieczne jest użycie pakietu klas grafik o nazwie graphicx, który dołącza się do dokumentu poprzez wpisanie w preambule dokumentu komendy:

\usepackage{graphicx} 

Do wstawiania pola plików graficznych służy otoczenie {figure}. Aby dołączyć obrazek należy utworzyć wspomniane wyżej otoczenie:

\begin{figure}

i wstawić grafikę wektorową używając komendy:

\includegraphics{obrazek.eps}

Po czym zamknąć środowisko:

\end{figure}

Gdzie obrazek stanowi nazwę wstawianej grafiki. Oczywiście wstawianie rozszerzenia .eps czy .jpg nie jest konieczne - środowisko samo może postarać się rozpoznać typ grafiki, chyba że mamy kilka różnych grafik.

Takie działanie pozwoli nam uzyskać obrazek w pełnej jego niezmienionej postaci. Opis możliwości zmian wyświetlania grafiki opisano poniżej w dziale dotyczącym klasy graphicx.

Konwersja grafik EPS

Istnieje cała gama programów do konwersji grafik, jak również większość dobrych programów graficznych obsługuje możliwość zapisu w tych formatach; Paint Shop Pro (tylko dla Windows), Gimp (Windows / Linux). Na obie platformy dostępny jest również program ImageMagic pozwalający na konwersję niemalże każdego rodzaju plików graficznych - program działa z linii komend - komendą:

 convert obrazek.jpg obrazek.eps

Można też wykorzystać jedną z wielu nakładek dostępnych ze strony autorów.

graphicx

[opis klasy do uzupełnienia]

wrapfig

[opis klasy do uzupełnienia]

psfrag

[opis klasy do uzupełnienia]

picture

[opis otoczenia do uzupełnienia]


Matematyka

LaTeX bardzo dobrze sprawdza się w pisaniu wzorów matematycznych.

Symbole matematyczne

Litery greckie

Małe litery

  •    \alpha
  •    \beta
  •    \gamma
  •    \delta
  •    \epsilon
  •    \varepsilon
  •    \zeta
  •    \eta
  •    \theta
  •    \vartheta
  •    \iota
  •    \kappa
  •    \lambda
  •    \mu
  •    \nu
  •    \xi
  •    o
  •    \pi
  •    \rho
  •    \varrho
  •    \sigma
  •    \varsigma
  •    \tau
  •    \upsilon
  •    \phi
  •    \varphi
  •    \chi
  •    \psi
  •    \omega

Wielkie litery

  •    \Gamma
  •    \Delta
  •    \Theta
  •    \Lambda
  •    \Xi
  •    \Pi
  •    \Sigma
  •    \Upsilon
  •    \Phi
  •    \Psi
  •    \Omega

Pozostałe wielkie litery greckie są identyczne z odpowiednimi literami łacińskimi. Domyślnie nie są one pochylone, więc można je otrzymać poleceniem \mathrm{łacińska litera}, np. \mathrm{A} oznacza alfę (). Lecz ze względu na brak różnicy w wyglądzie, w matematyce zwykle nie stosuje się tych liter. Powyższe polecenia nie są odpowiednie do wprowadzania tekstu w języku greckim.

Akcenty matematyczne

  •    \hat o
  •    \acute o
  •    \tilde o
  •    \check o
  •    \grave o
  •    \dot o
  •    \ddot o
  •    \vec o
  •    \breve o
  •    \bar o
  •    \widehat{abc}

Operatory binarne

  •    \cdot
  •    \times
  •    \star
  •    \circ
  •    \bullet
  •    \div
  •    \cap
  •    \cup
  •    \vee
  •    \wedge
  •    \oplus
  •    \otimes

Relacje

  •    \leq
  •    \geq
  •    \not\geq
  •    \equiv
  •    \not\equiv
  •    \sim
  •    \not\sim
  •    \simeq
  •    \not\simeq
  •    \approx
  •    \not\approx
  •    \subset
  •    \subseteq
  •    \supset
  •    \supseteq
  •    \in
  •    \ni
  •    \perp

Chemia

Chemfig jest pakietem umożliwiającym rysowanie dwuwymiarowych struktur chemicznych. Jest alternatywą dla pakietu ochem. Zaletą pakietu chemfig jest to, iż korzysta on pakietu tikz do rysowania grafiki, a nie języka Perl jak pakiet ochem. Aby użyć chemfig w sowim dokumencie, należy w preambule załadować pakiet:

\usepackage{chemfig}

Podstawy

Podstawową komendą używaną w tym pakiecie jest \chemfig{}:

\chemfig{<atom1><bond type>[<angle>,<coeff>,<tikz code>]<atom2>}

<angle> jest określeniem kąta pomiędzy atomami. Występują trzy typy kątów: absolute, relative, oraz predefined. Kąty typuabsolute pozwalają na wyrysowanie wiązania pod konkretnym kątem (od 0 do 360°) i reprezentowane są przez komendę [:<absolute angle>]. Kąty typu relative określa się komendą [::<relative angle>], które wstawia linię o podanym nachyleniu w stosunku do poprzedniego wiązania. Ostatnim typem jest predefined, który określają liczby całkowite od 1-7 określające kąty co 45°. Poniżej przedstawiono przykłądowy kod tego typu kątów.

\chemfig{(-[:0,1.5,,,draw=none]\scriptstyle\color{red}0)
(-[1]1)(-[:45,1.5,,,draw=none]\scriptstyle\color{red}45)
(-[2]2)(-[:90,1.5,,,draw=none]\scriptstyle\color{red}90)
(-[3]3)(-[:135,1.5,,,draw=none]\scriptstyle\color{red}135)
(-[4]4)(-[:180,1.5,,,draw=none]\scriptstyle\color{red}180)
(-[5]5)(-[:225,1.5,,,draw=none]\scriptstyle\color{red}225)
(-[6]6)(-[:270,1.5,,,draw=none]\scriptstyle\color{red}270)
(-[7]7)(-[:315,1.5,,,draw=none]\scriptstyle\color{red}315)
-0}
Chemfig angles.png

<bond type> określa rodzaj wiązania pomiędzy <atom1> a <atom2>. Występuje dziewięć typów wiązań:

\chemfig{A-B}\\
\chemfig{A=B}\\
\chemfig{A~B}\\
\chemfig{A>B}\\
\chemfig{A<B}\\
\chemfig{A>:B}\\
\chemfig{A<:B}\\
\chemfig{A>|B}\\
\chemfig{A<|B}\\
Chemfig bonds.png

<coeff> określa czynnik, zwiększający długość wiązania.

<tikz code> wprowadza dodatkowe opcje dotyczące koloru lub stylu wiązania.

Wzór strukturalny metanu można otrzymać w następujący sposób:

\chemfig{C(-[:0]H)(-[:90]H)(-[:180]H)(-[:270]H)}
Methane chemfig.png

Budowa bardziej skomplikowanych związków polega na zagnieżdżaniu.

Wzory szkieletowe

Wzory szkieletowe można otrzymać w następujący sposób:

\chemfig{-[:30]-[:-30]-[:30]}
Butane-skeletal.png
\chemfig{-[:30]=[:-30]-[:30]}
Skeletondiagram2.png


Pierścienie

Pierścienie powstają przez użycie składni<atom>*<n>(kod), gdzie "n" jest liczbą boków pierścienia, a "kod" oznacza poszczególne atomy w pierścieniu wraz z wiązaniami.

\chemfig{A*6(-B-C-D-E-F-)}
Ring chemfig.png
\chemfig{A*5(-B-C-D-E-)}
Ring2 chemfig.png
\chemfig{*6(=-=-=-)}
Ring3 chemfig.png
\chemfig{**5(------)}
Ring4 chemfig.png


Wzór Lewisa

Wzory Lewisa można utworzyć przez użycie komendy:

\lewis{<electron angle><electron>,<atom>}

wewnątrz komendy \chemfig{}.


Jony

Jako przykład rozpatrzmy jon octanowy:

\chemfig{-(-[1]O^{-})=[7]O}
Acetate-ion2.png


Komendy chemfig opierają się na matematyce, dlatego znaki jonów muszą być dodawane w nawiasach.

Znak jonu może być także wpisany w okrąg przez użycie komend \oplus i \ominus:

\chemfig{-(-[1]O^{\ominus})=[7]O}
Acetate-ion.png

Alternatywnym rozwiązaniem jest wstawienie znaku jonu nad atom przez użycie \chemabove{}{}:

\chemfig{-\chemabove{N}{\scriptstyle\oplus}(=[1]O)-[7]O^{\ominus}}
Ion-example.png


Struktury rezonansowe i ładunki formalne

Struktury rezonansowe wymagają kilku komend matematycznych:

% zobacz rozdział "Matematyka zaawansowana" aby zrozumieć użycie \left i \right
% w preambule dodaj:
%	\usepackage{mathtools}	% \Longleftrightarrow
$\left\{\chemfig{O-N(=[:60]O)-[:300]O}\right\}
\Longleftrightarrow 
\left\{\chemfig{O=N(-[:60]O)-[:300]O}\right\} 
\Longleftrightarrow 
\left\{\chemfig{O-N(-[:60]O)=[:300]O}\right\}$


Reakcje chemiczne

Reakcje chemiczne można tworzyć w następujący sposób:

\chemrel[<arg1>][<arg2>]{<arrow code>}
\chemsign+	% produces a +

W komendzie \chemrel{}, <arg1> i <arg2> oznaczają tekst nad i pod strzałką reakcji.

Cztery typy strzałek reakcji chemicznych przedstawiono poniżej.

A\chemrel{->}B\par 
A\chemrel{<-}B\par 
A\chemrel{<->}B\par 
A\chemrel{<>}B
Types of arrows chemfig.svg

Nazewnictwo związków chemicznych

Związki chemiczne można nazywać używając komendy:

\chemname[<dim>]{\chemfig{<code of the molecule>}}{<nazwa>}

<dim> określa wolną przestrzeń między dołem obrazka a górną krawędzią nazwy związku (<nazwa>). Standardowo wysokość ta wynosi 1.5ex.

<name> określa nazwę, jaką użytkownik chce nadać związkowi.

\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Kwas karboksylowy} 
\chemsign{+} 
\chemname{\chemfig{R’OH}}{Alkohol} 
\chemrel{->} 
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester} 
\chemsign{+} 
\chemname{\chemfig{H_2O}}{Woda}
Reakcja z podpisami LaTeX.svg

W reakcji powyżej nazwy związków chemicznych są umieszczone o 1.5ex poniżej pierwszego związku chemicznego. Dzieje się tak, ponieważ kwas karboksylowy posiada dolną krawędź najniżej z wszystkich związków. Inaczej reakcja będzie wyglądać, jeśli zamienimy kolejność i jako pierwszy umieścimy alkohol.

\chemname{\chemfig{R’OH}}{Alcohol} 
\chemsign{+} 
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid} 
\chemrel{->} 
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester} 
\chemsign{+} 
\chemname{\chemfig{H_2O}}{Water}

Zmiany te mogą być usunięte poprzez zdefiniowanie związku, który ma dolną krawędź najniżej, poprzez użycie komendy \chemnameinit{} przed komendę dotyczącą danego związku. Przykład poniżej.

\chemnameinit{\chemfig{R-C(-[:-30]OH)=[:30]O}} 
\chemname{\chemfig{R’OH}}{Alcohol} 
\chemsign{+} 
\chemname{\chemfig{R-C(-[:-30]OH)=[:30]O}}{Carboxylic acid} 
\chemrel{->} 
\chemname{\chemfig{R-C(-[:-30]OR’)=[:30]O}}{Ester} 
\chemsign{+} 
\chemname{\chemfig{H_2O}}{Water} 
\chemnameinit{}

Dodatkowo wpisanie \\w nazwie spowoduje złamanie linii, pozwalając nazwie zająć więcej niż jedną linię.

Zaawansowana grafika chemiczna

Dla bardziej skomplikowanych struktur chemicznych, zaleca się skorzystanie z instrukcji chemfig, gdzie przedstawiono szczegółowy opis pakietu. (Link w języku angielskim)


Przypisy

Oprogramowanie

Edytory TeX/LaTeX

Oprogramowanie dostępne pod Linuksem i BSD

Oprogramowanie dostępne pod MacOS

Oprogramowanie dostępne pod Windowsem

Oprogramowanie dostępne dla wszystkich powyższych platform


Zarządzanie bibliografią

Zewnętrzne linki

http://web.ift.uib.no/Fysisk/Teori/KURS/WRK/TeX/symALL.html - tabelka z kodami symboli

ftp://ftp.gust.org.pl/pub/CTAN/info/lshort/polish/lshort2e.pdf - Nie za krótkie wprowadzenie do systemu LaTeX 2ε. PDF

http://www.ptm.org.pl/latex-ksiazka-kucharska - LaTeX. Książka kucharska.

http://www.gust.org.pl/ - GUST: Polska Grupa Użytkowników Systemu TeX

http://www.gust.org.pl/doc/documentation/ - Dokumentacje, książki, artykuły dotyczące TeXa i LaTeXa


Autorzy