LaTeX/Indeksy

Z Wikibooks, biblioteki wolnych podręczników.

Bardzo użyteczną funkcją w książkach drukowanych są indeksy, czyli alfabetyczne spisy słów kluczowych. Pozwalają one odnaleźć konkretne fragmenty książki w krótkim czasie. Aby stworzyć indeks w LaTeX należy posłużyć się pakietem makeidx.

Używanie makeidx[edytuj]

Aby uaktywnić funkcję tworzenia indeksów należy w preambule załadować pakiet:

\usepackage{makeidx}

Dodatkowo należy uaktywnić specjalne komendy związane z tworzeniem indeksów. W tym celu należy także w preambule dodać komendę:

\makeindex

Aby wskazać LaTeXowi jaki wyraz ma indeksować należy użyć komendy:

\index{klucz}

gdzie "klucz" to słowo, które pojawi się w indeksie. Komendę tą wstawia się w miejscy, do którego ma kierować odnośnik w indeksie. Przykładowe zastosowanie przedstawiono poniżej:

Do celów przemysłowych kapsaicynę\index{kapsaicyna} ekstrahuje się z papryki rocznej

Wpis taki stworzy pozycję o nazwie "kapsaicyna" z odnośnikiem do strony, na której znajduje się odwoływany ftagment. Wielokrotne użycie tego samego "klucza" spowoduje pojawienie się jednej pozycji w indeksie, której przypisane będzie kilka stron, na których występuje dane odwołanie.

Aby wstawić indeks do dokumentu należy użyć komendy:

\printindex

Zazwyczaj umieszcza się go na końcu książki. Domyślnie indeks jest drukowany w dwóch kolumnach.

Pakiet showidx drukuje wpisy z indeksu na prawym marginesie tekstu. Pozwala to na łatwe wprowadzanie korekt i sprawdzania poprawności indeksu.

Kompilacja indeksów[edytuj]

Kiedy plik wsadowy jest przetwarzany przez LaTeX, każda komenda \index zostaje zmieniona w wpis indeksowy, który zawiera także numer strony. Wszystko to zostaje zapisane do osobnego pliku. Plik posiada taką samą nazwę jak plik wsadowy, jednak jego rozszerzenie to .idx. Plik ten jest generowany przez komendę:

makeindex nazwa_pliku

Zauważ, że nazwę pliku piszemy bez rozszerzenia. Komenda ta wygeneruje nowy plik o rozszerzeniu .idn. Po kolejnej kompilacji LaTeX wprowadzi indeks wyrazów do pliku wynikowego w miejscu, w którym znajduje się komenda \printindex.

Indeks stworzony przez LaTeX może być dostosowywany do potrzeb na wszystkie możliwe sposoby. Pakiet zawiera wiele rodzajów stylów, które można zastosować.

Wprowadzanie słów indeksujących[edytuj]

Poniżej przedstawiono sposoby wprowadzania danych do indeksów przy użyciu komendy \index:

Przykład Wynik Komentarz
\index{Kowalski}
Kowalski, 1 Zwykły wpis
\index{Kowalski!Jan}
  Jan, 3 Indeks Jan wewnątrz indeksu "Kowalski"
\index{Sam@\textsl{Sam}
Sam, 2 Sformatowany krój pisma
\index{Lin@\textbf{Lin}
Lin, 7 Sformatowany krój pisma
\index{Jenny{{!}}textbf}
Jenny, 3 Sformatowany numer strony
\index{Joe{{!}}textit}
Joe, 5 Sformatowany numer strony
\index{ecole@\'ecole}
école, 4 Akcenty
\index{Peter{{!}}see{hello}
Peter, see hello Zobacz
\index{Jen{{!}}seealso{Jenny}
Jen, see also Jenny Zobacz także

Poziomy indeksów[edytuj]

Jeśli chcemy wprowadzić więcej poziomów indeksowania, należy między kolejne indeksy wprowadzić znak !. Dla przykładu:

\index{encodings!input!cp850}

utworzy indeks o nazwie "cp850", który znajdować się będzie wewnątrz indeksu "input", który będzie znajdować się wewnątrz indeksu "encodings". Poziomy te w terminologii makeidx mają nazwy subsubindex oraz subindex.

Kontrola nad sortowaniem[edytuj]

Aby określić jak słowo indeksowane ma być sortowane, należy na początku wprowadzić wartość po jaką ma się znajdować w indeksie dana pozycja. Następnie po znaku @ wprowadzić sposób w jaki dana wartość ma być wyświetlana. Przykład takiego zastosowania przedstawiono poniżej.

\index{F@$\vec{F}$}

Taki wpis spowoduje wyświetlenie w indeksie znaku "", jednak znajdować się on będzie pod literą "F".

Zmiana wyglądu numeru strony[edytuj]

Aby zmienić formatowanie numeru strony w indeksie, należy po indeksowanym słowie wstawić znak |, a następnie prowadzić komendę zmieniającą format.

Przykładowo, jeśli na stronie 3 książki wprowadzi się słowo bulldog do indeksu poniższą komendą:

\index{bulldog}

a na stronie 10 tej samej książki ponownie wstawiono odniesienie do tego słowa, jednak używając poniższej komendy:

\index{bulldog|textbf}

Indeks będzie miał następującą formę: bulldog, 3, 10

Jeśli zamiast komendy makeindex użyje się komendy texindy wszystki wpisy zostaną posegregowanie tak, iż pogrubione strony będą zawsze przed pozostałymi.

Wiele stron[edytuj]

Aby wprowadzić do indeksu zakres stron należy użyć dwóch komend \index. Pierwszy z nich poninien znajdować się na początku tekstu, do którego indeks wprowadzamy. Po słowie kluczowym komenda powinna zawierać następujące znaki |(, określające początek zakresu. Po indeksowanym tekście należy wstawić ponownie komendę \index z identycznym słowem kluczowym jednak po nim powinny znajdować się następujące znaki |). Poniżej przykład:

\index{Mechanika kwantowa!Historia|(}
In 1901, Max Planck released his theory of radiation dependant on quantized energy.
While this explained the ultraviolet catastrophe in the spectrum of 
blackbody radiation, this had far larger consequences as the beginnings of quantum mechanics.
...
\index{Mechanika kwantowa!Historia|)}

Wstawianie znaków specjalnych[edytuj]

Jeśli chcemy, aby wpis w indeksie zawierał znaki specjalne, takie jak: !, @, or |, które są stosowane do wprowadzania konkretnych danych należy umieścić je wewnątrz cudzysłowach.

Lista skrótów[edytuj]

Listę skrótów można stworzyć dzięki użyciu pakietu nomencl [1]. Można także użyć pakietu glossaries opisanego w rozdziale Słowniki.

Aby włączyć możliwość tworzenia listy skrótów należy w preambule załadować pakiet:

\usepackage[⟨opcje⟩]{nomencl}
\makenomenclature

Pojedyncze wpisy do listy uzyskuje się poprzez wstawienie komendy

\nomenclature[⟨prefix⟩]{⟨symbol⟩}{⟨opis⟩}

Dla każdego symbolu, który chcemy umieścić w wpisie. Najlepiej komendy te umieścić zaraz za miejscem, w którym umieszczono dany symbol po raz pierwszy.

Aby wstawić spis do dokumentu należy w żądanym miejscy wstawić komendę

\printnomenclature

Aby wszystko zadziałało jak należy należy wykonać następujące kompilacje:

  1. LaTeX
  2. LaTeX
  3. makeindex
  4. LaTeX

W przypadku, gdy plikiem wynikowym ma być .pdf należy zamiast kompilacji LaTeX użyć pdflatex.

Aby dodać spis skrótów do spisu treści można posłużyć się opcją intoc dodana do ładowania pakietu nomencl. Przykład:

\usepackage[intoc]{nomencl}

Tytuł listy może być zmieniony poprzez następującą komendę:

\renewcommand{\nomname}{Lista skrótów}

Wiele indeksów[edytuj]

Jeśli potrzebujesz kilku indeksów w jednym dokumencie należy posłużyć się pakietem multind [2].

Pakiet ten posiada takie same komendy jak powyżej opisany pakiet makeidx, jednak w tym przypadku trzeba także zdefiniować, do którego indeksu dane słowo ma być wstawione.

\usepackage{multind}
\makeindex{Ksiazki}
\makeindex{Autorzy}
...
\index{Ksiazki}{Tytuł książki} % Dodaje książkę do indeksu Książek
\index{Autorzy}{Nazwisko autora} % Dodaje autora do indeksu Autorów
...
\printindex{Ksiazki}{Indeks książek}
\printindex{Autorzy}{Indeks autorów}

Dodawanie indeksu do spisu treści[edytuj]

Domyślnie indeksy nie są dodawane do spisu treści. Aby to zmienić, należy przed komendą wstawiającą indeks do dokumentu wprowadzić następujące komendy:

\clearpage
\addcontentsline{toc}{chapter}{Index}
\printindex

Jeśli używasz klasy book, możesz zastosować komendę \cleardoublepage, aby indeks pojawił się na nieparzystej stronie.